Aller au contenu

Messages recommandés

Posté(e)

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 !

Posté(e)

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é

Posté(e)

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 !! 

 

Autodesk Expert Elite Team

Posté(e)

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 😅

Posté(e)

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)

Posté(e)

Hello @FredGL

MAIS quand tu selectionnes N hachures, tu as automatiquement en bas de la case de dialogue Proprietes : la surface TOTALE !

Bye, lecrabe

 

Autodesk Expert Elite Team

Posté(e)

@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 :

image.png.9d3620423151dc60cb2080acada7b173.png

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 😅

Posté(e)

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
 

Éternel débutant…
Mon site perso : Programmer dans AutoCAD

 

Posté(e)

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;;

Posté(e)
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.

image.png.2babe73af866ccbc0637c4788ca180c8.png

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...

SCANDXF.gif

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.

Posté(e)

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

  • Like 1

Éternel débutant…
Mon site perso : Programmer dans AutoCAD

 

Posté(e)

@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 😉

Posté(e)
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 ?

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.

Posté(e)
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.

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.

Posté(e)
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é

Posté(e)
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.

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.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité