明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: wgij007

[提问] 可以去掉多行文字的空行吗,能框选

[复制链接]
 楼主| 发表于 2021-1-18 14:04 | 显示全部楼层
顶一下
回复

使用道具 举报

 楼主| 发表于 2021-1-19 08:20 | 显示全部楼层
没为法吗
回复

使用道具 举报

 楼主| 发表于 2021-1-25 21:17 | 显示全部楼层
带点希望的顶一下

评分

参与人数 1明经币 +1 收起 理由
xvjiex + 1 请测试一下!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2021-3-1 17:50 | 显示全部楼层
再顶一下
回复

使用道具 举报

发表于 2021-3-1 19:10 | 显示全部楼层
本帖最后由 vitalgg 于 2021-3-1 19:45 编辑

一定要注意程序中说明的条件。下面这是有多个空格且有自定义格式的字串样例,需要分析这个;到} 之间都是空格或<TAB>之类的无显示字串。
{\fVerdana|b0|i0|c0|p34;  }

  1. (defun string:from-lst(lst Separator)  "列表转成字符串"
  2.   (if (cdr lst)
  3.       (strcat (car lst) Separator (string:from-lst (cdr lst) Separator))
  4.       (car lst)))

  5. (defun string:to-lst (str Separator / pos)
  6.   "字符串转成列表"
  7.   (if (setq pos (vl-string-search Separator str))
  8.       (cons (substr str 1 pos)
  9.             (string:to-lst (substr str (+ pos 1 (strlen Separator))) Separator))
  10.       (list str)))

  11. (defun remove-mtext-lastspace ()  ;;"去多行文本最后一行的空格(只有一个空格,多了还得改,还有最后的空格不能有自己样式。就是一个纯空格)"
  12.   (setq en0 (car (entsel)))
  13.   (setq strlst (string:to-lst (cdr (assoc 1 (entget en0))) "\\P"))
  14.   (if (= " " (last strlst))
  15.          (entmod
  16.           (subst
  17.            (cons 1 (string:from-lst (reverse (cdr (reverse strlst))) "\\P"))
  18.            (assoc 1 (entget en0)) (entget en0)))))
  19. (defun c:tt () (remove-mtext-lastspace))




回复

使用道具 举报

发表于 2021-3-2 18:00 | 显示全部楼层
顶一下
回复

使用道具 举报

 楼主| 发表于 2021-3-4 17:50 | 显示全部楼层
vitalgg 发表于 2021-3-1 19:10
一定要注意程序中说明的条件。下面这是有多个空格且有自定义格式的字串样例,需要分析这个;到} 之间都是空 ...

不行,没作用
回复

使用道具 举报

发表于 2021-3-4 18:05 | 显示全部楼层



运行条件不一样。
回复

使用道具 举报

 楼主| 发表于 2021-3-5 08:33 | 显示全部楼层
vitalgg 发表于 2021-3-4 18:05
运行条件不一样。

我用的是06版的,是不是这个问题呀
回复

使用道具 举报

发表于 2021-3-5 13:05 | 显示全部楼层
本帖最后由 lee50310 于 2021-3-11 20:38 编辑

試試這個程式



  1. (defun c:tt ()
  2.                (vl-load-com)
  3.                (setq ss  (ssget  '((0 . "MTEXT"))))
  4.        (repeat (setq i   (sslength ss))           
  5.            (setq ssn (ssname ss (setq i(1- i)))
  6.                   entdat (entget ssn)
  7.                     txt  (cdr (assoc 1 entdat))                         ;讀取文字內容
  8.               txt2  txt
  9.             old_t "\\P"
  10.             new_t " "
  11.                )
  12.    
  13.             (while (vl-string-search "\\P" txt)                       ;判斷是否還有換行符號
  14.                (setq txt(vl-string-subst new_t old_t txt))        ;去掉字串內的換行符號
  15.         )
  16.                                                                            
  17.               (setq new_txt( cons 1 txt))     
  18.               (setq old_txt( cons 1 txt2))
  19.         (setq entdat (subst new_txt old_txt entdat))          ;更新資料串列
  20.               (entmod entdat)                                           ;更新螢幕上的元體
  21.        )        
  22.               (princ)
  23. )





回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-10 05:07 , Processed in 0.127851 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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