能否实现同一DWG文件内的链接
RT,能不能实现在图纸内点击一文字,即得到同一图纸内相对应的图块或文字edata 发表于 2014-7-30 17:51
一个文字可以链接多个图形吗?谢谢! 得到的是什么,文字内容,图块名称,还是。。。。不清楚意图。 是不是说的视图跳转? “链接规则以及链接后处理”要清楚
比如
dwg内含有多张图纸以及目录
点击目录条目
视窗转换到对应图纸
要求清楚了
程序并不难
但是通用基本不可能 masterlong 发表于 2014-7-30 12:24 static/image/common/back.gif
“链接规则以及链接后处理”要清楚
比如
dwg内含有多张图纸以及目录
就是这个意思,从目录文字跳往图纸,通用是什么意思,从文字跳往图块? 通用则需要适合每个人的需要。
一般地,目录文字跳转图块还算是比较好处理的。可以手动链接两个对象的句柄值。使用程序的时候选择了连接的目录文字,自动寻找对应句柄,低版本计算外框值,缩放视图即可,高版本直接 zoom o 。。。 edata 发表于 2014-7-30 16:47 static/image/common/back.gif
通用则需要适合每个人的需要。
一般地,目录文字跳转图块还算是比较好处理的。可以手动链接两个对象的句柄 ...
虽不明,但觉厉...大神可否写点程序 其实就是通过某种方式获取一些"特征"
再根据"特征"搜寻符合特征的其它数据
再进行相应的处理
就好比文字查找替换这一类的程序
其实也是一样的思路
正因为可以有非常多的可能
所以通用是不可能的
只能具体要求具体解决 本帖最后由 edata 于 2014-7-30 18:02 编辑
;;图形内链接跳转
;;code by edata @ mjtd.com 2014-7-30
;;首次执行将选择提示选择对象并关联对象
;;再次选择关联的对象将相互跳转
;;关联跳转
(defun c:tt(/ ss en en2 en2_h5 en_h5 sk_link)
(prompt "\n请选择关联对象:")
(if(setq ss(ssget ":E:S" ));'((0 . "*text"))))
(progn
(setq en(ssname ss 0))
(setq en_h5(sk_dxf en 5))
(if(and (setq sk_link(vlax-ldata-get (vlax-ename->vla-object en) "sk_hplink")) (entget (handent sk_link)))
(progn
(prompt "\n执行跳转.")
(setvar 'cmdecho 0)
(command "zoom" "o" (ssadd(handent sk_link)) "")
(setvar 'cmdecho 1)
)
(progn
(if(setq en2(car(entsel "\n该对象无链接,请选择链接对象:")))
(progn
(setq en2_h5(sk_dxf en2 5))
(vlax-ldata-put (vlax-ename->vla-object en) "sk_hplink" en2_h5)
(vlax-ldata-put (vlax-ename->vla-object en2) "sk_hplink" en_h5)
(prompt "\n链接完成.")
)
)
)
)
)
)
(princ)
)
;;关联删除
(defun c:tt2(/ ss en sk_link en2)
(prompt "\n请选择需要删除关联的对象:")
(if(setq ss(ssget));'((0 . "*text"))))
(while(setq en(ssname ss 0))
(if(setq sk_link(vlax-ldata-get (vlax-ename->vla-object en) "sk_hplink"))
(progn
(prompt "\r删除........")
(setq en2 (handent sk_link))
(vlax-ldata-delete (vlax-ename->vla-object en) "sk_hplink")
(and (entget en2) (vlax-ldata-delete (vlax-ename->vla-object en2) "sk_hplink"))
(prompt "\r删除完成....")
)
(prompt "\r没有发现链接.")
)
(setq ss (ssdel en ss))
)
)
(princ)
)
;;dxf组码获取函数
(defun sk_dxf(ent code)(cdr(assoc code (entget ent))))
edata 发表于 2014-7-30 17:51 static/image/common/back.gif
谢谢哈,真大神也,这样看图就方便了许多
页:
[1]
2