在IronPython中使用inprocess程序集? - AutoCAD

时间:2018-01-26 11:40:55

标签: .net api dll ironpython autocad

我在使用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“

Autodesk developers guide州:

浏览到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

0 个答案:

没有答案