Началась эта история с того, что несколько лет назад я купил 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)


  1. lonelymyp
    17.10.2024 18:10

    Если хочется просто ориентироваться в проводнике по куче 3Д файлов, то иконки с превью можно включить через PowerToys например или любую другую бесплатную софтину.


    1. questfulcat Автор
      17.10.2024 18:10

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


  1. Tirarex
    17.10.2024 18:10

    Хорошая идея, очень давно искал софт который будет быстро открывать 3д модели, дабы не ждать 3ds max/blender и их медленную загрузку. Если добавить поддержку распространенных форматов обычных 3д моделей (fbx / 3ds / gltf /glb и тому подобных) с загрузкой текстур, а так же докурить рендер (pbr / ibl + тени), то будет ультимативное решение для просмотра моделей.

    C шейдерами и рендером могу помочь.


    1. questfulcat Автор
      17.10.2024 18:10

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

      Что касается форматов, можно конечно добавить, просто создаются классы для разбора файлов выбранных форматов на базе класса Import. Надо только открытые спецификации форматов или алгоритмы найти. Я хотел сделать ещё импорт blend файлов от блендера, но там как-то сложно всё, пока ещё не разобрался.


  1. 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)


    1. questfulcat Автор
      17.10.2024 18:10

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


    1. checkpoint
      17.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.

      Гондурасы!


  1. checkpoint
    17.10.2024 18:10

    Для просмотра всякого рода 3D моделей (STEP, IGES, WRML, STL и т.д.) использую опенсорсную тулзу Mayo. Прекрасно работает с GL на FreeBSD. Имеет очень удобный и простой интерфейс. Есть измерительные тулы, срезы, проекции. Позволяет экспортировать всю модель или её части в любый поддерживаемые формат. Очень шустрая и стабильная утилита, испытана на весьма тяжелых моделях пресс-форм с сотнями компонентов.


  1. Pavel_nobranch
    17.10.2024 18:10

    3д принтер вещь полезная, из недавнего напечатал потерявщуюся набойку

    сфотографировал, обвел во freecad
    сфотографировал, обвел во freecad


  1. vvbob
    17.10.2024 18:10

    а связка Blender+Cura позволяла лепить модели мелких деталей порой за считаные минуты, отправляя их затем на печать. 

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