0

我需要通过单击按钮创建圆圈process dll(Acdbmgd.dll ,acmgd.dll)

我可以通过 COM interop dll 创建圆圈。但我不知道如何使用process dll.

这是示例代码:

        Database db = HostApplicationServices.WorkingDatabase;

        Document doc = Autodesk.AutoCAD.ApplicationServices.
                Application.DocumentManager.GetDocument(db);
        // Perform our addition
        double res = 5 + 9;

        // Lock the document before we access it

        DocumentLock loc = doc.LockDocument();

        using (loc)
        {

            Transaction tr = db.TransactionManager.StartTransaction();

            using (tr)
            {

                // Create our circle
                Circle cir = 
           new Circle(new Point3d(0, 0, 0), new Vector3d(0, 0, 1), res);

                cir.SetDatabaseDefaults(db);

                // Add it to the current space

                BlockTableRecord btr = (BlockTableRecord)tr
              .GetObject(db.CurrentSpaceId, OpenMode.ForWrite);

                btr.AppendEntity(cir);

                tr.AddNewlyCreatedDBObject(cir, true);
                // Commit the transaction
                tr.Commit();
            }

        }

当我在按钮单击中执行上面的代码时,意味着运行时错误会抛出“找不到指定的模块”。

但是,如果我创建一个单独的 dll,那么我会在我的项目中引用该 dll 并为此创建对象,这意味着它正在工作

但我需要在调试模式下运行代码,所以我需要使用 exe。有没有办法通过 exe 来做?

提前致谢..

4

1 回答 1

1

进程中的 dll 需要加载到 AutoCAD 中。使用 NetLoad 使您可以使用已定义的命令。您打算调用的命令必须是公开的,并且具有以下命令标志:

[CommandMethod("MyCircle")]
public static void MyCircle()
{
    ...
}

编译完 dll 并将其加载到 AutoCAD 中后,在命令行中键入 MyCircle 将调用您定义的方法。

于 2013-10-01T12:39:19.537 回答