用Python来控制Autocad的打印------以Pycomcad为例

时间:2024-02-18 21:15:01
from pycomcad import * #以pycomcad作为接口库为例
import win32com
acad=Autocad()

image-20210201230038135

打印最重要的设置都在上面的界面中,下面对这些个界面,用Python控制来一一进行说明:

(1)打印机的控制

全部显示出打印机:

acad.acad.ActiveDocument.ModelSpace.Layout.GetPlotDeviceNames()

image-20210201230712797

选择打印机:

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

其他选项如下:

image-20210201231808766

(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 方法,该方法说明如下:

image-20210201232315210

(6)打印样式表

查看所有的打印样式表

acad.acad.ActiveDocument.ModelSpace.Layout.GetPlotStyleTableNames ()

image-20210201232422436

设定特定的打印样式表,以monochrome.ctb为例:

acad.acad.ActiveDocument.ModelSpace.Layout.StyleSheet=\'monochrome.ctb\'

(7)预览

acad.acad.ActiveDocument.Plot.DisplayPlotPreview(win32com.client.constants.acFullPreview)

image-20210201232633160

(8)打印到文件

acad.acad.ActiveDocument.Plot.PlotToFile(r\'johnyangPlot.pdf\')

打印成功返回True

image-20210201232755901