gartoun Posté(e) le 18 juin 2020 Posté(e) le 18 juin 2020 Bonjour, Novice sur MAP, j’ai besoin de vos lumières (@le crabe: je n’ai pas du tout note pendant notre formation l’année dernière...) Voilà: j’ai un parcellaire auquel je vous affecter une table de donnees ( num, section, propriétaire.....) et avoir la surface de chaque parcelle. Puis extraire ces données pour les avoir dans un tableau. Merci pour vos futures réponses !
lecrabe Posté(e) le 19 juin 2020 Posté(e) le 19 juin 2020 Hello SVP a quelles dates cette formation SVP ? LA SANTE (Stay Safe), Bye, lecrabe "triste"Automne 2020, la retraite Autodesk Expert Elite Team
lecrabe Posté(e) le 19 juin 2020 Posté(e) le 19 juin 2020 Hello Je retiens deja que tu veux ecrire une Surface basee sur un Polygone 2D ... Imaginons que tu as des Polylignes 2D closes (Du genre: parcelle, batiment, etc) !? Le Lisp ci-dessous "POLYAREA" , va generer un champ dynamique au Centroid des Polygones qui indique la Surface ... Apres il faudra se promener sur les Polygones et replacer / deplacer certains champs a un meilleur emplacement XY ! SVP changer la Variable System TEXTSIZE (si necessaire) AVANT d'executer la Routine !TEXTSIZE controle la hauteur des champs dynamiques generes ... Chargement des routines Lisp par la commande : APPLOAD Execution par la commande clavier : POLYAREA MERCI au Grand Maitre Gilles ! LA SANTE (Stay Safe), Bye, lecrabe "triste"Automne 2020, la retraite ;; ;; PolyArea par GC - 03/03/2018 ;; ;; Micro-Modif par Patrice B. ;; ;; ------------------------------------------------------------------------------------- ;; SVP changer la Variable System TEXTSIZE AVANT d'executer la Routine ! ;; Car la routine utilise la valeur de TEXTSIZE comme Hauteur de MTEXT par defaut ... ;; ------------------------------------------------------------------------------------- ;; ;; J'ai revu les codes, le probleme venait de la methode utilisee pour placer le texte/champ sur le barycentre de la polyligne. ;; Cette methode ne fonctionnait qu'avec des polylignes. ;; ;; J'ai change cela. Le texte est desormais place au centre de la boundingbox de l'entite. ;; J'ai aussi revu les filtres de selection qui ne devraient pas etre tout à fait les memes pour l'aire et la longueur. ;; ;; Pour l'aire, je te laisse choisir entre uniquement les objets fermes, ou pas. ;; ;; Pour les longueurs, les champs sont differents pour les cercles (Circumference), les regions et mpolygons (Perimeter) ;; et n'existent pas pour les ELLIPSEs et SPLINEs, j'ai donc remplace le champ par un MTEXT simple qui affiche la longueur. ;; ;; %<\AcObjProp Object(%<\_ObjId 1181647088>%).Area \f "%lu2">% ;; %<\AcObjProp Object(%<\_ObjId 1181647088>%).Length \f "%lu2">% ;; %<\AcObjProp Object(%<\_ObjId 1181647088>%).Perimeter \f "%lu2">% ;; %<\AcObjProp Object(%<\_ObjId 1181647088>%).Circumference \f "%lu2">% ;; ;; Liste sur ELLIPSE --> Aire & Circonference ?? ;; Liste sur SPLINE --> Aire & Circonference ?? ;; ;; --- Interrogation Entite/Objet en Lisp --- ;; (entget (car (entsel)) '("*")) ;; (defun c:PolyArea (/ *error* filter ss acSpace minPt maxPt pt id str txt) (vl-load-com) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object)))) (or *util* (setq *util* (vla-get-Utility *acdoc*))) (defun *error* (msg) (and msg (/= msg "Fonction annulée") (/= msg "Function cancelled") (princ (strcat "Erreur: " msg)) ) (vla-EndUndomark *acdoc*) (princ) ) ;; entités fermées ;| (setq filter (list '(-4 . "<OR") '(0 . "CIRCLE,MPOLYGON,REGION") '(-4 . "<AND") '(0 . "ELLIPSE") '(41 . 0.0) (cons 42 (* 2 pi)) '(-4 . "AND>") '(-4 . "<AND") '(0 . "LWPOLYLINE") '(-4 . "&") '(70 . 1) '(-4 . "AND>") '(-4 . "<AND") '(0 . "POLYLINE") '(-4 . "&") '(70 . 1) '(-4 . "<NOT") '(-4 . "&") '(70 . 120) '(-4 . "NOT>") '(-4 . "AND>") '(-4 . "<AND") '(0 . "SPLINE") '(-4 . "&") '(70 . 9) '(-4 . "AND>") '(-4 . "OR>") ) ) |; ;; entités fermées ou ouvertes (setq filter (list '(-4 . "<OR") '(0 . "ARC,CIRCLE,LWPOLYLINE,MPOLYGON,REGION,ELLIPSE") '(-4 . "<AND") '(0 . "POLYLINE") '(-4 . "<NOT") '(-4 . "&") '(70 . 120) '(-4 . "NOT>") '(-4 . "AND>") '(-4 . "<AND") '(0 . "SPLINE") '(-4 . "&") '(70 . 8) '(-4 . "AND>") '(-4 . "OR>")) ) (prompt "Hauteur courante de MTEXT - Voir la Variable System TEXTSIZE ... \n" ) (prompt "\nPOLYAREA traite: ARC,CIRCLE,ELLIPSE,POLYLINE 2D,ELLIPSE,SPLINE,MPOLYGON,REGION \nSelectionnez les objets ou Entree pour tous ") (if (or (ssget filter) (ssget "_X" (cons (cons 410 (getvar 'ctab)) filter)) ) (progn (vla-StartUndomark *acdoc*) (setq acSpace (vla-get-Block (vla-get-ActiveLayout *acdoc*))) (vlax-for obj (setq ss (vla-get-ActiveSelectionSet *acdoc*)) (vla-GetBoundingBox obj 'minPt 'maxPt) (setq pt (mapcar '(lambda (x1 x2) (/ (+ x1 x2) 2.)) (vlax-safearray->list minPt) (vlax-safearray->list maxPt) ) id (vla-GetObjectIdString *util* obj :vlax-false) str (strcat "%<\\AcObjProp Object(%<\\_ObjId " id ">%).Area \\f \"%lu2%pr1%ps[,m²]%\">%" ) txt (vla-addMText acSpace (vlax-3d-point pt) 0. str) ) (vla-put-AttachmentPoint txt acAttachmentPointMiddleCenter) (vla-put-insertionPoint txt (vlax-3d-point pt)) ) (vla-Delete ss) ) ) (*error* nil) ) Autodesk Expert Elite Team
gartoun Posté(e) le 19 juin 2020 Auteur Posté(e) le 19 juin 2020 merci pour cette routine, mais cela ne repend pas à ma problématique. Je souhaite obtenir dans une table de donnée un champs "surface" par polygone, que se modifie si j'étire le polygone par exemple.Merci @+
Olivier Eckmann Posté(e) le 21 juin 2020 Posté(e) le 21 juin 2020 Bonjour, Pas possible avec les champs d'OD. Il n' y a aucun mécanisme (OOTB) de mise à jour automatique d'un champ d'OD depuis une propriété AutoCAD.Mais la propriété surface est récupérable lors d'un export par ex ou dans des gabarits d'annotation. Quel est le but recherché d'un champ dynamique sur la surface? Olivier
lecrabe Posté(e) le 22 juin 2020 Posté(e) le 22 juin 2020 Hello OK donc comme le dit Olivier, lors du MAPEXPORT, tu peux demander l'Export de la Propriete Aire / Surface et/ou Longueur / Perimetre AutoCAD des objets selectionnes ! Donc l'Info sera A JOUR en temps reel !! SVP tu regardes mon document PDF sur MAPEXPORT "MAP_201X__2012_GIS__MAPEXPORT__v107A.pdf" dans le sous-dossier a la page 8 ... Et pour MAPEXPORT, en plus de CE PDF, tu peux regarder ICI : https://georezo.net/forum/viewtopic.php?id=114348 LA SANTE (Stay Safe), Bye, lecrabe "triste"Automne 2020, la retraite Autodesk Expert Elite Team
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant