coretan tentang autocad dan excel

January 7, 2012

[CAD-CIV-12]: Mengisi Elevasi Garis Kontur dari Text Label Kontur

Filed under: Civil3D — Tags: — cadex @ 10:33

 

Referensi :  
Platform : Civil 3D 2011
Lokasi File :  

Kadang kita menerima file CAD berisi garis kontur, biasanya berupa polyline, beserta labelnya. Tetapi setelah dicek properties dari polyline tersebut nilai elevasi dari poliline masih bernilai 0 atau tanpa elevasi. Keadaan seperti ini akan menyusahkan kita saat akan mengolah kontur tersebut untuk dijadikan surface di civil 3D.

Kali ini saya akan berbagi bagaimana cara mengolah polyline tersebut sampai menjadi surface dalam civil 3D mulai dari mengambil object kontur dari file asal CAD. Karena saya menerima file CAD dalam format microstation (dgn), maka tahapan untuk  pengolahannya adalah:

1. Import file dgn ke civil 3D

2. Cleanup Polyline

3. Mengisi Elevasi ke Polyline dengan Autolisp

4. Membuat Surface

Detail tiap tahapannya adalah:

1. Import file microstation (dgn) ke civil 3D

  • Terlebih dahulu, jalankan civil 3D dengan pilihan satuan metric.
  • Jika menu command: prompt tidak tampil, tekan Ctrl+9 untuk menampilkannya.
  • Masukkan perintah  di command: dgnimport
  • Pilih file yang akan diimport, kemudian click [OK]
  • Zoom Extend untuk melihat hasil import
  • image
  • pilih atau select object kontur kemudian tekan Ctrl+1  untuk melihat propertiesnya
  • image
  • Berdasarkan informasi dari properties:
  • object kontur berupa Polyline ada di Layer [Level 58] dengan nilai Elevasi = 0.000

Lakukan hal yang sama untuk memilih object kontur yang lain untuk mengecek jika ada object kontur yang tersimpan dalam Layer yang berbeda.

Dalam contoh di atas, object kontur tersimpan juga di Layer [Level 59] untuk kontur majornya.

 

 

 

 

  • Pilih object Label Kontur, kemudian check propertiesnya. Dalam contoh di atas, Label untuk kontur minor adalah berupa object Text tersimpan di layer [Level 58] sedangkan untuk label majornya ada di [Level 59]

2. Cleanup Polyline

  • Matikan semua layer, kecuali [Layer 58] dan [Layer 59]
  • zoom in ke group kontur berlabel, khusunya ke kontur berlabel yang rapat. Misalnya hasil zoom in seperti berikut:

image

  • Gambar di atas, terlihat beberapa garis kontur terpotong oleh labelnya. Garis kontur yang terpotong ini seharusnya digabung terlebih dahulu sebelum diproses pemberian elevasi yang akhirnya dibuat sebagai surface di civil 3D.
  • Dengan fasilitas Tools>>Clean Up di autodeskmap (sudah terinstall di civil 3D), proses penggabungan ini bisa dilakukan secara otomatis.
  • Ukur jarak kontur yang terpotong. Misal didapat Distance = 5.583 meter
  • Dengan Clean Up bisa ditentukan bahwa semua polyline yang mempunyai gap maksimal 5.6 m akan dihubungkan atau digabung (join polyline). Tetapi perlu diperhatikan bahwa untuk kontur berlabel rapat hal ini akan meyebabkan salah penggabungan. Dalam gambar di atas yang dilingkari warna biru, karena jarak antara kontur minor dan majornya leboh kecil dari 5.583 m, maka polyline untuk kontur 12.5 akan menyambung ke kontur 13.0. Kesalahan ini tidak terjadi untuk daerah yang ditandai dengan kotak biru karena jarak antar kontur berlabel, lebih dari 5.583
  • Untuk menghindari kesalahan di atas, untuk kontur berlabel rapat harus dihubungkan secara manual sebelum dilakukan clean up
  • Jika sudah dilakukan penggabungan di kontur berlabel rapat, maka kontur sudah siap untuk clean up
  • masukkan perintah di command: mapclean
  • Pilih [Select all], kemudian pilih lokasi layer tempat object yang akan di cleanup:
  • image
  • Click [Next]
  • Pilih [Cleanup Actions], [Snap Clustered Nodes], kemudian click [Add].
  • Masukkan Cleanup parameters tolerance 5.6m “semua node yang mempunyai gap lebih kecil 5.6 meter akan digabungkan”
  • Pilih lagi [Cleanup Actions], [Dissolve Pseudo Nodes], kemudian click [Add] “node yang sudah tergabung akan di join sebagai satu polyline”

