本帖最后由 开心无惧 于 2025-9-19 20:04 编辑
请教大家 可以帮忙修改一下代码吗?
功能:多行文字 内容刷 且行距保持不变
说明:常用的文字内容刷 在刷多行文字时 发现行距也跟着变化了
[已解决]
代码中有3个关于多行文字行距的功能
1对多行文字-设置行距
2对多行文字-行距格式刷
3对多行文字-内容刷-保留目标文字行距
网友答:
(defun c:nmd (/ t1 en2 t2 xx1 hj tx)
(setvar "CMDECHO" 0)
(setq t1 (cdr (assoc 1 (entget (car (entsel "\n选择源文字:"))))))
(while t
(setq en2 (entget (car (entsel "\n选择要刷文字:"))))
(setq t2 (cdr (assoc 1 en2)))
(if (setq xx1 (vl-string-search ";" t1))
(setq t1 (substr t1 (+ xx1 2)))
)
(if (vl-string-search ";" t2)
(progn
(setq hj (substr t2 1 (1+ (vl-string-search ";" t2))))
(setq tx (strcat hj t1))
)
(setq tx t1)
)
(entmod (subst (cons 1 tx) (assoc 1 en2) en2))
)
(setvar "CMDECHO" 1)
(princ)
)
网友答: 本帖最后由 嘒彼小星 于 2025-9-5 09:52 编辑
你这个就是多行文字格式问题。用命令t新建两个多行文字 不要点击文字编辑器或文字格式的东西 。用特性将两个文字的行间距改为不同的 。用你这个刷也是没得问题的哦。虽然你的代码是AI生成。但它仅仅只改文字内容,不改其他。多行文字内容中的格式有很多格式。包括但不限于 字体、颜色、字高、字距、倾斜、字宽、对齐、下划线、删除线。等网友答:
标题帖子又增加了一个问题
这个代码有空能帮我看下吗
功能:仅修改多行文字行间距
输入执行命令后,直接在命令行输入数字来 指定段落行间距-精确值,这个代码怎么设置?
每次在多行文字对话框里修改行间距有点麻烦
网友答: cad字体可以设置行距因子和宽度因子,问AI就知道了网友答: 这样子吗?网友答: testtesttesttest
网友答: testtesttest网友答:
对 是这个效果
但是需要仅选取一次源多行文字,可以连续刷多个其它的多行文字网友答:
刚测试
两个多行文字在编辑器里都不选择“段落行距” 替换后 行距保留
如果选择“段落行距” 行距也被替换
网友答:
加个while就行网友答:
截图的代码可以发出来吗 谢谢
请教大家 可以帮忙修改一下代码吗?
功能:多行文字 内容刷 且行距保持不变
说明:常用的文字内容刷 在刷多行文字时 发现行距也跟着变化了
[已解决]
代码中有3个关于多行文字行距的功能
1对多行文字-设置行距
2对多行文字-行距格式刷
3对多行文字-内容刷-保留目标文字行距
网友答:
开心无惧 发表于 2025-9-15 20:08
截图的代码可以发出来吗 谢谢
(defun c:nmd (/ t1 en2 t2 xx1 hj tx)
(setvar "CMDECHO" 0)
(setq t1 (cdr (assoc 1 (entget (car (entsel "\n选择源文字:"))))))
(while t
(setq en2 (entget (car (entsel "\n选择要刷文字:"))))
(setq t2 (cdr (assoc 1 en2)))
(if (setq xx1 (vl-string-search ";" t1))
(setq t1 (substr t1 (+ xx1 2)))
)
(if (vl-string-search ";" t2)
(progn
(setq hj (substr t2 1 (1+ (vl-string-search ";" t2))))
(setq tx (strcat hj t1))
)
(setq tx t1)
)
(entmod (subst (cons 1 tx) (assoc 1 en2) en2))
)
(setvar "CMDECHO" 1)
(princ)
)
网友答: 本帖最后由 嘒彼小星 于 2025-9-5 09:52 编辑
你这个就是多行文字格式问题。用命令t新建两个多行文字 不要点击文字编辑器或文字格式的东西 。用特性将两个文字的行间距改为不同的 。用你这个刷也是没得问题的哦。虽然你的代码是AI生成。但它仅仅只改文字内容,不改其他。多行文字内容中的格式有很多格式。包括但不限于 字体、颜色、字高、字距、倾斜、字宽、对齐、下划线、删除线。等网友答:
qinhengda 发表于 2025-9-15 22:50
写得不好,多行文字太多格式了
标题帖子又增加了一个问题
这个代码有空能帮我看下吗
功能:仅修改多行文字行间距
输入执行命令后,直接在命令行输入数字来 指定段落行间距-精确值,这个代码怎么设置?
每次在多行文字对话框里修改行间距有点麻烦
网友答: cad字体可以设置行距因子和宽度因子,问AI就知道了网友答: 这样子吗?网友答: testtesttesttest
网友答: testtesttest网友答:
qinhengda 发表于 2025-9-5 00:15
这样子吗?
对 是这个效果
但是需要仅选取一次源多行文字,可以连续刷多个其它的多行文字网友答:
嘒彼小星 发表于 2025-9-5 09:51
你这个就是多行文字格式问题。用命令t新建两个多行文字 不要点击文字编辑器或文字格式的东西 。用特性将两 ...
刚测试
两个多行文字在编辑器里都不选择“段落行距” 替换后 行距保留
如果选择“段落行距” 行距也被替换
网友答:
开心无惧 发表于 2025-9-5 12:22
对 是这个效果
但是需要仅选取一次源多行文字,可以连续刷多个其它的多行文字
加个while就行网友答:
qinhengda 发表于 2025-9-5 13:58
加个while就行
截图的代码可以发出来吗 谢谢