AutoCAD.EntityTools
1.0.6
dotnet add package AutoCAD.EntityTools --version 1.0.6
NuGet\Install-Package AutoCAD.EntityTools -Version 1.0.6
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="AutoCAD.EntityTools" Version="1.0.6" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="AutoCAD.EntityTools" Version="1.0.6" />
<PackageReference Include="AutoCAD.EntityTools" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add AutoCAD.EntityTools --version 1.0.6
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: AutoCAD.EntityTools, 1.0.6"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package AutoCAD.EntityTools@1.0.6
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=AutoCAD.EntityTools&version=1.0.6
#tool nuget:?package=AutoCAD.EntityTools&version=1.0.6
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
CAD二次开发对实体类做出的扩展...
项目结构
- AutoCAD.EntityTools CAD二次开发工具
- AutoCAD.EntityTool.Tests 测试工具
类结构
- EntityTools Entity类扩展
- PointTools Point类扩展
- LayerTools Layer类扩展
- EditorTools Editor类扩展
- BlockTools Block类扩展
调用方式
using AutoCAD.EntityTools;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Runtime;
[assembly:CommandClass(typeof(AutoCAD.Entitytools.Test.Demo))]
namespace AutoCAD.Entitytools.Test
{
public class Demo
{
[CommandMethod(nameof(Run1))]
public void Run1()
{
try
{
var doc = Application.DocumentManager.MdiActiveDocument;
using (doc.LockDocument())
{
var line = new Line(Point3d.Origin, new Point3d(10, 10, 0));
doc.Database.AddEntityToModelSpace(line);
}
"完成了".CadAlert();
}
catch (System.Exception ex)
{
System.Windows.MessageBox.Show(ex.Message);
}
}
}
}
封装方法
Entity类扩展
/// <summary>
/// 通过ObjectId数组获取对应的实体数组。
/// </summary>
/// <param name="db">AutoCAD数据库实例。</param>
/// <param name="objIds">要查询的ObjectId数组。</param>
/// <returns>与ObjectId数组对应的实体数组。如果传入的ObjectId数组为空或长度为零,则返回null。</returns>
/// <remarks>
/// 此方法使用事务来安全地访问数据库中的实体。每个ObjectId都会被查询,并转换为对应的实体。
/// 如果传入的ObjectId不存在或无法转换为实体,则对应位置在返回的数组中将为null。
/// </remarks>
ToObjectIdGetEntity(this Database db, params ObjectId[] objIds)
/// <summary>
/// 通过ObjectId得到实体
/// </summary>
/// <param name="objId">要查询的ObjectId</param>
/// <param name="db">图像数据库</param>
/// <returns>实体</returns>
ToObjectIdGetEntity(this Database db, ObjectId objId)
/// <summary>
/// 移动实体
/// </summary>
/// <param name="id">实体的ObjectId</param>
/// <param name="sourcePt">移动源点</param>
/// <param name="targetPt">移动的目标点</param>
Move(this ObjectId id, Point3d sourcePt, Point3d targetPt)
/// <summary>
/// 移动实体
/// </summary>
/// <param name="ent">实体</param>
/// <param name="sourcePt">移动源点</param>
/// <param name="targetPt">移动的目标点</param>
Move(this Entity ent, Point3d sourcePt, Point3d targetPt)
/// <summary>
/// 复制
/// </summary>
/// <param name="id">实体的ObjectId</param>
/// <param name="sourcePt">复制的源点</param>
/// <param name="targetPt">复制的目标点</param>
/// <returns>复制实体的ObjectId</returns>
Copy(this ObjectId id, Point3d sourcePt, Point3d targetPt)
/// <summary>
/// 旋转
/// </summary>
/// <param name="id">实体ObjectId</param>
/// <param name="basePt">旋转基点</param>
/// <param name="angle">旋转角度</param>
Rotate(this ObjectId id, Point3d basePt, double angle)
/// <summary>
/// 缩放
/// </summary>
/// <param name="id">实体的ObjectId</param>
/// <param name="basePt">缩放基点</param>
/// <param name="scaleFactor">缩放比例</param>
Scale(this ObjectId id, Point3d basePt, double scaleFactor)
/// <summary>
/// 镜像
/// </summary>
/// <param name="id">实体ObjectId</param>
/// <param name="mirrorPt1">镜像点1</param>
/// <param name="mirrorPt2">镜像点2</param>
/// <param name="eraseSourceObject">是否删除源对象</param>
/// <returns>镜像实体的ObjectId</returns>
Mirror(this ObjectId id, Point3d mirrorPt1, Point3d mirrorPt2, bool eraseSourceObject)
/// <summary>
/// 将指定的实体添加到AutoCAD图形数据库中的块表记录(BlockTableRecord)。
/// </summary>
/// <typeparam name="TEntity">实体类型,必须继承自AutoCAD的Entity类。</typeparam>
/// <param name="entity">要添加到数据库的实体对象。</param>
/// <param name="host">当前的事务对象,用于管理对数据库的操作。</param>
/// <param name="btr">目标块表记录,实体将被添加到这个记录中。</param>
/// <returns>返回添加到数据库后实体的ObjectId。</returns>
/// <remarks>
/// 此方法执行以下操作:
/// 1. 将实体附加到指定的块表记录。
/// 2. 将新创建的实体添加到事务中,确保实体被正确地管理。
/// 如果传入的实体为null,则方法返回ObjectId.Null。
/// </remarks>
AddToDatabase<TEntity>(this TEntity entity, Transaction host, BlockTableRecord btr)
/// <summary>
/// 将一组实体添加到AutoCAD图形数据库中的模型空间块表记录(BlockTableRecord)。
/// </summary>
/// <typeparam name="TEntity">实体类型,必须继承自AutoCAD的Entity类。</typeparam>
/// <param name="entities">要添加到数据库的实体集合。</param>
/// <param name="host">当前的事务对象,用于管理对数据库的操作。</param>
/// <param name="model_space">模型空间块表记录,实体将被添加到这个记录中。</param>
/// <returns>返回一个包含所有添加到数据库后实体的ObjectId的列表。</returns>
/// <remarks>
/// 此方法执行以下操作:
/// 1. 对传入的实体集合中的每个实体执行添加操作。
/// 2. 将每个实体附加到指定的模型空间块表记录。
/// 3. 将新创建的实体添加到事务中,确保实体被正确地管理。
/// 如果传入的实体集合为空或包含null元素,则这些元素将被忽略,不会添加到数据库中。
/// </remarks>
AddToDatabase<TEntity>(this ICollection<TEntity> entities, Transaction host, BlockTableRecord model_space)
/// <summary>
/// 将一组实体添加到AutoCAD图形数据库中的指定块表记录(BlockTableRecord)。
/// </summary>
/// <typeparam name="TEntity">实体类型,必须继承自AutoCAD的Entity类。</typeparam>
/// <param name="trans">当前的事务对象,用于管理对数据库的操作。</param>
/// <param name="btr">块表记录对象,实体将被添加到这个记录中。</param>
/// <param name="entities">要添加到数据库的实体数组。</param>
/// <returns>返回一个包含所有添加到数据库后实体的ObjectId的列表。</returns>
/// <remarks>
/// 此方法执行以下操作:
/// 1. 对传入的实体数组中的每个实体执行添加操作。
/// 2. 将每个实体附加到指定的块表记录。
/// 3. 将新创建的实体添加到事务中,确保实体被正确地管理。
/// 如果传入的实体数组为空或包含null元素,则这些元素将被忽略,不会添加到数据库中。
/// </remarks>
AddEntityToDatabase<TEntity>(this Transaction trans, BlockTableRecord btr, params TEntity[] entities)
/// <summary>
/// 修改实体的颜色
/// </summary>
/// <param name="entityId">实体Id</param>
/// <param name="newColorIndex">颜色index</param>
ModifyEntityColorIndex(this ObjectId entityId, short newColorIndex)
/// <summary>
/// 将图形对象添加到图形文件中
/// </summary>
/// <param name="db">图形数据库</param>
/// <param name="entity">图形对象</param>
/// <returns>图形的objectid</returns>
AddEntityToModelSpace(this Database db, Entity entity)
/// <summary>
/// 将图形对象添加到图形文件中
/// </summary>
/// <param name="db">图形数据库</param>
/// <param name="entity">图形对象,可变参数</param>
/// <returns>图形的objectId,数组返回</returns>
AddEntityToModelSpace(this Database db, params Entity[] entity)
/// <summary>
/// 修改图形颜色(未添加到图形数据库)
/// </summary>
/// <param name="entity">实体</param>
/// <param name="colorIndex">颜色index</param>
ChangeEntityColor<TEntity>(this TEntity entity, short colorIndex, Document doc)
/// <summary>
/// 修改图形颜色
/// </summary>
/// <param name="entity">实体</param>
/// <param name="colorIndex">颜色Index</param>
ChangeEntityColor2<TEntity>(this TEntity entity, short colorIndex, Document doc)
/// <summary>
/// 删除图形对象
/// </summary>
/// <param name="entity">图形对象的ObjectId</param>
EraseEntity(this ObjectId entity)
/// <summary>
/// 删除图形对象
/// </summary>
/// <param name="entIds">图形对象的ObjectId</param>
EraseEntities(params ObjectId[] entIds)
/// <summary>
/// 通过ObjectId得到实体
/// </summary>
/// <param name="objIds">实体id</param>
/// <param name="db">图像数据库</param>
/// <returns></returns>
GetEntity(this ObjectId[] objIds, Database db)
/// <summary>
/// 通过ObjectId得到实体
/// </summary>
/// <param name="objId">实体id</param>
/// <param name="db">图像数据库</param>
/// <returns></returns>
GetEntity(this ObjectId objId, Database db)
/// <summary>
/// 通过圆心、起点夹角绘制圆弧
/// </summary>
/// <param name="db">图形数据库</param>
/// <param name="center">圆心</param>
/// <param name="startPoint">起点</param>
/// <param name="degree">夹角,角度值</param>
/// <returns>ObjectId</returns>
AddArcToModelSpace(this Database db, Point3d center, Point3d startPoint, double degree)
/// <summary>
/// 绘制圆弧
/// </summary>
/// <param name="db">图形数据库</param>
/// <param name="startPoint">圆弧的起始点</param>
/// <param name="pointOnArc"></param>
/// <param name="endPoint">圆弧的终止点</param>
/// <returns>ObjectId</returns>
AddArcToModelSpace(this Database db, Point3d startPoint, Point3d pointOnArc, Point3d endPoint)
/// <summary>
/// 绘制圆弧
/// </summary>
/// <param name="db">图形数据库</param>
/// <param name="center">圆弧所在圆的圆心点</param>
/// <param name="radius">圆弧的半径</param>
/// <param name="startDegree">圆弧的起始角度</param>
/// <param name="endDegree">圆弧的终止角度</param>
/// <returns>ObjectId</returns>
AddArcToModelSpace(this Database db, Point3d center, double radius, double startDegree, double endDegree)
/// <summary>
/// 绘制直线
/// </summary>
/// <param name="db">图形数据库</param>
/// <param name="startPoint">起点坐标</param>
/// <param name="length">直线长度</param>
/// <param name="degree">与x轴正方向的角度</param>
/// <returns>ObjectId</returns>
AddLineToModelSpace(this Database db, Point3d startPoint, double length, double degree)
/// <summary>
/// 删除图形
/// </summary>
/// <param name="doc">当前文档</param>
/// <param name="entityIds">实体id</param>
/// <returns>是否删除成功</returns>
DeleteEntities(this Document doc, List<ObjectId> entityIds)
/// <summary>
/// 删除图像数据库实体
/// </summary>
/// <param name="doc">当前文档</param>
/// <param name="entityIds">实体id</param>
/// <returns>是否删除成功</returns>
DeleteEntities(this Document doc, params ObjectId[] entityIds)
/// <summary>
/// 设置实体颜色、图层
/// </summary>
/// <typeparam name="TEntity">实体类型,必须继承自AutoCAD的Entity类</typeparam>
/// <param name="entity">实体</param>
/// <param name="colorIndex">颜色索引</param>
/// <param name="layerName">图层名字</param>
SetColorLayer<TEntity>(this TEntity entity, short colorIndex, string layerName)
/// <summary>
/// 设置多段线颜色、图层并闭合
/// </summary>
/// <param name="polyline">多段线</param>
/// <param name="colorIndex">颜色索引</param>
/// <param name="layerName">图层名字</param>
/// <param name="isClosed">是否闭合</param>
SetPolylineColorLayer(this Polyline polyline, short colorIndex, string layerName, bool isClosed = true)
Point类扩展
/// <summary>
/// 将3D点转换为2D点,忽略Z坐标
/// </summary>
/// <param name="point3d">要转换的3D点</param>
/// <returns>转换后的2D点</returns>
Point3dToPoint2d(this Point3d point3d)
/// <summary>
/// 将2D点转换为3D点
/// </summary>
/// <param name="point2d">要转换的2D点</param>
/// <returns>转换后的3D点</returns>
Point2dToPoint3d(this Point2d point2d)
/// <summary>
/// 获取2D点的中心点
/// </summary>
/// <param name="point2d">要获取中心的2D点</param>
/// <returns>中心点</returns>
GetPoint2dCenter(this Point2d point2d)
/// <summary>
/// 获取3D点的中心点
/// </summary>
/// <param name="point3d">要获取中心的3D点</param>
/// <returns>中心点</returns>
GetPoint3dCenter(this Point3d point3d)
/// <summary>
/// 获取两个点之间的中心点
/// </summary>
/// <param name="startPoint">起点</param>
/// <param name="endPoint">终点</param>
/// <returns>中点</returns>
GetCenterPointInTwoPointBetween(this Point3d startPoint, Point3d endPoint)
/// <summary>
/// 获取从起点到终点的向量坐标,该向量的起点是原点。
/// </summary>
/// <param name="startPoint">起点坐标。</param>
/// <param name="endPoint">终点坐标。</param>
/// <returns>一个Point3d对象,表示从起点到终点的向量坐标,Z坐标为0。</returns>
/// <remarks>此方法返回的坐标并不是终点坐标,而是从起点到终点的向量坐标。如果需要得到终点的绝对坐标,应该直接返回endPoint。</remarks>
GetPointArrivePointCoordinate(this Point3d startPoint, Point3d endPoint)
/// <summary>
/// 获取两个3d点之间的中心点
/// </summary>
/// <param name="start">起点</param>
/// <param name="end">终点</param>
/// <returns>中心点</returns>
GetTwoPoint3dCenter(this Point3d start, Point3d end)
/// <summary>
/// 获取两个2d点之间的中心点
/// </summary>
/// <param name="start">起点</param>
/// <param name="end">终点</param>
/// <returns>中心点</returns>
GetTwoPoint2dCenter(this Point2d start, Point2d end)
/// <summary>
/// 3d转2d
/// </summary>
/// <param name="point3d">3d点</param>
/// <returns></returns>
Point3dConvertToPoint2d(this Point3d point3d)
/// <summary>
/// 判断三点是否在同一条直线上
/// </summary>
/// <param name="firstPoint">第一个点</param>
/// <param name="secondPoint">第二个点</param>
/// <param name="thirdPoint">第三个点</param>
IsOnOneLine(this Point3d firstPoint, Point3d secondPoint, Point3d thirdPoint)
/// <summary>
/// 获得point X 方向与point2的角度
/// </summary>
/// <param name="point1">点1</param>
/// <param name="point2">点2</param>
/// <returns></returns>
GetAngleToXAxis(this Point3d point1, Point3d point2)
/// <summary>
/// 如果距离小于等于指定的误差(tolerance),则判定这两个点相等
/// </summary>
/// <param name="point1">点1</param>
/// <param name="point2">点2</param>
/// <param name="tolerance">误差</param>
/// <returns>两个点是否相等</returns>
ArePointEquals(this Point3d point1, Point3d point2, double tolerance)
Editor类扩展
/// <summary>
/// 将AutoCAD编辑器的视图缩放到指定的3D范围。
/// </summary>
/// <param name="ed">AutoCAD编辑器对象。</param>
/// <param name="ext">要缩放的3D范围。</param>
/// <exception cref="ArgumentNullException">当编辑器对象为null时抛出。</exception>
/// <remarks>
/// 此方法将根据提供的3D范围调整编辑器的视图,使得该范围完全显示在视图中。
/// 它首先获取当前的视图记录,然后计算一个转换矩阵,将世界坐标转换为视图坐标。
/// 接着,它使用这个矩阵来转换提供的范围,并更新视图记录的宽度和高度以及中心点。
/// 最后,它将更新后的视图记录设置回编辑器,实现视图的缩放。
/// </remarks>
Zoom(this Editor ed, Extents3d ext)
/// <summary>
/// 缩放
/// </summary>
/// <param name="ed">AutoCAD编辑器对象</param>
ZoomExtents(this Editor ed)
/// <summary>
/// 选择一个实体
/// </summary>
/// <param name="ed">Editor</param>
/// <param name="message">提示信息</param>
/// <param name="type">类型</param>
/// <returns>实体Id</returns>
GetEntity_(this Editor ed, string message, Type type = null)
/// <summary>
/// 获取选择
/// </summary>
/// <param name="ed">editor</param>
/// <param name="message">提示信息</param>
/// <returns>实体id列表</returns>
GetSelection_(this Editor ed, string message)
/// <summary>
/// 选择一个点
/// </summary>
/// <returns>3d点</returns>
GetPoint()
/// <summary>
/// 选择实体(只选择线和多段线)
/// </summary>
/// <param name="ed">AutoCAD编辑器对象</param>
/// <param name="message">提示信息</param>
/// <returns>用户选择集</returns>
GetSelectionLineAndPolyLine(this Editor ed, string message, string layerName = "")
/// <summary>
/// 获取圆、圆弧
/// </summary>
/// <param name="doc">当前文档</param>
/// <returns></returns>
SelectAllCircleArcs(this Document doc)
/// <summary>
/// 获取圆、圆弧中心、半径
/// </summary>
/// <param name="objectIds"></param>
/// <returns>中心、半径</returns>
GetCircleArcCenterRadius(this Document doc, ObjectId[] objectIds)
/// <summary>
/// 获取直线
/// </summary>
/// <param name="doc">当前文档</param>
/// <returns>直线列表</returns>
SelectLines(this Document doc)
/// <summary>
/// 获得用户输入(Double)
/// </summary>
/// <param name="message">提示信息</param>
/// <param name="value">默认值</param>
/// <returns>值</returns>
GetUserDouble(this string message, double value)
/// <summary>
/// 输入过滤类型,获得选择集
/// </summary>
/// <param name="type">过滤类型</param>
/// <returns>选择集</returns>
GetSelectionEx(TypedValue[] type = null)
/// <summary>
/// 获得用户输入(String
/// </summary>
/// <param name="message"></param>
/// <returns>用户输入</returns>
GetUserMessage(this string message)
/// <summary>
/// 获得用户输入(Point3d
/// </summary>
/// <param name="message">提示信息</param>
/// <returns>点</returns>
GetPoint(this string message)
/// <summary>
/// 通过过滤器获取实体
/// </summary>
/// <param name="ed">editor</param>
/// <param name="type">过滤类型</param>
/// <returns>实体</returns>
GetSelectionEntity(this Editor ed, TypedValue[] type = null)
Layer类扩展
/// <summary>
/// 获取图层名
/// </summary>
/// <param name="trans">事务</param>
/// <param name="doc">获取当前活动文档</param>
/// <returns>图层名字列表</returns>
GetAllLayerName(this Transaction trans, Document doc)
/// <summary>
/// 创建一个新的图层
/// </summary>
/// <param name="db">Database</param>
/// <param name="layerName">图层名</param>
/// <returns>新添加的层表记录的ObjectId</returns>
AddLayer(this Database db, string layerName)
/// <summary>
/// 添加图层
/// </summary>
/// <param name="layName">图层名</param>
/// <param name="Index">图层颜色index</param>
AddLayer(this string layName, int Index)
/// <summary>
/// 修改指定图层的颜色
/// </summary>
/// <param name="db">图形数据库</param>
/// <param name="layerName">图层名</param>
/// <param name="colorIndex">颜色索引值</param>
/// <returns>设置图层是否成功</returns>
SetLayerColor(this Database db, string layerName, short colorIndex)
/// <summary>
/// 获取当前图形中所有的图层
/// </summary>
/// <param name="db">图像数据库</param>
/// <returns>所有图层记录表</returns>
GetAllLayers(this Database db)
/// <summary>
/// 删除指定名称的图层
/// </summary>
/// <param name="db">图形数据库</param>
/// <param name="layerName">要删除的图层名</param>
/// <returns>是否删除成功</returns>
DeleteLayer(this Database db, string layerName)
/// <summary>
/// 设置指定实体的图层名称和颜色。
/// </summary>
/// <typeparam name="TEntity">实体类型,必须继承自AutoCAD的Entity类。</typeparam>
/// <param name="entity">要设置图层和颜色的实体对象。</param>
/// <param name="layerName">要分配给实体的图层名称。</param>
/// <param name="red">颜色值的红色分量,范围在0到255之间。</param>
/// <param name="green">颜色值的绿色分量,范围在0到255之间。</param>
/// <param name="blue">颜色值的蓝色分量,范围在0到255之间。</param>
/// <param name="trans">当前的事务对象,用于管理对图形数据库的修改。</param>
/// <param name="doc">当前的文档对象,包含图形数据库和其他文档属性。</param>
SetLayer<TEntity>(this TEntity entity, string layerName, byte red, byte green, byte blue,
Transaction trans, Document doc)
/// <summary>
/// 更改指定实体的图层名称。如果图层不存在,则创建新的图层。
/// </summary>
/// <param name="entity">要更改图层的实体对象。</param>
/// <param name="layerName">要分配给实体的新图层名称。</param>
ChangeEntityLayer(this Entity entity, string layerName)
Block类扩展
/// <summary>
/// 创建一个块并添加到数据库中
/// </summary>
/// <param name="db">图形数据库</param>
/// <param name="blockName">块名</param>
/// <param name="ents">实体列表</param>
/// <returns>块表记录的Id</returns>
AddBlockTableRecord(this Database db, string blockName, List<Entity> ents)
/// <summary>
/// 在Cad图形中插入参照块
/// </summary>
/// <param name="spaceId">表示块参照要加入的模型空间或图纸空间的Id</param>
/// <param name="layer">块参照要加入的图层名</param>
/// <param name="blockName">块参照所属的块名</param>
/// <param name="position">插入点</param>
/// <param name="scale">缩放比例</param>
/// <param name="rotateAngle">旋转角度</param>
/// <returns>实体Id</returns>
InsertBlockReference(this ObjectId spaceId, string layer, string blockName, Point3d position, Scale3d scale, double rotateAngle = 0)
/// <summary>
/// 块参照添加属性实体
/// </summary>
/// <param name="blockId">块表</param>
/// <param name="atts">要加入的块属性列表</param>
AddAttributeToBlock(this ObjectId blockId, List<AttributeDefinition> atts)
/// <summary>
/// Cad图形中插入带属性的块参照
/// </summary>
/// <param name="spaceId">块参照要加入的模型空间或图纸空间的Id</param>
/// <param name="layer">块参照要加入的图层名</param>
/// <param name="blockName">块参照所属的块名</param>
/// <param name="position">插入点</param>
/// <param name="scale">缩放比例</param>
/// <param name="rotateAngle">旋转角度</param>
/// <param name="attNameValues">表示属性的名称与取值</param>
/// <returns>实体Id</returns>
InsertBlockReference(this ObjectId spaceId, string layer, string blockName, Point3d position, Scale3d scale, double rotateAngle, Dictionary<string, string> attNameValues)
/// <summary>
/// 更新块参照中的属性值
/// </summary>
/// <param name="blockRefId">块参照Id</param>
/// <param name="attNameValues">需要更新的属性名称与取值</param>
UpdateAttributeInBlock(this ObjectId blockRefId, Dictionary<string, string> attNameValues)
/// <summary>
/// 设置属性定义的通用样式
/// </summary>
/// <param name="att">属性</param>
/// <param name="invisible">属性文字的可见性</param>
SetStyleForAtt(this AttributeDefinition att, bool invisible)
/// <summary>
/// 读取块中的属性值
/// </summary>
/// <param name="db">图像数据库</param>
/// <param name="blockName">块名</param>
/// <returns>属性</returns>
ReadDataInBlock(this Database db, string blockName)
/// <summary>
/// 获取动态块的动态属性值
/// </summary>
/// <param name="blockId">动态快的ObjectId</param>
/// <param name="propName">需要查找的动态属性名</param>
/// <returns>动态属性值</returns>
GetDynamicBlockValue(this ObjectId blockId, string propName)
/// <summary>
/// 获得动态块的所有动态属性
/// </summary>
/// <param name="blockId">动态块的ObjectId</param>
/// <returns>动态属性</returns>
GetDynProperties(this ObjectId blockId)
/// <summary>
/// 设置动态块的动态属性
/// </summary>
/// <param name="blockId">动态块的ObjectId</param>
/// <param name="propName">动态属性的名称</param>
/// <param name="value">动态属性的值</param>
SetDynamicBlockValue(this ObjectId blockId, string propName, object value)
/// <summary>
/// 获取特定类型的所有实体
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="db"></param>
/// <param name="mode"></param>
/// <param name="OpenErased"></param>
/// <returns>类型为T的实体列表</returns>
GetEntsInDatabase<T>(this Database db, OpenMode mode, bool OpenErased)
/// <summary>
/// 只需要以读的方式获取数据库中特定类型的实体
/// </summary>
/// <typeparam name="T">实体</typeparam>
/// <param name="db">图像数据库</param>
/// <returns>实体列表</returns>
GetEntsInDatabase<T>(this Database db)
/// <summary>
/// 获取特定类型(模型空间中)的所有实体,
/// </summary>
/// <typeparam name="T">实体</typeparam>
/// <param name="db"></param>
/// <param name="mode"></param>
/// <param name="OpenErased"></param>
/// <returns>类型为T的实体列表</returns>
GetEntsInModelSpace<T>(this Database db, OpenMode mode, bool OpenErased)
/// <summary>
/// 获取动态块/非动态块的块名
/// </summary>
/// <param name="bref">块参照对象,用于获取块名</param>
/// <returns>返回块名字符串,如果块参照不存在则返回null</returns>
GetBlockName(this BlockReference bref)
/// <summary>
/// 动态块的读取(Dwg)
/// </summary>
/// <param name="blockDWGName">dwg文件名</param>
/// <param name="blockName">动态块名</param>
InitialZwBlockReference(this string blockDWGName, string blockName)
/// <summary>
/// 根据想要显示的值去显示
/// </summary>
/// <param name="br">块参照对象</param>
/// <param name="blockName">块名</param>
CheckBlockPropertyValue(this BlockReference br, string blockName)
/// <summary>
/// 修改动态块属性
/// </summary>
/// <param name="blockName">动态块名</param>
/// <param name="paramName">修改的属性名</param>
/// <param name="paramValue">修改的属性值</param>
/// <param name="trans">事物</param>
ModifyDynamicBlockParameter(this string blockName, string paramName, object paramValue, Transaction trans)
/// <summary>
/// 从外部文件导入快
/// </summary>
/// <param name="destDb">目标数据库</param>
/// <param name="sourceFileName">包含完整路径的外部文件名</param>
ImportBlocksFromDwg(this Database destDb, string sourceFileName)
/// <summary>
/// 找到自定义属性的类型
/// </summary>
/// <param name="doc">Document</param>
/// <param name="blockName">块名</param>
GetPropType(this Document doc, string blockName)
/// <summary>
/// 动态快个数
/// </summary>
/// <param name="doc">当前文档</param>
RecursionBlock(this Document doc)
/// <summary>
/// 递归块引用
/// </summary>
/// <param name="refblock">块参照</param>
/// <returns></returns>
GetBlockEntity(this BlockReference refblock)
/// <summary>
/// 插入一个块
/// </summary>
/// <param name="doc">文档</param>
/// <param name="message">提示消息</param>
/// <returns></returns>
InsertBlock(this Document doc, string message = "请输入块名称")
/// <summary>
/// 创建一个块
/// </summary>
/// <param name="doc">当前文档</param>
/// <param name="message">提示信息</param>
/// <returns>实体</returns>
CreateBlock(this Document doc, string message)
AutoCAD颜色索引列表_index:
| 颜色索引 | 颜色名称 |
|---|---|
| 0 | 红色 |
| 1 | 黄色 |
| 2 | 绿色 |
| 3 | 青色(蓝绿色) |
| 4 | 蓝色 |
| 5 | 紫色 |
| 6 | 白色 |
| 7 | 暗灰色 |
| 8 | 中灰色 |
| 9 | 浅灰色 |
| 10 | 暗黄色 |
| 11 | 暗绿色 |
| 12 | 暗青色 |
| 13 | 暗蓝色 |
| 14 | 暗紫色 |
| 15 | 黑色 |
| 16 | 暗红色 |
| 17 | 暗黄色 |
| 18 | 暗绿色 |
| 19 | 暗青色 |
| 20 | 暗蓝色 |
| 21 | 暗紫色 |
| 22 | 暗灰色 |
| 23 | 暗白色 |
| 24 | 深红色 |
| 25 | 深黄色 |
| 26 | 深绿色 |
| 27 | 深青色 |
| 28 | 深蓝色 |
| 29 | 深紫色 |
| 30 | 深灰色 |
| 31 | 深白色 |
| 32 | 橙色 |
| 33 | 橙红色 |
| 34 | 橙黄色 |
| 35 | 橙绿色 |
| 36 | 橙青色 |
| 37 | 橙蓝色 |
| 38 | 橙紫色 |
| 39 | 橙灰色 |
| 40 | 橙白色 |
| 41 | 浅红色 |
| 42 | 浅黄色 |
| 43 | 浅绿色 |
| 44 | 浅青色 |
| 45 | 浅蓝色 |
| 46 | 浅紫色 |
| 47 | 浅灰色 |
| 48 | 浅白色 |
| 49 | 粉红色 |
| 50 | 金色 |
| 51 | 青柠色 |
| 52 | 天蓝色 |
| 53 | 紫罗兰色 |
| 54 | 粉白色 |
| 55 | 玫瑰红 |
| 56 | 金黄色 |
| 57 | 青柠绿色 |
| 58 | 天青色 |
| 59 | 紫罗兰紫色 |
| 60 | 粉白色 |
| 61 | 深玫瑰红 |
| 62 | 深金色 |
| 63 | 深青柠色 |
| 64 | 深天蓝色 |
| 65 | 深紫罗兰色 |
| 66 | 深粉白色 |
| 67 | 浅玫瑰红 |
| 68 | 浅金色 |
| 69 | 浅青柠色 |
| 70 | 浅天蓝色 |
| 71 | 浅紫罗兰色 |
| 72 | 浅粉白色 |
| 73 | 暗玫瑰红 |
| 74 | 暗金色 |
| 75 | 暗青柠色 |
| 76 | 暗天蓝色 |
| 77 | 暗紫罗兰色 |
| 78 | 暗粉白色 |
| 79 | 深橙红色 |
| 80 | 深橙黄色 |
| 81 | 深橙绿色 |
| 82 | 深橙青色 |
| 83 | 深橙蓝色 |
| 84 | 深橙紫色 |
| 85 | 深橙灰色 |
| 86 | 深橙白色 |
| 87 | 浅橙红色 |
| .. ... |
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET Framework | net45 is compatible. net451 was computed. net452 was computed. net46 was computed. net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.6 | 204 | 8/20/2025 |
新增扩展 , 优化