[GEN-PMG-07]: Menghitung upah lembur dengan excel (Kep Men. NOMOR KEP. 102/MEN/VI/2004) Bagian 3

Referensi : [GEN-PMG-04]:Menghitung Upah Lembur dengan Excel (Kep Men. NOMOR KEP. 102/MEN/VI/2004)
[XLS-PMG-07]: Menghitung upah lembur dengan excel (Kep Men. NOMOR KEP. 102/MEN/VI/2004) Bagian 2
Platform : Microsoft Excel
Download : Download

 

Pada tulisan sebelumnya telah diuraikan tahapan untuk menghitung lembur dengan kondisi 5 (lima) hari kerja/minggu dan 6 (enam) hari kerja/minggu dengan input jam kerja yang sudah diketahui. Pada tulisan ini akan saya sharing template yang pernah saya buat untuk aplikasi di suatu proyek dengan kondisi yang lebih komplek yaitu:

  • 1. Data yang dimasukkan adalah [Jam Masuk] dan [Jam Keluar].
  • 2. Jam Istirahat bisa diatur fleksibel atau bisa dirubah.
  • 3. Perhitungan lima(5) hari kerja, jika karyawan bekerja di kantor pusat dan menggunakan perhitungan 6 (enam) hari kerja jika bekerja di lapangan
  • 4. Slip gaji sudah dilengkapi dengan perhitungan BPJS dan Pajak Penghasilan (PPH21).

Berikut tutorial cara penggunaan spreadsheet excel yang sudah di download:

1. Memasukkan Setting Hari Libur di Sheet [hr_libur]

Masukkan tanggal hari libur di kolom [tgl] atau kolom [A] dengan format tanggal yang sesuai dengan settingan di windows. Contoh setting tanggal di komputer saya yang terlihat di task bar windows adalah image, maka untuk tanggal 30 Mei 2018 dimasukkan dengan format 5/30/2018 atau 5/30/18.

Setelah memasukkan tanggal sesuai dengan format yang benar, masukkan juga keterangan hari libur di kolom [Keterangan]. Bagian kolom [No] tidak perlu diisi karena kolom ini akan terisi otomatis tiap ada penambahan record atau dta baru.

2. Memasukkan Setting Jam istirahat di sheet [jm_istrht]

image

Kolom [No], [Hari] dan [Kode Hari] berisi formula. Input jam kerja dimasukkan di kolom:

[Rest01 Start], [Rest01 End] : untuk jam istirahat pertama

[Rest02 Start1], [Rest02 End] : untuk jam istirahat kedua

[Rest03 Start], [Rest03 End] : untuk jam istirahat ketiga

Jam dimasukkan dengan format hh:mm, dalam format ini jika akan memasukkan jam 1 siang atau 1:00 PM maka jam dimasukkan dengan format 13:00 demikain juga untuk jam 11:00 pm dimasukkan dengan format 23:00.

Format hh:mm ini juga berlaku saat pengisian jam masuk kerja dan jam keluar kerja.

3. Memasukkan Isian di sheet [ts] dan [slip]

Jika diinginkan format tanpa detail perhitungan gaji, dapat mengunakan format di sheet [ts] sedangkan jika diinginkan input jam kerja disertai dengan detail perhitungan gaji dapat menggunakan format di sheet [slip].

Pada prakteknya di lapangan, saya menggunakan 2 (dua) sheet tersebut untuk aplikasi yang berbeda. Sheet [ts] diberikan ke karyawan digunakan untuk mendapatkan approval dari atasan, sedangkan sheet [slip] digunakan untuk menghitung gaji atau sebagai slip gaji.

Masing-masing sheet [ts] dan [slip] terdapat kolom [Q]:[AE] yang berisi rumus bantu untuk perhitungan timesheet, Anda bisa hide kolom ini saat pencetakan atau distribusi form ke karyawan. Jangan dihapus atau dimodifikasi rumus ini, kecuali Anda benar-benar memahami isi dan maksud dari rumus tersebut.

Format sheet [ts]:

image

Isikan ID, Nama dan Posisi atau bila diperlukan bisa ditambahkan nama supervisi, department atau isian lain pada area K2:O3

Pilih Bulan dan Tahun di cell [D2] dan [E2], maka kolom [Tgl] dan [Hari] akan terisi otomatis, kolom berwarna hijau berisi formula, sehingga tidak perlu diisi kolom hijau akan otomatis terupdate jika ada perubahan tanggal termasuk perubahan warna huruf jika tanggal bertepatan dengan hari libur, jumat, sabtu dan minggu.

Kolom yang perlu diisi manual adalah:

Nama Kolom Keterangan
Kode Hari Kerja Masukkan angka 5 jika bekerja untuk 5 hari kerja/minggu dan masukkan angka 6 jika untuk bekerja 6 hari kerja / minggu
Masuk , Keluar Isikan jam masuk, jam keluar sesuai dengan format tanggal di windows
Kolom [Durasi] akan terisi otomatis jika jam masuk dan jam keluar sudah terisi. Format durasi adalah dalam satuan desima sehingga jika durasinya adalah 8 jam 30 menit, maka masukkan angka 8.5
Koreksi Isikan koreksi jam kerja jika diperlukan dalam satuan desimal. Misalnya dalam ada koreksi penambahan jam setengan jam atau 00:30 maka dimasukkan 0.5 atau sebaliknya ada pengurang jam 00:30, maka dimasukkan -0.5

Sedangkan tampilan untuk sheet [slip]:

image

Ada tambahan input yaitu:

Nama Input Keterangan
Gaji Dasar Masukkan gaji pokok atau gaji dasar /bulan
Tunjangan Tetap Masukkan Tunjangan tetap /bulan
Rate Lembur Masukkan unit rate lembur / jam.
“maaf tulisan di template masih /bulan, mohon untuk dikoreksi /jam”
Tunj. Makan Masukkan tunjangan makan /hadir
Tunj. Transport Masukkan tunjangan transport /hadir
Tunj. Kehadiran Masukkan tunjangan kehadiran /hadir
PTKP Karyawan Masukkan golongan PTKP (Penghasilan Tidak Kena Pajak) karyawan sesuai dengan peraturan yang berlaku.

Detail perhitungan gaji disertai dengan perhitungan BPJS dan PPH21 adalah:

image

Silakan dicoba dan mohon koreksinya jika ada kesalahan.

Terimakasih telah berkunjung di blog saya.

Advertisements

[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

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

Referensi : [CAD-MAP-017]: Membuat tabel Microsoft Access dari Hasil Topology Analysis di AutoCAD Map
Platform : Autocad Map
Download : tidak tersedia agar bisa belajar sendiri

Berbeda dengan tulisan sebelumnya di [CAD-MAP-017]: Membuat tabel Microsoft Access dari Hasil Topology Analysis di AutoCAD Map dimana dalam satu bidang terdiri dari dua object text yang akan dibuat tabel baru di Microsoft Access, kali ini ada tiga object text dalam satu bidang.

Penggalan gambar yang saya terima :

image

Tabel yang akan dibuat di Microsoft Access terdiri dari 3 (tiga) kolom/field yang yang terdiri dari:

Kolom Nama Kolom / Field Sumber Data
1 NIB Text Value
2 Berkas Text Value
3 Nama Text Value
3 Area Topology Polygon

Tahapan untuk membuat data source, clean-up dan topology polygon tidak diuraikan lagi dalam tulisan ini. Silakan mengacu ke tulisan saya sebelumnya tentang pembuatan data source, clean-up dan pembuatan topology polygon.

A. Load dan Check Polyogn Topology.

Saat saya menerima gambar yang akan diolah, ternyata sudah ada topology polygonnya bernama [Batas_Persil] tetapi dalam kondisi belum ter-loaded / belum aktif. Cara untuk meng-aktifkan topology tersebut adalah dengan :

1. Click kanan topology [Batas_Persil], pilih [Administration] kemudian [Load Topology]. Jika ditampilkan pesan  “Topology Batas_Persil is correct and complete”, maka topology bisa dipakai untuk proses analisa topology.

image

 

2. Untuk menampilkan geometry polygon dalam topology, click kanan [Batas_Persil], kemudian pilih [Show Geometry] maka akan ditunjukkan geometry polygon beserta dengan pusat poligonnya (centroid polygon). Dari hasil [Show Geometry] tersebut dapat diketahui bahwa polygon [Batas_Persil] menggunakan Object Text yang berisi informasi  NIB sebagai centroid poligon.

3. Untuk mendapatkan informasi luas dari hasil topology ketik pada command:adeeditdata

image

Langkah selanjutnya adalah membuat node topology dari object text Berkas dan Nama.

B. Membuat node topology dari object text Berkas dan Nama.

Agar proses pembuatan node topology lebih cepat terutama saat pemilihan object, maka sebaiknya object text Berkas dan text Nama terdapat pada layer yang berbeda.

Saat saya melakukan pengecekan gambar kedua object text Berkas dan Nama terletak pada satu layer  [tn_lai] sehingga perlu dibuat layer baru untuk memisahkan object text Berkas dengan object text Nama.

B.1. Menggunakan Filter untuk Memisahkan Text Berkas dan Text Nama.

Misalkan text Nama diletakkan di layer [tn_lai] kemudian text Berkas diletakkan di layer [tn_lai_berkas], maka langkah-langkah untuk memisahkan object text tersebut adalah:

1. Buat layer baru dengan nama [tn_lai_berkas] kemudian set warna layer ke warna merah atau warna yang berbeda dengan warna layer [tn_lai]

2. Proses pemilihan text dalam satu layer akan lebih mudah jika ada properties text yang berbeda dari object text Berkas dan text Nama. Misal warna textnya berbeda, tinggi text berbeda atau text style yang berbeda. Pada kasus ini text propertiesnya seperti warna text, tinggi text, text style antara object text Nama dengan object text Berkas adalah sama tetapi untung masih ada perbedaan yang saya temukan yaitu pada object text Berkas selalu ada huruf dash atau “-“.

Fasilitas perintah Filter di autocad dapat digunakan untuk memilih object text dengan kriteria filter : memilih semua Object Text dengan Text Value berisi huruf “-” di layer [tn_lai]. Setelah object text terpilih, maka object tersebut dipindahkan ke layer [tn_lai_berkas]

Lesson learned: Sebaiknya letakkan di layer yang berbeda jika object memiliki  informasi yang berbeda sehingga mempermudah dalam proses analisa

3. Ketik di command:Filter

4. Pilih [Add Selected Object], kemudian pilih salah satu object text Berkas:

image

Pada List Box, hapus object properties selain properties [Object=Text], [Layer=tn_lai] dan [Text Value]. Cara menghapus adalah dengan memilih property yang ada di list box kemudian click Delete.

5. Pilih property [Text Value], kemudian click [Edit Item]

6. Ganti text disamping tulisan X=*-*, kemudian click [Substitute]

image

7. Setelah itu click [Apply] untuk memulai memilih object dengan criteria filter seperti di atas.

8. command: Select objects: all

9. Maka seluruh object text di layer [tn_lai] yang textnya terdapat huruf “-” akan terpilih.

10. Masih dalam kondisi text tepilih, tekan Ctrl+1

11. Pada setting Design Properties, rubah Color : ByLayer kemudian Layer: tn_lai_berkas

image

12. Gambar setelah text berkas dan text nama dipisahkan layernya. Text warna merah adalah object berkas di layer [tn_lai_berkas]

image

B.2. Membuat Node Topology untuk Text Nama dan Text Berkas

Buat topology dengan setting sebagai berikut:

Topology Type Topology Name Select Node on Layer
Node Nama tn_lai
Node Berkas tn_lai_berkas

List topology dalam gambar menjadi:

image

C. Konversi Object Text ke Table Object Data.

Pada [CAD-MAP-017]: Membuat tabel Microsoft Access dari Hasil Topology Analysis di AutoCAD Map saat melakukan overlay, setting untuk attribute di source topology menggunakan property object text autocad .STRING sehingga nilai object text di node topology (nama topology pada contoh sebelumnya : pt_nama) ikut dalam proses overlay.

Setting property .STRING juga diset pada overlay topology (nama topology pada contoh sebelumnya : pol_pbt) akan tetapi pada saat proses overlay dijalankan terjadi kegagalan. Kegagalan ini mungkin terjadi karena ada dua nama field pada satu tabel yaitu STRING dari source topology dan STRING dari overlay topology.

Salah satu cara agar proses overlay berhasil, maka pada cara sebelumnya property object text .STRING diconvert menjadi tabel database access kemudian nama field diganti yang sembelumnya STRING menjadi NIB.

Cara lain agar proses overlay tidak menghasilkan field sama adalah dengan membuat object data table dengan setting nama field yang berbeda. Nama field dan nama tabel yang akan dibuat adalah:

Nama Object Data Tabel Nama Field Field Type Keterangan
OD_NIB NIB Character berisi nilai text NIB dari layer 080201
OD_NAMA NAMA Character berisi nilai text nama dari layer tn_lai
OD_BERKAS BERKAS Character berisi nilai text berkas dari layer tn_lai_berkas

C.1. Membuat Object Data Tabel

Jika menggunakan kotak dialog, cara membuat data object data dengan click icon [Define Object Data] di group [Attribute Data] dari menu [Map Setup]

image

atau dengan mengetik di kotak command: ADEDEFDATA

 

Catatan: “Pada tahapan selanjutnya setting perintah melalui kotak dialog dimatikan sementara sehingga pilihan dan isian dilakukan melalui prompt command:. sehingga urutan perintah dapat dicatat / disalin untuk kemudian dibuatkan program Autolispnya”

1. Mematikan kotak dialog.

Command: CMDDIA

Enter new value for CMDDIA <1>: 0

2. Buat object data tabel OD_NIB, OD_NAMA dan OD_BERKAS

Command: _adedefdata
Table: [?/Delete/Modify/New/Rename/eXit]<eXit>: N
Table name: OD_NIB
Field 1:
Field name: NIB
Field description: <ENTER>
Field type: [Integer/Character/Point/Real]: <Integer>: C
Field default value: <ENTER>
Continue with next field? [Yes/No] <Y>:N
Table: [?/Delete/Modify/New/Rename/eXit]<eXit>: X

Pada tahap di atas object data dengan nama OD_NIB sudah dibuat, untuk membuat object data tabel OD_NAMA dan OD_BERKAS maka perlu diulang langkah di atas dengan memasukkan isian di prompt Table Name dengan nama object table yang diinginkan.

Setting cmddia dan perulangan atau looping untuk membuat object data di atas jika menggunakan program autolisp adalah:

(defun c:atop ()
;;1. MEMBUAT OBJECT DATA
(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 i -1);setting index untuk ambil
(foreach od list_od
(setq i (1+ i))
(command  “adedefdata” “N” od (nth i list_fld) “” (nth i list_type) “” “N” “X”);membuat data table
);end foreach

(setvar “cmddia” cmddia_old)
);end defun

Catatan: Pada tahap selanjut autolisp akan terus diupdate sehinga akan tersusun program autolisp yang merangkup semua tahapan di tutorial ini.

C.2. Mengisi Object data OD_NIB, OD_NAMA dan OD_BERKAS dari Text NIB, NAMA dan BERKAS.

Object data yang telah dibuat kemudian diisi dengan text string dari object NIB, NAMA dan BERKAS yang masing-masing ada di layer yang telah didefiniskan sebelumnya yaitu:

Autocad Object Nama Layer Target Object Data
Text 080201 OD_NIB
Text tn_lai OD_NAMA
Text tn_lai_berkas OD_BERKAS

Tahapan perintah sebelum dibuatkan autolisp:

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: (ssget “x” ‘((0 . “TEXT”) (8 . “080201”)))
<Selection set: 2f>
22 found
Select objects:
22 object(s) to process.
Processing 22…done. 22 links created.

Pada proses select objects di atas, fungsi (ssget “x” ‘((0 . “TEXT”) (8 . “080201”))) adalah untuk memilih semua object autocad dengan kriteria hanya memilih object text (0 . “TEXT”) yang ada di layer 080201 (8 . “080201”). Dengan memahami fungsi filter tersebut, maka untuk membuat link  OD_NAMA dan OD_BERKAS adalah dengan mengulang langkah diatas dengan merubah prompt “object data tablle:” dan “Select objects: sesuai dengan nama layer letak object text tersebut.

Program autolisp setelah dilengkapi dengan perintah link data menjadi:

(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

(setvar “cmddia” cmddia_old)
);end defun

untuk mengecek apakah object data table sudah link ke text object atau string, click icon [Edit Object Data] di group [Map Edit] pada menu [Tool]

image

atau dengan mengetik di command: ADEEDITDATA

Pilih object text NIB, maka akan ditampilkan isi object data OD_NIB:

image

Pada contoh di atas object text dengan value / isi nib 01992 telah terisi di object data table OD_NIB.

D. Proses Topology Overlay.

Proses ini sebenarnya adalah spasial join menggunakan metode overlay type intersect antara topology titik/node (source topology) dengan topology polygon (overlay topology) . Hasil dari overlay ini adalah berupa topology titik/node topology dan object data tabel baru. Pada obejct data table baru tersebut bisa diberi attribute (field baru) yang berisi obejct data hasil link dari tahapan sebelumnya.

Proses overlay dilakukan dua kali dengan setting sesuai dengan tabel di bawah:

Proses Overlay Source Topology Overlay Topology Hasil Topologi Attribute Source Topology Attribute Overlay Topology Object Data Table Baru
Pertama Berkas Batas_Persil TP_Berkas :BERKAS@OD_BERKAS :NIB@OD_NIB OD_BERKAS_PRSL
Kedua Nama Batas_Persil TP_Nama :NAMA@OD_NAMA :NIB@OD_NIB OD_NAMA_PRSL

Cara overlay dan setting attribute di source dan overlay topology silakan mengacu ke [CAD-MAP-017]: Membuat tabel Microsoft Access dari Hasil Topology Analysis di AutoCAD Map .  Sedangkan tahapan overlay ini akan dilakukan dengan urutan pada printah command:

Sebelum melakukan tahapan dibawah topology Berkas, Nama dan Batas_Persil harus di-Load Topology dulu.

1. Mematikan kotak dialog.

Command: CMDDIA

Enter new value for CMDDIA <1>: 0

2.  Proses Overlay Pertama

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>
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>
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:

3. Proses Overlay Kedua

Ulangi tahapan seperti di nomer 2 dengan mengganti source topology, source topology table name dan result data table. sehingga akhirnya diapatkan dua (2) object data table yaitu OD_BERKAS_PRSL dan OD_NAMA_PRSL

Program autolisp setelah memasukkan perintah overlay:

(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

Copy list atau kode autolisp di atas ke text file dengan ekstensi .lsp misal analisa_overlay.lsp

cara penggunaan autolisp tersebut akan dijelaskan pada posting berikutnya.

E. Menyimpan Object Data ke Microsoft Access.

Agar hasil overlay tersebut bisa ditampilkan dalam bentuk table, maka object data table tersebut diexport dalam bentuk Text File (txt file) , Microsoft Excel ataupun Microsoft Acces. Cara export ke Text File dilakukan dengan topology query seperti dalam contoh [CAD-MAP-001]: Menghitung Luas Bidang Tanah dengan Autocadmap sedangkan jika ingin ditampilkan dalam bentuk Microsoft Excel dapat mengikuti cara connect data ke excel di [CAD-MAP-003]: Menghubungkan Excel Database ke Topology di Autocad Map Beserta dengan Query dan Analisanya.

Topology dan object data yang akan ditampilkan dalam microsoft access adalah:

Nama Table Sumber
TPMCNTR_Batas_Persil hasil topology polygon
OD_BERKAS_PRSL hasil overlay nomor berkas dan persil
OD_NAMA_PRSL hasil overlay nama dan persil

Langkah-langkah untuk export data ke access di bawah ini berasumsi bahwa database microsoft access (file *.accdb) telah dibuat:

1. Buat ODBC connection ke database microsoft access seperti di [CAD-MAP-017]: Membuat tabel Microsoft Access dari Hasiil Topology Analysis di AutoCAD Map misal pada contoh di bawah odbc connectionnya bernama odbc_accdb_peta_bidang

2. Hubungkan autocadmap / connect dengan ODBC di atas.

image

3. Ketik di Command:MAPOD2ASE

image

Lakukan setting:

Source Object Data Table : TPMCNTR_Batas_Persil
Target Link Template : Covert object to database
Object Selection : Select Automatically

4. Click tombol [Define]

Pilih Data Source: odbc_accdb_peta_bidang, kemudian click [Connect]

image

Click [OK] untuk menutup kotak dialog [Define Link Template]

5. Click [Proceed]

6. Ulangi langkah di atas untuk object data OD_BERKAS_PRSL dan OD_NAMA_PRSL

7. Hasil tahapan di atas adalah 3 (tiga) link templates. Double click salah satu link template tersebut untuk menampilkan tablenya

image

Tahap berikutnya adalah melakukan pengabungan data atau join table di microsoft access.

F. Join table di Microsoft Access.

Langkah untuk melakukan join table di Microsoft Access :

1. Terlebih dahulu disconnect / putus hungan antara autocadmap dengan odbc: odbc_accdb_peta_bidang.

image

2. Buka file database microsoft access yang terkoneksi ke odbc_accdb_peta_bidang.

Pada microsoft access sudah ditampilkan 3 (tiga) buah table hasil dari proses konversi obejct data table dari autocadmap.

image

2.1. Pada menu [Create], pilih icon [Query Design]

2.2. Pilih table OD_BERKAS_PRSL, OD_NAMA_PRSL dan TPMCNTR_Batas_Persil kemudian click [Add]

2.3. Pada area query design, Pilih field [ID] di table [TPMCNTR_Batas_Persil] kemudian hubungkan ke field [Batas_Persil_ID] di table [OD_BERKAS_PRSL]

2.4. Pilih lagi field [ID] kemudian hubungkan ke field [Batas_Persil_ID] di table [OD_NAMA_PRSL]

Hubungan antar table akan terlihat seperti gambar di bawah:

image

2.5. Jika ingin menampilkan kolom dengan urutan NIB, BERKAS, NAMA dan LUAS

Double click field [Batas_Persil_NIB] di table OD_BERKAS_PRSL –> menampilkan NIB

Double click field [BERKAS_BERKAS] di table OD_BERKAS_PRSL –> menampilkan BERKAS

Double click field [NAMA_NAMA] di table OD_NAMA_PRSL –> menampilkan NAMA

Double click field [AREA] di table [TPMCNTR_Batas_Persil]

2.6 Click icon Run untuk menjalankan query.

image

Hasil run query

image

Simpan query misal dengan nama : InformasiPersil kemudian tutup program microsoft.

Jika diinginkan hasil di microsoft excel, pilih nama query [InformasiPersil], kemudian pada menu [External Data], pilih icon [Export to Excel]

image

G. Menghubungkan Hasil Query Access dengan Object di AutoCAD.

Maksud dari tahapan ini adalah untuk mengecek hasil query di access apakah sesuai dengan letak lokasinya di autocad map.

1. Tutup file access dari tahapan sebelumnya.

2. Pada folder Data Sources, click kanan odbc_accdb_peta_bidang, kemudian click [Connect]

Nama query yang dibuat di microsoft access sudah ditampilkan.

image

Double click query [InformasiPersil], maka ditampilkan tabel hasil query di autocad map:

image

3. Buat Link Template dengan Key Column [NIB]

Saat Data View – InformasiPersil ditampilkan seperti di atas, pada menu [Links] pilih [Define Link Template]

cek Key Batas_Persil_NIB sebagai Key, kemudian click [OK]

image

Simpan / save autocadmap sehingga link template yang baru saja dibuat ditampilkan dalam folder  [Link Templates]

4. Generate Link ke Object NIB atau text NIB.

Lakukan quick select dengan mengetik di command :qselect

Object Type: Text
Properties: Layer
Operator: = Equals
Value: 080201
kemudian click [OK]

click kanan Link Template : [InformasiPersil] kemudian lakukan [Generate Links]

image

5. Double Click link template [InformasiPersil] kemudian lakukan setting Autoselect, Autohighlight dan setting Zoom Level sehingga saat record di data view dipilih, secara otomatis object yang terlinked dengan database otomatis terpilih dan ter-zoom.

Pada gambar di bawah terlihat bahwa record yang terpilih di Data View sudah sama dengan NIB, Nama dan Berkas yang ada di autocadmap:

image

Tutorial berikutnya akan dijelaskan bagaimana cara menggunakan autolisp dalam file analisa_overlay.lsp sehingga proses seperti dijelaskan dalam tutorial ini lebih cepat.

Sekian terimakasih.

Mohon maaf jika tutorialnya kepanjangan.

[CAD-MAP-017]: Membuat tabel Microsoft Access dari Hasiil Topology Analysis di AutoCAD Map

Referensi : [CAD-MAP-003]: Menghubungkan Excel Database ke Topology di Autocad Map Beserta dengan Query dan Analisanya
Platform : AutocadMap
Download :

 

Gambar di Autocad Hasil tabel yang diinginkan
image
ID Nama Luas
04.298.0 Tarsih
04.299.0 Yumiati
…. ….
dst dst

Jika telah mempunyai table di excel daftar ID bidang,nama, maka masalah tersebut akan dengan mudah diselesaikan sesuai dengan langkah-langkah tutorial di [CAD-MAP-003]: Menghubungkan Excel Database ke Topology di Autocad Map Beserta dengan Query dan Analisanya. Sedangkan pada tulisan kali ini diasumsikan tabel belum ada, sehingga perlu dibuat table baru yang nantinya akan di-linked kan dengan object text di autocad. Tabel yang akan dibuat tersebut nantinya berupa tabel dalam bentuk database Microsoft Access.

Berikut adalah tahapan membuat tabel di atas :

A. Setting ODBC ke Database Microsoft Access.

Sebelum dilakukan setting ODBC, buat database baru di Microsoft Access misal database tersebut diberi nama [pbt.accdb] kemudian buat satu tabel baru misal nama tabel tersebut adalah [berkas]. Stuktur tabel [berkas]:

image

Tabel ini nantinya akan digunakan untuk menyimpan “Text ID” yang diambil dari gambar autocad. Jika tabel sudah dibuat di file database pbt.accdb kemudian dilanjutkan dengan setting ODBC ke database access tersebut:

  1. Ketik ODBC pada [Search Windows], kemudian pilih [Set up ODBC Datasources (64-bit)]. Jika menggunakan OS 32-bit, pilih [Set up ODBC Datasources (32-bit)].
  2. Pada kotak dialog [Microsoft ODBC Administrator], di page/halaman [User DSN], click tombol [Add]
  3. Pada kotak dialog [Create New Data Source], pilih [Microsoft Access Driver] kemudian click tombol [Finish]
  4. Pada kotak dialog [ODBC Microsoft Access Setup], pada [Data Source Name] masukkan nama odbc connection, misal [odbc_accdb_pbt], kemudian click [Select]
  5. Pilih lokasi database [pbt.accdb], kemudian click [OK]
  6. kemudian click [OK] lagi untuk menutup kotak dialog [Microsoft ODBC Administrator].

Setting ODBC ke Database access sudah selesai. Selanjutnya adalah membuat data link di Autocad Map.

B. Setup Data Source dan Link Template di Autocad Map

image

  1. Pada Task Pane Map (workspace map), click kanan [Data Sources], kemudian pilih [Configure]
  2. Masukkan nama autocad map data source di text box [Data Source Name], misal namanya  odbc_accdb_peta_bidang, kemudian click [OK]
  3. Pada [Data Link Properties] di page [Connection], pilih [Use data source name] untuk memilih nama ODBC yang telah di setting di langkah yaitu odbc_accdb_pbt

image

4. Click page [Advanced], kemudian di setting [Access Permission] pilh [Read Write], kemudian click [OK]

Pada tahapan ini, data source di autocad map telah disetting untuk connect ke database microsoft access. Selanjutnya adalah mengisi tabel [Berkas] di database dengan “Text ID” yang diambil dari Autocad.

C. Membuat Link Tabel di Access dan Text di Autocad Map

  1. Pada Task Pane Map (workspace map), click kanan [Data Sources], kemudian pilih [Attach…]
  2. Kemudian pilih autocad map datasource yang telah dibuat di langkah B yaitu odbc_accdb_peta_bidang. Sehingga data sources ditampilkan seperti gambar berikut:

image

3. Dalam folder [Tables], Double Click table [Berkas] untuk menampikan isi tabel.

4. Pada spreadsheet [Data View], pada menu [Links] pilih [Define Link Template]

5. Pilih / check kolom [Key] pada baris [Berkas] kemudian click [OK].

Maksud dari setting ini adalah sebagai kunci / key untuk mencocokkan nilai di database dengan “Text Id” dari autocad adalah dengan menggunakan kolom [Berkas]

image

6. Simpan AutoCAD sehingga link template yang sudah dibuat ditampilkan di bawah folder Link Templates

image

7. Misal semua “Text ID” ada di layer [Berkas], lakukan quick select untuk memilih semua “Text ID” dengan mengetik di command:qselect

8. Pada kotak dialog Quick Select, lakukan filter  Object Type:Text , Operators : = dan Layer : Berkas. Click [OK], maka semua “Text Id” akan terpilih.

9. Click kanan Link Template [Berkas], kemudian pilih [Generate Link]

10. Pada kotak Generate Link pilih [Linkage Type]=Text, [Data Link]=Create Database Links, [Link Template]=Berkas dan [Database Validation]=Create if New

image

11. Click [OK]

12. Isikan prompt Text objects to generate from: [Select/All]<All>: S

Sehingga terpilih object yang telah dipilih menggunakan qselect

13. Double Link Template [Berkas], maka tabel berkas sudah terisi text dari autocad.

14. Pada Spredsheet [Data View], di menu [Highlight] pilih [Auto Zoom] dan [Auto Select] kemudian set [Zoom Scale]=10 untuk mengecek hasil link antara database dan autocad

15. Click record di [Data View], maka Text ID yang terpilih di [Data View] akan di-zoom dan dipilih pada gambar Autocad Map

image

Selanjutnya akan dilanjutkan membuat tabel baru di database yang terdiri dari kolom “Berkas”, “Nama”, “Luas” dengan menggunakan analisa topology.

D. Analisa Topology Overlay Topologi untuk menggabungkan kolom Berkas dan Nama

Secara garis besar prosesnya adalah sebagai berikut:

1. Lakukan clean-up dan buat polygon topology. Cara clean-up dan membuat topology ada di https://cadex.co/2018/03/24/menghitung-luas-bidang-tanah-dengan-autocadmap/.

2. Buat topology polygon dengan centroid (pusat poligon) menggunakan centroid object [Text] di Layer [Berkas]. Misal hasil nama topologynya : pol_ppt

3. Buat topolgy node / titik dengan object [Text] di Layer [Nama] dengan nama topology: pt_nama

image

4. Click kanan topolgy [pt_nama], pilih [Analysis] kemudian [Overlay]

5. Analysis Type: Intersect, kemudian click [Next]

6. Polygon Topology to Overlay: pol_pbt, kemudian click [Next]

7. Output Topology: ovl_nama_x_pbt, kemduian click [Next]

8. Lakukan setting pada output attribute:

image

Source Attributes: .STRING —> mengambil string atau isi text dari object text pada topology yaitu informasi nama

Overlay Attribute: .AREA@TPMCNTR_pol_pbt —> mengambil informasi luas dari topology polygon pol_pbt

Overlay Attribute: &BERKAS@Berkas —> mengambil informasi Nomor Berkas dari Link Template Berkas

9. Click [Finish]

 

E. Tulis Object Data Hasil Overlay ke Database Access.

Hasil overlay menghasilkan tabel od_nama_berkas yang berisi informasi kolom nama, luas dan nomor berkas. Agar obeject data bisa dibaca di database access, lakukan tahapan sebagai berikut:

1. Ketik pada command:mapod2ase

2. Source object data table: od_nama_berkas

3. Target Link Template: convert object data to database.

4. Click [Define]

5. Data Source: odbc_accdb_peta_bidang, kemudian click [Connect]. Kemudian setting seperti gambvar di bawah:

image

6. Click [OK]

7. Pada Object Selection: Automatically

8. click [Proceed]

9. Autocadmap akan membuat Link Template baru bernama od_nama_berkas sesuai dengan setting di langkah E.5

10. Untuk melihat hasil tabel di database, pada folder datasource, click kanan odbc_accdb_peta_bidang kemudian pilih [Detach]

11. Kemudian ulangi lagi attach datasource ke data source tersebut.

12. Data source akan menambahkan tabel baru bernama [BerkasLuas] sesuai dengan setting di langkah E.5

image

==selamat mencoba===

[CAD-MAP-16]: Network Topologi untuk Menampilkan Informasi Jarak

Reference : [CAD-MAP-12]: Menulis Text Jarak dan Azimut Menggunakan Query dan Annotation di AutocadMap
Platform : Autocad Map
Download :  

 

Pada tulisan [CAD-MAP-12]: Menulis Text Jarak dan Azimut Menggunakan Query dan Annotation di AutocadMap telah dijelaskan beberapa cara untuk menampikan dimensi jarak pada object garis dan azimuth di autocad. Tulisan kali ini adalah contoh penerapan atau tutorial lebih lanjut dari tulisan sebelumnya.

Contoh gambar di bawah hasil pengukuran bidang tanah yang telah diberi dimensi jarak di tiap sisi bidang tanah.

image

Biasanya penulisan jarak ini dilakukan secara manual dengan menggunakan tool dimension di autocad atau menggunakan tool distance kemudian menulis hasil jaraknya dalam bentuk text di sisi bidang tanah. Tentunya hal ini akan menjadi pekerjaan yang membosankan atau melelahkan jika terdapat bidang yang sangat banyak. Saya akan memberikan trik bagaimana cara membuat label secara cepat dengan menggunakan tool network topology query dalam autocad map.

Agar proses bisa dilakukan lebih efektif dan efisien perlu diperhatikan hal-hal sebagai berikut:

  1. Object yang akan diberi dimensi harus berupa Line bukan Polyline dan terletak pada layer yang sama. Misal layer lama : 020100
  2. Buat layer baru misal: 020100L untuk menampung garis yang akan diberi dimensi sehingga tidak merubah object di layer sebelumnya (020100)
  3. Buat layer baru misal: 020100D untuk menampung tulisan dimensi sisi bidang.

Contoh gambar yang akan diberi dimensi jarak:

image

Langkah-langkahnya adalah sebagai berikut:

1. Buat layer baru untuk menampung object garis yang akan diberi label misal: 020100L dan layer untuk menampung text dimensi misal 020100D

2. Untuk mempermudah identifikasi lakukan setting warna layer yang berbeda masing-masing untuk layer 020100L dan 020100D

3. Copy object di layer 020100 ke layer 020100L:

3.1. Lakukan quick select untuk memilih semua object di layer 020100. Ketik di command: qselect

3.2. Pilih Properties: Layer, Operator:= Equals dan Value: 020100 kemudian click [OK] sehingga semua object di layer 020100 terpilih.

3.3. Copy object terpilih dengan mengetik di command: COPYTOLAYER

3.4. Select object on destination layer or [Name] <Name>: N

3.5. Kemudian pilih layer 020100L

3.6. Specify base point or [Displacement/eXit] <eXit>: X

 

4. Cek object di layer 020100L, jika object polyline, lakukan explode sehingga menjadi object line.

4.1. Ketik di command: qselect

4.2. Pilih object type: Polyline, Properties: Layer, Operator:= Equals dan Value: 020100L kemudian click [OK]

4.3. Ketik di command: EXPLODE

 

5. Membuat Network Topology

5.1. Jika map task pane belum aktif, ketik di command: MAPWSPACE, kemudian pilih: ON

5.2. Pada tab [Map Explorer], click kanan [Topologies], kemudian pilih [Create]

5.3. Pada tahapan [Topology Type], pilih Type: Network, Topology Name : NetLine kemudian click [Next]

5.4. Pada tahapan [Select Links], pilih Layer: 020100L, kemudian click [Finish]

5.5. Network topology [NetLine] akan ditambahkan dalam group [Topologies] di map explorer

image

 

6. Topology Query

6.1. Click kanan topologi [NetLine], pilih [Analysis] kemudian [Topology Queries]

6.2. Pilih [Define Query]

6.3. Pada kotak dialod Define Query, click [Location], kemudian piliha [All]

6.4. Pada Query Mode, pilih [Draw]

6.5. Check kemudian Click [Alter Properties] pada group [Options]

6.6. Pada kotak dialog [Set Properties Alteration], click tombol [Text]

6.7. Pada kotak dialog [Define Text], click tombol [Expression]. Pilih [Direct Resitance] di bawah group [Network Link] pada topology [NetLine], kemudian click [OK]

image

6.8. Lakukan modifikasi isian di Text Value semula: :DIRECT_RESISTANCE@TPMLINK_NetLine menjadi (RTOS :DIRECT_RESISTANCE@TPMLINK_NetLine 2 2) agar text jarak ditampilkan dalam format 2 angka desimal.

6.9. Isikan Text Height: 2, Layers: 020100D

6.10. Lakukan modifikasi di Rotaion semula: 0 menjadi: (/ (* .ANGLE 180) pi) agar rotasi text sesuai dengan arah garis, kemudian click [OK]

6.11. Tampilan Text Properties Alteration menjadi:

image

6.12. Click [OK], kemudian [Execute Query].

Gambar setelah execute query:

image

6.13. Jika dianggap perlu, set layer 020100L menjadi OFF

~~selamat mencoba~~

[CAD-MAP-15]: Memotong Gambar dengan Express Tools : Extrim.lsp

Reference : Autocad Online Help Manual
Platform : Autocad
Download : download

 

Sekitar tahun 1999, saya sering menggunakan fasilitas memotong-motong peta atau clipping peta menggunakan tool "cookie cutter" pada menu express tools. Sayangnya setelah Autocad 2005, fasilitas tersebut sudah dihilangkan dari express tools. Pada berbagai forum autodesk menyarakan untuk menggunakan fungsi yang hampir sama dengan "cookie cutter" yaitu perintah extrim.lsp yang juga terdapat pada menu express tools.

Misalkan saya mempunyai peta bidang tanah, kemudian akan dipotong sesuai dengan batas polyline berwarna merah:

  1. ketik di command:extrim
  2. pilih polylines warna merah sebagai batas polyline
  3. kemudian click area di luar batas merah / polyline merah
image image
Sebelum dipotong Setelah dipotong

Hasil perintah extrim masih meninggal objects di luar garis potong, sehingga jika object tersebut tidak diinginkan atau dihilangkan, maka dilakukan pemilihan object secara manual. Agar proses erase atau delete tidak dilakukan secara manual, Saya telah melakukan sedikit modifikasi autolisp yang dibuat oleh azarko di http://forums.augi.com/showthread.php?55056-Erasing-everything-outside-a-boundary

Berikut modifikasi autolisp yang dimaksud:

;function: delete all entities outside closed polylines.
;required "extrim.lsp" from express tools
;the lisp is modification from "Erases Everything OutSide Contour Delete with Extrim"
;published on : http://forums.augi.com/showthread.php?55056-Erasing-everything-outside-a-boundary
;modified by: zainul_ulum@cbn.net.id
;modification-01: 30 March 2018
;additonal requirement: closed polylines as boundary for clipping/trimming are located on layer "z_clip"

(defun c:zdob ( / *error* o_cmdecho o_osmode clip_layer aDoc ff filter ss nn kk en)

  (defun *error* (msg);;error handling
    (princ msg);display error message
    (setvar "cmdecho" o_cmdecho);restore to prev cmdecho
    (setvar "osmode" o_osmode);restore to old prev mode
    ;end undo marking
    (vla-EndUndoMark aDoc)
      );end error handling

 
  (vl-load-com);load autolisp com
  (setq o_cmdecho (getvar "cmdecho"));get current cmdecho variable
  (setq o_osmode (getvar "osmode"));get current osnap variable
  (setq clip_layer "z_clip");layer where boudary polylines are located
  (setq aDoc (vla-get-activedocument (vlax-get-acad-object)));get activedocument / active document

  ;setting new system variables prior to process trimming
  (setvar "cmdecho" 0)
  (setvar "osmode" 0)

  ;starting undo Marking
  (vla-StartUndoMark aDoc)

  ;select one polyline boundaries on layer z_clip
  (setq filter (cons 8 clip_layer))
  (setq ss (ssget ":S" (list filter)))
  (setq en (ssname ss 0)); select only one entity
    (if
          (wcmatch (cdr (assoc 0 (entget en))) "*POLYLINE")
    (progn
      ;start trimming
      (delete_outside_boundary en)
      ;save trimmed drawing
      ;start
      );end progn "*POLYLINE"
    );end if
       
;restore prev variables and end undo marking
    (setvar "cmdecho" o_cmdecho);restore to prev cmdecho
    (setvar "osmode" o_osmode);restore to old prev mode
    (vla-EndUndoMark (vla-EndUndoMark aDoc))
);end obd
(princ "\nType zdob")
(defun delete_outside_boundary (en)
  ;some functions are referred to extrim.lsp
  (setq bbox (ACET-ENT-GEOMEXTENTS en))
  (setq bbox (mapcar ‘(lambda (x) (trans x 0 1)) bbox))
  (setq lst (ACET-GEOM-OBJECT-POINT-LIST en 1e-3))
  (ACET-SS-ZOOM-EXTENTS (ACET-LIST-TO-SS (list en)))
  (command "_.Zoom" "0.95x")
  (if (null etrim)
    (load "extrim.lsp")
    );end if

  (etrim en
     (polar
       (car bbox)
       (angle (car bbox) (cadr bbox))
       (* (distance (car bbox) (cadr bbox)) 1.1))
     );end etrim
  (if (and (setq ss (ssget "_CP" lst))
       (setq ssall (ssget "_X" (list (assoc 410 (entget en)))))
       );and
    (progn
      (setq lst (vl-remove-if ‘listp (mapcar ‘cadr (ssnamex ss))))
      (foreach e1 lst (ssdel e1 ssall))
      (ACET-SS-ENTDEL ssall)
      );end progn
    );end if
    ;(command "_erase" en "")
);end delete outside boundary

Cara penggunaan program di atas adalah:

  1. Copy >> paste program di atas ke notepad.
  2. Simpan file dengan extensi .lsp misal nama filenya adalah dob.lsp
  3. Load program zdob.lsp ke autocad
  4. Ketik di menu command:zdob
  5. Pilih Polyline di layer :z_clip

Autolisp akan menghapus semua object selain objecs di dalam polyline.

image

 

~~~selamat mencoba~~~

[CAD-MAP-12]: Menulis Text Jarak dan Azimut Menggunakan Query dan Annotation di AutocadMap

Referensi : [CAD-MAP-11]: Labelling Titik Tinggi Menggunakan Annotation di AutocadMap
Platform : AutocadMap, Land Development dan Civil 3D
Lokasi File :  

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==