Import et export DXF
Le « DXF » de QET recouvre deux fonctions sans rapport qui partagent simplement un format de fichier :
| Sens | Où | Comment | |
|---|---|---|---|
| Export | folio → .dxf |
Fichier → Exporter, aux côtés de PDF/PNG/SVG | en interne, code propre à QET |
| Import | .dxf → géométrie d'élément |
l'éditeur d'élément, Importer un fichier DXF | appelle un programme tiers séparé |
Elles ne font pas l'aller-retour l'une vers l'autre et ne partagent aucun code. Si vous cherchez « importer un dessin DXF comme folio », ce n'est ni l'une ni l'autre — voir §3.
Sources : sources/createdxf.{cpp,h}, sources/dxfpaintdevice.{cpp,h},
sources/dxf/dxftoelmt.{cpp,h}.
1. Exporter un folio en DXF
Fichier → Exporter, même dialogue que PDF/PNG/SVG, un fichier .dxf par
folio. Le cadre, le cartouche et chaque objet du folio sont inclus.
Il n'existe aucun verbe en ligne de commande pour cela. --export-pdf,
--export-png et --export-svg existent ; l'export DXF est aujourd'hui
réservé à l'interface graphique.
Comment c'est rendu
Plutôt qu'une passe de dessin spécifique au DXF, QET réutilise exactement le
même code paint() que chaque élément et chaque forme possède déjà pour le
rendu à l'écran, en PDF ou en PNG. Un QPaintEngine sur mesure
(DxfPaintEngine) se place derrière un QPainter, intercepte le petit
ensemble d'appels de dessin que ces méthodes paint() font réellement, et
traduit chacun en une entité DXF au lieu de pixels. C'est un choix de
conception délibéré : le code de rendu d'un objet est « déjà correct » pour
tous les autres exports, l'export DXF ne peut donc pas diverger de ce que vous
voyez à l'écran — il exécute les mêmes appels, simplement enregistrés
autrement.
Ce que cela coûte — de vraies limites de fidélité
Le dialecte DXF ciblé (AC1006) et l'ensemble volontairement restreint d'appels traduits font que certaines choses ne passent pas :
| Appel de dessin QET | Résultat DXF |
|---|---|
| Lignes | LINE |
| Rectangles | contour LWPOLYLINE — aucun remplissage, même si le rectangle est rempli à l'écran (ce dialecte DXF n'a pas de primitive de rectangle rempli) |
| Ellipses/cercles | CIRCLE ou un arc à balayage complet |
| Arcs | une suite de cordes LINE droites, pas une véritable entité d'arc DXF |
| Polygones | LWPOLYLINE |
| Texte | TEXT |
| Chemins remplis | contour seul, comme les rectangles — pas de HATCH |
| Images / pixmaps | non exportées. Le DXF n'a pas d'entité d'image matricielle dans ce dialecte ; un rectangle de substitution est dessiné à la position, taille et rotation de l'image, la mise en page est donc préservée mais pas l'image elle-même |
Ce qui sort de cette liste (dégradés et similaires) n'est pas silencieusement abandonné — un avertissement est journalisé, selon le principe qu'un appelant doit savoir immédiatement que quelque chose n'était pas exportable plutôt que d'obtenir un fichier DXF amputé sans le savoir.
Si votre dessin repose sur des formes remplies, des hachures ou des images intégrées survivant dans le DXF, ce ne sera pas le cas — prévoyez plutôt des contours et du texte.
2. Importer un DXF dans un élément
C'est un outil de création de symbole, situé dans l'éditeur
d'élément (Fichier → Importer un fichier DXF), pas dans l'éditeur de
folio/schéma. Il lit la géométrie d'un .dxf et l'ajoute comme primitives de
dessin à l'élément actuellement ouvert — une façon de calquer ou de réutiliser
un tracé CAO en dessinant un nouveau symbole, pas un moyen d'introduire un
schéma DXF dans un projet.
Cela nécessite un programme séparé
Contrairement à l'export, l'import n'est pas intégré à QET. Il appelle
dxf2elmt, un outil console tiers
(Vadoola/dxf2elmt) que QET
recherche à côté de lui-même (<dossier de données>/binary/dxf2elmt, ou
.exe sous Windows). S'il est introuvable, QET affiche un dialogue avec le
lien de téléchargement et le dossier où le dézipper, plutôt que d'échouer
silencieusement — le même principe que qet_tb_generator pour la création de
borniers (voir Automatiser QElectroTech).
QET le lance sous la forme dxf2elmt <fichier> -v, lit sa sortie standard
comme le XML .elmt résultant, et l'empile sur la pile d'annulation de
l'éditeur d'élément comme une seule opération. Sur un DXF volumineux, un
dialogue d'avertissement prévient que l'import peut prendre du temps avant de
démarrer.
dxf2elmt étant un projet séparé, sa propre interprétation des entités
DXF — ce qui correspond à quoi, et ses propres limites — relève de ce projet,
pas de QET.
3. Ce que ni l'un ni l'autre n'est
- Pas un moyen de placer un dessin DXF sur un folio tel quel. L'import n'alimente que l'éditeur d'élément.
- Pas garanti pour l'aller-retour. Les limites de l'export — contours
seuls, pas d'images (§1) — font qu'un
.dxfécrit par QET n'est pas une source fidèle à réimporter, indépendamment même du fait que l'import et l'export utilisent des codes entièrement différents. - Pas un chemin d'échange CAO général, au sens de la préservation des calques, des blocs ou des métadonnées DXF au-delà de la géométrie brute : les deux sens travaillent au niveau des primitives de dessin individuelles.
Voir aussi : Automatiser QElectroTech · Lier des éléments
Getting Started
🌐 Languages — English · Français · Deutsch
Guides
Conductors — wire properties, what feeds which export, and cables
Wire & cable catalogue — cable types, IEC 60757 core colours, assigning a core to a conductor
Printing and exporting — paper, PDF, images, and what each path does differently
Linking elements — master, slave, terminal
PLC modules — I/O tables and linking a wire to a specific point
Using the element editor — drawing tools, saving, checks
Preferences reference — what each settings page does
Keyboard-only control — mouseless QET, and the one real gap
Mouse modifiers — what Shift, Ctrl and Alt change while you drag
Managing collections — folders, writability, building your own shortlist
Templates — reusable multi-element blocks, and why clicking one does nothing
Search & Replace — bulk property changes
Building a nomenclature query — the BOM/summary table builder
Linking wires across pages — folio reports
Variables & formulas — %f, %{label}, sequences
Auto-numbering — schemes, sequences, freezing
Terminal strips — strips, levels, bridges
Title block templates — the .titleblock format
Importing EPLAN parts (.edz) — EPLAN Data Portal
DXF import & export — two unrelated features, one format
The project database — the in-memory SQLite cache
Development
Automating QET — CLI, XML formats, external tools
CLI Reference — command line usage
JavaScript Scripting — --run, geometry editing, undo
Vision — proposal, under discussion
