我在使用IronPython引用某些程序集时遇到了一些问题,因此我可以使用AutoCAD API导入名称空间来读取/编辑CAD文件。
我可以添加引用并导入Autodesk.AutoCAD.Interop程序集就好了,但由于某种原因我无法添加acdbmgd.dll,acmgd.dll,accoremgd.dll或AecBaseMgd.dll。
它可能与this post:
有关“AutoCAD确实有一个api。有4个程序集。两个用于进程中,两个用于COM。
inprocess:acdbmgd.dll acmgd.dll
COMInterop:Autodesk.Autocad.Interop.dll Autodesk.Autocad.Interop.Common.dll“
浏览到AutoCAD Civil 3D的安装目录,然后选择基本库acdbmgd.dll,acmgd.dll,accoremgd.dll,AecBaseMgd.dll和AeccDbMgd.dll。 注意: 这些是AutoCAD和AutoCAD Civil 3D管理库的基础。您的.NET程序集可以使用其他库中定义的类。
我猜测进程是什么问题?我只是不知道为什么。
这是我的代码:
错误: IOError:[Errno 127]无法加载'acdbmgd.dll'导入的过程。
import sys
sys.path.append(r'C:\Program Files (x86)\IronPython 2.7\Lib')
sys.path.append(r'C:\Program Files\Autodesk\AutoCAD 2016')
sys.path.append(r'C:\Program Files\Autodesk\AutoCAD 2016\C3D')
import clr
#Add standard AutoCAD References
clr.AddReferenceToFile('acdbmgd.dll')
clr.AddReferenceToFile('acmgd.dll')
clr.AddReferenceToFile('accoremgd.dll')
clr.AddReferenceToFile('AecBaseMgd.dll')
#Add Civil Reference
clr.AddReferenceToFile('AeccDbMgd.dll')
#AutoCad namespaces
import Autodesk.AutoCAD.Runtime
import Autodesk.AutoCAD.ApplicationServices
import Autodesk.AutoCAD.DatabaseServices
import Autodesk.AutoCAD.EditorInput
#Civil namespaces
import Autodesk.Civil
import Autodesk.Civil.ApplicationServices
感谢Hans Passant,只是一个版本问题。现在是另一个问题:
标准的Autocad文件已导入,但尝试导入民用文件(AeccDbMgd.dll)会吐出此错误:
IOError:[Errno 2]无法加载文件或程序集“AeccDbMgd.dll”或其依赖项之一。找不到指定的模块。
感谢所有阅读此内容的人!我很感激你的时间。
干杯,
TJ