LINUX.ORG.RU

Обмен опытом использования САПР SolveSpace

 , ,


14

9

В этой теме предлагаю обмениваться опытом использования свободной 2D/3D САПР SolveSpace а также ссылками на ее обсуждение на других ресурсах.

Сайт/Website - http://solvespace.com

История изменений/Changelog - https://github.com/solvespace/solvespace/blob/master/CHANGELOG.md

Стабильная версия - SolveSpace 2.3 (../tree/2.x)

Версия в разработке - SolveSpace 3.0 (../tree/master)

Форки:

Примеры:

Вот некоторые интерестные ссылки:

.

★★★★★

Последнее исправление: atsym (всего исправлений: 38)
Ответ на: комментарий от EvilSpirit

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

Считаешь есть смысл писать ядро на ЯП с GC? Не будет просадок в перформансе на сложных чертежах?

foror ★★★★★
()
Ответ на: комментарий от foror

Считаешь есть смысл писать ядро на ЯП с GC? Не будет просадок в перформансе на сложных чертежах?

Я не вижу в этом проблем. Просто не выделяем памяти без необходимости, переиспользуем уже выделенные куски. Если поищешь, то найдешь в видео тот момент, где я избавляюсь от аллокаций. Память не выделяем -> GC не проявляет себя. Там сейчас на сложных чертежах проблема в умножении матрицы на саму себя транспонированную. Я пока не нашел способа оптимизировать это через векторизацию/разворачивание цикла, да и ожидать этого от сборки в браузере не стоит. Только нативные сборки. Чтобы это улучшить, придется писать алгоритмы на sparse матрицах, что должно улучить ситуацию драматически. Но это когда уже будет смысл это делать, сейчас несложные чертежи (до 100 констрейнов) потянет и так.

EvilSpirit
()
Ответ на: комментарий от EvilSpirit

На Юнити? С одной стороны понимаю, видимо её ты знаешь лучше и тебе удобно, но назвать это лицензионно чистым я бы не смог. И вспомнился мне один чел, который на Годоте чертилку делал. Вот только ссылок не найду. Но в отличие от - движок открытый и позволяет легко «собирать»(а фактически просто запаковывать) под разные платформы, включая html. Проверял собственноручно всякие проекты запускать наразных системах, единственное во что упёрлось один раз - это в отсутствие библиотек пульсы. Но это легко решается сборкой профиля без пульсы. И если не нравится этот, то Urho3d посмотри. У обоих проектов лицензия позволяет всё, ежели потом кодом делиться не захочешь.

Deleted
()
Ответ на: комментарий от Deleted

На Юнити? С одной стороны понимаю, видимо её ты знаешь лучше и тебе удобно

Я не очень хорошо к ней отношусь. Но по факту, чтобы делать то же на c++, мне нужно пройти кучу говна из коммандлайн тулзов, подключения тонны библиотек, чтобы это хоть как-то взлетело на куче платформ. Мне больше не интересно возиться с этим, на дворе 2017, прогресс, и все такое, а у меня теперь нет столько времени и энергии, чтобы с этим разбираться. Как только я изучаю что-то одно и у меня все начинает получаться, технологию руинят, перестают поддерживать или что-то с ней происходит. Приходится начинать сначала. Год назад я начал серьезено работать с юнити. Это не супер движок, но одной кнопки достаточно, чтобы проект оказался где угодно, на сколько-нибудь популярной платформе, включая телевизоры. Я не OpenSource энтузиаст, для меня достаточно того, что Unity - бесплатный движок для проектов, не зарабатывающих денег. Хотя и ничто не вечно, этот движок держится, и вряд ли уже что-то сможет остановить его развитие на ближайшие годы. А вот C++ загнется в ближайшие 5+ лет, он не сможет выдержать натиска современных альтернатив, вроде D или Rust.

EvilSpirit
()
Ответ на: комментарий от EvilSpirit

Ясно. Но на смерть C++ я бы не рассчитывал так скоро. Да и в движках этих используются скриптовые языки. Но дело твоё, я просто про того чувака вспомнил и сказал.

А юнити - кака.

