(defun c:CC(/ os en1 en2 ed1 ed2 p1s p1e p2s p2e d1 d2 cps cpe ext et )
;->*error* start
(defun *error* (msg)(princ “error: “)(princ msg)
(setvar “osmode” os) (princ))
;-<*error* end
(setq os (getvar “osmode”) en1 nil en2 nil)
(setvar “osmode” 0)
(prompt ” 선간 중심선 그리기…”)
(setq en1 (car (entsel “n≫≫ 첫번째 선을 선택하세요[기준선] : “)))
(if en1 (setq en2 (car (entsel “n≫≫ 두번째 선을 선택하세요 : “))))
(setq ext (getreal “n≫≫중심선의 돌출 비율을 입력하세요 : “))
(setq ed1 (entget en1) ed2 (entget en2))
(if (and (= (cdr (assoc 0 ed1)) “LINE”)
(= (cdr (assoc 0 ed2)) “LINE”))
(progn
(setq p1s (cdr (assoc 10 ed1)) p1e (cdr (assoc 11 ed1)))
(setq p2s (cdr (assoc 10 ed2)) p2e (cdr (assoc 11 ed2)))
(if (< (distance p1s p2e) (distance p1s p2s))
(setq tem p2s p2s p2e p2e tem) )
(setq d1 (/ (distance p1s p2s) 2.0))
(setq d2 (/ (distance p1e p2e) 2.0))
(setq cps (polar p1s (angle p1s p2s) d1))
(setq cpe (polar p1e (angle p1e p2e) d2))
(setq d3 (/ (distance cps cpe) 2.0))
(setq cpc (polar cps (angle cps cpe) d3))
(command “layer” “s” “CL” “”) ; 사용자 중심선 레이어 설정 “22”
(command “line” cps cpe “”)
(setq et (entlast))
(command “scale” et “” “mid” cpc ext)
);progn
);if end
(setvar “osmode” os)
(command “layer” “s” “0” “”)
(prin1)
);;end of defun
보시면 돌출비율을 입력하게되어있는데
그냥 무조건 첫번째선 기준으로 몇퍼센트 이렇게 바꿀순없나요
변쌤수제자Lv.0
두번재 리습 중심선리습입니다 수정좀부탁드립니다
공유