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

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

Нашел САПР своей мечты ;-)


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

#26 a_max

a_max

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

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

Отправлено 28 декабря 2016 - 05:07

С ним (FS) неясно насчет развития, им в Николаеве вроде занимались, как обучалкой для студентов-кораблестроителей, да и не суть. Я так понимаю потому и развития в работе с графикой не было, задачи не те, расчеты важнее. Потом на производстве студенты будут совсем другим софтом пользоваться. А для любителей самое то. Исправить некоторые неудобства, наладить обмен с условно-бесплатным мощным  параметрическим пакетом (T-flex, Компас-3D) , и будет красота.


  • 0

#27 investgroup7

investgroup7

    Старший матрос

  • Основной экипаж
  • PipPipPip
  • 78 сообщений
  • Из:Earth ;)
  • Судно: yello submarine ;)

Отправлено 28 декабря 2016 - 05:16

Дак вот в том-то и проблема - для обучалки разные мелкие косяки не важны,

а вы из-за этих "мелочей" пойдете на корм рыбам...


  • 1

#28 BBM

BBM

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

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

Отправлено 28 декабря 2016 - 08:01

Теоретически можно добавить что угодно, во что угодно, от чего есть исходник(и даже сделать исходник из .exe если не лень дизассемблировать)...

 

Но практически проблема в том что никто это делать не будет - на delphi уже давно никто не пишет, даже те кто раньше на нем писал счас врядли будут там что-то отлаживать.   Удивляюсь еще как его хватило чтобы перенести ;)

 

 

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

То есть надо разобраться есть ли шанс что FS будет и дальше развиваться - если будет то может быть с него и таскать готовое,

а если нет, то можно и форкнуть и поддерживать уже только эту версию.

 

Вот тут FreeShip  https://github.com/m...plus-in-lazarus

портировали в Lazarus


  • 0

#29 a_max

a_max

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

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

Отправлено 28 декабря 2016 - 10:40

"Дак вот в том-то и проблема - для обучалки разные мелкие косяки не важны,

а вы из-за этих "мелочей" пойдете на корм рыбам..."

 

Да там и не так уж много этих мелочей. Программа работоспособная. Просто начальные разработчики потом стали развивать коммерческий продукт "DelfShip". Но там как раз с расчетами беда в базе. Все расширения отдельно.  А графику  и интерфейс доработали. Красиво все.. Но и там кой чего нет, просто люди даже об этом не думают. Хотя реализовать думаю не сложно.


  • 0

#30 bisoft

bisoft

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

  • Капитан
  • 1 145 сообщений
  • Из:Таганрог

Отправлено 28 декабря 2016 - 10:44

"По идее можно все, что есть во FreeShip сделать в данной системе(перенести все расчеты и сделать удобные инструменты)."

 

Коллега, попробовал Ваш макрос. Некоторые соображения. Считаю, что зря вы хотите отказаться от FS. Это проверенный  и удобный инструмент для расчетов и построения судовой поверхности. Переносить все расчеты-это большой труд. Лучше потратить усилия на алгоритм корректного переноса поверхностей как из FS в T-flex ,так и обратно.  Без промежуточных форматов (Iges, Vrml). Я с этим экспериментировал, и если интересно мысли по этому поводу изложу. Только без программирования не получается. А у меня только начальные познания в Lisp и VBA. Тогда действительно получится хорошая связка, с возможностью редактирования обводов как в FS, так  и T-flex. А дальше средствами T-flex без проблем делать деталировку. Она будет параметрической.

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

По идее, еще не значит, что это легко ;-) Дальше этого макроса чего то становится совсем сложно ;-)

Но если хотите напишите свои соображения по импорту - экспорту, может и правда проще сделать именно его.

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


  • 0

#31 a_max

a_max

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

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

