c# - 如何连接 C# 与 AUTOCAD 2010

标签 c# .net autocad

在 vs2008 C# 上工作,需要帮​​助连接 autocad 2010,我按照以下步骤进行连接,但它给了我一个错误。

我必须添加一个引用,所以我转到引用>>添加引用>>[COM TAB]>>Autocad 2010 类型库>>[确定]

我使用两个库:

using Autodesk.AutoCAD.Interop;
using Autodesk.AutoCAD.Interop.Common;

然后我使用以下代码连接 AutoCAD 2010:

namespace Sample_CSharp_Acad_connect
{


 class Program
    {
        private static IAcadApplication oAcadApp = null;
        private static string sAcadID = "AutoCAD.Application.18";

        static void Main()
        {
            try  //get a running AutoCAD instance if avaialbale
            {
                oAcadApp = (IAcadApplication)System.Runtime.InteropServices.Marshal.GetActiveObject(sAcadID);
            }
            catch(Exception) //none found so start a new instance
            {
                System.Type AcadProg = System.Type.GetTypeFromProgID(sAcadID);
                oAcadApp = (IAcadApplication)System.Activator.CreateInstance(AcadProg);
            }
            if (oAcadApp != null)
            {
                oAcadApp.Visible = true; //could leave this false to hide Acad from the user
                //do whatever with Acad
                //oAcadApp.Quit();
            }
        }
    }

错误消息:获取组件 CLSID 的对象类 COM 时出错 enter image description here

最佳答案

COM?不要这样做。

AutoCAD 有一个 .NET API。参见 http://usa.autodesk.com/adsk/servlet/index?id=1911627&siteID=123112从 Autodesk 获取资源。另请参阅此处的 wiki 以获取更多信息和大量链接:https://stackoverflow.com/tags/autocad/info

关于c# - 如何连接 C# 与 AUTOCAD 2010,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11397205/

相关文章:

c# - 在存储库模式中按 ID 过滤是不好的做法吗

vba - 如何引用 AutoCAD block

使用反射的 C# 通用 Excel 导出器

c# - gridview 不显示数据

c# - 列表框无法显示子类变量

c# - Fluent NHibernate 自动删除数据

c# - 什么样的队列是列表和字典?

.NET 事件、线程和消息

autocad - 在折线附近画线

arrays - Autolisp实体数据检索