明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1065|回复: 9

[提问] CAD表格,如何用Lisp设置单元格的边距?

[复制链接]
发表于 2024-5-6 21:41:15 | 显示全部楼层 |阅读模式
个人习惯,喜欢用CAD自带的表格,因为便于随时调整格式。


找了一些资料,目前可以修改表格字体,设置表格行高、列宽,修改表格框线的线宽。


可是在设置表格框线的线宽中,发现会影响表格的单元格边距(水平单元边距、垂直单元边距)。其实以前在设置表格外框线宽的时候,就想着如何用Lisp修改单元格的边距,无奈查了好多资料,都没有找到可以实现的方法。


有没有老师得空指导一下,如何用Lisp修改单元格的边距的?


下面贴一段我写的控制单元格框线线宽的代码。
  1. (defun ff:Table_set_border_009 (table_ename / obj nRows nCols i)
  2.   (vl-load-com)
  3.   (setq obj (vlax-ename->vla-object table_ename))  ;将图元转为VLA对象
  4.   (setq nRows(- (vla-get-rows obj) 1))    ;获取表的行数
  5.   (setq nCols(- (vla-get-columns obj) 1))  ;获取表的列数
  6.   
  7.   ;****************关闭表格的实时更新,以提高修改表格的运行速度****************
  8.   (vla-put-HeaderSuppressed obj :vlax-true)
  9.   (vla-put-TitleSuppressed  obj :vlax-true)
  10.   (vla-put-regeneratetablesuppressed  obj :vlax-true)
  11.   ;****************关闭表格的实时更新,以提高修改表格的运行速度****************
  12.   
  13.   (setq i 0)
  14.   
  15.   (while (<= i nRows)
  16.     (setq j 0)
  17.     (while (<= j ncols)
  18.       (vla-setcellgridlineweight obj i j actopmask aclnwt009)
  19.       (vla-setcellgridlineweight obj i j acbottommask aclnwt009)
  20.       (vla-setcellgridlineweight obj i j acleftmask aclnwt009)
  21.       (vla-setcellgridlineweight obj i j acrightmask aclnwt009)
  22.       (setq j (1+ j))
  23.     )
  24.    
  25.     (setq i (1+ i))
  26.   )
  27.   
  28.   ;********************************打开表格更新********************************
  29.   (vla-put-HeaderSuppressed obj :vlax-false)
  30.   (vla-put-TitleSuppressed  obj :vlax-false)
  31.   (vla-put-regeneratetablesuppressed  obj :vlax-false)
  32.   ;********************************打开表格更新********************************
  33.   
  34.   (princ)
  35. )



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2024-5-7 07:12:16 | 显示全部楼层
autocad逐步完善的东西,虽然是好东西,table版本不一样,可能不同,用(vlax-dump-Object obj T),可用信息尽收眼底
 楼主| 发表于 2024-5-7 09:39:51 | 显示全部楼层
自贡黄明儒 发表于 2024-5-7 07:12
autocad逐步完善的东西,虽然是好东西,table版本不一样,可能不同,用(vlax-dump-Object obj T),可用信息 ...

谢谢黄老师提醒,确实忘了还可以查这个。查完之后失望了,没有可以设置的参数。还是要谢谢!
发表于 2024-5-7 11:37:53 | 显示全部楼层
天天问 发表于 2024-5-7 09:39
谢谢黄老师提醒,确实忘了还可以查这个。查完之后失望了,没有可以设置的参数。还是要谢谢!

右边可以显示,说明可以找到
(vla-SetCellDataType MyTable 2 2 acLong acUnitDistance)
    (vla-SetCellFormat MyTable 1 3 "testFormat")
    (vla-SetCellState MyTable 4 3 acCellStateContentLocked)
    (vla-SetCellValue MyTable 1 4 5)
估计是类似的函数
 楼主| 发表于 2024-5-7 17:29:41 | 显示全部楼层
自贡黄明儒 发表于 2024-5-7 11:37
右边可以显示,说明可以找到
(vla-SetCellDataType MyTable 2 2 acLong acUnitDistance)
    (vla-SetC ...

您这几个函数是哪里找来的?这几个函数放到飞诗编辑器里,不能识别为函数。
之前我在明镜通道的VBA参考文件里找过table对象的方法和属性,设置函数都瞅了一遍,楞是没找着。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2024-5-28 14:30:32 | 显示全部楼层
我也找了很久找不到  参考文件里也没有  只好将就用空格代替吧
发表于 2024-5-28 15:45:09 | 显示全部楼层
这玩意叫Margin
https://help.autodesk.com/view/OARX/2021/ENU/?guid=GUID-180D2C78-B661-439A-8891-73849F40D47B

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2024-5-29 16:54:27 | 显示全部楼层
kozmosovia 发表于 2024-5-28 15:45
这玩意叫Margin
https://help.autodesk.com/view/OARX/2021/ENU/?guid=GUID-180D2C78-B661-439A-8891-7384 ...

网页的底部的示例显示,VBA不可以,LISP不可用

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2024-5-29 17:14:51 | 显示全部楼层
本帖最后由 kozmosovia 于 2024-5-29 17:24 编辑

Not available不是不可用,是没有具体的案例给你展示而已。
用是可以用的。https://forums.autodesk.com/t5/v ... -color/td-p/4373244

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2024-5-29 20:45:03 | 显示全部楼层
kozmosovia 发表于 2024-5-29 17:14
Not available不是不可用,是没有具体的案例给你展示而已。
用是可以用的。https://forums.autodesk.com/t ...

谢谢大佬指导。我也去试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 15:19 , Processed in 0.200308 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表