Alexander 发表于 2013-6-18 21:52:13

C#如何用代码启动CAD程序

在《基于Visual C#的AutoCAD开发及其在工程中的应用》这本书中提到,用下面这种方法启动CAD:
Autodesk.AutoCAD.Inter.AcadApplication AcadApp=new AcadApplication();
AcadApp.Application.Visible=true;

但是这是VBA的方法,所以我一直很疑惑C#本身如何来启动CAD程序呢?我看了很多书都是启动好的CAD中加载dll,一直想知道用C#的代码来启动,这为批量处理文件提供了方便,求各位大神们指教,谢谢!

Alexander 发表于 2013-6-18 22:14:18

可能是我的认识错误了,但是为什么每本C#的书都没提到如何启动CAD程序呢?还是都是用Application启动的?乱了

sieben 发表于 2013-6-18 23:27:06

1,你有没有试过?
2,每本C#的书你都看过?

sieben 发表于 2013-6-18 23:30:09

那本书的作者说这是VBA方法还是你说这是VBA方法?

Alexander 发表于 2013-6-19 10:01:05

sieben 发表于 2013-6-18 23:30 static/image/common/back.gif
那本书的作者说这是VBA方法还是你说这是VBA方法?

是群里说的

Alexander 发表于 2013-6-19 10:01:54

sieben 发表于 2013-6-18 23:27 static/image/common/back.gif
1,你有没有试过?
2,每本C#的书你都看过?

C#的书市面上就两本,包括才鸟新出的那本也没提到

Alexander 发表于 2013-6-19 10:03:20

sieben 发表于 2013-6-18 23:27 static/image/common/back.gif
1,你有没有试过?
2,每本C#的书你都看过?

我有试过,就我贴的那两句代码,其它的没找到,但是群里说那是借c#的壳卖VBA之实

齐天大圣3386 发表于 2013-6-19 11:47:43

哪个群里说的啊?

Alexander 发表于 2013-6-19 14:01:07

我想大家的意思就是用Application来启动的,这是答案就行了

sieben 发表于 2013-6-19 15:19:13

      try { _AcadApp = (AcadApplication)Autodesk.AutoCAD.ApplicationServices.Application.AcadApplication; }
      catch
      {
      try
      {
          //AutoCAD 版本: 2007:17.0;2008:17.1;2009:17.2;2010:18.0;2011:18.1;2012:18.3;2013:19.0;
          _AcadApp = (AcadApplication)Marshal.GetActiveObject("AutoCAD.Application." + aApp.Version.Major + "." + aApp.Version.Minor);
      }
      catch
      {
          try
          {
            _AcadApp = new AcadApplication();
            _initialized = true;
          }
          catch (System.Exception ex)
          {   
          }
      }
      }
      try { _AcadDoc = _AcadApp.ActiveDocument; }
      catch (System.Exception exception)
      {
      try
      {
          _AcadDoc = _AcadApp.Documents.Add("acadiso.dwt");
      }
      catch (System.Exception ex)
      {      
          throw new System.Exception("AutoCAD COM get ActiveDocument failue");
      }
      }
页: [1] 2
查看完整版本: C#如何用代码启动CAD程序