下面的這個LISP函數無法執行,提示"錯誤: Automation 錯誤。 文件處理器錯誤",求解決或者修改辦法(defun c:KAt (/ myacad mydoc myms newtextnewfontfile newbigfontfile NEWSTRSTR 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)))(setqNEWSTR(strcat "{\\fKaiTi_GB2312|b0|i0|c134|p49;" NEWSTR "}"))(vla-put-TextString OBJ NEWSTR)))(vla-put-StyleName OBJ "楷體")))(if (= objname "AcDbRotatedDimension")(vla-put-TextStyle OBJ "楷體"))))謝謝了
1 回答

開滿天機
TA貢獻1786條經驗 獲得超13個贊
(setq newFontFile "C:\WINDOWS\Fonts/simkai.ttf")
改為
(setq newFontFile "C:\\WINDOWS\\Fonts\\simkai.ttf")
或者
(setq newFontFile "C:/WINDOWS/Fonts/simkai.ttf")
添加回答
舉報
0/150
提交
取消