제목에 기술한 바와 같이 폴리라인을 그리면 자동으로 레이어 이름과 치수를 표시해 주는 리습을 만들어보고자 합니다.
(defun c:scline()
(prompt “global width :”)
(setq w1 (getreal))
(if (= w1 nil)
(setq w1 w2))
(setq w2 w1)
(prompt “nFirst point :”)
(setq p1 (getpoint))
(prompt “nSecond point :”)
(setq p2 (getpoint p1))
(command “pline” p1 “W” w1 w1 p2 “”)
(command “dimaligned” p1 p2 “@500,500”)
(princ))
위의 리습을 실행해 보면 폴리라인을 그리면 자동으로 치수는 표시되지만, 레이어 이름도 함께 표시되는 기능은 구현되지 못했습니다.
“clayer”를 이용해 현재 레이어 이름을 받아올 수는 있는데, 그것을 어떻게 치수와 함께 표시되게 하는 지 궁금합니다.
고캐드 회원님들의 고견 부탁드립니다.
손볼곳은 많지만..
간단히 수정해 드리자면..
(defun c:scline(/ w2 p1 p2)
(prompt “global width :”)
(setq w1 (getreal))
(if (= w1 nil)
(setq w1 w2)
)
(setq w2 w1)
(prompt “nFirst point :”)
(setq p1 (getpoint))
(prompt “nSecond point :”)
(setq p2 (getpoint p1))
(command “pline” p1 “W” w1 w1 p2 “”)
(command “dimaligned” p1 p2 “T” (strcat “<>\X” (getvar “clayer”)) “@500,500”)
(princ)
)
이게 더. 좋지 않을까 싶네요..
감사합니다 ^^
커맨드 명령으로 하시면 대강 이런식입니다.
(command “text”
(mapcar ‘(lambda (x) (/ x 2.0)) (mapcar ‘+ p1 p2)) ; 선의 중간지점
(getvar “dimscale”) ;글자크기를 치수설정으로
p2 ; 글자방향점
(getvar “clayer”) ; 현재 레이어명
“” )