Не правильно создается шрифт текста Мультивыноски

Автор Тема: Не правильно создается шрифт текста Мультивыноски  (Прочитано 9914 раз)

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

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

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

  • ADN OPEN
  • Сообщений: 47
  • Карма: 1
Добрый день! Помогите разобраться, что в коде неправильно? Создаю новый стиль мультивыноски, задаю шрифт текста МText, но в автокаде при запуске команды Мультивыноска создается с другим шрифтом. Где я ошибся в коде?

Код - C# [Выбрать]
  1. public void CreatingMleaderStyle()
  2.         {
  3.  
  4.             using (Transaction tr = db.TransactionManager.StartTransaction())
  5.             {
  6.                 DBDictionary mleaderStylesDict = tr.GetObject(db.MLeaderStyleDictionaryId, OpenMode.ForRead) as DBDictionary;
  7.                 const String mleaderStyleName = "Мультивыноски";
  8.                 MLeaderStyle mleaderStyle;
  9.                
  10.                 if (mleaderStylesDict.Contains(mleaderStyleName))
  11.                 {
  12.                     mleaderStyle = (MLeaderStyle)tr.GetObject((ObjectId)mleaderStylesDict[mleaderStyleName], OpenMode.ForWrite);
  13.                     mleaderStyleId = mleaderStylesDict.GetAt(mleaderStyleName);
  14.                 }
  15.                 else
  16.                 {
  17.                     mleaderStyle = new MLeaderStyle();
  18.                     mleaderStyle.ContentType = ContentType.MTextContent;
  19.                     mleaderStyle.TextAlignmentType = TextAlignmentType.LeftAlignment;
  20.                     mleaderStyle.TextAttachmentType = TextAttachmentType.AttachmentMiddleOfTop;
  21.                     mleaderStyle.TextAngleType = TextAngleType.HorizontalAngle;
  22.                     mleaderStyle.TextAttachmentDirection = TextAttachmentDirection.AttachmentHorizontal;
  23.                     mleaderStyle.EnableFrameText = false;
  24.                     mleaderStyle.ArrowSize = 2;
  25.                     mleaderStyle.Annotative = AnnotativeStates.True;
  26.                     mleaderStyle.LeaderLineTypeId = db.ByBlockLinetype;
  27.                     mleaderStyle.LeaderLineType = LeaderType.StraightLeader;
  28.                     mleaderStyle.LandingGap = 0.1;
  29.                     mleaderStyle.DoglegLength = 0.1;                    
  30.                     mleaderStyle.MaxLeaderSegmentsPoints = 2;
  31.                     mleaderStyle.BreakSize = 2;
  32.                     ObjectId textStyleId = ObjectId.Null;
  33.                     TextStyleTable tst = (TextStyleTable)tr.GetObject(db.TextStyleTableId, OpenMode.ForWrite);
  34.                     TextStyleTableRecord textStyle = new TextStyleTableRecord();
  35.                     textStyle.Name = "ISOCPEUR";
  36.                     textStyle.FileName = "isocpeur.ttf";
  37.                     textStyle.XScale = 1;
  38.                     if (!tst.Has(textStyle.Name))
  39.                     {                        
  40.                         tst.Add(textStyle);
  41.                         tr.AddNewlyCreatedDBObject(textStyle, true);
  42.                     }
  43.                     textStyleId = tst[textStyle.Name];
  44.                     mleaderStyle.TextStyleId = textStyleId;
  45.                     mleaderStyle.TextAlignAlwaysLeft = false;                    
  46.                     mleaderStyle.TextHeight = 1.5;
  47.                     mleaderStyleId = mleaderStyle.PostMLeaderStyleToDb(db, mleaderStyleName);
  48.                     tr.AddNewlyCreatedDBObject(mleaderStyle, true);
  49.                     mleaderStyleId = mleaderStylesDict.GetAt(mleaderStyleName);
  50.                     db.MLeaderstyle = mleaderStyleId;
  51.                 }              
  52.                 tr.Commit();
  53.             }
  54.         }




Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1116
  • Карма: 173
ИМХО проблема именно в настройках текстового стиля. Я тут как-то задавал подобные вопросы по настройке текстовых стилей с ttf-шрифтами, решение нашел, но половину в нем не понял.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

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

  • ADN OPEN
  • Сообщений: 47
  • Карма: 1
Можете поделиться этим решением?

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1116
  • Карма: 173
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!


Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1116
  • Карма: 173
Я просто помню свои муки по созданию и настройке текстового стиля с ttf, особенно Bold / Italic / BoldItalic
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Отмечено как Решение zr74 16-12-2022, 12:07:26

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

  • ADN OPEN
  • Сообщений: 47
  • Карма: 1
Сам нашел решение.
Код - C# [Выбрать]
  1. ml.ContentType = ContentType.MTextContent;
  2. var mt = new MText();
  3. mt.Contents = _contents;
  4. mt.TextStyleId = ml.TextStyleId;
  5. ml.MText = mt;
  6.