Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
W
web3dscans1
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 17
    • Issues 17
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Web3DScans
  • web3dscans1
  • Wiki
  • ModelViewer Details

Last edited by Thomas Varchmin Jul 27, 2023
Page history

ModelViewer Details

Idee:

Zeige 3DModell mit Referenzelementen an, welche einen Rückschluss auf die reale Größe zulassen.

Umsetzung:

Grundlage ist die JavaScript-Bibliothek model-viewer (https://modelviewer.dev/). Die Verwendung wird durch das JavaScript-File rock3Dviewer.js und durch Elemente in der index.html, bzw. derzeit in indexBIG.html und indexSM.html, ermöglicht. Im Folgenden wird dafür indexXYZ.html verwendet - je nach Entwicklungsstand muss dies gedanklich durch die korrekte Datei ersetzt werden.

Wesentliche Elemente in der indexXYZ.html (für weitergehende Details siehe https://modelviewer.dev/):

1.) Die "hotspots" (in den Tags <button slot = "hotspot-...>) bilden Verwendbare 3D-Positionen ("dot") bzw. Ebenen ("dim") in dem 3D-Raum, in welchem auch das 3DModell angezeigt wird. Diese "hotspots" werden im Weiteren für die Anfangs- und Endpunkte der Bemaßungslinien sowie deren Beschriftung (Länge der Linie Bezogen auf die realen Ausdehnungen der dargestellten Probe) verwendet.

2.) Die Grundlage für die Bemaßungslinien bildet der Inhalt des Tags , also die fünf Tags , welche dynamisch durch Funktionen in der rock3DViewer.js verwendet/manipuliert werden - z.B. um sie auszublenden, wenn sie durch Drehung des 3DModells für die Betrachter "hinter" dem 3DModell der Probe sind.

3.) Weiterhin befinden sich hier auch die Elemente zur Beeinflussung gewisser Darstellungsparameter (siehe Ausarbeitung von Katharina Fritzler).

4.) WICHTIG: Die Bemaßungslinien können mit einer Checkbox ein- und ausgeblendet werden. Um zu verhindern, dass gewisse Kontrollelemente zur Beeinflussung gewisser Darstellungsparameter zusammen mit den Bemaßungslinien ausgeblendet werden, wurden Elementen (bzw. dem HTML-Tags) das Attribut "notHideWithDimensions" zugefügt werden (ohne Wert, d.h. kein Gleichheitszeichen hinter Attributnamen!). In der rock3DViewer.js wird das Vorhandensein/Nichtvorhandensein dieses Attributs dann als Filter für das an die Bemaßungslinien gebundene Ein-/Ausblendeverhalten verwendet.

Wesentliche Elemente in rock3DViewer.js (für weitergehende Details siehe https://modelviewer.dev/):

1.) Das oben angesprochene Attribut notHideWithDimension wird in

modelViewer.querySelectorAll('button:not([notHideWithDimensions])')

verwendet, um die angesprochene gemeinsame Ausblendung mit den Bemaßungslinien zu verhindern.

2.) Die Funktion

const renderSVG = () => { drawLine(dimLines[0], modelViewer.queryHotspot('hotspot-dot+X-Y+Z'), modelViewer.queryHotspot('hotspot-dot+X-Y-Z'), modelViewer.queryHotspot('hotspot-dim+X-Y')); drawLine(dimLines[1], modelViewer.queryHotspot('hotspot-dot+X-Y-Z'), modelViewer.queryHotspot('hotspot-dot+X+Y-Z'), modelViewer.queryHotspot('hotspot-dim+X-Z')); drawLine(dimLines[2], modelViewer.queryHotspot('hotspot-dot+X+Y-Z'), modelViewer.queryHotspot('hotspot-dot-X+Y-Z'), modelViewer.queryHotspot('hotspot-dim+Y-Z')); drawLine(dimLines[3], modelViewer.queryHotspot('hotspot-dot-X+Y-Z'), modelViewer.queryHotspot('hotspot-dot-X-Y-Z'), modelViewer.queryHotspot('hotspot-dim-X-Z')); drawLine(dimLines[4], modelViewer.queryHotspot('hotspot-dot-X-Y-Z'), modelViewer.queryHotspot('hotspot-dot-X-Y+Z'), modelViewer.queryHotspot('hotspot-dim-X-Y')); };

verwaltet die Anzeige der fünf Bemaßungslinien. Die inneren Aufrufe von

drawLine("Linie","StartPunkt","EndPunkt","Sichtbarkeitshorizont")

sind wie folgt zu verstehen: Das in der indexXYZ.html vordefinierte HTML-svg-Element "Linie" wird von "StartPunkt" bis "EndPunkt" gerendert. Dabei kann optional mit "Sichtbarkeitshorizont" eine in der indexXYZ.html vordefinierte Ebene ("hotspot-...-dim") verwendet werden, um festzulegen, dass diese Linie nur auf einer Seite der Ebene sichtbar ist.

Clone repository
  • 3.3 3D Viewer
  • 3D Darstellungsparameter
  • 3D Formate
  • 3D Viewer Komponente
  • 3D Viewer
  • Anzeigefenster
  • Arbeitsumgebung
  • Aufgabenbeschreibung
  • BOM
  • Bohrprofil Anzeige
  • CrossReferencer
  • Desktop und mobile Version
  • Endbericht
  • Generierung der 3D Modelle
  • Geodatengrundlage beim HLNUG
View All Pages