[general]
name=CanaPlan – Réseau Assainissement
description=Dessin topologique de réseaux EU (rouge) et EP (bleu) : conduites, branchements, regards, tabourets. Profils en long, cubatures, coupes, impression PDF multi-feuilles, export DXF et export GeoPackage StaR-Eau (CNIG/ASTEE). [EN] Topological drawing of foul (red) and storm (blue) sewer networks: pipes, service connections, manholes, inspection chambers. Longitudinal profiles, trench volumes, cross sections, multi-sheet PDF printing, DXF export and StaR-Eau (CNIG/ASTEE) GeoPackage export. Scriptable: every tool is callable from Python, and reusable procedures are declared as JSON recipes.
icon=icon/icon.png
version=1.9
qgisMinimumVersion=3.40
qgisMaximumVersion=4.99
author=Yoan Laloux
email=y.laloux@vichy-communaute.fr
linkedin=https://www.linkedin.com/in/ylaloux/
repository=https://github.com/Cartoyoyo/CanaPlan
tracker=https://github.com/Cartoyoyo/CanaPlan/issues
license=GNU GPL v3
homepage=https://github.com/Cartoyoyo/CanaPlan
tags=assainissement,réseau,EU,EP,profil en long,cubature,DXF,BET,StaR-Eau,GeoPackage,CNIG,ASTEE,Star-DT,DT-DICT
experimental=False
deprecated=False

about=CanaPlan est un logiciel de dessin projet qui permet de tracer des réseaux d'assainissement EU (Eaux Usées) et EP (Eaux Pluviales) directement dans QGIS, sur un fond de carte importé directement par le plugin (BAN, cadastre PCI, orthophoto IGN, OSM, ou plan DXF/DWG existant), avec continuité géométrique native : chaque conduite relie deux ouvrages, chaque branchement se recale automatiquement sur sa conduite mère quand elle bouge, avec validation à l'enregistrement. La pente du réseau peut être définie ou rectifiée directement avec les outils de dessin et de saisie (assistant de création de projet en 4 étapes, tableau de saisie groupée). L'outil produit les profils en long (EU/EP/groupé), calcule les volumes de cubature (déblai et matériaux de remblai rapportés), génère des coupes de tranchée transversales, imprime les plans au format PDF multi-feuilles orientables avec plan d'ensemble et permet d'exporter en DXF 2018 fidèle. Du relevé terrain jusqu'à la livraison, un seul outil couvre toute la chaîne : import Star-DT / StaR-Elec (DT-DICT), fonds de plan IGN/BAN/PCI chargés en tâche de fond, et export GeoPackage conforme au géostandard StaR-Eau V2024 (CNIG/ASTEE).
    [EN] CanaPlan is a design drawing tool for sanitary and storm sewer
    networks, used directly inside QGIS on a basemap the plugin loads for you
    (French address database, cadastral parcels and buildings, IGN aerial
    imagery, OpenStreetMap, or an existing DXF/DWG drawing). Topology is native:
    every pipe joins two structures, every service connection re-anchors itself
    on its parent pipe when that pipe moves, and consistency is checked on save.
    Slopes are set and corrected with the drawing tools and the bulk entry table
    (a four-step project wizard, a grouped attribute table). The plugin produces
    longitudinal profiles (foul, storm or combined), computes trench volumes for
    excavation and imported backfill, draws cross sections, prints plans as
    multi-sheet PDF at any orientation with an overview page, and exports a
    faithful DXF 2018. From the field survey to delivery, a single tool covers
    the whole chain, including DT-DICT (Star-DT / StaR-Elec) import and a
    GeoPackage export compliant with the French StaR-Eau V2024 geostandard.
    Every tool is also callable from Python — see API.md — and recurring
    procedures can be declared as JSON recipes and replayed in a single call.

