Andreiwse

Считывание геометрии

Здравствуйте!

Имеется построенная трехмерная модель детали в solidworks, сохранная в одном из форматов. 

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

 

Прошу Вашего совета, литературы как это сделать, в какой файл сохранять, описание формата. 

Поделиться сообщением


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

Здравствуйте! Что Вы понимаете под определением геометрии с "произвольной точностью"? Если у Вас на входе граничное представление (например, STEP), то геометрические элементы определены аналитически (сферы, конусы, цилиндры, торы, сплайны и т.д.). Какую затем сетку Вы собираетесь строить? Для каких нужд?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
19 минут назад, Andreiwse сказал:

понять" геометрию детали

А Вы сами-то можете "понять" эту геометрию?

 

19 минут назад, Andreiwse сказал:

для написания собственного сеткопостроителя

Если хотели всех запутать, Вам это удалось.

1 пользователю понравилось это

Поделиться сообщением


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

Прошу прощения, выражался не точно. Наверно ))) мне нужно чтобы геометрия, геометрические элементы выражались аналитически.  

Сетку собираюсь строить тетраэдральную для моделирования обтекания воздухом. 

 

Но сейчас мне важно просто научиться работать с геометрий

Поделиться сообщением


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

Как хотите работать? Будете писать некую программу разбора граничного представления? Скажем, на входе STEP, потом разбор по геометрическим типам, потом построение сетки... Если так, то на каком языке пишете?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
6 минут назад, Andreiwse сказал:

мне нужно чтобы геометрия, геометрические элементы выражались аналитически

 

Что Вы поднимаете под этим термином?

Вы хотите, прямо из геометрии получить уравнение поверхности двоякой кривизны?

 

Поделиться сообщением


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

Возможно, Вам будет интересна утилита для анализа граничного представления: https://bitbucket.org/Quaoar/analysissitus/wiki/Home

Грузите STEP, тыкаете грань, смотрите ее тип. Реализация на C++ с использованием OpenCascade и VTK. Код открыт.

Поделиться сообщением


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

я так понимаю, нечто программерское тут имеется ввиду. А вот понятие "аналитическое" надо бы расшифровать.

 

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

 

Если же просто нужно построить сетку, то чем результат работы вашей проги будет отличаться от формата STL?

Поделиться сообщением


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

Программирую на Фортране. 

 

Еще раз попробую уточнить.
Я себе это так представляю. Допустим у меня есть тело - цилиндр, один торец цилиндра имеет затупленние, но не по сфере, а через тело полученное как вращение некого произвольного сплайна. Мне нужно самому написать программу, в которую можно загрузить файл с геометрией тела. Программа извлечет из файла аналитическое представление тела и будет иметь следующие виды поверхностей : уравнение боковой поверхности цилиндра, с знанием конкретного радиуса и высоты; уравнение не затупленного основания цилиндра - окружность, координаты центра окружность, радиус окружности; уравнение затупленного основания цилиндра - уравнение сплайна, то есть коэффициенты уравнения сплайна. Это мне позволит для любой произвольной точки в пространстве "спорить" у программы является ли эта точка точкой внутри тела или снаружи или она принадлежит поверхности тела. Или для любой точки в пространстве не лежащей на поверхности, но расположенной близкой к поверхности "спросить" у программы расстояние от этой точки до поверхности тела.  И тому подобное. 

 

Поделиться сообщением


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

Похоже на удаление гланд ректальным путём.

Попробуйте быть проще.

Во-первых, полную "аналитику" реальной сложной детали ни один компьютер Вам не выдаст. Да она и не нужна в принципе.

Во-вторых, даже имея "аналитику" поверхности как определить с какой стороны находится материал? Для примера возьмите геометрию обычного буксирного гака.

В-третьих, у Вас в исходном файле уже есть полное описание геометрии тела без всякой "аналитики". Настолько полное, что по нему строится именно то самое тело. Строится однозначно в любом софте. Может, стоит сначала разобраться в том, что уже есть? И не изобретать неработающий велосипед без колес.

 

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

Поделиться сообщением


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

Делаете так. Берете модель в нейтральном формате (например, STEP или IGES). Загружаете ее при помощи библиотеки OpenCascade, чтобы получить граничное представление в явном виде (на этом этапе Вы уже имеете всю аналитику, см. ссылку, которая приведена выше). После этого можете влегкую классифицировать точку относительно тела (это базовая операция в геометрическом моделировании) и делать что угодно (так как у Вас полное описание модели изделия).

 

Уровень такой работы чисто порограммистский, это мат. основы САПР, и, конечно инженеры, тут Вам особенно не подскажут. Если нужно введение в область, гугелируйте "геометрические ядра" (много отличных статей есть на isicad.ru).

 

Резюмируя, все это делается. Это типовая задача низкоуровневого геометрического моделирования и мат. основ САПР.

Изменено пользователем Quaoar

Поделиться сообщением


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

Только у меня ощущение, что эти два новых персонажа - на самом деле один, который просто таким изощренным способом пытается что-то пропиарить, сам себе задавая ответы, и сам себе отвечая?

Поделиться сообщением


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

Что пропиарить? Бесплатный тул?

Поделиться сообщением


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

@Ветерок нет, тут не пиар. Изобретение велосипеда, да. Обменные форматы - это и есть та самая требуемая автору "аналитика". И наши все САПР - это тоже аналитика математиков (ну, по крайней мере, ядра САПРов) Но @Quaoar прав, тут форум не программерский, а инженерный. И вряд ли кто реально что-то подскажет. Разве что Ug_user, который в этой теме (программерской) кое-что понимает. Но я сомневаюсь, что у него будет отличное мнение от моего насчет "изобретения велосипеда".

 

ЗЫ Впрочем, отговаривать не буду. Вдруг автор сделает чисто российский обменный формат для 3D тел. :smile: Но про желание сделать что-то быстро можно забыть сразу. Геом. ядра создавались годами целыми коллективами программистов.

Поделиться сообщением


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

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

Поделиться сообщением


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

Возможно, кто-то из военных хочет в

BRL-CAD

засунуть геометрию из обычных САПР. Мне пытались ставить похожую задачу, я отослал народ к информации о поддержке этим open-source САПРом NURBS, и переносить через Rhino. Чем решилось - не знаю, вопросов больше не было. В этой САПР все задается бесконечно точными примитивами и их комбинациями или облаками точек. http://brlcad.org/ -

Solid Modeling!

Hybrid CSG and B-REP kernel with innovative methods for unambiguous 3D geometry.

 

Почему такая задача? Военные хотят иметь САПР "без жучек внутри", лучше - open-source, и при этом максимально точные для расчетов по сложной геометрии или моделировать что-то типа ядерных взрывов. В-общем, ахтунг...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 23.12.2016 в 14:43, Quaoar сказал:

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

Согласен с вами. 

 

Кажется,поставленная задача сложнее чем я подумал изначально.

 

Благодарю всех участников беседы за первичную консультацию. 

Поделиться сообщением


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

Пишите об успехах! САПР на низком уровне -- штука очень увлекательная.

Поделиться сообщением


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

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

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

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

  • Ближайшие события

    Предстоящих событий не найдено
  • Дни рождения сегодня

    1. aero10
      aero10
      (52 года)
    2. dollarali
      dollarali
      (28 лет)
    3. EtsukoX226
      EtsukoX226
      (27 лет)
    4. Evaccidassaky
      Evaccidassaky
      (37 лет)
    5. fikysiks
      fikysiks
      (33 года)
    Просмотреть все