CAFE

★ CAD/LISP/분과 Q&A

[[Lisp]]2방향미러리습을 원본 객체를 지울것인지 묻는 프롬포트를 낼 수 있을까요??

작성자최종민|작성시간14.03.27|조회수472 목록 댓글 2

 

성심 성의껏 질문을 작성하여 주세요, 대충하시면 답변도 대충작성합니다.^^

 

 - 제목 작성시 금지어

   만들어주세요? 해주세요? 안되는데 이렇게 변경해주세요? 등등

- 특정분과 질문은 제목에 분과삽입 [건축] 

   좋은예) [분과]무엇에 대해 문의합니다. /[분과]B로 바꾸는 방법을 알고싶습니다.

- 말머리 필수 

 

① CAD 종류   : 오토캐드

② VERSION   : 2010

③ 운영 체제    : 윈도우7

  

④ 질문내용 및 스크린샷(이미지 및동영상)

    

안녕하세요. 이제 날씨가 따땃해져 봄이 성큼 다가오네요 꽃들도 많이피고....ㅎㅎ

 

다름이아니오라 아키모아회원분의 도움을 받아 4방향미러리습을 2방향 미러리습으로 수정을 하였는데요

 

필요에의해서 원본객체를 지울지 말지에 대한 프롬포트를 뜨게 했으면 합니다.

 

N값을 지워 버리니 리습이 제데로 동작 하지가 않네요^^;;아직 리습에 대한부분이 완전 초보적 수준이라....

 

변수 하나가 빠짐으로 리습이 제데로 동작되지않는듯하여 이렇게 도움을 요청드립니다.

 

리습 구문은 아래와 같습니다.

 

;;; 2방향 mirrier 후 Block 각도 0 만들기

(defun c:mm(/ ents p1 a i)
  (setq ents (ssget))

  (setq a (entlast))
  (setq p1 (getpoint))
  (setq p2 (getpoint p1))
  (command "_.mirror" ents "" p1 p2 "N")
;  (setq a (ssname ents 0))
  (while (setq a (entnext a))
    (xp-back a)
  )
  (setq i 0)
  (repeat (sslength ents)
    (xp-back (ssname ents i))
    (setq i (1+ i))
  )
)

(defun xp-back(ent / entl code data)
  (setq entl (entget ent))
  (defun entupd1 (entl code data)
    (setq entl (subst (cons code data)(assoc code entl) entl))
  )
  (defun entdata (entl code)
    (setq data (cdr (assoc code entl)))
  )
  (if (= (cdr (assoc 0 entl)) "INSERT")
    (progn
      (if (> 0.0 (setq data (entdata entl 41)))
        (setq entl (entupd1 entl 41 (abs data)))
      )
      (if (> 0.0 (setq data (entdata entl 42)))
        (setq entl (entupd1 entl 42 (abs data)))
      )
      (if (> 0.0 (setq data (entdata entl 43)))
        (setq entl (entupd1 entl 43 (abs data)))
      )
      (if (/= 0.0 (setq data (entdata entl 50)))
        (setq entl (entupd1 entl 50 0))
      )
      (entmod entl)
    )
  )
)

 

 

 

 

 

⑤ 파일첨부 (LISP/DWG) - DWG 첨부시 보다 정확한 답변을 얻을수 있습니다.

 

 

 

 

※ 유의사항

 - ①말머리 : 말머리를 달아야 구분이 쉽겠죠^^

 - ②Screenshot : 이해를 돕기위해 삽입요망.

 - ③파일 첨부 : 상위버전에서 테스트할 파일이 아니면 가급적 하위버전으로 저장후 첨부.

                          해당리습/해당파일(DWG) 도 같이 첨부하여 주세요.

 - ④       목 : 질문 내용 반영(개략적인 내용),       예) 해치를 만들고 싶어요, pline을 연결할려면?

 - ⑤질문글 삭제금지 : 질문후 댓글이 달린글은 삭제금지.

    여러 리플러들이 소중한 시간을 내어서 고민한후 댓글을 작성한 이상 "강력조치" 토록 하겠음. 

 

※ 정답만이 댓글은 아닙니다. 그 답이 맞던 틀리던 그건 그 댓글로서 존중되어야 합니다.

    회원님들이 글을 읽었다는것과 댓글을 달았다는건 그만큼 관심을 가지고 있고 또 그 답을 해주기 위해

    검색도 해보고 도움말도 보고 고민도 하는 일련의 과정을 거치면서 나오기 때문이죠.

    이에 대한 고마움과 감사함을 모르는 테러행위(?)는 없었으면 합니다.

 

 

 

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
  • 작성자가끔 그리움 | 작성시간 14.03.28 (command "_.mirror" ents "" p1 p2 "N") -> (command "_.mirror" ents "" p1 p2 pause)
    이렇게 바꾸면 원본객체를 지울지 말지 물어볼거에요...

    원본 객체를 지우고 작업할거면 (command "_.mirror" ents "" p1 p2 "Y")
    이렇게 하면 되고요....
  • 답댓글 작성자최종민 작성자 본인 여부 작성자 | 작성시간 14.03.28 감사합니다 이렇게 하니 잘되네요 ^^
댓글 전체보기
맨위로

카페 검색

카페 검색어 입력폼