家具设计师培训班实战课程

跟阿忠学家具设计,月薪8000只是起步

当前位置:
CAD插件-修改线宽度

CAD插件-修改线宽度

在CAD中只有多段线可以设置宽度、直线、圆、弧、样条曲线都无法设置宽度,要想设置宽度,还需要将这些图形转换成多段线,圆用编辑多段线PE命令还没法直接转换。

在网上看到一个插件,可以直接选择多段线、直线、圆和弧后设置宽度,省略了转换的步骤,不知道大家能不能用得上,在这里分享给大家。

百度网盘分享被百度屏蔽了,下面直接将代码发给大家,大家复制粘贴到写字版中,另存为PW.LSP或其他文件名的LSP文件。

代码如下:

(defun pw_err (s)

(princ "\n命令中止!")

(command "ucs" "restore" "recent" ^c)

(if sset

(progn

(setq sscnt (sslength sset))

(while (> sscnt 0)

(redraw (ssname sset (setq sscnt (1- sscnt))) 4)

)

)

)

(setvar "clayer" old_clayer)

(setvar "cecolor" old_cecolor)

(setvar "celtype" old_celtype)

(setvar "celtscale" old_celtscale)

(setvar "osmode" old_osmode)

(setvar "dimzin" old_dimzin)

(setvar "blipmode" old_blipmode)

(setq *error* old_err)

(gc)

(princ)

)

(expand 5)

