我有一个lisp例程,可以将字体从一种或多种类型更新为单一类型。
这是:
(vl-load-com)(defun c:TXSHX (/ new)(setq new "C:/Program Files/Autodesk/AutoCAD 2016/Fonts/simplex.shx")(vlax-map-collection(vla-get-textstyles(vla-get-activedocument(vlax-get-acad-object)))'(lambda (x / font)(setq font (strcase (vla-get-fontfile x)))(if (wcmatch font "simplex.ttf,simplex.shx,simplex._ttf,simplex._shx")(vla-put-fontfile x new))))(princ))
我不知道为什么,但它不起作用。我没有出错,也没有任何变化。我最初是从一个论坛帖子上得到这个例程的。我根据需要对其进行了修改,但它在其原始形式下仍具有功能
这是原件:
(vl-load-com)(defun c:updateTextstyles (/ new)(setq new (strcat (getenv "systemroot") "\\Fonts\\Arial.ttf"))(vlax-map-collection(vla-get-textstyles(vla-get-activedocument(vlax-get-acad-object)))'(lambda (x / font)(setq font (strcase (vla-get-fontfile x)))(if (wcmatch font "ROMANS.SHX,SIMPLEX.SHX,TXT.SHX")(vla-put-fontfile x new))))(princ))
我正在使用的图形文件有点奇怪,因为它们是从revit导出的。例如:样式表中的值将字体显示为“simplex_u.ttf”,但用户界面将字体显示为“simplex.shx”。重新选择单纯形。shx修复了样式表。我正在尝试将其自动化,但当我运行例程时,它并没有改变。