Search

Selasa, 02 Agustus 2011

Membuat notasi denah pintu & jendela


Bagi anda yg ingin mempermudah dalam membuat gambar notasi denah pintu, berikut ini adalah program autolispnya :

(command "undo" "be")

(command "-layer" "new" "kusen" "color" "74" "kusen" "L" "continuous" "kusen" "")
(command "-layer" "new" "hid" "color" "12" "hid" "L" "hidden" "hid" "")
(command "-layer" "new" "glass" "color" "140" "glass" "L" "continuous" "glass" "")


(defun awal ()
   (initget 1)
   (setq pt1 (getpoint "\nStart: "))
   (initget 1)
   (setq pt (getpoint pt1 "\nDirection: "))
   (setq ang (angle pt1 pt))
   (setq angt (angtos ang 4 4))
)

(defun bukaan1 ()
   (initget 7)
   (setq len (getreal "\nOpening: "))
   (setq len1 (+ (/ len 2 ) 50))
   (setq len2 len)
)

(defun bukaan2 ()
   (initget 7)
   (setq len (getreal "\nOpening: "))
   (setq len (/ len 2))
   (setq len1 (+ (/ len 2 ) 50))
   (setq len2 len)
)

(defun titik1 ()
   (setq pt2 (polar pt1 (+ ang (/ pi 2)) 150))
   (setq pt3 (polar pt2 ang 40))
   (setq pt4 (polar pt3 (- ang (/ pi 2)) 40))
   (setq pt5 (polar pt4 ang 10))
   (setq pt6 (polar pt5 (- ang (/ pi 2)) 110))
   (setq pt7 (polar pt1 ang len1))
   (setq pt7a (polar pt6 ang len))
   (setq pt8 (polar pt3 ang (+ len 20)))
   (setq pt8a (polar pt3 ang (+ len 10)))
   (setq pt9 (polar pt7 (+ ang (/ pi 2)) 200))
   (setq pt9a (polar pt7a (+ ang (/ pi 2)) 200))
   (setq pt10 (polar pt3 ang 40))
   (setq pt11 (polar pt10 (+ ang (/ pi 2)) (+ len 20)))
   (setq pt11a (polar pt10 (+ ang (/ pi 2)) (+ len 10)))
   (setq pt12 (polar pt3 (+ ang (/ pi 2)) (+ len 20)))
   (setq pt12a (polar pt3 (+ ang (/ pi 2)) (+ len 10)))
)

(defun titik2 ()
   (setq pt2 (polar pt1 (- ang (/ pi 2)) 150))
   (setq pt3 (polar pt2 ang 40))
   (setq pt4 (polar pt3 (+ ang (/ pi 2)) 40))
   (setq pt5 (polar pt4 ang 10))
   (setq pt6 (polar pt5 (+ ang (/ pi 2)) 110))
   (setq pt7 (polar pt3 ang 100))
   (setq pt8 (polar pt7 (+ ang (/ pi 2)) 40))
   (setq pt9 (polar pt7 (+ ang (/ pi 2)) 20))
   (setq pt10 (polar pt3 ang (+ len 10)))
   (setq pt11 (polar pt10 (+ ang (/ pi 2)) 150))
   (setq pt12 (polar pt7 ang (- (* len 2) 180)))
   (setq pt13 (polar pt8 ang (- (* len 2) 180)))
   (setq pt14 (polar pt9 ang (- (* len 2) 180)))
   (setq pt15 (polar pt6 ang (* len 2)))
)

(defun kusen1 ()
   (command "pline" pt1 pt2 pt3 pt4 pt5 pt6 "c")
   (command "mirror" "L" "" pt7 pt9 "n")
   (command "pline" pt3 pt10 pt11 pt12 "c")
   (command "arc" pt8 "c" pt3 pt12)
   (command "change" "L" "" "P" "layer" "hid" "")
   (setvar "clayer" lama)
)

(defun kusen2 ()
   (command "pline" pt1 pt2 pt3 pt4 pt5 pt6 "c")
   (command "mirror" "L" "" pt7a pt9a "n")
   (command "pline" pt3 pt10 pt11a pt12a "c")
   (command "mirror" "L" "" pt7a pt9a "n")
   (command "arc" pt8a "c" pt3 pt12)
   (command "change" "L" "" "P" "layer" "hid" "")
   (command "mirror" "L" "" pt7a pt9a "n")
   (setvar "clayer" lama)
)

(defun kusen3 ()
   (command "pline" pt1 pt2 pt3 pt4 pt5 pt6 "c")
   (command "mirror" "L" "" pt10 pt11 "n")
   (command "rectang" pt3 pt8)
   (command "mirror" "L" "" pt10 pt11 "n")
   (command "line" pt7 pt12 "")
   (command "line" pt8 pt13 "")
   (command "line" pt6 pt15 "")
   (command "pline" pt9 pt14 "")
   (command "pedit" "last" "w" "6" "")
   (command "change" "L" "" "P" "layer" "glass" "")
   (setvar "clayer" lama)
)

(defun C:d1 (/ pt1 pt2 pt3 pt4 pt5 pt6 pt7 pt7a pt8 pt8a pt9 pt9a pt10 pt11 pt11a pt12 pt12a len len1 len2 pt ang angt)
   (setvar "cmdecho" 0)
   (command "undo" "be")
   (setq lama (getvar "clayer"))
   (setvar "clayer" "kusen")
   (awal)
   (bukaan1)
   (titik1)
   (setq lama1 (getvar "osmode"))
   (setvar "osmode" 0)
   (kusen1)
   (setvar "osmode" lama1)
   (command "undo" "e")
)

(defun C:d2 (/ pt1 pt2 pt3 pt4 pt5 pt6 pt7 pt7a pt8 pt8a pt9 pt9a pt10 pt11 pt11a pt12 pt12a len len1 len2 pt ang angt)
   (setvar "cmdecho" 0)
   (command "undo" "be")
   (setq lama (getvar "clayer"))
   (setvar "clayer" "kusen")
   (awal)
   (bukaan2)
   (titik1)
   (setq lama1 (getvar "osmode"))
   (setvar "osmode" 0)
   (kusen2)
   (setvar "osmode" lama1)
   (command "undo" "e")
)

(defun C:j1 (/ pt1 pt2 pt3 pt4 pt5 pt6 pt7 pt8 pt9 pt10 pt11 pt12 pt13 pt14 pt15 len len1 len2 pt ang angt)
   (setvar "cmdecho" 0)
   (command "undo" "be")
   (setq lama (getvar "clayer"))
   (setvar "clayer" "kusen")
   (awal)
   (bukaan2)
   (titik2)
   (setq lama1 (getvar "osmode"))
   (setvar "osmode" 0)
   (kusen3)
   (setvar "osmode" lama1)
   (command "undo" "e")
)

(setvar "cmdecho" 0)

(command "undo" "e")

Perintah d1 untuk membuat gambar notasi denah pintu single, sedangkan d2 untuk pintu double dan j1 untuk gambar notasi denah jendela bukaan single..
contoh hasil dari perintah tsb :


Cara menggunakan program ini :
1. Copy dan paste program tsb ke dalam notepad
2. lalu save file tsb dengan extension .lsp
3. dari dalam program Autocad anda ketikan command / perintah APPLOAD

4. Pilih file lsp anda yg tadi kemudian klik tombol "load"
5. Setelah itu tutup dialog box dengan meng-klik tombol "close"
6. Pada command bar anda bisa masukan perintah d1, d2 atau j1

Silahkan dicoba.. :D

1 komentar: