(defun c:w1 (/ lp)
(command “-insert” “C:/insert/w1” pause “” “”)
(command “copy” “last” “” “m” “@”)
(setq lp 1)
(while lp
(if (> (getvar “cmdactive”) 0) (command pause) (setq lp nil))
)
(princ)
)
;;;
-블록 인서트해서 사용하는 리습인데 분해가 바로되게 할수 있나요?
리습에서 command문은 지정된 내용을 대신 타이핑해서 입력하는 역할을 합니다.
[-insert]를 사용할 때, [분해(E)] 옵션을 사용하도록 수정해주면 되겠죠.
(command “-insert” “c:/insert/w1” “e” “y” pause “” “” “”)
(defun c:w1 (/ lp)
(command “-insert” “c:/insert/w1” “e” “y” pause “” “” “”)
(command “copy” “last” “” “m” “@”)
(setq lp 1)
(while lp
(if (> (getvar “cmdactive”) 0) (command pause) (setq lp nil))
)
(princ)
)
;;;
이렇게 했는데 안돼요 ㅠ
아무래도 코드를 직접 만든게 아닌 것 같은데,
[복사]의 객체 선택 단계에서 [최종(L)] 옵션을 사용했기 때문에
본인이 원하는 데로 작동하지 않았을 겁니다.
분해하지 않았을 때엔 블록이 작성되므로,
마지막으로 작성된 한 개의 객체인 블록을 복사했었겠죠.
하지만 분해했을 때엔
블록에 포함되어 있던 모든 객체가 아닌, 마지막으로 작성된 한 개의 객체만 복사됐을 겁니다.
때문에 selectionset을 구성하는 내용을 추가할 필요가 있어요.
(defun c:w1 (/ lp mark ss)
(setq mark (entlast))
(setq ss (ssadd))
(command “-insert” “C:/1/open” “e” “y” pause “” “” “”)
(if mark
(while (setq mark (entnext mark))
(ssadd mark ss)
)
(progn
(setq mark (entnext))
(ssadd mark ss)
(while (setq mark (entnext mark))
(ssadd mark ss)
)
)
)
(command “copy” ss “” “m” “@”)
(setq lp 1)
(while lp
(if (> (getvar “cmdactive”) 0) (command pause) (setq lp nil))
)
(princ)
)
대체 누가 왜 이렇게 만들었는지는 알 수 없으나,
리습을 공부하실 분들을 위해 최대한 알아보기 쉽게 적었습니다.
penpen07님 소중한 시간 내어주시어 알려주셔서 정말 감사합니다.
본인이 성인이라면,
다른 사람과 의사소통 할 때에
어떻게하면 본인이 원하는 바를 정확하게 전달할 수 있을지를 고민해봐야 합니다.
“엄마 안돼요”는 미취학 아동 때
“선생님 안돼요”는 초등학교 졸업하면서
“안돼는데요”는 고등학교 졸업하면서 뗐어야죠.
이런 질문을 할 때엔 오토캐드에서 어떻게 작동이 안되는지, 명령행엔 어떤 메세지가 표시되는지 등 최소한의 정보를 남겨야 합니다.
어떤 정보를 남겨야 하는지 몰라서 남기지 못했다고 생각할 수 있으나, 핑계죠.
어떤 정보를 남겨야 하는지를 모르기 때문에 본인이 남길 수 있는 최대한의 정보를 다 남겼어야 합니다.
성인이 되세요.
실행하니 안되요ㅠ
penpen07님 정말 감사합니다.