Aller au contenu

sortir les blocs d'un jeux de sélection


Messages recommandés

Posté(e)

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

Posté(e)

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ée

Olivier

Posté(e)

Escuse moi j'inverse à chaque fois. :rolleyes:

La même commande corrigée

defun c:selsansb (/ ss) 
 (setq ss (ssget '((-4 . "<NOT" ) (0 . "INSERT") (-4 . "NOT>")))) 
 (sssetfirst nil ss) 
 (princ) 
 )

 

olivier

Posté(e)

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

Posté(e)

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

Posté(e)

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

Posté(e)

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

Posté(e)

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..

Posté(e)

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

Posté(e)

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/

Posté(e)

 

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

Posté(e)

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)

Posté(e)

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/

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité