明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1788|回复: 7

Python二次开发cad批量打印

[复制链接]
发表于 2021-1-7 10:33 | 显示全部楼层 |阅读模式
用python二次开发cad批量打印,结果打印单个dwg文件,没有问题,打印多个dwg文件时,就会报错,不知道是怎么回事。
初步判断,应该是没有打印完所引发的故障。给代码中加了延时后,效果不是很理想。查了EndPlot事件,不知道怎么在python中用。
有没有大神帮忙解决一下?
调用cad的方式:
acad = comtypes.client.GetActiveObject("AutoCAD.Application.20")
中间略去打印过程

acaddoc.Plot.PlotToFile(f"{filename1}.pdf") # 打印到当前文件夹
    sleep(8)    # r打印延时
    acad.Documents.Close()  # 关闭cad文件


错误信息:
Traceback (most recent call last):
  File "G:\工作cad转pdf\cad打印pdf.py", line 53, in <module>
    scr(filename1,filename,)                   # 批量转换
  File "G:\工作cad转pdf\cad打印pdf.py", line 16, in scr
    layout.ConfigName = "DWG To PDF.pc3"        # 打印机名称
  File "C:\Users\we\AppData\Local\Programs\Python\Python37\lib\site-packages\comtypes\__init__.py", line 292, in __setattr__
    value)
_ctypes.COMError: (-2147418111, '被呼叫方拒绝接收呼叫。', (None, None, None, 0, None))

发表于 2021-1-9 16:11 | 显示全部楼层
python二次开发cad,有没有学习资料分享下呗
 楼主| 发表于 2021-1-9 22:02 | 显示全部楼层
qmqyqj 发表于 2021-1-9 16:11
python二次开发cad,有没有学习资料分享下呗

我也在是网上看资料,主要是win32com库、comtypes库或者pyautocad库,用的技术是ActiveX开发。
参考acadauto.chm和acadaag.chm
 楼主| 发表于 2021-1-9 23:09 | 显示全部楼层
摸索了下,把acad = comtypes.client.GetActiveObject("AutoCAD.Application.20")这句进行了修改,改成
acad = comtypes.client.CreateObject("AutoCAD.Application.20")
这样修改后,加延时后,可以批量打印,但是还想着优化。看到有个 endplot事件,但不知道怎么用,不知道有人用过没,希望大神能指点下
发表于 2021-2-7 18:38 | 显示全部楼层
程序运行太快了,必须连接上cad才能运行程序
 楼主| 发表于 2021-2-7 20:36 | 显示全部楼层
z123456Z 发表于 2021-2-7 18:38
程序运行太快了,必须连接上cad才能运行程序

谢谢,已经解决
发表于 2021-5-13 11:46 | 显示全部楼层
发个来试试啊
发表于 2023-12-15 10:58 | 显示全部楼层
希望分享程序,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-28 12:02 , Processed in 0.559846 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表