明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 小灰345

[提问] 多行文字转单行文字

[复制链接]
发表于 2016-6-4 22:13:32 | 显示全部楼层
这个“lxdz443“,提供的代码,我现加到我的常用工具菜单中,非常好用。
发表于 2017-11-23 08:14:04 | 显示全部楼层
我这里用你的公式炸开之后,怎么文字完全没有了?
发表于 2018-2-6 00:39:14 | 显示全部楼层
我好像也不能用..不知道为啥..
发表于 2018-2-14 03:31:59 | 显示全部楼层
Here is an old LISP routine from 1998 that can be used for learning
I hope it helps
~Greg
[code = lisp]
Tip1455.LSP: MMTEXT.LSP Mtext to Text (c) 1998, Jim Houser
(defun C: MTT (/        en ent nent lyr        ipt tsz        txt sty        elv spc        ts pt pty npty
              ptx ptz npt)
  (setq         en (car (entsel "\ nSelect MTEXT to change to regular text"))
        ent (entget en)
        nent (car ent)
  )
  (setq         lyr (assoc 8 ent)
        ipt (assoc 10 ent)
        tsz (assoc 40 ent)
        txt (assoc 1 ent)
        sty (assoc 7 ent)
        elv (assoc 210 ent)
        spc (assoc 67 ent)
  )
  (setq         ts (cdr tsz)
        pt (cdr ipt)
        pty (cadr pt)
        npty (- pty ts)
        ptx (car pt)
        ptz (caddr pt)
        npt (list ptx npty ptz)
        ipt (cons 10 npt)
  )
  (setq         nent
         (list nent
               (cons 0 "TEXT")
               (cons 100 "AcDbEntity")
               spc
               lyr
               (cons 100 "AcDbText")
               ipt
               tsz
               txt
               (cons 50 0.0)
               (cons 41 1.0)
               (cons 51 0.0)
               sty
               (cons 71 0)
               (cons 72 0)
               (cons 11 (list 0.0 0.0 0.0))
               elv
               (cons 73 0)
         )
  )
  (entdel en)
  (entmake nent)
  (princ)
)[/ code]
发表于 2018-9-24 00:31:11 | 显示全部楼层
谢谢分享,正需要呢。
发表于 2020-9-23 13:59:32 | 显示全部楼层
直接炸开不香吗
发表于 2020-10-2 10:38:37 | 显示全部楼层

昨天看到一行代码不见了
发表于 2020-10-3 15:21:19 | 显示全部楼层
  1. ;;;;;;;分解法取多行文字
  2. (defun c:text()
  3.     (setq f (open "C:/aaa.txt" "w"))
  4.     (setq e (ssget "X" '((0 . "MTEXT"))))
  5.     (setq n (sslength e) m 0 strb '())
  6.   (repeat n
  7.     (setq e1 (ssname e m) m (1+ m) d1 nil d2 nil)
  8.     (setq e2 (entget e1))
  9.     (setq  p (cdr(assoc 10 e2)));;;左上角坐标
  10.     (setq d1 (cdr(assoc 42 e2)));;;宽度
  11.     (setq d2 (cdr(assoc 43 e2)));;;高度
  12.     (setq p1 (polar p 4.71238898 d2))
  13.     (setq p2 (polar p 0.0 d1))
  14.     (command  "_.explode" e1)
  15.     (setq  s (ssget "c" p1 p2 '((0 . "TEXT"))))
  16.     (setq nn (sslength s) mm 0 hh '())
  17.     (repeat nn
  18.       (setq s1 (entget(ssname s mm)) mm (1+ mm))
  19.       (setq h1 (cdr(assoc 1 s1)))
  20.       (setq hh (cons (list h1) hh))
  21.     )
  22.        (setq str "")
  23.      (foreach z hh
  24.        (setq str (strcat str (car z)))
  25.      )
  26.        (setq strb (cons (list str) strb))
  27.        (command "_.undo" 1)
  28.   );;;;;;end n
  29.      (foreach z strb
  30.         (setq pp (car z))
  31.         (write-line pp f)
  32.      )
  33.      (close f)
  34. )  

本帖子中包含更多资源

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

x
发表于 2020-10-11 18:25:48 | 显示全部楼层
;;;;;;取多行文字函数(e---多行文字图元对象名称,调用MtoT e))
(defun MtoT(e / ee str n n1 nn str0 str1 stra)
    (vl-load-com)
    (setq    n nil nn 0 str0 "" str1 "" stra "")
    (setq   ee (entget e))
    (setq  str (cdr(assoc 1 ee)))
    (while
         (setq   n (vl-string-search ";" str))
         (setq str (substr str (+ n 2))) ;;;;;;取格式符以后的字符串,无格式符则忽略
    )
    (setq  str (vl-string-subst "" "}" str)) ;;;;;去掉尾符号,无格式符则忽略
    (setq   nn (strlen str) n1 1 stra "")
     ;;;;;以下循环去除换行符"\P"但保留不属于换行的大写字符P——高手们可将下面的代码简化或优化
    (repeat nn
         (setq str1 "" str0 "")
         (setq str0 (substr str n1 1) n1 (1+ n1))
         (if (and(> n1 2)(<= n1 nn))(setq str1 (substr str (- n1 2) 1)))
      (cond ((and(= str0 "")(/= str1 "\\"))(setq stra (strcat stra str0)))
            ((and(/= str0 "\\")(/= str0 ""))(setq stra (strcat stra str0)))
      )
    )
       stra ;;;;;单行文字全字符串
)  
发表于 2021-1-11 22:24:50 | 显示全部楼层
这个要试一下,谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 12:45 , Processed in 0.245777 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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