C# CAD2016 宗地生成界址点,界址点编号及排序


1 、界址点起点位置
C# CAD2016 多边形顶点按方向重新排序

 2、 界址点顺时针逆时针走向

C# CAD2016 判断多边形的方向正时针或逆时针旋转

 3、块文件插入

//已知块文件名称 GXGLQTC
//块文件需要插入的坐标点 scaledPoint

 // 插入块到当前图纸中的指定位置
 ObjectId newBlockId;
 BlockTable currentBlockTable = tr.GetObject(db.BlockTableId, OpenMode.ForWrite) as BlockTable;
 newBlockId = currentBlockTable["GXGLQTC"];

 using (Transaction transaction = db.TransactionManager.StartTransaction())
 {
     BlockReference blockRef = new BlockReference(scaledPoint, newBlockId);
     BlockTable bt = transaction.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
     BlockTableRecord activeSpace = transaction.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;
     activeSpace.AppendEntity(blockRef);
     transaction.AddNewlyCreatedDBObject(blockRef, true);
     transaction.Commit();
 }
 4、主要步骤
  1. 获取当前活动文档、数据库和编辑器对象。
  2. 设置一个选择过滤器,只允许用户选择"宗地"图层上的LWPOLYLINE对象。
  3. 用户根据过滤规则进行实体选择后,程序处理所选中的每个闭合多段线。
  4. 对于每个闭合多段线,首先确保它是闭合的且至少有一个顶点,并将所有顶点存储到一个列表中。
  5. 注释部分:这部分原来包含计算多边形方向和排序顶点的逻辑,但后来被注释掉,实际代码中并没有执行这部分操作。
  6. 遍历排序后的顶点列表,为每个顶点创建一个文本标签(DBText)并在模型空间中绘制,标签内容是其顺序编号,位置基于顶点坐标并进行了缩放和平移处理。
  7. 同样针对每个顶点,在模型空间中插入名为“GXGLQTC”的块参照,并将其定位在与文本标签相同的位置。

另外,还提供了一个辅助方法GetCenterOfPolyline,用于计算给定多段线的中心点,但在当前代码片段中并未使用此方法来确定文本标签或块参照的位置。

 5、完整代码

namespace cad自定义面板集.jzd
{
    internal class jzd01
    {
        // 选定"宗地"图层上的封闭对象(例如闭合多段线)
        [CommandMethod("GenerateBoundaryPoints")]
        public static void GenerateBoundaryPoints()
        {
            // 获取当前活动文档和数据库

            // 获取当前AutoCAD应用中的活动文档、数据库和编辑器对象
            Document doc = Application.DocumentManager.MdiActiveDocument;
            Database db = doc.Database;
            Editor ed = doc.Editor;

            // 创建一个选择过滤器,限制用户只能选择"宗地"图层上的LWPOLYLINE对象作为外部边界
            SelectionFilter outerFilter = new SelectionFilter(new TypedValue[] {
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值