Archives de catégorie : personnalisation

animation simple dans AutoCAD LT à partir d’un bloc dynamique

🎬 Présentation d’une animation simple dans AutoCAD LT à partir d’un bloc dynamique

Dans le cadre de mes expérimentations pédagogiques autour d’AutoCAD LT, j’ai réalisé une animation simple en utilisant un bloc dynamique illustré par des smileys. L’objectif était de démontrer comment manipuler la visibilité d’éléments via des calques, sans recourir à des outils externes.

🔧 Méthodologie utilisée :

  • Création d’un bloc dynamique intégrant plusieurs représentations de smileys.
  • Chaque smiley est affecté à un calque distinct (Calque1 à Calque6).
  • L’animation est obtenue en activant chaque calque à tour de rôle tout en désactivant les autres, créant ainsi une séquence visuelle dans AutoCAD.

💡 Intérêts pédagogiques et techniques :

  • Illustrer plusieurs états d’un objet dans un même dessin.
  • Montrer les possibilités d’animation in situ avec les seuls outils AutoCAD et quelques instructions Autolisp de base .
  • Souligner l’efficacité des blocs dynamiques couplés à une gestion de calques via script.

📌 Le script AutoLISP utilisé sera bientôt disponible en téléchargement sur mon site.
🔐 Pour celles et ceux qui souhaitent l’obtenir en avant-première, vous pouvez me contacter en message privé.

AutoCAD filtres de selection objets

Macro avec un filtre de sélection d’objets

🔹 Ma méthode préférée ? La sélection par filtre ! 🔹

Un outil puissant qui permet de créer et d’enregistrer des filtres complexes, réutilisables en quelques clics. Contrairement au filtre rapide, qui nécessite une reconfiguration à chaque utilisation, cette méthode apporte un vrai gain de temps, surtout sur les projets complexes ! ⏳

💡 Astuce : Même sous AutoCAD LT, cette approche permet d’optimiser vos sélections et workflows.

Pour ceux qui codent en AutoLISP ou débutent, c’est une excellente base pour développer des filtres sur mesure et automatiser encore plus votre travail grâce à la sélection par filtre d’objets ! 🚀


📌 Fonctionnement du fichier filter.nfl

Lors de l’utilisation de la commande FILTER,

AutoCAD filtres de selection objets

AutoCAD génère un fichier filter.nfl qui sauvegarde vos différents ‘filtres nommés’ dans le dossier Support.

Ce fichier stocke les filtres enregistrés et peut être utilisé pour appliquer des sélections avancées.

🔎 Trouver le fichier filter.nfl en AutoLISP création d’une macro.

;; Macro pour une palettes d'outils

^c^c(command "AI_EDITCUSTFILE" (findfile "filter.nfl"))

🔍 Recherche de l’emplacement du fichier :

Exécutez cette instruction AutoLISP → (findfile "filter.nfl")

Cette fonction renvoie le chemin complet du fichier, comme illustré ci-dessous, s’il est trouvé. Sinon, elle retourne nil s’il est introuvable.

Affiche l'emplacement du fichier filter.nfl

📄 Exemple de fichier filter.nfl :

Filter.nfl  --  Ne modifiez pas ce fichier.
:ai_lisp|CercleBlocText
(-4 . "<OR")
(0 . "CIRCLE")
(0 . "INSERT")
(0 . "*TEXT")
(-4 . "OR>")
:ai_str|CercleBlocText
** Début   OR
Objet		=	Cercle
Objet		=	Bloc
Objet		=	Texte
** Fin      OR

📌 Construction d’un filtre de sélection en AutoLISP

Voici un exemple de code permettant de créer un filtre pour sélectionner tous les cercles, blocs et textes dans un dessin :

;;
;; Exemple de commande rapide pour appliquer un filtre de sélection
;; Définition de la commande $f001
;;
(defun c:$f001 ( / )
  ;; Liste des critères de filtre
  ;; (Copier-coller les lignes du fichier filter.nfl ici)
  (setq LstFiltre '(
    (-4 . "<OR")        ;; Début d'une condition OR 'ou'
    (0 . "CIRCLE")      ;; Sélectionne les cercles
    (0 . "INSERT")      ;; Sélectionne les blocs insérés
    (0 . "*TEXT")       ;; Sélectionne tout type de texte
    (-4 . "OR>")        ;; Fin de la condition OR 'ou'
  ))
  ;; Exécute le filtre et sélectionne les objets correspondants dans le dessin
  (setq JeuxSelection (ssget "X" LstFiltre))
)

Avec cette approche, vous pouvez automatiser la sélection d’objets spécifiques et améliorer considérablement votre efficacité sur AutoCAD ! 💪

Petit rappel : lors d’une sélection, n’oubliez pas la commande Précédent.

Autolisp Notepad visual lisp visual code

Votre premier programme Autolisp avec AutoCAD LT

Instructions pour créer un fichier AutoLISP avec le Bloc-notes :

1. Ouvrir le Bloc-notes :

Lancez le Bloc-notes sur votre ordinateur. Vous pouvez le trouver dans le menu Démarrer sous “Accessoires” ou en recherchant “Bloc-notes”.

2. Écrire le code AutoLISP pour AutoCAD LT :

