首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于ObjectARX c#的SDK

用于ObjectARX c#的SDK
EN

Stack Overflow用户
提问于 2013-08-07 07:00:52
回答 2查看 2.5K关注 0票数 0

在过去的两天里,我一直在寻找示例代码,这些步骤可能会帮助我理解Autocad。这样我就可以在C#中使用代码了。

代码语言:javascript
复制
[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工作。谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-07 08:10:16

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

1.)是创建类库。

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

3.)通过按F5构建项目。

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

5.)打开Autocad。

6.)编写netload命令。

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

票数 3
EN

Stack Overflow用户

发布于 2013-08-08 00:19:44

为了避免手动重新加载dll,您可以使用临时修补程序进行调试,并编写一个lisp文件来帮助您进行调试。

代码语言:javascript
复制
(Command "netload" "path/to/your/.dll")\n

或者你可以用\

看看我的github。链接在我的个人资料上。查看一下参考库,它对于对象模型操作是非常简化的。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18096683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档