(求助)线变矩形代码 能否帮忙改成以下功能
本帖最后由 999999 于 2020-8-6 10:01 编辑线变矩形
1.选择需要变成矩形的单线
2.选择其它(线段、矩形边、多边形边、圆弧、)的长宽或高度或者输入距离
3.根据上述某一方案偏移(需要变成矩形的单线)并两边衔接且合并该生成的矩形
代码如下:
感谢鱼与熊掌大神提供的代码
线变矩形
(defun c:qw(/ ss en1 en2 en3 en4 lst lst1 lst2 pt)
(cxsta)
(prompt "直线变墙增强版本.by 鱼与熊掌2014.11.11\n")
(if (not **W**) (setq **W** 120.00))
(setq **W** (cond((getdist(strcat "\n输入宽度 <"(rtos **W** 2 2) ">: ")))(**W**)))
(if
(setq ss (ssget '((0 . "LINE,ARC,LWPOLYLINE,POLYLINE"))))
(progn
(setq ss(cx-line-pline ss))
(setq en1 (ssname ss 0))
(setq lst1(cx-db en1))
(if (setq pt (getpoint "点击要偏移的那一侧\n"))
(progn
(vl-cmdf "offset" **w** en1 "_non" pt "")
(setq en2 (entlast))
(setq lst2 (cx-db en2))
(cx-line (xnth 0 lst1) (xnth 0 lst2))
(setq en3 (entlast))
(cx-line (xnth (1- (length lst1)) lst1)(xnth (1- (length lst2)) lst2))
(setq en4 (entlast))
(setq ss (ssadd))
(setq ss (ssadd en1 ss))
(setq ss (ssadd en2 ss))
(setq ss (ssadd en3 ss))
(setq ss (ssadd en4 ss))
(setvar "peditaccept" 1)
(command "_.pedit" "m" ss "" "j" "0.01" "")
;(cx-line-pline ss)
;(entdel en1)(entdel en2)
;(setq lst2(reverse lst2))
;(setq lst (append lst1 lst2))
;(cx-pline lst 1)
))))
(cxend)
)
本帖最后由 sunny_8848 于 2020-8-7 08:21 编辑
请教楼主,错误: no function definition: CXSTA no function definition: CX-LINE-PLINE 点物体两次还不如直接rec点两个点来的更快 sunny_8848 发表于 2020-8-7 08:20
请教楼主,错误: no function definition: CXSTA no function definition: CX-LINE-PLINE
不好意思哟,我不是专业的,代码也是网上找的呢,我的能用,我只是想实现我的那些想法呢 kozmosovia 发表于 2020-8-7 13:01
点物体两次还不如直接rec点两个点来的更快
谢谢建议呢,就是我在工作的时候如果直接用rec的话,就是要做辅助点,然后CAD的窗口就那么大,我想实现可以借助我之前画好的高度,然后实现直接偏移成矩形,高度的话,主要有不一样的高度 选中单线或者多段线变成矩形,从左往右排列那种
页:
[1]