Увы и ах, понадобилось работать в ACAD2013 SP2 Eng / Rus, другой для этой задачи нет и не предвидится. Надо создать текстовый стиль, использующий ttf-шрифт. Шрифт гарантированно установлен в системе. Использую код из официальной документации:
-     [CommandMethod("UpdateTextFont")] 
-     public static void UpdateTextFont() 
-     { 
-       // Get the current document and database 
-       Document acDoc = Application.DocumentManager.MdiActiveDocument; 
-       Database acCurDb = acDoc.Database; 
-       // Start a transaction 
-       using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction()) 
-       { 
-         // Open the current text style for write 
-         TextStyleTableRecord acTextStyleTblRec; 
-         acTextStyleTblRec = acTrans.GetObject(acCurDb.Textstyle, OpenMode.ForWrite) as TextStyleTableRecord; 
-         // Get the current font settings 
-         Autodesk.AutoCAD.GraphicsInterface.FontDescriptor acFont; 
-         acFont = acTextStyleTblRec.Font; 
-         // Update the text style's typeface with "PlayBill" 
-         Autodesk.AutoCAD.GraphicsInterface.FontDescriptor acNewFont; 
-         acNewFont = new Autodesk.AutoCAD.GraphicsInterface.FontDescriptor("Arial", acFont.Bold, acFont.Italic, acFont.CharacterSet, acFont.PitchAndFamily); 
-         acTextStyleTblRec.Font = acNewFont; 
-         acDoc.Editor.Regen(); 
-         // Save the changes and dispose of the transaction 
-         acTrans.Commit(); 
-       } 
-     } 
Со страницы 
https://knowledge.autodesk.com/search-result/caas/CloudHelp/cloudhelp/2016/ENU/AutoCAD-ActiveX/files/GUID-DB668114-2395-43C6-858C-2F2514C4BF46-htm.html нашел примерные описания CharacterSet и PitchAndFamily (в ObjectARX SDK 2013 смотрел, но не обнаружил - может, плохо искал):
- ' CharSet parameter 
- Public Const ANSI_CHARSET = 0 
- Public Const DEFAULT_CHARSET = 1 
- Public Const SYMBOL_CHARSET = 2 
- Public Const SHIFTJIS_CHARSET = 128 
- Public Const OEM_CHARSET = 255 
-   
- ' Pitch Values 
- Public Const DEFAULT_PITCH = 0 
- Public Const FIXED_PITCH = 1 
- Public Const VARIABLE_PITCH = 2 
- ' Family Values 
- Public Const FF_DONTCARE = 0    '  Don't care or don't know. 
- Public Const FF_ROMAN = 16      '  Variable stroke width, serifed. 
- Public Const FF_SWISS = 32      '  Variable stroke width, sans-serifed. 
- Public Const FF_MODERN = 48     '  Constant stroke width, serifed or sans-serifed. 
- Public Const FF_SCRIPT = 64     '  Cursive, etc. 
- Public Const FF_DECORATIVE = 80 '  Old English, etc. 
- ' TrueType Flag 
- Public Const TMPF_TRUETYPE = &H4 ' c# -> 0x4 
Во-первых, я не очень понимаю, как высчитывается значение PitchAndFamily: в момент отладки значение от "исходного шрифта" равно 34. Это как? 32+2? А как же флаг TrueType?
И, во-вторых - и это самое главное! - если после UpdateTextFont вызывать окно настроек текстовых стилей, то ACAD тупо валится:
Сигнатура проблемы:
  Имя события проблемы:	APPCRASH
  Имя приложения:	acad.exe
  Версия приложения:	25.0.204.0
  Отметка времени приложения:	516ce058
  Имя модуля с ошибкой:	heidi11.dll
  Версия модуля с ошибкой:	11.0.55.0
  Отметка времени модуля с ошибкой:	4f3088ec
  Код исключения:	c000041d
  Смещение исключения:	00000000000319c5
  Версия ОС:	6.1.7601.2.1.0.256.48
  Код языка:	1049
  Дополнительные сведения 1:	fb82
  Дополнительные сведения 2:	fb82fab4641f8439d656a778ac384a64
  Дополнительные сведения 3:	a2f4
  Дополнительные сведения 4:	a2f482d8614c21cbae37285e17491effЧто и в каком месте я делаю не так? К сожалению, самостоятельно мозгов не хватает разобраться.