Сообщество программистов Autodesk в СНГ

ADN Club => Civil 3D API => Тема начата: simson43 от 18-11-2018, 20:11:43

Название: Объемы коридора
Отправлено: simson43 от 18-11-2018, 20:11:43
Здравствуйте.
Как можно найти объем коридора? есть конструктор. в чертеже называется assembly, кажется. дальше получил subassembly. добрался до его links, points. и дальше не могу ничего найти, при попытке попасть в коллекцию точек и вовсе фаталит. даже при отладке остановиться на коллекции точек и залезть в нее- фатал!там ли я копаюсь и возможно ли вообще это или нужны поверхности?
Спасибо
Название: Re: Объемы коридора
Отправлено: Дмитрий Загорулькин от 19-11-2018, 11:23:50
Думаю, что анализировать конструкцию - это не тот путь. Не до конца понимаю что требуется получить. Нужен полный объём всего объекта-коридора? Или объёмы выемки-насыпи? Или объёмы по материалам-пикетам? Если есть какой-то пример в DWG где есть нужные данные, например, в виде таблиц - поделитесь.
Название: Re: Объемы коридора
Отправлено: simson43 от 19-11-2018, 11:49:42
объёмы выемки-насыпи
это!

а объем материала и объем насыпи (условно) это не одно и то же?
Название: Re: Объемы коридора
Отправлено: Дмитрий Загорулькин от 19-11-2018, 12:51:16
а объем материала и объем насыпи (условно) это не одно и то же?
Как я понимаю - не одно и то же.
(https://i.postimg.cc/K1t2nxQZ/Volumes.png) (https://postimg.cc/K1t2nxQZ)
Посмотрите эту тему, там есть примеры кода для получения объёмов выемки-насыпи: http://adn-cis.org/forum/index.php?topic=8847.0
По материалам - пока вопрос открыт.
Название: Re: Объемы коридора
Отправлено: simson43 от 19-11-2018, 13:23:21
а ну да - Материалы нужны
я видел эту тему.. как то не утешающе(

тогда по поверхностям может проще высчитать?
Название: Re: Объемы коридора
Отправлено: Дмитрий Загорулькин от 19-11-2018, 13:47:02
тогда по поверхностям может проще высчитать?
Попробуйте. У поверхностей есть метод GetBoundedVolumes. Если надо найти объёмы между двумя поверхностями, можно построить поверхность объёмов (TinVolumeSurface) и получить нужные данные из её свойств.
Название: Re: Объемы коридора
Отправлено: simson43 от 19-11-2018, 13:48:30
попробую, спасибо

_____________________
я думал добравшись до линий конструкции смогу геометрически найти все что нужно. но то ли я не до тех линий добрался то ли у них просто нет нужных свойств.
Название: Re: Объемы коридора
Отправлено: simson43 от 10-12-2018, 11:04:49
Судя по ответу в параллельной теме вытащить объем материалов из коридора не получится? или не получится только по сечению?

У поверхностей есть метод GetBoundedVolumes.
а для CorridorSurface нет такого метода(

Если надо найти объёмы между двумя поверхностями, можно построить поверхность объёмов (TinVolumeSurface)
не могу разобраться как и из чего ее построить (опять же касаемо CorridorSurface)
Название: Re: Объемы коридора
Отправлено: Дмитрий Загорулькин от 10-12-2018, 11:18:55
Судя по ответу в параллельной теме вытащить объем материалов из коридора не получится? или не получится только по сечению?
Не получится вытащить объёмы по материалам. Только общие.
а для CorridorSurface нет такого метода(
не могу разобраться как и из чего ее построить (опять же касаемо CorridorSurface)
Да, я имел в виду TinSurface, а не CorridorSurface.
А что хранится в свойстве CorridorSurface.SurfaceId (http://Да, я имел в виду TinSurface, а не CorridorSurface.)?
Название: Re: Объемы коридора
Отправлено: simson43 от 10-12-2018, 15:23:11
я так полагаю той самой поверхности.
TinSurface.GetBoundedVolumes  считает объем между нулем и этой поверхностью?

как же все таки построить TinVolumeSurface?

и какие еще есть альтернативы подсчета объемов материалов?
Название: Re: Объемы коридора
Отправлено: simson43 от 10-12-2018, 15:32:08
TinVolumeSurface.Create так?
Название: Re: Объемы коридора
Отправлено: Дмитрий Загорулькин от 10-12-2018, 15:42:35
TinVolumeSurface.Create так?
Да, так. Но для построения поверхности объёмов нужны две TIN-поверхности (TinSurface) - базовая и та, с которой сравнивается базовая.
TinSurface.GetBoundedVolumes  считает объем между нулем и этой поверхностью?
Да, именно так.
я так полагаю той самой поверхности.
Какой той самой? Я настоятельно рекомендую проверить.
Название: Re: Объемы коридора
Отправлено: simson43 от 10-12-2018, 15:45:36
вроде разобрался.
той самой т е TinSurface или Surface можно из  CorridorSurface.SurfaceId получить
Название: Re: Объемы коридора
Отправлено: simson43 от 10-12-2018, 16:52:03
и какие еще есть альтернативы подсчета объемов материалов?

есть коридор построенный по конструктору. выудить бы как нибудь эти материалы
Название: Re: Объемы коридора
Отправлено: Дмитрий Загорулькин от 10-12-2018, 17:10:10
Ну так идея с поверхностями - не такая уж и плохая. Не получается?
Название: Re: Объемы коридора
Отправлено: simson43 от 10-12-2018, 22:06:05
пока не очень.. ну я что то нашел но не знаю что..
как работает этот метод TinVolumeSurface.Create?
типо интеграла?
просто, если так, то, если верхняя поверхность шире, то он до нуля в этом месте объем считает?
Название: Re: Объемы коридора
Отправлено: Дмитрий Загорулькин от 11-12-2018, 14:25:31
Мне сложно понять: как верхняя поверхность может быть шире нижней? На чём тогда находится слой материала, который эта поверхность ограничивает? В воздухе висит?
Название: Re: Объемы коридора
Отправлено: simson43 от 11-12-2018, 16:42:00
Представьте трапецию(поперечный разрез). Нужен объем между верхней широкой и нижней поуже плоскостями
Название: Re: Объемы коридора
Отправлено: Дмитрий Загорулькин от 11-12-2018, 16:48:36
Представил. Вот как я это вижу:
(https://i.postimg.cc/w1PKXprB/20181211.png) (https://postimg.cc/w1PKXprB)
Название: Re: Объемы коридора
Отправлено: simson43 от 11-12-2018, 16:57:03
Я вот тоже об этом подумал. Но не создатель конструктора(
Или можно боковые плоскости приделать базе?
Или я чего то не понимаю? В конструкторе каждая грань отдельная прямая. Соответственно поверхности создатся по отдельным отрезоякам видимо.
Название: Re: Объемы коридора
Отправлено: Дмитрий Загорулькин от 11-12-2018, 17:13:12
Соответственно поверхности создатся по отдельным отрезоякам видимо.
Сильно сомневаюсь. Надо проверять.
Название: Re: Объемы коридора
Отправлено: simson43 от 14-12-2018, 16:55:59
ну да, по поверхностям получилось. хотелось бы еще какие то попробовать альтернативные варианты.
Название: Re: Объемы коридора
Отправлено: simson43 от 16-12-2018, 21:46:50
а может можно создать тело из коридора? оттуда вытащить все объемы материалов
не нашел метода подобного
Название: Re: Объемы коридора
Отправлено: Дмитрий Загорулькин от 17-12-2018, 12:18:24
не нашел метода подобного
Я тоже не нашёл. Как вариант, можно попробовать взрывать коридор и смотреть объекты, которые получены после его взрыва. Но не факт, что там будет то что нужно.
Название: Re: Объемы коридора
Отправлено: simson43 от 17-12-2018, 12:49:06
выходит, что по поверхностям единственный нормальный вариант?
Название: Re: Объемы коридора
Отправлено: Дмитрий Загорулькин от 17-12-2018, 12:58:52
Я бы сказал, что нормального варианта вообще нет. По поверхностям - это пока что единственный более-менее адекватный обходной путь решения задачи.
Название: Re: Объемы коридора
Отправлено: simson43 от 17-12-2018, 22:27:34
Да, я это и имел ввиду) просто помягче выразился чтоб не обидеть сивилистов)
Удивлен на самом деле что нет api под эти задачи(