Édition

Le module Édition regroupe les actions d'édition de la structure : recalage des blocs sur le nuage de référence, filtrage par seuils, suppression sécurisée, regroupement par panneau ou lot, et assignation de numéros de plot via un plan de pose.

C'est l'onglet où se passe le travail de correction et d'affinage une fois qu'une structure a été chargée (depuis JSON) ou détectée automatiquement (via Détecter les blocs dans un nuage).

Recaler la sélection

Raccourci : Ctrl+E

Réaligne (registration) les blocs sélectionnés sur le nuage de points de référence. Chaque bloc est ajusté indépendamment pour minimiser sa distance au nuage. À utiliser après détection automatique ou après un déplacement manuel d'un bloc, pour affiner sa position.

Tout passe par un seul bouton : par défaut il recale en distance adaptative, et sa petite icône curseurs donne accès à trois modes personnalisés. Une badge Rapport de recalage complète l'action.

Recaler la sélection

Badge « Rapport de recalage »

À droite du bouton :

  • Activée : un rapport détaillant les déplacements (translations, rotations, scores) s'ouvre automatiquement à la fin de chaque recalage.
  • Désactivée : pas de pop-up ; cliquer la badge la réactive et réaffiche le dernier rapport produit dans la session.

Modes de recalage

La petite icône curseurs accolée au bouton ne recale pas elle-même : elle configure le mode que Recaler la sélection (Ctrl+E) appliquera ensuite.

Mode Effet
Distance adaptative Mode par défaut. Distances au nuage adaptatives, définies dans les paramètres du projet.
Distance personnalisée Recale avec une distance au nuage fixe au lieu des distances adaptatives. Override persistant pour la session.
Nouveau volume de bloc Assigne un nouveau volume à la sélection (taille différente de celle détectée) puis recale. Utile quand deux volumes voisins ont été confondus (ex. 2 m³ vs 3 m³).
Recalage par zone Recale en ne tenant compte que d'un petit morceau du nuage délimité par une boîte (voir ci-dessous).

Pour les modes Distance personnalisée et Volume, la valeur saisie est mémorisée le temps de la session : l'icône reste orange et chaque Recaler la sélection réapplique le mode sans ressaisie. Sélectionner « effacer » dans la modale revient au mode adaptatif.

Modes de recalage personnalisés

Recalage par zone

Le recalage par zone restreint l'ajustement à une portion du nuage plutôt qu'à l'ensemble des points autour du bloc. C'est utile quand seule une partie du nuage est fiable (zone bruitée, blocs voisins parasites, interface entre deux levés).

Au choix de ce mode, un panneau dédié s'ouvre et fait apparaître une boîte dans la scène CloudCompare :

  1. Positionnez et dimensionnez la boîte autour de la portion de nuage à conserver (ou à exclure).
  2. Choisissez de garder le nuage à l'intérieur ou à l'extérieur de la boîte.
  3. Validez : le recalage ne tient compte que des points retenus. La distance de crop reste adaptative.

Contrairement aux modes Distance / Volume, le recalage par zone n'est pas un override persistant : la boîte est spatiale et placée à la main à chaque usage.

Recalage par zone

Aider le recalage

Ouvre un panneau interactif permettant de translater ou tourner le bloc sélectionné avant de lancer le recalage. Utile lorsque la position de départ d'un bloc est trop éloignée du nuage pour que le recalage automatique converge.

Procédure typique :

  1. Sélectionner le bloc à pré-positionner.
  2. Cliquer sur Aider le recalage.
  3. Utiliser les flèches / sliders pour amener le bloc à proximité de sa position théorique sur le nuage.
  4. En validant, l'action Recaler la sélection - Distance adaptative est exécutée automatiquement.

Aider le recalage

Ajuster la position

Raccourci : Ctrl+F

Cherche la meilleure pose et orientation des blocs sélectionnés sur le nuage. Là où Recaler la sélection part de la pose courante et l'affine localement (ICP), cette action explore : elle tire des poses dans un rayon de recherche autour du bloc et retient la meilleure au sens d'un critère qui pèse ensemble

  • la distance au nuage (médiane des distances points/bloc) ;
  • le non-recouvrement des voisins : un bloc ne peut pas se poser dans la matière d'un autre ;
  • la surface exposée sans points : une face tournée vers le haut et non masquée par un voisin doit porter des points, sinon la pose expose de la matière là où le levé n'a rien mesuré.

Elle rattrape donc des erreurs d'orientation qu'un recalage local ne défait pas, au prix d'une dizaine de secondes par bloc.

Les blocs sont traités un par un, et chacun contraint les suivants. La barre de progression du launcher indique le bloc en cours ; Annuler interrompt la série, et les blocs déjà ajustés sont conservés.

Bouton « Recherche approfondie »

L'icône loupe à droite du bouton commute le budget de recherche (paramètre fit_deep_search) :

État Budget Quand l'utiliser
Gris (par défaut) Recherche rapide, environ 10 s par bloc Cas courant.
Orange Recherche approfondie, environ 80 s par bloc Blocs que la recherche rapide ne parvient pas à placer, pose de départ très incertaine.

