活不多说直接上代码1、获取所有对象publicclassEntityGetter{publicstaticvoidGetAllEntities(){DocumentdocApplication.DocumentManager.MdiActiveDocument;Databasedbdoc.Database;Editoreddoc.Editor;using(Transactiontransdb.TransactionManager.StartTransaction()){try{// 获取模型空间BlockTablebttrans.GetObject(db.BlockTableId,OpenMode.ForRead)asBlockTable;BlockTableRecordbtrtrans.GetObject(bt[BlockTableRecord.ModelSpace],OpenMode.ForRead)asBlockTableRecord;// 遍历所有实体foreach(ObjectIdobjIdinbtr){Entityenttrans.GetObject(objId,OpenMode.ForRead)asEntity;if(entisCircle){CirclecircleentasCircle;ed.WriteMessage($\n找到圆: 半径 {circle.Radius});}elseif(entisLine){LinelineentasLine;ed.WriteMessage($\n找到直线: 长度 {line.Length});}}}catch(Exceptionex){ed.WriteMessage($\n错误:{ex.Message});}trans.Commit();}}}2、获取特定类型的对象publicclassEntitySelector{// 获取圆形对象publicstaticListCircleGetCircles(){ListCirclecirclesnewListCircle();DocumentdocApplication.DocumentManager.MdiActiveDocument;Databasedbdoc.Database;Editoreddoc.Editor;// 创建类型过滤器TypedValue[]filterListnewTypedValue[]{newTypedValue((int)DxfCode.Start,CIRCLE)};SelectionFilterfilternewSelectionFilter(filterList);PromptSelectionResultselResed.SelectAll(filter);if(selRes.StatusPromptStatus.OK){using(Transactiontransdb.TransactionManager.StartTransaction()){SelectionSetssselRes.Value;foreach(SelectedObjectselObjinss){Circlecircletrans.GetObject(selObj.ObjectId,OpenMode.ForRead)asCircle;if(circle!null){circles.Add(circle);}}trans.Commit();}}returncircles;}// 获取直线对象publicstaticListLineGetLines(){ListLinelinesnewListLine();DocumentdocApplication.DocumentManager.MdiActiveDocument;Databasedbdoc.Database;Editoreddoc.Editor;TypedValue[]filterListnewTypedValue[]{newTypedValue((int)DxfCode.Start,LINE)};SelectionFilterfilternewSelectionFilter(filterList);PromptSelectionResultselResed.SelectAll(filter);if(selRes.StatusPromptStatus.OK){using(Transactiontransdb.TransactionManager.StartTransaction()){SelectionSetssselRes.Value;foreach(SelectedObjectselObjinss){Linelinetrans.GetObject(selObj.ObjectId,OpenMode.ForRead)asLine;if(line!null){lines.Add(line);}}trans.Commit();}}returnlines;}}3、获取对象属性publicclassEntityProperties{publicstaticvoidGetCircleProperties(Circlecircle){// 基本属性Point3dcentercircle.Center;doubleradiuscircle.Radius;doubleareacircle.Area;doublecircumferencecircle.Circumference;// 图层信息stringlayercircle.Layer;// 颜色信息Colorcolorcircle.Color;// 线型信息stringlineTypecircle.Linetype;DocumentdocApplication.DocumentManager.MdiActiveDocument;Editoreddoc.Editor;ed.WriteMessage($\n圆的属性:);ed.WriteMessage($\n中心点: X{center.X}, Y{center.Y}, Z{center.Z});ed.WriteMessage($\n半径:{radius});ed.WriteMessage($\n面积:{area});ed.WriteMessage($\n周长:{circumference});ed.WriteMessage($\n图层:{layer});ed.WriteMessage($\n颜色:{color.ToString()});ed.WriteMessage($\n线型:{lineType});}publicstaticvoidGetLineProperties(Lineline){// 基本属性Point3dstartPointline.StartPoint;Point3dendPointline.EndPoint;doublelengthline.Length;Vector3ddirectionline.Delta;DocumentdocApplication.DocumentManager.MdiActiveDocument;Editoreddoc.Editor;ed.WriteMessage($\n直线的属性:);ed.WriteMessage($\n起点: X{startPoint.X}, Y{startPoint.Y}, Z{startPoint.Z});ed.WriteMessage($\n终点: X{endPoint.X}, Y{endPoint.Y}, Z{endPoint.Z});ed.WriteMessage($\n长度:{length});ed.WriteMessage($\n方向: X{direction.X}, Y{direction.Y}, Z{direction.Z});}}4、修改对象属性publicclassEntityModifier{publicstaticvoidModifyCircle(Circlecircle){DocumentdocApplication.DocumentManager.MdiActiveDocument;Databasedbdoc.Database;using(Transactiontransdb.TransactionManager.StartTransaction()){try{// 打开对象进行写操作CirclecircleToModifytrans.GetObject(circle.ObjectId,OpenMode.ForWrite)asCircle;// 修改属性circleToModify.Radius*2;// 双倍半径circleToModify.ColorIndex1;// 改变颜色trans.Commit();}catch(Exceptionex){doc.Editor.WriteMessage($\n错误:{ex.Message});trans.Abort();}}}publicstaticvoidModifyLine(Lineline){DocumentdocApplication.DocumentManager.MdiActiveDocument;Databasedbdoc.Database;using(Transactiontransdb.TransactionManager.StartTransaction()){try{LinelineToModifytrans.GetObject(line.ObjectId,OpenMode.ForWrite)asLine;// 延长直线lineToModify.EndPointnewPoint3d(lineToModify.EndPoint.X*2,lineToModify.EndPoint.Y*2,lineToModify.EndPoint.Z);trans.Commit();}catch(Exceptionex){doc.Editor.WriteMessage($\n错误:{ex.Message});trans.Abort();}}}}5、CAD基本对象publicclassBasicEntities{// 2D基本图形publicstaticreadonlystring[]Basic2D{Line,// 直线Circle,// 圆Arc,// 圆弧Polyline,// 多段线Ellipse,// 椭圆Spline,// 样条曲线Point,// 点Ray,// 射线XLine,// 构造线Text,// 文字MText,// 多行文字Rectangle,// 矩形Hatch,// 填充Region// 面域};// 3D基本图形publicstaticreadonlystring[]Basic3D{Solid,// 3D实体Surface,// 曲面Mesh,// 网格Body,// 体Face,// 3D面PolyFaceMesh,// 多面网格SubDMesh// 细分网格};}6、CAD标注类对象publicclassDimensionEntities{publicstaticreadonlystring[]Dimensions{AlignedDimension,// 对齐标注RotatedDimension,// 旋转标注DiametricDimension,// 直径标注RadialDimension,// 半径标注Angular2LineDimension,// 角度标注Angular3PointDimension,// 三点角度标注OrdinateDimension,// 坐标标注ArcDimension,// 弧长标注Leader,// 引线MLeader,// 多重引线Tolerance// 公差};}7、块和参照publicclassReferenceEntities{publicstaticreadonlystring[]References{BlockReference,// 块参照MInsertBlock,// 阵列块ExternalReference,// 外部参照RasterImage,// 光栅图像OLE2Frame,// OLE对象Viewport,// 视口UnderlayReference// 底图参照};}8、表格和布局对象publicclassTableEntities{publicstaticreadonlystring[]Tables{Table,// 表格Layout,// 布局PlotSettings,// 打印设置Group,// 组Dictionary,// 字典Layer,// 图层LayerFilter,// 图层过滤器LayerGroup,// 图层组PlotStyleName,// 打印样式View,// 视图UCS,// 用户坐标系Section// 剖面};}9、注释对象publicclassAnnotationEntities{publicstaticreadonlystring[]Annotations{MText,// 多行文字Text,// 单行文字AttributeDefinition,// 属性定义Attribute,// 属性DBPoint,// 数据库点Wipeout,// 遮罩Shape,// 形状Mline,// 多线Trace,// 痕迹线Arc_Dimension,// 弧度标注Leader,// 引线Tolerance// 公差};}10、特殊对象publicclassSpecialEntities{publicstaticreadonlystring[]Special{Light,// 灯光Camera,// 相机Material,// 材质Sun,// 太阳GeoMap,// 地理位置Section,// 剖面SectionSettings,// 剖面设置DetailViewStyle,// 详图视图样式SectionViewStyle,// 剖面视图样式TableStyle,// 表格样式MLeaderStyle,// 多重引线样式DimStyle,// 标注样式TextStyle,// 文字样式UCSTableRecord,// UCS表记录ViewportTableRecord// 视口表记录};}11、获取对象示例publicclassEntityHelper{publicstaticEntityGetEntity(ObjectIdid){DocumentdocApplication.DocumentManager.MdiActiveDocument;Databasedbdoc.Database;using(Transactiontransdb.TransactionManager.StartTransaction()){Entityenttrans.GetObject(id,OpenMode.ForRead)asEntity;if(ent!null){// 根据对象类型进行处理if(entisLine){LinelineentasLine;// 处理直线}elseif(entisCircle){CirclecircleentasCircle;// 处理圆}elseif(entisPolyline){PolylineplineentasPolyline;// 处理多段线}// ... 其他类型的处理}trans.Commit();returnent;}}}