성심 성의껏 질문을 작성하여 주세요, 대충하시면 답변도 대충작성합니다.^^
- 제목 작성시 금지어
만들어주세요? 해주세요? 안되는데 이렇게 변경해주세요? 등등
- 특정분과 질문은 제목에 분과삽입 [건축]
좋은예) [분과]무엇에 대해 문의합니다. /[분과]B로 바꾸는 방법을 알고싶습니다.
- 말머리 필수
① CAD 종류 : 오토캐드
② VERSION : 2014
③ 운영 체제 : 윈도7
④ 질문내용 및 스크린샷(이미지 및동영상)
블록으로 설정된 도곽을 선택하여 출력하는 리습을 만들고 있습니다.
블록을 선택하여 좌표를 받아서 출력시키는 것 까지는 성공하여 이제 마지막으로 특정 탭을 선택하거나 둘다 출력시키는 기능을 만들려고 합니다.
출력시키고자 하는 탭을 'ctab '을 이용하여 활성화 한 다음 선택한 블록의 좌표대로 출력을 시키려고하는데 모형탭만 출력이 되고, 배치 탭은 출력이 되지 않습니다.
무엇이 문제인지 또 어떻게 하면 수정이 가능한지 고수님들의 도움 부탁드립니다
⑤ 파일첨부 (LISP/DWG) - DWG 첨부시 보다 정확한 답변을 얻을수 있습니다.
MPL.DCL
MPL.lsp
(defun c:mpl_print(/ e_name prt_name paper_name ctb_name bn nblist sslist ss1 j ptlayout prt_layout r_ctab ss1)
(vl-load-com)
(setq bnlist nil)
(setq r_ctab(getvar "ctab"))
(setq e_name (getstring "도곽이름"))
(setq prt_name (getstring t "플로터이름"))
(setq paper_name (getstring t "용지이름"))
(setq ctb_name (getstring t "ctb이름"))
(setq pset (getstring "출력방향"))
(setq file_path (getstring t "저장 경로"))
(setq prb (getstring "플롯대상"))
(cond
((= prb "prb0") ;모형 및 배치탭 출력
(command "setvar" "tilemode" 1)
(setq prt_layout (list (getvar "ctab")))
(setq prt_layout (append prt_layout (layoutlist)))
)
((= prb "prb1");모형탭 출력
(command "setvar" "tilemode" 1)
(setq prt_layout (list (getvar "ctab")))
)
((= prb "prb2");배치탭 출력
(setq prt_layout (layoutlist))
(command "setvar" "ctab" (nth 0 prt_layout))
)
)
(foreach ptlayout prt_layout
(command "setvar" "ctab" ptlayout)
(setq ActLay (vla-get-ActiveLayout (setq ActDoc(vla-get-activedocument(vlax-get-acad-object)))))
(vla-put-ConfigName actlay prt_name)
(vla-put-CanonicalMediaName actlay paper_name)
(vla-put-StyleSheet actlay ctb_name)
(if (= file_path (getvar "dwgprefix"))
(setq file_path (getvar "dwgprefix"))
(setq file_path (strcat file_path "\\"))
)
(setq bn (list e_name))
(setq bnlist (append bnlist bn))
(setq sslist (ssadd))
(setq i 0)
(foreach x bnlist
(setq ss1 (ssget "x" (list (cons 0 "insert") (cons 2 x))))
(setq j 0 ptlist '())
(repeat (sslength ss1)
(setq ent_name (ssname ss1 j))
(vla-GetBoundingBox (vlax-ename->vla-object (ssname ss1 j)) 'minpt 'maxpt)
(setq pt(vlax-safearray->list minpt))
(setq pt1(list (car pt)(cadr pt)))
(setq pt(vlax-safearray->list maxpt))
(setq pt2(list (car pt)(cadr pt)))
(setq ptlist(append ptlist(list(list pt1 pt2))))
(setq j (+ j 1))
(setq k (sslength ss1))
(princ "\n")
(princ k)
)
(setq Lst(vl-sort (vl-sort ptlist '(lambda (a b) (< (caar a) (caar b)))) '(lambda (a b) (< (caadr a) (caadr b)))))
(setq j 0)
;------------------------출력부분------------------------------------
(repeat (sslength ss1)
(setq pt1 (car (nth j lst)))
(setq pt2 (cadr (nth j lst)))
(setq j (+ j 1))
(setq i (+ i 1))
(setq filename (vl-string-right-trim ".dwg" (getvar "dwgname")))
(setq filename (strcat file_path filename))
(setq filename (strcat filename "("))
(setq filename (strcat filename (itoa i)))
(setq filename (strcat filename ")"))
(command "-plot" "y" "" "" "" "m" pset "n" "w" pt1 pt2 "f" "c" "y" ctb_name "y" "w" filename "y" "y")
(princ "\n")
(princ i)
(princ pt1)
)
;--------------------출력부분 종료-------------------------------------------
);foreach 종료
(princ)
;(setq ptlist '())
)
(command "setvar" "ctab" r_ctab)
(princ)
)
※ 유의사항
- ①말머리 : 말머리를 달아야 구분이 쉽겠죠^^
- ②Screenshot : 이해를 돕기위해 삽입요망.
- ③파일 첨부 : 상위버전에서 테스트할 파일이 아니면 가급적 하위버전으로 저장후 첨부.
해당리습/해당파일(DWG) 도 같이 첨부하여 주세요.
- ④제 목 : 질문 내용 반영(개략적인 내용), 예) 해치를 만들고 싶어요, pline을 연결할려면?
- ⑤질문글 삭제금지 : 질문후 댓글이 달린글은 삭제금지.
여러 리플러들이 소중한 시간을 내어서 고민한후 댓글을 작성한 이상 "강력조치" 토록 하겠음.
※ 정답만이 댓글은 아닙니다. 그 답이 맞던 틀리던 그건 그 댓글로서 존중되어야 합니다.
회원님들이 글을 읽었다는것과 댓글을 달았다는건 그만큼 관심을 가지고 있고 또 그 답을 해주기 위해
검색도 해보고 도움말도 보고 고민도 하는 일련의 과정을 거치면서 나오기 때문이죠.
이에 대한 고마움과 감사함을 모르는 테러행위(?)는 없었으면 합니다.
첫댓글 http://help.autodesk.com/view/ACD/2015/ENU/![확](https://t1.daumcdn.net/cafe_image/pie2/texticon/ttc/texticon2_56.gif)
실하고요.
![파이팅](https://t1.daumcdn.net/cafe_image/pie2/texticon/ttc/texticon68.gif)
2015온라인 도움말입니다 여기 가시면 거의 모든 해답을 찾으실수 있으실겁니다 견본 소스코드도
제가 공부 할때 기본은 아키에서 필요한것은 구글로 그래도 도저히 못찾으면 최후에 질문 이런식으로 했습니다.
그래야 빨리 늘어용. 물론 시간은 많이 잡아먹지만 아마 며칠후엔 저기 위에 커맨드문 전부 사라진 리습이 되겠군요
역쉬 고수님은 뭔가 달라도다른듯..Orz
@따라지 저도 정말 따라지님처럼 고수이고 싶어요 오지랖이 넓어서 여기저기 참견하다보니 이름이 자주 눈에 띌뿐이죠![ㅎㅎ](https://t1.daumcdn.net/cafe_image/pie2/texticon/ttc/texticon70.gif)
.dcl 이파일은 어찌 로드해야 하는지 여쭈어 보아도 될까요 ㅠㅠ?
캐드 지원 파일 경로 안에다 넣으시면 자동으로 인식합니다
@아임피러 아하 감사합니다 ^^
고맙습니다.^^