cad-viewer: DXF und DWG direkt im Browser prüfen und bearbeiten
mlightcad/cad-viewer bietet eine praxistaugliche Open-Source-Implementierung mit stabiler Einsatzbarkeit für reale Anwendungsfälle.
Auf einen Blick
- Was ist das?
- Ein TypeScript-Monorepo für einen vollständig webbasierten DXF/DWG-Viewer und -Editor mit Offline-HTML-Export und Plugin-System.
- Für wen ist es gedacht?
- Geeignet ist cad-viewer für den konkreten Einsatzbereich, den mlightcad/cad-viewer im README beschreibt. Nicht belegt sind Fähigkeiten außerhalb dieser Dokumentation.
- Darf ich es kommerziell nutzen?
- Ja. MIT ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
- Wird es noch gepflegt?
- Ja. Die letzten Commits kamen vor 1 Tag.
- In welcher Sprache ist es geschrieben?
- Hauptsächlich TypeScript, laut der Sprachstatistik von GitHub.
Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 14. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.
TIEFGEHENDE OPEN-SOURCE-ANALYSE
DWG- und DXF-Parsing ohne Server
Die README beschreibt cad-viewer als den ersten webbasierten DXF/DWG-Viewer und -Editor, der vollständig im Browser arbeitet, ohne Backend-Dienste. Parsing, Geometrieverarbeitung und Rendering finden alle clientseitig statt, was das Projekt als nützlich für Cloud-Apps, Offline-Nutzung und datenschutzsensible Workflows positioniert. Das Repository ist ein TypeScript-Monorepo, das sowohl eine vollwertige Viewer-App als auch einen einfacheren einbettbaren Viewer-Kern enthält. Es verlinkt auch auf eine Live-Demo und API-Dokumentation, obwohl die README die API-Oberfläche nicht im Detail beschreibt.
Export in eine einzelne Offline-HTML-Datei
Eine Funktion, die die README hervorhebt, ist der Ein-Klick-Export in eine eigenständige HTML-Datei. Die heruntergeladene .html enthält eine Zeichnungsschnappschuss und eine leichtgewichtige Viewer-Laufzeit, sodass Empfänger in jedem modernen Browser ohne CAD-Software, Server oder Installation öffnen, schwenken, zoomen, Ebenen umschalten und Entfernungen messen können. Die README enthält einen Speichervergleich mit der Beispieldatei canteen.dwg: AutoCAD 2020 verwendet 320 MB, GstarCAD Viewer 246 MB, während die eigenständige HTML-Datei im Messmodus 56 MB und im Ansichtsmodus 33 MB verwendet. Die README behauptet etwa 83 % weniger Speicher als AutoCAD 2020 und 77 % weniger als GstarCAD Viewer im Ansichtsmodus.
Plugin-System und offizielle Pakete
cad-viewer ist um ein modulares Plugin-System herum aufgebaut, das im Paket @mlightcad/cad-simple-viewer implementiert ist. Plugins implementieren die AcApPlugin-Schnittstelle und haken sich über onLoad und onUnload in den Viewer-Lebenszyklus ein, typischerweise um Befehle zu registrieren, UI hinzuzufügen oder Export-/Import-Pipelines zu verdrahten. Das Laden erfolgt über AcApDocManager.instance.pluginManager mit Unterstützung für Lazy Loading. Das Monorepo enthält mehrere offizielle Plugins: cad-simple-ui-plugin für Toolbar- und Ebenenmanager-UI, cad-agent-plugin für einen natürlichsprachigen CAD-Agenten, cad-html-plugin für den Offline-HTML-Export, cad-pdf-plugin für PDF-Export und -Import sowie cad-svg-plugin für SVG-Export. Die README verweist für Installations- und API-Details auf die jeweilige README der Pakete.
Leistungs- und Rendering-Optimierungen
Die README listet mehrere Rendering-Techniken auf, die verwendet werden, um hohe Bildraten aufrechtzuerhalten. Dazu gehören GPU-beschleunigte benutzerdefinierte Shader-Materialien für Linientypen und Schraffuren, Geometrie-Batching zum Zusammenführen von Punkten, Linien und Flächen mit demselben Material, Instanzierung für wiederholte Geometrie, Puffer-Geometrie-Optimierung für Speicherverwaltung, Material-Caching zur Minimierung von Zustandsänderungen und moderne WebGL-Funktionen. Das Projekt behauptet flüssiges Rendering mit 60+ FPS bei großen Dateien, und die Roadmap markiert mehrere Leistungspunkte als abgeschlossen, einschließlich Geometrie-Zusammenführung und -Batching, grundlegender räumlicher Indizierung und eines erweiterten räumlichen Index (R-Tree/BVH), der als in Arbeit markiert ist.
DWG-Parsing-Einschränkungen und Lizenzierung
Der standardmäßige Open-Source-DWG-Parsing-Pfad verwendet LibreDWG. Die README stellt fest, dass es für viele Zeichnungen gut funktioniert, aber eine begrenzte Entitätsabdeckung hat, ein viel größeres WASM-Bundle, langsameren Start, höheren Speicherverbrauch und bei sehr großen Dateien zu Out-of-Memory-Fehlern führen kann. Es bringt auch GPL-Lizenzüberlegungen für geschlossene kommerzielle Produkte mit sich. Als Alternative wird ein proprietärer DWG-Parser angeboten, der eine breitere Entitätsabdeckung, eine viel kleinere Bundle-Größe (437 KB gegenüber 13 MB), schnelleren Start und kein GPL-Ausbreitungsrisiko bietet. Die README liefert keine Preise oder Lizenzbedingungen für den proprietären Parser; sie verweist auf eine separate PROPRIETARY-PARSER.md-Datei.
Roadmap und Projektstatus
Die Roadmap skizziert das Ziel eines vollwertigen 2D-AutoCAD-ähnlichen Systems im Browser mit modularer Architektur. Abgeschlossene Punkte umfassen DXF- und DWG-Laden, Export in eigenständiges HTML, Streaming großer Dateien, Schwenken/Zoomen, Ebenensteuerung, Auswahl und Fang, grundlegende Bearbeitungswerkzeuge, Messung und ein Befehlssystem. Geplante oder in Arbeit befindliche Punkte umfassen Dateiversionskompatibilität von R12 bis zur neuesten Version, Handle- und Objekt-ID-Verwaltung als BigInt, XData-Unterstützung, Viewport-Entitäten, Level-of-Detail-Rendering, benannte Ansichten, Text- und Bemaßungserstellung, Blockerstellung, React-Integration, OpenLayers-Integration, Backend-API-Design und Echtzeit-Zusammenarbeit. Die README lädt zu Beiträgen ein und bittet Fehlerberichterstatter, einen Link zur problematischen Zeichnung bereitzustellen.
cad-viewer: dokumentierter Einstieg
Der konkrete Einstieg in mlightcad/cad-viewer lässt sich an npm install && npm run build festmachen. Dabei sind die im README genannten Eingaben, Ausgaben und Abhängigkeiten zu erfassen. Ein erfolgreicher Lauf dieses Befehls zeigt nur, dass der dokumentierte Pfad in der geprüften Umgebung funktioniert; Aussagen über andere Plattformen oder Lastprofile sind daraus nicht abzuleiten.
cad-viewer: Grenzen der Aussage
Die Quelle beschreibt cad-viewer aus der Perspektive des Repositorys. Nicht jede Frage zu Betrieb, Skalierung, Fehlerbehandlung oder Aktualität wird beantwortet. Deshalb sollten die genannten Dateien, Konfigurationswerte und Schnittstellen vor einer Einführung genau gegen den eigenen Anwendungsfall gehalten werden. Fehlt eine Angabe, bleibt sie offen.
Redaktionelles Fazit
Geeignet ist cad-viewer für den konkreten Einsatzbereich, den mlightcad/cad-viewer im README beschreibt. Nicht belegt sind Fähigkeiten außerhalb dieser Dokumentation. Vor einer Entscheidung sollte npm install && npm run build mit einer passenden Testeingabe ausgeführt und die projektspezifische Ausgabe geprüft werden; erst danach lassen sich Abhängigkeiten, Rechte und die MIT Lizenz einordnen.
Community-Notizen