本帖最后由 开心无惧 于 2025-9-19 20:04 编辑

请教大家  可以帮忙修改一下代码吗?
功能:多行文字 内容刷 且行距保持不变
说明:常用的文字内容刷 在刷多行文字时 发现行距也跟着变化了

[已解决]
代码中有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就行

截图的代码可以发出来吗 谢谢
  • 上一篇:lisp语言不需要安装odbc直接调用sqlite3.exe查询数据
  • 下一篇:没有了