dimStyle.Dimtfill

Автор Тема: dimStyle.Dimtfill  (Прочитано 3048 раз)

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

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

  • ADN OPEN
  • ***
  • Сообщений: 162
  • Карма: 6
dimStyle.Dimtfill
« : 04-01-2018, 00:52:20 »
Доброго вечера.
Создаю стиль для размера DimStyleTableRecord
Мне необходимо чтобы фон у текста отсутствовал


Выставляю в стиле
Код - C# [Выбрать]
  1. dimStyle.Dimtfill = 0;
По идее Текст должен быть без фона. Но фон у текста есть.
Можно выставить
Код - C# [Выбрать]
  1. dimStyle.Dimtfill = 2;
и задать цвет например прозрачный, но как задать прозрачный цвет не могу найти
Код - C# [Выбрать]
  1. dimStyle.Dimtfillclr = Clr.Color.FromColorIndex(?????);


Вот здесь по ссылке https://knowledge.autodesk.com/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/Creating-a-new-dimension-style-on-the-command-line.html
Написано что DIMTFILL     0     Text background enabled. Получается 0 включает фон.
Пробовал поставить -1; Ошибка

Если кто сталкивался с таким, прощу помощи.
Спасибо.







Отмечено как Решение RevitTormentor 04-01-2018, 10:22:59

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: dimStyle.Dimtfill
« Ответ #1 : 04-01-2018, 00:56:48 »
Написано что DIMTFILL     0     Text background enabled. Получается 0 включает фон.
Ничего не получается. DIMTFILL управляет появлением фона. https://knowledge.autodesk.com/support/autocad/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/AutoCAD-Core/files/GUID-4E38E29F-DE85-4791-A2E7-4DC22842B1B4-htm.html



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

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: dimStyle.Dimtfill
« Ответ #2 : 04-01-2018, 00:59:01 »
И вообще код нерабочий давай, а не эти обрывки.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 162
  • Карма: 6
