Bred Posté(e) le 10 juillet 2006 Posté(e) le 10 juillet 2006 Bonjour...Dans la série "petit trucs tordu", j'ai un nouveau problème :Grâce à vous, depuis mon récent aprentissage de l'utilisation des filtres dans ssget, je me suis ammusé à créér un petit outil me permettant de ressortir un (groupe) de bloc précis d'une selection... (defun c:rrr () (princ "\n------------------------------\n Sélection d'un groupe de blocs :") (setq sel (ssget ":L" '((0 . "INSERT")))) (setq bloc (getstring "\n Entrez le nom du bloc à Ressortir ou < selec >: ")) (if (= bloc "")(progn (while (not (and (setq bloc_sel (entsel "\nSélectionnez le bloc à Ressortir: ")) (= (cdr (assoc 0 (entget (car bloc_sel)))) "INSERT")))) (setq bloc (cdr (assoc 2 (entget (car bloc_sel))))))) (ssget "_P" (list (cons 2 bloc))) (princ "\n--------------------------------------------\n choisir une action à réaliser (copier,supprimer ...) puis taper p") (princ) )mais en fait, j'étais parti pour éviter ce "choisir une action à réaliser (copier,supprimer ...) puis taper p" en faisant un (command pause (ssget "_P" (list (cons 2 bloc))) "" pause pause pause)... ce qui est certainemenr n'importe quoi, vu que ça ne fonctionne pas... Donc, ma question est de savoir si il est possible de faire finir un programme lisp en faisant faire une selection, puis en revenant au commande d'autocad normale (afin qu'il puisse traiter la selection comme selection nom/verbe)Je sais, je pourrais "étoffer" mon lisp en proposant toutes ces actions et en les traitant en lisp, mais je trouve ça un peu lourd... merci d'avance Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
bonuscad Posté(e) le 10 juillet 2006 Posté(e) le 10 juillet 2006 Un exemple rapide:Sélectionner en mode nom/verbe (suivant la valeur de "CMDACTIVE") toutes les entités ayant la couleur du calque par défaut dans l'espace courant. ((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 256 T)) ) ) ) (if (zerop (getvar "cmdactive")) (sssetfirst nil js) js ) )) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Bred Posté(e) le 10 juillet 2006 Auteur Posté(e) le 10 juillet 2006 Gé - Nial !!!merci beaucoup, j'apprends donc une nouvelle commande : (sssetfirst gripset[pickset]) ... j'avoue ne pas bien comprendre ce qu'il raconte dans l'aide à ce sujet, mais je vais bûcher ça !!! donc, j'arrive à ça : (defun c:rrr () (if (zerop (getvar "pickfirst")) (setvar "pickfirst" 1)) ;;; modif var (princ "\n------------------------------\n Sélection d'un groupe de blocs :") (setq sel (ssget ":L" '((0 . "INSERT")))) (setq bloc (getstring "\n Entrez le nom du bloc à Ressortir ou : ")) (if (= bloc "")(progn (while (not (and (setq bloc_sel (entsel "\nSélectionnez le bloc à Ressortir: ")) (= (cdr (assoc 0 (entget (car bloc_sel)))) "INSERT")))) (setq bloc (cdr (assoc 2 (entget (car bloc_sel))))))) (if (zerop (getvar "cmdactive")) (sssetfirst nil (ssget "_P" (list (cons 2 bloc)))) ) ) et c'est ni-ckel !!!Merci encore !!! Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
(gile) Posté(e) le 10 juillet 2006 Posté(e) le 10 juillet 2006 Salut, Tu peux voir aussi ce sujet Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Bred Posté(e) le 11 juillet 2006 Auteur Posté(e) le 11 juillet 2006 merci (gile) Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
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