예전에 고캐드에서 받았던 리습인데(올린 사람은 누군지 모르겠습니다 ^^;; 죄송…)
이 리습을 잘 사용 하던 도중 할때마다 센터선의 비율을 입력해야 하는 번거로움이
있더라구요 그래서 이전에 입력한 값을 기억하는 구문을 추가 하려고 하는데
아무리 봐도 모르겠습니다 능력자님들의 도움 부탁드립니다.
=======================
(defun c:gg(/ 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 ” 선간 중심선 그리기…”)
(prompt “n두선을 선택하세요 “)
(setq ss1 (ssget ‘((0 . “LINE”))))
(if ss1
(if (= (sslength ss1) 2)
(setq en1 (ssname ss1 0)
en2 (ssname ss1 1)
)
(exit)
)
(exit)
)
(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” “1” “”) ; 사용자 중심선 레이어 설정 “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