teknomatika 发表于 2022-7-6 07:20:54

更改比例因子线条

为什么有时有效,有时无效?
是什么导致了这种情况?
我打算应用例程来更改线型的比例因子。
 
(defun c:ls (/ ns a n i b1 c d b2)
(setvar "cmdecho" 0)
(setq ns (getreal "\nNew Scale: "))
(setq a (ssget))
(setq n (sslength a))
(setq i 0)
(repeat n
       (setq b1 (entget (ssname a i)))
       (setq i (1+ i))
       (setq c (assoc 48 b1))
       (setq d (cons (car c) ns))
       (setq b2 (subst d c b1))
       (entmod b2)
)
(princ)
)
(prompt "\nType: LS")

Tharwat 发表于 2022-7-6 07:37:29

函数名entmode有一个错误,必须像这个entmod一样没有e。
当前例程的名称属于内置命令列表。
 
您是否尝试了ltscale命令调用?

Tharwat 发表于 2022-7-6 07:40:55

尽管我不确定是否可以单独更改每个实体的比例因子。

teknomatika 发表于 2022-7-6 07:48:14

 
塔尔瓦特,
已修复,但仍然存在相同的不一致性。
此外,有时会使线路加倍。

MSasu 发表于 2022-7-6 08:02:48

请注意,DXF代码48(局部线型比例因子)仅在值不同于1.0时出现-类似于颜色代码62或线型代码6。
LTSCALE实际上是一个系统变量,其值通过乘以局部线型比例因子来影响图元的外观。

MSasu 发表于 2022-7-6 08:09:37

该解决方案应该与我在上一个帖子中向您建议的解决方案类似。

Lee Mac 发表于 2022-7-6 08:17:58

考虑以下代码:
还要注意,由于您没有在代码中调用任何命令,因此无需更改CMDECHO系统变量。
 
请花些时间研究上述代码,并询问您是否有任何问题。

teknomatika 发表于 2022-7-6 08:28:13

 
李,
我很感激这更多的帮助。
在我的限制范围内,我认为我理解代码。
然而,对于我发布的代码,我不理解为什么有些作品和其他时候没有。
 
我能看到的一件事是,他们代码的一个特点是在没有冗余代码或多余行的情况下进行优化。当然,这是可执行的,并且只显示了它的质量,但是对于那些对AutoLISP的知识仍然非常基础的人来说,逐步理解代码变得有点困难。
对于所有人来说,得到真正大师的帮助和解释总是一种特权。
 
储罐
页: [1]
查看完整版本: 更改比例因子线条