【问题标题】:How to open all .dwg files in a directory in one instance of AutoCAD using Python如何使用 Python 打开一个 AutoCAD 实例中目录中的所有 .dwg 文件
【发布时间】:2020-04-26 20:42:59
【问题描述】:

本周我开始学习 Python(并一起编码),但我被困在一个我想做的简单任务上。

我正在寻找的功能是这样的:

  1. 打印控制台指定目录下的所有.dwg文件。
  2. 打开一个 AutoCAD 实例。
  3. 对于所述目录中的每个.dwg 文件,在新选项卡中打开一个绘图。 (如果我打开了一个 AutoCAD 实例,它会在双击 .dwg 文件时自动打开选项卡)

我现在写的代码:

import os
import subprocess

autocadPath = r'C:\Program Files\Autodesk\AutoCAD 2019\acad.exe'     

for file in os.listdir("D:\openFiles"):
    if file.endswith(".dwg"):
        print(os.path.join("D:\openFiles", file))

        subprocess.Popen("%s %s" % (autocadPath, os.path.join("D:\openFiles", file))) 

当我运行这个时会发生什么:

  1. 打开了两个 AutoCAD 实例。
  2. 最后打印的绘图在这两种情况下都会打开
  3. 它试图打开第一个打印的文件,但只在 AutoCAD 的第二个实例中,它没有找到该文件。

(我在 de 目录中只有 2 个.dwg 文件。)

我希望有人能帮我解决这个问题。

【问题讨论】:

    标签: python python-3.x autocad


    【解决方案1】:

    到目前为止,在 AutoCAD 中打印一批图形的最简单方法是使用 AutoCAD 脚本文件 (.scr),该文件可以向 AutoCAD 命令行发出一系列命令和对命令提示的响应。我在回答 here 中描述了这个过程(尽管是从 AutoLISP 的角度)。

    使用 AutoCAD 脚本,您可以打开每个图形,发出 -PLOT 命令以使用保存的绘图配置 (.pc3) 进行绘图,或者通过进入详细配置模式并在命令行响应每个提示进行绘图.

    我在教程here 中描述了 AutoCAD 脚本文件的语法。对于-PLOT 命令,脚本可能如下所示:

    -PLOT Y  "dwg to PDF" "ANSI full bleed B (11.00 x 17.00 Inches)" I L N E F C Y monochrome.ctb Y N N N "C:/YourFilename.pdf" N Y
    

    您可以使用 Python 编写脚本,然后可以通过提供 SCRIPT 命令以及创建的脚本文件的文件名和文件路径从 AutoCAD 命令行运行该脚本。

    【讨论】:

    • Hey Lee,问题不在于打印,这在 python 脚本中按预期工作。不起作用的是在 AutoCAD 的 1 个实例中打开所述目录中的所有 .dwg 文件。
    • 这实际上是我建议使用 AutoCAD 脚本的主要原因,因为该脚本将在单个 AutoCAD 实例中打开所有图形。我想另一种方法是在建立 AutoCAD 会话后使用 Python 向 AutoCAD 发出OPEN 命令。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    • 2020-02-15
    • 2012-03-11
    • 2020-01-18
    • 2017-04-25
    • 1970-01-01
    相关资源
    最近更新 更多