明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1202|回复: 9

[基础] 如何定义一个选择过滤器把矩形命令绘制的矩形选中

[复制链接]
发表于 2015-4-13 14:02 | 显示全部楼层 |阅读模式
大家好,通过CAD工具栏的“矩形”命令:RECTANG绘制的矩形,在CAD定义的名称是什么?我想写个代码能选择文字和线段,但由于绘制的习惯,文字有单行文字和多行文字,绘制线段时即由直线也有矩形,故需要定义一选择器,把这四种图元都选中,这是我目前定义的选择集,无法选中矩形,该如何修改呢?
  1. SelectionFilter flt = new SelectionFilter(new TypedValue[] { new TypedValue(0, "TEXT,MTEXT,LINE,ACDBPOLYLINE") });


发表于 2015-4-13 14:24 | 显示全部楼层
绘制完成接 entlast     
发表于 2015-4-13 15:15 | 显示全部楼层
(0, "TEXT,MTEXT,LINE,POLYLINE")
 楼主| 发表于 2015-4-13 20:19 | 显示全部楼层
sieben 发表于 2015-4-13 15:15
(0, "TEXT,MTEXT,LINE,POLYLINE")

你好,sieben,这个我也试了,还是不好使.
 楼主| 发表于 2015-4-13 20:21 | 显示全部楼层
ivde 发表于 2015-4-13 14:24
绘制完成接 entlast

你好,矩形是别人已经绘制好了的,我只是想选中矩形,不是想绘制矩形。
什么是 entlast,愿闻其详啊,哈哈。
发表于 2015-4-13 20:35 来自手机 | 显示全部楼层
介之推 发表于 2015-4-13 20:21
你好,矩形是别人已经绘制好了的,我只是想选中矩形,不是想绘制矩形。
什么是 entlast,愿闻其详啊,哈 ...

首先筛选lwpolyline,遍历判断,如果是四个顶点,面积等于两个临边的积,再复杂情况就一言难尽了
发表于 2015-4-14 12:50 | 显示全部楼层
介之推 发表于 2015-4-13 20:19
你好,sieben,这个我也试了,还是不好使.

不好意思!应该是LWPOLYLINE
发表于 2015-4-14 12:52 | 显示全部楼层
另外,轻型多段线应该是DXF码 60 是多段线的节点数(不敢肯定哈).(60 . 4) (70 . 1) 前者表示节点数是4,后者表示曲线是封闭的
发表于 2015-4-15 16:24 | 显示全部楼层
对角线相等且平分
            var p1 = pl.GetPoint3dAt(0);
            var p2 = pl.GetPoint3dAt(1);
            var p3 = pl.GetPoint3dAt(2);
            var p4 = pl.GetPoint3dAt(3);
            if (pl.NumberOfVertices == 4  && p1.DistanceTo( p3)- p2.DistanceTo( p4) < 1e-3
                && (p1+ (p1-p3)/2).Equals( p2+(p4-p2)/2))  
            {
               
            }
发表于 2015-4-15 16:36 来自手机 | 显示全部楼层
还有5个点 且起终点重合的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-6-2 14:18 , Processed in 0.167783 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表