(defun c:ce(/ os ss k ent elist cenp rad p1 p2 p3 p4 dam ext la)
;->*error* start
(defun *error* (msg)(princ "error: ")(princ msg)
(setvar "clayer" cla) (setvar "osmode" os)
(princ))
;-<*error* end
(setvar "cmdecho" 0)
(setq os (getvar "osmode")
cla (getvar "clayer") ; 현 레이어 기억시킴
)
(setq ss (ssget '((0 . "circle,arc"))))
(setq k 0)
(setvar "osmode" 0)
(command "undo" "be")
(repeat (sslength ss)
(setq ent (ssname ss k))
(setq elist (entget ent))
(setq cenp (cdr (assoc 10 elist)))
(setq rad (cdr (assoc 40 elist)))
(setq dam (* 2 rad)
ext (+ (* dam 0.1) rad))
(setq p1 (polar cenp pi ext)
p2 (polar cenp 0 ext)
p3 (polar cenp (/ pi 2) ext)
p4 (polar cenp (+ (/ pi 2) pi) ext)
);setq
(command "layer" "s" "22" "") ; 22<-중심선 레이어로 일시적 변경 (이름 변경 필요)
(command "line" p1 p2 "")
(command "line" p3 p4 "")
(setq k (1+ k))
);repeat
(command "undo" "e")
(setvar "osmode" os)
(setvar "clayer" cla) ; 기억했던 레이어로 되돌림
(princ)
);defun
'캐드리습' 카테고리의 다른 글
문자 또는 숫자 자동 증가 (0) | 2023.06.27 |
---|---|
SSGET 사용법 정리 (0) | 2023.06.27 |
멀티 회전복사 리습 (0) | 2023.02.14 |
일정간격 다중 복사 리습 (0) | 2023.02.14 |
레이어 만들기 리습 (0) | 2023.02.14 |