bonuscad Posté(e) le 5 avril 2005 Posté(e) le 5 avril 2005 Bonjour, Une routine toute simple, mais qui pourra peut être vous rendre service. Elle vous permet de sélectionner un ou plusieurs objets, d'en effectuer une copie et de l'aligner suivant 2 points: c'est à dire sans changement d'échelle.Ceci d'une manière répétitive en donnant à chaque fois les 2 points de destination. Elle utilise l'ARX standard geom3d.arx (defun c:Mult_Align ( / pt_o1 pt_o2 pt_d1 pt_d2) (setvar "cmdecho" 0) (if (not (member "geom3d.arx" (arx))) (arxload "geom3d.arx")) (princ "\nChoisir les objets à aligner de façon multiple.") (cond ((ssget) (initget 9) (setq pt_o1 (getpoint "\n1er point origine: ")) (initget 9) (setq pt_o2 (getpoint "\n2ème point origine: ")) (initget 8) (while (setq pt_d1 (getpoint "\n1er point destination: ")) (command "_.copy" "_previous" "" "*0.0,0.0,0.0" "*0.0,0.0,0.0") (initget 9) (setq pt_d2 (getpoint "\n2ème point destination: ")) (command "_.align" "_previous" "" pt_o1 pt_d1 pt_o2 pt_d2 "" "_no") (setq pt_o2 (polar pt_d1 (angle pt_d1 pt_d2) (distance pt_o1 pt_o2)) pt_o1 pt_d1 ) (initget 8) ) ) (T (princ "\nSélection vide!")) ) (setvar "cmdecho" 1) (princ) ) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
kallain Posté(e) le 5 avril 2005 Posté(e) le 5 avril 2005 Bonjour, Vla une routine qui doit etre interessante mais....Après chargement j'ai ce message : Commande: _appload Mult_Align.lsp correctement chargé(s)Commande: ; erreur: caractère lu incorrect (octal): 0 PS: Bien-sur je suis nul en Lisp
zebulon_ Posté(e) le 5 avril 2005 Posté(e) le 5 avril 2005 Salut, J'ai testé le lisp et il fonctionne bien chez moi. Par contre, ça sert à quoi de faire le arxload ? J'ai mis cette ligne en remarque chez moi et ça continue de marcher.Peut-être ça sert à s'assurer de disposer de la commande align ? Mais pourquoi vouloir utiliser la commande align, s'il n'y a pas de mise à l'échelle. La commande rotation devrait faire l'affaire. C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
bonuscad Posté(e) le 5 avril 2005 Auteur Posté(e) le 5 avril 2005 Merci du retour, Concue sous une 2002, je n'ais pas ce problème, donc difficile d"en identifier la cause. Cependant je penche pour 2 hypothèses, soit1-(if (not (member "geom3d.arx" (arx))) (arxload "geom3d.arx"))pose problème si la commande "_align" ne fait plus partie d'un ARX. Pour faire le test, virer cette ligne,vérifier que la commande _align est bien effective avant de lancer la routine. 2-Le message d'erreur parlant de caractère, il pourrait s'agir de "*" qui est mal interprétéTu peux alors essayer de faire le test en remplacant les 2 chaines "*0.0,0.0,0.0" par (trans '(0.0 0.0 0.0) 1 0) Si toujours pas concluant, alors pas de solution, il faudrait qu'un lispeur sous 2004 ou 2005 puisse t'aider Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
kallain Posté(e) le 5 avril 2005 Posté(e) le 5 avril 2005 Effectivement je suis bien sur 2004 et c'est l'hypothèse 1 qui est la bonne. 1-(if (not (member "geom3d.arx" (arx))) (arxload "geom3d.arx"))pose problème si la commande "_align" ne fait plus partie d'un ARX. Pour faire le test, virer cette ligne,vérifier que la commande _align est bien effective avant de lancer la routine. Merci. ;)
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