Aller au contenu

Sélection rapide ?


Aviglémy

Messages recommandés

Justement on n'as pas accès à la liste de choix, avec un fonctionnement en tiroir.

En Lisp, je veut juste isoler des polylignes 3D puis les décomposer.

Et enfin les transformer en 2D.

 

En expliquant le problème je me rend compte qu'il suffit de trouver un lisp qui fait la transformation 3D => 2D !

Il y a des jours qu'on cherche vraiment n'importe comment ...!.. ;)

Je part à le recherche de ce pas !

Mais si tu as une idée ?

Merci et joyeux Noël.

Amicalement Rémy.

 

 

[Edité le 23/12/2003 par Aviglémy]

Lien vers le commentaire
Partager sur d’autres sites

Si c'est en LISP, utilises la fonction (ssget), tu pourra faire la même chose qu'avec la commande de sélection rapide...ou que la commande _FILTER qui est l'ancêtre de la sélection rapide.

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Bonjour et Bonne année ! ....

 

Bon après les fêtes ca va toujours bien, mais le ssget me pose des problèmes j'ai :

 

(setq ss2 (ssget '((0 . "POLYLINE"))))

(command "_explode" ss2 )

 

Le filtre fonctionne avec déplacer, mais avec explode rien à faire il ne décompose que le dernier élément de la sélection ? :casstet:

 

Pourriez vous m'indiquer si il existe une contrainte de programmation entre ssget et la command explode.

Merci d'avance.

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour et Bonne année à toi aussi !.. :P

 

En effet la contrainte de l'utilisation "_explode" par le lisp et que la commande attend par programmation le NOM de l'entitée.

Tu dois donc parcourir ton jeu de sélection a l'aide de la fonction (ssname jeusel indice) à travers une boucle (while ...) ou (repeat ...) dans laquelle il ne faut pas oublié d'incrémenter ton indice pour parcourir tout le jeu de séléction.

 

NB:La fonction xplode.lsp d'autodesk dans le dossier support est articulée comme cela.

 

Voilà pour le principe

 

 

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Merci Bonuscad !

 

Mais je commence le Lisp et l'aide n'est pas très explicite, je me retrouve dans le pétrin :

 

(setq ss2 (ssget '((0 . "POLYLINE"))))

 

(setq sslen (sslength ss2)

j 0

)

(while (< j sslen)

(setq temp (ssname ss2 j))

(setq j (1+ j))

)

(command "_explode" j )

)

 

Je me doute que je tourne autour du pot, si quelqu'un peut m’aider.

 

NB: J'ai bien trouvé le fichier xplode.lsp :thumbup: , ces quelques lignes sont quasi les mêmes... :P

 

A+

 

Lien vers le commentaire
Partager sur d’autres sites

Désolé de n'avoir pas été plus explicite.

 

C'est bien, tu étais près du but!

1ere erreur: sur le filtre de polyligne, ton filtre ne concernait que les anciennes polylignes pas les nouvelles

2eme erreur: tu as soumis l'indice a la commande explode au lieu du NOM de l'entité

3eme erreur: tu n'a pas inclu la commande explode dans la boucle

 

En corrigé (en gardant la struture de ton code) cela donne

 

(setq ss2

(ssget

'((-4 . "

(-4 . "

(0 . "POLYLINE")

(-4 . "AND>")

(-4 . "

(0 . "LWPOLYLINE")

(-4 . "AND>")

(-4 . "OR>"))

)

)

(setq

sslen (sslength ss2)

j 0

)

(while (< j sslen)

(setq temp (ssname ss2 j))

(setq j (1+ j))

(command "_.explode" temp)

)

 

Rappel:

Pour en revenir a ta question d'origine, a tu essayé la routine SSX ou (ssx) des express tools pour utilisation dans une commande standard d'AutoCAD

NB : Je ne sais pas si cette fonction est toujours disponible en 2004 (2002 oui)

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

C'est OK !

La routine ne fonctionne pas encore parfaitement, mais c'est une histoire de concentration...

 

:cool: Bonuscad :cool: Impressionnant !

 

C'est pas que c'est difficile mais pour un débutant ...mais...eu... je me suis énervé et j'en ai plus beaucoup de cheveux. .... :)

 

Pour ssx j'ai jeté un œil, mais bon franchement à quoi ça sert ?

Je lance (explode) puis ('ssx)

Il retourne par exemple:

Current filter: ((0 . "LINE") (8 . "bdu-télécommunication") (210 0.0 0.0 1.0))

Il me dit : 899 found.

Et il ne décompose pas les éléments !? :(

 

Bien je retourne sur le baudet.

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

Au début on trébuche souvent,

 

((0 . "LINE") (8 . "bdu-télécommunication") (210 0.0 0.0 1.0))

 

ne peut fonctionner car il concerne des lignes (objet primitif) qui ne peuvent plus être décomposés.

 

Je suppose que le filtre a été constitué par la sélection d'un objet modèle qui dans ton cas était une ligne

 

La sélection d'une polyligne comme modèle aurait mieux convenu ;)

 

Concentration... concentration

Bonne chance

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

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é