(defun c:pw ()

(command "_.undo" "_begin")

(setq old_err *error*

*error* pw_err

)

(princ

""

)

(setq old_clayer (getvar "clayer"))

(setq old_cecolor (getvar "cecolor"))

(setq old_celtype (getvar "celtype"))

(setq old_celtscale (getvar "celtscale"))

(setq old_osmode (getvar "osmode"))

(setq old_dimzin (getvar "dimzin"))

(setq old_blipmode (getvar "blipmode"))

(setvar "cmdecho" 0)

(setvar "osmode" 0)

(setvar "dimzin" 8)

(setvar "blipmode" 0)

(if (= (tblsearch "ucs" "recent") nil)

(command "ucs" "save" "recent" ^c)

(command "ucs" "save" "recent" "y" ^c)

)

(command "ucs" "" ^c)

(setq sset (ssget))

(if (null sset)

(progn

(princ "\n未选择到物体!")

(exit)

)

)

(setq sscnt (sslength sset)

lwplsset (ssadd)

plsset (ssadd)

lsset (ssadd)

arcsset (ssadd)

ccsset (ssadd)

)

(while (> sscnt 0)

(setq temp (ssname sset (setq sscnt (1- sscnt))))

(setq temptype (cdr (assoc 0 (entget temp))))

(cond (

(= temptype "LWPOLYLINE")

(ssadd temp lwplsset)

)

(

(= temptype "POLYLINE")

(ssadd temp plsset)

)

(

(= temptype "LINE")

(ssadd temp lsset)

)

(

(= temptype "ARC")

(ssadd temp arcsset)

)

(

(= temptype "CIRCLE")

(ssadd temp ccsset)

)

)

)

(setq lwplsscnt (sslength lwplsset))

(setq plsscnt (sslength plsset))

(setq lsscnt (sslength lsset))

(setq arcsscnt (sslength arcsset))

(setq ccsscnt (sslength ccsset))

(if (and (= lwplsscnt 0)

(= plsscnt 0)

(= lsscnt 0)

(= arcsscnt 0)

(= ccsscnt 0)

)

(progn (princ

"\n未选择到任何有效的 (LW)POLYLINE、LINE、ARC 或 CIRCLE!"

)

(exit)

)

)

(princ (strcat "\n统计: 选中 "

(itoa lwplsscnt)

" 个 LWPOLYLINE,"

(itoa plsscnt)

" 个 POLYLINE,"

(itoa lsscnt)

" 个 LINE,"

(itoa arcsscnt)

" 个 ARC,"

(itoa ccsscnt)

" 个 CIRCLE.\n"

)

)

(while (> lwplsscnt 0)

(redraw (ssname lwplsset (setq lwplsscnt (1- lwplsscnt))) 3)

)

(while (> plsscnt 0)

(redraw (ssname plsset (setq plsscnt (1- plsscnt))) 3)

)

(while (> lsscnt 0)

(redraw (ssname lsset (setq lsscnt (1- lsscnt))) 3)

)

(while (> arcsscnt 0)

(redraw (ssname arcsset (setq arcsscnt (1- arcsscnt))) 3)

)

(while (> ccsscnt 0)

(redraw (ssname ccsset (setq ccsscnt (1- ccsscnt))) 3)

)

(setq plwid (getvar "plinewid"))

(initget 4)

(setq input (getreal (strcat "\n请输入多段线宽度 <"

(rtos (getvar "plinewid")2 5)

">:"

)

)

)

(if input

(setq plwid input)

)

(setvar "plinewid" plwid)

(setq lwplsscnt (sslength lwplsset))

(setq plsscnt (sslength plsset))

(setq lsscnt (sslength lsset))

(setq arcsscnt (sslength arcsset))

(setq ccsscnt (sslength ccsset))

(while (> lwplsscnt 0)

(command "pedit"

(ssname lwplsset (setq lwplsscnt (1- lwplsscnt)))

"w"

plwid

""

^C^C

)

)

(while (> plsscnt 0)

(command "pedit"

(ssname plsset (setq plsscnt (1- plsscnt)))

"w"

plwid

""

^C^C

)

)

(while (> lsscnt 0)

(command "pedit"

(ssname lsset (setq lsscnt (1- lsscnt)))

""

"w"

plwid

""

^C^C

)

)

(while (> arcsscnt 0)

(command "pedit"

(ssname arcsset (setq arcsscnt (1- arcsscnt)))

""

"w"

plwid

""

^C^C

)

)

(while (> ccsscnt 0)

(setq cc (ssname ccsset (setq ccsscnt (1- ccsscnt))))

(setq cclist (entget cc))

(setq ccdia (* (cdr (assoc 40 cclist)) 2))

(setq centpt (cdr (assoc 10 cclist)))

(setq cclayer (cdr (assoc 8 cclist)))

(if (assoc 62 cclist)

(setq cccolor (itoa (cdr (assoc 62 cclist))))

)

(if (assoc 6 cclist)

(setq ccltype (cdr (assoc 6 cclist)))

)

(if (assoc 48 cclist)

(setq cclts (cdr (assoc 48 cclist)))

)

(entdel cc)

(if (> ccdia plwid)

(progn

(setq nj (- ccdia plwid))

(setq njpluswid (+ ccdia plwid))

)

(progn

(setq nj 0)

(setq njpluswid ccdia)

(princ "\n输入宽度大于或等于圆直径,将填充圆!")

)

)

(setvar "clayer" cclayer)

(if cccolor

(setvar "cecolor" cccolor)

(setvar "cecolor" "bylayer")

)

(if ccltype

(setvar "celtype" ccltype)

(setvar "celtype" "bylayer")

)

(if cclts

(setvar "celtscale" cclts)

(setvar "celtscale" 1)

)

(command "DONUT" nj njpluswid centpt "" ^c)

)

(command "ucs" "restore" "recent" ^c)

(setq sscnt (sslength sset))

(while (> sscnt 0)

(redraw (ssname sset (setq sscnt (1- sscnt))) 4)

)

(setvar "clayer" old_clayer)

(setvar "cecolor" old_cecolor)

(setvar "celtype" old_celtype)

(setvar "celtscale" old_celtscale)

(setvar "osmode" old_osmode)

(setvar "dimzin" old_dimzin)

(setvar "blipmode" old_blipmode)

(command "_.undo" "_end")

(gc)

(princ)

)

使用方法如下:

1、输入AP,回车,加载下载的插件。

2、输入PW,回车,选择要转化的线后回车,如图所示。

3、根据提示输入宽度后,回车,满足条件的线就被设置为指定宽度。此插件处理不了样条曲线。

CAD使用技巧可以访问:CAD实用技巧、CAD使用技巧、CAD疑难解答汇总

作者:家具设计课堂 发布时间:2018.11.02

家具设计课堂是国内做家具设计在线教育的线上培训机构,初入家具设计行业的准家具设计师建议在此技术提升。跟阿忠学家具设计,月薪8000只是起步!您想找一份高薪设计类的研发工作,或许家具设计课堂能帮您实现您的初衷愿景。报名学习QQ:415284424。

系统化培训家具结构设计师从家具设计课堂开始

家具设计课堂©版权所有 | 湘ICP备17013207号-1

jiajuketang.com/cadwhy   CAD十万个为什么隶属于湖南春雨秋风信息技术有限公司旗下网站