Перейти к публикации

Геометрия в CAD&CAE системах


Рекомендованные сообщения

Интересует как в подобных системах представляется/хранится геометрия моделей с использованием объектно-ориентированного подхода. Из каких геометрических сущностей состоит типичная трехмерная модель? Как можно представить их(сущности) в виде иерархического дерева (Entity Class->Edge class->Curve class etc.)? Как устанавливается зависимость геометрии от сетки КЭ, наложенной на неё(геометрию) и от визуализатора? Только не надо меня посылать к тяжеловесным OpenSource CAD движкам (таким как например OpenCascade,Salome смотрел без поллитра не разобратся). Есть ли где -нибудь простой 3D CAD Modeler по совместительству FEMesher с красивой и прозрачной ОО внутренней архитектурой, у которого можно было бы подсмотреть её и использовать в своем проекте. Или может кто -нибудь уже занимался чем-то подобным подскажите как правильно спроектировать её.

Ссылка на сообщение
Поделиться на других сайтах


Боюсь, что легкого пути не существует.

Попробуйте изучить документацию к API компаса - там есть описание структуры.

Ссылка на сообщение
Поделиться на других сайтах

Если не секрет зачем вам это надо? У вас есть стоящая идея для cad, которую имеет смысл начать самому и с нуля?

Ссылка на сообщение
Поделиться на других сайтах

Интересует как в подобных системах...

Я бы посоветовал почитать:

"OpenGL", Игорь Тарасов

<noindex>http://opengl.org.ru/books/open_gl/</noindex>

или

"DirectX - графика в проектах", Михаил Краснов.

На базе и DirectX и OpenGL можно вполне создать свой собственный САПР.

Вопрос - зачем?...

Ссылка на сообщение
Поделиться на других сайтах

Боюсь, что легкого пути не существует.

П

Я тоже так думаю что его нет, но все же надеюсь найти уже что то готовое, не слишком тяжелое, с красивой и понятной архитектурой, чтобы можно было легко разобратся в ней, модифицировать под свои нужны и внедрить у себя.

опробуйте изучить документацию к API компаса - там есть описание структуры.

Спасибо. Сылочкой не поделитесь?

Если не секрет зачем вам это надо? У вас есть стоящая идея для cad, которую имеет смысл начать самому и с нуля?

Есть.

На базе и DirectX и OpenGL можно вполне создать свой собственный САПР.

Конечно можно, но это вопросы визуализации, мне сейчас нужно разобраться с геометрией.

Вопрос - зачем?...

Для академических целей.
Ссылка на сообщение
Поделиться на других сайтах
  • 7 месяцев спустя...

Сорри за запоздалый ответ.

На русском языке выходила книжка Голованова "геометрическое моделирование". Это раньше был главный по 3D ядру в Асконе, сейчас может не так. В принципе из известных мне русскоязычных изданий это единственное, более менее отражающее современное состояние.

Так, информацию можно подчерпнуть в документации по ACIS или PARASOLID а также из 42 тома спецификаций ISO по STEP.

Была еще "Завьялов Леус Скороспелов" что-то там по сплайнам, но это скорее специализированный кад третьей четверти 20 века.

Искать информацию для CADостроения в книжках по DirectX и OpenGL, особенно в Тарасовской равносильно примерно попытке наладить производство автомобиля используя модель в 3DMAX для NeedForSpeed

Ссылка на сообщение
Поделиться на других сайтах

Так, информацию можно подчерпнуть в документации по ACIS или PARASOLID а также из 42 тома спецификаций ISO по STEP.

Максим, 42-й том, кстати, тот самый, который Вы мне подарили, я выложил в одной из тем в разделе "Трансляция, конвертация...". Я считаю так: то, что касается чисто геометрии, без всяких надстроек типа feature, зависимостей, параметризации и т.д., лучше всего изложено в 42 томе, он же ведь не просто так разрабатывался, а в нем обобщен опыт всех геометрических ядер.

А по поводу OpenGL и DirectX для геометрического моделирования - это все равно на основе MS Word делать СУБД (а что, там ведь вся необходимая базовая функциональность есть - и поиск, и ссылки, и сортировка, и таблицы).

