广易精通 发表于 2020-10-15 17:40:59

wmz 发表于 2020-10-15 12:44
我是须要你上传DWG图幅,便于我调试程序。不是上传PNG图像文件。再说这个文件我也打不开(不知什么原因) ...

图上传了,跟图没关系吧,主要是程序不能启动

广易精通 发表于 2020-10-15 17:42:36

wmz 发表于 2020-10-15 12:44
我是须要你上传DWG图幅,便于我调试程序。不是上传PNG图像文件。再说这个文件我也打不开(不知什么原因) ...

图上传了,跟图没关系,程序启动不了

wmz 发表于 2020-10-24 13:58:47

;;;;;;;将多行文字转换为单行文字
(defun c:MtoTa(/ f e e0 ee m str p0 pt h H0 KD n n1 nn str0 str1 stra)
    (vl-load-com)
    (setq    e (ssget "X" '((0 . "MTEXT"))))
(if e (progn
    (setq    m 0 n nil nn 0 str0 "" str1 "" stra "")
(repeat (sslength e)
    (setq   e0 (ssname e m) m (1+ m))
    (setq   ee (entget e0))
    (setqstr (cdr(assoc 1 ee)))
    (setqsty (cdr(assoc 7 ee)))
    (setqply (cdr(assoc 8 ee)))
    (setq   p0 (cdr(assoc 10 ee)))
    (setq    H (cdr(assoc 40 ee)))
    (setq   H0 (cdr(assoc 43 ee)))
    (setq   KD (cdr(assoc 42 ee)))
    (setq   pt (list (+(car p0)(/ KD 2.0))(-(cadr p0)(/ H0 2.0)) 0.0))
    (while
         (setq   n (vl-string-search ";" str))
         (setq str (substr str (+ n 2)))
    )
    (setqstr (vl-string-subst "" "}" str))
    (setq   nn (strlen str) n1 1 stra "")
    (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 ((= str0 "\\")(setq stra (strcat stra "")))
;          ((and(= str0 "P")(= str1 "\\"))(setq stra (strcat stra "")))
      (cond ((and(= str0 "P")(/= str1 "\\"))(setq stra (strcat stra str0)))
          ((and(/= str0 "\\")(/= str0 "P"))(setq stra (strcat stra str0)))
      )             
    );;;;;;end nn
      (command "erase" e0 "")
    ;(command "layer" "s" ply "")
    ;(command "TEXT" "M" pt "3.0" "360" stra)
   (entmake (list
           '(0 . "TEXT")
           (cons 1 stra)
           (cons 7 sty)
           (cons 8 ply)
           (cons 10 pt)
           (cons 11 pt)
           (cons 40 h)
           (cons 41 0.9)
           (cons 50 0.0)
           '(72 . 4)
           '(73 . 0)
          )
    )
)
));;;;;end (if e
)
用这个看看

天宇飞翔12 发表于 2021-6-13 16:58:43

13楼好用,谢谢

shijianyy 发表于 2021-6-13 23:15:28

学习了 ,很好的思路

huxu823 发表于 2022-5-29 14:38:06

wmz 发表于 2020-10-24 13:58
;;;;;;;将多行文字转换为单行文字
(defun c:MtoTa(/ f e e0 ee m str p0 pt h H0 KD n n1 nn str0 str1 st ...

好用,(setq    e (ssget "X" '((0 . "MTEXT"))))改为(setq    e (ssget '((0 . "MTEXT"))))
即可由自动选择图形中所有的多行文字 改为 手动选择要转换的多行文字

尘缘一生 发表于 2022-11-28 06:33:27

wmz 发表于 2020-10-24 13:58
;;;;;;;将多行文字转换为单行文字
(defun c:MtoTa(/ f e e0 ee m str p0 pt h H0 KD n n1 nn str0 str1 st ...

转化后不分行,最好改写下,分行的。

jh3030912 发表于 2023-8-10 18:57:28

我直接用的x分解不知道 和这个有啥区别
页: 1 [2]
查看完整版本: 多行文字炸开法速度很慢,不知这个咋样