Deleted
()
Ответ на: комментарий от Deleted

Ясно. Но на смерть C++ я бы не рассчитывал так скоро.

Так скоро - нет. Он еще будет барахтаться лет 20, и останется в изолированных проектах и библиотеках. Весь цивилизованный мир перейдет на что-то попроще, побезопаснее и покрасивее.

EvilSpirit
()

Господа, вообще не разбираюсь в сапрах, подскажите следующую вещь: если мне нужно спроектировать движущиеся детали, например цепную/зубчатую передачу или двухтактный двигатель — мне данная программа поможет? Если нет, посоветуйте инструменты, которые мне подойдут. Уточню, что мне надо видеть, как это работает, т.е. цепь/шестерни движутся, поршень совершает возвратно-поступательные движения и т.д.

Im_not_a_robot ★★★★★
()
Ответ на: комментарий от EvilSpirit

Ну... я, честно говоря, как не программист, совершенно не понимаю чем тебе не угодили те варианты, Что такого даёт Юнити (в смысле, всё равно ты используешь от неё только рисовалку и «менеджер проектов».

Ну и ежели уж про «альтернатив нет», то чем хуже тот же Анриал?

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

Deleted
()
Ответ на: комментарий от Deleted

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

Я слышал только про Godot, посмотрел, а там

Python-like scripting language,

ничего не имею против, просто не люблю его.

К тому же не известно, как там дела с WebGL. Я так понимаю, Unity сильно повлияли на развитие web gl и, наверное, на появление web asm (по крайней мере, я бы на их месте повлиял). Короче, тут выбор обусловлен популярностью и простотой. Unreal мне нравится еще меньше, хотя движок годный, но разрабатывать на нем, когда я последний раз с этим сталкивался, было не очень удобно (кривые тулзы, неудобный редактор).

EvilSpirit
()
Ответ на: комментарий от EvilSpirit

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

Смотрел blend4web? Этот движок более переносим, чем юнити. У меня даже на смартфоне запускается, а юнити нет.

foror ★★★★★
()
Ответ на: комментарий от Im_not_a_robot

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

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

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 1)
Ответ на: комментарий от foror

Смотрел blend4web? Этот движок более переносим, чем юнити. У меня даже на смартфоне запускается, а юнити нет.

А другие платформы? Android, IOS, Linux? Я имею ввиду, нативные сборки

EvilSpirit
()
Ответ на: комментарий от foror

Этот движок на webgl, так что без нативных сборок, только браузер.

тогда совсем не интересно. на JavaScript точно не вариант. Ничего против не имею, но это извращение.

EvilSpirit
()
Ответ на: комментарий от EvilSpirit

conCAD - construct geometry with constraints (для FreeCAD?)

ничего не имею против, просто не люблю его.

А можеш посмотреть на вот это

construct geometry with constraints

https://github.com/blooop/conCAD

Я так понял это попытка сделать «геометрические ограничители» для FreeCAD, да?

atsym ★★★★★
() автор топика
Ответ на: комментарий от EvilSpirit

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

Но webgl стандарт w3c и развивается кучей вендоров. Да, я согласен насчет JavaScript, но у меня например есть собственное решение для разработки под веб. Я полностью перенес W3C и браузерное API в джаву, которое всегда актуально современным стандартам с помощью моих парсеров браузерных сырцов и веб-страниц со стандартами W3C.

В том числе, я могу blend4web перенести в джаву, т.к. в их документации обозначены типы в сигнатурах методов https://www.blend4web.com/api_doc/module-geometry.html

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

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 1)
Ответ на: conCAD - construct geometry with constraints (для FreeCAD?) от atsym

Я так понял это попытка сделать «геометрические ограничители» для FreeCAD, да?

А мне кажется, просто к питону подключили либы фрикада. Но это не точно.

EvilSpirit
()
Ответ на: комментарий от foror

перенес W3C и браузерное API в джаву