Re: dimStyle.Dimtfill
« Ответ #3 : 04-01-2018, 01:59:17 »
Код - C# [Выбрать]
  1.  public static void CreateStyle()
  2.         {
  3.             using (Db.Transaction tr = db.TransactionManager.StartTransaction())
  4.             {
  5.                 ObjectId txtStyleId;
  6.                 TextStyleTable sourceTable = (TextStyleTable)tr.GetObject(db.TextStyleTableId, OpenMode.ForRead);
  7.                 TextStyleTableRecord textStyle = null;
  8.  
  9.                     Db.TextStyleTable tst = (Db.TextStyleTable)tr.GetObject(db.TextStyleTableId, Db.OpenMode.ForWrite);
  10.                     textStyle.Name = "Text";
  11.                     textStyle.FileName = "GOST type A.TTF";
  12.                     textStyle.ObliquingAngle = 15 * Math.PI / 180;
  13.                     textStyle.XScale = 0.75;
  14.                     tst.Add(textStyle);
  15.                     tr.AddNewlyCreatedDBObject(textStyle, true);
  16.                     txtStyleId = textStyle.ObjectId;
  17.                
  18.                 Db.DimStyleTable dst = (Db.DimStyleTable)tr.GetObject(db.DimStyleTableId, Db.OpenMode.ForWrite);
  19.                 Db.DimStyleTableRecord dimStyle = new Db.DimStyleTableRecord();
  20.                 dimStyle.Name = "Basic";
  21.  
  22.  
  23.                 Db.ObjectId lineTypeId = db.ByLayerLinetype;
  24.                 Clr.Color colorByLayer = Clr.Color.FromColorIndex(Clr.ColorMethod.ByLayer, 256);
  25.                 dimStyle.Dimclrd = colorByLayer;
  26.                 dimStyle.Dimltype = lineTypeId;
  27.                 dimStyle.Dimlwd = Db.LineWeight.ByLineWeightDefault;
  28.                 dimStyle.Dimdle = 2;
  29.                 dimStyle.Dimdli = 7;
  30.                 dimStyle.Dimsd1 = false;
  31.                 dimStyle.Dimsd2 = false;
  32.                 dimStyle.Dimclre = colorByLayer;
  33.                 dimStyle.Dimltex1 = lineTypeId;
  34.                 dimStyle.Dimltex2 = lineTypeId;
  35.                 dimStyle.Dimlwe = Db.LineWeight.ByLineWeightDefault;
  36.                 dimStyle.Dimse1 = false;
  37.                 dimStyle.Dimse2 = false;
  38.                 dimStyle.Dimexe = 1.25;
  39.                 dimStyle.Dimexo = 0;
  40.                 dimStyle.DimfxlenOn = false;
  41.                 dimStyle.Dimfxlen = 1;
  42.  
  43.  
  44.  
  45.                 Db.BlockTable bt = (Db.BlockTable)tr.GetObject(db.BlockTableId, Db.OpenMode.ForRead);
  46.                 dimStyle.Dimsah = true;
  47.                 dimStyle.Dimblk1 = Db.ObjectId.Null;
  48.                 dimStyle.Dimblk2 = Db.ObjectId.Null;
  49.                 dimStyle.Dimldrblk = Db.ObjectId.Null;
  50.                 dimStyle.Dimasz = 3;
  51.                 Int32 centerMarks = 1;
  52.                 Double centerMarksSize = 2.5;
  53.                 dimStyle.Dimcen = centerMarks * centerMarksSize;
  54.                 Db.RegAppTable regTable = (Db.RegAppTable)tr.GetObject(db.RegAppTableId, Db.OpenMode.ForRead);
  55.                 String xName = "cad_DSTYLE_DIMBREAK";
  56.                 if (!regTable.Has(xName))
  57.                 {
  58.                     regTable.UpgradeOpen();
  59.                     Db.RegAppTableRecord app = new Db.RegAppTableRecord();
  60.                     app.Name = xName;
  61.                     regTable.Add(app);
  62.                     tr.AddNewlyCreatedDBObject(app, true);
  63.                 }
  64.                 Db.ResultBuffer rb = new Db.ResultBuffer(new Db.TypedValue((Int32)Db.DxfCode.ExtendedDataRegAppName, xName),
  65.                     new Db.TypedValue((Int32)Db.DxfCode.ExtendedDataInteger16, 391),
  66.                     new Db.TypedValue((Int32)Db.DxfCode.ExtendedDataReal, 0.125));
  67.                 dimStyle.XData = rb;
  68.                 dimStyle.Dimarcsym = 0;
  69.                 dimStyle.Dimjogang = 90 * Math.PI / 180;              
  70.                 xName = "cad_DSTYLE_DIMJAG";
  71.                 if (!regTable.Has(xName))
  72.                 {
  73.                     regTable.UpgradeOpen();
  74.                     Db.RegAppTableRecord app = new Db.RegAppTableRecord();
  75.                     app.Name = xName;
  76.                     regTable.Add(app);
  77.                     tr.AddNewlyCreatedDBObject(app, true);
  78.                 }
  79.                 rb = new Db.ResultBuffer(
  80.                     new Db.TypedValue((Int32)Db.DxfCode.ExtendedDataRegAppName, xName),
  81.                     new Db.TypedValue((Int32)Db.DxfCode.ExtendedDataInteger16, 388),
  82.                     new Db.TypedValue((Int32)Db.DxfCode.ExtendedDataReal, 1.4995
  83.                 ));
  84.                 dimStyle.XData = rb;
  85.    
  86.                 dimStyle.Dimtxsty = txtStyleId;
  87.                 dimStyle.Dimclrt = Clr.Color.FromColorIndex(Clr.ColorMethod.ByAci, 256);
  88.                 dimStyle.Dimtfill = 0;
  89.                 dimStyle.Dimtfillclr = Clr.Color.FromColorIndex(Clr.ColorMethod.ByAci, 256);
  90.                 dimStyle.Dimtxt = 3.5;
  91.                 dimStyle.Dimfrac = 1;
  92.                 Boolean drawFrameAroundText = false;  
  93.                 dimStyle.Dimtad = 1;
  94.                 dimStyle.Dimjust = 0;
  95.                 dimStyle.Dimtxtdirection = true;
  96.                 dimStyle.Dimgap = 1 * (drawFrameAroundText ? -1 : 1);
  97.                 dimStyle.Dimtih = false;
  98.                 dimStyle.Dimtoh = false;
  99.                      
  100.                
  101.              
  102.                 dst.Add(dimStyle);
  103.                 tr.AddNewlyCreatedDBObject(dimStyle,true);
  104.                 tr.Commit();
  105.             }
  106.         }

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: dimStyle.Dimtfill
« Ответ #4 : 04-01-2018, 02:22:48 »
Это ты создаёшь размерный стиль, а не размер.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 162
  • Карма: 6
Re: dimStyle.Dimtfill
« Ответ #5 : 04-01-2018, 09:45:22 »
Да, всё верно (в моём представлении). Потом нахожу его и применяю
Код - C# [Выбрать]
  1. foreach (ObjectId id in symTable)
  2.                                 {
  3.                                     DimStyleTableRecord symbol = (DimStyleTableRecord)tr.GetObject(id, OpenMode.ForRead);
  4. ....
  5. _dim.DimensionStyle = id;
  6.  

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: dimStyle.Dimtfill
« Ответ #6 : 04-01-2018, 20:35:49 »
Установка размерного стиля размеру не приводит к замене всех установок размера.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение