[CAD-MAP-19]: Membuat tabel Microsoft Access dari Hasil Topology Analysis di AutoCAD Map (Lanjutan-2: Menjalankan Autolisp)

Reference : [CAD-MAP-018]: Aplikasi Topology Analysis di AutoCAD Map untuk Mengambil Nilai Text dalam Polygon (disertai dengan tahapan pembuatan Autolisp)
Platform : Autocad Map
Download File :  

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.

image

4. Untuk memastikan bahwa topology siap diproses, setelah di load topology, lakukan re-create di masing-masing topology.

image

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]

image

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

2 thoughts on “[CAD-MAP-19]: Membuat tabel Microsoft Access dari Hasil Topology Analysis di AutoCAD Map (Lanjutan-2: Menjalankan Autolisp)

  1. 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

Leave a comment