Invité austin57 Posté(e) le 14 janvier 2011 Posté(e) le 14 janvier 2011 Bonjour à tous, Après avoir passé pas mal de temps à parcourir les forums de CadXP, je me décide enfin à poster mon premier message. Grâce à vous,je viens de découvrir les joies des macro-commandes et de diesel. Toutefois, vous vous doutez que c'est loin d'être simple. Aujourd'hui, j'ai une question sur laquelle je bloque. Je souhaite faire un bouton qui copie un objet puis reprend cette copie pour en faire une autre avec le même incrément. Exemple. J'ai un trait A. Je sélectionne l'objet, je définis un point de base pour le déplacement et un incrément, par exemple 50 suivant X. Cela crée un trait B. Si je tape "entrée" je veux que ce trait B soit copié de la même façon. C'est à dire, crée un trait C à 50 suivant X du trait B et ainsi de suite, un trait D à 50 suivant X du trait C.... Pour l'instant, j'utilise cette macro -reseau;\;R;1;\;\; mais cela m'oblige à connaître à l'avance le nombre d'entité que je souhaite, ce qui n'est pas toujours évident dans les cas que je rencontre. Et en plus, je suis limité à l'horizontal ou à la verticale (deux boutons différents) Autre question sans rapport, j'ai crée une macro pour tracer 2 droites perpendiculaire à un point donné.^C^C_xline;h;\; (setq x (getvar "LASTPOINT"));^C^C_xline;v;!x;;Si cela fonctionne mais lorsque je rappelle la dernière commande en appuyant sur "Entrée", il ne semble vouloir refaire que la dernière partie ^C^C_xline;v;!x;; Je suis donc obligé de re-cliquer sur le bouton pour relancer correctement la fonction. Une idée pour corriger le problème? Merci d'avance pour toutes vos réponses. [Edité le 17/1/2011 par austin57]
bryce Posté(e) le 14 janvier 2011 Posté(e) le 14 janvier 2011 Bonjour, Pour ta 1ère question, pas évident avec une simple macro... La macro suivante fonctionne :*^C^C_copy;_l;;d;\;;Mais il faut que l'objet à copier soit le dernier créé dans le dessin, et il faut entrer les valeurs de déplacement X,Y ou distance Sinon on peut créer deux macros :Une à utiliser à la place de la commande copier standard...^C^Cselect;q;\id;\scu;@;;_copy;p;;d;\scu;pEt une autre pour répéter la copie...*^C^C_copy;_l;;d;;r^Zqui se répète tant qu'on appuie sur Entrée. Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
bryce Posté(e) le 14 janvier 2011 Posté(e) le 14 janvier 2011 Pour ta 2e question, ce qui se passe est normal : un appui sur Entrée ou Espace répète la dernière commande sans aucune option (la commande Droite dans ton cas), pas la dernière macro. Tu peux faire une macro qui se répète automatiquement :*^C^C_xline;h;\;;v;@;;Le LISP que tu as mis dans ta macro n'est pas indispensable. Sinon, comme tu utilises déjà du LISP dans tes macros, autant créer carrément une nouvelle commande avec LISP, que tu pourras alors répéter avec Entrée comme n'importe quelle commande standard :^C^C(cond ((null C:croix) (defun c:croix()(setq a (getpoint "Choix du point:"))(command "_xline" "h" a "")(command "_xline" "v" a "")(princ)))) croix Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
Invité austin57 Posté(e) le 15 janvier 2011 Posté(e) le 15 janvier 2011 Merci pour votre réponse; cela fait exactement ce que je souhaitais. Toutefois, j'ai remarqué une chose avec les lisp. Lorsque j'execute un lisp, celui-ci fait l'action. Mais moi, j'aimerai qu'il boucle tant que je n'ai pas quitté la commande explicitement avec la touche échap ou entrée. (léquivalent du *C^C^, j'ai essayé de l'ajouter, mais ça ne fonctionne pas et l'instruction REPEAT non plus, peut-être l'ai-je mal utilisé.) Encore merci pour ces dernières précisions. Cordialement,
bryce Posté(e) le 15 janvier 2011 Posté(e) le 15 janvier 2011 Bonsoir, Avec (repeat) il faut connaîte à l'avance le nombre de fois qu'on veut répéter les actions.C'est plutôt (while) qu'il faut utiliser : ^C^C(cond ((null C:croix) (defun c:croix()(while(setq a (getpoint "Choix du point:"))(command "_xline" "h" a "")(command "_xline" "v" a "")(princ)))));croix Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
Invité austin57 Posté(e) le 17 janvier 2011 Posté(e) le 17 janvier 2011 Bonjour, Aprés essai, c'est exactement le fonctionnement que je souhaitais. Bluffant. Un grand merci à toi Bryce. Et meilleurs voeux pour l'année 2011 :) A bientôt sur les forums.
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