image

  • Click [Finish]
  • Lakukan re-checking, jika ada polyline yang terhubung tidak benar, lakukan edit secara manual
  • Gambar Kontur yang telah terhubung polylinenya

image 

3. Mengisi Elevasi ke Polyline dengan Autolisp

Agar polyline kontur tersebut bisa diubah menjadi surface, maka tiap polyline harus dipudate properties elevasinya sesuai dengan angka yang tertera di label. Proses update ini bisa dilakukan degan perintah command line command:_change.

Contoh di bawah adalah merubah properties elevasi polyline menjadi 12.

Command: _change

Select objects: 1 found

Select objects:
Specify change point or [Properties]: p

Enter property to change
[Color/Elev/LAyer/LType/ltScale/LWeight/Thickness/TRansparency/Material/Annotative]: e

Specify new elevation <12.000>: 12

Enter property to change
[Color/Elev/LAyer/LType/ltScale/LWeight/Thickness/TRansparency/Material/Annotative]:

Dengan cara di atas, kita akan selalu memasukkan (input) nila elevasi secara manual dan selalu mengulang perintah _change.

Saya telah membuat program Autolisp sederhana yang bisa membaca angka di label kontur untuk kemudian dimasukkan ke properties elevasi polyline sesuai dengan nilai yang tertera di label.

(Defun c:SetElev()
  ;;fungsi ini dipakai untuk merubah elevasi polyline kontur
  ;;sesuai dengan tulisan atau labelnya (contour label)
  ;;caranya adalah pilih labelnya terlebih dahulu, kemudian pilih polyline
  ;;yang akan diberi elevasi
 
  (vl-load-com)(gc)
  (setq acaddoc (vla-get-activedocument (vlax-get-acad-object)))
  (setq ent (car(entsel "\nPilih Text>>")))
  (while (/= ent nil)
  (setq obj (vlax-ename->vla-object ent))
  (setq nmObj (vla-get-objectname obj))
  (if (= nmObj "AcDbText");;object harus bertype text
    (progn
        (setq elev (atof (vla-get-textstring obj)))
        (setq obj (vlax-ename->vla-object (car (entsel "\nPilih Polyline>>"))))
    (setq nmObj (vla-get-objectname obj))
    (if (= nmObj "AcDbPolyline");;object harus bertype polyline
      (progn
        (setq nmLayer (vla-get-layer obj))
        (vla-put-elevation obj elev);;rubah elevasi
        (vla-update obj);;update object
        );prgn "AcDbPolyline
    );end if
   
    );progn "AcDbText"
  );end if
  (setq ent (car(entsel "\nPilih Text>>")))
  );end while
)

Copy code autolisp di atas ke program notepad, kemudian save as dengan extensi *.lsp. Misal nama filenya adalah SetElevasiDariText.lsp

Load autolisp SetElevasiDariText.lsp dengan mengetikkan perintah di command:appload

Pilih filenya, kemudian click [Load] akhiri dengan clisk [Close]

cara menjalankan programnya adalah

  • Ketik di command:SetElev
  • Pilih Label Kontur pada saat muncul perintah Pilih Text>>
  • Kemudian Pilih Polyline yang akan dirubah elevasinya saat muncul perintah Pilih Polyline>>
  • Begitu seterusnya, sehingga semua polyline terisi elevasi
  • untuk mengakhirinya tekan tombol Enter atau ESC

4. Membuat Surface

Apabila semua polyline sudah terisi elevasi, maka proses pembuatan surface dapat dimulai.

  • Aktifkan toolspace civil 3D jika toolspace belum aktif dengan cara mengetik di command:showts
  • Pada toolspace, pilih tab [Propector], kemudian click kanan [Surfaces], lalu pilih [Create Surface]
  • Masukkan nama surface dan stylenya atau click [OK], jika akan memakai style dan nama sesuai dengan template yang aktif.
  • Surface baru telah terbentuk :

image

  • Polyline kontur akan dimasukkan ke Surface1 dengan merubah polylines tersebut menjadi Breaklines. Karena dalam civil 3D belum saya temukan cara membuat surface dari polyline seperti yang ada di land development
  • di bawah group Surface 1, Click kanan icon [Breaklines], kemudian pilih [Add Breaklines]
  • Tulis Descriptionnya, pilih Type [Standard], akhiri dengan click [OK]
  • Kemudian pilih kontur polylines nya..
  • Surface 1 sudah terbentuk. Lakukan editing surface untuk pengecekan lebih lanjut.

===selamat mencoba===

Leave a Comment »

No comments yet.

RSS feed for comments on this post.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.

%d bloggers like this: