【求助】尺寸线重叠检查,修改 Lee Mac的程序
本帖最后由 qincj0001 于 2019-12-5 19:30 编辑原程序是将重叠的尺寸改到一个指定的图层,我想实现的是,重叠的尺寸画一条线到坐标原点(0,0,0),但是如果是块就不行,怎么才能得到块的插入点,望高手指点。
(vlax-for obj blk
(if (wcmatch(vla-get-objectname obj) "AcDbRotatedDimension,AcDbAlignedDimension")
(progn
(setq enx (entget (vlax-vla-object->ename obj))
ocs (cdr (assoc 210 enx))
g10 (trans (cdr (assoc 10 enx)) 0 ocs)
g11 (trans (cdr (assoc 11 enx)) 0 ocs)
g13 (trans (cdr (assoc 13 enx)) 0 ocs)
g14 (trans (cdr (assoc 14 enx)) 0 ocs)
)
;;;;;下面这句还是得不到块 blk的插入点
(setq pp(vlax-safearray->list (vlax-variant-value (vlax-get-property blk 'InsertionPoint))))
这句还是得不到块的插入点呢 satan421 谢谢 !!
((-1 . <图元名: 7ffffb0fe00>) (0 . BLOCK_RECORD) (5 . DA8) (102 . {ACAD_XDICTIONARY) (360 . <图元名: 7ffffb106d0>) (102 . }) (330 . <图元名: 7ffffb08810>) (100 . AcDbSymbolTableRecord) (100 . AcDbBlockTableRecord) (2 . asdfadf) (360 . <图元名: 7ffffb0fe10>)......
我查了下根本就没有插入点信息。
(0 . BLOCK_RECORD) 这个是不是根本就没有块插入点??
satan421 发表于 2019-12-9 09:15
获取块插入点:
(vlax-safearray->list (vlax-variant-value (vlax-get-property obj 'InsertionPoint))) ...
用后面这句(vlax-get obj 'insertionpoint) 也不行。
提示:
错误: ActiveX 服务器返回错误: 未知名称: "INSERTIONPOINT" 获取块插入点:
(vlax-safearray->list (vlax-variant-value (vlax-get-property obj 'InsertionPoint)))或者(vlax-get obj 'insertionpoint) 说明没有属性"INSERTIONPOINT"啊,确定下你的blk对不对 应该是obj而不是blk 通过这个(setq aa(entget (vlax-vla-object->ename blk)))得到上面的数据 不是说了是obj而不是blk,块表记录里面肯定没有插入点信息。
不指定插入点时应该默认以坐标系原点为插入点(不确定)。 请问楼主解决了吗
页:
[1]
2