Джава уже лучше, но она не поддерживает перегрузку операторов. Я не против аргументов, почему они это не сделали, но я не вижу программирования 3d графики и геометрии без перегрузки операторов. Я привык это делать, и это очень логичная и удобная абстракция, есть куча современных языков, где она есть. Это сокращает запись выражений, упрощает отладку и понимание кода. Меня не устраивает, в частности, ситуация с тем, что я не могу сделать это в SolveSpace, где «по историческим причинам» не используется перегрузка операторов.

EvilSpirit
()
Ответ на: комментарий от foror

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

Если делать что-то серьезное, надо делать все самому. Нафиг вот не надо завязываться на всякие вещи, которые сегодня развиваются, а завтра тот же blend4web никому не станет нужен. Так что я не вижу причин, почему ты называешь одни технологии серьезными, а другие нет. Unity хоть и говно, но на нем держится весь современный gamedev, там у них уже такое преимущество над другими движками, что чтобы потерять его, нужно ну просто специально закапывать проект. Unity в плане технологий - отсталый движок, но в плане тулзов, удобства разработки, простоты сборки, размером коммьюнити - пока непревзойденный продукт. Если не брать во внимание некоторые недочеты, для бизнеса юнити это просто единственный выбор. А вообще, если делать что-то реально серьезное, я бы брал Unigine, у них технологии - космос. Посмотрите последнюю демку superposition, там без комментариев.

EvilSpirit
()

27000 треугольников и работать невозможно, всё тормозит, рендеринг по 2-3 сек при перемещении мышкой вставленного объекта для сборки. Проц i5-6300U, попробовал еще в семерке на одном старинном неттопе с AMD, там череда из зависаний по паре минут. И это просто кресло из труб и несколько соединительных элементов...

Да, при повороте камеры все ок, без тормозов.

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 3)
Ответ на: комментарий от EvilSpirit

blend4web

Разрабы не смогли в ООП, вдумчивее посмотрел вчера их API. Но с другой стороны есть другие фреймворки для работы с WebGL.

я бы брал Unigine, у них технологии - космос

А зачем для простенькой CAD уровня SolveSpace такой движок? Разве нельзя конечный рендеринг оформить в виде плагина и там уже смотреть какой движок подключить?

Я просто не вижу смысла на начальном этапе соревноваться с монстрами, по мне нужно делать что-то уровня ThinkerCad, но с функциональностью SolveSpace. А для этого WASM, WebGL и какого-нибудь простого фреймворка хватит более чем.

Единственно, я не специалист по комп. графике и возможно потребуются какие-то оптимизации, которые нельзя будет сделать на базе WASM и WebGL. С другой стороны, недавно читал, что Mozilla сейчас активно работает в эту сторону вплоть до переноса Vulkan API в браузер.

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 1)
Ответ на: комментарий от foror

Как выход можно рисовать 2d каркас и на него цеплять по точкам, но иногда хочется прикинуть как это все будет выглядеть разместив детали «в воздухе» с помощью мыши, а тут такие тормоза.

foror ★★★★★
()
Ответ на: комментарий от foror

Это все из-за того, что вся сцена пересобирается сначала. У меня есть бранчи для фикса этих тормозов, но они принципиально проблему не решают https://github.com/Evil-Spirit/solvespace-master/commits/performance Там архитектурная проблема.

EvilSpirit
()
Ответ на: комментарий от foror

Я просто не вижу смысла на начальном этапе соревноваться с монстрами, по мне нужно делать что-то уровня ThinkerCad, но с функциональностью SolveSpace. А для этого WASM, WebGL и какого-нибудь простого фреймворка хватит более чем.

Да, конечно. Поэтому я и взял Unity, как хороший вариант сделать все на все платформы. К тому же, сейчас походу на рынке не хватает нормального САПР, в котором можно импортить STL, делать сборки на основе него. Я думаю, это было бы неплохо.

EvilSpirit
()
Ответ на: комментарий от EvilSpirit

Попробовал performance бранч и рендеринг тот же. Пришлось лезть в каждую деталь и понижать детализацию до 0.9 (на общей сборке понижение детализации не срабатывает для всех деталей). Еще скрыл соединяющие элементы (на них оказалось по ~1000 треугольников), опять же пришлось в каждую деталь заходить и щелкать галочку, что очень неудобно.

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

