1. ;;说明:新建或设置字体样式-(by-小贱贱-QQ:369034346)
    2. ;;参数:styleName:字体样式名
    3. ;;参数:textFont:字体名
    4. ;;参数:Height:字体高度
    5. ;;参数:width:字体宽度因子
    6. ;;示例:(AddTextStyle "Standard" "宋体" 3 0.7)
    7. (defun AddTextStyle(styleName textFont Height Width)
    8. (setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object)))
    9. (if (setq bol (tblsearch "style" styleName))
    10. (setq acstyle (vla-Item (vla-get-TextStyles acdoc) styleName))
    11. (setq acstyle (vla-add (vla-get-TextStyles acdoc) styleName))
    12. )
    13. (vla-SetFont acstyle textFont :vlax-false :vlax-false 1 0)
    14. (vlax-put-property acstyle "Height" Height)
    15. (vlax-put-property acstyle "Width" Width)
    16. (setvar "TEXTSTYLE" styleName)
    17. (if bol
    18. (vla-regen acdoc acAllViewports)
    19. (setvar "TEXTSTYLE" styleName)
    20. )
    21. (prin1)
    22. )
    23. ;新建体样式
    24. (defun c:tt1 ()
    25. (setq textstyles (vla-add (vla-get-TextStyles (vla-get-ActiveDocument (vlax-get-acad-object))) "宋 宽0.7 高3"))
    26. (vla-SetFont textstyles "宋体" :vlax-false :vlax-false 1 0)
    27. (vlax-put-property textstyles "Height" 3)
    28. (vlax-put-property textstyles "Width" 0.7)
    29. (setvar "TEXTSTYLE" "宋 宽0.7 高3")
    30. )
    31. ;设置当前字体样式
    32. (defun c:tt2 ()
    33. (setq textstyles (vla-get-ActiveTextStyle (vla-get-ActiveDocument (vlax-get-acad-object))))
    34. (vla-SetFont textstyles "黑体" :vlax-false :vlax-false 1 0)
    35. (vlax-put-property textstyles "Height" 3)
    36. (vlax-put-property textstyles "Width" 0.7)
    37. (command "REGEN")
    38. )
    1. ;(EF:Style-CreatFontEx "字体名" "宋体" nil 1.0 0.0
    2. ;创建字体样式
    3. (defun EF:Style-CreatFontEx (sStyleName ;样式名
    4. sFont ;西文字体 TrueType字体
    5. sBigFont ;大字体 TrueType是否粗体
    6. fWidth ;宽度比例
    7. fObliquity ;倾斜角度
    8. /
    9. TextStyles TextStyle
    10. )
    11. ;;造字型
    12. (setq TextStyles (vla-get-TextStyles (vla-get-ActiveDocument (vlax-get-acad-object))))
    13. (if (tblobjname "style" sStyleName)
    14. (setq TextStyle (vla-item TextStyles sStyleName))
    15. (setq TextStyle (vla-add TextStyles sStyleName))
    16. )
    17. (if (or (findfile (strcat sFont ".SHX")) ;shx字体
    18. (and (vl-filename-extension sFont)
    19. (= (strcase (vl-filename-extension sFont)) ".SHX")
    20. )
    21. )
    22. (apply 'or
    23. (mapcar '(lambda (e)
    24. (vl-catch-all-error-p (vl-catch-all-apply (car e) (list TextStyle (cadr e))))
    25. )
    26. (list (list 'vla-put-FontFile sFont)
    27. (list 'vla-put-BigFontFile sBigFont)
    28. (list 'vla-put-ObliqueAngle fObliquity)
    29. (list 'vla-put-Width fWidth)
    30. )
    31. )
    32. )
    33. (progn
    34. (vla-setFont TextStyle sFont (if (equal sBigFont T) :vlax-true :vlax-false) :vlax-false 1 0)
    35. (vl-catch-all-apply 'vla-put-ObliqueAngle (list TextStyle fObliquity))
    36. (vl-catch-all-apply 'vla-put-Width (list TextStyle fWidth))
    37. )
    38. )
    39. )