Halaman

Minggu, 13 Juni 2010

Menggambar Profil Tanah Asli dengan AutoLisp


    Dalam perencanaan bidang sipil pada umumnya, diperlukan data profil muka tanah asli hasil pengukuran, seperti : perencanaan saluran irigasi maupun drainase, bangunan irigasi pada umumnya, perencanaan jalan, jembatan, dan lain-lain. Untuk itu diperlukan pekerjaan pengukuran topografi dan penggambaran hasil pengukuran.
Pada postingan kali ini kami tulis sebuah program AutoLisp sederhana yang berfungsi untuk menggambar potongan tanah asli dari data hasil pengukuran secara langsung di Auto CAD. Data elevasi tanah asli dan jarak antar elevasi diinput langsung melalui command window AutoCad.
    Program ini banyak kita butuhkan pada saat menggambar bangunan air untuk pekerjaan irigasi, dimana sebelum mulai menggambar denah bangunan, terlebih dahulu kita gambar cross saluran di hulu dan hilir bangunan. Demikian juga bangunan air pada umumnya. Dengan AutoLisp ini penggambaran cross section tanah asli menjadi lebih mudah.
List programnya sebagai berikut:
;========================================
;             < cros-sit.lsp >           
;            ** cross-situasi **         
;      Gambar potongan tanah asli        
;         26 September 2001              
;   http://hydrodesign10.blogspot.com    
;========================================

(defun c:cs ()
  (setvar "dimzin" 0)
   (setvar "blipmode" 0)
    (setvar "cmdecho" 0)
  
(setq osn (getvar "osmode"))
(setvar "osmode" 0)

; Setting skala gambar
(setq p0 (getpoint "\nTitik awal plot level :"))
(setq ss (getreal  "\nSkala Vertikal    < 50 100 200 300 : 100 >?:"))
         (if (equal ss nil)(setq scy 100.0)(setq scy ss))
(setq ss (getreal "\nSkala Horizontal  < 50 100 200 300 : 100 >?:"))
         (if (equal ss nil)(setq scx 100.0)(setq scx ss))
         (setq scv (/ 1000 scy) sch (/ 1000 scx))
; Input data langsung
  (setq eldat (getreal "\nElevasi datum         :"))
  (setq elt1  (getreal "\nElevasi titik pertama :"))
  (setq p01   (polar p0 (* 0.5 pi) (* (- elt1 eldat) scv)))

  (command "color" 20 "-linetype" "s" "dashed2" "")
  (command "line" p0 p01 "")
  (command "color" 20 "-linetype" "s" "continuous" "")
  (command "line" p0 (polar p0 (* 1.5 pi) 20) "")
  
  (setq p01tx (polar p0 (* 1.5 pi) 5))
  (setq p50 (polar p0 pi 20))
  (setq p51 (polar p0 pi 30))
  (setq p52 (polar p51 (* 1.5 pi) 5))
  (setq p53 (polar p52 (* 1.5 pi) 10))
  (setq p54 (polar p0 pi 33))
  (setq p55 (polar p54 (* 1.5 pi) 10))
  (setq p56 (polar p55 (* 1.5 pi) 10))
  (command "color" 7)
  (command "text" "j" "tc" p01tx "2.5" 90 (rtos elt1 2 2))
  (command "text" "j" "bl" p51   "2.5"  0 (strcat "+" (rtos eldat 2 2) "m"))
  (command "text" "j" "ml" p52 "2.5" 0 "Elevation (m)")
  (command "text" "j" "ml" p53 "2.5" 0 "Distance  (m)")
  (command "color" 50 "-linetype" "s" "continuous" "")
  (command "line" p0 p54 "")
  (command "color" 20 "-linetype" "s" "continuous" "")
  (command "line" p55 (polar p55 (* 0.0 pi) 33) "")
  (command "line" p56 (polar p56 (* 0.0 pi) 33) "")
  (command "line" p54 p56 "")

  (setq jar (getreal "\nJarak datar (m) :"))
  (if (= jar "")(setq jar nil))
  (if (= jar nil)(setq stop 1)(setq stop 0))

  (while (= stop 0)
    (setq elt (getreal "\nElevasi        :"))
    (setq p2  (polar p0 0 (* jar sch))
  p21 (polar p2 (* 0.5 pi) (* (- elt eldat) scv)))
    (command "color" 20 "-linetype" "s" "dashed2" "")
    (command "line" p2 p21 "")
    (command "color" 20 "-linetype" "s" "continuous" "")
    (command "line" p01 p21 "")
    (command "color" 50 "-linetype" "s" "continuous" "")
    (command "line" p0 p2 "")
    (command "color" 20 "-linetype" "s" "continuous" "")
    (command "line" (polar p0 (* 1.5 pi) 10)(polar p2 (* 1.5 pi) 10)"")
    (command "line" (polar p0 (* 1.5 pi) 20)(polar p2 (* 1.5 pi) 20)"")
    (setq p22 (polar p2 (* 1.5 pi) 20))
    (command "line" p2 p22 "")
    (setq p2tx1 (polar p2 (* 1.5 pi) 5)
  p2tx3 (polar p0 0 (* (/ jar 2) sch))
  p2tx2 (polar p2tx3 (* 1.5 pi) 15))
    (command "color" 7)
    (command "text" "j" "bc" p2tx1 "2.5" 90 (rtos elt 2 2))
    (command "text" "j" "mc" p2tx2 "3.0" 0 (rtos jar 2 2))
    (setq p0 p2)
    (setq p01 p21)
    (setq jar (getreal "\nJarak datar (m) :"))
    (if (= jar "") (setq jar nil))
    (if (= jar nil)(setq stop 1)(setq stop 0))
  ) ;while
)   ;;defun

