乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 50|回复: 2

[编程交流] AutoCAD表格

[复制链接]

17

主题

34

帖子

17

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-6 17:18:48 | 显示全部楼层 |阅读模式
大家好
 
我主要想创建一个lisp,用于在AutoCAD表格上调整样式、宽度和高度。
 
我看了一下实体数据,看看它们是否明显,但我立刻意识到我的深度不够。
 
以前有人做过这样的事吗?如果是,怎么办??
回复

使用道具 举报

2

主题

439

帖子

536

银币

限制会员

铜币
-14
发表于 2022-7-6 17:52:54 | 显示全部楼层
这并不难。定义如下函数以绘制一些表并检索其中的ActiveX对象:
 
  1. (defun AddNewTable()
  2. (vl-load-com) ; load Visual LISP extension
  3. (setq mSp(vla-get-ModelSpace  ; get ModelSpace object
  4.      (vla-get-ActiveDocument
  5.        (vlax-get-acad-object)))
  6. iPt(getpoint "\nSpecify insertion point: ") ; specify insertion point
  7. nTbl(vla-AddTable mSp ; add new table in Model Space
  8.                   (vlax-3d-point iPt) ; in insertion point
  9.                   5  ; 5 rows
  10.                   3  ; 3 columns
  11.                   25.0  ; row height
  12.                   400.0) ; column width
  13. ); end setq
  14. ); end of AddNewTable

 
您可以在命令行中尝试:
 
  1. Command: (setq nTbl(AddNewTable))
  2. Specify insertion point: #<VLA-OBJECT IAcadTable2 0e9f41fc>

 
现在,您可以更改任何表格属性,例如,在第三列之后添加两个宽度为200.0的列:
 
  1. Command: (vla-InsertColumns nTbl 3 200.0 2)
  2. nil

 
或将3行的高度更改为100.0:
 
  1. Command: (vla-SetRowHeight nTbl 3 100.0)
  2. nil

 
在ActiveX和VBA参考(开发人员帮助内部)中查找所有表对象属性和方法。
回复

使用道具 举报

17

主题

34

帖子

17

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

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

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-4 16:40 , Processed in 0.343582 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表