[CAD-LIS-04]: Label Koordinat (Lintang, Bujur) dari Koordinat (X,Y) TM3 dengan Autolisp

Referensi : https://documentation.help/AutoCAD-Map-3D-2009-AutoLISP/documentation.pdf
Platform : AutocadMap & Civil 3D
File : Download

Salah satu ketentuan informasi yang tercantum dalam Peta Bidang Tanah (PBT) menurut Petunjuk Teknis (Juknis) PTSL 2020 adalah:

“Informasi koordinat X, Y, dan Z agar ditampilkan pada PBT untuk minimal satu titik pada pojok-pojok blok bidang tanah sistematis (contoh terlampir). Pada SU,koordinat X, Y, dan Z ditampilkan pada pojok bidang tanahnya. Koordinat ditampilkan dalam sistem geografis (lintang-bujur);”

Saya sharing program autolisp yang telah saya buat untuk membuat label lintang bujur dari gambar bidang tanah dengan system proyeksi koordinat TM3 ke koordinat lintang bujur dalam datum WGS 84. Program ini bisa dijalankan jika gambar sudah di set di proyeksi koordinat TM3 dan menggunakan software yang mendukung AutocadMap seperti Civil 3D.

Berikut code autolispnya:

;subprogram / subfunction untuk transformasi koordinat TM3 ke LL84

(defun TM3->LL84 (/ csCodeSource pt)

(if (and (setq csCodeSource (ade_projgetwscode))    ;proses dilanjut jika gambar telah diset sistem koordinat

     (wcmatch (ade_projgetwscode) “TM3*”))    ;dalam sistem proyeksi TM3

(progn

(ade_projsetsrc csCodeSource)

(ade_projsetdest “LL84”)                ;target koordinat adalah Longitude,Latitude datum WGS84

(setq pt (getpoint “Pilih lokasi di gambar >>>”))

(if pt                        ;jika lokasi telah di-click-ed

    (append (ade_projptforward pt) pt)        ;lakukan proses proyeksi koordinat

    nil                        ;jika tidak cancel, maka hasilnya nil

    );end if

)

nil                            ;hasilnya nil jika gambar belum diset sistem koordinat TM3

)

)

;;program utama

(princ “\nProgram untuk menulis text / label dari sistem koordinat tm3 ke lintang bujur”)

(princ “\nby zainul_ulum@cbn.net.id”)

(princ “\nKetik di command:z_LL”)

(vl-load-com)                    ;aktifkan visual lisp com (activex)

(defun c:z_LL( / dTextHeight sLayer        ; private variables

     acadDoc AcadModelSpace acadText    ; private variables

     LL tm3 b_Deg l_deg txtLintang txtBujur)

(setq dTextHeight 1.5 sLayer “080608”)    ;setting tinggi text dan layer tujuan

(if (not (tblsearch “layer” sLayer))        ;jika layer tujuan tidak ada

        (command “layer” “m” sLayer “”);buat layer baru

)

(setq acadDoc (vla-get-activedocument (vlax-get-acad-object))    ;object acad document

    AcadModelSpace (vlax-get-property acadDoc ‘Modelspace)    ;object modelspace

    );setq

(if (eq (getvar “ctab”) “Model”)        ;program hanya untuk Model Space

(progn

(if (setq LL (TM3->LL84))            ;click lokasi koordinat dan proses proyeksi coord

    (progn                    ;lanjutkan jika ada hasil proyeksi koordinat

     (setq tm3 (list (nth 3 LL) (nth 4 LL) (nth 5 LL));koordinat asal

         pnt3D (vlax-3d-point tm3)    ;ubah koordinat asal ke object visual lisp

         b_Deg (nth 0 LL)        ;koordinat bujur hasil proyeksi dalam satuan derajat

        l_Deg (nth 1 LL)        ;koordinat lintang hasil proyeksi dalam satuan derajat

        txtLintang (angtos (/ (* (abs l_Deg) pi) 180) 1 6)    ;ubah satuan sudut Lintang ke format dms

                                    ;nilai lintang dibuat absolute

        txtBujur (angtos (/ (* b_Deg pi) 180) 1 6)    ;ubah satuan sudut Bujur ke format dms

        acadText (vla-addtext AcadModelSpace        ;proses menulis text menjadi object di modelspace

             (strcat (if (< l_deg 0) (strcat “-” txtLintang) txtLintang);tambahkan tanda negatif jika lintang selatan

                 “,”

                 txtBujur)

             pnt3D dTextHeight)

        );setq

     (vla-put-layer acadText sLayer)            ;ubah layer ke layer tujuan

     (vla-put-Alignment acadText acAlignmentCenter)    ;set aligment text menjadi center

     (vla-put-TextAlignmentPoint acadText pnt3D)        ;insertion point menggunakan koordinat asal sebelum proyeksi

     );end progn

    (princ “\nprogram dibatalkan”)

    )

)

(princ “\nProgram hanya berjalan di Model Space”)

);end if

);end function

Simpan kode tersebut dalam format lsp atau Download, kemudian load program ke autocadmap / civil 3d.

Ketik di command: z_ll

Kemudian click lokasi dalam gambar yang akan diberi label koordinat lintang bujurnya.

===silakan dicoba===

One thought on “[CAD-LIS-04]: Label Koordinat (Lintang, Bujur) dari Koordinat (X,Y) TM3 dengan Autolisp

Leave a comment