Berikut langkah-langkah menggunakan program ini :
1.     Copy dan paste list program diatas di program Autolisp dan simpan. Atau download cros_sit.lsp tempatkan di folder yang anda pilih
2.     Buka program AutoCAD
3.     Load program dengan cara : Klik menu Tools > Load Application > cros-sit.lsp (cari di folder tempat anda menempatkan file) > Load > Close
4.     Pada Command Window di Auto CAD ketik “cs” lalu tekan tombol enter
5.    Pada langkah awal akan muncul pertanyaan "Titik awal plot level :", maka tentukan titik awal anda akan menggambar cross section di bidang gambar
6.    Kemudian tentukan skala vertikal gambar cross section (1:50, 1:100, 1:200, atau 1:300), misalnya 1:100 maka ketik angka 100, atau tekan enter langsung maka akan ditentukan skala 1:100.
7.    Kemudian tentukan skala horisontal gambar cross section (1:50, 1:100, 1:200, atau 1:300)
8.    Kemudian input elevasi bidang persamaan gambar, misalnya pada gambar contoh di bawah elevasi bidang persamaannya adalah + 10.00 m, maka ketik angka 10.
9.    Selanjutnya akan ditanyakan data elevasi dan jarak. Penggambarannya mulai dari kiri. Seperti gambar contoh di bawah, maka inputnya adalah :
    14.70 <enter>
    2.30    <enter>
    14.30  <enter>
    0.60    <enter>
    ... dst sampai data habis
    Jika data telah habis, tekan enter saja pada data jarak
Pada list program diatas, telah ditentukan jumlah angka di belakang koma adalah 2 angka, namun anda dapat menggantinya menjadi 3 angka di belakang koma dengan cara mengganti perintah berikut:
         (command "text" "j" "bc" p2tx1 "2.5" 90 (rtos elt 2 2))
    (command "text" "j" "mc" p2tx2 "3.0" 0 (rtos jar 2 2))
menjadi:
    (command "text" "j" "bc" p2tx1 "2.5" 90 (rtos elt 2 3))
    (command "text" "j" "mc" p2tx2 "3.0" 0 (rtos jar 2 3))




12 komentar:

  1. terima kasih,sangat membantu saya...GBU !

    BalasHapus
  2. maaf maksud dari elevasi datum di kondisi lapangan itu apa ya?apakah itu elevasi dasar sungai?
    Thx

    BalasHapus
  3. Elevasi datum yang dimaksud yaitu elevasi bidang referensi yang akan kita ambil sebagai dasar penggambaran profil melintang. Misalnya dari data cross yang ada elevasi minimumnya +100.20, maka datum dapat kita ambil + 97.00.

    BalasHapus
  4. mantp cuy,,
    sangat membantu dalam membuat tase jalan :)

    BalasHapus
  5. maaf mas, link downloadnya udah rusak, boleh tolong di upload ulang mas filenya,, thanks mas

    BalasHapus
  6. makasih mas, sangat membantu :)

    BalasHapus
  7. Softwarenya tidak bisa di download mas, mohon bantuannya.

    BalasHapus
  8. Makasih mas tp kalo teksnya yg muncul cuma 0 dan 90 mohon bantuannya mas

    BalasHapus
  9. untuk jumlah angka di belakang koma apa bisa saya ubah?

    BalasHapus