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

ADN Club => VBA => Тема начата: anatoly53 от 26-10-2021, 06:32:16

Название: Как создать объект PlaneSurface на VBA
Отправлено: anatoly53 от 26-10-2021, 06:32:16
Хочу построить поверхность по триангуляции.  Есть трехмерная полилиния с 3мя узлами. Преобразовать в PlaneSuface.
(https://i.postimg.cc/kBhjtL3n/image.png) (https://postimg.cc/kBhjtL3n)
Название: Re: Как создать объект PlaneSurface на VBA
Отправлено: trir от 26-10-2021, 07:43:38
Civil 3D
Название: Re: Как создать объект PlaneSurface на VBA
Отправлено: anatoly53 от 26-10-2021, 12:28:28
Спасибо, но мне нужно именно в Autocad и на VBA. Можно ли такие объекты програмно добавлять другими средствами? Через Lisp например?
Название: Re: Как создать объект PlaneSurface на VBA
Отправлено: trir от 26-10-2021, 13:07:54
http://entercad.ru/acadauto.en/ex_add3dface.htm
Название: Re: Как создать объект PlaneSurface на VBA
Отправлено: Александр Ривилис от 26-10-2021, 21:45:25
anatoly53,
PlaneSuface в чистом AutoCAD нет. Есть 3DFACE, PolyfaceMesh, PolygonMesh. Ну и кроме того ограничения VBA.
Название: Re: Как создать объект PlaneSurface на VBA
Отправлено: anatoly53 от 27-10-2021, 12:44:21
Спасибо. Жаль что програмно никак. Объект мне нужен для триангуляции, просуммировав все объекты, получил бы поверхность, а далее обрезка, суммирование...
Для моделирования пластовых месторождений со сложной тектоникой хороших программ пока нет. А ограниченное число скважин не позволяет получить однозначный результат.
Изолинии довольно хорошо показывают форму поверхности, но все же работа с поверхностями позволят строить разрезы секущими плоскостями.
(https://i.postimg.cc/JGh6Ppnt/image.png) (https://postimg.cc/JGh6Ppnt)
Здесь один слой, а их, в среднем 20. Такой сложный пирог...

(https://i.postimg.cc/qNDd1t4H/3d.png) (https://postimg.cc/qNDd1t4H)
Название: Re: Как создать объект PlaneSurface на VBA
Отправлено: trir от 27-10-2021, 13:14:09


Civil 3D хорошо работает с поверхностями (на видео - самописное)
Название: Re: Как создать объект PlaneSurface на VBA
Отправлено: anatoly53 от 27-10-2021, 13:44:23
Спасибо. Посмотрю, попробую разобраться. Пока вижу одно: нет тектоники и складчатости.  Я на уголь работаю с осадочными толщами Перми и у нас понамято...
Название: Re: Как создать объект PlaneSurface на VBA
Отправлено: trir от 27-10-2021, 13:46:09
могу посоветовать dotNET и BREP API
Название: Re: Как создать объект PlaneSurface на VBA
Отправлено: Nutson от 28-10-2021, 07:09:52
Посмотрите в документации.
Вот раздел по созданию поверхностей, следующий раздел по манипуляциям с ними

https://help.autodesk.com/view/CIV3D/2020/ENU/?guid=GUID-DED917B4-0038-4DA2-B726-8F67BAB63C0C (https://help.autodesk.com/view/CIV3D/2020/ENU/?guid=GUID-DED917B4-0038-4DA2-B726-8F67BAB63C0C)

Название: Re: Как создать объект PlaneSurface на VBA
Отправлено: Александр Ривилис от 28-10-2021, 14:53:52
anatoly53,
Кстати мне не понятно при чем здесь PlaneSurface - это плоская поверхность, а вам похоже нужна совсем не плоская...
Название: Re: Как создать объект PlaneSurface на VBA
Отправлено: anatoly53 от 01-11-2021, 08:58:21
Видите ли, Александр, у меня комплекс для геолога, занимающегося подсчетом запасов угольных месторождений. Хорошая связка Access Autocad. Работает с 2006г.
Нет пока хороших програм именно под уголь, поскольку своя специфика: Большие площади, пластовые тела, складки и нарушенность...
У меня все чертежи заточены под существующие стандарты.
Но геологические модели бывают столь сложными и разнообразными, что их отстраивать большая головная боль: нет однозначного решения, часто это субъективные решения. Программа построения изолиний по профилям (именно по профилям) хорошо себя показала. Но захотелось приблизиться к мировым стандартам и построить пластовые тела. Хотя это для нас не актуально, нужны лишь изогипсы пластов. Ведь и рельеф, отстроенный с помощью поверхности не даст той детальности, как изолинии. Все мы пользуемся топокартами и довольны.
Для понимания того, с чем мы работаем:
(https://i.postimg.cc/YhqKsWZR/image.png) (https://postimg.cc/YhqKsWZR)
Из серии таких разрезов/профилей создаем общую модель. Потом уголь выкопают и отвезут в домны, ТЭЦ и котельные. И будет свет, тепло и железо.
А, впрочем, Вы правы, можно и лофтингом обойтись. Сделаю несколько вариантов. Мне с секущими плоскостями нужно поработать,  а они только с поверхностями и телами, изогипсы не режут.
Название: Re: Как создать объект PlaneSurface на VBA
Отправлено: trir от 02-11-2021, 08:01:26
Цитировать
Ведь и рельеф, отстроенный с помощью поверхности не даст той детальности, как изолинии
чушь

Access плохо подходит - он не умеет работать с геометрией

Вот человек работает https://habr.com/ru/post/545878/
Название: Re: Как создать объект PlaneSurface на VBA
Отправлено: anatoly53 от 09-11-2021, 07:42:06
Вы уверены, что разбираетесь в информатике, геологии и геоинформационных системах?
Я занимаюсь сейчас подсчетом запасов угольных месторождений. А это сбор данных о литологии, химическом составе, статистическая обработка, стандартные чертежи разрезов, структурных планов, планов подсчетов запасов и таблицы запасов. И все по ГОСТам.
Связка через VBA Access и Autocad как нельзя лучше для этого подходят. Есть Micromine, Surpak... Но угольные месторождения имеют свою специфику, в отличие от рудных, Autocad - отличный вьювер для больших объемов данных.
Название: Re: Как создать объект PlaneSurface на VBA
Отправлено: trir от 09-11-2021, 11:41:42
Многие СУБД умеют хранить геометрию (https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F_%D0%B1%D0%B0%D0%B7%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85), Access не умеет
VBA в 2021 - это просто кровь из глаз, тот же C# гораздо приятнее
AutoCAD Map 3D умеет работать с геометрией в БД через FDO

Цитировать
Связка через VBA Access и Autocad
А как вы координаты пересчитываете?

Цитировать
Autocad - отличный вьювер для больших объемов данных
нет
Название: Re: Как создать объект PlaneSurface на VBA
Отправлено: anatoly53 от 10-11-2021, 08:06:04
Наверное, Вы правы, темный я. Координаты считаю через тригонометрию, где нужно. А так, у нас свои правила, еще в начале прошлого века сформированные. Главное, чтоб точность чертежей соответствовала требованиям.
Вот ссылка на доклад 10-летней давности с примерами исходных данных и выходных чертежей
 https://cloud.mail.ru/public/tmA1/uXAvoWZDt
Есть желание, можно в скайпе обсудить.

AcadMap я пробовал, но у меня были проблемы с ODBC. Access не везде доступ устанавливался,я ведь не профессионал в программировании. И потом, дорогая программа для предприятий. Autocad лицензионный приобретают все же.
P.S. Одно время сидел в одном кабинете с легендой программистов на Lisp, Александром Косовым. Но он по золоту работал, а я по углю. Увы, не долго... инфаркт его срубил. А программы его многие помнят и используют.
Название: Re: Как создать объект PlaneSurface на VBA
Отправлено: trir от 10-11-2021, 09:33:58
Цитировать
дорогая программа для предприятий
AutoCAD?

Цитировать
Координаты считаю через тригонометрию
я не про то спрашивал