明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: print1985

[源码] 文字刷-2021.11更新 刷相同文字 支持块中文字、单多行文字、天正文字

    [复制链接]
发表于 2012-9-13 13:00:32 | 显示全部楼层
本帖最后由 mentel 于 2012-9-13 13:05 编辑

不知道怎么下载

发表于 2012-9-14 03:27:42 | 显示全部楼层
天正文字无法刷 命令行提示:Automation 错误。未提供说明。
发表于 2012-9-14 08:17:42 | 显示全部楼层
本帖最后由 smartstar 于 2012-9-14 08:22 编辑

楼主有几个可以改进的地方

1、增加对转角标注的处理,修改如下:
       ①选集改成:
         (setq ss (ssget ":S" '((0 . "*TEXT,DIMENSION,TCH_DRAWINGNAME,TCH_ELEVATION,INSERT,ATTDEF,ATTRIB"))))
        ②点选选改成:
        (if (= (caar (setq ss_data (ssnamex ss 0))) 1)
          (progn                       ; 点选时
            (setq ent (ssname ss 0))
            (if        (= "DIMENSION" (setq entype (cdr (assoc 0 (entget ent)))))
              (setq  en1           ent
                    ob           (vlax-ename->vla-object en1)
              )
              (setq pt       (trans (cadr (last (car ss_data))) 0 1)
                    en1             (car (nentselp pt))
                    en1_data (entget en1)
                    entype   (cdr (assoc 0 en1_data))
                    ob             (vlax-ename->vla-object en1)
              )
            )
            (wenzishua entype ob source_text en1 ent)
            (princ)
          )

   ③wenzishua 函数 增加处理:
  (if (= "DIMENSION" (cdr (assoc 0 (entget ent))))
    (progn
      (vla-put-Textoverride ob source_text)
      (entupd en1)
      (entupd ent)
    )
  )
2,楼主可以添加对多行位子和标注文字提取后字符串的处理(tsrdel '(\P \A1";") source_text)))
(defun tsrdel (lst w_tsr)
  (foreach n lst
    (while (vl-string-search n w_tsr)
      (setq w_tsr (vl-string-subst "" n w_tsr))
    )
  )
  w_tsr
)
3,可能ark-nentsel 函数代替nentsel函数
(defun ark-nentsel (msg)
  (while
    (progn
      (setvar 'ERRNO 0)
      (setq sel (nentsel msg))
      (cond
        ((= 7 (getvar 'ERRNO))
         (princ "\n没有选中,请重新尝试!")
        )
        ((not sel)
         nil
        )
        ((listp sel)
         (setq en_data           (entget (car sel))
               source_text (cdr (assoc 1 en_data))
         )
         (if (null source_text)
           (princ "\n对象类型错误,请重新选择!")
         )
        )
      )
    )
  )
  sel
)

4,未能解决的问题:
      把块中转角标注刷文字后,当炸开块后,标注会变回原来的数值。希望楼主能够解决。

以上是个人愚见,若有不对的地方,请楼主包涵和指教。谢谢楼主这么好的程序。

发表于 2012-9-14 10:10:31 | 显示全部楼层
好好的东东。。。谢谢楼主分享。
发表于 2012-9-14 10:15:14 | 显示全部楼层
好东东,支持!
发表于 2012-9-14 10:23:22 | 显示全部楼层
在按下快捷键时,
添加一个选项:
1:右键确认,默认刷内容
2:按 N ,刷字高
.........
谢谢啊!
发表于 2012-9-14 14:29:17 | 显示全部楼层
先下来试试,并先谢谢楼主!
发表于 2012-9-14 14:30:32 | 显示全部楼层
先下来试试,并先谢谢楼主!
发表于 2012-9-14 22:53:17 | 显示全部楼层
支持天正文字,这个不错
发表于 2012-9-21 07:54:07 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-15 06:58 , Processed in 0.154962 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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