Aller au contenu

Messages recommandés

Posté(e)

Salut,tous le monde,

 

Je programme en VBA

Je ne connait pas le lisp,mais promis je mis met le plus tot possible

je suis souvant bloqué en VBA et les possibilité en lisp me semble plus large??

 

quelqu'un pourrait me dire comment sortir des entités d'un block

sur autocad_ refedit selection du block (editer un block pas de probleme en vba)

puis _refset (ajouter/supprimer) _rem

(ajouter pas de souci en vba .add ou insertblock ; sortir du block -->>????)

selection des entitées à sortir du blocks

mais je ne trouve pas l'équivalent en vba

 

le but est de sortir de tous les blocks insérés dans l'espace objet

tous les blocks portant le nom "*nom*" et de les retourner

dans l'espace objet au même point insertion,echelle,calque

 

merci

 

Posté(e)

je fait un peu de VBA mais je ne vois pas pourquoi tu entre dans le bloc pour le retrouver...

 

à ta place, je ferais une boucle sur tout les blocs

puis un test sur chaque nom,

si oui

si non

fin de la boucle

 

je ne comprends pas pourquoi

le but est de sortir de tous les blocks insérés dans l'espace objet

tous les blocks portant le nom "*nom*" et de les retourner

dans l'espace objet au même point insertion,echelle,calque

 

espace objet espace objet ??

 

je pourrais t'aider si tu veux mais je ne comprends pas tout.

 

entre LISP et VBA, les méthodes (le fond) sont quasiment toutes les mêmes, seul le code

(la forme change)

 

P.S. fait un tour ici :

http://www.cadxp.com/sujetXForum-18505.htm

 

tu verras mon code pour le nettoyeur de plan et dedans tu trouveras la methode pour faire une boucle dans les blocs

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

Posté(e)

en fait j'ai x blocks diffèrent avec comme nom "nom block1","nomblock2"...

avec dans chaque block y blocks ayant comme nom nom du block parent & "support1","support2"..

 

exemple :

 

nom du block1 : "machine 1" -->ligne

-->cercle

-->block avec comme nom "machine 1 vis 1"

-->block avec comme nom "axe"

-->block avec comme nom "machine 1 vis 2"

-->...

 

nom du block2 : "machine 2"-->ligne

-->cercle

-->block avec comme nom "machine 1 vis 2"

-->block avec comme nom "machine 2 vis 2"

-->...

 

nom du blockn : .......

 

 

je voudrais sortir mes blocks "machine 1 vis 1","machine 1 vis 2","machine 1 vis 2",...

de mes block parent pour les retrouver au même endroit mais en dehors des blocks parent

 

resultat :

 

nom du block1 : "machine 1" -->ligne

-->cercle

-->block avec comme nom "axe"

-->...

 

nom du block2 : "machine 2"-->ligne

-->cercle

-->...

 

nom du block3 : "machine 1 vis 1"

 

nom du block4 : "machine 1 vis 2"

 

nom du block5 : "machine 2 vis 1"

 

nom du block6 : "machine 2 vis 2"

 

nom du blockn : .......

 

 

Posté(e)

c'est donc des blocs imbriqués...

 

je réfléchis à ton problème dans la journée mais pour moi tu n'a pas besoin d'un code lourd...

 

 

un truc dans le genre devrait suffire

 

Function formater_les_blocs()

Dim objBlock As AcadBlock
Dim entint As AcadEntity

'Pour tous les blocs dans la collections de blocs (et non pas dans le dessin, si non impossible de traiter les blocs impriqués)
For Each objBlock In ThisDrawing.Blocks

      For Each entint In objBlock

'si l'entitée entint est...
               Select Case entint.ObjectName

                                     
               Case Else
               'tester si c'est un bloc si oui vérifier son nom et ses coordonnées, etc.
               'Debug.Print entint.ObjectName
               
               End Select 'entint.ObjectName

       Next entint
   


Next objBlock


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é