找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 534|回复: 7

[求助] lisp 表格自动设置列宽

[复制链接]

已领礼包: 1个

财富等级: 恭喜发财

发表于 2017-5-22 22:03:03 | 显示全部楼层 |阅读模式

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

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

×
(defun C:Set_table_width (/ tableobj def_clms def_width_list clms col width);设置明细栏的宽度
  (Vl-Load-Com)
  (setq def_clms 8);默认总列数为8
  (setq def_width_list (list 8 40 42 8 38 12 12 20))
  (setq tableobj (get-tableobj))
  (setq clms (val-get-columns tableobj))
  (if (= clms def_clms)
        (progn
                (setq col 0)
                  (repeat clms
                        (setq width (nth col def_width_list))
                        (vla-SetColumnWidth tableobj col width)
                          (setq col (1+ col))
                       
                  );end repeat
          )

  );end if

);end of Set_table_width

自动设置表格列宽
运行提示:“no function definition: GET_TABLEOBJ”,如何解决?
如何选中表格呢?

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

已领礼包: 20个

财富等级: 恭喜发财

发表于 2017-5-22 22:15:08 | 显示全部楼层
你的代码缺函数啊,所以提示错误了

试试定义个

  1. (defun get-tableobj ()
  2.   (if (setq e (ssget ":E:N" '((0 . "ACAD_TABLE"))))
  3.     (vlax-ename->vla-object (ssname e 0))
  4.   )
  5. )


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

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2017-5-22 22:21:00 | 显示全部楼层

谢谢您的帮助
上面的函数可以了
不过又提示“no function definition: VAL-GET-COLUMNS”,缺少“VAL-GET-COLUMNS”函数
能否再帮忙写一下
目前对lisp刚有点了解,其他都还不会呢,谢谢帮助了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2017-5-22 22:32:45 | 显示全部楼层

追加一个问题:一般列是固定的,就算不用判断也可以写成固定的数字
但行的个数不是固定,想要将所有的行的高度设置成固定的高度,有什么办法吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-5-22 23:03:56 | 显示全部楼层
本帖最后由 newer 于 2017-5-22 23:10 编辑

给你提供个解决方案吧,与其在这纠结这么多,不如直接找个库,现成的函数直接用就是了

加载XDRX API
不管什么表格,执行一句代码,自动给你调整成最合适的大小

(xdrx_setpropertyvalue (car (entsel)) "autosize")

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-5-22 23:25:31 | 显示全部楼层
VAL-GET-COLUMNS 这个笔误了吧?

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

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2017-5-23 07:21:47 | 显示全部楼层

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-24 04:17 , Processed in 0.384179 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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