Section programmation CatScript, VBA, VB.NET...

Page 2 sur 5 Précédent  1, 2, 3, 4, 5  Suivant

Voir le sujet précédent Voir le sujet suivant Aller en bas

Re: Section programmation CatScript, VBA, VB.NET...

Message par SamsGuamejy le Jeu 16 Sep 2010 - 20:10

Oki Wink
Merci Gautier Exclamation!

Un peu de patience Very Happy

_________________
SamsGuamejy
CATIA V5 R20 Fr
Technicien BE R&D
http://www.arbodomia.fr

I7 Q740 2x1.73GHz _ 8Go Ram _ Win8.1 _ SSD 40Go
avatar
SamsGuamejy
Fédérateur
Fédérateur

Messages : 312
Date d'inscription : 14/09/2010
Age : 33
Localisation : Vendée (85) FRANCE

http://www.arbodomia.fr

Revenir en haut Aller en bas

Re: Section programmation CatScript, VBA, VB.NET...

Message par gautier2305 le Jeu 16 Sep 2010 - 20:17

Pas de quoi!!ouais encore un peut de patience!

_________________

gautier2305
Fédérateur
Fédérateur

Messages : 412
Date d'inscription : 03/09/2010
Age : 30
Localisation : Carvin(62)

Revenir en haut Aller en bas

Re: Section programmation CatScript, VBA, VB.NET...

Message par mike688 le Ven 17 Sep 2010 - 0:26

moi je veux bien m'occuper de vous avec gautier si il veux. (uniquement sur le forum hein, pas d'histoire tordu entre nous Very Happy)
il faudrai que wanou s'il est d'accord nous nomme admin
avatar
mike688
actif
actif

Messages : 255
Date d'inscription : 23/12/2009
Age : 35
Localisation : Portieux (88)

Revenir en haut Aller en bas

Re: Section programmation CatScript, VBA, VB.NET...

Message par gautier2305 le Ven 17 Sep 2010 - 0:28

Moi ca me tente bien Mike, le seul hic est que ce Mr Wanou est inconnu au bataillon et ne réponds à aucun message.
Pour les admin, on pourra faire un vote pour savoir qui les membres veulent voir en admin si il y a plusieurs candidatures!

_________________

gautier2305
Fédérateur
Fédérateur

Messages : 412
Date d'inscription : 03/09/2010
Age : 30
Localisation : Carvin(62)

Revenir en haut Aller en bas

Re: Section programmation CatScript, VBA, VB.NET...

Message par SamsGuamejy le Ven 17 Sep 2010 - 0:29

Pareil si il faut un coup de main ya pas de problême Wink

_________________
SamsGuamejy
CATIA V5 R20 Fr
Technicien BE R&D
http://www.arbodomia.fr

I7 Q740 2x1.73GHz _ 8Go Ram _ Win8.1 _ SSD 40Go
avatar
SamsGuamejy
Fédérateur
Fédérateur

Messages : 312
Date d'inscription : 14/09/2010
Age : 33
Localisation : Vendée (85) FRANCE

http://www.arbodomia.fr

Revenir en haut Aller en bas

Re: Section programmation CatScript, VBA, VB.NET...

Message par gautier2305 le Ven 17 Sep 2010 - 0:30

Il pus faut attendre au moins 2 mois pour récupérer le forum et virer l'admin!
des coups de main il en faudra!

_________________

gautier2305
Fédérateur
Fédérateur

Messages : 412
Date d'inscription : 03/09/2010
Age : 30
Localisation : Carvin(62)

Revenir en haut Aller en bas

Re: Section programmation CatScript, VBA, VB.NET...

Message par Threedots le Ven 17 Sep 2010 - 2:23

Ca sent la mutinerie tout ça ! Smile

Cela dit, Mr Wanou doit trainer ses guêtres dans les parages depuis 2008, il s'en est peut-être lassé ?

