找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3012|回复: 22

[求助] 表格按行或列调整文字间距

[复制链接]

已领礼包: 862个

财富等级: 财运亨通

发表于 2013-8-5 16:51:44 | 显示全部楼层 |阅读模式

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

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

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

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-5 17:51:18 | 显示全部楼层
你的表格是ACAD的表格实体画的还是自己用LINE画的?

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

使用道具 举报

已领礼包: 862个

财富等级: 财运亨通

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-8-5 18:29:17 | 显示全部楼层
取 Line 的 Y 值排序, 字按行排列, modent 插入点
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-8-5 21:05:20 | 显示全部楼层
给你写了个程序,测试下,比你要的更多,N行N列任意位置的文本都可以按照你说的,填充到本列最上面。


表格线是LINE。


需要通用函数库的函数,XD::Table:CloseGridLine 去下面地址下载源码:http://www.xdcad.net/forum/thread-669380-1-1.html


其他的通用函数库以前都发布过,你下载最新的晓东通用LISP函数库加载就行了。

xdtb_table_sort1.gif

  1. (defun c:tt( / box box1 box2 c1 c2 e1 e2 entl entl1 i m mat mat0 n ss)
  2.    (princ "\n选取表格线<退出>:")
  3.    (if (setq ss (ssget '((0 . "LINE"))))
  4.       (progn
  5.          (setq ss (XD::Table:CloseGridLine ss 1.0)
  6.                entl (cadr ss)
  7.                entl (apply 'mapcar (cons 'list entl))
  8.                mat0 (xdrx_matrix_identity 3)
  9.          )
  10.          (foreach n entl
  11.             (setq box (apply 'xdrx_entity_box n)
  12.                   ss (ssget "wp" box '((0 . "TEXT")))
  13.                   entl1 (XD::Pickset:TableSort ss 0 3 '> '<)
  14.                   entl1 (apply 'append entl1)
  15.             )
  16.             (setq i 0)
  17.             (foreach m entl1
  18.                (setq e1 m
  19.                      e2 (nth i n)
  20.                      box1 (xdrx_entity_box e1)
  21.                      c1 (XD::Pnts:Centroid box1)
  22.                      box2 (xdrx_entity_box e2)
  23.                      c2 (XD::Pnts:Centroid box2)
  24.                      mat (xdrx_matrix_setTransLation mat0 (mapcar '- c2 c1))
  25.                      i (1+ i)
  26.                )
  27.                (xdrx_entity_transform e1 mat)
  28.             )
  29.          )
  30.       )
  31.    )
  32.    (princ)
  33. )

评分

参与人数 1D豆 +10 贡献 +1 收起 理由
XDSoft + 10 + 1 热心帮忙奖!

查看全部评分

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-8-5 21:18:03 来自手机 | 显示全部楼层
对文字来说只要安列排序来自: Android客户端

点评

要根据表格线,找到每列后,根据表格每列的外框找到文字后,文字再按行排序才行。否则文字实体不能对应到指定的表格列上,比如上面表格如果4列,只有3列文字的话。  详情 回复 发表于 2013-8-5 21:25
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-8-5 21:25:11 | 显示全部楼层
st788796 发表于 2013-8-5 21:18
对文字来说只要安列排序

要根据表格线,找到每列后,根据表格每列的外框找到文字后,文字再按行排序才行。否则文字实体不能对应到指定的表格列上,比如上面表格如果4列,只有3列文字的话。

点评

这种Net格线列就是一系列的 ((X1 X2) (X2 X3) ...) 行高就是 ((Y1 Y2) (Y2 Y3) ... ) 对文字判断下 插入点是否在 Xn-1 Xn 之间就可以在列间定位了  详情 回复 发表于 2013-8-5 21:48
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-8-5 21:48:27 | 显示全部楼层
Lispboy 发表于 2013-8-5 21:25
要根据表格线,找到每列后,根据表格每列的外框找到文字后,文字再按行排序才行。否则文字实体不能对应到 ...

这种Net格线列就是一系列的 ((X1 X2) (X2 X3) ...) 行高就是 ((Y1 Y2) (Y2 Y3) ... ) 对文字判断下 插入点是否在 Xn-1 Xn 之间就可以在列间定位了

点评

你是用点去判断,我是先直接把每个CELL生成了,行、列的,然后用盒子去判断。  详情 回复 发表于 2013-8-5 23:03
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-8-5 23:03:26 | 显示全部楼层
Free-Lancer 发表于 2013-8-5 21:48
这种Net格线列就是一系列的 ((X1 X2) (X2 X3) ...) 行高就是 ((Y1 Y2) (Y2 Y3) ... ) 对文字判断下 插入 ...

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-8-5 23:05:50 来自手机 | 显示全部楼层
用点不改变原图来自: Android客户端

点评

CELL也一样,不想要CELL删除CELL就是了。恢复LINE就是了,CELL可以是中间过程。不过LINE那样的表格线原图留着也没什么好处。  详情 回复 发表于 2013-8-5 23:09
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-8-5 23:09:40 | 显示全部楼层
st788796 发表于 2013-8-5 23:05
用点不改变原图

CELL也一样,不想要CELL删除CELL就是了。恢复LINE就是了,CELL可以是中间过程。不过LINE那样的表格线原图留着也没什么好处。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

发表于 2013-8-6 05:58:51 | 显示全部楼层
表格线是LINE,框选后什么反应也没有!

点评

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-8-6 08:09:38 | 显示全部楼层
q3_2006 发表于 2013-8-6 05:58
表格线是LINE,框选后什么反应也没有!

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

使用道具 举报

已领礼包: 862个

财富等级: 财运亨通

 楼主| 发表于 2013-8-6 09:59:46 | 显示全部楼层
(defun-q S::STARTUP ( )
(setvar "ACADLSPASDOC" 1)
(princ (load "E:\\mytools\\lisp\\htbl.lsp" "\nhtbl.LSP file not loaded."))
(load "E:\\MYTOOLS\\opendcl\\ManualLoading.lsp")
(princ (load "E:\\mytools\\lisp\\XDRX_API.R18.X32.arx" "\n晓东API file not loaded."))
(princ (load "E:\\mytools\\lisp\\XD-LISP-LIB.VLX" "\n晓东函数库 file not loaded."))
(princ (load "E:\\mytools\\lisp\\公用函数库.fas" "\n公用函数库.fas file not loaded."))
)
XD::Table:CloseGridLine放在公用函数库里,自动加载后找不到这个函数?手动加载公用函数库和
晓东函数库后出现xdrx_begin找不到

点评

编译版本的通用LISP函数库还没更新,所以那个新的函数要先手工加载下。 XDRX_API是最新版本吗? 加载完API,看到提示信息后,在命令行自己查看下 xdrx_begin 是否定义了。用 !  详情 回复 发表于 2013-8-6 10:20
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-8-6 10:20:37 | 显示全部楼层
zhangq_cai1 发表于 2013-8-6 09:59
(defun-q S::STARTUP ( )
(setvar "ACADLSPASDOC" 1)
(princ (load "E:\\mytools\\lisp\\htbl.lsp" "\nh ...

编译版本的通用LISP函数库还没更新,所以那个新修改的函数比库里面同名的要新,所以要先手工加载下源码。

XDRX_API是最新版本吗? 加载完API,看到提示信息后,在命令行自己查看下 xdrx_begin 是否定义了。用 !

其实你的自动加载函数里面,只加载通用LISP函数库就行,只要在支持路径里面有XDRX_API的ARX,就会自动找到对应的版本加载的。

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-7 01:25 , Processed in 0.427795 second(s), 66 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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