x_all Posté(e) le 11 avril 2013 Posté(e) le 11 avril 2013 je voudrai sortir les blocs d'un jeux de sélection. Alors ok, on peu faire un filtre, mais les filtre si je ne m’abuse sont enregistré avec le dessin et pas top en matière d'ergonomie ce que je voudrai c'est l'intégrer à une macro sur un bouton... auriez vous une formule magique à proposer? merci quelques trucs sur autocad
-Olivier- Posté(e) le 11 avril 2013 Posté(e) le 11 avril 2013 Bonjour X_ALL,Personnellement j'enregistre mes filtres dans mon gabarit, mais tu peux tester ceci :(defun c:selsansb (/ ss) (setq ss (ssget '((-4 . "<NOT" ) (0 . "INSERT") (-4 . "NOT>")))) (sssetfirst nil ss) (princ) ) Bonne soiréeOlivier
-Olivier- Posté(e) le 11 avril 2013 Posté(e) le 11 avril 2013 Escuse moi j'inverse à chaque fois. La même commande corrigéedefun c:selsansb (/ ss) (setq ss (ssget '((-4 . "<NOT" ) (0 . "INSERT") (-4 . "NOT>")))) (sssetfirst nil ss) (princ) ) olivier
VDH-Bruno Posté(e) le 11 avril 2013 Posté(e) le 11 avril 2013 ce que je voudrai c'est l'intégrer à une macro sur un bouton... Bonsoir, Pour intégrer sur un bouton, il n’est peut-être pas nécessaire de définir une fonction qui demande à être préalablement chargé. De plus dans le code précédent, on peut aisément se passer de variable.. A copier dans ta macro bouton :(sssetfirst nil (ssget '((-4 . "<NOT") (0 . "INSERT") (-4 . "NOT>")))) Si tu le souhaite, il est possible d’émuler la ligne de code de façon à filtrer également une éventuel sélection implicite.(sssetfirst nil (cond ((ssget "_I" '((-4 . "<NOT") (0 . "INSERT") (-4 . "NOT>")))) ((ssget '((-4 . "<NOT") (0 . "INSERT") (-4 . "NOT>")))) ) ) A+ Apprendre => Prendre => Rendre
(gile) Posté(e) le 12 avril 2013 Posté(e) le 12 avril 2013 Salut, Plutôt que "", on peut utiliser les caractères génériques :(ssget '((0 . "~INSERT"))) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
VDH-Bruno Posté(e) le 12 avril 2013 Posté(e) le 12 avril 2013 Salut, Plutôt que "<NOT" / "NOT>", on peut utiliser les caractères génériques :(ssget '((0 . "~INSERT"))) Oui, bien vu c’est effectivement plus simple et visuellement plus agréable. Apprendre => Prendre => Rendre
x_all Posté(e) le 12 avril 2013 Auteur Posté(e) le 12 avril 2013 poudiou... bon... j'ai pas tout compris quand vous entrez dans les subtilités du lisp, mais je vous remercie (encore) de m'avoir trouver une solution simple et efficace... (sssetfirst nil (ssget '((-4 . "<NOT") (0 . "INSERT") (-4 . "NOT>")))) fait bien mon affaire coooooolll quelques trucs sur autocad
VDH-Bruno Posté(e) le 12 avril 2013 Posté(e) le 12 avril 2013 Bonjour, poudiou... bon... j'ai pas tout compris quand vous entrez dans les subtilités du lisp, mais je vous remercie (encore) de m'avoir trouver une solution simple et efficace... (sssetfirst nil (ssget '((-4 . "<NOT") (0 . "INSERT") (-4 . "NOT>")))) fait bien mon affaire coooooolll Pour faire simple :(gile) -> L’emploie du caractère générique ~(tilde) - Placé en début de modèle, recherche tout excepté le modèle .(vdh) -> L’usage du "_I" (sélection Implicite) permet si tu as des objets déjà grippé à l’écran de filtrer cette pré-sélection et d'en exclure les références de bloc, sinon tu es invité à faire une sélection.(-Olivier- ) -> La fonction sssetfirst en "grippant" ta sélection te permet de la visualiser à l’écran. En conclusion la ligne suivante étant la synthèse des 3 précédentes propositions, elle devrait tout aussi bien faire ton bonheur: (sssetfirst nil (cond ((ssget "_I" '((0 . "~INSERT")))) ((ssget '((0 . "~INSERT")))))) A+ Apprendre => Prendre => Rendre
x_all Posté(e) le 12 avril 2013 Auteur Posté(e) le 12 avril 2013 c'est beau la science... on est pas tous fait pareil... je comprend la logique, mais je reste hermétique à la logique du langage... j'essaye bien mais peut être c'est comme les langues vivantes, si on les à pas commencé jeune, on fait toujours que du baragouin... je vous écoute un peu comme on peu admirer des spécialistes de Shakespeare discuter de la subtilité de telle ou telle traduction d'un passage d'Hamlet... être ou ne pas être programmeur... telle est la question.... mais même sans tout comprendre, ça reste enrichissant...c'est cool que vous ayez la patience de partager votre savoir.. quelques trucs sur autocad
lili2006 Posté(e) le 13 avril 2013 Posté(e) le 13 avril 2013 Bonjour à toutes et tous, Chez moi => Commande: (cond ((ssget "_I" '((0 . "~INSERT")))) ((ssget '((0 . "~INSERT"))))))Choix des objets: Spécifiez le coin opposé: 0 trouvé(s) Choix des objets:; erreur: parenthèse fermante supplémentaire en entrée Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
VDH-Bruno Posté(e) le 13 avril 2013 Posté(e) le 13 avril 2013 Bonjour à toutes et tous, Chez moi => Bonjour,Re-teste avec l'intégralité de l'expression Lisp Commande: (sssetfirst nil (cond ((ssget "_I" '((0 . "~INSERT")))) ((ssget '((0 . "~INSERT"))))))Choix des objets: Spécifiez le coin opposé: 4 trouvé(s)Choix des objets:(nil <Selection set: 6b>) A+ Apprendre => Prendre => Rendre
lili2006 Posté(e) le 13 avril 2013 Posté(e) le 13 avril 2013 Re, Salut Bruno, Bah oui, qu'est ce que j'ai fichu moi,...:blink: Alors, je sélectionne des blocs à l'écran, et grâce à cette ligne de code, je veux en déselectionner quelques uns, c'est bien ça le but ? Si oui, voilà chez moi => Commande: (sssetfirst nil (cond ((ssget "_I" '((0 . "~INSERT")))) ((ssget '((0 . "~INSERT"))))))0 trouvé(s) Choix des objets: Spécifiez le coin opposé: 0 trouvé(s), 0 au total Choix des objets:(nil nil) Je crois que je n'ai pas bien compris le fonctionnement,...Effectivement au lancement la sélection écran se désactive, forcément puisque l'on relance une commande,.. Merci d'avance, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
VDH-Bruno Posté(e) le 13 avril 2013 Posté(e) le 13 avril 2013 Alors, je sélectionne des blocs à l'écran, et grâce à cette ligne de code, je veux en déselectionner quelques uns, c'est bien ça le but ?Pas tout à fait, le but est justement de sortir toutes les références de bloc de la sélection, donc rien d'étonnant à ce que ta sélection soit vide car tu n'avais sélectionné que des références de bloc. A+ Apprendre => Prendre => Rendre
lili2006 Posté(e) le 13 avril 2013 Posté(e) le 13 avril 2013 Re, C'est compris ! (Evidement, je teste sur un fcihier qui n'a qu'un jeu de blocs points,...pfuuu !!:huh: Merci pour ta persévérance Bruno,;) Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
x_all Posté(e) le 15 avril 2013 Auteur Posté(e) le 15 avril 2013 slt lili... si tu veux tout savoir, j'avais besoin de ce bout de code pour changer les propriétés de d’échelle de types de lignes dans un dessin. Malheureusement, quand on sélectionne les éléments en vrac et qu'on cherche à changer cette échelle dans les propriétés on ne peu pas y toucher tant qu'il y a des bloc dans la sélection. le but est de présélectionner une ligne continue puis de lancer la macro: sstl Inv_sel (sssetfirst nil (cond ((ssget "_I" '((0 . "~INSERT")))) ((ssget '((0 . "~INSERT")))))) (il faut bien sur avoir le lisp sélection de (gile) chargé dans le dessin) quelques trucs sur autocad
lili2006 Posté(e) le 16 avril 2013 Posté(e) le 16 avril 2013 Bonjour à toutes et tous, Salut X_all, qu'on cherche à changer cette échelle dans les propriétés on ne peu pas y toucher tant qu'il y a des bloc dans la sélection. Ok ! Mais sans lisp dans la palette des propriétés, non ? (Si tu choisis que les polys par exemple depuis le menu déroulant) le but est de présélectionner une ligne continue Pourquoi faire ? (il faut bien sur avoir le lisp sélection de (gile) chargé dans le dessin) Comprends plus rien là,...Mais bon, c'est pas bien grave non plus,...;) Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
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