QGis is CAD: Dessin automatique avec le Plug-In « Rectangles, Ovals, Diamonds »

Les logiciels SIG ne sont pas là pour remplacer les logiciels de Conception Assistée par Ordinateur (type AutoCAD) néanmoins il est parfois bien utile de pouvoir bénéficier de certaines fonctions comme celle que je vous présente ici : le dessin automatique.

Parmi les centaines de Plug-In de QGis, je suis tombé sur « Rectangles, Ovals, Diamonds » qui permet, comme son nom l’indique, de dessiner des ovales, des rectangles et des losanges d’après une table attributaire contenant les infos de largeur,  longueur et éventuellement sur l’orientation des objets que l’on veut dessiner…

Objectif: desssiner des formes circulaires et ovales (des trous de poteaux et des fosses dans notre cas) à partir d’un shapefile (ou fichier) de points contenant les largeurs et longueurs de nos objets.

Avant_Apres

Installez le Plug-In « Rectangles, Ovals, Diamonds » de Pavol Kapusta et Benjamin Bohard, via l’installateur d’extension Python (menu Extension); ici en version 0.1.7.

Attention: a ne pas confondre avec « Rectangles Ovals Digitizing » de Pavol Kapusta qui installe une barre d’outils pour dessiner des rectnagles (à partir d’un coin ou du centre), des carrés (à partir du centre) et des ovals (à partir d’un « coin » ou du centre) mais aussi de transformer ses objets… je vous laisse le loisir de découvrir ce Plug-In tout seul…

1) Préparation des données:

Pré-requis: travailler dans un système métrique, ça tombe bien je suis en Lambert II

Je dispose au départ d’un shapefile de points qui représente le centre de mes vestiges archéologiques, essentiellement des trous de poteaux et des fosses globalement circulaires ou ovals.

La table attributaire de celui-ci contient une colonne Diam_Long : Diamètre du cercle ou Longueur de l’oval, une colonne Larg : Largeur de l’oval (valeur 0 si c’est un cercle) et dans l’idéal une colonne Orient qui contient l’orientation en degrés (0 = plein Nord, 180 = Sud,..) de l’oval.

1.1) Malheureusement, mes données sont exprimées en centimètres, Rectangles, Ovals , Diamonds exige que l’on travaille en mètres !

Solution : avec la calculatrice de champs je converti et remplace les valeurs des colonnes Diam_Long et Larg

Field calculator: conversion cm à m

Remarquez que j’ai coché la case « Champ de mise à jour existant » et que j’ai simplement appliqué la formule : diviser les valeurs de cette colonne par 100.

1.2) Aussi, certains objets considérés comme circulaires ont reçus la valeur 0 dans le champ Larg

Solution: Toujours avec la calculatrice de champs, après avoir sélectionné toutes les lignes contenants la valeur 0 dans la colonne Larg, j’ai attribué la valeur de la colonne Diam_Long à celles-ci

Field Calculator

Remarquez que j’ai coché la case « Champ de mise à jour existant » et la case « Mise à jour des entités sélectionnées » ensuite, que j’ai simplement appliqué la formule : Larg = Diam_Long

2) C’est parti !

Nos données étant vérifiées et organisées, il suffit de cliquer sur le bouton Bouton-Rectangle-Ovals-Diamonds

Boite de dialogue

Une boîte de dialogue s’ouvre dans laquelle il faut spécifier:

– le type de forme que l’on veut dessiner (rectangles, ovals ou losanges)

– le shapefile de points sur lequel on se base

– le nom de la colonne qui contient les valeurs de largeur (Width field)

– le nom de la colonne pour les longueurs (Height fields)

– le nombre de segments, a priori je laisse la valeur par défaut (36)

– le nom et l’emplacement du shapefile qui va être créé.

Et voilà,

Rendu Final

3) Epilogue:

