Kadang kita membutuhkan informasi jarak dan azimut (sudut yang dihitung dari arah utara searah jarum jam) pada gambar polyline untuk keperluan misalnya antara lain:

  • pengecekan pengukuran jarak dan sudut
  • pengembalian batas tanah dari poligon terdekat
  • stake out
  • dll

Beberapa cara penulisan label di Autocad dan AutocadMap yang pernah aku coba adalah:

  • Menggunan fasilitas query di autocadmap.
  • Menggunakan fasilitas annotation di autocadmap. Cara ini bisa diterapkan jika program autocadmap sudah support annotation
  • Menggunakan Autolisp di Autocad

Note: Karena saat instalasi program Land Development dan Civil 3D otomatis terinstall modul Map, maka langkah-langkah yang diuraikan di bawah juga bisa dipraktekkan di program tersebut. Pada tutorial ini saya menggukan Civil 3D 2011

A. Menulis text jarak dan azimut menggunakan query.

Ide metode ini adalah dengan mengambil informasi line properties Length dan Angle.

image

Besaran sudut (angle) yang ada di Line properties dihitung dari sumbu X berlawanan arah jarum jam. Untuk mendapatkan nilai azimut (sudut dari sumbu Y searah jarum jam), maka perlu dilakukan konversi sudut dengan rumus berikut:

Azimut=90-Angle

Karena informasi jarak dan azimut diambil dari line properties, maka apabila object yang akan diberi label berupa polyline, perlu di explode menjadi object line. Ketikkan explode di command line untuk merubah polyline menjadi line.

Command: explode

Berikut langkah-langkahnya:

1. Misal file yang berisi polyline yang sudah di exploded bernama [polyline.dwg] dan sudah tersimpan di folder c:\caddwg\

2. Buat file baru di AuotcadMap. Yakinkan bahwa file polyline.dwg tidak terbuka, tutup file tersebut jika masih terbuka.

3. Aktifkan Task Pane Map, dengan mengetikkan di command:mapwspace

image

Pilih Tab 'Map Explorer'

Click kanan icon drawing, kemudian pilih [Attach…]

Buat drive alias ke folder c:\caddwg\ dengan click icon image

Pada kotak dialog [Drive Alias Administration], masukkan nama drive alias dan lokasi foldernya, kemudian click [Add] lalu [Close]. Pada contoh saya masukkan nama drive alias 'DataCAD' yang mengacu ke folder c:\caddwg

4. Rubah drive alias ke 'DataCAD', pilih nama file polyline.dwg

image

Click tombol [Add], kemudian [OK] untuk menutup kotak dialog

5. Melakukan query dari attached drawing.

Pada tab 'Map Explorer' di bawah folder 'Query Library', click kanan icon 'Current Query' kemudian pilih 'Define'.

image

Akan ditampilkan kotak dialog 'Define query' :

image

Pada group 'Query Type', Click tombol [Location], kemudian pilih 'Boundary Type' , 'All'

Pada group 'Query Mode', pilih 'Draw'

Di group 'Options', click check box, kemudian click tombol [Alter Properties]

Pada kotak dialog 'Set Property Alterations', click tombol [Text] di group 'Select Property'

5.1. Penulisan label azimut, di kotak dialog 'Define Text' lakukan setting sebagai berikut:

image

'Text Value': (ANGTOS (- (* 0.5 pi) .ANGLE) 1 4)

'Rotation': (/ (* .ANGLE 180) pi)

keterangan fungsi autolisp di 'Text Value' adalah

(- (* 0.5 pi) .ANGLE) –> menghitunga azimut (90-Sudut) dalam satuan radian

(ANGTOS (- (* 0.5 pi) .ANGLE) 1 4)–>merubah sudut ke format derajat-menit-detik

pada isian 'Rotation' dimaksudkan agar text tertulis sesuai dengan arah line.

Jika sudah selesai click tombol [OK]

5.2. Penulisan Label Jarak

Click lagi tombol [Alter Properties], kemudian click tombol [text]

Pada kotak dialog 'Define text' lakukan setting sebagai berikut

Tampilan kotak dialog 'Set Property Alteration' menjadi :

image

Click tombol [OK].

Click tombol [Execute Query] di kotak dialog 'Define Query'

Contoh tampilan label setelah Query dibandingkan dengan dimension di autocad

image

Label berwarna merah adalah hasil query.

B. Menulis text jarak dan azimut menggunakan Annotation.

Langkah-langkah ini jika program autcadmap Anda sudah support Annotation

