明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3405|回复: 8

[求助]字体样式替换?

[复制链接]
发表于 2005-7-26 11:35:00 | 显示全部楼层 |阅读模式

我想把CAD图中的多种文字样式全部用一种新的文字样式替换,在lisp下如何编程实现?

请各位大哥帮忙!!!

发表于 2005-7-26 15:07:00 | 显示全部楼层

简单的小程序,试一下吧

(defun c:cc(/)
  (setq b1 (getstring "请输入文字样式:"))
  (setq d2 (cons 7 b1))
  (setq ss (ssget "x" (list (cons 0 "TEXT"))))
  (setq n (sslength ss))
  (setq index 0)
  (repeat n
    (setq b1 (entget (ssname ss index)))
    (setq d1 (assoc 7 b1))
    (setq b3 (subst d2 d1 b1))
    (entmod b3)
    (setq index (+ index 1))
  )

(princ)
)

发表于 2005-7-26 15:12:00 | 显示全部楼层
如果把(setq ss (ssget "x" (list (cons 0 "TEXT"))))改成(setq ss (ssget "x" '((0 . "TEXT,MTEXT"))))那就连多行文本也能更改了!
 楼主| 发表于 2005-7-27 12:42:00 | 显示全部楼层

谢谢!!!

 楼主| 发表于 2005-7-27 15:31:00 | 显示全部楼层
再次请教,如何将图中所有字高为4的文本(text和Mtext)一次性选择,做如下修改:字高改为5,图层变为08层,用lisp如何编程实现?
发表于 2010-4-14 00:25:00 | 显示全部楼层

经常汇总来自各厂家的图纸,为字体都快烦死了!

这个程序太强了!

发表于 2010-4-14 01:17:00 | 显示全部楼层
  1. (defun c:TT (/ );假设08层存在
  2. (setq SS(ssget "_X" '((0 . "*TEXT") (40 . 4))))
  3. (repeat (setq I (sslength SS))
  4.   (setq DAT (entget (ssname SS (setq I (1- I)))))
  5.   (setq DAt (subst '(8 . "08") (assoc 8 DAT) DAT))
  6.   (setq DAT (subst '(40 . 5) (assoc 40 DAT) DAT))
  7.   (entmod DAT)
  8. )
  9. )
发表于 2023-2-6 15:20:14 | 显示全部楼层
这个程序好用
发表于 2024-1-8 08:57:23 | 显示全部楼层
如何修改文件中所有字体的宽高比呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 00:49 , Processed in 0.182723 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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