![]() |
Расчет объёмов на питоне
Добрый день!
На примере канавы, создаю свою конструкцию на питоне. код вот такой: Код:
Проблема в том, что вышеуказанный код вычисляет площадь канавы без учёта возможных переломов земли. Не могу понять как это реализовать, помогите пожалуйста. |
Добрый день!
В Вашем случае, вам необходимо сначала построить общий контур канавы, без учёта пересечения с землёй, а после вычесть из Вашего контура контур линии земли. Для стандартных операций пересечения двух контуров, таких как разность, объединение и пересечение Вы можете воспользоваться встроенными методами класса CrsSemanticConstruction - Difference, Union, Intersect соответственно. Вам необходимо наследовать Вашу конструкцию от CrsSemanticConstruction. Код будет выглядеть примерно так: Код:
|
Добрый день!
Спасибо за развернутый ответ. Скажите а можно ли как-то производить отладку модулей написанных на питоне? |
К сожалению возможности отладки конструкций, написанных на питоне немного ограничены. Мы обычно используем для отладки исключения или логирование в консоль.
|
Может быть тогда возможно разрабатывать аналогичные конструкции на c#?
|
Добрый день!
Сейчас такой возможности нет, мы постараемся предусмотреть это в следующих версиях. В новых версиях также добавлена возможность проектировать конструкции непосредственно в окне поперечника, не используя языки программирования, такие как python. Возможно это будет даже удобнее, для простых случаев. |
Добрый день!
Скажите, после использования моей конструкции на питоне в каком-либо проекте Робур, если я хочу передать этот проект другому человеку (на другой компьютер или даже в другую организацию), мне необходимо передатвать ему так-же мой файл(ы) с конструкциями на питоне? |
Добрый день!
Да, сейчас это необходимо. |
Добрый день!
Можно ли посчитать объем между конструкцией и контуром на питоне? Конструкция у меня задана так: Код:
|
Добрый день!
Да, это возможно. У Вашей конструкции на языке python, которая должна быть унаследована от CrsSemanticConstruction или его наследников, есть методы - которые позволяют Вам получить результат пересечения многоугольников. В методе OnCreateVolumes Вы должны для каждого CrsContour внутри self.__construction вызвать метод Intersect, который вернёт Вам один или несколько контуров пересечения и Вашего контура и контура внутри конструкции. Затем Вам необходимо создать CrsVolume и добавить его в Вашу конструкцию. |
Часовой пояс GMT +3, время: 4:39. |
vBulletin v3.0.7 , Copyright ©2000-2023, Jelsoft Enterprises Ltd.
Copyright © 2003-2023, НПФ "ТОПОМАТИК".