Quoiqu'il en soit, chapeau aux créateurs du forum, qui regroupe maintenant pas mal d'infos pratiques (et j'ai pas encore tout lu...)

Pour en revenir à ce que disait Sam, il est vrai que la création de macros est plus que conseillée pour booster encore un peu plus certaines opérations sous Catia, qui est déjà une sacrée usine à gaz... Une section pour la programmation est donc bienvenue !

avatar
Threedots
Fédérateur
Fédérateur

Messages : 617
Date d'inscription : 16/09/2010
Age : 29
Localisation : Toulouse

Revenir en haut Aller en bas

Re: Section programmation CatScript, VBA, VB.NET...

Message par SamsGuamejy le Ven 17 Sep 2010 - 2:39

Salut Ludo,

ça va être long d'attendre 2 mois pour pouvoir récupérer un admin...
Mais bon quand on goutte au macro et que l'on revient à un catia on perd un peu de réflex sur les ateliers. Mais la créations de macros me hape de plus en plus même si je n'ai pas trouvé de réel tuto sur la programmation autant CatScript que VB.net.

J'aimerai bien avoir quelque exemple de programme en .net pour CATIA pour apprendre comment cela foctionne réellement. J'avance un peu à taton surtout que je ne connais que le VB comme language à la base alors que le .net est un peu différent. Mais bon je commence tout doucement Very Happy

La programmation reste un atout majeur pour l'outil de CATIA je pense. Puisque je vois mes chers dirigeant essayé de mettre CATIA à la portée de pratiquement n'importe qui via des développements.

_________________
SamsGuamejy
CATIA V5 R20 Fr
Technicien BE R&D
http://www.arbodomia.fr

I7 Q740 2x1.73GHz _ 8Go Ram _ Win8.1 _ SSD 40Go
avatar
SamsGuamejy
Fédérateur
Fédérateur

Messages : 312
Date d'inscription : 14/09/2010
Age : 33
Localisation : Vendée (85) FRANCE

http://www.arbodomia.fr

Revenir en haut Aller en bas

Re: Section programmation CatScript, VBA, VB.NET...

Message par Threedots le Ven 17 Sep 2010 - 3:30

C'est sûr, mon ancien patron aussi ne jurait que part les Macros. Notamment pour aider un peu les gars à la FAO lors des tâches répétitives et pas très intéressantes. Et c'est vrai que mettre des boites de dialogue explicite rend certaines fonctions accessibles à tous.

Mais à vrai dire, je ne travaillais pas au code, et si je suis assez habitué au VB (programmation excel), je n'ai jamais trop touché à la programmation sur Catia.

Etant en poste et déjà quasiment référence en tant que mécanicien CAO (eh oui, les "vieux" mécanos cataloguent vite les jeunes quand ils les voient taquiner le mulot, même si j'ai encore tellement de chose à apprendre sur Catia...), j'ai envie de faire un peu évoluer les choses. Nous travaillons sur quasiment le même type d'instrumentation : c'est pourquoi mettre en place des outils automatisés me semble être une bonne idée...

Je sent que ça va me titiller et que je vais finir par plonger là dedans Very Happy
avatar
Threedots
Fédérateur
Fédérateur

Messages : 617
Date d'inscription : 16/09/2010
Age : 29
Localisation : Toulouse

Revenir en haut Aller en bas

Re: Section programmation CatScript, VBA, VB.NET...

Message par gautier2305 le Ven 17 Sep 2010 - 18:46

Sam, si tu veux apprendre je te conseille un petit truc, c'est d'enregistrer une tache tout simple que tu fais, comme changer la couleur du fond et regarde le code qu'il t'a créer ca aide beaucoup, je fais encore souvent comme ca quand je bloque!
Pour enregistrer, tools/Macro/Start recording

_________________

gautier2305
Fédérateur
Fédérateur

Messages : 412
Date d'inscription : 03/09/2010
Age : 30
Localisation : Carvin(62)

Revenir en haut Aller en bas

Re: Section programmation CatScript, VBA, VB.NET...

Message par SamsGuamejy le Ven 17 Sep 2010 - 19:01

Salut Gautier,

c'est effectivement ce que je fais déjà mais tout ne s'enregistre pas dans la macro dès fois..

_________________
SamsGuamejy
CATIA V5 R20 Fr
Technicien BE R&D
http://www.arbodomia.fr

I7 Q740 2x1.73GHz _ 8Go Ram _ Win8.1 _ SSD 40Go
avatar
SamsGuamejy
Fédérateur
Fédérateur

Messages : 312
Date d'inscription : 14/09/2010
Age : 33
Localisation : Vendée (85) FRANCE

http://www.arbodomia.fr

Revenir en haut Aller en bas

Re: Section programmation CatScript, VBA, VB.NET...

Message par gautier2305 le Ven 17 Sep 2010 - 19:04

ouais ca c'est un peu embêtant!

_________________

gautier2305
Fédérateur
Fédérateur

Messages : 412
Date d'inscription : 03/09/2010
Age : 30
Localisation : Carvin(62)

Revenir en haut Aller en bas

Re: Section programmation CatScript, VBA, VB.NET...

Message par Threedots le Mar 28 Sep 2010 - 3:00

Salut,

Bon étant donné qu'il n'y a pas de section réservée, je post quelques questions macros ici :

Je suis en train d'essayer d'automatiser le processus de sauvegarde d'un product, afin d'en faire des sauvegardes pour figer les différentes releases et versions (en gros, un semblant de PDM, en simplifié).

Seulement il me manque certaines fonctions, et certains trucs accrochent un peu...

Voilà pour l'instant le code (que j'ai réussi à compiler en m'inspirant de plusieurs sources sur le net, merci à elles Smile ) qui permet de changer le nom de tous les products et parts composant le produit principal :

Code:
Private Sub CommandButton1_Click()

'Déclaration de la variable 'prefix'
Dim prefix As String

prefix = TextBox1.Value

'Début de la boucle de renommage
For Each ProductDocument In CATIA.Documents
Set Product = ProductDocument.Product
Product.PartNumber = prefix & Product.PartNumber
Product.Name = prefix & Product.Name
Next ProductDocument

Unload Me

End Sub

Un userform (composé d'une textbox et d'un bouton de commande) a été créé pour que l'utilisateur puisse renseigner le nom du préfixe qu'il veut pour sa sauvegarde (de la forme XXX_AAMMJJ pour notre boulot...), et tout fonctionne bien... ou presque.

Les fichiers sont renommés, mais pas les noms des instances (commande Product.Name). Je ne sais pas d'où ça peut venir...

En parallèle, je chercherai la traduction de l'outil "Gestion des enregistrement", afin d'essayer d'utiliser le code

Code:
CATIA.StartCommand "..."

Il me faudrait aussi les outils de "Propager le répertoire", et "appliquer le motif". Bien entendu, si vous avez déjà des codes VBA permettant de faire des sauvegardes, je suis preneur Wink

J'espère avoir été clair, à bientot, j'attends vos avis et vos questions si jamais !
avatar
Threedots
Fédérateur
Fédérateur

Messages : 617
Date d'inscription : 16/09/2010
Age : 29
Localisation : Toulouse

Revenir en haut Aller en bas

Re: Section programmation CatScript, VBA, VB.NET...

Message par tuxmickmac le Mar 28 Sep 2010 - 3:21

Salut Threedots,
l'erreur concernant le nom de l'instance est peut-être dût au fait que ton proct actif n'est pas en mode conception (DesignMode).

Une boucle Next comme ci-dessous est préférable : la macro ne traite que le product actif et non tous les composants chargés en session.

Sub CATMain()
'
Dim productDocument1 As ProductDocument
Set productDocument1 = CATIA.ActiveDocument
'
Dim product1 As Product
Set product1 = productDocument1.Product
'
'passe le product actif en mode conception
product1.ApplyWorkMode DESIGN_MODE
'
Dim products1 As Products
Set products1 = product1.Products
'
'Scan tous les composants du product actif
For i = 1 to products1.Count
Set product2 = products1.Item(i)
'
toto = product2.PartNumber
product2.PartNumber = prefix & toto
titi = product2.Name
Product2.Name = prefix & titi
Next
'
End Sub
'
Pour faire comme la gestion des enregistrement il faut ouvrir les composants un par un les enregistrer individuellement puis les fermer.

tuxmickmac
actif
actif

Messages : 25
Date d'inscription : 14/09/2010
Age : 42
Localisation : nord

Revenir en haut Aller en bas

Re: Section programmation CatScript, VBA, VB.NET...

Message par Threedots le Mar 28 Sep 2010 - 20:04

Salut !

Merci Mick pour ce bout de programme. En fait, il renomme bien l'instance des produits du produits principal, cependant il y a quelques erreurs :
- le produit principal n'est pas renommé,
- les parts qui composent les sous-produits ne sont pas non plus affectées

Par contre c'est vrai, je n'avais pas fait attention que
Code:
For Each ProductDocument In CATIA.Documents
renommait tous les documents ouverts...

J'ai réussi à condenser nos deux programmes pour faire quelques chose qui marche pile comme je voudrais, mais qui obligerait l'utilisateur à fermer tous les fichiers qu'il ne veut pas renommer... Je sais pas si je ne vais pas tenter autre chose, car ça me parait un poil contraignant, non ? Wink

Pour les enregistrements, je vais plancher dessus juste après, je vous tiendrai au courant.

Ludo
avatar
Threedots
Fédérateur
Fédérateur

Messages : 617
Date d'inscription : 16/09/2010
Age : 29
Localisation : Toulouse

Revenir en haut Aller en bas

Re: Section programmation CatScript, VBA, VB.NET...

Message par Threedots le Mar 28 Sep 2010 - 20:14

Je vous met le code quand même... Je rappelle comment il est utilisé : un userform avec une textbox1 et un bouton (CommandButton1).

Code:
Private Sub CommandButton1_Click()
'
'Déclaration de la variable 'prefix'
Dim prefix As String
'
'Vérification que 'prefix' n'est pas égale à la valeur par défaut
If TextBox1.Value = "XXX_AAMMJJ_" Then
  MsgBox ("The prefix has not been chosen. Please don't let the default value.")
  Exit Sub
Else
  prefix = TextBox1.Value
End If
'
'Ici il faut insérer des msgbox ou userform pour avertir l'utilisateur de fermer les autres documents
For Each ProductDocument In CATIA.Documents
'
'Une erreur apparait à la fin du programme, bien que celui-ci se soit executé correctement... Enlevez "On Error..." pour voir d'où ça vient, je ne pense pas que ce soit trop grave
On Error Resume Next
'
Set Product = ProductDocument.Product
'
'Ici on renomme le PartNumber : permet d'atteindre le produit principal
Product.PartNumber = prefix & Product.PartNumber
'
Product.ApplyWorkMode DESIGN_MODE
Dim products1 As Products
Set products1 = Product.Products
'
'Boucle permettant de renommer l'instance
For i = 1 To products1.Count
Set Product2 = products1.Item(i)
'
merci_mick = Product2.Name
Product2.Name = prefix & merci_mick
'
Next
'
Next ProductDocument
'
Unload Me
'
End Sub

Voilou


Dernière édition par Threedots le Mer 29 Sep 2010 - 3:25, édité 1 fois (Raison : Yavais une ligne en commentaire alors qu'elle ne devais pas y être (commentée pour tests ^^))
avatar
Threedots
Fédérateur
Fédérateur

Messages : 617
Date d'inscription : 16/09/2010
Age : 29
Localisation : Toulouse

Revenir en haut Aller en bas

Re: Section programmation CatScript, VBA, VB.NET...

Message par gautier2305 le Mar 28 Sep 2010 - 21:39

Merci de mettre ton code source à disposition!!!

Bravo à vous!!

_________________

gautier2305
Fédérateur
Fédérateur

Messages : 412
Date d'inscription : 03/09/2010
Age : 30
Localisation : Carvin(62)

Revenir en haut Aller en bas

Re: Section programmation CatScript, VBA, VB.NET...

Message par tuxmickmac le Mar 28 Sep 2010 - 21:48

Pour ouvrir un composant et le sauvegarder :
Code:
Set documents10 = CATIA.Documents
'
Set titi = productC.ReferenceProduct
   set lepar = titi.parent
   REF = lepar.fullname
   Set productDocument10 = documents10.Open(REF)
   Set productDocument10 = CATIA.ActiveDocument
   productDocument10.SaveAs "C:\Documents and Settings\mapart.CATPart"
   productDocument10.Close

tuxmickmac
actif
actif

Messages : 25
Date d'inscription : 14/09/2010
Age : 42
Localisation : nord

Revenir en haut Aller en bas

Re: Section programmation CatScript, VBA, VB.NET...

Message par tuxmickmac le Mar 28 Sep 2010 - 21:51

pour désactiver les alertes catia du style :"voulez vous vraiment écraser..."
Code:
Sub CATMain()
CATIA.DisplayFileAlerts = False
.......
.......
........
CATIA.DisplayFileAlerts = True
End Sub

tuxmickmac
actif
actif

Messages : 25
Date d'inscription : 14/09/2010
Age : 42
Localisation : nord

Revenir en haut Aller en bas

Re: Section programmation CatScript, VBA, VB.NET...

Message par Threedots le Mer 29 Sep 2010 - 3:34

Bien le bonsoir,

Bon finalement je vais rester sur un truc un peu dangereux, mais comme ya que moi qui vais utiliser ça ici, j'essayerais de faire attention ^^'

Ca va se faire en :
- Gestion des enregistrement à la mano, propagation de répertoire (même si ça met tous les fichiers pèle-mèle dans un répertoire, c'est pour un sauvegarde donc...)
- Macro de renommage présentée précédemment, en faisant gaffe de ne garder en session que ce que l'on veut renommer...

Après, il y a possibilité de faire quelque chose de plus optimisé et plus propre, mais il me manque du temps et des compétences... J'essayerais de l'optimiser dans les temps creux...

Bonne soirée !

Ludo

PS : le programme présenté fonctionne bien, mais a un comportement un peu étrange : dans ses boucles, tout n'est pas très net (en mettant des msgbox pour vérifier l'état de variables, on voit qu'il y a un drôle de cheminement...). Mais à consommer sans modérations ! ! ^^
avatar
Threedots
Fédérateur
Fédérateur

Messages : 617
Date d'inscription : 16/09/2010
Age : 29
Localisation : Toulouse

Revenir en haut Aller en bas

Re: Section programmation CatScript, VBA, VB.NET...

Message par Threedots le Mer 29 Sep 2010 - 3:38

Et au fait, encore merci pour tes idées Mick !

Mais chez moi l'ouverture des pièces et leur sauvegarde n'a pas très bien marché (j'ai eu du mal a cerner les différents arguments et à les utiliser... en fait Rolling Eyes ). Si tu pouvais expliciter plus...

Quand tu auras du temps, ça ne presse plus trop vu que je n'automatise pas cette étape, mais la curiosité l'emporte ^^
avatar
Threedots
Fédérateur
Fédérateur

Messages : 617
Date d'inscription : 16/09/2010
Age : 29
Localisation : Toulouse

Revenir en haut Aller en bas

Re: Section programmation CatScript, VBA, VB.NET...

Message par SamsGuamejy le Mer 29 Sep 2010 - 19:23

Salut Ludo,

Perso j'utiliserai une vérif sur l'état de la sauvegarde :
Code:
CATIA.ActiveDocument.Saved
Pour éviter une boucle inutil qui ralentirais le processus...

_________________
SamsGuamejy
CATIA V5 R20 Fr
Technicien BE R&D
http://www.arbodomia.fr

I7 Q740 2x1.73GHz _ 8Go Ram _ Win8.1 _ SSD 40Go
avatar
SamsGuamejy
Fédérateur
Fédérateur

Messages : 312
Date d'inscription : 14/09/2010
Age : 33
Localisation : Vendée (85) FRANCE

http://www.arbodomia.fr

Revenir en haut Aller en bas

Re: Section programmation CatScript, VBA, VB.NET...

Message par Threedots le Mer 29 Sep 2010 - 19:35

Salut,

Oui je viens de rechercher quelle était cet argument... Pourquoi pas dans une boucle if...

Mais bon, faut que j'avance sur autre chose, je n'ai pas le temps de m'y pencher plus sur le moment Smile

A bientot,
avatar
Threedots
Fédérateur
Fédérateur

Messages : 617
Date d'inscription : 16/09/2010
Age : 29
Localisation : Toulouse

Revenir en haut Aller en bas

Ajout de paramètres en .NET

Message par SamsGuamejy le Jeu 30 Sep 2010 - 9:34

Bonjour à tous,

Mon problême est que je cherche à savoir comment rajouter un set de paramètre dans un corp de pièce défini. Mais déjà je me trouve comfronter à une erreur des les premières ligne.

Code:
Imports MECMOD
Imports INFITF

Module FunctionCATIA
    Dim CATIA As INFITF.Application
    Dim oDoc As Documents
    Dim oPart As Part


    Sub CatiaAjoutParametre(ByVal Name As String)
        oDoc = CATIA.ActiveDocument
        oPart = oDoc.Part
        oPart.Parameters.CreateSetOfParameters(oDoc.Part.Parameters.RootParameterSet)
        oPart.Parameters.CreateSetOfParameters(oPart.MainBody)
        oPart.Update()

    End Sub

End Module

Si quelqu'un pouvait m'aider ça serait top Wink
Source : archi-tech.dyndns.org

_________________
SamsGuamejy
CATIA V5 R20 Fr
Technicien BE R&D
http://www.arbodomia.fr

I7 Q740 2x1.73GHz _ 8Go Ram _ Win8.1 _ SSD 40Go
avatar
SamsGuamejy
Fédérateur
Fédérateur

Messages : 312
Date d'inscription : 14/09/2010
Age : 33
Localisation : Vendée (85) FRANCE

http://www.arbodomia.fr

Revenir en haut Aller en bas

Re: Section programmation CatScript, VBA, VB.NET...

Message par gautier2305 le Jeu 30 Sep 2010 - 21:25

j'ai presque réussi à te le faire sam, reste juste à lui dire dans quel body les mettre, je fais ca et je te le poste!

_________________

gautier2305
Fédérateur
Fédérateur

Messages : 412
Date d'inscription : 03/09/2010
Age : 30
Localisation : Carvin(62)

Revenir en haut Aller en bas

Re: Section programmation CatScript, VBA, VB.NET...

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 2 sur 5 Précédent  1, 2, 3, 4, 5  Suivant

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum