Förderjahr 2018 / Project Call #13 / ProjektID: 3511 / Projekt: CADMeshConverter
Die Evaluierung der Industrie-Formate sowie unterschiedlicher Software & Bibliotheken wurde abgeschlossen. Nun widmen wir uns dem technischen Konzept sowie der Softwarearchitektur.
Technisches Konzept
Das Konzept des CADMeshConverters sieht eine Unterstützung folgender Dateiformate vor:
Import:
- STL
- STEP
- OBJ
Das Wavefront OBJ Dateiformat ist zwar kein klassisches CAD Dateiformat, allerdings ermöglicht die Unterstützung auch die Reduzierung von Modellen welche bereits in einem MR tauglichen Format vorliegen.
Export:
- OBJ
- FBX
- glTF
Funktionalität
Der CADMeshConverter soll bei Projektende eine möglichst automatische Konvertierung von Modellen ermöglichen.
Zuerst wird von uns der „Expertenmodus“ implementiert, weil die anzuwendenden Operationen manuell parametrisiert werden müssen, also entsprechendes Know-How vorausgesetzt wird.
In weiterer Folge sieht das Konzept auch einen „Automodus“ vor, welcher im Endeffekt den gewünschten, semiautomatisierten Workflow abbildet. Dieser soll über den gleichen Funktionsumfang wie der „Expertenmodus“ verfügen, jedoch werden für die Konvertierung vorkonfigurierte Parametersets verwendet.
Die Wahl der Parameter ist grundsätzlich kein triviales Problem, da gleiche Parameter bei unterschiedlichen Modellen komplett andere Ergebnisse zur Folge haben können. Aus diesem Grund wird der „Automodus“ erst in späteren Projektschritten implementiert, da es einerseits viele Testversuche benötigt, andererseits eine Qualitätsüberprüfung der Konvertierung sinnvoll und wünschenswert wäre.
Folgende Funktionalitäten werden vom Konzept als notwendig vorgesehen:
- Import von Modellen
- Ausbessern und bereinigen der importierten Modelle
- Neuberechnung und Normalisierung der Normalen
- Dezimierung des Modells
- Export des Modells im OBJ Format
Eine niedrigere Priorität haben folgende Funktionen:
- Oberflächenrekonstruktion, notwendig etwa bei 3D Scan Daten
- Export als glTF und FBX
Im Rahmen der Konzepterstellung wurden auch weitere Features angedacht, allerdings wurde aus unterschiedlichen Gründen (erforderliche Zeit, Komplexität, …) beschlossen diese im Rahmen dieses Projekts nicht zu implementieren:
- Hidden Removal (Entfernen von nicht sichtbaren Flächen)
- Generierung von LOD (Level of Detail) Ketten
- Beibehaltung von Model (Bauteil) Hierarchien
- Textur und Farbunterstützung
- Unterstützung für Animationen
Softwaremodule
Die Softwarearchitektur des CADMeshConverters besteht aus drei Hauptkomponenten.
Core
Diese Komponente ist für die Bereitstellung der Kernfunktionalität zuständig. Im Wesentlichen umfasst dies den Aufruf und das Management des Meshlab Command Line Interface, also die Verarbeitung von Filterscripts.
Bei Meshlab werden sämtliche, auf Modelle anwendbaren Operationen als Filter bezeichnet. Bei jeder Anwendung eines Filters werden die verwendeten Parameter des Filters aufgezeichnet und können in ein Skript exportiert werden. Diese Skripte verwenden wir für die Bereitstellung der im Konzept aufgeführten Funktionalitäten.
Cloud
Der Hauptbestandteil des CADMeshConverters. Diese Komponente öffnet den CADMeshConverter nach „außen“ über eine REST (Representational State Transfer) Schnittstelle und stellt den Service für die Web Applikation zur Verfügung. Des Weiteren ist die Cloud Komponente auch für die Datenspeicherung zuständig.
REST API
Diese Schnittstelle umfasst sämtliche Funktionen die auch über die Web Applikation möglich sind. D.h. es ist möglich Modelle hochzuladen, zu konvertieren und die konvertierten Modelle wieder herunterzuladen.
Diese Schnittstelle ermöglicht es auch, CADMeshConverter Clients für beliebige Betriebssysteme zu entwickeln und erlaubt somit eine Anbindung der Konvertierung in eigene Workflows.
WebApplicationService
Die Web Applikation greift über das WebApplication Service auf die REST Schnittstelle zu .
Storage
Dieses Modul ist sowohl für den Abruf vorhandener Filterscripts als auch für die Ablage von konvertierten Modellen zuständig. Das Hinzufügen von neuen Filterscripts geschieht manuell.
Client
Im Zuge dieses Projekts wird eine Webapplikation implementiert, welche einerseits zu Testzwecken, andererseits als Tool für die manuelle Konvertierung dient. Diese ermöglicht den Upload und die Konvertierung von Modellen sowie den Download der konvertierten Daten. Des Weiteren ist eine 3D Ansicht des konvertierten Modells möglich.