【右键菜单】函数修正
本帖最后由 1028695446 于 2020-6-24 01:19 编辑原贴地址,请移步至:http://bbs.mjtd.com/forum.php?mod=viewthread&tid=101509&extra=page%3D1%26filter%3Dtypeid%26typeid%3D14&page=1
本次主要对该 “右键菜单函数“ 做个补充完善:
问题描述:在布局中图纸空间中使用该右键菜单函数,临时生成的菜单,只显示列表框和背景遮罩,但是不显示文字
原因分析:使用 vla-addtext 函数,始终使用的是模型空间,所以在 布局中的图纸空间 使用该右键菜单函数,生成的临时文字在模型空间中,并不在图纸空间中
解决思路:增加个简单的判断:当前是否在布局中图纸空间
注:以下代码,为了顺带解释下 "tilemode"和"CVPORT"2个参数的组合表达的情况,所以判断看起来比较冗杂
...
(if (not *YH_doc*)(setq *YH_doc* (vla-get-activedocument (vlax-get-acad-object))));获取当前图档指针
(setq a (=(getvar "tilemode")0) );;模型1,布局0
(setq b (=(getvar "CVPORT")1));;图纸空间1
(cond
((and a b);布局中的图纸空间
(setq YH_spc (vla-get-PaperSpace *YH_doc*))
)
((and a (not b));布局中的模型空间
(setq YH_spc (vla-get-modelspace *YH_doc*))
)
((and (not a) (not b));模型空间
(setq YH_spc (vla-get-modelspace *YH_doc*))
)
)
(setq YH_text (vla-addtext YH_spc WZ (vlax-3d-point WPT) WZhigh))
...
简化下就是
...
(if (not *YH_doc*)(setq *YH_doc* (vla-get-activedocument (vlax-get-acad-object))));获取当前图档指针
(if (and
(zerop (getvar "tilemode"))
(=(getvar "CVPORT")1)
)
(setq YH_spc (vla-get-PaperSpace *YH_doc*))
(setq YH_spc (vla-get-modelspace *YH_doc*))
)
(setq YH_text (vla-addtext YH_spc WZ (vlax-3d-point WPT) WZhigh))
...
请自行去原贴页面下载源码,自行搜索替换相关内容
以下附上自用的相关应用
这是小号 太厉害了! 要是支持天正就好了 不能用啊,楼主 不錯用,很棒!
謝謝分享! 谢谢分享! 能不能搞成3行吗,2行内容多就不够看. 好用,能增加功能,支持属性块文字修改,就完美了 这个使用起来相当方便啊,取代词库!
页:
[1]
2