위 그림처럼 1번이 현재 리습이고 2번 형태로 바꾸고 싶은데 무엇을 수정해야하나요?
(defun c:iu(/ myerror os bl cl pt1 pt2 pt3 pt4 pt5 pt6 pt7 thi angX angY angZ n di
b1 b2 b3 b4 p1 p2 p3 p4 p5 p6 p7 p8 P9 p10 f1 f2)
(command “undo” “group”)
(setvar “cmdecho” 0)
(setq os (getvar “osmode”))
(setq bl (getvar “blipmode”))
(setq cl (getvar “clayer”))
;—————– Internal error handler ——————-
(defun myerror(S)
(if (/= s “Function cancelled”)
(princ (strcat “nError:” s))
)
(setq *error* olderr)
(setvar “osmode” os)
(setvar “clayer” cl)
; (setvar “blipmode” bl)
(princ)
)
(setq olderr *error* *error* myerror)
;————————————————————
; (setvar “blipmode” 0)
(if (/= nil)
(while ;엔터입력전까지 반복적구문 시작
(setvar “osmode” 33)
(setq pt1 (getpoint “n단열재 시작점(방향:좌->우)… : “))
(setvar “osmode” 128)
(setvar “orthomode” 1)
(setq pt2 (getpoint pt1 “n단열재두께로 될 다음점 or 방향잡고 두께입력… : “))
(setq th (distance pt1 pt2))
(setvar “osmode”129)
(setq pt3 (getpoint pt1 “n단열재 끝나는 점… : “))
(setq pt4 pt1)
(setvar “blipmode” 0)(setvar “osmode” 0)
(if (= th nil) (setq th 50))
(setq thi (getdist (strcat “n두께 <“(rtos th 2 0)”> 맞으면=> enter!! ” “”)))
(if (= thi nil) (setq thi th))
(setq sc (/ thi 50))
(setq angX (angle pt1 pt3) angY (angle pt1 pt2))
(setq di (distance pt1 pt3))
(setq n (/ di (* sc 25)) )
; (laset “etc”)
(setq b1 (polar pt1 angY (* sc 12.5))
b2 (polar pt1 angY (* sc 20))
b3 (polar pt1 angY (* sc 30))
b4 (polar pt1 angY (* sc 37.5))
b5 (polar pt1 angY (* sc 50)))
(setq p1 (polar b1 angX (* sc 12.5))
p2 (polar b2 angX (* sc 9.98))
p3 (polar b3 angX (* sc 2.5))
p4 (polar b4 angX (* sc 0))
p5 (polar b5 angX (* sc 12.5))
p6 (polar b4 angX (* sc 25))
p7 (polar b3 angX (* sc 22.5))
p8 (polar b2 angX (* sc 15.03))
p9 (polar b1 angX (* sc 12.5))
p10 (polar pt1 angX (* sc 25.00)))
(command “layer” “m” “A-INS” “c” “red” “” “s” “A-INS” “”)
(command “pline” pt1 “a” “s” p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 “”)
(while (>= n 1)
(setq pt1 p10)
(setq p10 (polar pt1 angX (* sc 25.00)))
(command “copy” “l” “” pt1 p10)
(setq n (- n 1))
);while end
(command “LAYER” “OFF” “*” “Y” “”);단열재 레이어와 연결방지
(command “layer” “ON” “insul” “”);단열재 레이어만 켜기
(setq f1 (polar pt4 angY sc))
(setq f2 (polar pt3 angY sc))
(command “pedit” “l” “j” “f” f1 f2 “” “” “”)
(command “draworder” “l” “” “back” )
(setq th thi);trim 구문시작
(setvar “osmode” 0)
(setvar “orthomode” 0)
(setq angZ (/ pi 2.05))
(setq pt6 (polar pt3 (+ angX angZ) th))
(setq pt7 (polar pt3 (+ angX pi) (* th 0.01)));또 다른단열재와 trim시 문제로 생성
(setq pt5 (polar pt7 (+ angX (/ pi 2)) th))
(command “laymcur” “l” “”);insul현재레이어설정
(command “line” pt7 pt5 “”)
(command “trim” “l” “” “f” pt7 pt6 “” “”);여유단열재제거
(command “erase” “p” “” );라인제거
(command “layer” “on” “*” “”) ;모든레이어켜기
(command “layer” “thaw” “*” “”)
(command “undo” “en”)
);while end-전체반복구문
);if
(if (= nil)
(princ “/n단열재그리기종료”)
);if end-nil
(setvar “clayer” cl)
(setvar “blipmode” bl)
(setvar “osmode” os)
(setvar “orthomode” 1)
(prin1)
)
장정아Lv.0
단열재 리습 간격
공유
1 답변