明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1107|回复: 15

文字自适宽度-表格内多行的单行文字对齐

[复制链接]
发表于 2025-4-7 17:07:32 | 显示全部楼层 |阅读模式
本帖最后由 183017064 于 2025-4-27 09:20 编辑

表格内多行的单行文字对齐[左中/中间/右中]
http://bbs.mjtd.com/forum.php?mo ... 685&fromuid=7333152
(出处: 明经CAD社区)

修改大佬lostbalance的代码,添加左右上下边距(字高倍数 ps:0.1字高),(可以按需修改)。强制文字宽度0.8(可以按需修改)

________________________________________________________


  1. (setq texts lsti)
  2.         (setq H_list (mapcar '(lambda (txt) (cdr (assoc 40 (entget txt)))) texts))
  3.         (setq H_max (apply 'max H_list))
  4.         (setq margin_top (* 0.2 H_max))   ; 上边距----------------------------------------------------------------------
  5.         (setq margin_bottom (* 0.1 H_max)) ; 下边距---------------------------------------------------------------------
  6.         (setq available_height (- (- py2 py1) margin_top margin_bottom))
  7.         (setq py (/ available_height n))
  1. (defun AdjustTextWidth (txtent ty px1 px2 / current_41 tmp_txtdata tbox original_width available_width new_41 height)
  2.     (setq current_41 (cdr (assoc 41 txtent)))
  3.     (setq height (cdr (assoc 40 txtent))) ; 获取当前文字高度
  4.     (setq tmp_txtdata (subst (cons 72 0) (assoc 72 txtent) txtent))
  5.     (setq tmp_txtdata (subst (cons 73 0) (assoc 73 tmp_txtdata) tmp_txtdata))
  6.     (setq tmp_txtdata (subst (cons 41 1.0) (assoc 41 tmp_txtdata) tmp_txtdata))
  7.     (setq tmp_txtdata (subst (cons 10 (list 0 0 0)) (assoc 10 tmp_txtdata) tmp_txtdata))
  8.     (setq tbox (textbox tmp_txtdata))
  9.     (if (and tbox (car tbox) (cadr tbox))
  10.         (progn
  11.             (setq original_width (- (caadr tbox) (caar tbox)))
  12.             (setq available_width
  13.                 (cond
  14.                     ((= ty "s") (- (- px2 px1) (* 0.2 height))) ; 左边距0.1H -------------------------------------------------------
  15.                     ((= ty "d") (- (- px2 px1) (* 0.4 height))) ; 中间左右各0.2H边距----------------------------------------------------
  16.                     ((= ty "f") (- (- px2 px1) (* 0.2 height))) ; 右边距0.1H ---------------------------------------------------------
  17.                 )
  18.             )
  19.             (if (and (> original_width 0) (> (* original_width current_41) available_width))
  20.                 (progn
  21.                     (setq new_41 (min (/ available_width original_width) 0.8))
  22.                     (setq txtent (subst (cons 41 new_41) (assoc 41 txtent) txtent))
  23.                 )
  24.             )
  25.             ;; 强制宽度因子限制
  26.             (setq current_41 (cdr (assoc 41 txtent)))
  27.             (if (> current_41 0.8)
  28.                 (setq txtent (subst (cons 41 0.8) (assoc 41 txtent) txtent))
  29.             )
  30.         )
  31.     )
  32.     txtent
  33. )
——————————————————————————————————————————————————————————————
2025.04.23优化
无论当前宽度因子如何​,只要文字自然宽度允许,就强制设为最大可能值(不超过0.8)。
  • 文字在未超过边界时,宽度因子尽可能设为0.8,保持统一美观。
  • 当文字可能超出边界时,自动缩小宽度因子,确保不溢出。

收一个币 不过分吧

——————————————————————————————————————————————————————————————
2025.04.24更新
把边距系数单独拿出来,方便不同CAD猿使用,修改了一点小bug。

  1.   (setq topfactor 0.6)    ; 上边距系数(相对文字高度)
  2.   (setq bottomfactor 0.1) ; 下边距系数
  3.   (setq leftfactor 0.9)   ; 左边距系数
  4.   (setq rightfactor 0.5)  ; 右边距系数

PS:右对齐还是有点bug,但是一般不会用到右对齐,有时间修理吧。





本帖子中包含更多资源

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

x
回复

使用道具 举报

 楼主| 发表于 10 小时前 | 显示全部楼层
本帖最后由 183017064 于 2025-4-30 09:17 编辑

图示的收费版的。收费没只是为了快乐一下,添加一丢丢成就感。不喜勿喷,出门右转,这种功能的插件论坛多的是。(ps:原作者是免费的,我用大佬的程序做了修改就不应该收费。MD。什么逻辑 。如有违背伦理道德或者侵权那也是我自己的事情)(哪里改名称,刚来时候用qq号。真有人顺着QQ来“交流”
回复 支持 反对

使用道具 举报

 楼主| 发表于 4 天前 | 显示全部楼层
本帖最后由 183017064 于 2025-4-28 09:40 编辑
逗亦斗霸 发表于 2025-4-26 13:02
插件很好,功能很强大,但有个小问题不知道是不是只有我有遇到,就是输入命令后,只显示"d"和“s”,不显示 ...

确实有这个问题,原作者也有提到过,一般很少会用到右对齐,所以就没有修复。现在已经修复了不显示的问题,还有一个问题,当表格比较大,文字宽度比较小的时候,不会去调整。现在已经修复了
回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层
插件很好,功能很强大,但有个小问题不知道是不是只有我有遇到,就是输入命令后,只显示"d"和“s”,不显示"f"~
另外,建议大佬在标题上加上“文字自适宽度”之类的字样吧,因为搜了一下,论坛上这方面的功能好像很少~
PS:请问付币下载的那个功能有何不同呀?

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-7 17:40:22 | 显示全部楼层
欢迎大佬指正
回复 支持 反对

使用道具 举报

发表于 2025-4-8 00:24:15 | 显示全部楼层
简单、好用、适合目前工作所需,谢谢分享~
回复 支持 反对

使用道具 举报

发表于 2025-4-8 23:36:44 | 显示全部楼层
本帖最后由 szhorse 于 2025-4-9 10:11 编辑

太感谢了,已经有了表格文字居中,就缺楼主的这个,明早试试我
还需修改一下,不支持天正文字
回复 支持 反对

使用道具 举报

发表于 2025-4-9 10:19:32 | 显示全部楼层
谢谢楼主分享,点赞
回复 支持 反对

使用道具 举报

发表于 2025-4-9 10:24:16 | 显示全部楼层
支持一下,谢谢分享。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-9 13:37:39 | 显示全部楼层
szhorse 发表于 2025-4-8 23:36
太感谢了,已经有了表格文字居中,就缺楼主的这个,明早试试我
还需修改一下,不支持天正文字

不好意思,我没接触过天正。
回复 支持 反对

使用道具 举报

发表于 2025-4-10 07:07:21 | 显示全部楼层
支持一下,谢谢分享。
回复 支持 反对

使用道具 举报

发表于 2025-4-10 10:41:44 来自手机 | 显示全部楼层
感谢分享,确实好用
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-30 19:58 , Processed in 0.193791 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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