Перейти к содержимому

Фотография
- - - - -

Фришип (Лазарус). Ошибки программы, исправления и улучшения.

FreeShip Lazarus

Сообщений в теме: 825

#751 mm7

mm7

    Рулевой 1-го класса

  • Основной экипаж
  • PipPipPipPipPipPip
  • 473 сообщений
  • Из:Вудбридж
  • Судно: виндфойл доска

Отправлено 05 июля 2020 - 03:35

Да, попробовал, точно упало. Заодно и поправите. Я так подумал что отладив на УС, потом на меш это уже проще будет перенести. Всеж сам алгоритм фактически уже есть, только для обрезки действий больше.

исправил. сейчас работает.

 

Меш придется резать после того, как он построен.

Ну разрежем. Будет ломаная, делящая кусок поверхности на две части. А дальше что? Как понять, что делать с каждой частью?


  • 0

#752 a_max

a_max

    Яхтенный капитан

  • Капитан
  • 2 842 сообщений
  • Из:moscow

Отправлено 05 июля 2020 - 03:52

исправил. сейчас работает.

 

Меш придется резать после того, как он построен.

Ну разрежем. Будет ломаная, делящая кусок поверхности на две части. А дальше что? Как понять, что делать с каждой частью?

У нас есть алгоритм который выбирает все грани ограниченные "красными" ребрами. Вот его и задействовать.Перенастроить конечно надо будет.Работать должен так-выбираем грань на какой то стороне, он собирает все связанные пока не упрется в вновь созданные ребра (ломаную пересечения). Эти грани и будут отрезаемыми. Это применительно к тестовой модели.

Понятно, что тест и потом как это будет работать на меше немного по разному. Но главное-это построить эту самую ломаную на пересечении слоев.


Сообщение отредактировал a_max: 05 июля 2020 - 03:58

  • 0

#753 mm7

mm7

    Рулевой 1-го класса

  • Основной экипаж
  • PipPipPipPipPipPip
  • 473 сообщений
  • Из:Вудбридж
  • Судно: виндфойл доска

Отправлено 05 июля 2020 - 15:59

Или сделать как в ТинкерКаде? - логические операции с объемными телами.

Т.е. фигура, которая режет - объемная, с типом пустота. Сумма с ней отрежет все, что в нее входит.

(угу, идем к солидам...)


  • 0

#754 BBM

BBM

    Рулевой 1-го класса

  • Основной экипаж
  • PipPipPipPipPipPip
  • 508 сообщений
  • Из:г.Казань

Отправлено 05 июля 2020 - 19:11

Обновил Lazarus до 2.0.8. Попробовал скомпилировать последние исходники. Не проходит до конца. Где взять библиотеку?

 

linker: /usr/bin/ld: cannot find -lfreehttps

Error: Error while linking


  • 0

#755 mm7

mm7

    Рулевой 1-го класса

  • Основной экипаж
  • PipPipPipPipPipPip
  • 473 сообщений
  • Из:Вудбридж
  • Судно: виндфойл доска

Отправлено 05 июля 2020 - 19:50

Можно взять из зипа последней инсталляции. В lib/

 

я ее компилил в Free Pascal 3.2.0.

Весь проект не стал переводить под него. Попробовал, полезли всякие штуки... Решил подождать.


Сообщение отредактировал mm7: 05 июля 2020 - 19:53

  • 0

#756 a_max

a_max

    Яхтенный капитан

  • Капитан
  • 2 842 сообщений
  • Из:moscow

Отправлено 05 июля 2020 - 22:02

Или сделать как в ТинкерКаде? - логические операции с объемными телами.

Т.е. фигура, которая режет - объемная, с типом пустота. Сумма с ней отрежет все, что в нее входит.

(угу, идем к солидам...)

Солиды-это просто несколько объединенных поверхностей, операции с ними-это чисто логика, что,  с чем, каким боком и т.д

Причем логика эта глючит у всех.

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


  • 0

#757 mm7

mm7

    Рулевой 1-го класса

  • Основной экипаж
  • PipPipPipPipPipPip
  • 473 сообщений
  • Из:Вудбридж
  • Судно: виндфойл доска

Отправлено 06 июля 2020 - 02:20

Солиды-это просто несколько объединенных поверхностей, операции с ними-это чисто логика, что,  с чем, каким боком и т.д

Причем логика эта глючит у всех.

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

Какие "фантомы"?


  • 0

#758 a_max

a_max

    Яхтенный капитан

  • Капитан
  • 2 842 сообщений
  • Из:moscow

Отправлено 06 июля 2020 - 03:40

Какие "фантомы"?

Меш без УС, получаемый вычислением из другого меша, в нашей модели-симметрия слоев. Но вариантов использования много.


  • 0

#759 BBM

BBM

    Рулевой 1-го класса

  • Основной экипаж
  • PipPipPipPipPipPip
  • 508 сообщений
  • Из:г.Казань

Отправлено 06 июля 2020 - 07:34

Скопировал в /usr/lib/. Выпало ещё два предупреждения. Но компиляция прошла успешно.

 

Warning: "crtbeginS.o" not found, this will probably cause a linking failure

Warning: "crtbeginS.o" not found, this will probably cause a linking failure


  • 0

#760 mm7

mm7

    Рулевой 1-го класса

  • Основной экипаж
  • PipPipPipPipPipPip
  • 473 сообщений
  • Из:Вудбридж
  • Судно: виндфойл доска

Отправлено 06 июля 2020 - 16:29

Меш без УС, получаемый вычислением из другого меша, в нашей модели-симметрия слоев. Но вариантов использования много.

ниче не понял. какая "симметрия слоев",


  • 0

#761 mm7

mm7

    Рулевой 1-го класса

  • Основной экипаж
  • PipPipPipPipPipPip
  • 473 сообщений
  • Из:Вудбридж
  • Судно: виндфойл доска

Отправлено 06 июля 2020 - 16:34

Скопировал в /usr/lib/. Выпало ещё два предупреждения. Но компиляция прошла успешно.

 

Warning: "crtbeginS.o" not found, this will probably cause a linking failure

Warning: "crtbeginS.o" not found, this will probably cause a linking failure

 

у меня "crtbeginS.o" принадлежит пакетам libx32gcc-<version>-dev разных версий.

попробуйте поставить libx32gcc-7-dev
 


  • 0

#762 a_max

a_max

    Яхтенный капитан

  • Капитан
  • 2 842 сообщений
  • Из:moscow

Отправлено 06 июля 2020 - 18:46

ниче не понял. какая "симметрия слоев",

Меш который строится на правой стороне просто зеркалится из левой. Так же можно делать копии, эквидистанты,  отражения и прочее. С этим проблема во всех сапр.


  • 0

#763 mm7

mm7

    Рулевой 1-го класса

  • Основной экипаж
  • PipPipPipPipPipPip
  • 473 сообщений
  • Из:Вудбридж
  • Судно: виндфойл доска

Отправлено 06 июля 2020 - 19:32

в нашей модели есть слои с симметрией и без. Какое отношение это имеет к обрезке мешей? Если надо зеркалить, то реж а потом зеркаль.
Если не надо зеркалить, то реж и не зеркаль. Естественно резалка должна соответствовать слою. Для сим слоя, она должна быть тоже симметричной.


  • 0

#764 a_max

a_max

    Яхтенный капитан

  • Капитан
  • 2 842 сообщений
  • Из:moscow

Отправлено 06 июля 2020 - 19:47

в нашей модели есть слои с симметрией и без. Какое отношение это имеет к обрезке мешей? Если надо зеркалить, то реж а потом зеркаль.
Если не надо зеркалить, то реж и не зеркаль. Естественно резалка должна соответствовать слою. Для сим слоя, она должна быть тоже симметричной.

К обрезке-никакого :) . Это я же про альтернативу солидам писал.Я как ни будь изложу теорию фантомов, напомните ежели че. Ща не будем отвлекаться :)


Сообщение отредактировал a_max: 06 июля 2020 - 19:52

  • 0

#765 mm7

mm7

    Рулевой 1-го класса

  • Основной экипаж
  • PipPipPipPipPipPip
  • 473 сообщений
  • Из:Вудбридж
  • Судно: виндфойл доска

Отправлено 06 июля 2020 - 21:09

ок. еще пофиксить что нибудь надо?

 


  • 0

#766 a_max

a_max

    Яхтенный капитан

  • Капитан
  • 2 842 сообщений
  • Из:moscow

Отправлено 06 июля 2020 - 21:26

ок. еще пофиксить что нибудь надо?
 

Да вроде пока ничего такого. Давайте уж с обрезкой разберемся, а там если все получится будем думать куда дальше двигаться.


  • 0

#767 mm7

mm7

    Рулевой 1-го класса

  • Основной экипаж
  • PipPipPipPipPipPip
  • 473 сообщений
  • Из:Вудбридж
  • Судно: виндфойл доска

Отправлено 12 июля 2020 - 22:28

Выложил релиз 5.0.36

https://github.com/m...azarus/releases


  • 0

#768 a_max

a_max

    Яхтенный капитан

  • Капитан
  • 2 842 сообщений
  • Из:moscow

Отправлено 13 июля 2020 - 01:56

Выложил релиз 5.0.36

https://github.com/m...azarus/releases

Потестил пересечения слоев, падать перестало. В алгоритмах там разбирались в процессе?Можно их в обрезке использовать?

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

Прикрепленные изображения

  • grup_face_to_lay.JPG

  • 0

#769 mm7

mm7

    Рулевой 1-го класса

  • Основной экипаж
  • PipPipPipPipPipPip
  • 473 сообщений
  • Из:Вудбридж
  • Судно: виндфойл доска

Отправлено 13 июля 2020 - 03:43

Потестил пересечения слоев, падать перестало. В алгоритмах там разбирались в процессе?Можно их в обрезке использовать?

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

Напрямую использовать нельзя, так как эта процедура режет мешем КС. А надо мешем меш.

Надо новую писать, по образу и подобию.

Но не столько страшна сама обрезка сколько тот вопрос, что дальше с этими обрезками делать.

Вот была сабдив панель 16х16, принадлежала одной грани. Мы панель разрезали, а грань нет.

Надо смотреть как оно там ляжет на структуры.

Дальше, разрезали, скажем, на 2 куска. И что дальше? Интерактив заточен под грани КС.

Ткнув в любой из кусков выделим всю грань.

Да и не хочу я с интерактивом прямо на меше делать. Это еще один уровень интерактива добавлять.

Лучше тогда резалку сделать объемной. Что попало в ее объем, то пропало. Или наоборот.

 

Сетка иногда нужна. Посмотреть если ничего не вывернуто наизнанку.


Сообщение отредактировал mm7: 13 июля 2020 - 03:53

  • 0

#770 a_max

a_max

    Яхтенный капитан

  • Капитан
  • 2 842 сообщений
  • Из:moscow

Отправлено 13 июля 2020 - 04:18

1.Напрямую использовать нельзя, так как эта процедура режет мешем КС. А надо мешем меш.

Надо новую писать, по образу и подобию.

Но не столько страшна сама обрезка сколько тот вопрос, что дальше с этими обрезками делать.

Вот была сабдив панель 16х16, принадлежала одной грани. Мы панель разрезали, а грань нет.

Надо смотреть как оно там ляжет на структуры.

Дальше, разрезали, скажем, на 2 куска. И что дальше? Интерактив заточен под грани КС.

Ткнув в любой из кусков выделим всю грань.

Да и не хочу я с интерактивом прямо на меше делать. Это еще один уровень интерактива добавлять.

Лучше тогда резалку сделать объемной. Что попало в ее объем, то пропало. Или наоборот.

 

2.Сетка иногда нужна. Посмотреть если ничего не вывернуто наизнанку.

1.Ну это понятно. Мы вроде на тест с УС пока ориентировались. Там в общем все режется, только надо точками "обменяться" от взаимопересечения. Но если так удобнее, то можно и сразу на меше экспериментировать, тут вам как сподручнее.Проблемы с интерактивом (если я правильно понял термин :) )  быть в общем то не должно. Ясно что обрезка потребует несколько иной организации модели, никаких панелей-граней уже не будет, будет элемент очерченный красными ребрами-поверхность, и выбор будет по нему(как сейчас ctr+select) с учетом невидимых частей (отрезов). Отдельный выбор панели-грани с назначением ей отдельных свойств-ну иногда я это использую для задания разной толщины ламината круглоскулого корпуса при предварительных расчетах. Но это и обрезкой делается на раз, причем более точно. А больше и незачем.

