
Началась эта история с того, что несколько лет назад я купил 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 моделей и отправке их на печать. Удачи!