(defun findplotarea (blocks / en lst ipt ipt&en data xsort xysort)
(while
(setq en (ssname blocks 0))
(setq lst (entget en))
(setq ipt (cdr (assoc 10 lst)))
(setq ipt&en (cons ipt en))
(setq data (cons ipt&en data))
(ssdel en blocks)
)
(setq xsort (vl-sort data (function (lambda (a b) (< (caar a) (caar b))))))
(setq xysort (vl-sort xsort (function (lambda (a b) (> (cadar a) (cadar b))))))
)
(defun c:APDF ( / currentos ss plotlist filename pdfnameprefix pdfpath pdfname vlename min max llp urp width height landscape)
(setvar "cmdecho" 0)
(setq currentos (getvar "osmode"))
(setq ss (ssget '((0 . "insert"))))
(setq plotlist (findplotarea ss))
(setq filename (getvar "dwgname"))
(setq pdfnameprefix (substr filename 1 (- (strlen filename) 4)))
(setq pdfpath (strcat (getvar "dwgprefix") pdfnameprefix))
(if (= cont nil) (if (= cont nil) (if (= cont nil) (if (= cont nil) (if (= cont nil) (if (= cont nil) (setq cont 0)))))))
(repeat (length plotlist)
(setq cont (1+ cont))
(setq pdfname (strcat pdfpath "-" (rtos cont 2 0) ".pdf"))
(setq vlename (vlax-ename->vla-object (cdar plotlist)))
(vla-getboundingbox vlename 'min 'max)
(setq llp (vlax-safearray->list min))
(setq urp (vlax-safearray->list max))
(setq width (- (car urp) (car llp)))
(setq height (- (cadr urp) (cadr llp)))
(if
(> width height)
(setq landscape "l" sheet_scale (strcat "1:" (rtos (/ width 420.) 2 2)))
(setq landscape "p" sheet_scale (strcat "1:" (rtos (/ height 420.) 2 2)))
)
(command "-plot"
"Y" ;상세 구성
"" ;모형
"DWG To PDF.pc3" ;플로터 이름
"ISO 전체 페이지 A3(297.00 x 420.00 mm)" ;용지 크기
"m" ;용지 단위 밀리미터
landscape ;가로 세로 판단 landscape, portrait
"N" ;위 아래 반전
"W" ;인쇄 영역 - 윈도우 입력
llp ;왼쪽 아래 점 lowleftpoint
urp ;오른쪽 위 점 uprightpoint
sheet_scale ;
"c" ;플롯 간격 띄우기 - 중심(c)
"Y" ;플롯 스타일 사용 여부
"흑색.ctb" ;플롯 스타일
"y" ;선 가중치 적용 여부
"a" ;음영 설정 - 표시되는 대로(A)/와이어프레임(W)/숨김(H)/뷰 스타일(V)/렌더(R)
pdfname ;pdf파일 저장
"n" ;페이지 설정 저장 여부
"y" ;플롯 진행 여부
)
(command "delay" 1000)
(setq plotlist (cdr plotlist))
)
(setvar "osmode" currentos)
)
카페 게시글
검색이 허용된 게시물입니다.
다음검색
첫댓글 고맙습니다....잘 됨니다...^^7