从Windows窗体应用程序打开任何版本的Autocad

时间:2016-07-20 04:23:58

标签: c# autocad

我目前正在创建一个需要打开autocad的Wi​​ndows窗体应用程序。我已经为Autocad 2014做了。我们有什么方法可以完成这个任务,不仅适用于单个版本,还适用于任何版本。除此之外我已经创建了DLL 对于2014年工作正常。通过改变引用acmgd.dll和acdbmgd.dll我得到了它也在2007年工作。除此之外还有任何方法在所有版本中创建一个dll orking.Thanks提前。

2 个答案:

答案 0 :(得分:0)

可能实现此目的的一种方法是找出与Autocad文件关联的程序。这可以通过调用找到 FindExecutable传入带有autocad文件扩展名的文件名。

使用可执行文件后,您可以使用Process.Start

启动它

导入如下:

[DllImport("shell32.dll", EntryPoint = "FindExecutable")]
private static extern long FindExecutable(string lpFile, string lpDirectory, StringBuilder lpResult);

答案 1 :(得分:0)

关于你的第一个问题,这里有一些建议:

  1. AutoCAD通过COM API,您可以在其中启动和控制应用程序。 Here is a nice tutorial,请注意版本字符串可以在运行时更改,但要支持多个版本,您需要延迟绑定(dynamic on C#)。
  2. 自2013年起,
  3. AutoCAD Console(也称为AutoCAD命令行)是从其他应用程序自动化AutoCAD的最佳方式。
  4. Forge Design Automation API是AutoCAD“在云端”,如果您没有在自己的机器上或客户机器上安装AutoCAD,则最好。
  5. 如果选择#1,最好的方法是通过后期绑定,因此您的应用程序没有任何引用(不要使用AcMgd,AcDbMgd或AcCoreMgd,只使用Autodesk.AutoCAD.Interop库)。对于#2,您将需要所有三个引用(因为控制台自2013版以来可用)。对于#3,您只需要调用Web服务,因此根本不需要Autodesk引用(最干净)。

    对于第二个问题,您需要至少两次编译应用程序:适用于AutoCAD 2012及更早版本,以及AutoCAD 2013及更新版本。第一个是AcMgd和AcDbMgd,第二个只是添加AcCoreMgd。