Retnuh Posté(e) le 19 juin 2013 Posté(e) le 19 juin 2013 Bonjour, Je cherche un LISP qui pourrait me permettre de dupliquer la valeur de la propriété rotation d'un bloc vers un autre bloc (qu'il ai le même nom ou pas) afin d'aligner rapidement 2 blocs (en l’occurrence il s'agit d'interrupteurs sur un plan d'implantation pour les curieux :P) Si quelqu'un avait un petit LISP (car je ne vois pas d'astuce qui pourrait-être aussi rapide que 2 clics), je ne dirais pas non :D Merci par avance. Nico
(gile) Posté(e) le 19 juin 2013 Posté(e) le 19 juin 2013 Salut, (defun c:rotblk (/ *error* source rotation target) (vl-load-com) (defun *error* (msg) (and msg (/= msg "Fonction annulée") (princ (strcat "\nErreur: " msg)) ) (vla-EndUndoMark (vla-get-activeDocument (vlax-get-acad-object))) (princ) ) (while (not (and (setq source (car (entsel "\nSélectionnez le bloc source: "))) (setq source (vlax-ename->vla-object source)) (= (vla-get-ObjectName source) "AcDbBlockReference") ) ) (princ "\nL'objet sélectionné n'est pas un bloc !") ) (setq rotation (vla-get-Rotation source)) (vla-StartUndoMark (vla-get-activeDocument (vlax-get-acad-object))) (while (setq target (car (entsel "\nSélectionnez un bloc cible: "))) (vla-put-Rotation (vlax-ename->vla-object target) rotation) ) (*error* nil) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Retnuh Posté(e) le 21 juin 2013 Auteur Posté(e) le 21 juin 2013 Merci beaucoup, c'est parfait :) Il y a juste une chose étrange : quand je copie/colle le code dans mon perso.LSP ça ne fonctionne pas (après rechargement), alors que si je copie/colle dans un nouveau fichier à part ça fonctionne... Si quelqu'un voit où est-ce que je me loupe je suis preneur. Bonne journée.
bonuscad Posté(e) le 21 juin 2013 Posté(e) le 21 juin 2013 quand je copie/colle le code dans mon perso.LSP ça ne fonctionne pas (après rechargement)' date=' alors que si je copie/colle dans un nouveau fichier à part ça fonctionne...[/quote'] A première vue, je dirais que la dernière fonction (defun *error*) définie de ton perso.LSP écrase la même fonction *error* qui devrait être en fonction pour ROTBLK. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
FormaBois Posté(e) le 21 juin 2013 Posté(e) le 21 juin 2013 Si quelqu'un voit où est-ce que je me loupe je suis preneur.Salut,je ne sais si ça peut aider, mais j'ai trouvé ce lien Studio Gfilm - Agence de communication par l'image "Le matin tu peux rester couché pour poursuivre ton rêve, ou te lever pour le réaliser"
Retnuh Posté(e) le 21 juin 2013 Auteur Posté(e) le 21 juin 2013 A première vue, je dirais que la dernière fonction (defun *error*) définie de ton perso.LSP écrase la même fonction *error* qui devrait être en fonction pour ROTBLK. Cela me paraît possible, du coup comment puis-faire pour corriger le problème ?
(gile) Posté(e) le 21 juin 2013 Posté(e) le 21 juin 2013 Cela me paraît possible, du coup comment puis-faire pour corriger le problème ? Difficile à dire sans connaitre le contenu de 'perso.lsp'.Mais je ne pense pas que ça vienne de là, *error* est déclarée en local et redéfinie dans rotblk. Es-tu sur de ton copier/coller dans le fichier perso.lsp (appariement des parenthèses) ?Quel est le message d'erreur ? Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Retnuh Posté(e) le 21 juin 2013 Auteur Posté(e) le 21 juin 2013 Difficile à dire sans connaitre le contenu de 'perso.lsp'.Mais je ne pense pas que ça vienne de là, *error* est déclarée en local et redéfinie dans rotblk. Es-tu sur de ton copier/coller dans le fichier perso.lsp (appariement des parenthèses) ?Quel est le message d'erreur ? Oui je suis sûr de mon Ctrl+C/V, je l'ai fais une seconde fois pour être certain, et j'ai vérifié, toutes les parenthèse sont correctes.Et il n'y a pas de message d'erreur, simplement la fonction ne s'implémente pas, et est donc "inconnue" quand je tape ROTBLK alors qu'en passant par la solution du fichier à part, cela a fonctionné du premier coup. :blink:
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