Если практически - можно еще обратиться к OpenCascade, тем более, что он выложен в исходных текстах. Но что-нибудь там понять и тем более вытащить оттуда какие-то независимые работающие модули не получается - пробовали. Единственный реальный стиль работы с OpenCascade - это взять его целиком и делать на его основе какие-то свои надстройки.

мне сейчас нужно разобраться с геометрией.

Вообще-то я слышал, что Мелус говорил так: если Вы не можете вкладывать в разработку CAD миллионы долларов в год, то нечего этим заниматься.
Ссылка на сообщение
Поделиться на других сайтах

Никогда не заглядывал в исходники CAD-ов. Но ковыряние и попытка освоится с Pro/E, Inverter и Компас оставило глубокие впечатления...

Впечатление такое, что Pro/E строит геометрию рассечением пространства. Исходный объект - пространство. Инструмент работы с пространством - плоскость в 3D, прямая - в 2D (эскизе). При чём употребляется не "общематематическая" плоскость, но плоскость с чётко означенными сторонами (наверное чтобы в солиде сразу определять наружу и нутро).

После Pro/E Inverter и Компас дали ощущение, что всё рассыпалось на ТОЧКИ. Нет плоскостей - есть точки, на точках висят отрезки, на отрезках "натянуты" "плоскости". Доходит до того, что симметрию в эскизнике Компаса можно задать только от ОТРЕЗКА. А "прямые" рисуются и показываются, но они - в то же время как-бы и не существуют (к ним невозможно привязаться, размер поставить).

Думаю, что очень мало "специалистов" достаточно фундаментально понимают геометрию. Самые крутые уходят в "гиперпространства", а оставшиеся на вопрос "что такое прямой угол ?" отвечают - "это угол в 90°" (!!!) (А правильный ответ - "половина развёрнутого").

Ссылка на сообщение
Поделиться на других сайтах

Впечатление такое, что Pro/E строит геометрию рассечением пространства. Исходный объект - пространство. Инструмент работы с пространством - плоскость в 3D, прямая - в 2D (эскизе). При чём употребляется не "общематематическая" плоскость, но плоскость с чётко означенными сторонами (наверное чтобы в солиде сразу определять наружу и нутро).

После Pro/E Inverter и Компас дали ощущение, что всё рассыпалось на ТОЧКИ. Нет плоскостей - есть точки, на точках висят отрезки, на отрезках "натянуты" "плоскости". Доходит до того, что симметрию в эскизнике Компаса можно задать только от ОТРЕЗКА. А "прямые" рисуются и показываются, но они - в то же время как-бы и не существуют (к ним невозможно привязаться, размер поставить).

Скорее всего, это - просто особенности алгоритмов системы, а геометрические данные внутри у всех представлены примерно одинаково - в соответствии с advanced_boundary_representation. Возможно, что в Pro/E алгоритмы устроены так, что часть операций осуществляется над фасетной моделью, получаемой аппроксимацией точной твердотельной модели, естественно, с обязательной синхронизацией обоих моделей.
Ссылка на сообщение
Поделиться на других сайтах

примерно одинаково - в соответствии с advanced_boundary_representation

а кто ядростроителей ЗАСТАВЛЯЕТ ? Вроде-как информационный эквивалиент - координаты вершин ТО-ЛИ параметры уравнений плоскостей/граней. Во втором случае даже легче искать пересечения.

Да, ещё припоминаю, что Pro/E похоже хранит размеры в относительных (относительно ГАБАРИТОВ модели) величинах. (Но назначенные Юзером размеры то же как-то "непорочно/отдельно" хранит).

Ссылка на сообщение
Поделиться на других сайтах

Вы путаете тёплое с мягким. Эргономика CAD-системы и геометрическое ядро хоть и имеют некоторую связь, но, тем не менее, зависят от совершенно разных факторов.

Ядро это отдельный высокопроизводительный модуль, а CAD-система - по сути интерфейс, использующий наряду с другими ещё и геометрическое ядро. На PARASOLID построено множество продуктов, принципиально отличающихся друг от друга по концепции представления данных модели (возьмем к примеру T-Flex с его отдельным параметрическим ядром и SW).

