qincj0001 发表于 2019-12-5 19:06:53

【求助】尺寸线重叠检查,修改 Lee Mac的程序

本帖最后由 qincj0001 于 2019-12-5 19:30 编辑

    原程序是将重叠的尺寸改到一个指定的图层,我想实现的是,重叠的尺寸画一条线到坐标原点(0,0,0),但是如果是块就不行,怎么才能得到块的插入点,望高手指点。

qincj0001 发表于 2019-12-9 15:40:44

    (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))))

这句还是得不到块的插入点呢

qincj0001 发表于 2019-12-10 10:40:51

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) 这个是不是根本就没有块插入点??

qincj0001 发表于 2019-12-9 16:06:21

satan421 发表于 2019-12-9 09:15
获取块插入点:
(vlax-safearray->list (vlax-variant-value (vlax-get-property obj 'InsertionPoint))) ...

用后面这句(vlax-get obj 'insertionpoint) 也不行。
提示:
错误: ActiveX 服务器返回错误: 未知名称: "INSERTIONPOINT"

satan421 发表于 2019-12-9 09:15:44

获取块插入点:
(vlax-safearray->list (vlax-variant-value (vlax-get-property obj 'InsertionPoint)))或者(vlax-get obj 'insertionpoint)

satan421 发表于 2019-12-9 17:00:10

说明没有属性"INSERTIONPOINT"啊,确定下你的blk对不对

satan421 发表于 2019-12-10 08:50:11

应该是obj而不是blk

qincj0001 发表于 2019-12-10 10:46:07

通过这个(setq aa(entget (vlax-vla-object->ename blk)))得到上面的数据

satan421 发表于 2019-12-10 13:05:46

不是说了是obj而不是blk,块表记录里面肯定没有插入点信息。
不指定插入点时应该默认以坐标系原点为插入点(不确定)。

xj6019 发表于 2020-9-20 17:15:54

请问楼主解决了吗
页: [1] 2
查看完整版本: 【求助】尺寸线重叠检查,修改 Lee Mac的程序