Copyright © 2004-2022 SQL: 0.9 saniye - Sorgu: 42 - Ortalama: 0.02143 saniye
heikou |
Kod: Arkadaşlar; Siteden bulduğum bir Lisp dosyasında biraz oynayarak resimde görüldüğü şekilde bir kanalizasyon lisp yapmaya çalıştım. Ancak aşağıda yazacağım eksiklikler hakkında yardımcı olacaklar varsa çek sevinirim. *Çizgi tipi "pline" olduğu için farklı KOT larda bulunan noktaları birleştiremiyorum, ve buna bağlı olarak başlangıç ve bitiş KOT larını yazdıramıyorum. *Farklı KOT larda bulunan noktaların "3dpoly" kullanarak birleştirilmesi durumunda başlangıç ve bitiş noktalarının KOT değerlerini yazdırmam gerekiyor. (defun c:KnL (/ *error* ) (setvar "cmdecho" 0) (command "undo" "group") (setq oosm (getvar "osmode")) (setq ola (getvar "clayer")) (defun *error* (er) (setvar "osmode" oosm) (setvar "clayer" ola) (command "undo" "e") (princ er)) (if (not (tblsearch "Layer" "AKAR_YONU")) (entmake (list (cons 0 "Layer") (cons 100 "AcDbSymbolTableRecord") (cons 100 "AcDbLayerTableRecord") (cons 2 "AKAR_YONU") (cons 62 1) (cons 70 0) (cons 290 1) (cons 370 0) ) ) ) (if (not (tblsearch "Layer" "AKAR_MESAFE")) (entmake (list (cons 0 "Layer") (cons 100 "AcDbSymbolTableRecord") (cons 100 "AcDbLayerTableRecord") (cons 2 "AKAR_MESAFE") (cons 62 30) (cons 70 0) (cons 290 1) (cons 370 0) ) ) ) (if (not (tblsearch "Layer" "AKAR_YAZI")) (entmake (list (cons 0 "Layer") (cons 100 "AcDbSymbolTableRecord") (cons 100 "AcDbLayerTableRecord")(cons 2 "AKAR_YAZI") (cons 62 30) (cons 70 0) (cons 290 1) (cons 370 0) ) ) ) (if (not yy) (setq yy 1)) (if (setq sn (getreal (strcat "\nYazı yüksekliği --> <" (rtos yy) "> :"))) (setq yy sn) (setq sn yy)) (if (not ePp) (setq ePp 200)) (if (setq ol (getreal (strcat "\nØ Değeri --> <" (rtos ePp) "> :"))) (setq ePp ol) (setq ol ePp)) (setq son (strcat "%%c" (rtos epp 2 0) " " "")) (while (not (setq n1 (getpoint "\nBaşlangıç noktası. ")))) (while (/= n1 nil) (setq n2 (getpoint n1 "\nBitiş noktası. ")) (setq ac (angle n1 n2)) (if (and (<= ac 4.71239) (> ac 1.5708)) (setq ca (+ (angtof "180.00") ac)) (setq ca ac) ) (setq di (+ (distance n1 n2) 1.0) mdp (polar n1 (angle n1 n2) (/ (distance n1 n2) 2.0)) mhp (polar n1 (angle n1 n2) (/ (distance n1 n2) 4.0)) msp (polar mdp (angle n1 n2) (/ (distance n1 n2) 4.0)) n3 (polar n2 (+ ac 0) (* sn -1)) y1 (polar mhp (- ca (/ pi 2)) (* sn 1)) y2 (polar mdp (+ ca (/ pi 2)) (* sn 1)) y3 (polar msp (- ca (/ pi 2)) (* sn 1)) ) (setvar "clayer" "AKAR_YONU") (setvar "osmode" 0) (command "_pline" n2 "W" 0 (* sn 0.75) n3 "W" 0 0 n1 "") (entmake (list (cons 0 "TEXT") (cons 100 "AcDbEntity") (cons 100 "AcDbText") (cons 10 y3) (cons 11 y3) (cons 1 (strcat "L=" (rtos di 2 2) "m" )) (cons 40 sn) (cons 50 ca) (cons 41 1) (cons 72 1) (cons 8 "AKAR_MESAFE") (cons 73 2) ) ) (entmake (list (cons 0 "TEXT") (cons 100 "AcDbEntity") (cons 100 "AcDbText") (cons 10 y2) (cons 11 y2) (cons 1 son) (cons 40 sn) (cons 50 ca) (cons 41 1) (cons 72 1) (cons 8 "AKAR_YAZI") (cons 73 2) ) ) (entmake (list (cons 0 "TEXT") (cons 100 "AcDbEntity") (cons 100 "AcDbText") (cons 10 y1) (cons 11 y1) (cons 1 (strcat "1/" (rtos di 2 2) )) (cons 40 sn) (cons 50 ca) (cons 41 1) (cons 72 1) (cons 8 "AKAR_MESAFE") (cons 73 2) ) ) (setvar "clayer" ola) (setvar "osmode" oosm) (command "_.undo" "e") (prin1) (while (not (setq n1 (getpoint "\nBaşlangıç noktası. "))))) ) heikou (25.04.2015 22:30 GMT) |