Lisp 프로그램을 실행한 후에, Undo 를 하면, 명령창에
영문 오토캐드
command: GROUP (Lisp Expression) (Lisp Expression) (Lisp Expression) (Lisp Expression)....
한글 오토캐드
command: GROUP (Lisp 표현식) (Lisp 표현식) (Lisp 표현식) (Lisp 표현식)....
이라고 나타나는 경우가 있습니다.
XiCAD도 이 것 때문에 거슬려서 없애고 싶었으나, 그 동안 원인을 전혀 모르다가.. 이제서야 알아 냈습니다.
원인은 Lisp 해당 함수 내부에 command 구문이 두 번이상 반복될 경우에 나타납니다.
The reason is that the command syntax is repeated twice or more inside the Lisp function.
즉, 내부에 (command ~~) 로 시작하는 구문이 두개 이상 있다면.. Undo 할 때, command 사용 숫자만큼
(Lisp 표현식) (Lisp 표현식) (Lisp 표현식) (Lisp 표현식) 이라고 나타납니다.
In other words, if there are two or more statements that start with (command ~~) inside ..
When Undo, It will be displayed for the number of commands used.
아래를 두가지를 실행한 후 Undo 를 해보면 알 수 있습니다.
;;;=========================================================================; ;;;When undo (Lisp Expression) is not displayed. ;;;izzarder.com (defun c:xxx ( / acadObj doc modelSpace Pt0 Pt1 Pt2 Pt3 Pt4 Pt5) (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) (setq modelSpace (vla-get-ModelSpace doc)) (setq Pt0 (vlax-3d-point 0 0 0) Pt1 (vlax-3d-point 2000 2000 0) Pt2 (vlax-3d-point 2500 2500 0) Pt3 (vlax-3d-point 3000 3000 0) Pt4 (vlax-3d-point 3500 3500 0) Pt5 (vlax-3d-point 4000 4000 0) ) (vla-StartUndoMark doc) (vla-AddLine modelSpace Pt0 Pt1) (vla-AddLine modelSpace Pt2 Pt3) (vla-AddLine modelSpace Pt4 Pt5) (vla-EndUndoMark doc) (princ) ) ;;;=========================================================================;
;;;=========================================================================; ;;;When undo (Lisp Expression) is displayed. (twice) ;;;izzarder.com (defun c:xxx ( / acadObj doc modelSpace Pt0 Pt1 Pt2 Pt3 Pt4 Pt5) (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) (setq modelSpace (vla-get-ModelSpace doc)) (setq Pt0 '(0 0 0) Pt1 '(2000 2000 0) Pt2 '(2500 2500 0) Pt3 '(3000 3000 0) Pt4 '(3500 3500 0) Pt5 '(4000 4000 0) ) (vla-StartUndoMark doc) (command "_.LINE" Pt0 Pt1 "") (command "_.LINE" Pt2 Pt3 "") (command "_.LINE" Pt4 Pt5 "") (vla-EndUndoMark doc) (princ) ) ;;;=========================================================================;
'Lisp & Tips > Tip' 카테고리의 다른 글
마우스 두개를 동시 사용 (좌우클릭 스왑) (12) | 2018.07.21 |
---|---|
건축설계사무소에서의 정품사용 (34) | 2017.11.06 |
리습을 이용한 이미지타일 메뉴 호출 (Call for Image tile menu using lisp) (0) | 2017.03.19 |
MTEXT 종료 (4) | 2016.07.30 |
오토캐드 2012~ 명령어자동완성 끄기 (2) | 2016.03.14 |