【问题标题】:How to get label name in Autocad file using C#如何使用 C# 在 Autocad 文件中获取标签名称
【发布时间】:2011-10-27 07:50:54
【问题描述】:

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

【问题讨论】:

标签: c# .net drawing autocad autodesk


【解决方案1】:

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

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

stackoverflow 上的另一个答案推荐 this book chapter 作为了解 AutoCAD 数据库连接功能的一种方式。

【讨论】:

    【解决方案2】:

    简单如下:

    [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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-12
      • 2013-04-16
      • 2022-12-18
      • 2011-11-18
      • 1970-01-01
      • 2023-01-27
      • 1970-01-01
      • 2020-10-06
      相关资源
      最近更新 更多