Outil CLI
mlightcad/cad-viewer avatar
mlightcad/cad-viewer

cad-viewer : un visualiseur et éditeur DXF/DWG qui traite le dessin dans le navigateur

mlightcad/cad-viewer offre une implémentation open source exploitable en conditions réelles avec une structure réutilisable.

1 035 étoiles212 forksTypeScriptMIT

En bref

De quoi s’agit-il ?
The world’s first fully web-based DXF/DWG viewer and editor that runs entirely in the browser - no backend server required.. Analyse du périmètre, des points d entrée et des limites indiquées par le dépôt.
À qui s’adresse-t-il ?
cad-viewer convient à une équipe dont le besoin correspond à un visualiseur et éditeur DXF/DWG qui traite le dessin dans le navigateur et qui peut contrôler parsing DWG/DXF, rendu, calques, mesure et export HTML autonome. Il convient moins à un usage qui exige des garanties absentes du README.
Puis-je l’utiliser commercialement ?
Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 1 jour.
En quel langage est-il écrit ?
Principalement TypeScript, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Le périmètre concret de cad-viewer

Le README décrit cad-viewer comme le premier visualiseur et éditeur DXF/DWG basé sur le Web qui fonctionne entièrement dans le navigateur, sans services backend. L'analyse, le traitement géométrique et le rendu se font entièrement côté client, ce que le projet positionne comme utile pour les applications cloud, l'utilisation hors ligne et les flux de travail sensibles à la confidentialité. Le dépôt est un monorepo TypeScript contenant à la fois une application de visualisation complète et un noyau de visualisation plus simple et intégrable. Il fournit également des liens vers une démo en direct et une documentation API, bien que le README ne décrive pas la surface API en détail.

cad-viewer prend sens à travers parsing DWG/DXF, rendu, calques, mesure et export HTML autonome. Le dépôt relie cette fonction à des interfaces identifiables, mais il ne transforme pas automatiquement un prototype en solution prête pour chaque contexte. Les choix de versions, de système, de données et de ressources restent déterminants. Cette distinction est importante pour éviter de confondre une surface d API bien présentée avec une garantie opérationnelle.

Le parcours npm install @mlightcad/cad-viewer fournit un point d observation lié au projet. Il faut relever les dépendances installées, les fichiers lus, le format de sortie et les erreurs lorsque l environnement ne correspond pas aux prérequis. Pour cad-viewer, cette vérification doit rester attachée à parsing DWG/DXF, rendu, calques, mesure et export HTML autonome, car c est là que se trouve le risque réel d incompatibilité. Le README décrit certaines capacités et laisse d autres dimensions, comme les performances selon les charges, la politique de support ou les coûts d exploitation, sans réponse détaillée. Une adoption sérieuse conserve donc ces inconnues comme des questions à trancher, sans les remplir par des promesses.

Les composants qui portent un visualiseur et éditeur DXF/DWG qui traite le dessin dans le navigateur

Une fonctionnalité mise en avant par le README est l'export en un clic vers un fichier HTML autonome. Le fichier .html téléchargé intègre un instantané du dessin et un environnement d'exécution de visualisation léger, permettant aux destinataires d'ouvrir, de faire un panoramique, de zoomer, de basculer les calques et de mesurer des distances dans tout navigateur moderne sans logiciel de CAO, serveur ni installation. Le README inclut une comparaison de mémoire utilisant le dessin d'exemple canteen.dwg : AutoCAD 2020 utilise 320 Mo, GstarCAD Viewer 246 Mo, tandis que le HTML autonome utilise 56 Mo en mode mesure et 33 Mo en mode visualisation. Le README revendique environ 83 % de mémoire en moins qu'AutoCAD 2020 et 77 % de moins que GstarCAD Viewer en mode visualisation.

Le premier parcours avec npm install @mlightcad/cad-viewer

