
Началась эта история с того, что несколько лет назад я купил 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)
 - Tirarex17.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 файлов от блендера, но там как-то сложно всё, пока ещё не разобрался. 
 
 - eps17.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 версии), каждый файл надо открывать индивидуально. Так можно их и в куре открывать или в блендере. Для удобной навигации по библиотеке это не очень подходит. У меня как раз концепция немного иная, слева файловая панелька, по которой можно быстро перемещаться курсорными кнопками по файлам и каталогам, и сразу видеть результат. 
  - checkpoint17.10.2024 18:10- F3D выглядит интересно, но под Фрю не собирается: - 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.- Гондурасы! 
 
 - checkpoint17.10.2024 18:10- Для просмотра всякого рода 3D моделей (STEP, IGES, WRML, STL и т.д.) использую опенсорсную тулзу Mayo. Прекрасно работает с GL на FreeBSD. Имеет очень удобный и простой интерфейс. Есть измерительные тулы, срезы, проекции. Позволяет экспортировать всю модель или её части в любый поддерживаемые формат. Очень шустрая и стабильная утилита, испытана на весьма тяжелых моделях пресс-форм с сотнями компонентов. 
 - Pavel_nobranch17.10.2024 18:10- 3д принтер вещь полезная, из недавнего напечатал потерявщуюся набойку  - сфотографировал, обвел во freecad  
 - vvbob17.10.2024 18:10- а связка Blender+Cura позволяла лепить модели мелких деталей порой за считаные минуты, отправляя их затем на печать. - Блендер все-же под техничку не очень заточен, лучше Солид какой-либо для этого юзать или что-то подобное. 
 
           
 

lonelymyp
Если хочется просто ориентироваться в проводнике по куче 3Д файлов, то иконки с превью можно включить через PowerToys например или любую другую бесплатную софтину.
questfulcat Автор
Ясно, спасибо за информацию, очень давно не ставил powertoys. Но я так понимаю, тут только мелкие превьюшки, покрутить их нельзя. У меня бывает несколько версий одной детали и на таком превью их будет не отличить. И это только для STL, а 3MF, основной формат проекта Cura не поддерживается?