CTZen Posté(e) le 21 mars Posté(e) le 21 mars Salut à tous ! Je cherche une routine LISP qui pour chaque calque présent dans un fichier pourrait dupliquer une présentation "Modele" contenant une fenêtre et un texte simple. La fenêtre n'afficherai qu'un seul calque par présentation, le nom de l'onglet ainsi que le texte de chaque serait le nom du calque. Vous auriez ceci en stock ? J'ai fait quelques recherches sans succès et j'ai même essayer de passer par nos amis les IA pour coder cette routine mais ça n'a jamais fonctionné ... Merci à tous pour l'aide ! AutoCAD Map 3D 2026 Covadis 18.3d + AutoPiste Windows 11 Famille v.24H2 - 64 bits Toujours à l'affût des bonnes astuces
didier Posté(e) le 21 mars Posté(e) le 21 mars Bonjour @CTZen par nos amis les IA, c'est une vraie fausse bonne idée et qui plus et j'ignorais le potentiel amical de ces tyrans du marketing. Revenons à la question : n'afficherait qu'un seul calque par présentation, on parle de présentation (ONGLET) ou de fenêtre de présentation (FMULT) ? L'idéal serait un DWG avec les phases avant/après apparentes et là, on connaitrait le but à atteindre. Amicalement (de la part d'un humain) Éternel débutant… Mon site perso : Programmer dans AutoCAD
CTZen Posté(e) le 21 mars Auteur Posté(e) le 21 mars Merci pour ta réponse ami humain ! 😁 Oui nous parlons bien de ONGLET et de FMULT En gros pour mon sujet j'ai un fichier avec - calque 1 - calque 2 - calque 3 etc... Et j'aimerai dupliquer une présentation (ONGLET) "Modele" qui contient une fenêtre (FMULT) ainsi qu'un texte (TEXT) de façon a ce que chaque présentation n'affiche qu'un seul calque. Dans le fichier joint en exemple, j'ai un onglet MODELE et 5 calques dans le fichier. En gros je cherche à automatiser la création des onglets Calque1, Calque2, Calque3, ... Exemple.dwg AutoCAD Map 3D 2026 Covadis 18.3d + AutoPiste Windows 11 Famille v.24H2 - 64 bits Toujours à l'affût des bonnes astuces
Olivier Eckmann Posté(e) le 21 mars Posté(e) le 21 mars Bonjour @CTZen, Essaie avec ça (defun C:CTZEN ( / bFirst oLayer sLayerName) (setq bFirst T) (while (setq oLayer (tblnext "LAYER" bFirst)) (if bFirst (setq bFirst nil)) (setq sLayerName (cdr (assoc 2 oLayer))) (if (/= sLayerName "0") (progn (command "-PRESENTATION" "C" "MODELE" sLayerName) (setvar "CTAB" sLayerName) (command "ESPACEO") (command "fcalque" "g" "*" "" "li" sLayername "" "") (command "ESPACEP") (setvar "TILEMODE" 1) ) ) ) ) Olivier 1
didier Posté(e) le 21 mars Posté(e) le 21 mars Bonjour @CTZen Voici ma proposition : ;; gc:lst2str de Gilles CHANTEAU, merci à lui. ;; Concatène une liste de chaînes et un séparateur en une chaine ;; Arguments : lst : la liste // sep : le séparateur (defun gc:lst2str (lst sep) (apply 'strcat (cons (car lst) (mapcar (function (lambda (x) (strcat sep x))) (cdr lst)) ) ) ) (defun c:ctzen ( / calq temp lstcal lsttemp) (setvar "clayer" "0") (setq calqo (getvar "clayer")) (setq calq (list (cdr (assoc 2 (tblnext "LAYER" T))))) (while (setq tempo (tblnext "LAYER")) (setq calq (append (list (cdr (assoc 2 tempo))) calq)) ) (setq lstcal (cdr (reverse calq))) (setq n -1) (repeat (length lstcal) (setq calq (nth (setq n (1+ n)) lstcal)) (setq lsttemp (gc:lst2str (vl-remove calq lstcal) ",")) (command "_layout" "_c" "MODELE" calq) (command "_ctab" calq) (command "espaceo") (command "_VPLAYER" "_F" lsttemp "c" "") (command "espacep") (setvar "clayer" calq) (command "_text" '(12 184) "5" "0" calq) (setvar "clayer" calqo) ) (command "_ctab" "MODELE") ) 1 Éternel débutant… Mon site perso : Programmer dans AutoCAD
Olivier Eckmann Posté(e) le 21 mars Posté(e) le 21 mars @CTZen Pour le texte, il suffit que la présentation nommée MODELE intègre un champ qui contient la variable CTAB, comme ça c'est automatique. Olivier 1
CTZen Posté(e) le 21 mars Auteur Posté(e) le 21 mars Bonjour Olivier ! @Olivier Eckmann @didier MERCI 1000 FOIS pour votre aide inestimable ! Ca fonctionne d'enfer et en plus c'est super rapide ! Quand je pense que nos amis IA me proposait des LISP de plus de 120 lignes ... et que vos 2 propositions font le travail PARFAITEMENT en seulement une trentaine de ligne ... AutoCAD Map 3D 2026 Covadis 18.3d + AutoPiste Windows 11 Famille v.24H2 - 64 bits Toujours à l'affût des bonnes astuces
CTZen Posté(e) le 21 mars Auteur Posté(e) le 21 mars Voilà une petite amélioration qui permet de ne gérer que les calques avec un filtre qui est demandé au lancement de la commande. Pour le texte j'ai utilisé le champ ctab qui fait le taff ! Encore Merci messieurs ! (defun C:1pres1lay ( / bFirst oLayer sLayerName pattern layersToProcess) ;; Merci Didier et Olivier Heckmann @CadXP pour la réalisation de ce lisp ;;--------------------------------------------------------------------------- ;; Demander le motif de filtre à utiliser (setq pattern (getstring T "\nEntrez le motif de filtre (ex: MUR* ou * pour tous): ")) ;; Si aucun motif n'est fourni, utiliser "*" (tous les calques) (if (= pattern "") (setq pattern "*")) ;; Collecter d'abord tous les calques correspondant au filtre (setq layersToProcess '()) (setq bFirst T) (while (setq oLayer (tblnext "LAYER" bFirst)) (if bFirst (setq bFirst nil)) (setq sLayerName (cdr (assoc 2 oLayer))) ;; Ne traiter que les calques qui correspondent au motif et qui ne sont pas "0" (if (and (/= sLayerName "0") (wcmatch sLayerName pattern)) (setq layersToProcess (cons sLayerName layersToProcess)) ) ) ;; Maintenant, traiter chaque calque de la liste (foreach sLayerName layersToProcess (progn (command "-PRESENTATION" "C" "MODELE" sLayerName) (setvar "CTAB" sLayerName) (command "ESPACEO") ;; Geler uniquement les autres calques du filtre, pas tous les calques (foreach otherLayer layersToProcess (if (/= otherLayer sLayerName) (command "fcalque" "g" otherLayer "" "li" sLayerName "" "") ) ) (command "ESPACEP") (setvar "TILEMODE" 1) ) ) (princ) ) AutoCAD Map 3D 2026 Covadis 18.3d + AutoPiste Windows 11 Famille v.24H2 - 64 bits Toujours à l'affût des bonnes astuces
didier Posté(e) le 21 mars Posté(e) le 21 mars Bonjour @CTZen Ce ne sont pas nos amis, ou alors l'ère du vibe coding est en route. Amicalement Éternel débutant… Mon site perso : Programmer dans AutoCAD
CTZen Posté(e) le 21 mars Auteur Posté(e) le 21 mars Je pense que le vibe-coding va être inévitable. Perso j'utilise beaucoup les IA pour pas mal de sujet, dont le code (python principalement). Je travaille cependant beaucoup le code pour le comprendre et pouvoir l'adapter et le maitriser, apprendre. Mais beaucoup ne font pas ça. Pour le LISP comme mon cerveau fait visiblement une allergie a son fonctionnement (pour le moment). J'ai donc tenté le vibe ... sans succès. Puis c'est comme le No-Code ... ceux qui ont déjà codé comprenne vite la limite. Et pour en revenir aux IA ... je vois ça comme l'invention de la visseuse dans une industrie qui utilisais que des tourne-vis. C'est un outil qu'il faut apprendre à utiliser pour ne pas être dépassé. AutoCAD Map 3D 2026 Covadis 18.3d + AutoPiste Windows 11 Famille v.24H2 - 64 bits Toujours à l'affût des bonnes astuces
Olivier Eckmann Posté(e) le 21 mars Posté(e) le 21 mars Concernant l'IA, je suis assez sceptique. Aujourd'hui les personnes qui utilisent l'IA de manière un peu réfléchie, elles l'utilisent dans des domaines qu'il connaissent bien et donc ils sont capables de juger l'IA et l'utiliser pour ce qu'elle vaut. Si je reprends ton exemple de la vis. Si un ouvrier utilise un tournevis et demande à l'IA quels outils il peut utiliser pour faire sont travail. L'IA lui répond un tournevis, une visseuse ou un marteau. OK, le tournevis il l'utilise déjà, la visseuse c'est génial, il va gagner du temps, un marteau, c'est débile (une hallucination d'IA). Imaginons maintenant une personne qui n'y connais rien et n'a jamais vissé une vis de sa vie, L'IA lui donne les mêmes 3 réponses. Jamais il ne sera capable de dire que le marteau est une mauvaise réponse et risque de l'utiliser pour enfoncer sa vis... J'ai très peur que dans les années à venir, à l'école et en formation professionnelle, on apprenne aux gens comment ils doivent construire un prompt pour que l'IA ait le plus de chance de leur donner une réponse satisfaisante, mais en contre partie, on ne leur apprendra pas comment contrôler ce que la machine va sortir. Et là on va droit dans le mur. C'est déjà le cas aujourd'hui, où on apprend aux élèves à utiliser un logiciel, mais pas le métier qui va derrière. Donc tant que l'ordi dit que tout va bien, tant mieux, mais si l'ordinateur dit qu'il y a une erreur, presque personne ne sait pourquoi, ni comment la corriger. Il ne faut pas rester sur le quai et laisser passer le train de l'IA, mais beaucoup de ceux qui sont monter risquent quand même de se crasher assez fort 🙂
CTZen Posté(e) le 21 mars Auteur Posté(e) le 21 mars Citation Il ne faut pas rester sur le quai et laisser passer le train de l'IA, mais beaucoup de ceux qui sont monter risquent quand même de se crasher assez fort 🙂 Attachez vos ceintures ! Je te rejoins totalement. l'IA est un outil a utiliser avec discipline et un esprit critique ! AutoCAD Map 3D 2026 Covadis 18.3d + AutoPiste Windows 11 Famille v.24H2 - 64 bits Toujours à l'affût des bonnes astuces
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