明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2811|回复: 5

请问除了change还有没有其他修改文字样式的命令?

[复制链接]
发表于 2012-3-15 08:24:29 | 显示全部楼层 |阅读模式
本帖最后由 arthwon 于 2012-3-15 08:25 编辑

想修改选择集里的文字的文字样式。
平时手工修改的时候,只要手动选择几个文字,然后在工具栏上选择文字样式就直接改好了,但是这个操作没有命令行。
后来查到change命令可以修改,但是一次只能处理一个文字对象!
不得已只能做了一个循环来一个个处理,但是效率太低了!!
请问要怎么能一次全部处理所有选择的文字对象?
  1. (if (setq ss         (ssget        "p"
  2.                         '((0 . "TEXT")
  3.                           (7 . "Standard")))
  4.           ss_num (- (sslength ss) 1)        ;计算文字选择集的图元个数,需减1,因为编号是从0开始
  5.     )
  6.   (progn
  7.     (while (>= ss_num 0)                ;如果编号大于等于0就一直循环处理
  8.       (setq ss_text (ssname ss ss_num))        ;将选择集的最后一个图元提取
  9.       (command "change" ss_text "" "" "" "TSSD_Rein" "300" "" "")
  10.                                         ;处理提取的图元,change函数只能一次处理一个图元
  11.       (setq ss_num (- ss_num 1))   ;编号减1以便处理下一个图元
  12.     )
  13.   )                                       
  14. )


发表于 2012-3-15 08:32:19 | 显示全部楼层
怎么效率低?
发表于 2012-3-15 08:42:12 | 显示全部楼层
不知道你说的效率低指的是什么?
 楼主| 发表于 2012-3-15 09:01:24 | 显示全部楼层
当文字对象有几千个时要循环几千次,当然效率低了。我实际处理一个图要好几秒钟。
而选择了几个对象后只要在工具栏上选择一下文字样式就完成,那就是一瞬间的事情。
所以对比后感觉change效率太低了。
 楼主| 发表于 2012-3-15 17:46:02 | 显示全部楼层
沉了,顶起继续求助啊。
有没有什么函数可以直接修改文字对象的文字样式??
发表于 2012-3-15 19:15:51 | 显示全部楼层
(setq s1 (car (entsel "\n选择: "))ob(vlax-ename->vla-object s1))
(vla-put-stylename ob "TSSD_Rein")
(vla-put-height ob 300)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-9-25 03:10 , Processed in 0.162601 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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