Le réglage est conservé d'une session à l'autre, comme le recalage personnalisé de Recaler la sélection. Au-delà de 20 blocs sélectionnés, une confirmation rappelle le coût de l'opération.

Rapport d'ajustement

À la fin du calcul, une modale donne une ligne par bloc : déplacement et rotation appliqués, médiane obtenue, part de surface exposée sans points. Les blocs qui dépassent fit_alert_median ou fit_alert_visible sont marqués d'un ⚠ et remontés en tête de liste. Toute la sélection est listée : au-delà d'une douzaine de blocs, la liste défile.

La badge rapport (icône à droite du bouton) coupe l'affichage automatique ; la rallumer réaffiche le dernier rapport de la session, comme pour Recaler la sélection. Le détail descente par descente reste en console (lignes [FIT]), pour le diagnostic.

Les blocs sont recolorés sur median_score à l'issue de l'action, et un point de restauration permet d'annuler l'ensemble ( Ctrl+Z ).

Réglages

Tous ces paramètres sont modifiables dans les Préférences (ou directement dans parameters.json). Deux familles :

  • ceux dont le nom finit par _rel sont des proportions de la taille du bloc : ils suivent donc automatiquement le volume saisi, l'unité de travail (feet) et le mode laboratoire, sans rien avoir à changer ;
  • les autres sont des longueurs absolues en mètres, converties dans l'unité du nuage à l'exécution.
Paramètre Défaut Effet Quand y toucher
fit_search_radius_rel 0,25 Rayon de la boîte de recherche en translation, en proportion de la taille du bloc (0,60 m pour un bloc de 2,4 m). Seulement si la pose de départ est fausse au-delà de ce rayon, et alors en recherche approfondie. Le volume à explorer croît comme le cube du rayon : à budget constant, l'élargir dégrade le résultat (32 blocs replacés sur 36 à 0,25 contre 24 sur 36 à 0,40).
fit_max_angle 180 Demi-amplitude de la recherche en rotation, en degrés. 180 balaye toutes les orientations possibles. L'abaisser (30 par exemple) pour ne corriger que la position quand l'orientation courante est déjà jugée bonne.
fit_cloud_dist_rel 0,15 Distance au-delà de laquelle un point du nuage ne décrit plus le bloc. Fixe aussi l'échelle du critère. La resserrer sur un levé très propre, la desserrer sur un nuage bruité ou une couche mal séparée.
fit_visible_weight_rel 0,56 Poids du terme « surface exposée sans points », en proportion de fit_cloud_dist_rel. 0 le désactive : le critère se réduit alors à la distance au nuage et au non-recouvrement. C'est le premier réglage à essayer si des blocs déjà bien posés se retournent. Le gain plafonne entre 0,56 et 1,1 ; au-delà, ce terme écrase la distance au nuage.
fit_coverage_min 0,05 Fraction minimale de la surface du bloc devant porter des points. Garde-fou contre les poses dégénérées, pas une cible : un levé vu du dessus n'éclaire qu'une partie d'un bloc. Rarement. Ne le monter que si des blocs se posent dans le vide.
fit_n_sample 150 Nombre de points tirés sur la surface du bloc pour mesurer le recouvrement avec les voisins. Le monter (300) sur une carapace très enchevêtrée ; le coût est linéaire.
fit_alert_median 0,10 m Médiane au-delà de laquelle le rapport marque le bloc d'un ⚠. À ajuster à la qualité du levé. Sans effet sur le calcul : cela ne change que le tri du rapport.
fit_alert_visible 0,50 Même rôle, sur la part de surface exposée sans points. Idem.
fit_deep_search 0 Budget de recherche. Depuis l'icône loupe plutôt que d'ici.
show_fit_report 1 Ouverture automatique du rapport. Depuis la badge rapport plutôt que d'ici.

Les seuils en _rel sont mesurés sur la taille physique du bloc (block_size), pas sur la racine cubique de son volume : pour un Coreloc de 3 m³, la première vaut 2,39 m et la seconde 1,44 m.

Mode laboratoire

Le critère est homogène à une longueur : chacun de ses termes suit l'échelle du nuage, si bien que les valeurs par défaut ci-dessus conviennent en mètres, en feet comme sur maquette. Deux points d'attention :

  • lab_tolerance_factor (2,0 par défaut) desserre les tolérances de mesure en mode laboratoire, parce que le bruit d'un scanner ne rétrécit pas avec la maquette. Il agit sur la distance de comptage et sur la finesse de la grille du terme de surface exposée. C'est le premier réglage à ajuster si l'ajustement paraît nerveux en labo.
  • Le rapport affiche deux décimales de plus en mode laboratoire : à cette échelle, les déplacements se comptent en dixièmes de millimètre.

Diagnostic

