본문 바로가기
autocad

DWG to PDF(A3) Updates

by kmlab 2021. 12. 15.

DWG To PDF(A3).pc3
0.00MB
KM_GRAY.ctb
0.00MB

;;===================CREATE PDF by DWG to PDF.pc3=======================
;;
;; 페이퍼스페이스와 모델스페이스에서 PLOT 스크립트 다름.
;; TILEMODE 확인으로 스크립트 구분
;; PDF를 작성할 때 실행하기 위한 스크립트. 도면번호를 텍스트로 선택
;; Adobe PDF.pc3 대신 DWG to PDF.pc3 사용 (Adobe PDF는 SCRIPT 실행안됨)
;; 선행작업1: 용지크기 A3_PDF 선택
;; 선행작업2: Adobe PDF A3 "ISO A3 (420.00 x 297.00 mm)"여백으로 조정, 
;; 인쇄가능영역 여백값 3.1 3.1 3.2 3.1 인쇄가능영역=413.7x290.8 설정
;; 선행작업3: PDF Options에서 칼라 블랙 변경 안됨, 펜세팅 Gray=ON, Color10~255 선가중치=객체선가중치사용
;; 선행작업4: PDF Options에서 "모든 문자를 형상으로 변환" 선택, DWG to PDF 사용시 폰트 깨지는 문제 해결
;; 선행작업5: PDF Options에서 벡터품질 1200dpi, 레스터 품질: 800dpi 설정
;; DWG to PDF(A3).pc3, KM_GRAY.ctb 저장 
;; 도면번호 선택 > 도곽선택 > 같은 폴더에 PLOTtstamp_DwgNo.pdf 생성
;;
;; v1.1 ****** CHECKING TILEMODE *******
;; v1.1 ****** DWG to PDF(A3),pc3 ******
;; v1.1 ****** KM_GRAY.ctb ******
;; v1.1 ****** A3_PDF: ISO A3 -> 여백조정 ******
;; 
;; Author: KM Lab, Copyright © 2021  -  kmlab.tistory.com
;; Version 1.0 - 2021-10-27
;; Version 1.1 - 2021-12-15
;;
(defun KM:PLOTSETTING (/ drawingno dn tstmp path plt pltname)

;;get drwaing no.
(princ "\n***SELECT A DRAWING NO***:...\n")
(while (not (setq dn (ssget ":s" '((0 . "*TEXT"))))))
(setq drawingno (cdr (assoc 1 (entget (ssname dn 0)))))
(princ drawingno)
;
;;get plot area
(princ "\n\n***SELECT A DRAWING TITLEBLOCK***:...\n")
(while (not (setq drawingbox (ssget ":s" '((0 . "INSERT"))))))
(vla-GetBoundingBox (vlax-ename->vla-object (ssname drawingbox 0)) 'MinPt 'MaxPt)
(setq P1 (vlax-safearray->list MinPt)); Points of Lower Left of Selected Entity 
(setq P2 (vlax-safearray->list MaxPt)); Points of Upper Right of Selected Entity
;set Landscape/Potrait. 용지 대각선 각도가 45도 이하면 가로, 45도 넘으면 세로로 설정.
(if (> 0.25 (/ (angle P1 P2) pi)) (setq ort "LANDSCAPE") (setq ort "PORTRAIT"))
;set plot scale. 90 미만 비율은 12.3->12, 45.8->45 조정. 93.85->90, 245.2->240으로 자동조정.
(setq ratio (/ (distance P1 P2) 514.4))
(cond
((<= 1000 ratio) (setq plot_ratio (* 100 (atoi (rtos (/ ratio 100) 2 0)))))
((and (<= 100 ratio) (< ratio 1000)) (setq plot_ratio (* 10 (atoi (rtos (/ ratio 10) 2 0)))))
((> 100 ratio) (setq plot_ratio (atoi (rtos ratio 2 0))))
);cond
;set p_scale "1=plot_ratio"
(setq p_scale (strcat "1=" (itoa plot_ratio)))
;
;;plot setting
(setq DetailedPlotConfig "YES")
(setq LayoutName "")
(setq OutputDevice "DWG To PDF(A3).pc3"); Set PDF Options: Convert all text geometry
(setq PaperSize "A3_PDF"); "ISO A3 (420.00 x 297.00 mm)" saveto "A3_PDF"
(setq PaperUnits "MILLIMETERS")
(setq Orientation ort)
(setq UpsideDown "NO")
(setq PlotArea "WINDOW")
(setq PlotScale p_scale)
(setq PlotOffset "CENTER")
(setq PlotStyle "YES")
(setq PlotTable "KM_GRAY.ctb"); Set Gray=ON, Color 10~255 Lines Weights=USE OBJECTS
(setq LineWeights "YES")
;
(setq LineweightScale "NO");paperspace
(setq PaperspaceFirst "NO");paperspace
(setq HidePaperspaceObject "NO");paperspace
;
(setq ShadePlot "A");As displayed;modelspace
;
(setq ChangePagesetup "NO")
(setq ProceedPlot "YES")

;;Set PDFNAME; TimeStamp can be enabled if you want
;(setq tstmp (rtos (getvar "cdate") 2 6)); TimeStamp YYYYMMDD.hhmmss
(setq path (getvar "dwgprefix"))
;(setq plt (strcat path "PLOT" tstmp " "))
;(setq pltname (strcat plt drawingno ".pdf"))
;(setq PdfName pltname)
(setq PdfName (strcat path drawingno ".pdf"))
);defun KM:PLOTSETTING

(defun KM:PLOTp (); proceeding on paperspace mode
(command "-plot" 
DetailedPlotConfig
LayoutName
OutputDevice
PaperSize
PaperUnits
Orientation
UpsideDown
PlotArea P1 P2
PlotScale
PlotOffset
PlotStyle
PlotTable
LineWeights
LineweightScale
PaperspaceFirst
HidePaperspaceObject
PdfName
ChangePagesetup
ProceedPlot
);command plot
);defun KM:PLOT_paperspace
;
(defun KM:PLOTm (); plot proceeding on modelspace mode
(command "-plot" 
DetailedPlotConfig
LayoutName
OutputDevice
PaperSize
PaperUnits
Orientation
UpsideDown
PlotArea P1 P2
PlotScale
PlotOffset
PlotStyle
PlotTable
LineWeights
ShadePlot
PdfName
ChangePagesetup
ProceedPlot
);command plot
);defun KM:PLOT_modelspace
;
(defun KM:INIT ()
(setvar "cmdecho" 0)
(setvar "filedia" 0)
(setvar "cmddia" 0)
(setvar "layerevalctl" 0)
);defun init
;
(defun KM:RESET ()
(setvar "cmdecho" 1)
(setvar "filedia" 1)
(setvar "cmddia" 1)
(setvar "layerevalctl" 1)
); defun reset
;;
(defun c:KP (); KM Plot Script
;;
(KM:INIT)
(KM:PLOTSETTING)
;
(if (= 0 (getvar "TILEMODE"))
(KM:PLOTp)
(KM:PLOTm)
)
;
(KM:RESET)
;
;;Success Plot
(prompt "\n...SUCCESS PLOT...\n")
(princ (strcat PdfName "  " p_scale))
(princ)
;(command "close")
);defun KP

 

반응형

'autocad' 카테고리의 다른 글

Redefinition 'F1 Cancel' Command in AutoCAD  (0) 2021.12.30
temporary FILLET 0; start EXPLORER current dwg folder  (0) 2021.12.16
Tag RoomName: AREA  (0) 2021.11.02
DWG to PDF.pc3, c:KP  (0) 2021.10.27
XREF BIND, c:XRX, c:XRR, c:REE  (0) 2021.10.27