如何修改图块中子图元的线型比例?
对图块进行操作时,在不炸开图块的情况下,如何修改图块内子图元的线型比例?;比如说:我在CAD图中插入一已经做好的图块,但由于绘图设置原因,在有的图中此图块中虚线比例太小,几乎看不清楚,想再编写一程序能修改图块中子图元的线型比例。就不知如何下手,折磨我好几天了?nentsel + entmod 谢谢你的帮助,从明经这几天的学习中,我自已慢慢摸索出如下方法,测试后能满足我工作的需要,但不知我这样编写的思路是不是太繁锁,希望论坛里的哪位大侠帮我再优化一下。万分感谢
(defun c:xg (/ ss sslen sname snlast n tk tl)
(vl-load-com)
(setq old_cm (getvar "cmdecho"))
(setq old_os (getvar "osmode"))
(setq old_bl (getvar "blipmode"))
(setvar "cmdecho" 0)
(setvar "osmode" 39)
(setvar "blipmode" 0)
(prompt "\n请选择要修改的图块...")
(setq ss (ssget(list '(0 . "INSERT"))))
(if (null ss)
(alert "\n没有选中任何要修改的图块...")
(progn
(repeat (setq sslen (sslength ss))
(setq sname (ssname ss (setq sslen (1- sslen))))
(setq
snlast (tblobjname "Block" (cdr (assoc 2 (entget sname))))
)
(while
(/= (cdr (assoc 6 (entget (setq snlast (entnext snlast)))))
"DASHED"
)
)
(setq n (getdist "\n请输入要修改的线型比例"))
(setq
tk (vla-put-linetypescale (vlax-ename->vla-object snlast) n)
)
(setq tl (vla-put-color (vlax-ename->vla-object snlast) 40))
(entmod (entget sname))
(redraw sname 1)
)
)
)
(setvar "cmdecho" old_cm)
(setvar "osmode" old_os)
(setvar "blipmode" old_bl)
(princ)
) 命令: xg
请选择要修改的图块...
选择对象: 找到 1 个
选择对象:; 错误: *error* 函数中出错参数类型错误: VLA-OBJECT nil pchuangzmx 发表于 2017-11-3 15:01
谢谢你的帮助,从明经这几天的学习中,我自已慢慢摸索出如下方法,测试后能满足我工作的需要,但不知我这样 ...
几天这么牛逼!带我飞:lol pchuangzmx 发表于 2017-11-3 15:01
谢谢你的帮助,从明经这几天的学习中,我自已慢慢摸索出如下方法,测试后能满足我工作的需要,但不知我这样 ...
后续程序方便的话能否每行加上注解?:loveliness:
页:
[1]