프로그램
캐드 분류

폴리라인(polyline)을 그리면 자동으로 레이어 이름과 치수를 표시해 주는 리습

컨텐츠 정보

본문

제목에 기술한 바와 같이 폴리라인을 그리면 자동으로 레이어 이름과 치수를 표시해 주는 리습을 만들어보고자 합니다.
(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"를 이용해 현재 레이어 이름을 받아올 수는 있는데, 그것을 어떻게 치수와 함께 표시되게 하는 지 궁금합니다.
고캐드 회원님들의 고견 부탁드립니다.

관련자료

댓글 3 / 1 페이지

xcsh님의 댓글

커맨드 명령으로 하시면 대강 이런식입니다.  (command "text"    (mapcar '(lambda (x) (/ x 2.0)) (mapcar '+ p1 p2))  ; 선의 중간지점     (getvar "dimscale") ;글자크기를 치수설정으로     p2 ; 글자방향점    (getvar "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)   )

이게 더. 좋지 않을까 싶네요..

전체 60 / 3 페이지
번호
제목
이름
알림 0