Details zur Verwendung von Bimface in Vue

Details zur Verwendung von Bimface in Vue

Der gesamte Prozess gliedert sich in folgende Schritte:

  • 1. Installieren Sie vue -Gerüst
  • 2. Erstellen Sie ein Projekt
  • 3. Importieren Sie bimface -Antwortdateien
  • 4. Ändern Sie die Datei App.vue , um das Rendern der Seite zu erreichen

1. Installieren Sie das Vue-Gerüst

Hier kommt weiterhin Vue CLI zum Einsatz

Verwenden Sie den folgenden Befehl, um das Vue-Scaffolding-Tool global zu installieren

npm install -g @vue/cli


Nach der Installation können Sie die Spiegelquelle durch die Installation nrm wechseln oder direkt mit dem nächsten Schritt fortfahren.

2. Erstellen Sie ein Projekt

Suchen Sie ein geeignetes Verzeichnis, öffnen Sie cmd oder powshell und geben Sie den folgenden Befehl ein, um ein Projekt mit dem Namen bimface-demo zu erstellen

 vue erstellt Bimface-Demo


Als nächstes gibt es eine Reihe von Auswahlmöglichkeiten, die durch Screenshots demonstriert werden

Wählen Sie mit den Auf- und Abwärtspfeilen Manually select features aus. Dies bedeutet, dass die Standardkonfiguration nicht anwendbar ist. Stattdessen müssen Sie das Vue-Projekt selbst konfigurieren und dann die Eingabetaste drücken.

Als nächstes wirst du gefragt, ob du die obige Auswahl als Vorlage speichern möchtest. Diese Vorlage kannst du direkt verwenden, wenn du das nächste Mal ein Vue-Projekt erstellst. Gib hier n ein und drücke die Eingabetaste, um zu warten, bis das Projekt erstellt wurde.

3.1 Ausführen des Projekts

Führen Sie zuerst das Projekt aus, um zu sehen, ob das Projekt erfolgreich erstellt wurde

Verwenden Sie vs cde (vs Code wird anstelle von Webstorm usw. empfohlen), um das neu erstellte Projekt bimface-demo zu öffnen

Um es zu öffnen, wählen Sie Datei -> Ordner öffnen in der Menüleiste von vs cde, wählen Sie dann den Ordner bimface-demo aus und klicken Sie dann auf Ordner auswählen.