changelog=
    1.9  Pilotage par script. Un module de facade, tools/api.py, expose les
         outils du plugin en verbes appelables depuis la console Python de
         QGIS, un script ou un agent : creer le projet, tracer le collecteur
         sur l'axe d'une rue, poser les branchements, renumeroter, caler les
         cotes, etiqueter, exporter. Il n'instancie aucune fenetre, impose les
         tolerances de snap en metres au lieu des pixels dependant du zoom, et
         rend a chaque appel un dictionnaire serialisable. Aucune logique
         metier n'y est reecrite : tout est delegue aux outils existants, pour
         que le resultat soit identique au geste manuel. La reference tient
         dans API.md.
         Suites et recettes. Une recette est une procedure de travail rangee
         dans un fichier JSON — ses etapes, ses parametres et leurs valeurs par
         defaut — que l'on rejoue en un appel. Trois sont livrees :
         collecteur_de_rue (projet, reseau, branchements, cotes, plan),
         recaler_cotes et livraison. Deux substitutions suffisent a tout
         enchainer : $parametre pour une valeur d'appel, @etape pour le
         resultat d'une etape precedente — ce dernier permet a l'axe de rue,
         un QgsGeometry, de passer d'une etape a la suivante sans jamais
         quitter QGIS. enregistrer_recette() ecrit une procedure eprouvee dans
         le profil, sans toucher au code. Le meme chantier demandait neuf
         minutes en pilotage pas a pas ; il en demande vingt-trois secondes.
         Numerotation des planches. Le plan d'ensemble numerotait les cadres
         par cheminement geometrique, de la planche la plus a l'ouest puis de
         proche en proche : sur un reseau qui serpente, les numeros sautaient
         d'un bout du chantier a l'autre. Ils suivent desormais le collecteur,
         de l'aval vers l'amont. Le sens ne se devine pas de la geometrie, les
         troncons etant traces dans l'ordre des clics : il se lit dans les
         cotes, l'aval etant l'extremite dont le regard a le fil d'eau le plus
         bas. Repli sur l'ancien cheminement tant que le reseau n'est pas cote.
         Taille des etiquettes. Elle s'exprime desormais en millimetres de
         papier, convertis en unites carte d'apres l'echelle du plan : 2,5 mm
         au 1/200 font 0,50 m au sol. Le reglage natif, 2 unites carte, donnait
         10 mm de texte sur une feuille au 1/200.
         Reseau. Les requetes a la Base Adresse Nationale et a Overpass passent
         par la pile reseau de QGIS et non plus par urllib : le plugin herite
         du proxy, des certificats et des delais configures dans QGIS.
         Une enumeration non qualifiee restait dans l'import Star-DT,
         QgsMarkerLineSymbolLayer.Interval, qui plantait sous QGIS 4 ; les
         replis Qt5 de la couche de compatibilite DXF passent par getattr.
    1.8  Compatibilite QGIS 4 / Qt 6. Le plugin tourne desormais sur QGIS 4
         comme sur QGIS 3.40+ : tous les enumeres Qt et QGIS sont ecrits sous
         leur forme qualifiee (Qt.AlignmentFlag.AlignCenter et non
         Qt.AlignCenter), que PyQt6 est seul a accepter ; les niveaux de la
         barre de messages passent de leurs valeurs numeriques a
         Qgis.MessageLevel ; QgsUnitTypes, deprecie, cede la place a
         Qgis.RenderUnit ; les appels a QMouseEvent.globalPos(), supprime en
         Qt 6, sont remplaces par QCursor.pos(). Les 85 modules du plugin
         s'importent sans erreur sous QGIS 4.2.1. metadata.txt declare
         qgisMinimumVersion=3.40 et qgisMaximumVersion=4.99.
         Nouveau bouton « PDF complet » dans la fenetre d'export, a cote de
         « Toutes les pieces (ZIP) » : le meme contenu, mais assemble en un
         seul document a faire circuler — plan, puis profils EU/EP, puis
         coupes types, puis cubature. Le DXF et le classeur XLSX ne sont pas
         produits, ne s'assemblant pas dans un PDF. L'assemblage utilise
         pypdf, verifie et propose a l'installation avant de produire quoi que
         ce soit, et non apres avoir fait poser les feuilles du plan ; QGIS le
         fournit deja dans plusieurs de ses versions, le cas courant est donc
         qu'il n'y ait rien a installer. Le compte rendu de fin d'export, ZIP
         comme PDF, propose desormais d'ouvrir le dossier de sortie.
         Profils en long : le regard le plus profond est toujours place a
         gauche, quel que soit l'ordre dans lequel on clique le depart et
         l'arrivee, et quel que soit le sens trouve par le parcours
         automatique du collecteur principal.
         Etiquettes : le seuil de dezoom se deduit desormais de l'echelle
         d'impression cible et non de la limite de lisibilite du texte. Il
         valait 1/1667 pour une cible au 1/150, si bas que les etiquettes
         disparaissaient des qu'on s'ecartait de l'echelle du plan ; il passe
         a dix fois l'echelle cible, plafonne a 1/2000.
         Materiau « Recycle » ajoute aux remblais, dans la configuration
         rapide, la coupe transversale et la coupe de tranchee composee.
         Assistant de creation de projet : le recapitulatif, qui empile six
         blocs, devient defilant et ne deborde plus de l'ecran ; la fenetre
         s'ouvre a la taille disponible.
         Tableau de saisie : la selection laissee sur la carte est videe a la
         fermeture, sur les deux reseaux.
         Paquet : analyze_ml.py, dernier script de mise au point du parseur
         DXF encore livre, rejoint les trois autres retires en 1.7.1.
    1.7.1  Trois scripts de mise au point du parseur DXF partaient par erreur
         dans le paquet de la 1.7.0. Ils n'etaient importes par aucun module et
         pointaient en dur vers une machine de developpement, mais l'analyse de
         securite de plugins.qgis.org y relevait des blocs try/except/pass et
         des requetes SQL construites par concatenation, ce qui bloquait la
         validation de la version. Ils sont retires du paquet. Aucun changement
         de fonctionnement.
    1.7.0  Les bibliotheques d'export DXF ne sont plus embarquees. Le paquet
         passe de 26,8 a 2,7 Mo. La premiere fois que vous demandez un export
         DXF ou une conversion DXF/DWG, le plugin propose de telecharger
         ezdxf, fontTools et pyparsing depuis PyPI et de les installer dans
         son propre dossier, sans droits administrateur : une dizaine de
         secondes, une seule fois. Tout le reste de CanaPlan — dessin, profils
         en long, cubatures, coupes, impression PDF, export StaR-Eau, import
         Star-DT — fonctionne sans elles et ne pose jamais la question. Si
         l'installation echoue (proxy d'entreprise, par exemple), la fenetre
         affiche la commande a executer a la main. L'installation est a
         refaire apres une mise a jour du plugin, QGIS remplacant alors tout
         son dossier.
    1.6.2  Paquet allege et durci. Les librairies embarquees ne contiennent
         plus que les modules que le plugin atteint reellement : numpy, que
         QGIS fournit deja, n'est plus embarque (il masquait celui de QGIS
         dans le sys.path), et les outils autonomes d'ezdxf et fontTools
         (lignes de commande, visionneuses Qt, chaine de creation de polices)
         sont ecartes a la construction du paquet. Cote code : les GML
         Star-DT porteurs d'une declaration DOCTYPE sont refuses avant
         lecture, les telechargements WFS n'acceptent plus que http et https,
         un nom de calque contenant un guillemet ne peut plus s'echapper de
         l'option -sql passee a ogr2ogr, et les erreurs jusqu'ici avalees en
         silence laissent desormais une trace dans le journal QGIS, onglet
         « CanaPlan », plafonnee pour ne pas l'inonder. Aucun changement de
         fonctionnement.
    1.6  Impression repensee. Cadrage automatique des planches : on choisit le
         format et l'echelle, le plugin calcule le decoupage qui couvre tout le
         reseau avec le moins de planches possible, en alignant la plus grande
         longueur du reseau sur la plus grande dimension de la feuille (axe
         horizontal en paysage, vertical en portrait). Les planches sont
         numerotees dans l'ordre du terrain, de proche en proche, et leur
         cartouche reste du meme cote d'une planche jointive a l'autre : les
         tirages s'assemblent sans en retourner un. La marge reservee autour du
         reseau se deduit des etiquettes reellement affichees, dont le texte est
         evalue, pour qu'aucune ne soit tronquee. Correction majeure : la
         rotation des planches n'etait pas appliquee au rendu (signe inverse),
         de sorte qu'une planche inclinee sortait a deux fois son inclinaison au
         lieu d'etre redressee ; le cadre du plan d'ensemble delimite desormais
         exactement la zone cartographiee, cartouche exclu.
         Les reglages d'impression rejoignent la fenetre d'export : une seule
         fenetre pour tout, listes deroulantes a la suite de la case Plan PDF,
         plus aucune boite de dialogue intermediaire. Nouveau bouton « Toutes
         les pieces (ZIP) » qui produit en une fois le plan PDF et DXF, les
         profils EU et EP, la cubature remblai (PDF et XLSX) et les coupes
         types EU et EP, rassembles dans une archive. Le plan d'ensemble
         devient une case cochee par defaut, comme le cadrage automatique.
         Plan d'ensemble plus lisible : une teinte par planche, numeros cernes
         de blanc au lieu de pastilles opaques qui masquaient le fond.
         Barre d'echelle redessinee, plus fine et plus discrete, unite affichee
         une seule fois. Cartouche : la taille du texte s'adapte a chaque case,
         la date n'est plus tronquee sur les formats etroits.
         Export : cubature et coupes types s'ajoutent a l'export groupe, tous
         les fichiers produits sont prefixes par leur nature.
         Performance : l'export PDF est environ quatre fois plus rapide
         (25 s -> 6 s sur un cas reel), les fonds WMS ne sont plus demandes en
         tuiles de 256 px et le rendu n'impose plus ForceVectorOutput inutile.
    1.5  Interface entièrement multilingue (français, anglais, espagnol,
         portugais, allemand) : toutes les fenêtres suivent désormais la langue
         choisie dans le panneau CanaPlan ou le menu Langue. Sont traduits les
         en-têtes et rapports de cubature/remblai (écran, CSV, PDF, XLSX), le
         plan de coupe transversale (couches, cotes, cartouche, titre), la
         coupe de tranchée composée, l'assistant de création de projet et la
         configuration rapide partagée, le dialogue d'impression et la pose des
         feuilles, les profils en long et le profil groupé, le tableau de saisie
         (modes de calcul verrouillés, recherche de chaîne), le dialogue de
         renseignement, la gestion des étiquettes, l'export StaR-Eau et son
         contrôle de conformité, l'import Star-DT, l'export DXF et les messages
         d'enregistrement des projets .bet. Les valeurs normatives StaR-Eau, les
         matériaux et les noms de couches restent en français : ce sont des
         données, pas de l'interface. L'entrée « À propos » passe en dernière
         position du menu CanaPlan, après le sous-menu Langue.
    1.4  Nouvel assistant de création de projet (4 étapes navigables librement) :
         recherche d'adresse BAN avec suggestions et mini-carte OSM pour
         situer le projet, choix des fonds de plan à charger, configuration
         rapide (réseau par défaut / cubature / remblai) en accordéons,
         récapitulatif avant création. Accessible depuis le dialogue
         d'accueil (« Débuter avec l'assistant ») ou directement depuis le
         menu Projet. Widgets de configuration rapide extraits pour être
         partagés entre l'assistant et le dialogue Configuration existant.
         PCI Vecteur : le service cadastral utilisé pour les parcelles
         (obsolète, trous de couverture) est remplacé par le Parcellaire
         Express IGN, actuel et complet. Actions Bâti et Parcelles séparées
         dans le menu Fond de carte. Les couches de fond WFS rechargées
         (PCI, BAN, noms de voie) mettent à jour la couche existante en
         place au lieu d'empiler des doublons à chaque clic.
    1.3  Export StaR-Eau (CNIG/ASTEE V2024) : génération d'un GeoPackage conforme
         au géostandard des réseaux d'eau et d'assainissement, avec les cinq
         couches ass_canalisation, ass_regard, ass_canalisation_branchement,
         ass_point_collecte et ass_raccord. Arcs orientés dans le sens
         d'écoulement, clés techniques UUID v5 déterministes (un même chantier
         réexporté redonne les mêmes clés) et identifiants métier lisibles.
         Dialogue en cinq onglets (Fichier, Chantier, Réseau, Ouvrages,
         Contrôle) alimenté par les listes de valeurs officielles, non modal
         pour permettre de corriger les anomalies dans QGIS sans le fermer ;
         contrôle de conformité avec zoom sur l'objet fautif au double-clic et
         mémorisation des saisies d'un chantier à l'autre. Nom de fichier
         normalisé Stareau-fr<code>-<SIREN><type><date>.gpkg.
         Import Star-DT étendu à StaR-Elec : sélection multi-fichiers et
         glisser-déposer, découverte automatique des classes et des attributs
         présents dans le GML (plus de liste figée), câbles HTA/BT séparés,
         fourreaux, accessoires, coffrets, poteaux et points levés. Symbologie
         en millimètres (rendu identique à l'écran et à l'impression) avec
         marqueurs de classe de précision (« HTA-A », « BT-C ») insérés dans
         les coupures du trait, et étiquettes ponctuelles.
         Tableau de saisie : la cote de piquage d'un branchement est désormais
         interpolée sur la conduite mère et se recalcule en cascade dès que
         les fils d'eau de cette conduite changent. Modes de calcul renommés
         (Pente → FE tabouret / Pente → cote piquage) et convention de signe
         alignée sur les profils, la cubature et le formulaire Renseigner.
         Liste des matériaux de conduite unifiée entre Configuration rapide,
         Tableau de saisie et export StaR-Eau, et séparée des matériaux de
         remblai. Menu QGIS réorganisé par catégories (mêmes groupes que le
         panneau latéral), bascule d'affichage de la barre d'outils, dialogue
         « À propos », renommage en « CanaPlan », suppression du doublon
         « Mise en place fond de projet » dans le panneau latéral.
    1.2  Fusion des outils Cubature et Remblai de tranchées en une seule fenêtre
         de résultats, avec case à cocher pour afficher/masquer à la volée les
         colonnes de détail remblai (lit de pose, enrobage, chaussée, remblai).
         Sous-totaux par colonne (linéaires, surfaces, volumes) et nouvel onglet
         Synthèse des ouvrages (PDF + Excel) groupé par matériau/diamètre, avec
         comptage des regards et tabourets. Fenêtre de résultats redimensionnable
         et auto-adaptée au nombre de lignes/colonnes affichées. Nouveau tableau
         de saisie groupée (Regards/Tabourets/Conduites/Branchements) avec calcul
         automatique de la pente ou de la cote fil d'eau, aperçu carte, copier/
         coller Excel et annulation (Ctrl+Z). Ajout du réseau AEP (eau potable)
         dans le dessinateur de coupe de tranchées composée. Annotations texte
         enrichies (cadre, transparence, échelle liée aux étiquettes, aperçu
         sans fermer la fenêtre). Fond de plan Ortho 2022 (CRAIG) remplacé par
         la BD ORTHO IGN nationale. Persistance des identifiants de couches
         dans le projet et mutualisation des recherches spatiales et des
         téléchargements WFS.
    1.1  Rendu PDF parallèle et annulable, flèche du nord, échelle normalisée
         du plan d'ensemble, suppression feuille par feuille (Retour arrière).
         Index spatiaux sur tous les outils carte (fluidité sur gros réseaux),
         écritures attributaires batch. Fonds WFS (BAN/PCI/BD TOPO) chargés
         en tâche de fond sans geler QGIS, TLS vérifié, nettoyage des
         temporaires. IDs de couches persistés dans le projet (fin du bug
         multi-projets). Correction du style bâti PCI. Paquet allégé.
    1.0  Version initiale.
