ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-02-01 23:33:20  阅读:532  来源: 互联网

标签:acad Autocad ModelSpace 为例 Python 打印 ActiveDocument Layout


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

标签:acad,Autocad,ModelSpace,为例,Python,打印,ActiveDocument,Layout
来源: https://www.cnblogs.com/johnyang/p/14359725.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有