Aller au contenu

utiliser les objets sélectionnés avant la commande


Messages recommandés

Posté(e)

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 :

Posté(e)

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ès

delete_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.

 

 

 

 

 

 

 

 

 

 

 

Posté(e)

coucou

 

décidément ce matin j'ai le virus de l'ancien temps...

 

je déconseille de sélectionner les objets AVANT la commande

il me semble que ç'est une situation à risque

 

exemple EFFACER

 

si des objets sont encore sélectionnés par oubli

exemple cliquer un objet A, on fait un pan

il se passe du temps, on clique un Objet B et on appuie sur Suppr

le pauvre Objet A a disparu sans qu'on s'en rende compte

 

je préfère lancer la commande

sélectionner les objets concernés et valider

 

amicalement

Posté(e)

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 Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

  • 2 semaines après...
Posté(e)

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.

Posté(e)

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 Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

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é