admin管理员组

文章数量:1574090

之前利用Python对cad文件进行处理,用的都是pyautocad,不过灵活度感觉不高。看过他的源代码后,发现他是调用comtypes.client对当前dwg文件进行处理的。运行逻辑如下:

以批量打开某文件夹中的dwg文件,并另存为dxf文件为例:

import comtypes.client
import os

working_dir = r"D:\Test_Dir"
# 更改路径至目标文件夹内
os.chdir(working_dir)
# 获取当前文件夹内所有文件的列表
file_list = os.listdir()

# 获取当前激活的AutoCad文件(注意,需要提前手动打开CAD.exe,不然会报错)
# 其中"AutoCAD.Application"是AutoCAD的ProjID,dynamic作用尚不清楚
app = comtypes.client.GetActiveObject("AutoCAD.Application",dynamic = True)

# 循环遍历file_list中的每个文件
for file_name in file_list:
    # 如果文件以dwg结尾,则打开文件
    if file_name.endwith('.dwg'):
        app.Document.Open(working_dir + "\\" + file_name)
        # 获取当前活动的CAD文件的对象
        acad = app.ActiveDocument
        # 将acad对象另存为dxf格式,第二个参数13为某版本的dxf文件格式代码,可在AutoCAD帮助文档中查阅
        acad.saveas(working_dir + "\\" + file_name[:-4] +'_new.dxf',13)
        # 关闭当前文档        
        acad.close()

本文章为自学过程中的记录,欢迎交流及批评指正。

本文标签: 批处理文件comtypesCLIENTPython