求大神帮忙写一个一键画矩形的小程序。。
本帖最后由 再见熊猫衣服 于 2022-4-30 16:32 编辑求大神帮忙写一个一键画矩形的小程序。。
CAD自带的 REC ,画矩形非常麻烦,需要输入"@",
还要分辨英文逗号","和中文逗号",",
每次画CAD都是中文状态下按大小写来区别命令和汉字输入的。
所以导致出错率非常高,画个矩形要调整4次甚至以上。
___________
然后我来论坛查了一下,发现Gu_xl版主写的这个小程序非常好用,
但是,这个画矩形的起点是该矩形的左边的中心点,
我希望能在这个程序上改进一下,要求如下:
命令REC,确定,鼠标指定矩形的起点,输入矩形长度(X轴绝对值),(此处的逗号不分英文逗号和汉字逗号)输入矩形矩形宽度(Y轴绝对值),确定。
矩形的方向由鼠标所在起点之外的4个象限决定。
————
非常感谢,希望能得到解决。
本帖最后由 start4444 于 2019-6-6 11:22 编辑
再见熊猫衣服 发表于 2019-6-4 15:29
已经比较完美了,
请问长宽能否一次性输入呢?
支持大写逗号和小写逗号,
加入了黄大师的提取数字函数,直接输入长高,中间用非数字隔开就行。
【把如果不输入长高就直接选点加进去了】
再见熊猫衣服 发表于 2019-6-5 11:25
留个支付宝,我给你转10块钱辛苦费。。
不需要的,只是举手之劳,自己在明经学到了很多,也希望在这能帮一下别人同时自己也会提高 (defun c:tt5 (/ d h p1 p2 p3 p1x p1y)
(setq d (getdist"\n矩形长度:")h (getdist"\n矩形高度:"))
(while
(setq p1 (getpoint"\n选起点:") p2 (getcorner p1"\n选终点:")
p1x (car p1)
p1y (cadr p1)
ang (angle P1 P2))
(cond
((and (>= ang (* 0 pi)) (< ang (* 0.5 pi))) (setq p3 (list (+ p1x d) (+ p1y h))))
((and (>= ang (* 0.5 pi)) (< ang (* 1 pi))) (setq p3 (list (- p1x d) (+ p1y h))))
((and (>= ang (* 1 pi)) (< ang (* 1.5 pi))) (setq p3 (list (- p1x d) (- p1y h))))
((and (>= ang (* 1.5 pi)) (< ang (* 2 pi))) (setq p3 (list (+ p1x d) (- p1y h))))
)
p3 (command "RECTANG" "non" p1 "non" p3))
(princ)
)
@Gu_xl
呼叫。。。 很少画矩形,就算要画矩形,基本都是插块代替的
弄一个1x1的矩形-名字叫11,然后把这个块放入cad常用的路径
插入(-insert)这个块,变x轴,y轴比例就可以,必要时还可以炸开 start4444 发表于 2019-6-4 14:29
(defun c:tt5 (/ d h p1 p2 p3 p1x p1y)
(setq d (getdist"\n矩形长度:")h (getdist"\n矩形高度:"))
...
已经比较完美了,
请问长宽能否一次性输入呢?
支持大写逗号和小写逗号,
400,600
这样,可行? (command "rectang"pause "d" pause pause) start4444 发表于 2019-6-4 16:58
加入了黄大师的提取数字函数,直接输入长高,中间用非数字隔开就行。
好用,非常感谢。。。 start4444 发表于 2019-6-4 16:58
加入了黄大师的提取数字函数,直接输入长高,中间用非数字隔开就行。
留个支付宝,我给你转10块钱辛苦费。。