明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 14939|回复: 21

[提问] 天正文字转化为普通文字

  [复制链接]
发表于 2013-6-7 00:59:52 | 显示全部楼层 |阅读模式
请教高手,怎么把天正文字转化为普通文字,如天正单行文字转为普通单行文字,天正多行文字转为普通多行文字?
想到的思路一是新建一个文字对象,然后修改属性和天正文字一致,但总是不能完全一致;另一种是将天正文字炸开再合并可以保证格式一致,但是不会写LISP;请高手给个代码吧
发表于 2016-7-14 17:00:32 | 显示全部楼层
补充一下,这个设置:混排文字转低版本,是否断开,只有高版本的天正建筑才有,如天正建筑2014,至于天正8.5,或者更低版本,可能没有。
回复 支持 1 反对 0

使用道具 举报

发表于 2017-10-13 09:31:15 | 显示全部楼层
ugl 发表于 2013-6-9 17:33
不会LISP,折腾了半天加一通百度,写了一个将天正单行文字转成普通CAD单行文字的程序,思路是将每个天正单行 ...

请问大神没有显示出来的天正文字如何处理成CAD单行文字
发表于 2013-6-7 05:57:21 | 显示全部楼层
先ss找到天正文字,直接炸
发表于 2013-6-7 08:23:00 | 显示全部楼层
本帖最后由 wowan1314 于 2013-6-7 08:25 编辑

天正单行直接咋!
天正多行你要变cad多行就比较麻烦了!
而且你要做到完全一致,那几乎不可能
发表于 2013-6-8 09:02:27 | 显示全部楼层
天正文字可以用天正文件布图下的分解对象转换为普通文字,比直接用炸开命令好,但天正多行文字会变成多个普通单行文字,
发表于 2013-6-8 09:18:42 | 显示全部楼层
天正的文字。数字是单独的。无论你用天正的分解还是直接砸。都会变成几个单行文字

你再把多个单行文字合并的话,他们的字高就不相等。 所以说完全一致不可能。
 楼主| 发表于 2013-6-9 17:27:06 | 显示全部楼层
shaoxin3736 发表于 2013-6-8 09:02
天正文字可以用天正文件布图下的分解对象转换为普通文字,比直接用炸开命令好,但天正多行文字会变成多个普 ...

炸开是可以,但是其中的文字、数字经常会分成好多个,还需要自己一个个合并,很不方便
 楼主| 发表于 2013-6-9 17:33:52 | 显示全部楼层
不会LISP,折腾了半天加一通百度,写了一个将天正单行文字转成普通CAD单行文字的程序,思路是将每个天正单行文字炸开再合并,运行正常,但总是有"未知命令“TZ2TXT2”"的出错提示,请帮我看下是哪里不对。
程序如下:

;天正文字转成普通CAD文字
(defun C:TZ2txt2 ()
  (setq sset (ssget '((0 . "TCH_TEXT"))))
  (setq        num (sslength sset)
        itm 0
  )
  (setq ss1 (ssadd))
  (while (< itm num)
    (setq hnd (ssname sset itm))
    (setq ent (entget hnd))
    (ssadd hnd ss1)
    (command "explode" ss1 "")
    (setq ss (ssget "p"))
    (t2t ss)
    (command "ERASE" ss1 "")
    (setq itm (1+ itm))
  )
  (princ)
)



;;;================================================================
;;;功能:合并多个单行文字
;;;
;;;================================================================
(defun t2t (/ss)
  (if ss                                ;(setq ss (ssget '((0 . "TEXT"))))
    (progn
      ;;
      (setq lst_str '()
            i 0
      )
      (repeat (sslength ss)
        (setq en      (ssname ss i)
              ent     (entget en)
              str     (cdr (assoc 1 ent))
              lst_str (cons str lst_str)
        )
        (if (= i 0)
          ()
          (entdel en)
        )
        (setq i (1+ i))
      )
      ;;
      (setq en        (ssname ss 0)
            ent        (entget en)
            str        (apply 'strcat (reverse lst_str))
            ent        (subst (cons 1 str) (assoc 1 ent) ent)
      )
      (entmod ent)
    )
  )
  (princ)
)
;;;================================================================


 楼主| 发表于 2013-6-9 17:36:12 | 显示全部楼层
wowan1314 发表于 2013-6-8 09:18
天正的文字。数字是单独的。无论你用天正的分解还是直接砸。都会变成几个单行文字

你再把多个单行文字合 ...

就是这个问题,不过我也并不需要完全一致,只要能大概差不多即可,主要是转成普通文字方便用VBA处理,搜索查找都更方便,个人不会LISP,而天正又只有LISP接口,所以才费劲折腾转换
发表于 2013-6-9 22:00:54 | 显示全部楼层
(command "explode" ss1 "")
改成:
(command "explode" ss1)

评分

参与人数 1明经币 +1 收起 理由
bzhjl + 1 赞一个!

查看全部评分

发表于 2013-6-10 11:05:40 | 显示全部楼层
对天正的引出标注的文字无效的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 18:25 , Processed in 0.198861 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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