Tulisan sebelumnya di [CAD-MAP-018]: Aplikasi Topology Analysis di AutoCAD Map untuk Mengambil Nilai Text dalam Polygon (disertai dengan tahapan pembuatan Autolisp) telah diuraikan langkah-langkah untuk membuat topology analysis melalui perintah / tools yang ada di autocadmap. Pada langkah-langkah tersebut juga disertakan tahapan untuk membuat program autolispnya. Autolisp di bawah hasil salinan code autolisp yang telah di post tersebut:
(defun c:atop () (setq cmddia_old (getvar "cmddia"));simpan setting cmddia sebelumnya (setvar "cmddia" 0);set kotak dialog off ;setting list object data di bawah bisa dirubah sesuai data yang ada
(setq list_od (list "OD_NIB" "OD_BERKAS" "OD_NAMA"));list object data yang akan dibuat (setq list_fld (list "NIB" "BERKAS" "NAMA"));list nama field atau header (setq list_type (list "C" "C" "C")); list object type dari list object di atas (setq list_layer (list "080201" "tn_lai_berkas" "tn_lai"))
(setq i -1);setting index untuk ambil (foreach od list_od (setq i (1+ i)) ;;1. Membuat object data tabel (command "ADEDEFDATA" "N" od (nth i list_fld) "" (nth i list_type) "" "N" "X") ;;2. linked object data table ke string atau text. (setq filter (list (cons 0 "TEXT") (cons 8 (nth i list_layer))));set filter (command "ADEGENLINK" "O" "O" od "Y" "S" (ssget "X" filter) "") );end foreach
;;3. Proses Overlay
(setq tp_node1 "BERKAS" tp_node2 "NAMA" tp_poly "Batas_Persil") (setq od_res1 "OD_BERKAS_PRSL" od_res2 "OD_NAMA_PRSL") (setq tp_res1 "TP_BERKAS" tp_res2 "TP_NAMA") (setq od_node1 (nth 1 list_od)) (setq od_node2 (nth 2 list_od)) (setq od_poly (nth 0 list_od))
;;overlay pertama (command "MAPOVERLAY" tp_node1 "o" od_node1 "y" "") (command tp_poly "o" od_poly "y" "") (command "i" tp_res1 "" "0" od_res1 "y" "")
;;overlay kedua (command "MAPOVERLAY" tp_node2 "o" od_node2 "y" "") (command tp_poly "o" od_poly "y" "") (command "i" tp_res2 "" "0" od_res2 "y" "")
(setvar "cmddia" cmddia_old) );end defun
|
Cara menjalankan kode di atas:
1. Copy code di atas ke notedpad kemudian simpan file dengan extensi .lsp misal diberi nama analisa_topologi.lsp.
2. Buka file autocad yang akan diproses. Karena autolisp tersebut dikembangkan dari file yang sudah ada maka jika akan menggunakan fila yang lain maka syarat-syarat berikut harus dipenenuhi dalam file tersebut harus sesuai dengan perintah / fungsi yang ada di autolisp yaitu:
Fungsi dalam Autolisp |
Data yang harus ada |
(setq list_layer (list "080201" "tn_lai_berkas" "tn_lai"))
|
Object text NIB harus terletak di layer: 080201 Object text BERKAS harus terletak di layer: tn_lai Object text NAMA harus terletak di layer: tn_lai_berkas |
(setq tp_node1 "BERKAS" tp_node2 "NAMA" tp_poly "Batas_Persil")
|
Node Topology dari object text BERKAS bernama : BERKAS Node Topology dari object text NAMA bernama : NAMA Polygon Topology dari batas persil dengan centoid object NIB bernama Batas_Persil |
Jika nama layer dan nama topology berbeda dengan di atas, code lisp pada file analisa_topologi.lsp bisa disesuaikan dengan file yang akan diproses dengan merubah di bagian statement di atas.
3. Setelah file dibuka, pastikan bahwa topology BERKAS, NAMA dan Batas_Persil telah di-Load Topology dan juga telah ter-connect ke ODBC database.
4. Untuk memastikan bahwa topology siap diproses, setelah di load topology, lakukan re-create di masing-masing topology.
4. Load applikasi atau program autolisp dengan mengetik di command:appload
5. Pilih file analisa_topologi.lsp kemudian click [Load]. Jika ada pesan, File Loading – Security Concern, Check pilihan [Always load this application] kemudian click [Load]
6. Ketik pada command:atop
7. Pada saat autolisp dijalankan akan ditampilakn urutan perintah proses overlay.
Command: ATOP ADEDEFDATA Field 1: Command: ADEGENLINK Linkage type: [Blocks/textObjects/encloseDBlocks/enclosedText]<enclosedText>: O Create [Objectdata/ASElinks]<ASElinks>: O Object data table (? for list): OD_NIB Use Insertion Point as Label Point: [Yes/No] <N>:Y Text objects to generate from: [Select/All]<All>: S Select objects: 22 found
Select objects: 22 object(s) to process. Processing 22…done. 22 links created. Command: ADEDEFDATA Field 1: Command: ADEGENLINK Linkage type: [Blocks/textObjects/encloseDBlocks/enclosedText]<enclosedText>: O Create [Objectdata/ASElinks]<ASElinks>: O Object data table (? for list): OD_BERKAS Use Insertion Point as Label Point: [Yes/No] <N>:Y Text objects to generate from: [Select/All]<All>: S Select objects: 22 found
Select objects: 22 object(s) to process. Processing 22…done. 22 links created. Command: ADEDEFDATA Field 1: Command: ADEGENLINK Linkage type: [Blocks/textObjects/encloseDBlocks/enclosedText]<enclosedText>: O Create [Objectdata/ASElinks]<ASElinks>: O Object data table (? for list): OD_NAMA Use Insertion Point as Label Point: [Yes/No] <N>:Y Text objects to generate from: [Select/All]<All>: S Select objects: 35 found
Select objects: 35 object(s) to process. Processing 35…done. 35 links created. Command: MAPOVERLAY Enter source topology name (? for list) <nama>: BERKAS Enter type of source data (Object-data/Sql-data): o Enter table name (? for list) <>: OD_BERKAS Select all available fields? (Yes/No) <Y>: y Enter type of source data (Object-data/Sql-data): Enter overlay topology name (? for list) <Batas_Persil>: Batas_Persil Enter type of overlay data (Object-data/Sql-data): o Enter table name (? for list) <>: OD_NIB Select all available fields? (Yes/No) <Y>: y Enter type of overlay data (Object-data/Sql-data): Enter overlay operation (Intersect/Union/iDentity/Erase/Clip/Paste) <I>: i Enter result topology name: TP_BERKAS Enter result topology description:
Enter target layer (? for list) <080201>: 0
Enter result data table (? for list) <>: OD_BERKAS_PRSL No such data table. Create table? (Yes/No) <Y>: y Enter table description: Creating TP_BERKAS topology by Overlay… Writing topology information to the drawing…
Overlay successfully created. Command: MAPOVERLAY Enter source topology name (? for list) <berkas>: NAMA Enter type of source data (Object-data/Sql-data): o Enter table name (? for list) <>: OD_NAMA Select all available fields? (Yes/No) <Y>: y Enter type of source data (Object-data/Sql-data): Enter overlay topology name (? for list) <Batas_Persil>: Batas_Persil Enter type of overlay data (Object-data/Sql-data): o Enter table name (? for list) <>: OD_NIB Select all available fields? (Yes/No) <Y>: y Enter type of overlay data (Object-data/Sql-data): Enter overlay operation (Intersect/Union/iDentity/Erase/Clip/Paste) <I>: i Enter result topology name: TP_NAMA Enter result topology description:
Enter target layer (? for list) <0>: 0
Enter result data table (? for list) <>: OD_NAMA_PRSL No such data table. Create table? (Yes/No) <Y>: y Enter table description: Creating TP_NAMA topology by Overlay… Writing topology information to the drawing…
Overlay successfully created. Command: 0
|
8. Proses selanjutnya adalah Menyimpan object data OD_NAMA_PRSL, OD_BERKAS_PRSL dan ke Microsoft access seperti tahapan di [CAD-MAP-018]: Aplikasi Topology Analysis di AutoCAD Map untuk Mengambil Nilai Text dalam Polygon (disertai dengan tahapan pembuatan Autolisp) dimulai dari tahap ke E. Menyimpan Object Data ke Microsoft Access.
==========
Silakan dicoba dan terimakasih telah berkunjung di blog saya
Pagi Pak. Perkenalkan nama saya Kading.
Mau bertanya Pak. Bagaimana caranya saya untuk meng quick select dua angka dibelakang koma atau tiga angka dibelakang koma. sedangkan angka-angka tersebut bercampur dalam bentuk teks yang jumlahnya ratusan. Bagaimana bentuk autolisp nya Pak.
terima kasih Pak
contoh teks yang dirubah seperti apa? dan yang diinginkan seperti apa?