Отправлено 28 декабря 2016 - 12:43

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

 

 Про то и речь. А в FS это все делается автоматом, только модель корректную вставь. Там для обмена между каким-то схожим  корабельным софтом есть файл .FEV, в него записываются координаты управляющих точек и инфо по граням и ребрам. Я оттуда брал точки и строил по ним поверхности в Компасе и Автокаде. Вопрос в том, что в них уже используются сплайны, а у них больше настроек, "вес" точек может быть разный. Отсюда меняется форма. Т.е. основой конвертации должны быть контрольные точки и грани, но нужно настроить сплайны в параметрическом софте так, что бы форма линий и поверхностей была идентичная FS. Вечерком постараюсь сделать картинки-иллюстрации. 


  • 0

#32 a_max

a_max

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

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

Отправлено 07 января 2017 - 17:36

[font="arial, helvetica, sans-serif;"]Ну вот, праздники отгуляли, как и обещал изложу несколько своих экспериментов с геометрией FreeShip.[/font]

 

 

[font="arial, helvetica, sans-serif;"]Сначала о линиях. Рисунок Curve. Тест проводил на фигуре в виде треугольника с основанием 2м и высотой 1м (вид Полуширота). В зависимости от степени прорисовки строится ломаная  (Pline[/font]), и  плавная кривая  (Curve). Curve скорее всего сплайн, но при этом экспортируется в DXF в виде Pline. Нас думаю будет интересовать повторение наиболее подробной прорисовки. Далее экспорт в DXF. Дальнейшие манипуляции проводил в AutoCad, так как я его довольно хорошо  знаю по работе.  Думаю в других программах есть аналогичные настройки кривых.

 

[font="arial, helvetica, sans-serif;"]Далее рисунок Test_3D_Pline. Показан вид  Pline из FreeShip,  настройки команды Spline из  AutoCad (командная строка снизу) и точки по которым строим (3 красных перекрестия). Пока этот способ дает наиболее точное отображение исходной линии.[/font]

 

[font="arial, helvetica, sans-serif;"]Рисунок Test_SPline. Вид построенного Spline, также включено окно свойств. Вид  управляющих вершин. Закавыка в том, что такой Spline руками по УВ не построить, т.к. положение промежуточных УВ можно задать только программно (высчитать). В данном примере они явно привязаны к 1/3 ..Если построить просто Spline по трем  УВ (основание-вершина-основание) он будет другого  порядка и форму даже играя весом точек мне подогнать не удалось.  Близко- но не то.[/font]

 

[font="arial, helvetica, sans-serif;"]Теперь  отвлечемся  от геометрии и пробежим по файлу  *.FEF, который указан в справке как обменный  между  специализированным морским софтом. Он является по сути текстовым, с читабельной кодировкой, с ним легко работать обычными методами. Структура записи информации тоже не сложная. Вот алгоритм построения нашего треугольника с пошаговыми записями в .FEF (рисунок  Test_fef). Точки, грань, 2 угловые, ребро, слом ребра. Все изменения отражаются и легко читаются. Если занятся можно отследить все зависимости, а может это описано в исходниках к Free[/font]Ship.

 

[font="arial, helvetica, sans-serif;"]Отсюда видятся два варианта действий.[/font]

[font="arial, helvetica, sans-serif;"]  1.  [/font]Настраивать конечный CAD, что бы получить геометрию, похожую на FS. Я пробовал Компас3DHome и  AutoCad. Ну и Rhino, куда же без него. Там кстати есть еще T-Spline, и он очень похож на то, что хотелось бы иметь во FS (мечтать не вредно :) ). Но под .FEF файл так и не подогнал по выше названым причинам. Приходится экспортировать точки, и аппроксимировать их сплайнами. А это дорога в один конец.

[font="arial, helvetica, sans-serif;"]   2. [/font]Попытаться прочитать код  FreeShip. Как я упомянул на экране нам FS чертит в виде Curve самый натуральный сплайн, а значит в коде написан алгоритм по которому он строится. Если его выудить, то можно строить по нему и в конечном CADе.

 

[font="arial, helvetica, sans-serif;"]В общем куда ни кинь, нужны программисты. Я пробовал вникнуть, но у меня еще проблема-английский.  Я его подучиваю, уже неплохо понимаю тексты про лодки (с Google конечно), но как коснешься программирования , то как в анекдоте , угадал все буквы, не угадал слово. Вроде все слова знаю, что хотят сказать не поймешь. По Lisp-у автокадовскому хотя б на русском полно материала.[/font]

[font="arial, helvetica, sans-serif;"]Так же если найдется программист по Делфи,  могу поделиться некоторыми наблюдениями по FS. Ощущение, что какие-то вещи почти сделаны, но не до конца. Может его и не очень сложно улучшить. Многие вещи сделаны в DelfShip, причем они даже объектную модель не затрагивают.[/font]

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

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

  • FS_curve.JPG
  • Test_3D_Pline.JPG
  • Test_SPline.JPG
  • Test_fef.JPG

Сообщение отредактировал a_max: 07 января 2017 - 17:39

  • 0

#33 investgroup7

investgroup7

    Старший матрос

  • Основной экипаж
  • PipPipPip
  • 78 сообщений
  • Из:Earth ;)
  • Судно: yello submarine ;)

Отправлено 07 января 2017 - 18:01

Если его делали не полные дебилы, то прядок сплайнов там должен быть небольшой - 2-3, не больше...  

иначе может чего-нить лишнего пририсовать, но не нарисовать что надо ;)

 

По 3 точкам вроде тока 2 порядок будет, если 1/3 то может и 3 быть.   В принципе формулы вывести не сложно...


  • 1

#34 bisoft

bisoft

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

  • Капитан
  • 1 145 сообщений
  • Из:Таганрог

Отправлено 07 января 2017 - 22:07

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

Т.е. взять вертикальные ломаные и по ним сделать поверхность. Но фришип их никак не выделяет и если там нарисованно более чем просто корпус, то по простому не получится. Скорее всего во фришипе использованы https://ru.wikipedia.org/wiki/NURBS


  • 0

#35 a_max

a_max

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

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

Отправлено 07 января 2017 - 22:21

  В принципе формулы вывести не сложно...

И что для этого сделать нужно? Полистал файлы исходники-Delphi, так понял понял все спрятано в этих файлах-формах. Часть читабельна в редакторах,часть наверное можно только в среде разработки читать. Сайт программы сейчас не работает, вот старый http://hydro.nuos.edu.ua/freeship.html почитать, но ссылки там на новый.

у меня исходник не самый свежий, у кого вот этот архив есть(hydronship.net/download/Freeship+3.4_Delphi_source.RAR) скинте плиз.

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

  • FS_List_Forms.JPG
  • FS_Forms.JPG

  • 0

#36 a_max

a_max

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

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

Отправлено 07 января 2017 - 22:53

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

Т.е. взять вертикальные ломаные и по ним сделать поверхность. Но фришип их никак не выделяет и если там нарисованно более чем просто корпус, то по простому не получится. Скорее всего во фришипе использованы https://ru.wikipedia.org/wiki/NURBS

Сплайн по ломаной-аппроксимация 3DPline сплайном, в Автокаде тоже есть, можешь менять вид, то ломаная то гладкая. На Nurbs, да похоже. Но не факт. Т.к. корпус в FS в итоге полигональный. Сплайном только Curve чертятся на экране(синие). И если посмотреть рисунок FS_Curve из поста-32, то видно, что Curve меняется вместе с ломаной, очень похоже на аппроксимацию.  DelfShip уже кстати выдает Spline в  DXF. Попробую вытащить свойства Spline,что DS экспортирует. 3DPline из DS идентичны FS-им.

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


  • 0

#37 БАР

БАР

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

  • Инженер
  • 25 638 сообщений
  • Из:СПб
  • Судно: СТ-31э
  • Название: Авось

Отправлено 07 января 2017 - 23:20

[font="arial, helvetica, sans-serif;"]Так же если найдется программист по Делфи[/font]

Коллеги, нет такого языка - Дельфи.

Дельфи - это RAD, среда для быстрой разработки программ. А программы там написаны на языке Паскаль (Pascal). Который по синтаксису очень близок к семейству С, на котором сейчас пишут все, кому не лень. Только некоторые операторы записаны другими буквами.

Поэтому если у Вас под рукой есть сносный программист на С (С++, С Шарп и т.д.), он поможет решить Ваши проблемы.


  • 0

#38 a_max

a_max

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

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

Отправлено 07 января 2017 - 23:33

Коллеги, нет такого языка - Дельфи.

Дельфи - это RAD, среда для быстрой разработки программ. А программы там написаны на языке Паскаль (Pascal). Который по синтаксису очень близок к семейству С, на котором сейчас пишут все, кому не лень. Только некоторые операторы записаны другими буквами.

Поэтому если у Вас под рукой есть сносный программист на С (С++, С Шарп и т.д.), он поможет решить Ваши проблемы.

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


  • 0

#39 bisoft

bisoft

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

  • Капитан
  • 1 145 сообщений
  • Из:Таганрог

Отправлено 08 января 2017 - 07:47

В 90-x Pascal был моим любимым языком и дельфи я тоже использовал. Но вот сейчас посмотрев исходники - я понял как тяжко на это смотреть ;-) Решил поставить самую новую среду RadStudio и понял почему оно загибается. Заставить работать я это не смог ;-) надо регистрироваться, вводить куда то ключ,  в конце оно сказало - какая то ошибка - не могу скачать, что то очень необходимое для работы ;-) Скачал Delphi 7 и поставил, за минуту нашел подходящий ключ.

Начал смотреть фришип - честно говоря очень тяжко, я просто не понимаю как я раньше в этом работал(Delphi). Подсветка синтаксиса никакая, навигация по исходникам плохая. Но если сильно хочется - то конечно все алгоритмы там есть.

Не понятно только, чего вы хотите от-туда достать и чего потом с этим делать?

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

 

 

PS: ну и Delphi все таки можно считать диалектом Pascal-я.

вот исходники FreeShip 3.4 https://www.dropbox....Ship34.zip?dl=0


  • 0

#40 investgroup7

investgroup7

    Старший матрос

  • Основной экипаж
  • PipPipPip
  • 78 сообщений
  • Из:Earth ;)
  • Судно: yello submarine ;)

Отправлено 08 января 2017 - 09:45

вау, кто-то еще пользуется убого-дебильными IDE с подсветкой синтаксиса? ;)    Ну удивили, чё...

(помниться мы тут отправили в помойку весьма неплохую новую версию какого-то компилятора - только потому что было лень разбираться как эту хрень отрубать, причем кстати сама IDE была тоже весьма не плоха...   Вот тока нафиг не нужна!

А исходнички из него конечно пригодились - на мясо...)

 

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

 

В 90-x Pascal был моим любимым языком и дельфи я тоже использовал. Но вот сейчас посмотрев исходники - я понял как тяжко на это смотреть ;-) Решил поставить самую новую среду RadStudio и понял почему оно загибается. Заставить работать я это не смог ;-) надо 

 

а еще когда-то он умел пользоваться даже отладчиком и знал что такое ассемблер(что такое сопромат и сейчас не знает - причем реч не идет о знании самого сопромата - а только о том что это такое :( ), 

но это было очень давно и не правда - с тех пор скатился до работы на микрософт и продолжает деградировать...

 

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

 

 

Коллеги, нет такого языка - Дельфи.

Дельфи - это RAD, среда для быстрой разработки программ. А программы там написаны на языке Паскаль (Pascal). Который по синтаксису очень близок к семейству С, на котором сейчас пишут все, кому не лень. Только некоторые операторы записаны другими буквами.

Поэтому если у Вас под рукой есть сносный программист на С (С++, С Шарп и т.д.), он поможет решить Ваши проблемы.

 

нда, чую тут без отдельного большого ликбеза по технологиям и теории программирования не обойтись - слишком запущенно ;)

(только вот где, чтобы не разводить офтопик? )

 

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

 

 

Однако разница с точки зрения программирования и программистов между ними принципиальная - можно сказать что среди алгоритмических языков delphi/pascal/Ada находятся на противоположном конце и в опозиции к си, не смотря на то что в современных реализациях они часто все используют один и тот-же кодогенератор из проекта gcc...

 

 

delphi действительно диалект паскаля - вот тока паскаль тот с большой подлянкой - поддержкой ООП...

 

 

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

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

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

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


  • 1

#41 investgroup7

investgroup7

    Старший матрос

  • Основной экипаж
  • PipPipPip
  • 78 сообщений
  • Из:Earth ;)
  • Судно: yello submarine ;)

Отправлено 08 января 2017 - 11:13

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

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

А все проекты вроде delphi - это коммерческие однодневки, которые в серьез больше не поддерживаются!)

 

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

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

Все остальное - от Лукавого и Микрософта ;)

 

 

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

 

 

Так-же полезно будет за одно повторить и вывод всех формул...

 

 

PS  если не будет исходников, то в принципе теоретически если сильно захотеть и будет не лень, то можно выковыривать изюминки  выковырнуть новые алгоритмы и из коммерческих версий без открытых исходников(отладчик и IDA - rulez ;) ), 

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

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


  • 1

#42 a_max

a_max

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

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

Отправлено 08 января 2017 - 18:56

Поэкспериментировал вчера с DelfShip. При подробном сравнении разница все же есть с Freeship. Ломаная (Pline) DS грамотнее чем в FS. Видно на низкой прорисовке(рис.Test_DS_Curve). Во FS Curve выходит за рамки треугольника, что неправильно, в DS исправили. Далее DXF.

 

Как я упоминал, DS Curve экспортирует как сплайн. Свойства сплайна на рис.Test_DS_Spline.Количество УВ по кол-ву точек Pline+2 промежуточных задающих векторы начала и конца сплайна.Причем этот сплайн совпал со "вчерашним" сплайном построенным по точкам ломаной FS рис. Test_DS_Spline_2 с теми же настройками и всего 5-ю УВ. Некоторые погрешности есть, но на уровне вычислений с четвертым знаком после запятой.Еще нюанс, промежуточные точки на концах сплайна лежат также на 1/3..рис.Test_DS_Spline_3. Таким образом за рабочую версию можно считать что нам нужен сплайн 3-го порядка с вот такими промежуточными точками. 

 

С аппроксимацией тоже подразобрался. Автокадовское сглаживание полилинии-построение сплайна по серединам отрезков. Нам же нужно построение сплайна 3-го порядка по вершинам. Далее, как быть если T-flex не воспримет УВ из FS. Отрезки Pline в FS имеют разную длину. В DS- одинаковую, т.е. точки Pline распределены равномерно по сплайну. Зная уравнение сплайна, можно построить и ломаную. Все взаимосвязано. Уравнение сплайна поищу, кто знает-может подсказать :) Дальше уже построение средствами T-flex. 

 

Так же полистал учебники по Паскаль/Дельфи. Сплайнов естественно не нашел, но зато нашел точки, линии, дуги/окружности а так же построение графика функции, вот последнее по моему как раз нам и нужно. Т.к. сплайн в своем роде график функции и есть, с УВ в качестве аргументов.Забыл PDF-ку на другом компе, чуть позже выложу.Посмотрел формы исходников, нужные нам функции похоже лежат в самом exe-шнике Freeship. Метод Curve.add (рис).Попробуйте раскомпилировать в читабельный вид. Я если даже поставлю среду разработки, изучать только как пользоваться буду неделю наверное.

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

  • Test_DS_Curve.JPG
  • Test_DS_Spline.JPG
  • Test_DS_Spline_2.JPG
  • Test_DS_Spline_3.JPG
  • Curve_add.JPG

  • 0

#43 a_max

a_max

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

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

Отправлено 08 января 2017 - 19:11

Не понятно только, чего вы хотите от-туда достать и чего потом с этим делать?

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

 

вот исходники FreeShip 3.4

Для начала хотелось бы просто понять объектную модель FS. Что там есть, что можно добавить, насколько сложно. Дальше будет понятно, ограничится только конвертером, либо что то и  в самой программе доработать.

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

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

FS 3.4 скачал,спасибо. 


  • 0

#44 bisoft

bisoft

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

  • Капитан
  • 1 145 сообщений
  • Из:Таганрог

Отправлено 08 января 2017 - 19:11

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

Можете по простому сделать экспорт в iges формате и импорт в tflex. Вы получить отличную модель. По идее она дожна так же уметь обновляться, при изменении файл, но у меня чего то не срабатывало.


  • 0

#45 investgroup7

investgroup7

    Старший матрос

  • Основной экипаж
  • PipPipPip
  • 78 сообщений
  • Из:Earth ;)
  • Судно: yello submarine ;)

Отправлено 08 января 2017 - 20:45

Вау, круто - давно мы так не весилились...   Объяснять надо? ;)

 

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

 

 

PS  а что FS/DS считает такого интересного, что самим нельзя написать по-быстрому?..


  • 1

#46 investgroup7

investgroup7

    Старший матрос

  • Основной экипаж
  • PipPipPip
  • 78 сообщений
  • Из:Earth ;)
  • Судно: yello submarine ;)

Отправлено 08 января 2017 - 21:27

Насчет стоимости транспортировки.

 

В общем, разобранный катамаран может потребовать миниум 2-3 вагона для транспортировки!

 

Причем замена ЖД на авто-фуры не дает особой экономии(разве что с "последней милей" чуть проще) - фура например до Анапы может стоить тыщ 150-170, и сборный рейс тут организовать не просто.

(хотя теоретически может и можно - например если какие-нить мешки с удобрениями загрузить в поплавки катамарана, но IMHO заморочек много а экономия не стоит нервов)

 

 

Альтернативный вариант - каналами или реками через северное море(например по Оби это 4000 км и 1 шлюз ГЭС ~17*170м, но в европе каналы старые и шлюзы меньше!)...  

Теоретически дешевле, даже даром практически, но тут появляется куча дополнительных требований к проекту:

 

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

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

 

 - Столкновение с бревнами можно считать удачей(они хоть не острые) - хуже если это че-нить с торчащими острыми железками...

 

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

 

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

 

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

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

 

 

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

 

 

Дополнительно можно приделать колеса и коньки - можно будет как буер ехать по льду абсолютно любой толщины - тогда как самый крутой атомный ледокол может колоть всего-то каких-то 3 метра льда...  

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

 

 

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

(там пираньки вам быстро объяснят что ходить в пимах по льду куда безопаснее чем босиком по мелководью, а акулы и крокодилы что и надувному тузику там тоже не климат,

после чего вся эта компания сытно перекусит добравшимися туда программистами ;))) )


  • 1

#47 a_max

a_max

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

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

Отправлено 08 января 2017 - 22:52

Обещанные странички из учебника..

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

Можете по простому сделать экспорт в iges формате и импорт в tflex. Вы получить отличную модель. По идее она дожна так же уметь обновляться, при изменении файл, но у меня чего то не срабатывало.

Во Freeship нет поверхности, есть сетка, максимально к ней приближенная. Ее для визуализации рендер или шейдер (как там правильно) сглаживает. В DXFона как есть. Rhino умеет даже на нее проецировать линии, обрезать-не помню..Редактировать такую можно только средствами полигонального моделирования. Посмотрите мануал к T-spline (http://www.tsplines....usermanual.html).Есть интересные моменты и применительно к FS. Задача нашего конвертера должна быть в создании каркаса УВ из FS, и построение по нему поверхности средствами T-flex, так что бы она повторяла сетку из FS. И редактировать ее с помощью каркаса. Вечерком попробую сделать наглядное пособие средствами Автокада.

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

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


  • 0

#48 investgroup7

investgroup7

    Старший матрос

  • Основной экипаж
  • PipPipPip
  • 78 сообщений
  • Из:Earth ;)
  • Судно: yello submarine ;)

Отправлено 10 января 2017 - 10:54

вот исходники FreeShip 3.4 https://www.dropbox....Ship34.zip?dl=0

 

а на нормальный не глючный хостинг нельзя было положить?..

 

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

 

 

 

На Nurbs, да похоже. Но не факт.  

 

Во-во, точно, вот именно что не факт! ;)

 

Хотя в описаниях проекта как бы именно про нее

=======

FREE!ship is a surface modeling program for designing ships yachts and boats. Subdivision surfaces are used rather than NURBS to give the designer the freedom to design ANY desired hullshape. Unfold surfaces, panel based hydrostatics, various exp formats

