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

Выбор поверхности или объема по координате


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

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

Подсткажите пожалуйста можно ли делать выбор объема/поверхности/линии по координате принадлежащей этому объекту? То есть например я указываю координату точки лежащей на поверхности и мне ансис выбирает эту поверхность. Либо указываю координаты точки лежащей внутри объема и мне ансис выбирает объем.

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


Мне нужно не ручками. Мне нужно либо макрос написать либо узнать какой командой делается. Но я не могу понять алгоритм поиска..

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

Так макрос и есть ручками. Если линия, то берете уравнение линии и проверяете линии в цикле пока не найдете или не исчерпаете. Остальное аналогично. Главное написать макрос проверки принадлежности объекту. И элементарный цикл. Информацию об объектах командой get брать ... :unsure:

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

Ну напишите мне уравнение произвольной поверхности... произвольной линии, объема... Вот лишь бы сказать блин...

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

F(x,y,z)=0 :rolleyes:

<noindex>http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%...%81%D1%82%D1%8C</noindex>

Ну а линия - пересечение двух поверхностей, а объем внутренняя область нескольких поверхностей. :unsure:

Поскольку с прямыми и плоскостями все тривиально, то можете разбить поверхность на линейные треугольнички и уже их проверять :rolleyes:

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

Мне Ваш совет мало польз не дал. По конкретнее пожалуйста. Либо алгоритм скажите.

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

Поконкретнее посмотрите в книжках по машинной графике. Много всяких алгоритмов известно и они не сложные :unsure:

Посмотрите разные булевские операции типа intersect и подобных. Можно, например, проводить линии в некоторых направлениях, находить точки пересечения с поверхностями и измерять расстояния между полученной и исходной у которой известны координаты, если 0 то понятно, что лежит на поверхности.

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

Да это понятно.. Я понимаю Вас и к чему клоните. Я не знаю сам алгоритм создания уравнения поверхности.. И где его найти было бы интересно..

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

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

Алгоритмы в машинной графике везде одинаковы разница в реализациях... Реально компьютер рисует отрезки прямых. Тут как в кино, часто кадры меняются и кажется что движется что-нибудь. В алгебре есть правило - сохраняя простоту идей можно усложнять приложения, верно и обратное :unsure:

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

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

Алгоритмы в машинной графике везде одинаковы разница в реализациях... Реально компьютер рисует отрезки прямых. Тут как в кино, часто кадры меняются и кажется что движется что-нибудь. В алгебре есть правило - сохраняя простоту идей можно усложнять приложения, верно и обратное :unsure:

Вы так говорите, как будто это раз плюнуть! Ну если для Вас это так, то может быть сделаете?

to All:

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

Есть еще способ, более прямой) есть у нас 3 главных вида. Есть объем. Если в 1 виде точка принадлежит проекции объема и во всех остальных, то она принадлежит объему. А принадлежит или нет узнавть путем автоматического наведения курсора мыши на координаты точку во всех 3 видах)

В любом случае это все будет занимать много времени.... Наверно есть способы легче

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

Да я просто когда-то делал это, чтобы двигать узлы и элементы. Но там были конечные элементы и просто для точки находил кси, эта и смотрел внутри порождающего элемента или нет, на его границе или в узле или нет. Все и на 486 мухой летало и не чувствовалось задержек. Программулька есть по моей ссылке. Это действительно несложно. Аналогично можно и в трехмерном случае действовать, просто надо задать направление, например из проверяемой точки в центр тела или поверхности и развернуть систему координат так, чтобы z была по направлению к наблюдателю, тогда можно просто проверить что в контуре, например по предлагаемому алгоритму или еще как, в силу отвращения к комплексному анализу, я ты просто тень разбил на конечные элементы и убедился и локализовал возможную область и проверил по z. <noindex>http://www.pinega3.narod.ru/grafic.htm</noindex> :unsure:

Но проще проткните пространство в некоторых направлениях линиями проходящими через точку и смеряйте расстояние. По моему так меньше всего писанины. Это как изучаем рельеф дна при ловле фидером. Или как эхолот работает :rolleyes:

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

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

Все на 486 летало для 10 конечных элементов. Ну может быть для 100. :unsure:

Чтобы работать с поверхностями нужно геометрическое ядро.

Любое геометрическое ядро определяет расстояние от точки до поверхности.

Нужно только вызвать функцию.

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

Тогда ядер не было, все приходилось делать ручками в GDI . Open GL пришел через несколько лет. :unsure:

Зенкевич когда-то плотину на двух кубичных сосчитал и ничего, нормально стоит :rolleyes:

Если в ансисе установить режим графики win 32 то тоже сначала каркас крутится, а потом раскрашивается после остановки.

Но в функцию надо подать описание поверхности...

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

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

Разбивать на элементы, чтобы определить принадлежность не вариант. Это очень долго.