1. Buat Block yang memuat map annotation

  • Ketik di command: MapAnnTemplate
  • Perintah di atas sama dengan tahapan sebagai berikut, jika Anda ada di workspace autocad Map:
  • Pada menu [Annotate], pilih Tab [Map Annotation]
  • Click icon [Define Template], untuk menampilkan kotak dialog [Define Annotation Template]
  • Click [New] untuk membuat template baru
  • Masukkan nama template misalnya azimutjarak
  • Kemudian click [OK], untuk masuk ke block editor template
  • ketik di command:mapanntext (jika command line tidak terlihat tekan ctrl+9)
  • tekan [enter], untuk membuat annotation text
  • di group attribute, isikan tag, misal asimut
  • Isikan Value: (ANGTOS (- (* 0.5 pi) .ANGLE) 1 4)
  • Untuk setting rotasi Text biarkan saja
  • Lakukan juga setting tinggi Text
  • Click [OK], kemudian letakkan lokasinya di block editor
  • ketik di command:mapanntext
  • tekan [enter], untuk membuat annotation text
  • di group attribute, isikan tag, misal jarak
  • Isikan Value: (RTOS .LENGTH 2 4)
  • Click [OK], kemudian letakkan lokasinya di block editor
  • Lakukan Setting base point. Cara setting base point ada di post [CAD-MAP-11]: Labelling Titik Tinggi Menggunakan Annotation di AutocadMap
  • Annotation template menjadi:

image

  • click tombol [close block editor]
  • kemudian click OK untuk menutup kotak dialog [Define Annotation Template]

2. Insert Annotation

  • ketik di command:MapAnnInsert
  • pilih 'annotation template' 'azimut jarak', kemudian click [Insert]
  • Select atau pilih object Line yang akan diberi label

Contoh hasil labeling dengan annotation dibandingkan dengan annotation di autocad:

image

Hasil labelling tidak diputar sesuai dengan object linenya, karena property rotation tidak diset. Jika ingin label dirotasi, maka perlu di buat dua buah template yaitu template untuk azimut dan jarak. Kedua template tersebut di set rotation anglenya seperti pada langkah 5.1

B. Menulis text jarak dan azimut menggunakan Autolisp.

Jika Anda tidak mempunyai modul Map terinstall di Autocad, maka tahapan di atas tidak bisa dilakukan. Saya telah membuat program Autolisp agar proses labelling asimut dan elevasi bisa dilakukan di Autocad tanpa modul Map.

Dengan Autolisp, polyline tidak perlu di explode menjadi object Line dan object yang akan diberi label harus berupa polyline

Copy Autolisp di bawah:

(Defun c:LabelAsimutJarak()
(vl-load-com)(gc);assure activex is loaded and free up memory
(setq acaddoc (vla-get-activedocument (vlax-get-acad-object)))
(setq mSpace (vlax-get-property acadDoc 'Modelspace))
(setq ent (car(entsel "\nPilih Polyline>>")))
(setq TinggiHuruf (getreal "\nTinggi Huruf:"))
(setvar "OSMODE" 0);setting osnap none
(setq obj (vlax-ename->vla-object ent))
(setq nmObj (vla-get-objectname obj))
(if (= nmObj "AcDbPolyline")
(progn
;ambil koordinat dari polyline
(setq ListCoord (vla-get-coordinates obj))
;convert variant ke list
(setq ListCoord (vlax-safearray->list (vlax-variant-value ListCoord)))
(setq nvertex (/ (length ListCoord) 2))
;ambil koordinat tiap vertex sepanjang polyline
(setq i 0)
(repeat nvertex
(if (> i 1)
(progn
(setq xyTo (list (nth i ListCoord) (nth (+ i 1) ListCoord)))
(setq Jarak (distance xyFrom xyTo))
(setq Sudut (angle xyFrom xyTo));dalam radian dari sumbu X
(setq Azimut (- (* 0.5 pi) Sudut));sudut dari arah utara / Y
(setq sAzimut (angtos Azimut 1 4));konversi radian ke der men det
(setq xMid (* 0.5 (+ (nth 0 xyFrom) (nth 0 xyTo))))
(setq yMid (* 0.5 (+ (nth 1 xyFrom) (nth 1 xyTo))))
(setq xyMidAzimuth (list xMid yMid 0));insert point azimuth
(setq xyMidJarak (list xMid (- yMid (* 2 TinggiHuruf)) 0));insert point jarak

(setq xyMidAzimuth (vlax-3d-point xyMidAzimuth));convert to 3d-point variant
(setq xyMidJarak (vlax-3d-point xyMidJarak));convert to 3d-point variant

;menulis text Azimuth
(setq aText (vla-addtext mSpace sAzimut xyMidAzimuth TinggiHuruf))
(vla-put-rotation aText Sudut);rubah rotasi text
(vla-update aText);update text

;menulis text Jarak
(setq aText (vla-addtext mSpace (rtos Jarak 2 4) xyMidJarak TinggiHuruf))
(vla-put-rotation aText Sudut);rubah rotasi text
(vla-update aText);update text

(setq xyFrom xyTo)
);end progn
(setq xyFrom (list (nth i ListCoord) (nth (+ i 1) ListCoord)))
);end if
(setq i (+ 2 i))
);end repeat
);end progn
);end if
);end function

Simpan file di atas sebagai *.lsp atau tambahkan ke koleksi autolisp Anda.

Ketik di command:LabelAsimutJarak

Pilih polyline dan masukkan tinggi huruf.

contoh hasil dengan autolisp:

image

=selamat mencoba==