본 LISP프로그램은
하나의 도면에서 여러개의 치수 스타일이 있는 경우
처음 선택한 치수스타일로 두번째 선택한 모든 물체중 치수 인것만 모두 변경해 줍니다.
첨부된 화일 을 로드하시고
commad : dimsame
본 프로그램은 처음 선택한 원본치수와 동일한 치수 Style로 변경하여 줍니다
원본 치수를 선택 하세요 ...
Select : (변경하고 싶은 모양의 치수를 선택하시면 됩니다)
변경할 치수를 모두 선택하세요...
Select : (모두 선택하시면 됩니다. 폭파되지 않은 치수만 선택됩니다)
;------------------------------------------------------
;아래 부분을 복사 하셔서 'dimsame.lsp'로 저정하시고
;AutoCAD에서 로드하시면 됩니다
;단, 참고로 치수 선의 수직 간격은 변경하거나 이동 하셔야 합니다.
;-------------------------------------------------------
(defun c:dimsame ( / doc index objlist ss)
(prompt "\n본 프로그램은 처음 선택한 원본치수와 동일한 치수 Style로 변경하여 줍니다")
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(setq index 0 objlist nil)
(prompt "\n원본 치수를 선택하세요 ...")
(seldim)
(prompt "\n변경할 치수를 선택하세요 ...")
(if (setq ss (ssget (list (cons 0 "DIMENSION"))))
(repeat (sslength ss)
(setq objlist (cons (vlax-ename->vla-object (ssname ss index)) objlist))
(setq index (1+ index))
)
)
(vla-startundomark doc)
(foreach obj objlist
(vlax-put obj 'StyleName Dst)
)
(vla-endundomark doc)
(prompt "\n[ 변경 완료 이용하여 주셔서 감사합니다 ]")
(princ)
)
(defun seldim()
(setq en (entsel))
(setq Dst (cdr (assoc 3 (entget (car en)))))
(while (/= (cdr (assoc 0 (entget (car en)))) "DIMENSION")
(setq Dst (cdr (assoc 3 (entget (car en)))))
(prompt "\n원본 치수를 다시 선택하세요 ...")
(setq en (entsel))
)
)
(vl-load-com)
(princ)
:도서구입 : AutoLISP기초부터 고급까지 교재구입 클릭!!!
※본 게시물은 해당사이트로부터 소정의 수수료를 지급 받고 있습니다.