用vba如何复选insert命令中的“在屏幕上指定”复选框?
www.dimcax.com
用vba如何复选insert命令中的“在屏幕上指定”复选框?
如题
att
好像不容易实现
你做的工作时插入块,根本不需要调用cad命令,反而低效了。调用插入块函数,其中有个插入点参数,采取屏幕取点的方法,等同实现“在屏幕指定”
用-insert命令
在insert前加一个减号,就可输入参数了
我的情况是:块的位置水平,插入后需要旋转,而旋转角度未知(但块上有两个固定点位置已知),我使用旋转角度在屏幕上指定,就可以一次旋转到位,不知道这样是不是更土了。。。。
ms:有很多这样的块,这样是不是需要每个插入都需要和人交互?那就更麻烦了,有没有其他好办法?谢谢!
就用-insert命令就可以实现
注意命令后面要带参数
旋转角度未知,即旋转角度事先不确定,如果用户不干预怎么解决呢?除非你找到了它的规律,然后再赋以该规律让程序自动判断
你可以利用程序确定块其中一点的位置,然后计算出两点连线到水平线的夹角,再旋转该角度,即可保持两点重合了
利用函数 thisdrawing.utility.anglefromxaxis
(defun c:huu( / strtemp point)
(setvar "cmdecho" 0)
(if (= strname1 nil) (setq strname1 ""))
(setq strtemp (getstring (strcat "\n请输入型号<" strname1 ">:")))
(if (= strtemp "")
(if (= strname1 "")
(quit)
)
(setq strname1 strtemp)
)
(setq point (getpoint "请选择插入点:"))
(if (= point "") (quit))
(command "-insert" (strcat strname1 ".dwg") point "1" "1" pause "explode" "l")
(princ)
)
(command "-vbarun" "changetext.dvb!module1.joining" "-insert" "joining" "s" "1")
可用vba宏changetext.dvb!module1.joining创建块