![]() |
|
#1
|
|||
|
|||
![]() Я хочу ведомость отметок как мне надо выгрузить. Не поняла, где пикетаж взять по главному пути.
а еще есть какие-то ункции, чтобы габарит считать или междупутья? Последний раз редактировалось maruza, 09-19-2012 в 14:04. |
#2
|
|||
|
|||
![]() Прошу прощения за ожидание!
1. Пикетаж можно получить у подобъекта (Класс Alignment из сборки Topomatic.Alg.dll) свойство alignment.Stationing. Как пользоваться пикетажом описано в 6 примере в руководстве разработчика Topomatic AP3. Также Вы можете просмотреть свойства и иерархию классов, открыв эту сборку, например, в Visual Studio. В ближайшее время будет будет выпущена подробная документация с описанием классов и их методов и свойств основных библиотек нашей платформы - API (сейчас она в "зародышевом" состоянии topomatic_ap3_api.pdf) 2. Так как в данный момент на новой платформе выпущены только "Robur Изыскания" без станционного и ж/д функционала, то в Вашем модуле необходимо явно задавать имя подобъекта главного пути, тогда по этому имени можно получить сам Alignment. Если Вы пишете на Visual Studio (С#), то: a) Надо получить объект открытого проекта (и проверить на null): var pr = ApplicationHost.Current.ActiveProject as ICoreProject; б) Получить его список моделей: var models = pr.FindItem(new Guid("30061C68-0D76-4a29-BF5C-B5ECADBCA3FE")) as ICoreCollection; в) А затем, навигацию до узла проекта нужного подобъекта осуществлять с помощью классов CoreDirectoryInfo / CoreFileInfo г) Получить подобъект по найденному элементу проекта (типа ICoreCollectionItem) надо так: var alignment = ((IAlignmentContainer)сoreCollectionItem.WrappedOb ject).Alignment as Alignment; На словах несколько мудрёно, но мы, наверное, сделаем такую сниппет-функцию для разработчиков, чтобы они использовали ее. CoreFileInfo и другие классы работы с деревом проекта описаны в сборках Topomatc.Core.dll и Topomatc.Core.ServiceClasses.dll - если что, спрашивайте! 3. Габарит до пути (расстояние по касательной до оси трассы) можно посчитать с помощью функции подобъекта alignment.Plan.CompoundLine.PosToStaOffset, только нужно не забыть, если нужно, учесть, ширину коли и по какому рельсу снят подобъект в кривых и т.п. 4. Междупутья рассчитываются сложнее, чем габарит, так как нужно найти минимальное расстояние от одного подобъекта до другого на определенном пикете - т.е., например, вычислять его половинным делением или другим способом, используя фнункции StaOffsetToPos и PosToStaOffset также можно использовать и математику Robur - если интересно - напишу подробно. Тимофей. |
#3
|
|||
|
|||
![]() Подскажите, можно ли из var pr = ApplicationHost.Current.ActiveProject as ICoreProject напрямую получить Topomatic.Dtm.Core.TerrainModels?
|
#4
|
|||
|
|||
![]() Добрый день!
Для этого Вы можете вызвать у него метод FindItem() и передать туда Guid этой коллекции. var terrains = pr.FindItem(new Guid("2986169F-A8D6-40d9-9329-1975F215E5B8")) as TerrainModels. Отмечу, что использование ссылок на Topomatic.Dtm.Core это не очень хорошая практика. Лучше не допускать перекрестных ссылок между модулям и не ссылаться на такие модули как как Topomatic.*.Core и Topomatic.*.Controller. Исключение составляют модули Topomatic.Core и Topomatic.Alg.Core. Если Вам необходимо создать новую поверхность или получить список всех поверхностей, лучше воспользоваться методами представленными в классе Topomatic.Alg.Runtime и использовать следующий код для создания новой поверхности: Код:
Или такой, для возврата списка всех поверхностей: Код:
|
#5
|
|||
|
|||
![]() Чем отличаются models.Collections и models.ItemList и почему в первой нет геологии?
|
#6
|
|||
|
|||
![]() ItemList - свойство класса FolderItem - это список всех элементов, включенных в эту папку в проекте.
Collections - свойство класса FileItemCollectionGroup, который наследуется от FolderItem - это список коллекций, включенных в папку в проекте. Фактически Collections это Код:
В структуре ядра 15 версии существуют как отдельные элементы, так и элементы-коллекции. Последние поддерживают возможность создания внутри себя элементов определенного типа, например коллекция поверхностей - позволяет создавать поверхности. Поскольку геология не является коллекцией, т.е. не может создавать внутри себя элементы, она не отображается в свойстве Collections. Обычно работа напрямую с коллекциями Вам не требуется, исключением является поиск или создание элемента. |
Навигация по основному сайту |
Главная | Каталог продуктов и услуг | Где купить | Сопровождение |
Вакансии | О компании | Обзоры | Канал на YouTube |