一旦设置了多义线的宽度,就没法快速更改了吗?
duhaiyang
duhaiyang Lv.3
2004年09月21日 15:18:46
只看楼主

请问各位大虾,由于出图线条区别不明显,我要将CAD内的一些用多义线画的粗线条再加粗一些,但一条一条的改好麻烦,能有快速的方法吗?可以全部转换为一般的线条吗? 望赐教

请问各位大虾,由于出图线条区别不明显,我要将CAD内的一些用多义线画的粗线条再加粗一些,但一条一条的改好麻烦,能有快速的方法吗?可以全部转换为一般的线条吗? 望赐教
免费打赏
ws_mao
2004年09月21日 16:29:50
2楼
本人有一LISP小程序,可以一次多选,修改线宽,若需要,EMAIL?
回复
fen
2004年09月21日 23:57:27
3楼

多义线炸开就是普通的线

在2004里面使用物体属性窗口可以直接修改多义线线宽

下面的就是可以一次修改很多多义线(包括Line)线宽的Lisp

;;; peditn.lsp
;;; by zhuxiaofeng
;;; 该程序可修改线,弧,圆及多义线的宽度

(defun C:pn (/ p l n e q w a m b layer0 color0 linetype0 layer1 color1
linetype1 rad-out rad-in)
(setq oldblp (getvar "blipmode")
oldech (getvar "cmdecho")
olderr *error*
linetype1 (getvar "celtype")
layer1 (getvar "clayer")
color1 (getvar "cecolor")
)
(setvar "blipmode" 0)
(setvar "cmdecho" 0)
(defun *error* (msg)
(princ "\n")
(princ msg)
(setvar "blipmode" oldblp)
(setvar "cmdecho" oldech)
(setq *error* olderr)
(princ)
)
(prompt "\n请选择要改变宽度的线,弧,圆及多义线.")
(setq p (ssget))
(setq w (getreal "\n请输入宽度<50>:"))
(if (not w) (setq w 50))
(setq l 0 m 0 n (sslength p))
(while (< l n)
(setq q (ssname p l))
(setq ent (entget q))
(setq b (cdr (assoc 0 ent)))
(if (member b ’("LINE" "ARC"))
(progn
(command "PEDIT" q "y" "w" w "x")
(setq m (+ 1 m))
)
)
(if (member b ’("LWPOLYLINE" "POLYLINE"))
(progn
(command "PEDIT" q "w" w "x")
(setq m (+ 1 m))
)
)
(if (member b ’("CIRCLE"))
(progn
(if (assoc 6 ent) (setq linetype0 (cdr (assoc 6 ent))) (setq
linetype0 "bylayer"))
(setq layer0 (cdr (assoc 8 ent)))
(if (assoc 62 ent) (setq color0 (cdr (assoc 62 ent))) (setq
color0 "bylayer"))
(setq center0 (cdr (assoc 10 ent)))
(setq radius0 (cdr (assoc 40 ent)))
(setq diameter0 (* 2 radius0))
(entdel q)
(command "color" color0)
(command "layer" "s" layer0 "")
(command "linetype" "s" linetype0 "")
(if (> w diameter0)
(progn
(princ "\n\t 因线宽大于圆的直径,故将该圆填充")
(princ)
(setq rad-out (* 2 radius0)
rad-in 0
)
)
)
(if (<= w diameter0)
(progn
(setq rad-out (+ (* 2 radius0) w)
rad-in (- (* 2 radius0) w)
)
)
)
(command "donut" rad-in rad-out center0 "")
(setq m (+ 1 m))
)
)
(setq l (+ 1 l))
)
(if (= 0 m)
(progn
(princ "\n\t 没有任何线,弧,圆及多义线被选中")
(princ)
)
)
(setvar "blipmode" oldblp)
(setvar "cmdecho" oldech)
(setq *error* olderr)
(command "color" color1)
(command "layer" "s" layer1 "")
(command "linetype" "s" linetype1 "")
(princ)
)
(princ "\n\t 线宽编辑程序, (c) 1997 ")
(princ "\n\t c:Peditn 已加载; 以Pn启动命令.\n")
(princ)
回复
鸿业gps
2004年09月22日 08:31:40
4楼
在CAD2002里面可以用线重来表示线宽,修改起来很快,还可以在CAD里面设置
显示方式
回复
jackcpu
2004年09月22日 13:04:10
5楼
这很简单,在CAD中的对象特性就能解决问题了,先把整个图形选择住,然后按
CTRL+1,或输入:properties。就会弹出一个筐。在框的最上端有复选框,选择
你要改的对象,多段线,在下面的选项中有一项“全局宽度”,在后面输入你想要
得的宽度就行了。

其实对象特性可以修改CAD中的任何数据,对象的所有数据都在这里,这是图形
的中心数据库。
回复
工业水友
2004年09月22日 20:13:33
6楼
和楼上的想的一致,这应该是比较简洁的做法!
回复
工业水友
2004年09月22日 20:14:43
7楼
和楼上的想的一致,这应该是比较简洁的做法!
回复

相关推荐

APP内打开