Изменение положения текста размера

Автор Тема: Изменение положения текста размера  (Прочитано 5293 раз)

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

Оффлайн Владимир ПАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 57
  • Карма: 3
Размеры уже получаются, но при близком расстоянии тексты соседних размеров наезжают друг на друга...
То же самое и с названиями близкорасположенных осей... есть ли способ программно разнести тексты размеров и названия осей в стороны? как это делается вручную после отрисовки этих элементов (как на втором рисунке вложений).

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Владимир П, Владимир П,
Это же обычная текстовая метка? Вот эта статья возможно поможет.

Оффлайн Владимир ПАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 57
  • Карма: 3
Владимир П, Владимир П,
Это же обычная текстовая метка? Вот эта статья возможно поможет.

Не понял. "обычная текстовая метка"? Может и обычная... Я вообще-то про ось (или размер) спрашивал. И про ее название (размерный текст), которые необходимо передвинуть отдельно от самой оси (размера). Как же добраться до этой метки, если у меня в коде создается только объект Grid?

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Владимир,
Можете кусок кода предоставить где вы это дело создаете? Так быстрее будет разобраться, так как готовых примеров у меня нет.

Оффлайн Владимир ПАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 57
  • Карма: 3
Владимир,
Можете кусок кода предоставить где вы это дело создаете? Так быстрее будет разобраться, так как готовых примеров у меня нет.

Ну, вот код... Средняя часть + завершающая строка - это практически про то, что изображено на картинке во вложении, а именно оси и верхняя цепочка размеров..

Код - C# [Выбрать]
  1.                  //Размер от шк. ст. оп. 0 до оси опирания ПС 0-1
  2.                 DetailCurve dCurve1 = null;
  3.                 DetailCurve dCurve2 = null;
  4.                 dCurve1 = document.Create.NewDetailCurve(document.ActiveView, geomLine);
  5.                 dCurve2 = document.Create.NewDetailCurve(document.ActiveView, geomLine1);
  6.  
  7.                 XYZ razm_l = new XYZ(endPoint.X, (yom - 8000) * ku, 0);
  8.                 XYZ razm_r = new XYZ(endP.X, (yom - 8000) * ku, 0);
  9.                 Line line = Line.CreateBound(razm_l, razm_r);
  10.  
  11.                 ReferenceArray refArray1 = new ReferenceArray();
  12.                 refArray1.Append(lineGrid0.Curve.Reference);
  13.                 refArray1.Append(lineGrid_opps.Curve.Reference);
  14.  
  15.                 document.Delete(dCurve1.Id);
  16.                 document.Delete(dCurve2.Id);
  17.  
  18.                 razm_l = new XYZ(endPoint.X, (yom - 9000) * ku, 0);
  19.  
  20.                 ReferenceArray refArray = new ReferenceArray();
  21.                 refArray.Append(lineGrid0.Curve.Reference);
  22. -----------------------------------------------------------------
  23.  
  24.                        //Оси опор и оси опирания ПС (продолжение)
  25. if (i != (matrixXSize - 1))//опоры и ПС кроме правого устоя
  26.                         {
  27.                             // остальные вертикальные оси опор
  28.                             n_op = (i + 1).ToString();
  29.                             double zaz = zazor / 2;
  30.                             if (i == matrixXSize - 2)
  31.                                 zaz = zazor;
  32.                             startPoint = new XYZ(m_matrixUV[i + 1, j].U + zaz, startPoint.Y, 0);
  33.                             endPoint = new XYZ(startPoint.X, endPoint.Y, 0);
  34.                             geomLine = Line.CreateBound(startPoint, endPoint);
  35.                             // Create a grid using the geometry line
  36.                             lineGrid = document.Create.NewGrid(geomLine);
  37.                             lineGrid.Name = "ось оп. " + n_op;
  38.  
  39.                             //Сбор Reference для цепочки размеров по осям опор
  40.                             dCurve2 = document.Create.NewDetailCurve(document.ActiveView, geomLine);
  41.                             razm_r = new XYZ(endPoint.X, (yom - 9000) * ku, 0);
  42.  
  43.                             refArray.Append(lineGrid.Curve.Reference);
  44.  
  45.                             document.Delete(dCurve2.Id);
  46.  
  47.                             // ось опирания ПС правая поперек (левая от оси опоры)
  48.                             stP = new XYZ(startPoint.X - zaz - os_opir * ku, (yom + 4000) * ku, 0);
  49.                             endP = new XYZ(stP.X, (yom - os_otstup) * ku, 0);
  50.                             geomLine = Line.CreateBound(endP, stP);
  51.                             // Create a grid using the geometry line
  52.                             lineGrid_opps = document.Create.NewGrid(geomLine);
  53.                             lineGrid_opps.Name = "ось опир. ПС" + i.ToString() + "-" + n_op;
  54.  
  55.                             //Размер от оси опоры до оси опирания ПС слева
  56.                             dCurve1 = document.Create.NewDetailCurve(document.ActiveView, geomLine);
  57.                             refArray1.Append(lineGrid.Curve.Reference);
  58.                             refArray1.Append(lineGrid_opps.Curve.Reference);
  59.                             document.Delete(dCurve1.Id);
  60.  
  61.                             if (i != matrixXSize - 2)
  62.                             {
  63.                                 // ось опирания ПС левая (правая от оси опоры)
  64.                                 stP = new XYZ(startPoint.X + zazor / 2 + os_opir * ku, (yom + 4000) * ku, 0);
  65.                                 endP = new XYZ(stP.X, (yom - os_otstup) * ku, 0);
  66.                                 geomLine = Line.CreateBound(endP, stP);
  67.                                 // Create a grid using the geometry line
  68.                                 lineGrid_opps = document.Create.NewGrid(geomLine);
  69.                                 lineGrid_opps.Name = "ось опир. ПС " + n_op + "-" + (i + 2);
  70.  
  71.                                 //Размер от оси опоры до оси опирания ПС слева
  72.                                 dCurve1 = document.Create.NewDetailCurve(document.ActiveView, geomLine);
  73.                                 refArray1.Append(lineGrid_opps.Curve.Reference);
  74.                                 document.Delete(dCurve1.Id);
  75.                             }
  76.  
  77. -------------------------------------------------------------------
  78.                 //создание цепочки размеров по осям опор и осям опираний ПС
  79.                 document.Create.NewDimension(document.ActiveView, line, refArray1);
  80.  

Только не ругайте за dCurve1, dCurve2... Понимаю, что они, вроде бы, лишние... Но тут мистика какая-то. Без них не работает... :-\
« Последнее редактирование: 06-10-2015, 16:22:54 от Владимир П »