В итоге снизил до ~7000 треугольников и получил рендеринг 250 мс, тормоза, но можно жить. Правда это только треть сборки... Как-то можно «замонолитить» часть сборки и импортировать её в конечную сборку и получить с этого какой-то перформанс в рендеринге?

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 2)
Ответ на: комментарий от EvilSpirit

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

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

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 5)
Ответ на: комментарий от EvilSpirit

Кстати, вроде же файл сборки содежит «кеш всех деталей», не? И обновление деталей из внешних (Linked) файлов осущестляется только по нажатию на [Space]

atsym ★★★★★
() автор топика
Ответ на: комментарий от EvilSpirit

все будет летать(по сравнению с тем, что было)

А можешь и свежую 'nightly' сборку для Windows сделать?

atsym ★★★★★
() автор топика
Ответ на: комментарий от EvilSpirit

Спасибо ) После патча - рендеринг 13 мс.

foror ★★★★★
()
Ответ на: комментарий от EvilSpirit

К тому же, сейчас походу на рынке не хватает нормального САПР, в котором можно импортить STL, делать сборки на основе него.

На рынке сейчас не хватает любительского уровня САПР для DIY или мелкосерийного производства.

Но тут даже проблема не в САПР, а в необходимости любителям тратить кучу времени, чтобы найти детали для своего проекта. Мне приходится тратить дни, чтобы найти нужные детали в продаже. Или просто, чтобы понять, что вот такую деталь можно купить, а не изобретать велосипед. А наличие готовых моделей просто на грани фантастики, даже если зайти на сайт производителя.

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

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 2)
Ответ на: комментарий от EvilSpirit

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

Мне бы было проще с такой лицензией при разработке задуманного проекта.

foror ★★★★★
()
Ответ на: комментарий от foror

Но тут даже проблема не в САПР, а в необходимости любителям тратить кучу времени, чтобы найти детали для своего проекта. Мне приходится тратить дни, чтобы найти нужные детали в продаже. Или просто, чтобы понять, что вот такую деталь можно купить, а не изобретать велосипед. А наличие готовых моделей просто на грани фантастики, даже если зайти на сайт производителя.

Понимаю. Однажды я делал автоматическую шторку, вся механика делается за 15 минут, если пройтись по магазинам и купить несколько повсеместно доступных деталей https://github.com/Evil-Spirit/EvilShutter/blob/master/images/FILE0104.JPG клипсы 32мм, подшипники 32мм идеально подходят друг другу. Все детали дешевые. Я тоже все время себе представяю такой сервис, где ты можешь взять OpenSource дизайн и понять, где можно купить эти детали в своем городе.

EvilSpirit
()
Ответ на: комментарий от foror

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

Я думал о сайте, где будет версия и минимальной функциональностью и pro версия, где будет полная функциональность и нативные сборки под разные платформы, высокая производительность и т. д. Эту версию можно подкладывать в коробку с 3д принтерами (договориться с производителем)

EvilSpirit
()
Ответ на: комментарий от foror

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

https://www.3dhubs.com/ у тебя кажется украли идею :)

На thingverse залезь у проекта на вкладку apps, там немало сервисов интегрировано.

Vit ★★★★★
()
Ответ на: комментарий от Vit

Ну да, а когда делали Гугл - Яху задолго украл их идею, если продолжать твою аналогию.

foror ★★★★★
()
Ответ на: комментарий от Vit

На thingverse залезь у проекта на вкладку apps

Какие-то поделки для детей. Как это мне, например, поможет сделать гоночный карт?

foror ★★★★★
()
Ответ на: комментарий от foror

Эти поделки для детей работают прямо сейчас. И пример успешных бизнесов. А карты пока только в твоих фантазиях на лоре. Но конечно твои фантазии в стопиццот раз круче.

Vit ★★★★★
()
Ответ на: комментарий от EvilSpirit

тогда совсем не интересно. на JavaScript точно не вариант. Ничего против не имею, но это извращение.

Странстлируй с того что тебе больше нравится. Либо в webassembly.

Я тебя могу понять как программист, но как юзер - нет. Это удобно, когда тулзу можно запустить «прям щаз».

Vit ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.