yusukens82 Posté(e) le 28 octobre 2024 Posté(e) le 28 octobre 2024 Bonjour, Je travail beaucoup avec les ETAT de CALQUE que j'applique sur les fenêtres. Je cherche un moyen d'appliquer un état de calque sur une fenêtre sélectionnait préalablement sans activer la fenêtre (le double clic) voilà ce que j'ai déjà écrit mais on est très loin de ce dont je recherche, pire encore, les 2 routines s'applique sur les toutes les fenêtres. (defun c:APPE () (layerstate-restore "ETAT02" viewportId 5) ) (defun c:APPE2 () (command "-CALQUE" "A" "R" "ETAT02" "" "") ) Vous avez compris que je suis nul en écriture de routine. je joins un fichier dwg pour tester la routine Si quelqu'un veut bien m'aider s'ils vous plait APPE.lsp Test.dwg
didier Posté(e) le 28 octobre 2024 Posté(e) le 28 octobre 2024 Bonjour @yusukens82 Il suffit de copier les propriétés de la bonne fenêtre et de les appliquer à la fenêtre souhaitée. Ou alors, je n'ai pas compris la question. Éternel débutant... Mon site perso : Programmer dans AutoCAD
yusukens82 Posté(e) le 28 octobre 2024 Auteur Posté(e) le 28 octobre 2024 Pardon ce n'était pas simple d'expliquer ma demande. j'ai monté une vidéo pour mieux expliquer le problème et surtout pour gagner du temps sur la gestion des états de calque Video.mp4
didier Posté(e) le 28 octobre 2024 Posté(e) le 28 octobre 2024 Bonjour @yusukens82 Ah ! je pensais que la fenêtre de gauche était OK. Franchement, pour économiser UN SEUL clic, je ne vois pas l'intérêt de se lancer dans un LSP. Pourtant, je suis partisan de la programmation. Éternel débutant... Mon site perso : Programmer dans AutoCAD
yusukens82 Posté(e) le 28 octobre 2024 Auteur Posté(e) le 28 octobre 2024 Bonjour @didier Si c'est pour gagner qu'un seul clic je ne chercherai pas à optimiser à ce point. plutôt que de parler de clic que préfère résonner en action en intégrant les frappes clavier et déplacement souris pour mieux optimiser Je sais que cela peut sembler dérisoire de gager 8 actions mais je peux t'assurer que c'est fait toute la différence quand on fait ça à longueur de journée. et aussi source de moins d'erreur quand on sait qu'on n'a plus besoin de bien positionner le double clic ou choisir le bon état de calque (quand on n'en aune multitude avec défilement de la fenêtre). en tout cas j'espère quand même avoir réussi à te convaincre que ma demande n'est pas inutile.
Olivier Eckmann Posté(e) le 28 octobre 2024 Posté(e) le 28 octobre 2024 Bonjour, Avec ce code, il suffit de faire un double clic dans une fenêtre puis de lancer la commande APPE2. Cela restaure l'état de calque et repasse en espace papier. (defun c:APPE2 () (command "-CALQUE" "A" "R" "ETAT02" "" "") (command "ESPACEP") ) Ca fait 2 clic + 2 frappes + 1 mouvement de souris Olivier
yusukens82 Posté(e) le 28 octobre 2024 Auteur Posté(e) le 28 octobre 2024 Je ne sais pas si le fait également chez vous mais les commandes "-CALQUE" "A" "R" "ETAT02" "" "" ne s'applique pas dans la fenêtre active mais dans toute l'espace présentation.
Olivier Eckmann Posté(e) le 29 octobre 2024 Posté(e) le 29 octobre 2024 Bonjour, Essaie avec ça (defun c:APPE2 ( / oVP) (if (and (setq oVP (car (entsel "\Sélectionner une fenêtre : "))) (= "VIEWPORT" (cdr (assoc 0 (entget oVP))))) (layerstate-restore "ETAT02" oVP 4) ) (command "_REGENALL") ) Olivier
yusukens82 Posté(e) le 29 octobre 2024 Auteur Posté(e) le 29 octobre 2024 Merci beaucoup @Olivier Eckmann cela fonctionne à merveille.
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