블록 인서트하면서 분해가능하게 될까요?
컨텐츠 정보
- 87 조회
- 7 댓글
- 0 추천
- 0 비추천
- 목록
본문
(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)
)
;;;
-블록 인서트해서 사용하는 리습인데 분해가 바로되게 할수 있나요?
관련자료
penpen07님의 댓글
아무래도 코드를 직접 만든게 아닌 것 같은데, [복사]의 객체 선택 단계에서 [최종(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님의 댓글
본인이 성인이라면, 다른 사람과 의사소통 할 때에 어떻게하면 본인이 원하는 바를 정확하게 전달할 수 있을지를 고민해봐야 합니다.
“엄마 안돼요”는 미취학 아동 때 “선생님 안돼요”는 초등학교 졸업하면서 “안돼는데요”는 고등학교 졸업하면서 뗐어야죠.
이런 질문을 할 때엔 오토캐드에서 어떻게 작동이 안되는지, 명령행엔 어떤 메세지가 표시되는지 등 최소한의 정보를 남겨야 합니다.
어떤 정보를 남겨야 하는지 몰라서 남기지 못했다고 생각할 수 있으나, 핑계죠. 어떤 정보를 남겨야 하는지를 모르기 때문에 본인이 남길 수 있는 최대한의 정보를 다 남겼어야 합니다.
성인이 되세요.