googly_glop 发表于 2022-7-5 13:11:53

更改表格宽度属性

我试图创建一个例程,将现有表的总宽度更改为统一值
 
目前,我知道的最快的方法是手动高亮显示我要更改的所有表格,打开autocad属性窗口并更改“表格宽度”值(请参见随附的屏幕截图)
 
我想使用visual lisp更改属性,我对它很陌生,我想知道是否有人可以用这段代码为我指明正确的方向

(vl-load-com)
(defun c:change_Width()
    (setq TABLE (ssget))
    (vla-put-width TABLE (/ width 48))
    (vla-Update TABLE)
)
目前,我设置了代码,用ssget调用提示我,这样我就可以选择表并更改宽度值
Autocad返回错误:错误的参数类型:VLA-OBJECT
 
如果有人能给我指出正确的方向,我将不胜感激
 

googly_glop 发表于 2022-7-5 13:41:32

好的,我做了更多的研究,我发现我首先要从每个实体创建一个VLA-OBJECT
 
我找到了一些现在能用的代码
然而,该代码仅适用于选择集中的第一个对象
 
我仍在排除故障,并将张贴的进展,但任何帮助是感激的

Lee Mac 发表于 2022-7-5 13:45:19

您需要为重复循环的每次迭代增加变量“i”(在这方面,您可能希望参考我的选择集处理教程),vla put width和vla update表达式应位于重复循环中,以便为处理的每个对象计算它们。

googly_glop 发表于 2022-7-5 14:04:20

非常感谢李!
花的时间比我想承认的要长
2

Lee Mac 发表于 2022-7-5 14:23:08

不客气-我很高兴看到你能够自己解决它
页: [1]
查看完整版本: 更改表格宽度属性