Aller au contenu

ben_f20

Membres
  • Compteur de contenus

    3
  • Inscription

  • Dernière visite

Tout ce qui a été posté par ben_f20

  1. Merci pour vos astuces, @Steven et @didier. Je vais essayer de mettre en place des filtres de propriétés le temps de monter en compétence pour me créer une routine plus poussée et adaptée a mon usage.
  2. Geler les calques via le gestionnaire n'est pas le problème. Je voudrais simplement automatiser cela pour réaliser mes présentations beaucoup plus rapidement, car j'ai énormément de calques de type "ECL", "CFO", etc. (Je précise qu'ils sont nécessaires, donc je ne veux pas tout regrouper dans un seul calque.) L'idée est d'avoir une routine qui crée une présentation avec les calques triés, afin de m'éviter de le faire manuellement.
  3. Bonjour, Après quelques jours à essayer d'écrire un script .lsp pour gérer mes calques sans succès, je me tourne vers vous pour obtenir une solution, car je n'y arrive tout simplement pas. (À noter que je débute complètement dans l'écriture de LISP et j'utilise ChatGPT, qui, j'ai l'impression, est aussi perdu que moi, mais bref.) Avant de vous expliquer ce que ma routine doit faire, je vais poser un peu le décor. Je suis chargé d'études électriques et passe beaucoup de temps a trier mes calques. Concernant le but de mon script LISP, j'aimerais qu'il me permette d'afficher uniquement les calques de "type éclairage", "type CFO" ou "type CFA". Pour ce faire, j'ai renommé tous mes calques avec lesquels je souhaite interagir de cette manière : "ID-ECL[le nom de mon bloc]" pour l'éclairage, "ID-CFO[le nom de mon bloc]" pour le CFO, etc... (A noter également que tout les calque qui n'ont pas cette structure de départ ne doit pas être modifier) Je pense que vous comprenez le principe. Cependant, je n'arrive pas à désactiver les calques uniquement dans ma présentation. À chaque fois que j'exécute le LISP, il désactive les calques dans l'espace objet. À terme, j'aimerais pouvoir simplement créer une présentation qui se base sur une présentation existante dans mon plan et entrer le nom de ma nouvelle présentation ainsi que le type de calques à afficher. Mais j'en suis encore très loin ! Je vous joins mon code, repris et commenté par ChatGPT. (defun c:GCALK (/ calque nomCalque) ;; Fonction pour vérifier si un calque commence par une chaîne spécifique (defun CommencePar (chaine debut) (eq (strcase (substr chaine 1 (strlen debut))) (strcase debut)) ) ;; Parcours de tous les calques dans le dessin (setq ListeCalques (vla-get-Layers (vla-get-ActiveDocument (vlax-get-acad-object)))) ;; Boucle pour parcourir tous les calques (vlax-for calque ListeCalques (setq nomCalque (vla-get-Name calque)) ;; Si le calque commence par "_ID-ECL_", on le laisse actif ;; Sinon, si il commence par "_ID-", mais n'est pas de type ECL, on le désactive (if (CommencePar nomCalque "_ID-ECL_") (vla-put-Freeze calque :vlax-false) ;; Garde les calques ECL actifs (if (and (CommencePar nomCalque "_ID-") (not (CommencePar nomCalque "_ID-ECL_"))) (vla-put-Freeze calque :vlax-true) ;; Désactive les autres types de calques ) ) ) (princ "\nTous les calques non ECL ont été désactivés.\n") (princ) )
×
×
  • 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é