La console garde une ligne [FIT] par bloc : médiane et valeur du critère avant puis après, nombre de générations et temps de calcul. Deux indicateurs sont en plus écrits sur le bloc, lisibles dans Afficher les métadonnées, section « Autre » :

  • visible_uncovered : part de la surface exposée que le levé n'a pas instrumentée, c'est la colonne Exposé du rapport ;
  • restart_agreement : part des recherches indépendantes ayant convergé vers la pose retenue. 1,0 signifie qu'elles sont toutes d'accord ; une valeur basse signale un résultat à rejouer, au besoin en recherche approfondie.

Filtrer les blocs

Supprime les blocs ne respectant pas certains seuils de qualité : distance médiane au nuage, accuracy, ou nombre de points de correspondance.

Filtrer les blocs

Paramètres de la modale :

Paramètre Description
Score threshold Seuil supérieur sur la médiane des distances des points au voisinage du bloc, en mètres. Les blocs dont le score dépasse ce seuil sont supprimés.
Distance threshold Seuil sur la distance entre centres de blocs, en mètres. Si deux blocs sont plus proches que ce seuil, celui qui a la plus faible médiane des distances est conservé.
Accuracy threshold Seuil sur l'accuracy (champ scalaire de qualité). Les blocs en dessous sont supprimés.

Premier filtrage après détection

Cette action est typiquement utilisée juste après une détection automatique pour éliminer les faux positifs avant d'attaquer le recalage manuel.

Trouver les noms

Assigne les numéros de plot et de cible des blocs en faisant correspondre leur position 3D à un plan de pose au format CSV.

Trouver les noms

Paramètres de la modale :

Paramètre Description
Browse… Le plan de pose CSV utilisé pour nommer les blocs.
Separator Auto (détection automatique), ,, ;, tabulation ou barre verticale.
First row is a header Devinée à l'ouverture du fichier. Décochée, la première ligne est lue comme une donnée et les colonnes sont nommées a1, a2, …
Split a column Découpe une colonne sur un séparateur (- par défaut), au dernier ou au premier. Les deux morceaux deviennent des colonnes affectables.
Column mapping Chaque champ attendu reçoit une colonne du plan. NumSection, NumBlock, X et Y sont obligatoires ; Z active l'appariement 3D et NumPrefa renseigne le numéro de préfabrication.
Match tolerance (× block size) Un point du plan correspond à un bloc si leur distance est inférieure à ce facteur multiplié par la taille du bloc. La valeur est enregistrée comme nouveau défaut.

L'affectation est devinée à partir des en-têtes quel que soit leur ordre et reste modifiable à la main. L'aperçu montre les valeurs telles qu'elles seront lues, et Run reste inactif tant qu'un champ obligatoire n'a pas de colonne. Les blocs qu'aucun point du plan n'atteint dans la tolérance sont nommés Unknown_xx.

Plan sans en-tête, ou nom de bloc concaténé

Un plan dont la première ligne est déjà une donnée, ou dont une colonne unique porte à la fois la section et le numéro de bloc (P12-A-01), se lit sans retouche préalable : décochez First row is a header, découpez la colonne sur - au dernier séparateur, puis affectez P12-A à NumSection et 01 à NumBlock.

Suppression sécurisée

Supprime les blocs sélectionnés en gardant un checkpoint d'annulation. Contrairement à une suppression directe via CloudCompare, cette action permet de revenir en arrière via le bouton Annuler la dernière action du Header.

Marquer un bloc manquant

Signale un bloc qui existe physiquement sur l'ouvrage mais qu'on n'arrive pas à modéliser depuis le nuage de points (données absentes ou insuffisantes). CloudCompare n'exposant pas le picking 3D dans la vue, la position est reprise d'un bloc voisin :

  1. Sélectionnez le bloc existant le plus proche du trou.
  2. Cliquez sur Marquer un bloc manquant.
  3. Un placeholder rouge (type de bloc Missing) est créé à la position de ce bloc.
  4. Repositionnez-le sur le trou réel avec l'outil de transformation natif de CloudCompare — la nouvelle position est relue automatiquement.

Les placeholders sont exclus des calculs qualité (précision, différentiel, recouvrement, densité), du recalage et des exports de pose : ils ne servent qu'à enregistrer le trou. Ils sont synchronisés vers le cloud-viewer via leur type Missing, afin que les statistiques de complétude puissent en tenir compte, et apparaissent sous Missing dans Afficher par type. Pour retirer un placeholder mal placé, utilisez la Suppression sécurisée.

Grouper / Dégrouper

Réorganise l'affichage de la structure dans l'arborescence CloudCompare en regroupant les blocs par panneau ou par lot, ou en dissociant des groupements existants.

Une modale unique propose les 4 opérations :

Opération Effet
Grouper par panneaux Regroupe les blocs partageant le même plot_number dans un sous-groupe « panneau ».
Dégrouper les panneaux Dissocie les groupes panneau et remet les blocs au niveau supérieur.
Grouper par lots Regroupe les blocs partageant le même package.
Dégrouper tout Dissocie tous les regroupements (panneau + lot).

Grouper / Dégrouper