FredGL Posté(e) le 21 mars Posté(e) le 21 mars Bonjour, Suite à une longue recherche infructueuse, je me permet de chercher de l'aide sur ce forum. Je cherche à créer une macro qui puisse me permettre d'obtenir la surface cumulée de polylignes préalablement sélectionnées, en cliquant juste sur un bouton dans le ruban (le bouton ça je sais faire). Et resélectionner les polylignes une par une avec la commande AREA n'est pas envisageable quand on en a 1000 😅 J'ai déjà une version équivalente en lisp de cette commande que voici ci-dessous et j'aimerais l'adapter en macro car j'ai une dizaine de collègues qui travaillent sur AutoCAD LT et qui en auraient bien besoin : ____________________ (defun c:MESURF (/ mes:JST mes:NBR_JS mes:ENT mes:C mes:surf) (setvar "cmdecho" 0) (setq mes:JST (ssget '((-4 . "<or") (0 . "lwpolyline") (0 . "polyline") (-4 . "or>") ) ) ) (if (/= nil mes:JST) (progn (setq mes:NBR_JS (sslength mes:JST)) (setq mes:C 0) (setq mes:surf 0.0) (while (< mes:C mes:NBR_JS) (setq mes:ENT (ssname mes:JST mes:C)) (setq mes:C (1+ mes:C)) (command "_AREA" "o" mes:ENT) (setq mes:surf (+ (getvar "AREA") mes:surf)) ) (princ (strcat "Surface : " (rtos mes:surf) "m2")) (alert (strcat "Surface : " (rtos mes:surf) "m2")) ) (princ "Pas d'entités sélectionnés") ) (setvar "cmdecho" 1) (princ) ) ___________________ N'y aurait-il pas moyen de créer une macro qui utilise la commande AREA avec un genre de redondance dans la macro qui ajoute une à une chaque polyligne préalablement sélectionnées ? Ou une macro qui créé une hachure spécifique dans toutes ces polylignes et qui nous redonne la surface cumulée de toutes ces hachures puis qui les supprime ? Je ne m'y connais pas assez ni en macro ni en lisp pour y arriver moi-même 😅 Lors de mes recherches j'ai trouvé la solution du scandxf mais elle ne me satisfait pas totalement car demande l'installation d'un fichier externe à mon entreprise sur chaque PC, ce qui demande de passer par le support informatique sur plusieurs PC, pas super pratique 🤔 Et en plus c'est limite trop complexe par rapport à l'info "simple" qu'il nous faut. Merci d'avance pour votre aide ! Citer
lecrabe Posté(e) le 21 mars Posté(e) le 21 mars Hello @FredGL Mais tu as quoi : AutoCAD ou AutoCAD LT ? Et en quelle version : 2025 / 2024 / 2023 / 2022 ?? Bye, lecrabe Citer Autodesk Expert Elite Team
FredGL Posté(e) le 21 mars Auteur Posté(e) le 21 mars Moi j'ai AutoCAD 2022 mais le problème n'est pas moi car j'ai déjà le lisp qui fonctionne. Mes collègues sont en LT de différentes années (c'est super l'homogénéité des versions chez nous 😅), on va dire 2023 en majorité Citer
lecrabe Posté(e) le 21 mars Posté(e) le 21 mars Hello @FredGL En fait il faudrait avoir au minimum AutoCAD LT 2024 pour faire tourner 90% des Lisp / VLisp pour AutoCAD ! Avec un AutoCAD LT 20xx-2023, j ai une Macro sur la Longueur (et non pas l Aire / Surface) de Eric Guelen : a adapter / a verifier !? Et ici, tu regardes la video d Eric qui illustre les 3 Macros : https://forums.autodesk.com/t5/autocad-tous-produits-francais/additionner-longueur-polylignes-lt2020/td-p/9448135 SVP si tu reussis, tu nous donnes la solution ! Bye, lecrabe >> J'ai construit les macros sous une version pleine, et j'avais "zappé" que pour une version LT, seules les variable USERS1-5 sont accessibles. >> Voici la correction présumée (3 boutons / 3 Macros) , sans pouvoir tester sous un AutoCAD LT : >> ^C^C_.users1;0.0;_.text;_justify;_right;\\0.0;Récapitulatif;^Z >> *^C^C_.area;_object;\_.users1;$M=$(+,$(getvar,users1),$(rtos,$(getvar,perimeter),2,2));_.text;;$(rtos,$(getvar,perimeter),2,2); >> ^C^C$M=$(if,$(!=,$(getvar,users1),0.0),_.text;;Total=$(getvar,users1);)^Z >> NB: Toujours sur 1 seule ligne, et bien vérifier qu'aucun espace ne s'est glissé lors du copier-coller !! Citer Autodesk Expert Elite Team
FredGL Posté(e) le 21 mars Auteur Posté(e) le 21 mars Merci pour ta réponse et ta réactivité @lecrabe ! Alors on obtient bien la surface cumulée, mais des Polylignes qu'on doit resélectionner une à une comme la commande AREA, et vu que sur certains fichiers on en a parfois presque 1000 ce n'est pas gérable 😅 Citer
FredGL Posté(e) le 21 mars Auteur Posté(e) le 21 mars J'essaie d'expérimenter comment faire avec des hachures, pour le moment j'arrive à les créer, à les resélectionner et à les supprimer. Mais comment est-ce que je pourrai obtenir la valeur de la propriété "Aire Cumulée" ? (avec une macro) Citer
lecrabe Posté(e) le 21 mars Posté(e) le 21 mars Hello @FredGL MAIS quand tu selectionnes N hachures, tu as automatiquement en bas de la case de dialogue Proprietes : la surface TOTALE ! Bye, lecrabe Citer Autodesk Expert Elite Team
FredGL Posté(e) le 21 mars Auteur Posté(e) le 21 mars @lecrabe Je sais bien mais vu que j'aimerais automatiser le tout en un seul bouton pour que ce soit le plus pratique possible, j'aimerais pouvoir faire appel à la valeur de surface totale idéalement dans une fenêtre qui s'affiche comme ça : Mais ça m'étonnerait que ça soit possible avec une macro 🤔 Par contre je pense possible de la faire afficher dans la barre de commandes, mais pour ça il faut déjà savoir comment faire appel à cette valeur. Et en bidouillant un peu peut-être qu'il y a moyen qu'elle ne s'affiche qu'à la toute fin de la macro, ce qui permettrai d'avoir le tout en un seul bouton et ça ce serait magique 😃 Oui je sais je suis un peu trop perfectionniste, mais c'est le genre de commande qui va être utilisée régulièrement donc plus elle est optimisée mieux ce sera 😅 Citer
didier Posté(e) le 21 mars Posté(e) le 21 mars Bonjour @FredGL En attendant que vos collègues évoluent vers des versions plus récentes je peux vous fournit un LSP un peu plus "propre" que celui que j'ai vu passer. Sans manquer de respect à son auteur bien évidemment. Il fonctionne et c'est déjà énorme. Par contre, je constate que vous ne vérifiez pas si les polylignes sont closes ou non, je pense que c'est important. Est-ce que vous voulez une version incluant ce contrôle ? Amicalement Citer Éternel débutant… Mon site perso : Programmer dans AutoCAD
FredGL Posté(e) le 21 mars Auteur Posté(e) le 21 mars Bonjour @didier Merci pour votre réponse, et oui c'est un lisp qui date un peu, d'au moins 15 ans je pense 😅 Je n'en ai pas spécialement besoin car le lisp fonctionne bien pour moi tel qu'il est actuellement, et étant donné que je créé moi-même toutes les polylignes dont je souhaite avoir la surface je n'ai pas de problème de polylignes non close. Mais si vous avez un lisp en stock un peu plus propre et que ça ne vous fait pas perdre de temps, je ne dirai pas non pour autant 👍 Je profite de faire ce message pour donner ma solution provisoire en attendant mieux, j'ai fait cette macro (sur AutoCAD 2022) qui permet de créer des hachures dans le calque 0, motif SOLID, couleur 125,125,125, et de les garder sélectionnées pour qu'il n'y ait plus qu'à aller voir dans les propriétés l'aire cumulée (et les supprimer ensuite) : ^C^C-hachures;S;P;;CA;0;P;SOLID;COU;U;125,125,125;;_selectsimilar;D;; Citer
Steven Posté(e) le 21 mars Posté(e) le 21 mars Il y a 7 heures, FredGL a dit : Lors de mes recherches j'ai trouvé la solution du scandxf mais elle ne me satisfait pas totalement car demande l'installation d'un fichier externe à mon entreprise sur chaque PC, ce qui demande de passer par le support informatique sur plusieurs PC, pas super pratique 🤔 Et en plus c'est limite trop complexe par rapport à l'info "simple" qu'il nous faut. ScanDXF ne demande aucune installation sur le PC. Il n'y a donc pas besoin d'avoir de droits administrateur ou de demander à la DSI de l'installer. Il suffit juste de décompresser ScanDXF dans un dossier, en local, puis dans la ligne de commande d'AutoCAD ou AutoCAD LT, coller la commande d'installations correspondante, selon si c'est, AutoCAD ou AutoCAD LT. Brice explique clairement ce qu'il faut faire. Il y a 7 heures, FredGL a dit : Et en plus c'est limite trop complexe par rapport à l'info "simple" qu'il nous faut. Je pense que c'est plus facile que de vouloir faire un bouton avec une macro... Citer Steven________________________________________ Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD. Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD. En rêve; AutoCAD sous Linux.
didier Posté(e) le 21 mars Posté(e) le 21 mars Bonjour @FredGL J'ai retrouvé un truc et je l'ai enjolivé avec des cases d'alerte pour donner le résultat. C'est un peu plus "moderne" mais surtout ça prévient l'utilisateur qu'il a demandé la superficie d'une (ou plusieurs) polyligne(s) non close. Testé sur LT 2024 -> fonctionnel Amicalement Polyligne-2d-Addition-Superficies.lsp 1 Citer Éternel débutant… Mon site perso : Programmer dans AutoCAD
FredGL Posté(e) lundi à 14:31 Auteur Posté(e) lundi à 14:31 @Steven Bonjour, j'avais regardé la procédure pour installer scandxf et c'est demandé de lancer scandxf.exe pour accéder aux options avant de pouvoir l'utiliser avec AutoCAD, et c'est ça qui n'est pas possible dans notre cas sans intervention de notre support info 😅 @didier C'est vraiment mieux, l'exécution de la commande est bien plus rapide quand je l'utilise sur beaucoup de polylignes, et ça permettra aux gens moins carrés que moi de ne pas se faire avoir avec des polylignes restées ouvertes. Merci beaucoup 🙂👍 (Il manque juste un petit c : devant le nom de la commande pour pouvoir la lancer sur Autocad) Et sinon je viens de voir que tu avais un site sur la programmation, j'y ai jeté un petit coup d'œil ça a l'air pas mal !! J'y retournerai quand j'aurais le temps de me poser pour le parcourir 😉 Citer
Steven Posté(e) mardi à 07:40 Posté(e) mardi à 07:40 Il y a 17 heures, FredGL a dit : @Steven Bonjour, j'avais regardé la procédure pour installer scandxf et c'est demandé de lancer scandxf.exe pour accéder aux options avant de pouvoir l'utiliser avec AutoCAD, et c'est ça qui n'est pas possible dans notre cas sans intervention de notre support info 😅 Tu veux dire que dès que tu fais un double-clic sur Scandxf.exe, tu as un message pour interdire l'exécution du fichier ? Citer Steven________________________________________ Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD. Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD. En rêve; AutoCAD sous Linux.
FredGL Posté(e) mardi à 08:18 Auteur Posté(e) mardi à 08:18 @Steven C'est ça et vu que c'est pour une dizaine de personnes, on devrait tous contacter le support info pour l'installer donc un peu trop chiant 😅 Citer
Steven Posté(e) mardi à 12:16 Posté(e) mardi à 12:16 Il y a 3 heures, FredGL a dit : @Steven C'est ça et vu que c'est pour une dizaine de personnes, on devrait tous contacter le support info pour l'installer donc un peu trop chiant 😅 Mais normalement, quand on double-clic sur Scandxf.exe, rien ne s'installe. Ça ouvre juste la fenêtre de Scandxf et on peut aller dans l'onglet des options pour copier la ligne de commande. Citer Steven________________________________________ Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD. Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD. En rêve; AutoCAD sous Linux.
FredGL Posté(e) mercredi à 10:58 Auteur Posté(e) mercredi à 10:58 Il y a 22 heures, Steven a dit : Mais normalement, quand on double-clic sur Scandxf.exe, rien ne s'installe. Ça ouvre juste la fenêtre de Scandxf et on peut aller dans l'onglet des options pour copier la ligne de commande. Ça exécute un programme inconnu et donc non autorisé Citer
rebcao Posté(e) jeudi à 16:46 Posté(e) jeudi à 16:46 Bonjour, Il faut peut-être déclarer le fichier .EXE à ton ANTI VIRUS ?! Je connais très bien Brice et son .EXE est 100% fiable et malgré celà de temps en temps l'ANTI VIRUS disjoncte !!! Christian Citer 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 @)
Steven Posté(e) jeudi à 18:22 Posté(e) jeudi à 18:22 Le 26/03/2025 à 11:58, FredGL a dit : Ça exécute un programme inconnu et donc non autorisé C'est bien dommage parce que c'est exactement l'outil qu'il vous faut, à toi et tes collègues et super simple d'utilisation. Difficile de faire plus simple. Ça vaudrait peut-être le coup de demander à la DSI de vous autoriser à utiliser Scandxf. Citer Steven________________________________________ Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD. Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD. En rêve; AutoCAD sous Linux.
Messages recommandés