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

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

Фришип, вопросы и ответы, обмен опытом, помощь

Фришип Free!Ship проектирование лодок

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

#876 mm7

mm7

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

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

Отправлено 31 мая 2019 - 23:14

выложил
https://github.com/m...eases/tag/4.2.2

 

в той версии оригинальной ФШ, с которого я сделал форк в лазарус, этого инструмента не было.

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

можно несколько точек на одну линию назначить, можно чтобы сами вершины были на другой линии (как в вашей Фламинго)
позже можно сделать назначение ЛО сразу для нескольких выбранных точек.

Я понимаю, сейчас Вам трудно переломить свои представления, как оно должно работать. Но Вы попробуйте. :)


Сообщение отредактировал mm7: 31 мая 2019 - 23:15

  • 0

#877 a_max

a_max

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

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

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

выложил

...

Я понимаю, сейчас Вам трудно переломить свои представления, как оно должно работать. Но Вы попробуйте. :)

Скачал, как точки ставить разобрался. Ща попробую наваять корпусок типа тех что раньше делал. Имен все таки кажется перебор получится, если каждая точка с именем, этож какие списки будут выскакивать, бывает и много-поясные типы корпусов с РО. Можно было бы большинство имен оставить как ИД, если они нужны.

А так с линиями все отлично отображается.

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


  • 0

#878 mm7

mm7

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

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

Отправлено 01 июня 2019 - 03:24

В принципе можно и без имен. И даже без ИД.

Выбирать так как Вы говорите первую, среднюю(ие) и последнюю, и соединять.

Но тогда наглядности не будет. Как разбивать обратно это все?

Если у такой "прямой группы" будет имя, то где его писать?

Да, имен групп будет в 2 раза меньше, чем имен УВЛО.

Но как быть если УВЛО1 сидит на прямой м-ду УВЛО2 и УВЛО3 ?

Это иерархию групп вводить что-ли?

 

Списки можно фильтровать.

Короче, надо попробовать и посмотреть....

 

Я вот тут круглую лодку переделал в фанерную.

 

 

 

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


Сообщение отредактировал mm7: 01 июня 2019 - 03:30

  • 0

#879 a_max

a_max

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

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

Отправлено 01 июня 2019 - 03:59

В принципе можно и без имен. И даже без ИД.

Выбирать так как Вы говорите первую, среднюю(ие) и последнюю, и соединять.

Но тогда наглядности не будет. Как разбивать обратно это все?

Если у такой "прямой группы" будет имя, то где его писать?

Да, имен групп будет в 2 раза меньше, чем имен УВЛО.

Но как быть если УВЛО1 сидит на прямой м-ду УВЛО2 и УВЛО3 ?

Это иерархию групп вводить что-ли?

 

Списки можно фильтровать.

Короче, надо попробовать и посмотреть....

 

Я вот тут круглую лодку переделал в фанерную.

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

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

 

P/s А лодка у вас не разворачиваемая :) . Носовая часть должна быть не вогнутая, а выпуклая.


Сообщение отредактировал a_max: 01 июня 2019 - 04:10

  • 0

#880 a_max

a_max

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

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

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

Вот, борта наладил :) .Надо уже спать валить, завтра дорисую. 

В рино экспортнул, разворачивается и не нарублено в винегрет. В общем работает как надо!!

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

  • Dev_surf_board_FS.JPG
  • Dev_surf_board_rino.JPG

  • 0

#881 mm7

mm7

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

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

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

подрихтовал редактирование и отрисовку.

 

- КТ притягивается к линии автоматически (но, как и ожидалось, не всегда где хотелось-бы, "правильность" зависит в каком окне ее выбрал. Надо приноровиться.)

 

- КТ сидит на линии при движениях вершин

 

В окне Bodyplan, если обе вершины впереди или позади центра X, то линия рисуется с соответствующей стороны. Если одна вершина впереди а другая позади центра, то линия русуется с обеих сторон. А вершины и КТ с их соответствующих сторон. 

 

 

 

 

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

  • Screenshot_2019-06-01_09-52-49.png

  • 0

#882 a_max

a_max

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

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

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

- КТ притягивается к линии автоматически (но, как и ожидалось, не всегда где хотелось-бы, "правильность" зависит в каком окне ее выбрал. Надо приноровиться.)

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


  • 0

#883 mm7

mm7

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

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

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

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

такой вариант тоже есть. работает когда ни одно окно не в фокусе. надо попробовать чисто его.
 

 

released FreeShip-4.2.2.175_x86-64_windows_win32.zip

https://github.com/m...eases/tag/4.2.2


  • 0

#884 mm7

mm7

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

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

Отправлено 02 июня 2019 - 00:11

Да, так лучше. Сделал. Выложу потом.


  • 0

#885 a_max

a_max

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

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

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

Да, так лучше. Сделал. Выложу потом.

Будет здорово. При перпендикулярном переносе тонкая настройка проще. Вот доделал днище, можно экспериментировать перестраивать модель. Так сказать заготовка.

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

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

  • Dev_surf_boat_FS.JPG
  • Dev_surf_boat_rino.JPG

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


