Aller au contenu

Messages recommandés

Posté(e)

Salut à tous,

 

Voulant optimiser des vieilles fonctions,

je me retrouve sur un cas où je cherchait à tester le Z des lignes.

 

Enfin surtout celles dont le Z (point de départ ou d'arrivée) ne vaut pas 0.0.

 

après une petite recherche :

 

(setq LIGNEz (ssget "X" (list '(0 . "LINE")
		      '(-4 . "			      	'(-4 . "*,*,<>")
		      	(list 10 0.0 0.0 0.0)
		      	'(-4 . "*,*,<>")
		      	(list 11 0.0 0.0 0.0)
		      '(-4 . "OR>")
		      )))

 

(-4 . "*,*,<>") afin de filtrer le X, Y et Z de tel façon qu'on ignore la valeur du X ou du Y

mais que le Z soit différent de 0

 

Car auparavant, la fonction bouclait sur toutes les lignes, et donc avec

des fichiers chargés en lignes... le temps d'exécution explosait.

 

Conclusion :

toujours bien faire le SSGET avant de traiter les entités, pour éviter

de les filtrer une seconde fois.

Tous pour lisp, Lisp pour tous!

Avec Revit, cela ne vas trop vite...

Posté(e)

Salut,

 

(ssget "_:L") permet de filtrer les objets sur les calques non verrouillés, mais il faut faire la sélection "à la main" ou entrer "tout".

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Salut

 

(ssget "_:L") permet de filtrer les objets sur les calques non verrouillés, mais il faut faire la sélection "à la main" ou entrer "tout".

En effet, je ne connaissais pas ce filtre (il n'est d'ailleurs pas décrit dans l'aide ssget), et en effet il n'accepte pas d'argument supplémentaire (point) :-(

 

Alors pour filtrer j'utilise la fonction (acet bns_ss_mod), mais ça revient à faire un post-filtrage, sans doute à peine plus rapide qu'une itération..

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é