Я всетаки хочу узнать как Ансисовское ядро хранит геометрию? Например CATIA хранит непосредственно в уравнениях. А Солид Ворксовское ядро в примитивах или полигонах. И Когда солидворксу надо пересечь два тела, то он вначале получает уравнения элих тел, и только потом пересекает их. Плюсы солидворкса в том, что легко крутится геометрия, минусы в точности и времени перестроения. Плюсы CATIA во времени перестроения и точности. На легких моделях это конечно не важно..

Если я гдето ошибся, поправьте пожалуйста.

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

Я всетаки хочу узнать как Ансисовское ядро хранит геометрию?

Точно также как все другие ядра.

Или аналитические или сплайновые поверхности.

Рекомендую посмотреть ядро OpenCascade.

Если вы действительно хотите разобраться. :unsure:

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

"Разбивать на элементы, чтобы определить принадлежность не вариант. Это очень долго" - если без аналитики, то не так уж долго, крутится то все раскрашенное быстро разбитое на элементы, кроме того есть же грубые методы , которые отсеют все очевидное и уточнить можно только небольшую область...

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

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

"Разбивать на элементы, чтобы определить принадлежность не вариант. Это очень долго" - если без аналитики, то не так уж долго, крутится то все раскрашенное быстро разбитое на элементы, кроме того есть же грубые методы , которые отсеют все очевидное и уточнить можно только небольшую область...

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

Ммм ну всеравно этот метод окажется довольно долгим. Если его использовать один раз, то еще нормально.. А если я захочу его использовать в своем алгоритме тысячи раз? И объемов у меня штук 500?

Рекомендую посмотреть ядро OpenCascade.

Спасибо

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

Думаю, что проблем не будет особенно если с грубым отсечением. В любом случае рост вычислений линейный от числа поверхностей, а это обычно мелочь которой можно пренебречь. Это как при разложении решение одной двух треугольных систем на фоне разложения основной матрицы, кроме того просматривается распараллеливание в котором Испа большой дока ... :unsure:

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

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

Цилиндрическая поверхность - это 1 аналитическая поверхность. Одна.

А вы предлагаете разбить ее на сотни конечных элементов.

Алгоритм пересечения двух таких поверхностей будет в тысячи раз медленнее, чем двух цмлиндров в аналитическом виде. :unsure:

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

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

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

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

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

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

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

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

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

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

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

  • Сообщения

    • Killerchik
      Если нужно что-то поменять, выкладывайте фото экрана станка, я думаю можно будет дистанционно Вам объяснить, как отредактировать.
    • bubl leg
      Всем доброго! Вопрос следующий: мне тут по одному из прошлых вопросов сильно помогли: как измерить длину кривой - показали инструмент, который я в упор не видел:-D А вот сейчас у меня возникла потребность наоборот: уменьшить длину произвольной кривой, меняя цифры в настройках. Возможно такое? Скажем, есть у меня хитрая кривая в виде произвольной загогулины. И чтобы не вручную менять её размеры по ХУ, постоянно снова и снова замеряя получившуюся длину и подгоняя таким образом длину под свои потребности, а чтобы вот так: увидеть длину в настройках - вбить туда новую цифру и длина кривой будет соответственно уменьшена. При этом (вероятно) урежется сама кривая и будет показан только её сегмент - ничего страшного, мне именно это и надо. Буду благодарен любому совету!
    • Mixon513
      Всем спасибо что тыкнули пальцем. Действительно производитель перепутал данные вывода.
    • Mixon513
      Спасибо, в понедельник попробую. 
    • Guhl
      И всё-таки поучаствовали )))
    • Viktor2004
      Я изначально не участвовал в этой теме потому что во первых это не влияет на работоспособность станка, а во вторых, задача это элементарно решается на горячем станке, где видно в режиме онлайн в каких регистрах хранится номера стаканов, в каких номера инструментов и из каких регистров идет отображение на индикатор. Любой сервисник который находится у станка решит эту задачу за десять минут. А тут копаться в ладдере в котором ничего не отображается можно сутками, перенося в уме свои догадки что там могло бы быть.
    • Killerchik
      @Mixon513 Вы можете например на станке открыть ладдэр, поискать поиском R65 или Р0225 и посмотреть логику формирования этого значения.
    • rasta89
      Всем привет. Проводил в LS-Dyna расчет на усталость по SN. Получил результаты Damage и Life:   Но вот Expected Fatigue cycles = 0. Кто-нибудь может объяснить подробно почему? Может быть что-то упустил в картах, куда обратить внимание? Спасибо.  
    • Guhl
      Это надо сидеть и разбираться с логикой, которая в ладдере прописана разработчиками. Возможно, что править надо. Комментарии там на английском, вам повезло. В Яндексе задавать вопросы бесполезно на этот счет
    • Mixon513
      Подскажите где нужно менять параметры. Или как задать вопрос яндексу?
×
×
  • Создать...