pchuangzmx 发表于 2017-11-2 16:34:43

如何修改图块中子图元的线型比例?

对图块进行操作时,在不炸开图块的情况下,如何修改图块内子图元的线型比例?;比如说:我在CAD图中插入一已经做好的图块,但由于绘图设置原因,在有的图中此图块中虚线比例太小,几乎看不清楚,想再编写一程序能修改图块中子图元的线型比例。就不知如何下手,折磨我好几天了?

xinxirong 发表于 2017-11-3 09:19:56

nentsel + entmod

pchuangzmx 发表于 2017-11-3 15:01:05

谢谢你的帮助,从明经这几天的学习中,我自已慢慢摸索出如下方法,测试后能满足我工作的需要,但不知我这样编写的思路是不是太繁锁,希望论坛里的哪位大侠帮我再优化一下。万分感谢
(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)
)

圣天诺杰 发表于 2019-6-23 15:35:48

命令: xg
请选择要修改的图块...
选择对象: 找到 1 个

选择对象:; 错误: *error* 函数中出错参数类型错误: VLA-OBJECT nil

ferious 发表于 2023-4-17 20:07:57

pchuangzmx 发表于 2017-11-3 15:01
谢谢你的帮助,从明经这几天的学习中,我自已慢慢摸索出如下方法,测试后能满足我工作的需要,但不知我这样 ...

几天这么牛逼!带我飞:lol

ferious 发表于 2023-4-17 20:13:16

pchuangzmx 发表于 2017-11-3 15:01
谢谢你的帮助,从明经这几天的学习中,我自已慢慢摸索出如下方法,测试后能满足我工作的需要,但不知我这样 ...

后续程序方便的话能否每行加上注解?:loveliness:
页: [1]
查看完整版本: 如何修改图块中子图元的线型比例?