Уровень меша-да, еще один добавляется (вернее еще один уровень его преобразования, сами элементы уже есть)

Насчет объемной резалки-не очень понял.

2.Но это не так часто приходится делать, да и автомат проверки есть.


  • 0

#771 mm7

mm7

    Рулевой 1-го класса

  • Основной экипаж
  • PipPipPipPipPipPip
  • 473 сообщений
  • Из:Вудбридж
  • Судно: виндфойл доска

Отправлено 13 июля 2020 - 17:54

1.Ну это понятно. Мы вроде на тест с УС пока ориентировались. Там в общем все режется, только надо точками "обменяться" от взаимопересечения. Но если так удобнее, то можно и сразу на меше экспериментировать, тут вам как сподручнее.Проблемы с интерактивом (если я правильно понял термин :) )  быть в общем то не должно. Ясно что обрезка потребует несколько иной организации модели, никаких панелей-граней уже не будет, будет элемент очерченный красными ребрами-поверхность, и выбор будет по нему(как сейчас ctr+select) с учетом невидимых частей (отрезов). Отдельный выбор панели-грани с назначением ей отдельных свойств-ну иногда я это использую для задания разной толщины ламината круглоскулого корпуса при предварительных расчетах. Но это и обрезкой делается на раз, причем более точно. А больше и незачем.

Уровень меша-да, еще один добавляется (вернее еще один уровень его преобразования, сами элементы уже есть)

Насчет объемной резалки-не очень понял.

2.Но это не так часто приходится делать, да и автомат проверки есть.

1.а Это не тест. Это был существующий инструмент, который сломался. Я его починил.

1.б Ничего еще не ясно. Я не буду курочить модель, пока не будет четкого видения. Нужен документ по функционалу. Помните, договаривались?


  • 0

#772 a_max

a_max

    Яхтенный капитан

  • Капитан
  • 2 842 сообщений
  • Из:moscow

Отправлено 14 июля 2020 - 03:09

1.а Это не тест. Это был существующий инструмент, который сломался. Я его починил.

1.б Ничего еще не ясно. Я не буду курочить модель, пока не будет четкого видения. Нужен документ по функционалу. Помните, договаривались?

Да понятно что не тест. Вообще будем делать тест на УС, или вам проще сразу с мешем экспериментировать?

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

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


  • 0

#773 a_max

a_max

    Яхтенный капитан

  • Капитан
  • 2 842 сообщений
  • Из:moscow

Отправлено 18 июля 2020 - 22:12

Немного тут закрутился, выложу так сказать вступление . Ключевые моменты для лодкостроительной сапр как я ее вижу.

Потом все скомпоную в файл, ну а пока чтоб можно было вопросы  пояснить и обсудить.

Итак :) :

Концепция объектной модели  Фришип.

Для начала о геометрии 3д модели  (то из чего она собственно состоит).Ключевых элементов два- 3Dповерхность (Surface)  и плоская поверхность (Plane).Это два разных элемента и объединять их на один алгоритм непроизводительно.

Surface-это меш построенный из вводных (УС) по математическому алгоритму (сабдивижен, нюрбс, безье, не важно).

Plane-это грубо говоря бокс плоской поверхности,УС- 4 точки по углам, 4 ребра .

Подгонка этих элементов друг к другу осуществляется с помощью механизма обрезки, который воздействует уже на построенный меш. Тут возможны варианты с Plane, строить ли меш сразу, или позже. Для фришипа наверное оптимально для этого задействовать имеющийся алгоритм. Только решить проблему наложения меша.

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

Но 3D модель-это именно состыкованные друг с другом  с необходимой точностью обрезанные элементы Plane и Surface, при этом неважно объединены ли они в тела, слои или блоки.

Далее хотелось бы выделить в отдельный алгоритм еще одну операцию которая должна присутствовать в САПР (в ДШ прикрутили, но как все у них с нюансами)-это эквидистанты. Делать их можно как исходя из УС , строя потом меш из новых высчитанных точек (вот с этим как раз все непросто), так и  по технологии «фантом», что в разы проще.

Ну про развертки не буду-они у нас уже есть.

Соответственно  получаются четыре  составляющих: построение, обрезка, эксвидистанты  и развертки.Это вполне перекрывает все что нам требуется.


Сообщение отредактировал a_max: 18 июля 2020 - 22:14

  • 0

