;========================================
; < cross-sungai.lsp >
; ** crss **
; plot data cross sungai
; 20 September 2003
;========================================
(defun c:crss ()
(setvar "dimzin" 1)
(setvar "blipmode" 1)
(setvar "cmdecho" 1)
(princ "\n Format data <10><10>: B1:<No Patok> B2<Datum> B3<Jarak - Elv> ")
(setq p0 (getpoint "\nTitik Awal Gambar Cross : "))
(setq p00a (polar p0 (* 1.5 pi) 150))
(setq p00b (polar p0 (* 1.5 pi) 300))
(setvar "dimzin" 0)
(setvar "blipmode" 0)
(setvar "cmdecho" 0)
;=======================
; skala gambar
;=======================
; (setq ssv (getreal "\nSkala Vertikal < 100 200 : 100 >?:"))
(setq ssv 100)
(setq ssh 100)
(if (equal ssv nil)
(setq scy 100.0)
(setq scy ssv)
)
;(setq ssh (getreal "\nSkala Horizontal < 100 200 500 : 100 >?:"))
(if (equal ssh nil)
(setq scx 100.0)
(setq scx ssh)
)
(setq scv (/ 1000 scy)
sch (/ 1000 scx)
)
;======== INPUT FILE DATA ++++
(setq fnam1 "/Procad/Data/")
(setq fnam2 "*.prn")
(setq lastLL 2 lastRR 5)
(setq f (getstring (strcat "\nFile Input Data Cross c:/procad/data/ < " fnam2 " > ? : ")))
(if (/= f "") (setq fnam2 f))
(setq fnam (strcat fnam1 fnam2))
(setq check (findfile fnam))
(while (= check nil) (prompt "\nFile Not Found .....! ")
(setq f (getstring (strcat "\nFile Input Data Cross c:/procad/data/ < " fnam2 " > ? : ")))
(if (/= f "") (setq fnam2 f))
(setq fnam (strcat fnam1 fnam2))
(setq check (findfile fnam))
) ; while
;===================================================================
;====== BACA DATA ======================================== BARIS 1 =
(setq fp (open fnam "r"))
(setq file (read-line fp)) ; baris 1 no. patok
(if (= file "") (setq file nil))
(if (= file nil) (setq stop 1) (setq stop 0))
(setq noptk (atof (substr file 11 10))) ; No.patok
(setq file (read-line fp)) ; baris 2
(setq eldat (atof (substr file 11 10))) ; Elevasi datum
(setq file (read-line fp)) ; baris 3
(setq file (read-line fp)) ; baris 4
(setq jar0 (atof (substr file 1 10))) ; jarak datar 0
(setq elt1 (atof (substr file 11 10))) ; elevasi 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) "")
(command "color" 7)
(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 "text" "j" "tc" '(346.0 113.0) "3.5" 0 (strcat "P." (rtos noptk 2 0)))
(command "text" "j" "tc" p01tx "2.5" 90 (rtos elt1 2 2))
(if (> eldat 0)
(command "text" "j" "bl" p51 "2.5" 0 (strcat "+" (rtos eldat 2 2) " m"))
(command "text" "j" "bl" p51 "2.5" 0 (strcat (rtos eldat 2 2) " m"))
);if
(command "text" "j" "ml" p52 "2.5" 0 "ELEVASI (m)")
(command "text" "j" "ml" p53 "2.5" 0 "JARAK (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 file (read-line fp)) ; baris 4
(setq jar1 (atof (substr file 1 10))) ; jarak datar 1
(setq elt (atof (substr file 11 10))) ; elevasi titik pertama
;====
(if (= jar1 "")
(setq jar1 nil)
)
(if (= jar1 nil)
(setq stop 1)
(setq stop 0)
)
(while (= stop 0)
(setq jar (- jar1 jar0))
(setq jar0 jar1)
(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)
)
(if (< (* jar sch) 10)
(setq sdttx2 90) (setq sdttx2 0))
(command "color" 7)
(command "text" "j" "bc" p2tx1 "2.5" 90 (rtos elt 2 2))
(command "text" "j" "mc" p2tx2 "3.0" sdttx2 (rtos jar 2 2))
(setq p0 p2)
(setq p01 p21)
(setq file (read-line fp)) ; baris 5 dst
(setq jar1 (atof (substr file 1 10))) ; jarak datar 1
(setq elt (atof (substr file 11 10))) ; elevasi titik pertama
;plot patok
(if (= jar1 "")
(setq jar1 nil)
)
(if (= jar1 nil)
(setq stop 1)
(setq stop 0)
)
) ;while
(close fp)
)
;;defun
Berikut langkah-langkah menggunakan program ini :
1. Copy dan paste list program diatas di note pad atau di program AutoLisp, simpan dengan nama cross-sungai.lsp atau langsung download program autolisp yang sudah saya siapkan (cross-sungai.lsp ) dan tempatkan di folder yang anda pilih
2. Buat file input data dengan excel sebagai berikut :
• Buka lembar kerja baru dalam excel
• Edit lebar kolom A dan B menjadi 10 dengan cara (select kolom A dan B > Format> column width> 10> OK)
• Pada cell A1 : isi dengan nomor patok, misalnya : P1
• Pada cell A2 : isi dengan elevasi datum (bidang referensi) dari gambar cross section. (ambil elevasi terendah dari data yang akan digambar (mis:13.45), kurangi dengan 3 sampai 5 dan ambil harga bulat, (misalnya diambil nilai datum 10.00))