明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: simpleye

[源码] 怎样改变文字字体

  [复制链接]
 楼主| 发表于 2013-3-13 18:39:21 | 显示全部楼层
呵呵,这些都试过啊~~感觉不快啊,麻烦
回复

使用道具 举报

 楼主| 发表于 2013-3-14 15:39:42 | 显示全部楼层
没人解决吗??恳请各位大位帮个忙了。。。
回复

使用道具 举报

 楼主| 发表于 2013-3-14 15:40:17 | 显示全部楼层
这个我修改图纸时用到挺多的。。。。
回复

使用道具 举报

发表于 2013-3-14 18:21:18 | 显示全部楼层
(defun c:KAt (/                myacad          mydoc            myms      newtext
              newfontfile          newbigfontfile      NEWSTR
              STR        ss          obj            POS              STRL
             );改变字体为楷件
  (vl-load-com)
  (setq myacad (vlax-get-acad-object))
  (setq mydoc (vla-get-activedocument myacad))
  (setq myms (vla-get-modelspace mydoc))
  (Setq newText (vla-add (vla-get-TextStyles mydoc) "楷体"))
  (setq newFontFile "C:\WINDOWS\Fonts/simkai.ttf")
  (vla-put-FontFile newText newFontFile)
  (prompt
    "\nSelect MTEXT OR TXT to be changed to <楷体 style>by 向赞扬"
  )
  (setq        ss (ssget '((-4 . "<or")
                    (0 . "TEXT")
                    (0 . "MTEXT")
                    (0 . "DIMENSION")
                    (-4 . "or>")
                   )
           )
  )
  (repeat (setq I (sslength SS))
    (setq OBJ (vlax-ename->vla-object (ssname SS (setq I (1- I)))))
    (setq objname (vla-get-ObjectName OBJ))
    (if        (or (= objname "AcDbMText") (= objname "AcDbText"))
      (progn
        (SETQ str (vla-get-TextString OBJ))
        (IF (WCMATCH STR "*;*")
          (PROGN (SETQ STRL (STRLEN STR))
                 (setq pos (vl-string-position 59 str))
                 (IF (/= STRL POS)
                   (SETQ POS (+ POS 2))
                 )
                 (SETQ NEWSTR (substr str pos (- STRL pos)))
                 (setq
                   NEWSTR
                    (strcat "{\\fKaiTi_GB2312|b0|i0|c134|p49;" NEWSTR "}")
                 )
                 (vla-put-TextString OBJ NEWSTR)
          )
        )
        (vla-put-StyleName OBJ "楷体")
      )
    )
    (if        (= objname "AcDbRotatedDimension")
      (vla-put-TextStyle OBJ "楷体")
    )
  )
)
我这个程序可以改变字体为楷体的!其它字体程序类似!
回复

使用道具 举报

发表于 2013-3-14 19:19:58 | 显示全部楼层
谢谢13楼楼主,代码收藏 了
回复

使用道具 举报

 楼主| 发表于 2013-3-14 21:27:45 | 显示全部楼层

14楼楼主按照您的程序我把它改成仿宋GB2312,转是转过来了,但是有个小问题,如上图?
前面的字不见了,而且双击编辑时,字是竖的。看了文字样式,字体名变成@仿宋GB2312

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

 楼主| 发表于 2013-3-14 22:35:06 | 显示全部楼层
问题解决了,我是用13楼的程序修改的。呵呵,谢谢各位了。
回复

使用道具 举报

发表于 2013-10-26 21:34:20 | 显示全部楼层
stripmtext
回复

使用道具 举报

发表于 2013-10-26 21:47:26 | 显示全部楼层

我教你一个方法,
1、打开属性面板(ctrl+1)
2、全选(ctrl+a)
3、在属性面板上面的下拉列表里选择文字对象
4、最好在属性面板里统一改文字样式就行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-26 07:27 , Processed in 0.173839 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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