Необычное поведение шрифта

Автор Тема: Необычное поведение шрифта  (Прочитано 6453 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Здравствуйте!

Столкнулся с непонятным поведением шрифта.
Создаю программно три текстовых стиля-все срабатывает, но текст, созданный с моим стилем отличается от точно такого же текста написанного стилем, созданным средствами самого автокада пользователем вручную . Все параметры стилей одинаковы, шрифт один и тот же. Есть маленькое различие, у стиля созданного кодом начертание становится Regular, но я его нигде не задаю, а при ручном создании стиля это поле выбора вообще неактивно. Как устранить разницу стилей(нужно чтобы было начертание как при ручном создании)?

Вот мой код:
Код - C# [Выбрать]
  1.     public class StyleCreator
  2.         {
  3.             [CommandMethod("nts")]
  4.             public static void CreateTextStyle()
  5.             {
  6.                 Document doc = Application.DocumentManager.MdiActiveDocument;
  7.                 Database db = doc.Database;
  8.                 Transaction tr = db.TransactionManager.StartTransaction();
  9.                 using ( tr )
  10.                 {
  11.                     TextStyleTable styleTable = (TextStyleTable) tr.GetObject(db.TextStyleTableId, OpenMode.ForWrite);
  12.                     if ( styleTable.Has("BasicText") == false )
  13.                     {
  14.                         TextStyleTableRecord textStyle = new TextStyleTableRecord();
  15.  
  16.                         textStyle.Name = "BasicText";
  17.                         textStyle.TextSize = 3.5;
  18.                         Autodesk.AutoCAD.GraphicsInterface.FontDescriptor fd =
  19.                             new Autodesk.AutoCAD.GraphicsInterface.FontDescriptor("Simplex", true, false, 0, 0);
  20.  
  21.                         textStyle.Font = fd;
  22.                         textStyle.XScale = 0.7;
  23.  
  24.                         styleTable.Add(textStyle);
  25.                         tr.AddNewlyCreatedDBObject(textStyle, true);
  26.                     }
  27.  
  28.                     if ( styleTable.Has("TitleText") == false )
  29.                     {
  30.                         TextStyleTableRecord titleTextStyle = new TextStyleTableRecord();
  31.  
  32.                         titleTextStyle.Name = "TitleText";
  33.                         titleTextStyle.TextSize = 7.5;
  34.                         Autodesk.AutoCAD.GraphicsInterface.FontDescriptor fd1 =
  35.                             new Autodesk.AutoCAD.GraphicsInterface.FontDescriptor("Simplex", true, false, 0, 0);
  36.  
  37.                         titleTextStyle.Font = fd1;
  38.                         titleTextStyle.XScale = 0.8;
  39.                         styleTable.Add(titleTextStyle);
  40.                         tr.AddNewlyCreatedDBObject(titleTextStyle, true);
  41.                     }
  42.  
  43.                     if ( styleTable.Has("SpecialSigns") == false )
  44.                     {
  45.                         TextStyleTableRecord slTextStyle = new TextStyleTableRecord();
  46.  
  47.                         slTextStyle.Name = "SpecialSigns";
  48.                         slTextStyle.TextSize = 3.5;
  49.                         Autodesk.AutoCAD.GraphicsInterface.FontDescriptor fd1 =
  50.                             new Autodesk.AutoCAD.GraphicsInterface.FontDescriptor("Times New Roman", false, false, 0,
  51.                                 0);
  52.  
  53.                         slTextStyle.Font = fd1;
  54.                         slTextStyle.XScale = 0.8;
  55.                         styleTable.Add(slTextStyle);
  56.                         tr.AddNewlyCreatedDBObject(slTextStyle, true);
  57.                     }
  58.  
  59.                     doc.Editor.Regen();
  60.  
  61.                     tr.Commit();
  62.                 }
  63.             }
  64.         }

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Необычное поведение шрифта
« Ответ #1 : 15-12-2018, 18:10:48 »
Atomohod,
А ты уверен, что у тебя правильным стилем Standart со шрифтом simplex.shx написан текст? Судя по картинке он скорее Arial или какой-то другой TTF-шрифт, но не simplex.shx
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Re: Необычное поведение шрифта
« Ответ #2 : 15-12-2018, 18:16:13 »
К сожалению, да. В обоих стилях стоит simplex.shx но выглядят они по разному.


Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Необычное поведение шрифта
« Ответ #3 : 15-12-2018, 18:17:17 »
К сожалению, да. В обоих стилях стоит simplex.shx но выглядят они по разному.
Выложи фрагмент чертежа с этими стилями и двумя текстами.
Вообще для shx-шрифта не нужен FontDescriptor. Его создают через прямое задание:
Код - C# [Выбрать]
  1. textStyle.FileName = "simplex.shx";
  2. textStyle.PriorSize = 0.2;              
  3. textStyle.ObliquingAngle = 0.0;
  4. textStyle.XScale = 1.0;
  5. textStyle.TextSize = 0.0;
  6. textStyle.IsVertical = false;
  7. textStyle.IsShapeFile = false;
 
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Re: Необычное поведение шрифта
« Ответ #4 : 15-12-2018, 18:19:40 »
Файл.

Отмечено как Решение Александр Ривилис 18-12-2018, 18:36:01

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Необычное поведение шрифта
« Ответ #5 : 15-12-2018, 18:26:44 »
Atomohod,
Прочитай исправленное моё предыдущее сообщение.




Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение