找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1839|回复: 3

[研讨] 表格的行高为什么有时达不到要求

[复制链接]

已领礼包: 111个

财富等级: 日进斗金

发表于 2014-3-1 10:09:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
各位行家,以下程序不知为什么有时候表格的行高不是8和4,有时候却又是8和4,是不是与acad.dwt、acadiso.dwt模板有关?
  1. (defun c:test()
  2.     (vl-load-com)
  3.     (setq Mspace (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object))))
  4.     (if (setq pt (getpoint "\n表格插入点:"))
  5.         (progn
  6.             (setq Table (vla-AddTable Mspace (vlax-3d-point pt) 10 5 1.0 1.0))
  7.      ;;设置各列宽度
  8.      (setq j 0)
  9.      (mapcar '(lambda(x)(vla-SetColumnWidth table j x)(setq j (1+ j)))
  10.       '(10.0 20.0 15.0 15.0 10.0)
  11.             )
  12.      ;;设置各行高度
  13.             (setq j 0)
  14.      (repeat 10
  15.          (if (= j 0)
  16.       (vla-SetRowHeight table j 8.0)
  17.       (vla-SetRowHeight table j 4.0)
  18.   )
  19.          (setq j (1+ j))
  20.      )
  21. )
  22.     )
  23.     (princ)
  24. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-3-1 15:34:02 | 显示全部楼层
本帖最后由 st788796 于 2014-3-1 15:44 编辑

也许有最小高度限制
用API测试SetRowHeight, 不支持小于 9.0 的行高
而且手动拖动表格高度也不能小于 9.0 行高,Title 行高最小 11.0

用 Scale 可以

变通方法,用vla-scaleentity 比例缩放(缩放到比 8 小的行高),然后再设置行高
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 1 反对 0

使用道具 举报

已领礼包: 111个

财富等级: 日进斗金

 楼主| 发表于 2014-3-1 20:20:15 | 显示全部楼层
在acad.dwt模板的图形中不存在这个问题。
谢谢st788796 的解答。
看来也只能用变通的方法来处理了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-3-1 21:04:16 | 显示全部楼层
本帖最后由 st788796 于 2014-3-2 07:15 编辑
yshf 发表于 2014-3-1 20:20
在acad.dwt模板的图形中不存在这个问题。
谢谢st788796 的解答。
看来也只能用变通的方法来处理了。


查了下 Help ,
行高
按照行数指定行高。文字行高基于文字高度和单元边距,这两项均在表格样式中设置。选定“指定窗口”选项并指定行数时,则选定了“自动”选项,且行高由表格的高度控制。

以上测试是 acadiso.dwt 模板,其中 standard 样式中的 字高为 4.5 上下边距默认为 1.5 所以行高最小值为 1.5+4.5+1.5 = 7.5 ,边框线还有一个最小间距1.125,这个间距是为双线样式保留的,这样的最小高度就是 1.125 + 7.5 + 1.125 = 9.0,所以行高不能小于9,要使行高小于 9.0  ,就需要缩小字高、及边距,同时还要加上双线样式宽度。

acad.dwt 中的 Standart Table 样式字高默认 0.18

知道了这些就该知道怎么用 SetRowHeight 了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-15 05:11 , Processed in 0.312021 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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