明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 467|回复: 4

[提问] cad有办法通过一个图层的数据选择其他数据么

[复制链接]
发表于 2019-7-27 13:04 | 显示全部楼层 |阅读模式
如图我检查出我这个房屋层数有问题 然后标记了出来 怎么根据这个圆选择这个数字
圆是一对一的  以文本基点为圆心的圆 不会把别的文本基点包含进去


arcgis有个功能叫按位置选择原理就是根据空间位置是否相交  cad中有没有类似的功能 或者大神们有没有其他解决方法呢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2019-7-27 19:14 | 显示全部楼层
个人找到了其他方式 使用FME解决 大致思路是 通过FME将DWG转换为SHP然后在arcgis进行检查修改 然后在将shp转换为cass格式的dwg


个人准备做一些教程将会放到B站上 有兴趣的朋友可以关注一下 互相交流学习 B站直播间9602987
发表于 2019-7-27 19:24 来自手机 | 显示全部楼层
ssget关注下
发表于 2019-7-28 17:12 | 显示全部楼层
lisp可以做,只不过不能通过条件一次过滤得到想要的图元,效率低了
发表于 2019-7-28 18:31 | 显示全部楼层
本帖最后由 风言无际 于 2019-7-28 18:40 编辑

我用VBA可以实现这样的功能,但是LISP不会
我讲一下思路:
1.首先查找到圆,获取圆的边框的最大和最小点坐标
2.使用过滤选择集方法选择文字:采用acSelectionSetCrossing方式,即窗口相交的方式,以获取到的最大和最小点坐标为范围,以文字为过滤条件。

    Dim Sset As AcadSelectionSet
    Dim pEnt As AcadEntity
    Dim minP As Variant
    Dim maxP As Variant
    Dim fType(0) As Integer
    Dim fData(0) As Variant
    fType(0) = 0: fData(0) = "TEXT"
    Set Sset = ThisDrawing.SelectionSets.Add(Timer)
    For Each pEnt In ThisDrawing.ModelSpace
        If pEnt.ObjectName = "AcDbCircle" Then
            pEnt.GetBoundingBox minP, maxP
            Sset.Select acSelectionSetCrossing, minP, maxP, fType, fData
            Sset.Highlight True
        End If
    Next



lisp怎么实现,你参考一下上面的方法好了。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-4 11:45 , Processed in 0.179292 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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