当前位置:   article > 正文

C# CAD2016获取数据操作BlockTableRecord、Polyline、DBObject

C# CAD2016获取数据操作BlockTableRecord、Polyline、DBObject

一、数据操作说明

  1. //DBObject 基础类
  2. DBObject dbObj = (DBObject)tr.GetObject(outerId, OpenMode.ForRead);
  3. //Polyline 线段类
  4. Polyline outerPolyline = (Polyline)tr.GetObject(outerId, OpenMode.ForRead);
  5. //BlockTableRecord 块表类
  6. BlockTableRecord modelSpace = (BlockTableRecord)tr.GetObject(ObjectId.FromName(BlockTableRecord.ModelSpace), OpenMode.ForWrite);
  • tr 是一个 Transaction 对象,代表了对AutoCAD数据库的操作事务。所有对数据库中对象的读取或修改操作都应在事务的上下文中进行。

  • GetObject() 是 Transaction 类的一个方法,它接收两个参数:

    • id 是一个 ObjectId 类型的对象,表示数据库中的一个特定图元对象的唯一标识符。
    • OpenMode.ForRead 指定了打开该对象的方式为只读模式,这意味着你只能访问对象的数据但不能修改它们。
  • as Entity 是C#中的类型转换运算符,它尝试将从 GetObject() 方法返回的对象转换为 Entity 类型。Entity 是AutoCAD .NET API中的一个基类,所有具体的图元对象(如直线、圆、块参照等)都继承自这个类。

  • BlockTableRecord:块表记录。
  • DBObject:所有数据库对象的基类,包括实体(如直线、圆、文字等)、图层、线型、视图等。
  • BlockReference:块参照对象,表示插入到绘图中的块实例。
  • Layer:图层对象,包含图层属性信息。
  • LineCircleText 等具体的几何图形实体类。

二、类型转换方法

  1. ObjectId outerId = ...; // 获取某个对象的ObjectId
  2. DBObject dbObj = (DBObject)tr.GetObject(outerId, OpenMode.ForRead);
  3. // 判断并转换为具体类型
  4. if (dbObj is BlockTableRecord)
  5. {
  6. BlockTableRecord btr = (BlockTableRecord)dbObj;
  7. // 对块表记录进行操作...
  8. }
  9. else if (dbObj is Entity)
  10. {
  11. Entity ent = (Entity)dbObj;
  12. // 对实体对象进行操作...
  13. }

三、数据类型 

  1. Entity 类及其众多子类:
  2. AcDbBlockReference:块参照
  3. AcDbCircle:圆
  4. AcDbLine:直线
  5. AcDbPolyline:多段线
  6. AcDb3dPolyline:三维多段线
  7. AcDbArc:圆弧
  8. AcDbEllipse:椭圆
  9. AcDbText:文字
  10. AcDbMText:多重行文本
  11. AcDbDimension:尺寸标注
  12. AcDbHatch:填充图案
  13. AcDbLeader:引线标注
  14. AcDbPoint:点
  15. AcDbShape:预定义图形形状
  16. 等等
  17. 非实体对象:
  18. AcDbBlockTableRecord:块表记录
  19. AcDbLayerTableRecord:图层表记录
  20. AcDbTextStyleTableRecord:文字样式表记录
  21. AcDbLinetypeTableRecord:线型表记录
  22. AcDbViewTableRecord:视图表记录
  23. AcDbUCSTableRecord:用户坐标系(UCS)表记录
  24. AcDbViewportTableRecord:视口表记录
  25. AcDbDictionary:字典对象
  26. AcDbDictionaryWithDefault:带默认值的字典对象
  27. 等等
  28. 其他特殊或高级对象类型:
  29. AcDbXrefRecord:外部参照记录
  30. AcDbRegAppTableRecord:注册应用程序表记录
  31. AcDbPlotSettings:打印设置
  32. AcDbLayout:布局(图纸空间)
  33. AcDbRasterImage:光栅图像
  34. AcDbUnderlayDefinition:底图定义
  35. 等等
  36. 上述列举并未穷尽所有可能的对象类型,但涵盖了AutoCAD中最常见和基础的对象。在实际开发中,根据需求可能会用到更多特定类型的对象。

//感谢大家的点赞,收藏,转发,关注  

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/114313?site
推荐阅读