Comme vous l’avez remarqué, pour obtenir ce rendu final j’ai joué avec la colonne orientation et j’ai donc coché la case « Rotate » dans la boîte de dialogue du Plug-In: celle-ci permet de spécifier la colonne « orientation ». J’ai fait quelques tentatives avant d’y arriver: les valeurs de cette colonne doivent être en degrés (il reconnaît les valeurs de 0 à 360 sans problème), mais il m’a fallu fermer Qgis et le ré-ouvrir pour qu’il prenne en compte tout les points… allez savoir pourquoi ?

Sinon, rien à redire, ce Plug-In va surement rester longtemps dans ma barre d’extension et me servir à l’execution de plans de travail « automatiques » d’après un simple relevé topographique (un point par objet) et un pré-enregistrement minimal de ceux-ci (Largeur, Longueur et Orientation).

Et vous, cela vous donne des idées d’utilisation pratique ?

Tagué , , , , , ,

14 réflexions sur “QGis is CAD: Dessin automatique avec le Plug-In « Rectangles, Ovals, Diamonds »

  1. PS dit :

    Je reste sceptique quant à l’efficacité de cette extension. Pour le traitement des données pourquoi pas mais sur le terrain, ca sous-entend qu’il faut travailler avec un mètre pour chaque structure circulaire ou ovale. C’est pas très pratique…. Surtout sous la pluie !

  2. PS dit :

    De notre côté, nous avons adopté pour les trous de poteaux, une solution guère plus commode :
    1) Sur le terrain, prendre 2 points, 1 pour le centre du TP et 1 sur le contour.
    2) En post-traitement : en utilisant l’extension pointTOone, relier les deux points par une ligne
    3) Avec la calculatrice de champ, calculer la longueur de la ligne (équivalent au rayon) et créer un nouveau champ avec les résultat.
    4) Joindre cette nouvelle couche à la couche de point d’origine
    5) Faire une selection sur les points correspondant au centre du TP
    6) Enfin utiliser le menu vecteur, outils de géométrie, tampon. Et utiliser le champs longueur pour le tampon
    7) Résultat dans un nouveau shape : des jolis trous de poteaux !

    Petit hic : ca ne résoud pas le problème pour les ovales !

  3. Manu dit :

    Ce plugin m’est très utile pour dessiner le plan des excavations lorsqu’on travaille avec un quadrillage d’unité métrique pour les fouilles. Pour dessiner le quadrillage, j’utilise la fonction de grille vecteur, natif dans les outils de recherche vecteur de QGIS.

    Or, parfois nous ne fouillons pas l’unité au complet. Il arrive que nous fouillons des tranchées de 1 m par 50 cm, surtout à l’étape d’évaluation de l’étendue ou de l’intégrité du site. Aussi, à l’étape d’évaluation, nous établissons souvent le quadrillage à l’aide de la boussole, ce qui nous donne une déclinaison magnétique de 13,27 degrés dans notre région. C’est pour ces unités que le plugin fonctionne très bien. L’outil grille vecteur ne permet pas de dessiner des carrés ou rectangles orientés selon un angle spécifique. J’explique :

    1 – Les unités d’excavation sont relevé à l’aide de point centraux. Dans notre couche de points, nous avons un champs d’orientation avec la déclinaison magnétique.

    2 – Un champ est attribué à la largeur et la hauteur (1 m et 0,5 m).

    3 – Et voilà, en une manipulation, nous avons le plan des unités fouillés.

  4. Faustine dit :

    Bonjour,
    Savez-vous si ce plugin existe toujours car je ne le trouve pas dans Python. J’ai besoin de créer des cercles (de trou de poteau) à partir d’un point (le centre) et d’un diamètre connu. Avec Rectangles, Ovals Digitizing, je n’arrive qu’à créer des cercles sans en maîtriser le diamètre.

    • archeomatic dit :

      Salut Faustine,
      réponse tardive : vacances oblige!
      A priori avec QGIS 2.16 l’extension est encore présente (Menu Extension > Installer Gérer des extensions > Toutes > Taper Rectangle dans la barre de filtre Puis [installer]
      Que veux tu dire par « je ne le trouve pas dans python » ??
      Effectivement on ne choisi pas le diamètre avec Rectangle, Ovals digitizing…
      Sinon avec l’extension ArchéoCAD on peut dessiner des cercles à partir d’un diamètre (et pas un point central), il suffit que tes points d’une même structure aient un identifiant commun et que tu es une colonne dans laquelle est indiqué cercle, circle ou c
      Tu peux peut-être regarder du côté de CADDigitize basé sur Rectangles, Ovals Digitizing mais plus puissant (pas essayé mais regarde la page d’aide)
      voili pour l’instant
      tiens moi au jus

      • Faustine dit :

        J’ai de nouveau cherché Rectangles, Ovales, Diamonds dans les extensions (et non Python effectivement, je suis plus que novice dans QGis!) et ne la trouve définitivement pas même dans la v 2.18 fraîchement installée ce matin.
        Au final, on arrive à dessiner les TP à partir d’un point et de l’information du diamètre (qu’on a dû recalculer en rayon et en mètre et non en cm!), en passant par le menu Vecteur, Outils de géotraitement, Distance tampon variable. Du coup, pour les cercles parfaits, a priori pas besoin de longueur et de largeur.
        Pour ce qui des ovales, il faut qu’on creuse avec ArchéoCAD effectivement

  5. archeomatic dit :

    Re,

    Effectivement le buffer c’est une idée simple et efficace!

    Au pire si tu ne le trouve pas le plugin:
    1) télécharge-le sur la page https://plugins.qgis.org/plugins/rectovalDigit/version/1.1.2/
    bouton Download en haut à droite
    2) copie le zip et dezippe le dans le répertoire C:\Users\ton_nom\.qgis2\python\plugins\
    cela devrait fonctionner

    Pour archeoCAD, cela peut être hyper pratique quand on a comprise le fonctionnement et que le topo enregistre ces points pour les faire traiter dans archeoCAD (identifiants et colonne comprenant la géométrie voulue: cercle, ellipse, polygones)

    A+

    • Faustine dit :

      Pas de soucis pour le Digit, c’est le Diamonds que je cherchais, mais visiblement il n’existe plus pour les versions en 2.
      Comme la topo c’est moi, je vais effectivement changer la manière de relever les points avec le GPS.
      Merci pour tout

  6. archeomatic dit :

    OK je m’étais fourvoyé dès le début: effectivement je ne retrouve plus « diamonds » !!!
    Pour archéoCAD avec un GPS c’est que du bonheur (ou presque) tu peux même te préparer un dictionnaire d’attribut pour faciliter la tâche.. (on fait ça avec des trimble par chez nous)

  7. Clémence dit :

    Bonjour,
    Jutilise la version 2.8.1 de Qgis et ce plug in nexiste definitivement plus ?
    Clemence

    • Faustine dit :

      C’est cette version que j’utilise aussi, et le « diamonds » n’y est plus. J’ai l’impression que c’est le cas depuis quelques années déjà…

  8. Robert dit :

    Bonjour,

    Je veux bien dessiner automatiquement quelques milles carrés dont le dimensionnement fixé à partir de leur centre (latitude, longitude) dans un fichier CSV.

    Quel qu’un pourrait avoie une idée de le faire?

    Merci d’avance!

    • archeomatic dit :

      Bonjour Robert,
      Je ne suis pas sûr de ce que tu veux faire ?
      – est-ce une maille régulière de carrés ?
      ou
      – il n’y a pas de régularité et chaque carré a les coordonnées de son centroïde dans ton fichier CSV ?
      Selon le cas on s’orientera vers des solutions différentes: plutôt une création de grille dans le 1er cas et plutôt vers une sorte de buffer (zone tampon) carré dans le 2eme..
      Dis-nous en plus..
      Sylvain

Répondre à PS Annuler la réponse.