Сообщение отредактировал a_max: 02 июня 2019 - 01:31

  • 0

#886 mm7

mm7

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

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

Отправлено 02 июня 2019 - 07:49

добавляю группы КТ ...


  • 0

#887 mm7

mm7

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

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

Отправлено 03 июня 2019 - 17:55

вопрос. КТ может быть в нескольких группах.
скажем если Г1(т1,т2,т3) и Г2(т1,т4,т5).
если мы двигаем Г1, то что делать с Г2?
а) двигать т1, не двигать т4,т5
б) двигать Г1 и всю Г2
в) не допускать чтобы КТ была в нескольких группах.
 


  • 0

#888 a_max

a_max

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

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

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

вопрос. КТ может быть в нескольких группах.
скажем если Г1(т1,т2,т3) и Г2(т1,т4,т5).
если мы двигаем Г1, то что делать с Г2?
а) двигать т1, не двигать т4,т5
б) двигать Г1 и всю Г2
в) не допускать чтобы КТ была в нескольких группах.
 

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


  • 0

#889 mm7

mm7

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

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

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

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

 

сейчас инструмент работает так:
1 - выделяем несколько точек
2 - выбираем в меню "Добавить в группу"
3 - появлятся окно со списком групп,
4 - если надо сделать новую группу, там есть кнопа [+] и поле для ввода имени. при добавке группа добавляется в список. можно  удалить/переименовать группу из списка.
5 - у каждой группы есть чекбокс. Ставим галочку на группе(ах) куда хотим добавить выделенные точки.
6 - жмем Ок (или Отмена)

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

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

Поэтому, если оставлять эту структуру, то можно делать так:
если Г1(т1,т2,т3) и Г2(т1,т4,т5).
в) предупрежать, что КТ в нескольких группах при добавлении.
а) когда двигаем Г1, двигать т1, и не двигать т4,т5 в Г2. А когда двигаем Г2, двигать всю Г2 и не двигать Г1(т2,т3). Т.е. активная группа побеждает за право владения точкой входящей еще и в другие группы.

Как лучше двигать группу?
Можно за ее "рукоятку" в средней точке группы, (там же находится ее имя).
Можно за любую точку группы.  Например, если двигать т2, то будет двигаться вся Г1. Если двигать за т5, то Г2.
Пока второе мне кажется проще. но надо пробовать.

Я не понял, как это совместить точки в одну и хранить как группу? А не проще ли одну оставить, а остальные удалить. И зачем группа для одной точки? (хотя технически можно создать группу с одной точкой, и даже вообще пустую)
 


  • 0

#890 a_max

a_max

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

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

Отправлено 04 июня 2019 - 00:44

сейчас инструмент работает так:
...
если сделать вхождение точки только в одну группу навсегда, тогда можно просто добавить поле Группа к самой точке.
тогда точка будет всегда принадлежать только к одной группе.


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

Поэтому, если оставлять эту структуру, то можно делать так:
если Г1(т1,т2,т3) и Г2(т1,т4,т5).
в) предупрежать, что КТ в нескольких группах при добавлении.
а) когда двигаем Г1, двигать т1, и не двигать т4,т5 в Г2. А когда двигаем Г2, двигать всю Г2 и не двигать Г1(т2,т3). Т.е. активная группа побеждает за право владения точкой входящей еще и в другие группы.

Как лучше двигать группу?
Можно за ее "рукоятку" в средней точке группы, (там же находится ее имя).
Можно за любую точку группы.  Например, если двигать т2, то будет двигаться вся Г1. Если двигать за т5, то Г2.
Пока второе мне кажется проще. но надо пробовать.

Я не понял, как это совместить точки в одну и хранить как группу? А не проще ли одну оставить, а остальные удалить. И зачем группа для одной точки? (хотя технически можно создать группу с одной точкой, и даже вообще пустую)
 

Тут вопросы конечно двоякие. 

Маленький экскурс в Автокад. Там  давно есть родной алгоритм групп, жмешь команду, появляется окно групп, выбираешь опции имя/без имени, еще там куча их, и в конце выбор примитивов. Но давно уже был написан лисп в котором были две команды сгруппировать(нажали кнопку выбрали примитивы)/разгруппировать (нажали кнопку выбрали примитив группы). Можно и наоборот. И все им пользовались вместо родного. Что то похожее Акадовцы  изобразили только не так давно. 

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

 Вариантов видится два.

1.Точка принадлежит одной группе. При выборе точки группы, вся группа выбирается, дальше двигаем (или например массштабируем, зеркалим, поворачиваем?) любым существующим инструментом. Инструменты группы должны просто позволять легко редактировать группы (наборы точек). По минимому можно и всего двумя обойтись, как в лиспе.

