- 积分
- 16526
- 明经币
- 个
- 注册时间
- 2011-10-13
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
发表于 2012-3-21 17:46:52
|
显示全部楼层
用这个吧
(defun c:wXQ(/ ss1 n m entx list1 olditem );多段线改线宽
(setq kd (getreal "\n输入新线宽:"))
(setq ss1 (ssget '((0 . "LWPOLYLINE"))));过滤,得到多段线的选择集
(setq n (sslength ss1));得到选择集的图元数目
(setq m 0);循环变量m置0,从选择集中的第1个改起
(while (< m n);循环,可以一次改多个图元的线宽
(setq entx (ssname ss1 m));得到图元名
(setq list1 (entget entx));注意最后一个参数需要图元名,返回的是码表
(setq olditem (assoc 43 list1));查找旧的组码43,多段线的组码43是控制固定线宽的
;(setq str(cdr olditem));去除点表中的第一个元素,即去掉43 .
(entmod(subst (cons 43 kd) olditem list1));修改组码,并更新组码
(setq m (+ 1 m));变量加1,循环下一个图元
);while
(princ)
)
|
|