1

我认为这样做很简单,但我不知道如何开始?我想使用 c# 在 AutoCAD 文件中获取图层名称或标签名称。我搜索论坛,但我真的发现任何有价值的东西。我找到了 ObjectARX 和 AutoLisp,但我没有找到任何关于这些 API 的教程。所以,我想举一个关于到达 autocad 文件的简单例子。

4

2 回答 2

1

如果您从官方网站下载了 ObjectARX SDK,它包含许多示例项目以帮助您入门。您需要具备一些 AutoCAD 知识才能了解 API 公开的 .dwg 数据库的结构。准备好在项目上投入大量时间。

如果您只是在 .dwg 文件中寻找简单的一次性数据转储,请询问您的本地绘图员,因为 AutoCAD UI 中有一个命令可以执行此操作,称为数据提取向导。

stackoverflow 上的另一个答案推荐本书章节作为理解 AutoCAD 数据库连接功能的一种方式。

于 2011-10-12T17:10:04.000 回答
1

简单如下:

[CommandMethod("LayerIterator")]
public static void LayerIterator_Method()
{
    Database database = HostApplicationServices.WorkingDatabase;
    using (Transaction transaction = database.TransactionManager.StartTransaction())
    {
        SymbolTable symTable = (SymbolTable)transaction.GetObject(database.LayerTableId, OpenMode.ForRead);
        foreach (ObjectId id in symTable)
        {
            LayerTableRecord symbol = (LayerTableRecord)transaction.GetObject(id, OpenMode.ForRead);

            //TODO: Access to the symbol
            MgdAcApplication.DocumentManager.MdiActiveDocument.Editor.WriteMessage(string.Format("\nName: {0}", symbol.Name));
        }

        transaction.Commit();
    }
}

详细信息可以从http://spiderinnet1.typepad.com/blog/2012/06/autocad-net-iterate-through-layer-table.html找到

于 2012-06-19T00:38:37.633 回答