Klicken Sie nach dem Öffnen im „Explorer“ auf der linken Seite des Editors mit der rechten Maustaste auf den leeren Bereich und wählen Sie „In geerbtem Terminal öffnen“ oder verwenden Sie die Tastenkombination Strg+` (die Taste über der TAB-Taste), um das Terminal im Editor zu öffnen. Dies ist ein Befehlszeilentool ähnlich wie cmd. Wir können hier einige Befehle eingeben, ohne cmd oder Powshell speziell zu öffnen.

Geben Sie den folgenden Befehl in das Terminal ein und drücken Sie die Eingabetaste, um den Dienst zu starten

npm ausführen dienen
 

Wenn die folgende Schnittstelle angezeigt wird, bedeutet dies, dass der Start erfolgreich war.

3.2 Bimface-Dateien importieren

Das Obige sind einige Vorbereitungen. Jetzt beginnen wir mit dem Schreiben des Codes.

Da Glodon keine verwandten Pakete von bimface bereitstellt, wie etwa BimfaceSDKLoader , ist es nicht möglich, BimfaceSDKLoader über npm im Vue-Projekt zu installieren und kann daher nur auf herkömmliche Weise eingeführt werden.

Suchen Sie im Projektverzeichnis im öffentlichen Verzeichnis nach index.html und öffnen Sie es.

Importieren Sie hier mehrere in demo vorgestellte CSS- und JS-Dateien. Vergessen Sie nicht, die Dateien zu speichern

4. Implementieren Sie das Seiten-Rendering

Suchen Sie zunächst die Datei .eslintrc.js im Stammverzeichnis des Projekts, öffnen Sie sie und kommentieren Sie die rot markierte Datei aus, um die Codeprüfung von ESLint abzubrechen und sich viel Ärger zu ersparen.

Suchen Sie dann die Datei App.vue im Verzeichnis src des Projektstammverzeichnisses, öffnen Sie sie, schreiben Sie Code auf diese Seite und rendern Sie das bimface -Modell

4.1 HTML ändern

Kopieren Sie den Projektcode in der Demo in template in der Vue-Datei

<Vorlage>
  <div id="app">
    <Abschnittsklasse="wrap">
      <Abschnitt Klasse="Viewer-Box">
        <div Klasse="viewer-2d" id="viewer2d"></div>
        <div Klasse="viewer-3d" id="viewer3d"></div>
      </Abschnitt>
    </Abschnitt>
  </div>
</Vorlage>


4.2 CSS ändern

Löschen Sie den gesamten Code im Style-Tag in der Datei

4.3 JS ändern

Ändern Sie den JS-Code in demo und kopieren Sie ihn in das Skript-Tag

Fügen Sie eine Datenfunktion hinzu, um die in der Komponente benötigten Daten zu speichern

Fügen Sie die mounted Methode hinzu und fügen Sie den folgenden Code hinzu

Beachten Sie, dass das Schlüsselwort this an der entsprechenden Stelle hinzugefügt wird, um die aktuelle Komponente anzuzeigen.

 montiert() {
    let Optionen = neue BimfaceSDKLoaderConfig();
    Optionen.viewToken = dieses.viewToken;
    BimfaceSDKLoader.load(Optionen, dieser.erfolgreicheRückruf, dieser.fehlerhafteRückruf);
  },


Fügen Sie den methods zwei benutzerdefinierte Methoden successCallback und failureCallback hinzu

Hinweis: Zu Beginn der Methode wird die Variable that so deklariert, dass sie auf this verweist, da in dieser Funktion in einigen Fällen this nicht mehr auf die aktuelle Vue-Komponente verweist

Methoden:{
     Erfolgsrückruf(MetaData anzeigen) {
       lass das = dies
      //DOM-Element abrufen let dom3d = document.getElementById('viewer3d');
      //Konfigurationsparameter let config = new Glodon.Bimface.Application.WebApplication3DConfig();
      config.domElement = dom3d;
      config.enableViewhouse = falsch;
      //Symbolleiste abbrechen config.Toolbars = [];
      // Viewer3D-Objekt erstellen let app = new Glodon.Bimface.Application.WebApplication3D(config);
      // Modell hinzufügen app.addView(that.viewToken);
      let viewer3D = app.getViewer();
 
      //Modell-Klick-Listener-Ereignis app.addEventListener(Glodon.Bimface.Viewer.Viewer3DEvent.MouseClicked, function (objectData) {
        Komponenten-ID = Objektdaten.Objekt-ID;
        // Holen Sie sich die Komponenten-ID der entsprechenden Zeichnung entsprechend der Modellkomponenten-ID
        that.viewerDrawing.toDrawingId(that.componentId, getElementId);
        //Definieren Sie die Rückruffunktion, um die der Zeichenfunktion entsprechende Element-ID abzurufen getElementId(elementId) {
          wenn (Element-ID) {
            //Wenn die aktuelle Zeichnung eine entsprechende Modellkomponenten-ID hat, zoomen Sie auf die entsprechende Position that.viewerDrawing.zoomToObject(elementId);
            dass.viewerDrawing.update();
          } anders {
            //Wenn die aktuelle Zeichnung keine entsprechende Modellkomponenten-ID hat, muss weiter ermittelt werden, ob eine Zeichnung vorhanden ist, die die Komponente enthält viewer3D.getDrawingListbyId(that.fileId, that.componentId, getDrawing);
            Funktion getDrawing(Daten) {
              if (Datenlänge) {
                // Nehmen Sie die erste Zeichnung für die 2D- und 3D-Verknüpfung let drawingId = data[0].viewInfo.id;
                dass.viewerDrawing.destroy();
                dass.viewerDrawing.load(viewToken, drawingId)
              }
            }
          }
        }
      }
      )
 
      // Auf das Ereignis „Hinzufügen der Ansicht abgeschlossen“ warten app.addEventListener(Glodon.Bimface.Viewer.Viewer3DEvent.ViewAdded, function () {
        // 3D-Modell rendern app.render();
        //Adaptive Bildschirmgröße window.onresize = function () {
          viewer3D.resize(Dokument.documentElement.Clientbreite, Dokument.documentElement.Clienthöhe – 40)
        }
        //Verstecke das obere rechte Viewhouse
        //viewer3D.hideViewHouse();
        let options2d = neue BimfaceSDKLoaderConfig();
        options2d.viewToken = das.viewToken;
        options2d.viewType = BimfaceViewTypeOption.DrawingView;
        BimfaceSDKLoader.load(Optionen2d, Rückruferfolg2d, Rückruffehler2d);
        Funktion successCallback2d(viewMetaData) {
          let dom2d = document.getElementById('viewer2d');
          config2d = neues Glodon.Bimface.Viewer.ViewerDrawingConfig();
          config2d.domElement = dom2d;
          //Zeichnung hinzufügen that.viewerDrawing = new Glodon.Bimface.Viewer.ViewerDrawing(config2d);
          Verwenden Sie diese Option, um Zeichnungs-Url zu synchronisieren.
          //Wenn es ein einzelnes Modell ist, übergeben Sie einfach die Zeichnungs-ID
          lass _id = 582803;
          das.viewerDrawing.load(das.viewToken, _id);
 
          //Wenn es sich um ein integriertes Modell handelt, müssen Sie die Zeichnungs-ID und die Datei-ID des Einzelmodells übergeben
          // lass _id =1287057;
          // lass _fileid =1628186476905664;
          // viewerDrawing.load(viewToken,_id,_fileid);
 
          // Auf das Ereignis zum Abschluss des Ladens der Zeichnung warten that.viewerDrawing.addEventListener(Glodon.Bimface.Viewer.ViewerDrawingEvent.Loaded, zoomToElement);
 
          Funktion zoomToElement() {
            wenn (diese.Komponenten-ID) {
              that.viewerDrawing.toDrawingId(that.componentId, Funktion (elementId) {
                //Auf die entsprechende Position zoomen that.viewerDrawing.zoomToObject(elementId);
                dass.viewerDrawing.update();
                Konsole.log(Element-ID);
              })
            } anders {
              console.log("!Komponenten-ID");
            }
          }
 
          that.viewerDrawing.addEventListener(Glodon.Bimface.Viewer.ViewerDrawingEvent.SelectionChanged, Funktion (Objektdaten) {
            wenn (ObjektDatenlänge > 0) {
              // Holen Sie sich die entsprechende Modellkomponenten-ID entsprechend der in der Zeichnung angeklickten Komponenten-ID
              : Wenn Sie componentId_2 als .viewerDrawing.toModelId(objectData[0]) definieren, müssen Sie die Komponenten-ID des Objekts angeben.
              viewer3D.clearIsolation();
              //Suchen Sie die Komponente viewer3D.setSelectedComponentsById([componentId_2]);
              //Ob eine Komponente vorhanden ist let isExist = viewer3D.getViewer().getComponentInfoByUserId(componentId_2);
              wenn (ist vorhanden) {
                viewer3D.zoomToSelectedComponents();
              } anders {
                viewer3D.render();
              }
            }
          })
        }
        Funktion failureCallback2d(Fehler) {
          konsole.log(Fehler);
        }
      })
    },
    Fehlerrückruf(Fehler) {
      konsole.log(Fehler);
    }
  }

Dies ist das Ende dieses Artikels über die Einzelheiten zur Verwendung von bimface in vue . Weitere relevante Inhalte zur Verwendung von Bimface in Vue finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

<<:  So erreichen Sie die maximale Anzahl von Verbindungen in MySQL

>>:  So fügen Sie eine Popup-Aktionsschaltfläche unten für „Select“ und „Cascader“ von Element-UI hinzu

Artikel empfehlen

Verbesserung der Wirkung von Hyperlinks im Webdesign und in der Produktion

Hyperlinks ermöglichen es Benutzern, sofort von ei...

Konvertierung von virtuellem Dom in reales Dom mit Vue

Es gibt eine andere Baumstruktur Javascript-Objek...

So lösen Sie das Problem des verstümmelten DOS-Fensters in MySQL

Das Problem mit dem verstümmelten Code ist folgen...

Vue implementiert mehrere Ideen zum Themenwechsel

Inhaltsverzeichnis Themen dynamisch ändern Die er...

Linux implementiert den Quellcode des Zahlenratespiels

Ein einfacher Linux-Ratespiel-Quellcode Spielrege...

Vue + SSM realisiert den Vorschaueffekt beim Hochladen von Bildern

Die aktuelle Anforderung lautet: Es gibt eine Sch...

Detaillierte Erklärung der Rolle von Explain in MySQL

1. MySQL-Index Index: Eine Datenstruktur, die MyS...

18 Killer-JavaScript-Einzeiler

Vorwort JavaScript erfreut sich weiterhin wachsen...

ReactHooks Batch-Update-Status und Abrufen von Routenparametern Beispielanalyse

Inhaltsverzeichnis 1. So führen Sie stapelweise U...

Implementierung der Wiederaufnahme des K8S-Knotens in den Master-Cluster

1. Knoten löschen Führen Sie kubectl delete node ...