MORET geometry viewer (OCCT/OCP + PyQt5) with batch tools
Project description
moret-geom-viewer
Viewer de géométrie MORET (PyQt5 + OCP/OCCT) avec :
- parsing du fichier de données MORET
- affichage 3D + coupe 2D (section OCCT des shapes instanciés)
- export CSV unique des volumes calculés :
- volumes-instances
- volumes logiques
- milieux
- globalité des volumes
- export CSV de comparaison entre volumes calculés par moret-geom-viewer et volumes lus dans un fichier XML MORET
- overlay scalaire à partir des résultats XML MORET, avec possibilité de normalisation à
1 cm³ - overlay des neutrons sources par étape
- mode batch (sans GUI) pour exports :
- volumes / comparaison volumes
- coupes 2D à partir des directives GRAP/PAIN
Installation
Le projet vise Python 3.10+.
Le moteur géométrique OCCT est fourni par le package cadquery-ocp
(il expose le module Python OCP, requis en GUI comme en batch).
Les dépendances obligatoires du projet sont :
matplotlibcadquery-ocp(moduleOCP)pandaslxml
La dépendance optionnelle GUI est :
PyQt5
Option 1 — Installation dans un environnement virtuel (recommandé)
python -m venv venv
source venv/bin/activate
python -m pip install -U pip setuptools wheel
python -m pip install -e .[gui]
Notes :
cadquery-ocpest installé automatiquement (dépendance obligatoire).[gui]installe PyQt5.- Le mode editable
-eest utile en développement.
Option 2 — Installation sans venv (installation utilisateur)
Si tu ne veux pas utiliser de venv :
python -m pip install --upgrade --user pip setuptools wheel
python -m pip install --user -e .[gui]
Important :
- si tu n’as pas les droits d’écriture sur les site-packages système, pip bascule automatiquement en installation utilisateur (
--user); - le mode editable (
-e) nécessite une version récente de pip/setuptools (PEP 660) ; - sinon, installe simplement sans
-e:
python -m pip install --user .[gui]
Installation depuis un wheel (distribution binaire)
Si tu as un wheel déjà construit dans dist/, tu peux installer directement :
python -m pip install dist/moret_geom_viewer-0.1.0-py3-none-any.whl
Pour construire le wheel depuis les sources (dans le dépôt) :
python -m pip install -U build
python -m build
Les artefacts sont créés dans dist/ (wheel + sdist).
Pour désinstaller :
python -m pip uninstall moret-geom-viewer
Diagnostic version / environnement
Le diagnostic --check vérifie notamment :
matplotlibOCPpandaslxmlPyQt5(viewer GUI uniquement)
Viewer
moret-geom-viewer --version
moret-geom-viewer --check
Batch
moret-geom-viewer-batch --version
moret-geom-viewer-batch --check
Un code de sortie 2 indique qu’une dépendance obligatoire est absente.
Mode Viewer (GUI)
moret-geom-viewer <geom_path> [module_id]
Notes :
module_idest optionnel ; par défaut le module instancié est"0".
Exemples :
moret-geom-viewer BASIC_1_GEOM_2000_ASSO.m6
moret-geom-viewer BASIC_1_GEOM_2000_ASSO.m6 0
moret-geom-viewer BASIC_1_GEOM_2000_ASSO.m6 ASSEMBLIES
Raccourcis clavier (viewer)
Coupe / navigation
- X / Y / Z : choisir l’axe de coupe
- ↑ / ↓ : déplacer le plan de coupe
- R : retour à la vue complète (sans coupe, vue isométrique, transparence réinitialisée)
- I : vue isométrique
Fenêtre 2D
- S : activer/désactiver la fenêtre de coupe 2D
- G : basculer le rendu 2D PAIN / GRAP (remplissage ON/OFF)
Caméra
- PgUp / PgDn : zoom clavier
- Ctrl + ← / → : azimut
- Ctrl + ↑ / ↓ : élévation
- Ctrl + PgUp / PgDn : roll
Transparence globale
- + : objets plus transparents
- - : objets plus opaques
Recherche / filtre de volumes
- F : ouvre une fenêtre persistante de filtre de sélection de volumes
- champ texte : sélection par sous-chaîne sur le nom de volume
- mode pour les volumes non sélectionnés :
- Gray : grisage avec transparence 0.85
- Hide : masquage
- Invert : inverse sélection / non-sélection
- Clear : efface le filtre
- fermeture de la fenêtre : retour à l’affichage normal
Overlay scalaire
- O : ouvre une fenêtre pour l’affichage de l’overlay des résultats XML
- Les overlays XML
scorespeuvent être normalisés à1 cm³lorsque le score n’est pas déjà normalisé au volume. - Les overlays XML de stratification des sources peuvent aussi être normalisés à
1 cm³. - La normalisation à
1 cm³est disponible pour les cibles :By volume: division par le volume calculé du volume-instanceBy medium: division par le volume calculé du milieu
Overlay des neutrons sources
- N : ouvre la fenêtre de visualisation des neutrons sources
Fonctionnalités principales :
- chargement d’un fichier / archive de neutrons sources par étape ;
- affichage en mode nuage de neutrons ;
- affichage alternatif en overlay scalaire des fractions de sources par volume-instance ;
- choix du mode de représentation via un combo Representation mode :
Neutron cloudSource-fraction scalar overlay
- en mode nuage :
- option Show only referenced volumes
- géométrie rendue en arrière-plan, très transparente
- en mode overlay scalaire :
- choix du scope :
Current stepAll loaded steps
- réutilisation des options d’affichage de l’overlay scalaire :
- échelle linéaire / logarithmique
- gestion des valeurs absentes
- gris / transparent / hide
- choix du scope :
Remarques :
- le mode nuage et le mode overlay scalaire sont exclusifs ;
- la lecture des étapes ne présente d’intérêt visuel que pour le mode nuage
ou pour l’overlay scalaire en scope
Current step.
Matériaux
- M : ouvrir la boîte matériaux / couleurs
Exports
- V : export CSV des volumes calculés
- Shift + V : export CSV de comparaison avec les volumes d’un fichier XML MORET
- P : export PDF des coupes 2D définies par les directives GRAP/PAIN du fichier de données MORET
- E : screenshot 3D (PNG HQ)
Les exports GUI liés aux volumes utilisent les conventions suivantes :
<geom_path>.volumes.csv<geom_path>.volumes_comparison.csv
Le nom complet du fichier de données MORET est conservé tel quel, y compris son extension finale éventuelle (.m6, par exemple).
L’export GRAP/PAIN en GUI produit les mêmes fichiers que le mode batch :
<geom_path>_NNN_PAIN_<AXIS>_<POS>.pdf<geom_path>_NNN_GRAP_<AXIS>_<POS>[_ZOOM_...].pdf
Les couleurs utilisées sont :
- la palette standard MORET
- les directives
COLOéventuellement définies dans les blocs GRAP/PAIN
Les couleurs personnalisées du viewer GUI ne sont pas utilisées.
Mode batch (sans GUI)
Le batch expose une CLI dédiée.
En mode batch, le module instancié est toujours le module principal "0" (pas d’argument module_id).
moret-geom-viewer-batch <geom_path> <jobs...> [options]
où jobs est une liste (combinable) parmi :
volumes: export CSV des volumes calculés ; si--compar_xmlest fourni, exporte aussi le CSV de comparaison avec le fichier XML MORETslices2d: génère des coupes 2D à partir des directives GRAP/PAIN lues dans le fichier de données MORET
Export volumes CSV
moret-geom-viewer-batch <geom_path> volumes
Sortie (créée au même endroit que le fichier de données MORET) :
<geom_path>.volumes.csv
Exemple :
LR0_case.m6 → LR0_case.m6.volumes.csv
Comparaison de volumes calculés avec ceux calculés dans un fichier XML de MORET
moret-geom-viewer-batch <geom_path> volumes --compar_xml <results.xml>
Sortie (créée au même endroit que le fichier de données MORET) :
<geom_path>.volumes.csv<geom_path>.volumes_comparison.csv
Exemple :
LR0_case.m6 → LR0_case.m6.volumes.csv
LR0_case.m6 → LR0_case.m6.volumes_comparison.csv
Génération coupes 2D depuis GRAP/PAIN (batch)
Certains jeux de données MORET peuvent contenir (hors bloc GEOM...ENDG) des directives :
GRAP Z 0.0 ENDG
GRAP Z 0.0 ZOOM -10.0 -10.0 4.0 4.0 ENDG
PAIN Z 0.0 ENDP
PAIN Z 0.0 ZOOM -10.0 -10.0 4.0 4.0 ENDP
Sémantique :
- GRAP : contours uniquement (colorés par matériau), pas de remplissage
- PAIN : remplissage par matériau
- X/Y/Z : plan de coupe (normal à l’axe)
- nombre après l’axe : altitude de coupe
- ZOOM u_min v_min du dv :
- u_min, v_min = coordonnées minimales dans le plan
- du, dv = largeurs selon les 2 axes du plan
- u_max = u_min + du ; v_max = v_min + dv
Commande :
moret-geom-viewer-batch <geom_path> slices2d [--format png|pdf|svg] [--dpi N]
Important (noms de fichiers) :
- Les sorties sont créées au même endroit que le fichier de données MORET.
- Le préfixe des fichiers commence toujours par le chemin complet
geom_path(extension conservée). - Les fichiers incluent le suffixe
_ZOOM_u0_v0_du_dvsi une fenêtre ZOOM est fournie.
Exemple :
moret-geom-viewer-batch BASIC_1_GEOM_2000_ASSO.m6 slices2d --format png --dpi 200
Sorties typiques :
BASIC_1_GEOM_2000_ASSO.m6_001_PAIN_Z_0.pdfBASIC_1_GEOM_2000_ASSO.m6_002_GRAP_Z_0_ZOOM_-10_-10_4_4.pdf
Le mode GUI (raccourci P) utilise exactement le même moteur que le mode batch et produit des fichiers identiques.
Exécution combinée (volumes + slices2d)
Il suffit de donner les deux jobs :
moret-geom-viewer-batch <geom_path> volumes slices2d [--format ...] [--dpi ...]
Avec comparaison volumes/XML :
moret-geom-viewer-batch <geom_path> volumes slices2d --compar_xml <results.xml> [--format ...] [--dpi ...]
Notes techniques
- Dépendances principales :
- OCP (cadquery-ocp) est requis en GUI comme en batch.
- Matplotlib est requis en GUI comme en batch pour les coupes 2D et les exports (PNG/PDF/SVG).
- PyQt5 est requis en GUI.
- Les CSV sont en ; et les volumes sont en cm^3.
Tolérance aux fichiers XML incomplets
Certains fichiers XML MORET peuvent être tronqués ou non clôturés proprement (par exemple arrêt prématuré d’un calcul).
Le projet peut être configuré pour lire ces fichiers en mode tolérant
(lxml.etree.XMLParser(recover=True)), ce qui permet de récupérer une partie
des informations exploitables malgré une fin de fichier invalide.
Limites :
- le document reconstruit peut être incomplet ;
- certaines sections absentes ou tronquées resteront inexploitables ;
- les résultats doivent être considérés avec prudence si le XML n’est pas complet.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file moret_geom_viewer-0.1.2-py3-none-any.whl.
File metadata
- Download URL: moret_geom_viewer-0.1.2-py3-none-any.whl
- Upload date:
- Size: 309.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
954ae2cddde0c4e75544b8bbfbe90fa5de0e9417f5109aea359b58a2756b99a8
|
|
| MD5 |
de62e736f9018487290c458b37d0574b
|
|
| BLAKE2b-256 |
489b9c525cce1ce90f14ed7c42757a98b85f166a4afeb119cb5b2ed6f4d1d228
|