barbichette Posté(e) le 19 juin 2006 Posté(e) le 19 juin 2006 Bonjour, Je fais très souvent la meme manip à savoir : sélectionner toutes les lignes et formes de couleur verte(quels que soient les autres attibut, tant que c'est vert il faut sélectionner) Quelle serait le code qu'il faudrait que j'associe au bouton que je vais créer ? Merci ***********************Rien ne sert de courrir, il faut partir à point.
bonuscad Posté(e) le 19 juin 2006 Posté(e) le 19 juin 2006 Tu pourrais essayer ceci, mais entendons nous bien, pour une couleur forcée verte (code 3) et NON du calque qui serait vert! Ce filtre, suivant ta position, te feras une séléction dans l'EO (onglet "Objet") ou dans l'EP dans ta presentation courante. Si dans une présentation du passe dans l'objet dans une fenêtre, cette sélection se fera dans l'EO.Ceci pour tous les objets de l'espace courant, qu'ils soient dans des calques gelés, inactifs ou verrouillés. (ssget "_X" (list (cons 67 (if (eq (getvar "CVPORT") 2) 0 1)) (cons 410 (if (eq (getvar "CVPORT") 2) "Model" (getvar "CTAB"))) (cons 62 3) ) ) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
barbichette Posté(e) le 19 juin 2006 Auteur Posté(e) le 19 juin 2006 Ok Et dans ce code, si je veux faire la meme chose mais avec du rouge en fait, quelle est la partie qui correspond à la couleur ? Merci ***********************Rien ne sert de courrir, il faut partir à point.
bonuscad Posté(e) le 19 juin 2006 Posté(e) le 19 juin 2006 pour une couleur forcée verte (code 3) (cons 62 3) donc pour du rouge (cons 62 1) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
barbichette Posté(e) le 19 juin 2006 Auteur Posté(e) le 19 juin 2006 eUH ,Quand je copie/colle ton code dans la partie"macro associée au bouton" rien ne se passe lors du clic sur le bouton... ***********************Rien ne sert de courrir, il faut partir à point.
bonuscad Posté(e) le 19 juin 2006 Posté(e) le 19 juin 2006 C'est simplement un jeu de sélection qui est créé. Si tu fais par exemple APRES l'appui sur ton bouton: "Effacer" choix des objet "Précédent", c'est ce jeux de sélection qui sera retourné. Ou tu peut faire la commande d'abord puis au message choix des objets, appuyer sur ton bouton et valider par entrée ta sélection Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
barbichette Posté(e) le 23 juin 2006 Auteur Posté(e) le 23 juin 2006 Excuse moi Bonuscad, mais je ne comprend pas où il faut que je mette ces lignes de commandes et comment faire pour les activer... [Edité le 23/6/2006 par barbichette] ***********************Rien ne sert de courrir, il faut partir à point.
bonuscad Posté(e) le 24 juin 2006 Posté(e) le 24 juin 2006 Quelle serait le code qu'il faudrait que j'associe au bouton que je vais créer ? Comme tu parlais d'un bouton, pour moi tu parlais d'une macro. Dans une version pleine, on peut aussi associé du lisp dans une macro.Dans ton cas, il ne faudra pas commancer ta macro par "^C^C" qui est une syntaxe d'annulation de toute commande en cours. J'ai amélioré la syntaxe pour que l'action associé au bouton puisse se faire dans les 2 modes de fonctionnement: sélection -> action ET action -> sélection. J'ai rajouté aussi la sélection de la couleur que tu veux faire. Donc copie les lignes qui suivent dans la définition macro d'un bouton et essayes L'avantage de cette défintion et que tu pourras associer tous les actions standards d'édition d'autocad à ta sélection: déplacer, effacer, copier etc... Ceci dans l'odre de ton choix: soit la commande puis l'appui sur ton bouton, ou l'appui sur ton bouton puis la commande que tu veux appliquer. Par contre cela ne fonctionnera pas pour un appel de sélection depuis un autre lisp (appel réentrant impossible) ((lambda ( / js) (if (zerop (getvar "pickfirst")) (setvar "pickfirst" 1)) (setq js (ssget "_X" (list (cons 67 (if (eq (getvar "CVPORT") 2) 0 1)) (cons 410 (if (eq (getvar "CVPORT") 2) "Model" (getvar "CTAB"))) (cons 62 (acad_colordlg 3 T)) ) ) ) (if (zerop (getvar "cmdactive")) (sssetfirst nil js) js ) )) NB:Après un essai la syntaxe est maintenant un peu longue pour une macro (on est limité).Dans ce cas il vaut mieux enregister les lignes dans un fichier lisp, exemple "select_by_color.lsp" dans un dossier de recherche, puis dans le bouton faire simplement : (load "select_by_color") Toujours sans caractères d'annulation Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
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