能在优化一下吗,空格尺寸以后直接输入20/30或者20,30就直接画20*30的矩形了。
5楼应该可以结合我那个做一下,只是他那个代码比我的高级多了!我还真不会呢! 本帖最后由 lee50310 于 2020-4-16 18:56 编辑
1.能在优化一下吗,空格尺寸以后直接输入20/30或者20,30就直接画20*30的矩形了。
2.能加入右键模式更好,默认是选两点画矩形,右键是输入20/30模式画矩形。
問題1.輸入尺寸後 總要把矩形框插入圖面,指定位置因此需要插入點詢問
除非你的插入點都一律固定在座標原點 (0,0)位置
也許可改另一種方式 把常用的一個尺寸加入到詢問尺寸輸入內
例: "輸入 長/高 畫矩形模式< 30/50 >:"
若不需輸入其他尺寸按 空格或enter鍵 點選插入點繪出 30*50矩型
問題2."[默认是选两点画矩形,右键是输入20/30模式画矩形。]"
若要兩點畫矩型 ,就不能輸入固定尺寸例:20/30
因為尺寸要依谁為準呢?
本帖最后由 cq4920 于 2020-4-16 21:42 编辑
andyzha 发表于 2020-4-16 13:16
能加入右键模式更好,默认是选两点画矩形,右键是输入20/30模式画矩形。
参考了黄大师的代码终于实现了!
可以空格输入尺寸也可以回车或者右键输入尺寸
尺寸数字中间可以是任意符号
这里有个瑕疵 就是当指定下一点的时候 如果不小心输入了字母那么安空格就会提示错误
如果可以加入只要不是点击下一点不管是按空格还是不小心输入了文字再按空都转到输入尺寸画矩形就好了
优化一下 防止习惯按D不能继续命令!如果按D可以继续按原始方法继续画!
<div class="blockcode"><blockquote>(defun C:rec(/ x y pta ptb)
(setq pta (getpoint "\n指定基点"))
(initget "A D R")
(if (setq ptb (getcorner pta "\n>>>指定下一点:【空格:尺寸输入】[面积(S)/尺寸(D)/旋转(R)]:"))
(command "rectang" pta ptb)
(progn
(setq lst (getNumberS(setq ss (getstring "\n 宽 & 高 : <30*30>"))))
(setq x (car lst))
(setq y (cadr lst))
(command "rectang" pta "d" x y pause)
)
)
(princ)
)
;;自贡黄明儒--提取数字
(defun getNumberS (str / ASC N STR1 STRN)
(setq n 1)
(setq str1 "")
(repeat (strlen str)
(setq strn (substr str n 1))
(setq Asc (ascii strn))
(if(or (and (> Asc 47) (< Asc 58)) (= Asc 46))
(setq str1 (strcat str1 strn))
(setq str1 (strcat str1 " "))
)
(setq n (1+ n))
)
(strinSplitS str1)
)
(defun strinSplitS (str / lst)
(setq str (STRCAT "(" str ")"))
(setq lst (read str))
(setq lst (mapcar 'VL-PRINC-TO-STRING lst))
)
数字+空格+数字 出现“未知命令+数字”,楼上在看看哪里错误 bai2000 发表于 2020-4-16 21:09
数字+空格+数字 出现“未知命令+数字”,楼上在看看哪里错误
数字+空格+数字?不知道你是怎么操作的呢! 又稍微更新了一下防止习惯按D不能继续命令!如果按D可以继续按原始方法继续画! 大神,能否 改成像画直线的方法,点击两点,出现一个宽度30mm,高度是刚才 点击的两点的距离 的矩形,生成的矩形的位置可指定在 刚才点击的两点 的左侧或者右侧。 lee50310 发表于 2020-4-16 00:00
出错了, 错误: 输入的字符串有缺陷 lee50310 发表于 2020-4-16 00:00
这个能不能在输入长宽尺寸后,把文字带在矩形框中间如30*50 中间的“*”可以自由设置? 300长,900高,
输入矩形命令: @300,900
就搞定的事情,弄个程序多此了
页:
1
[2]