Duvar çizen lisp
Hızlı duvar çizimi (sıvalı), lsp
- 27.09.2006 15:00
;BU BÖLÜM DUVAR LİSPİ İÇİN (.LSP)

(defun intersect2line (#a #b)
(setq pt3 (inters
(cdr (assoc 10 (entget #a)))
(cdr (assoc 11 (entget #a)))
(cdr (assoc 10 (entget #b)))
(cdr (assoc 11 (entget #b)))
nil
)
)
(command ".change" #a "" pt3 ".change" #b "" pt3)
(princ)
)


(defun dialog ()
(setq dcl_id (load_dialog "FORMLAR.dcl"))
(if (not (new_dialog "DUVAR" dcl_id))
(exit)
)

(set_tile "DUVAR_GEN" "20")
(set_tile "SIVA_GEN" "3")
(set_tile "DUVAR_YUK" "220")

(if (= durum 1)
(progn
(set_tile "U" "1")
)
)

(if (= durum 2)
(progn
(set_tile "O" "1")
)
)

(if (= durum 3)
(progn
(set_tile "A" "1")
)
)



(mode_tile "DUVAR_GEN" 2)


(action_tile
"U"
"(setq durum 1)"
)
(action_tile
"O"
"(setq durum 2)"
)
(action_tile
"A"
"(setq durum 3)"
)

(action_tile "help" "(yardim)")
(action_tile
"cancel"
"(done_dialog)"
)
(action_tile
"accept"
(strcat
"(progn (setq dg (atof (get_tile "DUVAR_GEN")))"
"(setq sk (atof (get_tile "SIVA_GEN")))"
"(setq md (atof (get_tile "DUVAR_YUK")))"
" (done_dialog)(setq userclick T))"
)
)

(start_dialog)
;(unload_dialog dcl_id)
)

(defun c:duvar ()

(command "thickness" "2.6")
(if (eq durum nil)
(setq durum 1)
)

(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(setq cnt 0)

(setq nosmode (getvar "osmode"))


(if (eq userclick nil )
(dialog)
)
(while (eq (setq pt1 (getpoint "nduvarı çizmeye başlayınız: "))
nil
)
(dialog)
)
(setq pt2 (getpoint pt1 "ndevam ediniz: ")
stpt pt1
)

(setvar "osmode" 0)

(if (eq durum 1)
(setq d1 0
d2 dg
d3 (+ d1 sk)
d4 (+ sk d2)
)
)
(if (eq durum 2)
(setq d1 (/ dg 2.0)
d2 (/ dg 2.0)
d3 (+ d1 sk)
d4 (+ sk d2)
)
)
(if (eq durum 3)
(setq d1 (* dg 1)
d2 0
d3 (* (+ d2 sk) -1.0)
d4 (* (+ d1 sk) -1.0)
)
)

(setvar "highlight" 0)
(while (/= pt2 nil)
(command "_undo" "begin")
(setvar "blipmode" 0)
(setq a1 (angle pt1 pt2))

(setvar "osmode" 0)
(command "layer" "m" "duvar" "c" "red" "" "")
(command ".line"
(polar pt1 (+ a1 1.5707963) d1)
(polar pt2 (+ a1 1.5707963) d1)
""
)
(command ".change" "l" "" "p" "t" md "")
(if (= cnt 0)
(setq l1a (entlast)
l1f l1a
)
(progn
(setq l1b l1a
l1a (entlast)
)
(intersect2line l1a l1b)
)
)

(command "layer" "m" "duvar" "c" "red" "" "")
(command ".line"
(polar pt1 (- a1 1.5707963) d2)
(polar pt2 (- a1 1.5707963) d2)
""
)
(command ".change" "l" "" "p" "t" md "")
(if (= cnt 0)
(setq l2a (entlast)
l2f l2a
)
(progn
(setq l2b l2a
l2a (entlast)
)
(intersect2line l2a l2b)
)
)

(command "layer" "m" "siva" "c" "white" "" "")
(command ".line"
(polar pt1 (+ a1 1.5707963) d3)
(polar pt2 (+ a1 1.5707963) d3)
""
)


(command ".change" "l" "" "p" "t" md "")
(if (= cnt 0)
(setq l1c (entlast)
l3f l1c
)
(progn
(setq l1d l1c
l1c (entlast)
)
(intersect2line l1c l1d)
)
)

(command "layer" "m" "siva" "c" "white" "" "")
(command ".line"
(polar pt1 (- a1 1.5707963) d4)
(polar pt2 (- a1 1.5707963) d4)
""
)
(command ".change" "l" "" "p" "t" md "")
(if (= cnt 0)
(setq l2c (entlast)
l4f l2c
)
(progn
(setq l2d l2c
l2c (entlast)
)
(intersect2line l2c l2d)
)
)

(command "layer" "m" "duvar" "c" "red" "" "")
(setvar "osmode" nosmode)

(command "_undo" "end")
(setq pt1 pt2
pt2 (getpoint pt1)
cnt (1+ cnt)
)

)
(initget "evet hayır")
(if (equal stpt pt1)
(progn
(setq yn (getkword "nduvar kapansin mi? (/hayır): "))
(if (not et)
(setq et "evet")
(setq et (strcase et))
)
(if (= et "evet")
(progn
(intersect2line l1a l1f)
(intersect2line l2a l2f)
(intersect2line l1c l3f)
(intersect2line l2c l4f)

)
)
)
)
(command "thickness" "0.0")
(setvar "osmode" nosmode)
(setvar "blipmode" 0)
(setvar "highlight" 1)
(princ)
)
(defun reset ()
((princ) "nrestoring settings")
(setq *error* temperr)
(setvar "clayer" oldlayer)
(setvar "blipmode" 1)
(setvar "menuecho" 0)
(setvar "highlight" 1)
(setvar "blipmode" 1)
;(setvar "osmode" oldsnap)
(setvar "pickbox" oldpick)
(princ)
)
(defun yardim (/ yardim_kutusu cizgi veri_dosyasi dcl_id)

(if (= yardim_kutusu nil)
(progn
(setq cizgi "")
(setq veri_dosyasi (open (findfile "MK_HELP.txt") "r"))

(while (/= cizgi nil)
(setq cizgi (read-line veri_dosyasi))
(if (/= cizgi nil)
(setq yardim_kutusu (append yardim_kutusu (list cizgi)))
)
)
(close veri_dosyasi)
)
)

(setq dcl_id (load_dialog (findfile "FORMLAR.dcl")))
(if (not (new_dialog "sembol2" dcl_id ""))
(exit)
)

(start_list "listeler")
(mapcar 'add_list yardim_kutusu)
(end_list)


(action_tile "accept" "(done_dialog)")

(start_dialog)

(unload_dialog dcl_id)


)



;****************************************************************************
;BU BÖLÜM DUVAR DİALOG TABLOSU İÇİN (.DCL)
DUVAR : dialog {
label = "DUVAR";
: boxed_column {
label = "Duvar Ayarları";
: edit_box {
label = "Duvar Genişliği";
key = "DUVAR_GEN";
edit_width = 20;
fixed_height = true;

}
: edit_box {
label = "Sıva Kalınlığı";
key = "SIVA_GEN";
edit_width = 20;
fixed_height = true;



}
: edit_box {
label = "Duvar Yüksekliği";
key = "DUVAR_YUK";
edit_width = 20;
fixed_height = true;
}

: boxed_column {
label = "Duvar Yakalam Noktaları";
: row {

:radio_button {
key = "U";
label = "Üstten";

}
:radio_button {
key = "O";
label ="Ortadan";

}
:radio_button {
key = "A";
label = "Alttan";

}

}
}
}

ok_cancel_help ;
}

Yazar:
İçerik: LSP (lisp) formatında uygulaması
Tag:

Yorumlar :
admin   21.12.2019 06:55 #15988  

Lisplerde komut defun c: ifadesinden sonra gelen yazı ya da kısaltmadır. Dolayısıyla bu lisp için komut duvar 'dır.

tahsinarslan   02.12.2019 02:18 #15985  

bunların komutu nedir yazabilirseniz sevinirim

ramazanrg02   26.05.2018 13:28 #15887  

bunun yerine ml enter komutunu kullanalım

Copyright © 2004-2022 SQL: 0.045 saniye - Sorgu: 35 - Ortalama: 0.00128 saniye