2. Более сложный но и гибкий инструмент с вхождением точек в несколько групп,  с иерархией по активности(или выбору). Т.е. как вы описали, и более продвинутыми инструментами по редактированию наборов.Что позволит например редактировать цилиндрическую часть нашего примера не только по кромкам борта и скулы, но и если связать точки групп g0 и g1 попарно в другие группы, то сделав их активными можно менять конфигурацию борта в нескольких направлениях. Я просто подумал что не будет ли такой вариант в итоге очень сложным? 

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

Конуса. Их нужно делать все равно матрицей MxN, иначе она не экспортируется, поэтому и надо в вершине соединять несколько точек, и перетаскивать их совместно. Т.е. конус-это изначально цилиндрическая поверхность с сведенными в одну координату точками одной стороны. 

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

Пару слов о них. По моей просьбе  Андреем (bisoft) были проведены некоторые эксперименты с инструментами Фришипа ( выбор рамкой, сдвиг набора мышкой, выравнивание по выбору координат, DELIT еще что, надо глянуть) Ходы у него записаны :) , если нужно напишите, он эту тему читает по возможности. В общем попробовать соединить его и ваши наработки, хотя ваш код уже сильно от оригинала отличается.


  • 0

#891 mm7

mm7

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

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

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

короче, оставляем Более сложный но и гибкий инструмент с вхождением точек в несколько групп,  с приритетом по активности(или выбору).

наработки соединить можно и приветствуется. код открытый. Андрей может присоединиться к проекту https://github.com/m...plus-in-lazarus
Или послать мне методы и их вызовы, я попробую добавить...


  • 0

#892 a_max

a_max

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

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

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

короче, оставляем Более сложный но и гибкий инструмент с вхождением точек в несколько групп,  с приритетом по активности(или выбору).

наработки соединить можно и приветствуется. код открытый. Андрей может присоединиться к проекту https://github.com/m...plus-in-lazarus
Или послать мне методы и их вызовы, я попробую добавить...

Отлично. Гибкие  продвинутые инструменты дольше настраивать, но зато потом в редактировании они выгоднее. 

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

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


  • 0

#893 a_max

a_max

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

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

Отправлено 06 июня 2019 - 23:54

Хотел к модели добавить кривые контроля, но инструмент выдает такое сообщение. Их пока просто нет, или в виндовской версии слетело че нить?

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

  • control_curve.JPG

  • 0

#894 mm7

mm7

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

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

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

Они есть. Просто сейчас с новшествами может быть не все гладко. Я проверю.


  • 0

#895 a_max

a_max

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

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

Отправлено 09 июня 2019 - 19:35

Они есть. Просто сейчас с новшествами может быть не все гладко. Я проверю.

Понятно. А с "перпендикулярным" выравниванием не компилировали еще сборку? Я б пока еще разных обводов намоделил для тестов, а то существующей версией  все таки долго подгонять приходится, разъезжаются точки. Кстати смотрел на гитхабе, но так и не нашел, там страничка с обсуждениями есть? Народ то опробовал инструмент?

Правда лето, все на воде :)


Сообщение отредактировал a_max: 09 июня 2019 - 19:36

  • 0

#896 mm7

mm7

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

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

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

Попробовал добавить кривую, проблем не возникло.

На гитхабе есть только Issues. туда пишут про баги.

Сборку пока не делал. Винда на рабочем компе.

А там всегда нет времени.

Может на днях сделаю.


  • 0

#897 a_max

a_max

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

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

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

А там всегда нет времени.

Время, эт да, летом особенно :). Я со стройкой своей пока алгоритм дельшипа даже не осилил, там несколько более витиевато нежели в 2Д. 

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

Пример на нашей схеме: делаем группы g0,g1, пару g0a1_g1a01.Как будут они перемещаться когда g0a1 "потянет" выравнивание a0_a01. Тут думается просто галочкой активности группы не обойтись, она может стоять совершенно на другой..


  • 0

#898 mm7

mm7

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

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

Отправлено 11 июня 2019 - 23:56

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

Г1(т1,т2), Г2(т2,т3,т4)

 

Например тянем т1, она тянет Г1, и т2,  при этом Г2 стоит, т3,т4 стоят.

А если тянешь за точку, которая в 2-х группах, то двигаться должны сразу две эти группы.
Например тянем т2, она тянет Г1 и Г2, все точки обеих групп двигаются.


  • 0

#899 a_max

a_max

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

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

Отправлено 12 июня 2019 - 01:16

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

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

 

А если тянешь за точку, которая в 2-х группах, то двигаться должны сразу две эти группы.

Например тянем т2, она тянет Г1 и Г2, все точки обеих групп двигаются.

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

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


  • 0

#900 mm7

mm7

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

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

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

Не понял. Я не предполагал "сохраненной активности" групп.
Какую тянем, та и активна в данный момент.

Галочки означают в какую(ие) группу(ы) входят точка(и).
В моем примере для точки т2, будут галочки на группах Г1 и Г2.
 


  • 0



Ответить



  



Темы с аналогичным тегами Фришип, Free!Ship, проектирование лодок

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

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


    Bing (1)