Copiez le code AutoLISP que vous souhaitez utiliser et collez-le dans le Bloc-notes. Assurez-vous que chaque ligne de code commence par un point-virgule (;;) pour les commentaires ou par une parenthèse ouvrante (..) et fermante pour les instructions.

3. Adapter le code :

Sur ce site, vous trouverez des lignes de code que vous pouvez adapter à vos besoins. Il vous suffit de copier et coller le code dans votre fichier.

Continuer la lecture

Automatiser la création de présentations dans AutoCAD à partir des vues existantes

Un Gain de Temps Inestimable

Dans le monde du dessin technique, chaque minute compte. Que vous soyez concepteur, ingénieur ou dessinateur-projeteur, l’optimisation des tâches répétitives dans AutoCAD LT peut faire toute la différence en termes de productivité.

Dans cet article, je vous présente une solution efficace pour automatiser la création de présentations à partir de vues nommées dans AutoCAD LT. Grâce à un script pensé pour s’adapter à différentes versions du logiciel, vous pourrez générer vos mises en page en un clic, sans perte de temps.

Découvrez comment ce processus peut transformer votre façon de travailler et vous permettre de vous concentrer sur l’essentiel : la conception.

🔍 Au programme :
✅ Explication du besoin et des enjeux
✅ Présentation du script et de son fonctionnement
✅ Avantages et applications concrètes

Prêt à booster votre efficacité sur AutoCAD ? Suivez le guide ! 🚀

Mode d’emploi (nouvelle version)

Avant d’exécuter ce script, assurez-vous d’avoir créé des vues nommées dans votre dessin. Le nom de la présentation générée correspondra au nom de votre vue nommée.

Pré-requis :

Avoir une ou plusieurs vues nommées définies dans le dessin.
Disposer d’au moins une présentation existante avec un nom spécifique.

Exemples de noms valides :
EDWGPROS
EDWGPROS_A3_PAYSAGE_PDF
EDWGPROS_A4_PAYSAGE_PDF

Étapes :

1️⃣ Activez le modèle de présentation qui vous convient ou celui que vous avez créé.
2️⃣ Lancez le script en le glissant-déposant dans votre dessin, comme illustré dans la vidéo ci-dessous.

;;; $Author: DidierL $
;;; $Date: 11/02/25 17:11 $
;;; $Revision: 3 $
;;;
;;; Origine :
;;; - Ce projet s'inspire d'une idée que j'avais mise en ligne en 2005, 
;;;   enrichie et adaptée pour répondre aux besoins actuels.
;;;
;;; Pré-requis :
;;; - AutoCAD ou AutoCAD LT installé
;;;
;;; Compatibilité :
;;; - Les scripts sont disponibles sur toutes les versions d'AutoCAD.
;;; - Le langage de programmation AutoLISP est supporté :
;;;   * Sur AutoCAD LT, depuis la version 2024.
;;;   * Sur AutoCAD, dès les premières versions du logiciel.
;;; ------------------------------------------------------------
;;; Instructions :
;;; 1. Assurez-vous d'utiliser une version d'AutoCAD compatible. 
;;; 2. Ouvrez le Bloc-notes (ou tout autre éditeur de texte, comme Notepad++).
;;; 3. Collez le code dans le fichier.
;;; 4. Enregistrez-le avec l'extension .scr, par exemple : PresentationAuto.scr.
;;; 5. Glissez-déposez le fichier dans AutoCAD ou utilisez la commande SCRIPT pour l'exécuter.
;;;
;;;
;;; Création rapide d'une fonction AutoLISP
(defun starts-with-edwgpros (str) (if (and str (>= (strlen str) 8) (equal (substr (strcase str t) 1 8) "edwgpros")) T nil))
;;;
;;; Lecture de la première vue disponible dans le dessin
;;;
(if (not strVue) (setq strVue (cdr (assoc 2 (tblnext "view" T)))))
;;;
;;; Initialise la variable contenant le nom de la présentation
;;; qui est en train d'être copiée.
;;; Lecture de la présentation active comme modèle de présentation.
;;;
(if (not strNomPresentationExemple) (setq strNomPresentationExemple (getvar "ctab")))
;;; Test si la présentation commence par "EDWGPROS"
(if (= (starts-with-edwgpros strNomPresentationExemple) nil) (setq strNomPresentationExemple nil))
(if (not strNomPresentationExemple) (alert "\nMerci d'activer une présentation commençant par EDWGPROS"))
;;;
;;; Copie de la présentation
;;;
(if strNomPresentationExemple (command "_layout" "_c" strNomPresentationExemple strVue))
;;;
;;; Active la nouvelle présentation
;;;
(if strNomPresentationExemple (setvar "ctab" strVue))
;;;
;;; Passage en espace objet
;;;
(if strNomPresentationExemple (command "_.MSPACE"))
;;;
;;; Rappel de la vue
;;;
(if strNomPresentationExemple (command "-VUE" "r" strVue))
(if strNomPresentationExemple (command "_zoom" "0.99x"))
;;;
;;; Passage en espace papier
;;;
(if strNomPresentationExemple (command "_.PSPACE"))
;;;
;;; Changement de vue
;;;
(if strNomPresentationExemple (setq strVue (cdr (assoc 2 (tblnext "view")))))
;;;
;;; Test s'il y a toujours une vue, relance le script s'il y a encore une vue
;;;
(if (and strVue strNomPresentationExemple) (command "rscript"))
;;; fin