프로그램
캐드 분류

블록 인서트하면서 분해가능하게 될까요?

컨텐츠 정보

  • 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)
)

;;;

-블록 인서트해서 사용하는 리습인데 분해가 바로되게 할수 있나요?

관련자료

댓글 7

우뿌님의 댓글

penpen07님 소중한 시간 내어주시어 알려주셔서 정말 감사합니다.

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님의 댓글

본인이 성인이라면, 다른 사람과 의사소통 할 때에 어떻게하면 본인이 원하는 바를 정확하게 전달할 수 있을지를 고민해봐야 합니다.

“엄마 안돼요”는 미취학 아동 때 “선생님 안돼요”는 초등학교 졸업하면서 “안돼는데요”는 고등학교 졸업하면서 뗐어야죠.

이런 질문을 할 때엔 오토캐드에서 어떻게 작동이 안되는지, 명령행엔 어떤 메세지가 표시되는지 등 최소한의 정보를 남겨야 합니다.

어떤 정보를 남겨야 하는지 몰라서 남기지 못했다고 생각할 수 있으나, 핑계죠. 어떤 정보를 남겨야 하는지를 모르기 때문에 본인이 남길 수 있는 최대한의 정보를 다 남겼어야 합니다.

성인이 되세요.

우뿌님의 댓글

(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) )

;;; 이렇게 했는데 안돼요 ㅠ

penpen07님의 댓글

리습에서 command문은 지정된 내용을 대신 타이핑해서 입력하는 역할을 합니다.

[-insert]를 사용할 때, [분해(E)] 옵션을 사용하도록 수정해주면 되겠죠.

 

(command “-insert” “c:/insert/w1” “e” “y” pause “” “” “”)

여분필드1 여분필드2 여분필드3
전체 7,337 / 8 페이지
번호
제목
이름
알림 0