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
Problembeschreibung: Die Netzwerkkartendatei /etc...
Heute werden wir einen einfachen Fall durchgehen ...
1. Führen Sie SQL aus, um anzuzeigen wählen Sie @...
Inhaltsverzeichnis 1. Einleitung 2. Detaillierte ...
Inhaltsverzeichnis 1. Was ist ein Abschluss? 2. D...
Vorwort Ab MySQL-Version 3.23.44 unterstützen Inn...
1. Verwenden Sie den Befehl df, um die gesamte Fe...
Front-End-Projektpaketierung Suchen Sie .env.prod...
Inhaltsverzeichnis Vorwort Zur APP-Methode spring...
In letzter Zeit waren viele datenbankbezogene Vor...
Seite: Basis: <Vorlage> <div Klasse=&quo...
1. Installieren Sie das Fcitx-Eingabeframework Zu...
In diesem Artikel wird die Installations- und Kon...
Wie wir alle wissen, können wir in Linux ohne den...
Datenbank anzeigen show databases; Erstellen eine...