1. Aktuelle Situation Das Erstellen und Ändern Um Entwicklungssprachen und -umgebungen wie Visual C++ und ObjectARX dürften viele Entwickler abgeschreckt haben. Und wie sieht es mit einigen einfachen Szenarien aus, etwa der automatischen Generierung von Diagrammen auf der Grundlage von Daten oder der Durchführung einiger sehr einfacher Änderungen an vorhandenen Diagrammen? Gibt es dafür eine einfache Methode oder Sprache und Entwicklungsumgebung? 2. CAD-Grafiken mit JS erstellen und ändern Weijie Map implementiert die häufig verwendete 2.1 Unterstützte CAD-Entitätstypen
Nehmen wir als Beispiel ein neues Basketballfelddiagramm. Der entsprechende Code lautet wie folgt: (asynchron () => { // --Neue Karte erstellen --Erstellen Sie im Hintergrund eine neue CAD-Karte und öffnen Sie sie dann im Frontend // js-Code let svc = new vjmap.Service(env.serviceUrl, env.accessToken) : Lassen Sie doc = neues vjmap.DbDocument(); lass Entitäten = []; let line1 = neues vjmap.DbLine(); Zeile1.start = [0, 0] Zeile1.Ende = [0, 15] entities.push(Zeile1) let line2 = neues vjmap.DbLine(); Zeile2.start = [0, 14.1] Zeile2.Ende = [2,99, 14,1] entities.push(Zeile2) let line3 = neues vjmap.DbLine(); Zeile3.start = [0, 0,9] Zeile3.Ende = [2,99, 0,9] entities.push(Zeile3) let line4 = neues vjmap.DbLine(); Zeile4.start = [0, 9,95] Zeile4.Ende = [5,8, 9,95] entities.push(Zeile4) let line5 = neues vjmap.DbLine(); Zeile5.start = [0, 5,05] Zeile5.Ende = [5.8, 5.05] let hatch = neues vjmap.DbHatch(); Schraffurmuster = "SOLID"; Schraffurfarbe = 0xB43F32; schraffurpunkte = [zeile4.start, zeile4.ende, zeile5.ende, zeile5.start]; entities.push(Schraffur); entities.push(Zeile4) entities.push(Zeile5) let line6 = neues vjmap.DbLine(); Zeile6.start = [5.8, 5.05] Zeile6.Ende = [5,8, 9,95] entities.push(Zeile6) lass arc1 = neues vjmap.DbArc(); arc1.center = [5.7963, 7.504]; Bogen1.Radius = 1,8014; arc1.startAngle = 270 * Math.PI / 180.0; arc1.endAngle = 90 * Math.PI / 180,0; Entitäten.push(arc1) lass arc2 = neues vjmap.DbArc(); arc2.center = [5.7963, 7.504]; Bogen2.Radius = 1,8014; arc2.startAngle = 90 * Math.PI / 180.0; arc2.endAngle = 270 * Math.PI / 180,0; //arc2.linetype = "GESTRICHEN" Entitäten.push(arc2) lass arc3 = neues vjmap.DbArc(); arc3.center = [1,575, 7,5]; Bogen3.Radius = 6,75; arc3.startAngle = 282 * Math.PI / 180,0; arc3.endAngle = 78 * Math.PI / 180,0; Entitäten.push(arc3) let block = neues vjmap.DbBlock(); block.name = "Ball"; block.ursprung = [0, 0] block.entitys = Entitäten; doc.appendBlock(block); let blockRef1 = neues vjmap.DbBlockReference(); blockRef1.blockname = "Ball"; blockRef1.position = [0, 0]; doc.appendEntity(blockRef1); let blockRef2 = neues vjmap.DbBlockReference(); blockRef2.blockname = "Ball"; blockRef2.position = [28, 15]; blockRef2.rotation = Math.PI; doc.appendEntity(blockRef2); let otherEnts = [ neue vjmap.DbLine({ Anfang: [0, 15], Ende: [28, 15] }), neue vjmap.DbLine({ Anfang: [0, 0], Ende: [28, 0] }), neue vjmap.DbLine({ Anfang: [14, 0], Ende: [14, 15], Farbindex: 1 }), neues vjmap.DbCircle({ Mitte: [14, 7,5], Radius: 1,83, Farbe: 0xFF0000 }), neues vjmap.DbText({ Position: [14, 16], Inhalt: „Basketball-Court-Diagramm“, Farbindex: 1, horizontaler Modus: 4, Höhe: 1, }) ] doc.appendEntity(andereEnts); // js-Code let res = warte auf svc.updateMap({ Karten-ID: "basketballCourt", Dateidoc: doc.toDoc(), mapopenway: vjmap.MapOpenWay.Speicher, style: vjmap.openMapDarkStyle() // Wenn das Div eine dunkle Hintergrundfarbe hat, wird hier auch der dunkle Hintergrundstil übergeben}) wenn (res.error) { Nachricht.Fehler(res.Fehler) } let mapExtent = vjmap.GeoBounds.fromString(res.bounds); let prj = neues vjmap.GeoProjection(mapExtent); var map = neues vjmap.Map({ Container: 'Map', // Container-ID Stil: svc.rasterStyle(), Mitte: prj.toLngLat(mapExtent.center()), Zoom: 2, renderWorldCopies: false }); Karte.Anhängen(svc, prj); map.fitMapBounds(); map.addControl(neues vjmap.NavigationControl()); map.addControl(neues vjmap.MousePositionControl({showZoom: true})); map.enableLayerClickHighlight(svc, e => { e && Nachricht.info(`Typ: ${e.name}, Objekt-ID: ${e.objectid}, Ebene: ${e.layerindex}`); }) })(); Nach der Erstellung sieht die Web-Anzeige folgendermaßen aus: Die erstellte DWG-Zeichnung kann in AutoCAD geöffnet werden: 2.2 Änderung oder Löschung Ändern Sie die Karte, von der das Attribut „ Zum Löschen geben Sie Der Beispielcode lautet wie folgt: : Lassen Sie doc = neues vjmap.DbDocument(); /** Die Karte, aus der die Daten stammen. Die Daten werden auf dieser Karte geändert, hinzugefügt oder gelöscht. Das Format ist Karten-ID/Version, z. B. exam/v1. */ doc.from = "basketballCourt/v1"; // Ändern oder löschen Sie eine Entität, indem Sie den Entitäts-Handle `objectid` übergeben. Wenn es keine `objectid` gibt, bedeutet dies, dass let modifyEnts = [ hinzugefügt wird. /*Überarbeiten*/ neues vjmap.DbCircle({ Objekt-ID: "71", // Entitäts-Handle. Wenn der Entitäts-Handle übergeben wird, bedeutet dies, dass diese Entität geändert oder gelöscht werden soll. Farbindex: 2 }), /*löschen*/ neues vjmap.DbText({ objectid: "73", // Entitäts-Handle. Wenn der Entitäts-Handle übergeben wird, bedeutet dies, dass diese Entität geändert oder gelöscht werden soll. delete: true // bedeutet löschen}), /*Neu hinzugefügt (keine Objekt-ID übergeben)*/ neues vjmap.DbMText({ Position: [14, -2], Inhalt: „Ich bin ein mehrzeiliger Text“, Farbindex: 3, Anhang: 2, Höhe: 1, }) ] doc.appendEntity(modifizierteEnts); // js-Code let res = warte auf svc.updateMap({ Karten-ID: "newBasketballCourt", Dateidoc: doc.toDoc(), mapopenway: vjmap.MapOpenWay.Speicher, style: vjmap.openMapDarkStyle() // Wenn das Div eine dunkle Hintergrundfarbe hat, wird hier auch der dunkle Hintergrundstil übergeben}) Die Ergebnisse sind wie folgt: Sie können die Demo-Adresse https://vjmap.com/guide/newmap.html besuchen, um den Effekt zu erleben 3. Anwendungsszenarien Es eignet sich für Szenarien, in denen Daten auf dem Front-End vorhanden sind und diese online erstellt oder basierend auf der aktuellen CAD-Grafik geändert oder gelöscht werden müssen. Sie können beispielsweise die nationalen Dies ist das Ende dieses Artikels zum Erstellen und Ändern von CAD-Grafiken über JavaScript im Frontend. Weitere Informationen zum Erstellen und Ändern von CAD-Grafiken über JavaScript im Frontend finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: mysql8.0.23 Linux (Centos7) Installation vollständiges und ausführliches Tutorial
>>: Verstehen Sie den Unterschied zwischen BR- und P-Tags anhand von Beispielen
MySQL-Bereitstellung Derzeit stellt das Unternehm...
Installieren Sie Oracle_11g mit Docker 1. Ziehen ...
1. Überprüfung Der Pufferpool wird nach dem Start...
Vorwort: Bei der täglichen Verwendung der Datenba...
Die Datenbankdaten der Projekttestumgebung sind v...
Vorwort: Ich habe das geschrieben, weil ich meine...
Inhaltsverzeichnis So zeigen Sie den Quellcode de...
Win10 + Ubuntu 20.04 LTS Dual-System-Installation...
Inhaltsverzeichnis Überblick Eigenschafteneinstel...
Ich habe so lange mit PHP zu tun gehabt, aber die...
Ich bin in letzter Zeit auf viele Zentrierungspro...
Durch die Verwendung von JS im Webdesign können vi...
Inhaltsverzeichnis 1 Master-Slave-Lese-/Schreibtr...
Unterabfrageklassifizierung Klassifizierung nach ...
Im Frontend-Designentwurf sieht man oft Schließen...