cad-viewer est construit autour d'un système de plugins modulaire implémenté dans le package @mlightcad/cad-simple-viewer. Les plugins implémentent l'interface AcApPlugin et se connectent au cycle de vie du visualiseur via onLoad et onUnload, généralement pour enregistrer des commandes, ajouter de l'interface utilisateur ou connecter des pipelines d'export/import. Le chargement est géré via AcApDocManager.instance.pluginManager, avec prise en charge du chargement paresseux. Le monorepo fournit plusieurs plugins officiels : cad-simple-ui-plugin pour la barre d'outils et le gestionnaire de calques, cad-agent-plugin pour un agent CAO en langage naturel, cad-html-plugin pour l'export HTML hors ligne, cad-pdf-plugin pour l'export et l'import PDF, et cad-svg-plugin pour l'export SVG. Le README renvoie au README de chaque package pour les détails d'installation et d'API.

Ce que la documentation ne promet pas · mlightcad cad viewer

Le README liste plusieurs techniques de rendu utilisées pour maintenir des taux de rafraîchissement élevés. Celles-ci incluent des matériaux de shader personnalisés accélérés par GPU pour les types de lignes et les hachures, le regroupement de géométrie pour fusionner les points, lignes et surfaces avec le même matériau, le rendu instancié pour les géométries répétées, l'optimisation de la géométrie des tampons pour la gestion de la mémoire, la mise en cache des matériaux pour minimiser les changements d'état, et des fonctionnalités WebGL modernes. Le projet revendique un rendu fluide à 60+ FPS sur de grands fichiers, et la feuille de route marque plusieurs éléments de performance comme terminés, notamment la fusion et le regroupement de géométrie, l'indexation spatiale de base, et un index spatial avancé (R-tree/BVH) marqué comme en cours.

Les contraintes d intégration à examiner · mlightcad cad viewer

Le chemin d'analyse DWG open source par défaut utilise LibreDWG. Le README indique qu'il fonctionne bien pour de nombreux dessins mais a une couverture d'entités limitée, un bundle WASM beaucoup plus volumineux, un démarrage plus lent, une utilisation mémoire plus élevée et peut rencontrer des erreurs de mémoire insuffisante sur de très grands fichiers. Il introduit également des considérations de licence GPL pour les produits commerciaux à code source fermé. Un parseur DWG propriétaire est proposé comme alternative, avec une couverture d'entités plus large, une taille de bundle beaucoup plus petite (437 Ko contre 13 Mo), un démarrage plus rapide et aucun risque de propagation GPL. Le README ne fournit pas de prix ni de conditions de licence pour le parseur propriétaire ; il renvoie à un fichier PROPRIETARY-PARSER.md séparé.

Le profil d équipe auquel cad-viewer s adresse

La feuille de route décrit l'objectif d'un système complet de type AutoCAD 2D dans le navigateur avec une architecture modulaire. Les éléments terminés incluent le chargement DXF et DWG, l'export vers HTML autonome, le streaming de fichiers volumineux, le panoramique/zoom, les contrôles de calques, la sélection et l'accrochage, les outils d'édition de base, la mesure et un système de commandes. Les éléments planifiés ou en cours incluent la compatibilité des versions de fichiers de R12 à la dernière version, la gestion des handles et des ID d'objets en bigint, le support XData, les entités de fenêtre, le rendu de niveau de détail, les vues nommées, la création de texte et de dimensions, la création de blocs, l'intégration React, l'intégration OpenLayers, la conception d'API backend et la collaboration en temps réel. Le README invite aux contributions et demande aux rapporteurs de bugs de fournir un lien vers le dessin problématique.

Conclusion éditoriale

cad-viewer convient à une équipe dont le besoin correspond à un visualiseur et éditeur DXF/DWG qui traite le dessin dans le navigateur et qui peut contrôler parsing DWG/DXF, rendu, calques, mesure et export HTML autonome. Il convient moins à un usage qui exige des garanties absentes du README. Commencez par npm install @mlightcad/cad-viewer dans un environnement isolé, consignez la sortie propre à mlightcad-cad-viewer-deep-analysis, puis vérifiez les versions, permissions, formats de données et ressources avant tout usage réel.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Notes de la communauté

Notes de la communauté