FazBear 发表于 2022-7-6 17:18:48

AutoCAD表格

大家好
 
我主要想创建一个lisp,用于在AutoCAD表格上调整样式、宽度和高度。
 
我看了一下实体数据,看看它们是否明显,但我立刻意识到我的深度不够。
 
以前有人做过这样的事吗?如果是,怎么办??

ASMI 发表于 2022-7-6 17:52:54

这并不难。定义如下函数以绘制一些表并检索其中的ActiveX对象:
 
(defun AddNewTable()

(vl-load-com) ; load Visual LISP extension

(setq mSp(vla-get-ModelSpace; get ModelSpace object
   (vla-get-ActiveDocument
       (vlax-get-acad-object)))
iPt(getpoint "\nSpecify insertion point: ") ; specify insertion point
nTbl(vla-AddTable mSp ; add new table in Model Space
                  (vlax-3d-point iPt) ; in insertion point
                  5; 5 rows
                  3; 3 columns
                  25.0; row height
                  400.0) ; column width
); end setq
); end of AddNewTable
 
您可以在命令行中尝试:
 
Command: (setq nTbl(AddNewTable))
Specify insertion point: #<VLA-OBJECT IAcadTable2 0e9f41fc>
 
现在,您可以更改任何表格属性,例如,在第三列之后添加两个宽度为200.0的列:
 
Command: (vla-InsertColumns nTbl 3 200.0 2)
nil
 
或将3行的高度更改为100.0:
 
Command: (vla-SetRowHeight nTbl 3 100.0)
nil
 
在ActiveX和VBA参考(开发人员帮助内部)中查找所有表对象属性和方法。

FazBear 发表于 2022-7-6 18:34:41

谢谢你的详细解释。
 
我有点困惑tbh!
 
我想做的就是修改现有的AutoCAD表,看看你发布的内容,这看起来不会那么容易。
 
问题是,当表格插入时,AutoCAD表格由第三方软件(CadDuct)作为BOM表生成,并以标准表格样式插入。然后,我必须将表格放置在正确的样式上,然后我必须调整表格的大小,通过选择它,然后在属性窗口中输入新的宽度和高度。这基本上就是我想在lisp中自动化的过程。
 
所以我想我需要知道的是如何修改现有AutoCAD表格的宽度和高度。
页: [1]
查看完整版本: AutoCAD表格