mick_ig Posté(e) le 10 octobre 2008 Posté(e) le 10 octobre 2008 Bonsoir à tous, Exemple simple : Dans AUTOCAD, si je sélectionne des objets et que je lance la commande DEPLACER, la commande prend en compte les objets sélectionnés. Comment faire avec un programme VBA? Quand je demande une sélection , je ne peux pas récupérer les objets sélectionnés, je dois toujours sélectionner les objets après. Avez-vous une idée ? Merci d'avance :
sechanbask Posté(e) le 11 octobre 2008 Posté(e) le 11 octobre 2008 il faut programmer tout en VBA regarde le lien : http://cad-magazine.com/pdf/astuces/autocad_2000_et-159.pdf ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
mick_ig Posté(e) le 14 octobre 2008 Auteur Posté(e) le 14 octobre 2008 Merci sechanbask, Mais je programme tout en VBA. J'ai lu le lien mais cela ne m'apporte rien de nouveau. Je vais te donner un exemple concret : Sub text_ajout_avant_apres()'ajoute une chaine de caractère avant un texte et aprèsdelete_selectionsets Exemple : Dim s1 As AcadSelectionSet Set s1 = ThisDrawing.SelectionSets.Add("s1") avant = InputBox("Entrez la chaine de caractère à ajouter avant les textes :", "TEXTE AVANT")apres = InputBox("Entrez la chaine de caractère à ajouter après les textes :", "TEXTE APRES")ThisDrawing.Utility.Prompt "Sélectionner les textes à modifier:" s1.SelectOnScreen For i = 0 To s1.Count - 1 If s1.Item(i).ObjectName = "AcDbText" Then s1.Item(i).textString = avant & s1.Item(i).textString & apres Update End If Next i End Sub Donc je sélectionne les objets dans AUTOCAD. (j'ai souvent l'habitude de sélectionner les objets avant de lancer la commande).Je lance la commande.Et l'invite me demande de sélectionner les textes . Je souhaiterais que l'on n'ait plus besoin de resélectionner les objets et que la commande s'éxecute....... Tout simplement comme dans AUTOCAD où l'on peut sélectionner les objets avant ou après la commande. Merci de ton aide.
didier Posté(e) le 15 octobre 2008 Posté(e) le 15 octobre 2008 coucou décidément ce matin j'ai le virus de l'ancien temps... je déconseille de sélectionner les objets AVANT la commandeil me semble que ç'est une situation à risque exemple EFFACER si des objets sont encore sélectionnés par oubliexemple cliquer un objet A, on fait un panil se passe du temps, on clique un Objet B et on appuie sur Supprle pauvre Objet A a disparu sans qu'on s'en rende compte je préfère lancer la commandesélectionner les objets concernés et valider amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
mick_ig Posté(e) le 21 octobre 2008 Auteur Posté(e) le 21 octobre 2008 ok je te comprends Mais je suis quand meme preneur de la solution si elle existe. Alors si tu l'as merci d'avance.
sechanbask Posté(e) le 28 octobre 2008 Posté(e) le 28 octobre 2008 avec VBA ça me semble compliqué car l'interpréteur VBA n'est une commande complètement ancrée dans autocad et donc quand tu fais la sélection avant de lancer ta commande, la sélection as disparu... le seul moyen que je connaisse c'est de faire un évènement sur tous les selection set puis dans ta commande de faire un retour en arrière sur le dernier selectionset... compliqué pour au final perdre du temps CPU... vois avec les programmateur LISP... ça me semble plus indiqué si l'interprétateur est mieux fusionnné... Parfois, c'est plus facile n LSIP qu'en VBA... Personnellement, je ne vois pas comment faire pour le codé en VBA... P.S. il ne faut pas que tu crée unimputbox sinon c'est sur la selction disparaitra que ça soit en lisp ouen VBA, si tu as un autocad au moins 2006 fait ThisDrawing.Utility.Getstring bon courage [Edité le 28/10/2008 par sechanbask] ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
mick_ig Posté(e) le 6 novembre 2008 Auteur Posté(e) le 6 novembre 2008 Merci sechanbask, C'est sympa de me répondre. Je ne connais pas du tout le lisp. Peux tu me dire comment programmer les évènements?? Je n'ai encore jamais fait. Merci d'avance.
sechanbask Posté(e) le 14 novembre 2008 Posté(e) le 14 novembre 2008 je ne maitrise pas du tout les évènements désolé. J'en ai fait marcher un, issu de l'aide développeur d'autocad , et c'est tout... ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
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