Scout Posté(e) jeudi à 09:58 Posté(e) jeudi à 09:58 Bonjour a tous existe-t-il un lisp qui calcule automatiquement des aires en lot et intègre les surfaces a l'intérieur des lots merci pour votre retour Scout
didier Posté(e) jeudi à 10:58 Posté(e) jeudi à 10:58 Bonjour @Scout Je comprends qu'un "lot" est une polyligne close, est-ce bien le cas ? Un exemple de dessin serait le bienvenu, dans ce dessin, vous préciserez ce que vous appelez un "lot", dans quel calque il faut interroger les entités. Comme toujours, nous avons besoin d'aide pour vous aider. En posant "simplement" la question comme si vous parliez à ChatGpt les humains que nous sommes ne sont pas certains de répondre correctement. Grâce à ce dessin, nous connaitrons vos unités de dessin, l'échelle des textes à rendre, enfin… tout ce qui est nécessaire pour faire une réponse à propos. Amicalement PS : j'ai supprimé le message en double. Éternel débutant... Mon site perso : Programmer dans AutoCAD
VDH-Bruno Posté(e) jeudi à 11:11 Posté(e) jeudi à 11:11 Bonjour, TOTALAREA dans les Lisps de (gile) doit pouvoir faire cela à tester... https://gilecad.azurewebsites.net/Lisp.aspx Cdt Apprendre => Prendre => Rendre
lecrabe Posté(e) jeudi à 15:36 Posté(e) jeudi à 15:36 Hello Voici un autre VLisp "PolyArea" de Gilles fort pratique qui permet la selection de N Objets 2D POLYAREA traite: ARC,CIRCLE,ELLIPSE,POLYLINE 2D,ELLIPSE,SPLINE,MPOLYGON,REGION et qui genere pour chacun un champ dynamique avec 1 decimale du genre : 23.4m² ;; ------------------------------------------------------------------------------------- ;; 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 ... ;; ------------------------------------------------------------------------------------- Bye, lecrabe ;; ;; 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
Flower0f Posté(e) hier à 06:40 Posté(e) hier à 06:40 @didier un "lot" en terme de géomètre c'est un découpage de parcelle en vue de détacher 2 ou plusieurs surfaces (lotissement) il est bon en effet en terme de dessin de créer des poly fermées, mais chacun sa méthode de travail... Utilisateur mécontent de mensura 😡
didier Posté(e) hier à 08:21 Posté(e) hier à 08:21 Bonjour @Flower0f Merci pour cette clarification, mais comme il se trouve que je suis (un peu) géomètre, je sais aussi que si on parle de copropriété horizontale, un lot peut être une addition de pièces d'appartement ou de locaux et il est rare que dans ce cas ce sot une polyligne close, mais un cumul de polylignes. Ce que je voulais dire, c'est que lorsqu'on pose une question, il faut être le plus explicatif possible et ne pas utiliser des termes propres à chacun pouvant avoir un sens ambigu chez les autres. Autre chose, quand on pose une question, il faut revenir sur le forum, trois personnes sont intervenues dont deux propositions de Lisp et @Scout ne vient même pas les lire et encore moins les remercier. Amicalement tout de même ! Éternel débutant... Mon site perso : Programmer dans AutoCAD
Flower0f Posté(e) hier à 08:24 Posté(e) hier à 08:24 @didier entièrement d'accord avec toi Utilisateur mécontent de mensura 😡
Scout Posté(e) hier à 09:27 Auteur Posté(e) hier à 09:27 et oui je répond et je vous remercie pour les réponses je que j'appel par lots voir la capture ci-jointe et encore merci Scout
lecrabe Posté(e) hier à 09:42 Posté(e) hier à 09:42 Hello SUPER je vais jouer aux Dames !? Bye, lecrabe Autodesk Expert Elite Team
Scout Posté(e) hier à 15:08 Auteur Posté(e) hier à 15:08 Merci bien pour le Lisp lecrabe Par contre quand je sélectionne tout il me met un A entre le M et le ² provient t'il du champ voir pièce jointe
didier Posté(e) hier à 15:23 Posté(e) hier à 15:23 Bonjour @Scout Ce LSP est très ancien et n'a jamais posé de soucis, d'ailleurs j'ai refait le test avant de répondre et chez moi le A présenté n'existe pas. Peut-être un souci de police de caractères, laquelle utilisez-vous dans votre style courant ? Amicalement 1 Éternel débutant... Mon site perso : Programmer dans AutoCAD
lecrabe Posté(e) hier à 15:25 Posté(e) hier à 15:25 Hello Je soutiens Didier, ce VLisp est BETON ! Bye, lecrabe Autodesk Expert Elite Team
didier Posté(e) hier à 15:26 Posté(e) hier à 15:26 Comme toute la production de (gile) Éternel débutant... Mon site perso : Programmer dans AutoCAD
Scout Posté(e) hier à 16:02 Auteur Posté(e) hier à 16:02 Merci pour vos remarques et bonnes fête a vous tous Scout
didier Posté(e) il y a 23 heures Posté(e) il y a 23 heures Bonjour @Scout Bonnes fêtes à vous aussi, merci. Il serait intéressant de savoir si vous avez trouvé une solution au caractère parasite qui apparait lorsque vous utilisez ce LSP. C'est ok pour vous ? Le problème perdure ? Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
(gile) Posté(e) il y a 20 heures Posté(e) il y a 20 heures Je pense qu'il s'agit d'un problème d'encodage. Depuis la version 2021 d'AutoCAD, AutoLISP supporte les caractère UNICODE (j'en avais parlé ici). Il faut donc faire attention quand on copie/colle un LISP de bien l'enregistrer avec le bon encodage ASCII ou UNICODE ou (de convertir l'encodage). Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
rebcao Posté(e) il y a 7 heures Posté(e) il y a 7 heures Bonjour, Je confirme, enregistré sous ANSI, UTF..., pas de A ! Une remarque, le LISP ne tient pas compte des UNITES du dessin (variable INSUNITS : 4 = mm / 5 = cm / 6 = m) ! Il donne la valeur BRUTE indiquée dans les PROPRIETES ! J'utilise souvent mes outils de surface avec une version AutoCAD LT et j'utilise la MACRO DIESEL suivante : $m=$(rtos,$(/,$(getvar,area),$(getvar,USERR2)),2,2); La valeur de USERR2 correspond au nombre diviseur suivant les unités du dessin : mm = 1 000 000 / cm = 10 000 / m = 1 Très facile à transposer en LISP... Ce qui donnera toujours un résultat affiché en M² quelque soit l'unité du dessin ! Christian 1 Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
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