明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 730|回复: 8

表格内多行的单行文字对齐

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

表格内多行的单行文字对齐[左中/中间/右中]
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. )




本帖子中包含更多资源

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

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-21 17:49 , Processed in 0.177076 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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