获取CAD图元名及图元信息(circle为例,用于选择集,对应dxf组码)

本文解释了CAD编程中如何使用选择集过滤器选择圆,以及AcDbCircle、AcadCircle和circle在不同场景下的使用区别。VBA编程中对象命名和数据库操作的相关概念也进行了说明。
摘要由CSDN通过智能技术生成

        在CAD编程中往往需要用选择集过滤器,我们往往不知道相应图元对应的名称具体名字。比如我想选择所有的圆,过滤类型中ftype=0,fdata应该是什么呢?是circle,acdbcircle,还是acadcircle?

        circle是一个对象,circle的vba类名为AcadCircle。

这时,我们只需在命令栏输入以下lisp代码,按下空格键在选择图元即可。

(setq en_data(entget(car(entsel))))

命令: (setq en_data(entget(car(entsel))))
选择对象: ((-1 . <图元名: -155b58>) (0 . "CIRCLE") (330 . <图元名: -157308>) (5 . "26ED") 
(100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbCircle") 
(10 5.2 3.9 0.0) (40 . 4682.73) (210 0.0 0.0 1.0))

由此可知,在选择集选择圆时,fdata应为"circle" 。

上图信息中还有个AcDbCircle,对比circle,acadcircle,看着这三个是不是感觉有点懵?什么时候用哪个?

acadcircle 是在vba语言中特有的类名(它的上级对象是acadentity),我们在定义对象时需要用的名称。如下图:

而AcDbCircle是此图元在cad文件数据库中的名称(在vba中,msgbox ent.objectname方法可弹出ent的类名关于cad数据库本博主另有文章详细讲解)。

由此可见,在选择集名称中用circle,在定义对象时用acadcircle,而在代码中的调用objectname属性时提取的是acdbcircle。好吧,确实有点乱,希望大家不要用错了。

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值