bucheron Posté(e) le 13 octobre 2004 Posté(e) le 13 octobre 2004 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
Oli553 Posté(e) le 13 octobre 2004 Posté(e) le 13 octobre 2004 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
bucheron Posté(e) le 13 octobre 2004 Auteur Posté(e) le 13 octobre 2004 Ok pour le bouton mais, ou puis je trouver cette petite programmation ?Faut_il poser la question dans un autre forum (VBA, LISP, C++)??? Bucheron
rebcao Posté(e) le 13 octobre 2004 Posté(e) le 13 octobre 2004 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 @)
bonuscad Posté(e) le 13 octobre 2004 Posté(e) le 13 octobre 2004 Ma réponse sera adressée à des versions non-LTTu 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
bucheron Posté(e) le 13 octobre 2004 Auteur Posté(e) le 13 octobre 2004 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
bonuscad Posté(e) le 13 octobre 2004 Posté(e) le 13 octobre 2004 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 transparenceCommande: EFFACERChoix des objets: (ligne instruction lisp/ou bouton prédéfini)Choix de l'objet: Choisir un bloc modèleX 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
bucheron Posté(e) le 13 octobre 2004 Auteur Posté(e) le 13 octobre 2004 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
bonuscad Posté(e) le 13 octobre 2004 Posté(e) le 13 octobre 2004 Si tu veux effacer toutes les côtes DIAMETRE: (ssget "_X" '((0 . "DIMENSION") (-4 . "&=") (70 . 3))) voir code dxf 70 sur les cotations pour les autres possibilités Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
bucheron Posté(e) le 15 octobre 2004 Auteur Posté(e) le 15 octobre 2004 Je te remercie de ton aide et j'ai encore beaucoup de questions. :) Ou puis-je trouver les codes DXF dont tu me parles ?Y a t-il un site ou un bouquin ou je puisse m'informer sur le lisp? merci Bucheron
bonuscad Posté(e) le 15 octobre 2004 Posté(e) le 15 octobre 2004 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
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