katamoto 发表于 2017-10-15 23:05:19

已有文字如何更改样式,从standard到songti

cad图形里面有几个样式,现在有些文字是standard样式,希望更换为已有的songti样式如何更改?

我知道更改当前样式为(setvar "textstyle" "songti"),但就是不知道选择图元后如何更改他的样式

(setq en (entsel "select:"))
....

evayleung 发表于 2017-10-16 00:19:48

本帖最后由 evayleung 于 2017-10-16 00:31 编辑

(defun c:tt ()
      (setq i 0)
      (setq ss (ssget '((-4 . "<OR") (0 . "MTEXT")
            (0 . "TEXT")
            (-4 . "OR>")
          )
      )
      )
      (repeat (sslength ss)
      (vla-put-StyleName (vlax-ename->vla-object (ssname ss i)
          ) "songti"
      )
      (setq i (1+ i))
      )
)

xinxirong 发表于 2017-10-16 09:10:46

这样肯定有考虑不周的地方,比如多行文字、块内文字、属性。。。。

katamoto 发表于 2017-10-18 09:40:47

xinxirong 发表于 2017-10-16 09:10
这样肯定有考虑不周的地方,比如多行文字、块内文字、属性。。。。

嗯,我主要是学习代码,我来改细节也可以的。后来改组码也实现了。不过evayleung也解决了问题。

katamoto 发表于 2017-10-18 09:42:22

evayleung 发表于 2017-10-16 00:19


上面的功能也可以用(setq ss (ssget '((1 . "*TEXT"))))来处理。

下面的话方式我收藏了,谢谢大神。

evayleung 发表于 2017-10-20 23:36:13

katamoto 发表于 2017-10-18 09:42
上面的功能也可以用(setq ss (ssget '((1 . "*TEXT"))))来处理。

下面的话方式我收藏了,谢谢大神。

太客气了,我也只是个搬运工。

katamoto 发表于 2017-12-2 17:29:37

evayleung 发表于 2017-10-20 23:36
太客气了,我也只是个搬运工。
你好大神,请问如何把当前字体从Standard设置为我自己定义的 ziti0然后我后面写入的text都是用的ziti0

renhaitao_nice 发表于 2017-12-2 20:21:19

(command "-style""ziti0" "宋体" 10 1 0 "n" "n" "")用于新建字形并置为当前。要更改已经创建的文字,需要获取其组码,7对应的是文字样式,需要置换为(7.“ziti0”)

katamoto 发表于 2017-12-2 23:49:29

renhaitao_nice 发表于 2017-12-2 20:21
(command "-style""ziti0" "宋体" 10 1 0 "n" "n" "")用于新建字形并置为当前。要更改已经创建的文字,需 ...

这句话在我电脑里面执行错误,我到网上搜索了下, 很多都是某些电脑能执行,很多却不能。
我现在自己解决了我电脑上设置当前为宋体的语句。见下:

        (vl-load-com) (setvar "osmode" 0)
        (Setq TextStyle (vla-add (vla-get-TextStyles (vla-get-activedocument (vlax-get-acad-object))) "songti"))
        (vla-SetFont TextStyle "宋体" :vlax-false :vlax-false 1 0)
        (setvar "textstyle" "songti")
页: [1]
查看完整版本: 已有文字如何更改样式,从standard到songti