=======

 

Но самих исходников нет даже в специализированном поисковике по исходникам и даже лицензии не прописаны - что как бы намекает...

 

 

 

PS  дак что в нем такого ценного, что в нормальном CAD реализовать нельзя?

Нормального моделирования гидродинамики я так понимаю нет ни тут ни даже в большинстве кадов все равно...

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


  • 1

#49 a_max

a_max

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

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

Отправлено 10 января 2017 - 20:17

 

 

Хотя в описаниях проекта как бы именно про нее

=======

FREE!ship is a surface modeling program for designing ships yachts and boats. Subdivision surfaces are used rather than NURBS to give the designer the freedom to design ANY desired hullshape. Unfold surfaces, panel based hydrostatics, various exp formats

=======

PS  дак что в нем такого ценного, что в нормальном CAD реализовать нельзя?

Нормального моделирования гидродинамики я так понимаю нет ни тут ни даже в большинстве кадов все равно...

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

По геометрии. Продолжил эксперименты пока с DelfShip, там экспорт в DXF более продвинут. Картинки прилагаю (DS_curve).

Почитал по сплайнам Безье и NURBS.Одно из свойств кривой безье-они не выходят за линии соединяющие УВ. Здесь мы видим, что Curve "вылезает " за линию. Ну и опять же Автокад нам четко дает свойства сплайна 3-го порядка. Скорее в целях экономии ресурсов строится не NURBS или Безье кривая, а ломаная (Pline), хотя и по уравнению. Вот они четко внутри. Сплайн строится уже по ломаной, и имеет свои УВ. Количество точек удваивается с каждой степенью прорисовки. По ломаным же строится сетка, заменяющая поверхность.(рис.Test_DSmesh)

Почитал про библиотеки графики. DS использует OpenGL, FS скорее Borland Graphics Interface.Нужно тоже поразбираться.

Скачал портированный в Лазарус Freeship. Чего-то не могу наити собственно программные алгоритмы. Все формы состоят из описаний кнопок, ссылок на объекты, модули и т.д. Куда спрятаны вычисления?

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

Для станков кстати всякие сплайны и NURBS не нужны, в G-коде есть точки, отрезки и дуги. И на них будут разложены любые хитрые кривые. Вот FS их и не портирует в DXF.

А так да, в тяжелых КАДах конечно можно все повторить. Есть RhinoMarine для Rhino, есть что-то для SW, думаю для Catia и ProE тоже. В автокаде есть ShipConstructor. Кстати в последнем для судовой поверхности используются свои собственные entites, думаю потому, что со стандартными поверхностями любой комп повесится. А чисто математически считать намного проще, потом выдать в DXF просто нужные результат. Только все это во-первых стоит кучу денег, требует машино-ресурсов, и  на освоение люди тратят полноценные месяцы на работе.

При этом удобных нужных  инструментов  в этих КАДах может и не быть, попробуйте сделать разворачиваемую сложную поверхность в том-же T-flex. Я пока не увидел там алгоритма. А как запрограммировать у меня идеи есть. В общем зачем делать заново то, что уже сделано?

Еще картинка с уравнением. Математики у нас не нашлись ? :) Я в принципе могу вытащить геометрию ломаных в виде числового массива, можно ли составить уравнение, для вычисления УВ из вершин ломаной? 

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

  • Test_DScurve.JPG
  • Test_DScurve_УВ.JPG
  • Test_DSmesh.JPG
  • Test_DSmesh_Point.JPG
  • Кривая_безье.JPG
  • Безье_свойства.JPG

Сообщение отредактировал a_max: 10 января 2017 - 20:20

  • 0

#50 investgroup7

investgroup7

    Старший матрос

  • Основной экипаж
  • PipPipPip
  • 78 сообщений
  • Из:Earth ;)
  • Судно: yello submarine ;)

Отправлено 10 января 2017 - 21:58

Можно сделать аппроксимацию в каком-нить математическом пакете,

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

 

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


  • 1



Ответить



  


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

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