jackobul Posté(e) le 23 avril 2009 Posté(e) le 23 avril 2009 bonjour, j'ai créé une palette avec des types de polylignes differentes (type de ligne , calque , couleur etc). hors des que j'insere une de ces polylignes, a la fin, le calque courant devient celui de la derniere polyligne insérée. j'aimerai repasser automatiquement sur le calque 0. pour la chaine de commande , j'étais parti sur quelquechose comme ^C^C_plinewid;0.04;_pline-pl;ch;0; mais ça marche pas. désolé je suis pas tres bon en prog si quelqu'un a la solution merci d'avance :) [Edité le 23/4/2009 par jackobul]
dnalor Posté(e) le 2 mai 2009 Posté(e) le 2 mai 2009 En langage macro repasser en calque 0 s'écrit : ^C^C-calque;Etablir;0;;
bonuscad Posté(e) le 2 mai 2009 Posté(e) le 2 mai 2009 Si le nombre de points à introduire est FIXE, c'est possible en Diesel pour des versions LT. Si le nombre de sommets et différent à chaque utilisation, cela n'est pas possible avec une LT en une seule macro. Cependant sur une version pleine cela devient possible en insérant une boucle lisp consultant la variable "CMDACTIVE" lors de la commande "_.pline" dans la macro. Alors version LT ou complète? Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
jackobul Posté(e) le 4 mai 2009 Auteur Posté(e) le 4 mai 2009 version complete j'avais pas précisé. en tout cas merci de vous pencher sur mon probleme. [Edité le 4/5/2009 par jackobul]
CDL Posté(e) le 4 mai 2009 Posté(e) le 4 mai 2009 Ne pas oublier_-layerEtablir crée le calque s'il n'existe pas et le rend courantCHoisir le rend courant s'il existeenvisager le cas ou le calque est Geler donc faire un Libérer dans la macro :cool:
bonuscad Posté(e) le 4 mai 2009 Posté(e) le 4 mai 2009 Alors avec une version complète tu peux, par exemple, coller ce qui suit dans un bouton macro: ^C^C((lambda (/) (setvar "plinewid" 0.04) (command "_.-layer" "_make" "NOMDECALQUE" "") (command "_.pline" (while (not (zerop (getvar "cmdactive"))) (command pause))) (setvar "plinewid" 0.0) (command "_.-layer" "_set" "0" ""))) NB: Tu peux encore rajouter des actions, cependant tu ne peux mixer les expression classiques et lisp, par exemple:^C^C_.-layer;_make;TOTO;;(expresion lisp)_change;_last;ect... NE FONCTIONNERA PASIl faut que tout soit contenu dans la fonction anonyme ((lambda ....)) Tu es aussi limité en longueur pour une fonction dans une macro. Ne pas chercher a faire un programme complexe dans un bouton. Pour ce cas il vaut mieux passer par une fonction (load) pour charger celui-ci et ensuite lancer le nom de la fonction correspondante.exemple:^C^C(if (not c:ma_fonction) (load"ma_fonction.lsp")) ma_fonction Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
jackobul Posté(e) le 5 mai 2009 Auteur Posté(e) le 5 mai 2009 bon pour etre honnête j'ai pas tout compris dans le dernier message :) mais la fonction que tu as ecris fonctionne comme je voulais alors 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