Инструменты пользователя

Инструменты сайта


developers:tutorial:crsselection

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
developers:tutorial:crsselection [2022/08/11 19:19]
proxor
developers:tutorial:crsselection [2022/08/12 08:51] (текущий)
proxor [Расчёт площади контуров конструкции поперечного профиля]
Строка 44: Строка 44:
  
   * [[developers:​references:​topomatic.alg|Topomatic.Alg.dll]] - базовые классы подобъектов   * [[developers:​references:​topomatic.alg|Topomatic.Alg.dll]] - базовые классы подобъектов
 +  * [[developers:​references:​topomatic.alg.model|Topomatic.Alg.Model.dll]] - возможность использования класса [[developers:​references:​topomatic.alg.model.alignmentactivitymanager|AlignmentActivityManager]] для получения индекса текущего поперечного профиля
   * [[developers:​references:​topomatic.cad.foundation|Topomatic.Cad.Foundation.dll]] - базовые математические типы и операции   * [[developers:​references:​topomatic.cad.foundation|Topomatic.Cad.Foundation.dll]] - базовые математические типы и операции
   * [[developers:​references:​topomatic.cad.view|Topomatic.Cad.View.dll]] - элемент управления для отображения слоёв моделей   * [[developers:​references:​topomatic.cad.view|Topomatic.Cad.View.dll]] - элемент управления для отображения слоёв моделей
Строка 106: Строка 107:
 В этом примере рассчитаем сумму площадей контуров конструкции поперечного с введённым пользователем кодом. В этом примере рассчитаем сумму площадей контуров конструкции поперечного с введённым пользователем кодом.
  
-В отличии от предыдущего примера,​ доступ к элементам конструкции поперечного профиля мы осуществим не через набор объектов текущего видового экрана,​ а через контекст конструирования поперечного профиля. Для получения контекста воспользуемся ​методом [[developers:​references:​topomatic.alg.crs.corridor.createdesigncontext_system.double|CreateDesignContext()]] класса [[developers:​references:​topomatic.alg.alignment.corridor|Corridor]]. ​В качестве аргумента этот метод принимает расстояние от начала пути до створа ​поперечного профиля. Чтобы ​получить это значение для текущего поперечника нужно получить наблюдателя ([[developers:​references:​topomatic.crs.icrsbuilderlistener|ICrsBuilderListener]]) с помощью свойства [[developers:​references:​topomatic.alg.crs.corridor.listener|Listener]] класса ​[[developers:​references:​topomatic.alg.alignment.corridor|Corridor]]. Значение ​свойства [[developers:​references:​topomatic.crs.icrsbuilderlistener.station|Station]] у [[developers:​references:​topomatic.crs.icrsbuilderlistener|ICrsBuilderListener]] вернёт значение расстояния от начала пути то створа текущего поперечного профиля. Получив контекст мы можем найти среди его элементов контуры при помощи метода [[developers:​references:​topomatic.crs.templates.crscontainer.findcontour_system.int32|FindContour()]],​ передав указанный код в качестве аргумента.+В отличии от предыдущего примера,​ доступ к элементам конструкции поперечного профиля мы осуществим не через набор объектов текущего видового экрана,​ а через контекст конструирования поперечного профиля. Для получения контекста воспользуемся ​свойством [[developers:​references:​topomatic.alg.crs.corridor.item_system.int32|Item[Int32] ​]] класса [[developers:​references:​topomatic.alg.alignment.corridor|Corridor]]. ​Индекс текущего поперечного профиля получим через свойство [[developers:​references:​topomatic.alg.model.alignmentactivitymanager|CurrentSection]] менеджера активности подобъекта ([[developers:​references:​topomatic.alg.model.alignmentactivitymanager|AlignmentActivityManager]]). [[developers:​references:​topomatic.alg.model.alignmentactivitymanager|AlignmentActivityManager]] получается с помощью ​свойства [[developers:​references:​topomatic.alg.runtime.serviceclasses.activealignmentreciver.manager|Manager ​]] класса ​[[developers:​references:​topomatic.alg.runtime.serviceclasses.activealignmentreciver|ActiveAlignmentReciver]]. Получив контекст мы можем найти среди его элементов контуры при помощи метода [[developers:​references:​topomatic.crs.templates.crscontainer.findcontour_system.int32|FindContour()]],​ передав указанный код в качестве аргумента.
 [[developers:​references:​topomatic.crs.templates.crscontour|CrsContour]] не содержит информации о занимаемой им площади. Чтобы получить площадь контура следует получить список его векторов и передать этот список в качестве аргумента методу [[developers:​references:​topomatic.cad.foundation.cadlibrary.polygonarea_system.collections.generic.ienumerable_1|PolygonArea()]] статического класса [[developers:​references:​topomatic.cad.foundation.cadlibrary|CadLibrary]]. [[developers:​references:​topomatic.crs.templates.crscontour|CrsContour]] не содержит информации о занимаемой им площади. Чтобы получить площадь контура следует получить список его векторов и передать этот список в качестве аргумента методу [[developers:​references:​topomatic.cad.foundation.cadlibrary.polygonarea_system.collections.generic.ienumerable_1|PolygonArea()]] статического класса [[developers:​references:​topomatic.cad.foundation.cadlibrary|CadLibrary]].
  
developers/tutorial/crsselection.1660245555.txt.gz · Последние изменения: 2022/08/11 19:19 — proxor