Гранит и, скажем, Парасолид действительно ощутимо различаются, но пытаться оценить это используя интерфейс CAD-системы сравнимо с попыткой оценить двигатель самолёта разглядывая приборную панель.

advanced_boundary_representation это идеализированное общее представление, реально ядра могут отходить от него как добавляя дополнительные геометрические сущности так и, наоборот, не используя в представлении отдельные топологические элементы, которые считают избыточными (как это делает Гранит к примеру). Внутри ядра, да и внутри КАДа разработчики вольны использовать любые способы, облегчающие им жизнь, в том числе и отходить от стандартов обмена, поскольку во главу угла ставится производительность CAD-системы, точность представления модели и удобство системы для пользователя. Собственно, стоит отметить, основные трудности при конвертации как раз и возникают из-за этой разницы.

Ссылка на сообщение
Поделиться на других сайтах

... параметры уравнений плоскостей/граней. Во втором случае даже легче искать пересечения.

Вообще-то в компьютерной геометрии обычно используется параметрическое задание геометрических объектов, т.е. для объекта каждого типа существует функция evaluate (оценщик), которая по одному (для кривых) или двум (для поверхностей) параметрам возвращает координаты точки в декартовом пространстве. Тут применяется принцип полиморфизма, хотя это было реализовано в древних CAD еще до того, как был сформулирован принцип полиморфизма как одной из основ объектного подхода.

И все геометрические алгоритмы построены на функциях оценщика. По крайней мере, так было в Anvil, и, по-видимому, эти принципы сохранились до сих пор. Всякие концепции БЭФов, деревьев октантов и т.д. развития не получили.

Да, ещё припоминаю, что Pro/E похоже хранит размеры в относительных (относительно ГАБАРИТОВ модели) величинах. (Но назначенные Юзером размеры то же как-то "непорочно/отдельно" хранит).

А это уже - чисто специфика самой CAD-системы, не имеющая никакого отношения к геометрии.
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • lem_on
      ну с дуру известно что сломать можно.
    • Viktor2004
      руку привязки так сломать легко
    • lem_on
      По моему вполне логично если станок вывалится в ошибку если рука не доехала до места. У меня так же если кулачки или деталь на пути, просто пихаеш ее до места и станок опять активен. Но нынешние пановья даже не могут написать модель станка.
    • Viktor2004
      Я согласен что скорее всего проблема механическая Но если логика прописана криво и возможно не предусмотрела остановку в промежуточном состоянии, разве не логично будет попробовать принудительно подав напряжение дернуть эту руку вверх-вниз? Возможно то что туда попало выпадет  
    • Guhl
      Если оставить за скобками вопрото том, что до м19 работает нормально, а после нет, то вы не считали сколько у него реально импульсов на оборот? с помощью стороннего плк, например  А если ориентацию м5 снимать, а не м20?
    • lem_on
      Что это за станок такой в котором сразу ладер ковырять надо, даже не смотря на возможность механической проблемы? Или профдеформация?
    • Viktor2004
      не сразу я понял в чем вопрос. Долго соображал что такое режим управления скоростью. При завершении ориентации PMC снимает сигнал G70.6 ? И если он после снятия сигнала продолжает удерживать шпиндель, при каких условиях эта ориентация все же снимается? После нажатия аварийного грибка или еще как?
    • Viktor2004
      Ладдер пришлите. Будем принудительно пробовать поднимать и опускать
    • streamdown
      Коллеги приветствую! IPS 8. Подскажите пожалуйста, кто какое серверное железо использует? Интересуют параметры при одновременной работе, ну например, 400 пользователей онлайн
    • gudstartup
      так он так и позиционируется по m19 pmc выдает g70.6 а чпу отвечает f45.7 но ориентацию и смещение в 4077 он отрабатывает нормально шпиндель встает ровно и смена происходит хорошо. вопрос почему после ввода команды управления скоростью он все еще продолжает контролировать число импульсов между нуль метками хотя в принципе уже должен отменить позиционный контроль и просто считать обороты по 0 метке как он это делает без М19? это все понятно но почему оно продолжает проверять это после завершения ориентации мне непонятно
×
×
  • Создать...