【问题标题】:ObjectARX SDK for c#用于 c# 的 ObjectARX SDK
【发布时间】:2013-08-08 10:24:51
【问题描述】:

在过去的两天里,我一直在寻找示例代码,其中包含可以帮助我理解 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。感谢您的帮助。

【问题讨论】:

  • 你说的不是很清楚。您对 vb 使用与 c# 相同的 .dll。这是一个 .net 包装器
  • 嘿听 Trae 对不起,发生了什么事我很抱歉我的评论,我不应该写这样的评论。再次抱歉

标签: api sdk autocad objectarx


【解决方案1】:

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

1.) 是创建一个类库

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

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

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

5.) 打开 Autocad。

6.) 编写 netload 命令。

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

【讨论】:

    【解决方案2】:

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

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

    或者你可以使用 \\

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

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

    【讨论】:

      猜你喜欢
      • 2014-02-03
      • 2012-01-23
      • 2013-01-26
      • 2021-10-20
      • 2011-10-02
      • 1970-01-01
      • 1970-01-01
      • 2018-01-17
      • 2021-10-09
      相关资源
      最近更新 更多