Началась эта история с того, что несколько лет назад я купил 3D принтер. Конечно, по началу не представлял толком, как эта технология работает, и насколько прочными и полезными будут его пластиковые изваяния. Однако, быстро натренировавшись и отрегулировав эту машинку, я был удивлён и вполне удовлетворён качеством пластиковых изделий, спайкой слоёв и точностью их геометрических размеров. Конечно, в последствии не обошлось без модернизаций аппарата, но сейчас не об этом.
Печатать игрушки с thingiverse мне, конечно, надоело быстро, да и брал я свой дрыгостол с большим прицелом на техничку. Принтер вскоре стал одной из любимых игрушек, а связка Blender+Cura позволяла лепить модели мелких деталей порой за считаные минуты, отправляя их затем на печать. Сломалось колёсико у дивана - не в магазин же бежать, отломилось какое-нибудь крепление или кронштейн - и уже гудит вентилятор хотэнда. Штырьки, подпятники, элементы механизмов, и конечно, куча всяких баночек и коробочек...
Библиотека STL и 3MF росла. И в какой-то момент стало понятно, что я не помню, в каком файле лежит та или иная деталь. Хоть файлы и имели осмысленные названия на английском, но я просто уже забыл, что и как назвал, и ориентироваться в разрастающейся свалке становилось всё труднее. Нужен был какой нибудь удобный просмотрщик. Вот так и зародился несколько лет назад проект Solid Model Browser.
Приложение создано на платформе WPF и работает под Windows. В окне отображается загруженная модель, панель инструментов-кнопочек, и файловая панель слева, меняющая свою прозрачность по мере её востребованности.
Перемещаясь по списку файлов и каталогов, мышкой или курсорными клавишами, мы сразу же видим выбранную модельку, что удобнее, чем открывать каждую в слайсере или редакторе, только ради того, чтобы вспомнить, что это за модель, или что за версия модели.
Камера управляется мышкой - то есть её вращение и перемещение в пространстве вокруг модели.
Никакой менюшки для настроек я пока не сделал, так что все настройки устанавливаются в файле settings.ini. Этот файл появится после первого запуска программы. Также можно открыть этот файл нажав кнопку с гаечным ключиком - файл откроется в приложении, ассоциированным с данным типом файлов в системе.
Приложение умеет
Открывать для просмотра STL, 3MF, OBJ файлы. Поддерживаются бинарные и текстовые STL форматы, декодирование основной модели из 3MF, частичная поддержка OBJ (только меши из треугольников).
Сохранять текущий вид модели с камеры с заданным разрешением (настройка SaveImageDPI)
Отправлять файл в другое локальное приложение (настройки ExternalApp и ExternalAppArguments), чтобы можно было быстро открыть текущий файл в слайсере или редакторе.
Поворачивать модельку на 90 градусов по всем осям
Включать материалы диффузного рассеяния, отражающего, излучающего и диффузного для внутренней стенки. Настраивать цвета материалов (настройки DiffuseColor, SpecularColor, EmissiveColor, BackDiffuseColor). Настраивая материалы, можно не только менять их цвета, но и прозрачность.
Переключать режимы камеры - перспективный и ортогональный. Менять угол обзора для получения широкоугольного вида, типа эффекта "рыбий глаз".
Показывать оси XYZ
Устранять проблемы нормалей и направления вершин полигонов (только при просмотре, не трогая исходный файл)
Показывать информацию о модели, общее количество вершин, полигонов и нормалей, габариты и координаты центра модели
Также в приложении есть светлая тема, переключается кнопкой с солнышком возле кнопок управления окном.
Правильный подбор материалов может помочь рассмотреть модель лучше.
Можно не только включать и отключать материалы, но и настроить их цвета и прозрачность в файле настроек. Например так:
Параметры приложения
Целевая платформа .NET Framework 4.8, WPF (Windows 7 ... Windows 11)
Размер дистрибутива версии v0.1 около 100 KB
Установка не требуется, скопируйте исполняемый файл в любую пустую папку.
Файл настроек "по умолчанию" создаётся в папке программы после первого запуска.
Настройка загрузки модели в другом приложении
Кнопка со стрелочкой вверх "Open with other application" позволяет запустить другое приложение, передав в него параметр. Для этого нужно в настройках задать два параметра, например так:
ExternalApp=C:\Program Files\UltiMaker Cura 5.8.0\UltiMaker-Cura.exe
ExternalAppArguments=$file$
Тогда при нажатии на кнопку будет запускаться слайсер с нашей моделькой. Переменная $file$ заменяется на полный путь текущего просматриваемого файла модели.
Github
Скачать исходники или последнюю сборку можно на гитхабе.
Надеюсь, кому-то из читателей Solid Model Browser тоже поможет лучше ориентироваться в локальной библиотеке 3D моделей и отправке их на печать. Удачи!
Комментарии (10)
Tirarex
17.10.2024 18:10Хорошая идея, очень давно искал софт который будет быстро открывать 3д модели, дабы не ждать 3ds max/blender и их медленную загрузку. Если добавить поддержку распространенных форматов обычных 3д моделей (fbx / 3ds / gltf /glb и тому подобных) с загрузкой текстур, а так же докурить рендер (pbr / ibl + тени), то будет ультимативное решение для просмотра моделей.
C шейдерами и рендером могу помочь.
questfulcat Автор
17.10.2024 18:10Спасибо, но рендер тут встроенный в WPF, используется контрол Viewport3D, если только в рамках его возможностей докручивать. Если есть идеи - пишите...
Что касается форматов, можно конечно добавить, просто создаются классы для разбора файлов выбранных форматов на базе класса Import. Надо только открытые спецификации форматов или алгоритмы найти. Я хотел сделать ещё импорт blend файлов от блендера, но там как-то сложно всё, пока ещё не разобрался.
eps
17.10.2024 18:10Рекомендую гляделку F3D.
Простая и быстрая, просматривает три десятка форматов, доступна под Linux / Mac / Windows, свободное ПО, а под Windows она ещё и thumbnailer.
Supported file formats
Here is the list of supported file formats:
.vtk : the legacy VTK format
.vt[p|u|r|i|s|m] : XML based VTK formats
.ply : Polygon File format
.stl : Standard Triangle Language format
.dcm : DICOM file format
.nrrd/.nhrd : "nearly raw raster data" file format
.mhd/.mha : MetaHeader MetaIO file format
.tif/.tiff : TIFF 2D/3D file format
.ex2/.e/.exo/.g : Exodus 2 file format
.gml : CityGML file format
.pts : Point Cloud file format
.step/.stp : CAD STEP exchange ISO format
.iges/.igs : CAD Initial Graphics Exchange Specification format
.brep : Open CASCADE BRep format
.xbf : Open CASCADE XBF format
.abc : Alembic format
.vdb : VDB format (experimental)
.obj : Wavefront OBJ file format (full scene)
.gltf/.glb : GL Transmission Format (full scene)
.3ds : Autodesk 3D Studio file format (full scene)
.wrl : VRML file format (full scene)
.fbx : Autodesk Filmbox (full scene)
.dae : COLLADA (full scene)
.off : Object File Format (full scene)
.dxf : Drawing Exchange Format (full scene)
.x : DirectX Format (full scene)
.3mf : 3D Manufacturing Format (full scene)
.usd : Universal Scene Description (full scene)
questfulcat Автор
17.10.2024 18:10Да, это хорошая гляделка, я её видел. Но там, насколько я знаю (по portable версии), каждый файл надо открывать индивидуально. Так можно их и в куре открывать или в блендере. Для удобной навигации по библиотеке это не очень подходит. У меня как раз концепция немного иная, слева файловая панелька, по которой можно быстро перемещаться курсорными кнопками по файлам и каталогам, и сразу видеть результат.
checkpoint
17.10.2024 18:10F3D выглядит интересно, но под Фрю не собирается:
In file included from /home/rz/f3d/application/F3DStarter.cxx:26: /home/rz/f3d/external/dmon/dmon.h:148:6: error: "unsupported platform" 148 | # error "unsupported platform" | ^ 1 error generated.
Гондурасы!
checkpoint
17.10.2024 18:10Для просмотра всякого рода 3D моделей (STEP, IGES, WRML, STL и т.д.) использую опенсорсную тулзу Mayo. Прекрасно работает с GL на FreeBSD. Имеет очень удобный и простой интерфейс. Есть измерительные тулы, срезы, проекции. Позволяет экспортировать всю модель или её части в любый поддерживаемые формат. Очень шустрая и стабильная утилита, испытана на весьма тяжелых моделях пресс-форм с сотнями компонентов.
vvbob
17.10.2024 18:10а связка Blender+Cura позволяла лепить модели мелких деталей порой за считаные минуты, отправляя их затем на печать.
Блендер все-же под техничку не очень заточен, лучше Солид какой-либо для этого юзать или что-то подобное.
lonelymyp
Если хочется просто ориентироваться в проводнике по куче 3Д файлов, то иконки с превью можно включить через PowerToys например или любую другую бесплатную софтину.
questfulcat Автор
Ясно, спасибо за информацию, очень давно не ставил powertoys. Но я так понимаю, тут только мелкие превьюшки, покрутить их нельзя. У меня бывает несколько версий одной детали и на таком превью их будет не отличить. И это только для STL, а 3MF, основной формат проекта Cura не поддерживается?