用Python来控制Autocad的打印------以Pycomcad为例
from pycomcad import * #以pycomcad作为接口库为例
import win32com
acad=Autocad()
打印最重要的设置都在上面的界面中,下面对这些个界面,用Python控制来一一进行说明:
(1)打印机的控制
全部显示出打印机:
acad.acad.ActiveDocument.ModelSpace.Layout.GetPlotDeviceNames()
选择打印机:
acad.acad.ActiveDocument.ActiveLayout.ConfigName=\'DWG to PDF.pc3\'
(2)选择图纸尺寸
显示所有可供选择的尺寸
acad.acad.ActiveDocument.ModelSpace.Layout.GetCanonicalMediaNames()
设定打印图纸尺寸:
acad.acad.ActiveDocument.ModelSpace.Layout.CanonicalMediaName=\'ISO_A1_(841.00_x_594.00_MM)\'
(3)打印区域—窗口为例
以打印窗口设置为例(设定acWindow前,需要调用SetWindoToPlot方法来指定打印区域,p1是左下角,p2是右上角)
p1=acad.GetPoint()
p2=acad.GetPoint()
acad.acad.ActiveDocument.ModelSpace.Layout.SetWindowToPlot(VtFloat(p1[:2]),VtFloat(p2[:2]))
acad.acad.ActiveDocument.ModelSpace.Layout.PlotType=win32com.client.constants.acWindow
其他选项如下:
(4)打印偏移—以居中为例
acad.acad.ActiveDocument.ModelSpace.Layout.CenterPlot=True
(5)打印比例—以布满为例
acad.acad.ActiveDocument.ModelSpace.Layout.UseStandardScale=True #选用标准的比例
acad.acad.ActiveDocument.ModelSpace.Layout.StandardScale=win32com.client.constants.acScaleToFit
如果要自定义打印比例,将UseStandardScale
设置为False
,并调用SetCustomScale
方法,该方法说明如下:
(6)打印样式表
查看所有的打印样式表
acad.acad.ActiveDocument.ModelSpace.Layout.GetPlotStyleTableNames ()
设定特定的打印样式表,以monochrome.ctb
为例:
acad.acad.ActiveDocument.ModelSpace.Layout.StyleSheet=\'monochrome.ctb\'
(7)预览
acad.acad.ActiveDocument.Plot.DisplayPlotPreview(win32com.client.constants.acFullPreview)
(8)打印到文件
acad.acad.ActiveDocument.Plot.PlotToFile(r\'johnyangPlot.pdf\')
打印成功返回True