0

在过去的两天里,我一直在寻找示例代码,其中包含可以帮助我理解 Autocad API 的步骤。所以我可以使用 C# 中的代码。

[CommandMethod("LISTGEn")]
public static void ListEntities()
        {
            Document acDoc = Autodesk.AutoCAD.ApplicationServices.Core.Application.DocumentManager.MdiActiveDocument;
            Database acCurDb = acDoc.Database;

            using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
            {
                // Open the Block table record for read
                BlockTable acBlkTbl;
                acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId,OpenMode.ForRead) as BlockTable;

                // Open the Block table record Model space for read
                BlockTableRecord acBlkTblRec;
                acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace],OpenMode.ForRead) as BlockTableRecord;

                int nCnt = 0;
                acDoc.Editor.WriteMessage("\nModel space objects: ");

                // Step through each object in Model space and
                // display the type of object found
                foreach (ObjectId acObjId in acBlkTblRec)
                {
                    acDoc.Editor.WriteMessage("\n" + acObjId.ObjectClass.DxfName);

                    nCnt = nCnt + 1;
                }
                acDoc.Editor.WriteMessage(nCnt.ToString());
                // If no objects are found then display a message
                if (nCnt == 0)
                {
                    acDoc.Editor.WriteMessage("\n No objects found");
                }

                // Dispose of the transaction
            }

        } 

我可以运行上面的代码,但它不能正常运行。我很难理解如何让它与 Autocad 一起工作。我引用了 OjectARX SDK,我正在使用 VS2010 和 Autocad 2012。感谢您的帮助。

4

2 回答 2

3

好的,我得到了唯一需要的东西

1.)是创建类库

2.) 然后需要在类中输入上述代码。

3.) 按 F5 构建您的项目。

4.) 将在项目的 bin/debug/ 文件夹中创建一个 DLL

5.) 打开 Autocad。

6.) 编写 netload 命令。

7.) 选择创建的 DLL,然后编写命令“LISTGEN”,然后 kaboom 将显示项目中的所有对象。

于 2013-08-07T08:10:16.157 回答
1

为避免手动加载您的 dll,您可以使用临时修复程序进行调试并编写一个 lisp 文件来为您完成

(Command "netload" "path/to/your/.dll")\n

或者你可以使用 \\

看看我的github。链接在我的个人资料上。查看参考库,它为对象模型操作高度简化。

如果您有任何问题,请随时给我发电子邮件。

于 2013-08-08T00:19:44.723 回答