Aller au contenu

Est il possible de creer un bouton utilisant _qselect ou _flter ?


bucheron

Messages recommandés

Salut a tous, ;)

 

J'utilise les commandes "selection rapide" (qselect) et filter assez souvent sur des taches assez repetitives. J'aimerais savoir comment passer des parametres aux boites de dialogues de ces 2 commandes.

Mon but est de creer ensuite des boutons pour selectionner rapidement certain types d'objets sans avoir la boite de dialogue qui s'ouvre a l'ecran.

 

Merci d'avance pour les infos

 

Bucheron

 

Lien vers le commentaire
Partager sur d’autres sites

Tu peur créer un bouton avec la commande "^C^C-qselect" : cela te lance la boite de dialogue. Ensuite, je ne pense pas que cela soit possible sans une petite prog.

;)

L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai.
"Il vaut mieux mobiliser son intelligence sur des conneries, que sa connerie sur des choses intelligentes" - Devise Shadok.
"ceux qui ne se souviennent pas du passé sont condamnés à le revivre" George Santayana

Ma bibliothèque de blocs électrique :symbole elec.dwg

Lien vers le commentaire
Partager sur d’autres sites

voici un exemple de macro :

 

 

^c^c^filter;tout;;

 

Dans la commande FILTER on choisit le filtre et en sortant AutoCAD fait une sélection de tout le dessin. C'est simple.

 

Avantage de FILTER, il est possible d'enregistrer les filtres. Mais ça reste en parti une méthode manuelle, semi-auto !

 

 

Christian

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Lien vers le commentaire
Partager sur d’autres sites

Ma réponse sera adressée à des versions non-LT

Tu peux glisser dans un bouton l'instruction suivante:

(ssget "_X" (list (assoc 0 (entget (car (entsel))))))

ceci sélectionnera les entité tu type sélectionné, si tu sélectionne un cercle, ce sera tout les cerles du dessin dans les 2 'espace (objet et papier).

 

(ssget "_X" (list (assoc 8 (entget (car (entsel))))))

cet autre exemple sélectionnera les entités du calque correspondant à celui sélectionné, dans les 2 espace.

 

On peut en faire beaucoup d'autres et même combiner; par exemple le calque et le type d'entité.

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

Si je comprend bien, dans la ligne de commande je tape

 

(ssget "_X" (list (assoc 8 (entget (car (entsel))))))

 

et toutes les entitées du calque de l'objet que j'ai selectionné sont sellectionnées ?

 

A premiere vue, ça ne marche pas, Je n'ai pas de sellection dans mon dessin.

 

Peux tu me donner la ligne de commande pour sellectionner les "references de bloc" du même nom ?

 

Merci

Lien vers le commentaire
Partager sur d’autres sites

Pour un bloc du même nom que celui sélectioné:

(ssget "_X" (cons '(0 . "INSERT") (list (assoc 2 (entget (car (entsel)))))))

 

Si tu lance cette ligne au message commande d'AutoCAD, cette sélection sera placé dans le jeux de sélection précédent.

Donc tu pourras faire EFFACER Précédent

 

Par contre tu peux aussi lancer cette ligne en transparence

Commande: EFFACER

Choix des objets: (ligne instruction lisp/ou bouton prédéfini)

Choix de l'objet: Choisir un bloc modèle

X trouvés.

Choix des objets: valider

 

NB:Il n'y a pas de controle sur la validité de l'entité modèle séléctionner (Attention au choix!)

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 pour cette ligne de commande.

 

Je viens de la modifier pour en faire un bouton qui m'efface les cotes (toutes malheureusement) lorsque je clique sur une cote.

 

^C^C_erase;(ssget "_X" (cons '(0 . "DIMENSION") (list (assoc 0 (entget (car (entsel)))))));

 

Comment specifier le type de la cote (lineaire, alignée, diametre...)?

 

Le "assoc 100 " me donne :

 

(100 . "AcDbDimension")

 

et non :

 

(100 . "AcDbRotatedDimension")

 

pour une cote de diametre ?

 

Merci

Lien vers le commentaire
Partager sur d’autres sites

Tout est dans l'aide

"Aide aux développeurs d'AutoCAD"

La partie Lisp est en Anglais :(

La partie DXF en Français :)

 

Code DXF

->Référence DXF

-->Section ENTITIES

--->DIMENSION

---->Codes de groupe communs aux cotes

 

 

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é