0

を介してボタンクリックから円を作成する必要がありますprocess dll(Acdbmgd.dll ,acmgd.dll)

COM 相互運用 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();
            }

        }

上記のコードをボタンクリックで実行すると、「指定されたモジュールが見つかりませんでした」のような実行時エラーがスローされます。

しかし、1 つの個別の dll を作成する場合、プロジェクトでその dll を参照し、そのためのオブジェクトを作成します。これは、それが機能していることを意味します

しかし、コードをデバッグ モードで実行する必要があるため、exe で作業する必要があります。

前もって感謝します..

4

1 に答える 1

1

処理中の dll を AutoCAD にロードする必要があります。NetLoad を使用して、定義済みのコマンドを使用できるようにします。呼び出すコマンドはパブリックである必要があり、次のコマンド フラグが必要です。

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

DLL をコンパイルして AutoCAD にロードしたら、コマンド ラインに MyCircle と入力すると、定義したメソッドが呼び出されます。

于 2013-10-01T12:39:19.537 に答える