Aller au contenu

Catia et VBA Userform


Messages recommandés

Posté(e)

Bonjour tout le monde,

 

Je code une petite application et je viens de me taper contre un mur. Je ne sais plus quoi ou comment faire...

 

J'ai une collection avec un nombre d'entités dans mon module, et je veux faire appel à une userform, montrer les entites dans un listbox et laisser l'utilisateur choisir s'il veut enlever des entites ou pas.

 

En fait, je recupere des points, qui serviront à faire une spline, je veux dire à l'utilisateur "voila tous les points, si tu veux oter un, efface-le de la liste et puis clique sur ok". Je sais comment faire un listbox et le remplir, mais je ne sais pas comment integrer ma collection. Effacer un item d'un liste est facile, mais comment je fais le lien avec les items dans la collection???

 

Je fais un simple

 Public Sub Liste(Value)
oCount = Value.count
for Ii = 1 to oCount
ListBox1.AddItem ("Point " & Ii)
Next
End Sub

Pour remplir ma liste et un

 Public Sub SupButton_Click()
If ListBox1.ListCount >= 1 then
 If ListBox1.ListIndex = -1 then
   MsgBox "Merci de choisir un point à enlever"
   Exit Sub
 End If
 ListBox1.RemoveItem (ListBox1.ListIndex)
End If
End Sub

pour effacer des points.

 

mais maintenant je ne sais pas comment dire voila, efface les mêmes points de la collection et reprends la main avec catia.

Quelqun a une idée??

 

Merci à tous

 

cho

 

Luis

 

[Edité le 8/1/2009 par jarabito]

Posté(e)

Salut Luis,

 

Au final, dans ta liste il ne va rester que les points que tu veux. Pour créer ta spline, tu devras prendre chaque élément de ta liste, et parcourir chaque élément de ta collection pour voir si le nom du point correspond.

Sinon, dans ta collection de points à l'écran, il y a peut-être une fonction GetItem qui te permet de trouver immédiatement un point en fonction de son nom.

 

Mais il faut que dans ta liste il y ait exactement le nom du point. Pas sûr quand je vois ton bout de code.

 

 

Posté(e)

Salut Marc,

 

en fait non, je ne pensais pas utiliser le nom exact de chaque point, je pensais pouvoir eliminer les items de la collection selon leur index, et après faire la spline avec ce qui restait... Sur le petit code que j'ai posté il y avait juste la creation d'une liste avec le nombre des points dans la collection, et le traitement de la liste, mais je ne savais pas comment faire le lien entre les deux... si selon toi il faut passer par le nom des points, je vais modifier ça et faire differement...

 

par contre, comment est-ce que je compare les elements dans la collection avec les elements dans la liste?

:D

 

merci

 

[Edité le 8/1/2009 par jarabito]

Posté(e)

Quand tu vas scanner ta collection de points, tu pourras avoir son nom avec Pt.Name.

Et dans la liste tu dois le savoir, un truc du genre ListBox1.List(i). Je ne sais plus, entre VBA et .Net je m'emmêle souvent les crayons.

 

J'avais commencé à faire ce programme pour le vendre, mais je n'ai jamais terminé... Un jour ...

 

 

Posté(e)

HAHHAHAHAH en fait, je vais un peu plus loin que ça, l'idée est une creation interactive des fibres neutres, et j'arrive à le faire en faissant une SelectElement directement sur CATIA (la selection des points), mais je voulais ajouter un peu de forme et afficher une fenetre qui donne à l'utilisateur ses points pour qu'il puisse travailler avec eux...

 

mon souci par contre n'est pas comment comparer les objets en eux mêmes, elle porte plutôt sur comment pouvoir lire la collection ou la liste dans la forme et le module... Je bloque car je n'utilise pas enormement les formes, je passe plutôt par les modules, car jusqu'à maintenant je faissais de l'automatisation des analyses géométriques, et je n'avais pas vraiement besoin d'une forme...

 

Maintenant que je dois (veux) le faire, je bloque un peu... le vb je l'ai pris completement en autoaprentissage et j'ai quelques trous par-ci et par-la...

 

merci pour le coup de main...

 

luis

Posté(e)

Et voila, je crois que j'ai trouvé comment faire....

 

Si tu declares la collection comme publique dans ton module, tu peux la recuperer avec la forme en faissant un

 

 Set Po_Forme = SectionMini.ColPoints

 

et apres, il faut juste faire un

 

 Po_Forme.Remove ListBox1.ListIndex 

avec chaque point que tu effaces... maintenant il faut juste recuperer la collection dans le module et faire le spline :D

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é