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

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

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

FreeShip Lazarus

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

#726 a_max

a_max

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

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

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

Можно назначить разные ограничения, но если мы двигаем точку A, то B и C тоже должны двигаться в том же направлении, если они все в группе, и потом уже к ним применяются их ограничения.
А в данном случае они не двигаются. Т.е.  - баг. Я вроде правил его...

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

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


  • 0

#727 mm7

mm7

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

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

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

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

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

На точку может быть (уже сейчас):
- одно якорение к якорю
- одно линейное ограничение
- участие в нескольких группах

Если мы тянем якорь, то точка должна двигаться по линии, и другие точки в группах тоже двигаются (или пытаются) коллинеарно и в том же направлении.
Если на других точках групп есть ограничения, то они применяются. При этом группа может идти "вразброд".

Алгоритм пересчета координат обходит точки рекурсивно в следующем порядке
1 - первичные. те за которые тянут. Они инициируют перемещение
2 - вторичные - точки якорящиеся к первичным, точки входящие в группы с первичными
3 - третичные - точки якорящиеся к вторичным, точки входящие в группы с вторичными
...
если цикл замыкается обход этой ветки дерева прекращается

Это все сложно, поэтому злоупотреблять не рекомендуется :)

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


  • 0

#728 a_max

a_max

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

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

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

На точку может быть (уже сейчас):
- одно якорение к якорю
- одно линейное ограничение

- участие в нескольких группах

Это все сложно, поэтому злоупотреблять не рекомендуется :)

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

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

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


  • 0

#729 mm7

mm7

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

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

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

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

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

Ну как же? В моем примере все работает.

 

Галочки на чем? Я не понял идею.


  • 0

#730 a_max

a_max

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

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

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

Ну как же? В моем примере все работает.

 

Галочки на чем? Я не понял идею.

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

И я там точек с использованием одновременно якорения и выравнивания не увидел.

Галочки-переключение между двумя ограничениями, но тут думать надо надо ли.

Вот описал некоторые отладки существующих функций.

 

1.Взаимосвязь Ancor-по умолчанию с параметром Hard.

2.Extrude Point. Добавить галочку-задать взаимосвязь (каждая копия точки получает взаимосвязь Ancor c исходной).Можно переименовать в Copy Point (более понятно думаю для пользователя).

3.Groupe. Упростить интерфейс (или усложнить :) ) . Как вариант-выбираем точки, жмем создать группу (имя по умолчанию Gn). Oкошко терминала по отдельной кнопке типа слоев, там инструменты ReName,Delete,галочка отображения имени (новую делать без отображения),подсвечивание точек группы на экране при выборе в терминале.Группы инструмент не менее мощный чем слои, расширенный интерфейс стоит того.

4.NewControlFace. Добавить галочку –вставить ребра. Т.е. когда надо соединить длинные пояса (заштопать) приходится потом вставлять ребра вручную. Работать должно так, выбираем список точек (Pn), жмем  NewControlFace, появляется грань, а потом автоматом ей записываются ребра по точкам P0Pn, P1Pn-1..пока список не кончится или в нем не останется  1 точка(это если лопухнулись, по идее строить надо попарно).Два ребра из списка уже по умолчанию сделаются. Скрин приложил.

5.Conside-сделать параметрической.

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

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

  • 2Parts_surf.JPG
  • Insert_eges.JPG
  • NewControlFace.JPG

  • 0

#731 mm7

mm7

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

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

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

1,2 - не сложно, можно добавить

3 - я и сам думал, как бы его получше сделать...

4 - надо тогда выбор точек начинать с определенной точки. С угла. Иначе ребра косые  будут

5 - там внутри, при вставке точки есть логика - две точки ближе чем 1е-7 сливаются в одну. Придется это отключить.

Параметрически это как? Жестко якорить? Вы же напарывались на то, что потом не разъякорить. :)

 

Пока нет понятия "вспомогательной геометрии" - это всё такие-же структурные контрольные точки. Надо вводить или свойство точки или класс "точка вспомогательной геометрии". А это значит опять менять формат файла.


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

  • 0

#732 a_max

a_max

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

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

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

1,2 - не сложно, можно добавить

3 - я и сам думал, как бы его получше сделать...

4 - надо тогда выбор точек начинать с определенной точки. С угла. Иначе ребра косые  будут

5 - там внутри, при вставке точки есть логика - две точки ближе чем 1е-7 сливаются в одну. Придется это отключить.

Параметрически это как? Жестко якорить? Вы же напарывались на то, что потом не разъякорить. :)

 

6.Пока нет понятия "вспомогательной геометрии" - это всё такие-же структурные контрольные точки. Надо вводить или свойство точки или класс "точка вспомогательной геометрии". А это значит опять менять формат файла.

4. Да, пользоваться конечно надо вдумчиво, но это лучше чем вручную.

5.А при чем здесь вставка? Есть у нас 2 точки, одну мы переставляем на первую (или несколько) и при этом автоматом об нее якорим. Получаем параметрический Conside.А вот чтоб разъединить, и вообще чтоб двигалось, надо логику выбора настроить, как вы делали приоритет, чтоб первая (на которую все завязано)  и выбиралась. А разъдинять-в окошке терминала. Может даже лучше группу задействовать, тогда вроде проще.Т.е. тоже типа добавить галочку-объединить в группу.

6. Ну может формат и не надо, там же есть теги типа точек, добавить еще один.


  • 0

#733 mm7

mm7

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

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

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

4. сколько раз в день/месяц/год это приходится делать? сколько ребер в среднем приходится каждый раз вставлять?

 

5. "вставка" - добавление точки в структуру производится при загрузке. Т.е. после загрузки из файла вторая точка исчезнет.

 

>чтоб первая (на которую все завязано)  и выбиралась.

а если надо отвязать или удалить вторую?

 

6. надо посмотреть... TFreeVertexType = (svRegular, svCrease, svDart, svCorner); добавить svAuxiliary чтоли?


Сообщение отредактировал mm7: 17 июня 2020 - 21:57

  • 0

#734 a_max

a_max

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

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

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

4. сколько раз в день/месяц/год это приходится делать? сколько ребер в среднем приходится каждый раз вставлять?

 

5. "вставка" - добавление точки в структуру производится при загрузке. Т.е. после загрузки из файла вторая точка исчезнет.

 

>чтоб первая (на которую все завязано)  и выбиралась.

а если надо отвязать или удалить вторую?

 

6. надо посмотреть... TFreeVertexType = (svRegular, svCrease, svDart, svCorner); добавить svAuxiliary чтоли?

4.Кому то-редко, раз-два за проект, а например при построении катамаранов-часто, т.к. приходится сначала делать симметричный корпус, потом его зеркалить, а потом соединять "фактически" чтоб не разделялось плоское днище и транцы (а потом обратно чтоб ежели что поправить :) ). В общем операция довольно насущная.

Я пока об этом молчу, но авто-зеркализация не всегда нужна, т.к. дает жесткую точку посередине.Но пока ГС считается только с ней.

5.Стало интересно, не замечал такого. Создал конусную поверхность сведением точек кромки в точку. Закрыл/открыл, как были по отдельности так и есть.

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

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

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

  • Прикрепленный файл  Cone.fbm.txt   37,17К   123 Количество загрузок:

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

  • 0

#735 mm7

mm7

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

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

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

5. может я убрал уже. но при открывании в более ранних версиях имейте это ввиду.
удаление с подтверждением списка, да я тоже думал об этом...

6. С типом надо еще подумать... Имена для логики использовать не надо. Хотя бы просто потому, что они могут быть на разных языках. И вообще это не концептуально.
Уж тогда, как говорите, лучше ввести теги.


  • 0

#736 a_max

a_max

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

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

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

5. может я убрал уже. но при открывании в более ранних версиях имейте это ввиду.
удаление с подтверждением списка, да я тоже думал об этом...

6. С типом надо еще подумать... Имена для логики использовать не надо. Хотя бы просто потому, что они могут быть на разных языках. И вообще это не концептуально.
Уж тогда, как говорите, лучше ввести теги.

5.Да не, я в старом тоже пробовал. 

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


  • 0

#737 mm7

mm7

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

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

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

5. хмм. надо проверить...

6. в общем-то такой список с галочками сделать не проблема. тогда тэги не надо.

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


 


  • 0

#738 a_max

a_max

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

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

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

 в общем-то такой список с галочками сделать не проблема. тогда тэги не надо.

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

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


  • 0

#739 mm7

mm7

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

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

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

как в корабельной теории такие точки называются?


  • 0

#740 a_max

a_max

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

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

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

как в корабельной теории такие точки называются?

Да вроде никаких особенностей и отличий от геометрии, вершины, образующие, проекционные линии,кривые,  все как в обычном черчении.


  • 0

#741 mm7

mm7

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

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

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

Я вот думаю... А может включить точки в слои? Тогда юзер сам может назначать слои для геометрии. Можно сделать чтоб цвет тоже назначался.


  • 0

#742 a_max

a_max

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

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

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

Я вот думаю... А может включить точки в слои? Тогда юзер сам может назначать слои для геометрии. Можно сделать чтоб цвет тоже назначался.

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


  • 0

#743 mm7

mm7

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

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

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

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

Обрезка - сложная штука. Надо хорошенько продумать.

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

- для конуса и конусоида все так же, но верхнее основание уменьшено и имеется точка вершины.


 


  • 0

#744 a_max

a_max

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

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

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

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

2.Обрезка - сложная штука. Надо хорошенько продумать.

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

- для конуса и конусоида все так же, но верхнее основание уменьшено и имеется точка вершины.
 

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

2.Ну я поэтому и продумал вариант для пробы уже на существующей геометрии. Как будто новый инструмент для УВ.

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

P/S Тут коллеге помогал с странным файлом (старой версии) откуда исчезла вся геометрия кроме точек, так пришлось весь корпус собирать по граням, вспомнил ваш вопрос насколько много приходится "штопать".С автовставкой ребер все было бы в пять раз быстрее :) .


  • 0

#745 mm7

mm7

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

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

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

1 - можно и так
2 - можно подробнее?


  • 0

#746 a_max

a_max

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

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

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

2 - можно подробнее?

В посте №621 были идея и файлы для эксперимента. Собственно задача чтоб запустить два пересечения вместо одного и записать результат.


  • 0

#747 mm7

mm7

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

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

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

я думаю, что это сделать можно.
но непонятны следующие моменты:
1 - почему все ребра жесткие? почему внутренние не мягкие? Итоговая цель ведь обрезанный меш, а не КС.
2 - обычно обрезкой режут одну деталь (в примере синюю). Режущая остается неизменной, и часто невидимой. Для чего надо резать и вторую (розовую)? Тем более, что в примере она больше. Как ее резать после точек 42 и 46?


  • 0

#748 a_max

a_max

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

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

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

я думаю, что это сделать можно.
но непонятны следующие моменты:
1 - почему все ребра жесткие? почему внутренние не мягкие? Итоговая цель ведь обрезанный меш, а не КС.
2 - обычно обрезкой режут одну деталь (в примере синюю). Режущая остается неизменной, и часто невидимой. Для чего надо резать и вторую (розовую)? Тем более, что в примере она больше. Как ее резать после точек 42 и 46?

1.Это макет меша из УС. Поэтому все жесткое, как в меше.

2. Мы не режем вторую. Мы находим пересечение ребер и граней. Сначала ребра отрезаемой пересекаются с гранями режущей (ставим точки), потом ребра режущей пересекаются с гранями отрезаемой, находим точки пересечения  и переносим их в соответствующие грани отрезаемой попутно соединяя ребрами с существующими точками . Я там пошагово скрины делал, посмотрите.


  • 0

#749 mm7

mm7

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

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

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

Ну да, это понятно. Эта операция уже есть. Но с мягкими ребрами не работает, падает. Это баг. Надо разбираться...

 


  • 0

#750 a_max

a_max

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

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

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

Ну да, это понятно. Эта операция уже есть. Но с мягкими ребрами не работает, падает. Это баг. Надо разбираться...

 

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


  • 0



Ответить



  


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

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