#774 mm7

mm7

    Рулевой 1-го класса

  • Основной экипаж
  • PipPipPipPipPipPip
  • 473 сообщений
  • Из:Вудбридж
  • Судно: виндфойл доска

Отправлено 19 июля 2020 - 19:14

Немного тут закрутился, выложу так сказать вступление . Ключевые моменты для лодкостроительной сапр как я ее вижу.

Потом все скомпоную в файл, ну а пока чтоб можно было вопросы  пояснить и обсудить.

Итак :) :

Концепция объектной модели  Фришип.

Для начала о геометрии 3д модели  (то из чего она собственно состоит).Ключевых элементов два- 3Dповерхность (Surface)  и плоская поверхность (Plane).Это два разных элемента и объединять их на один алгоритм непроизводительно.

Surface-это меш построенный из вводных (УС) по математическому алгоритму (сабдивижен, нюрбс, безье, не важно).

Plane-это грубо говоря бокс плоской поверхности,УС- 4 точки по углам, 4 ребра .

Подгонка этих элементов друг к другу осуществляется с помощью механизма обрезки, который воздействует уже на построенный меш. Тут возможны варианты с Plane, строить ли меш сразу, или позже. Для фришипа наверное оптимально для этого задействовать имеющийся алгоритм. Только решить проблему наложения меша.

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

Но 3D модель-это именно состыкованные друг с другом  с необходимой точностью обрезанные элементы Plane и Surface, при этом неважно объединены ли они в тела, слои или блоки.

Далее хотелось бы выделить в отдельный алгоритм еще одну операцию которая должна присутствовать в САПР (в ДШ прикрутили, но как все у них с нюансами)-это эквидистанты. Делать их можно как исходя из УС , строя потом меш из новых высчитанных точек (вот с этим как раз все непросто), так и  по технологии «фантом», что в разы проще.

Ну про развертки не буду-они у нас уже есть.

Соответственно  получаются четыре  составляющих: построение, обрезка, эксвидистанты  и развертки.Это вполне перекрывает все что нам требуется.

 

что это?

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

 


  • 0

#775 a_max

a_max

    Яхтенный капитан

  • Капитан
  • 2 842 сообщений
  • Из:moscow

Отправлено 20 июля 2020 - 03:48

что это?

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

 

Эквидистанта, оффсет, подобие-эту операцию бывает называют по разному, создает элемент (линию, кривую или поверхность) на основе существующего на определенном расстоянии с некоторым масштабированием. В основном применяется классический вариант, когда оффсетится УС и потом строится новый меш (или ломаная) по той же математике (нюрбс, сабдивижен). На скрине 2д сабдивижен, из элемента с красной УС и синей ломаной строится фиолетовая УС и новая голубая ломаная по алгоритму сабдивижен (ФШ) через 1000мм. И в этом случае хотя между УС-ми расстояние выдерживается, то между ломаными оно "плавает". Это происходит из-за влияния концевых жестких точек. На сплайнах и нюрбс-то же самое. Чтобы поддерживать нужное расстояние приходится высчитывать большее количество УВ в оффсете что накладывает большие ограничения на инструменты, так как аппроксимация никогда не бывает точной. В итоге эти операции самые глючные. Но в непараметрических сапр (Рино например) они по другому не могут.

Но если задаться практической целью и проанализировать для чего эта операция нам нужна (а это в основном задание второй стороны листового материала), то понятно что оффсету в нашем случае УС вообще не нужна, он будет всегда следовать за начальным объектом, и строить ломаную оффсета надо непосредственно из ломаной оригинала (тот самый "фантом" :) ), тогда все просто и точно. Ну а зависимость поддерживается параметризацией. Причем во ФШ это уже реализовано для построения меша другого (не управляемого) борта, нужно только расширить функционал использования алгоритма.

 

Развертке вроде все равно какой меш будет, там фильтр по тегам стоит вроде уже, настроить только нужно будет.Сама структура меша то от обрезки не меняется.

Прикрепленные изображения

  • offset.JPG

Прикрепленные файлы

  • Прикрепленный файл  offset.pdf   11,15К   111 Количество загрузок:

Сообщение отредактировал a_max: 20 июля 2020 - 03:57

  • 0



Ответить



  


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей