Créer une progress barre dans CATIA
+2
Guss_
xorman
6 participants
Page 1 sur 1
Créer une progress barre dans CATIA
Bonjour
Je voudrai créer un message avec une progress barre pour faire patienter l'utlisateur pendant que le macro CATIA s'exécute.
Des idées ?
Merci
Je voudrai créer un message avec une progress barre pour faire patienter l'utlisateur pendant que le macro CATIA s'exécute.
Des idées ?
Merci
Re: Créer une progress barre dans CATIA
Je pense qu'il faut appeler une bibliothèque content une progres bar car il n'y en a pas par défaut dans les objets vba de catia
Guss_- Admin
- Messages : 530
Date d'inscription : 08/01/2010
Re: Créer une progress barre dans CATIA
Bonsoir,
Je ne sais pas si ce sujet est toujours d'actualité, toujours est il que je fais comme ceci.
Je crée un Formulaire contenant un rectangle coloré.
J'appelle le formulaire en mode vbModeless
Ensuite je passe la valeur de la progression (de 1 à 100) a une procédure qui change la longueur du rectangle.
Il existe aussi une barre de progression intégrée a la barre d'état en bas de la fenêtre Catia.
Je n'ai pas le nom de la commande en tète.
Dès que je la retrouve, je partage.
Je ne sais pas si ce sujet est toujours d'actualité, toujours est il que je fais comme ceci.
Je crée un Formulaire contenant un rectangle coloré.
J'appelle le formulaire en mode vbModeless
- Code:
'Barre de progression
Load FRM_Progression
FRM_Progression.Show vbModeless
Ensuite je passe la valeur de la progression (de 1 à 100) a une procédure qui change la longueur du rectangle.
- Code:
ProgressBar (1)
- Code:
Public Sub ProgressBar(PBAvancement As Integer)
If PBAvancement > 100 Then PBAvancement = 100
FRM_Progression.Bar1.Width = PBAvancement * 3
End Sub
Il existe aussi une barre de progression intégrée a la barre d'état en bas de la fenêtre Catia.
Je n'ai pas le nom de la commande en tète.
Dès que je la retrouve, je partage.
Docserta- actif
- Messages : 47
Date d'inscription : 09/11/2011
Localisation : Rennes
Re: Créer une progress barre dans CATIA
C'est pas terrible , mais bon :
on voit la valeur changer et cela rassure l'utilisateur ...
- Code:
Sub CATMain()
For i = 1 To 1000
CATIA.StatusBar = CStr(i) + " texte ......."
Next
CATIA.StatusBar = "ended"
End Sub
on voit la valeur changer et cela rassure l'utilisateur ...
Invité- Invité
Re: Créer une progress barre dans CATIA
dans certain cas Philippe, des soft comme smarteam par exemple recouvre la status bar.
mike688- actif
- Messages : 257
Date d'inscription : 23/12/2009
Age : 43
Localisation : Portieux (88)
Re: Créer une progress barre dans CATIA
En même temps, je ne suis pas sur qu'il faille prendre smarteam pour exemple ... on ne compte plus le nombre de fois où on peut galérer car rien ne répond juste parce-que smarteam fait apparaître une fenêtre ... en arrière plan non visible dans la barre des tâches qui bloque toute interaction avec les autres fenêtres ...
Guss_- Admin
- Messages : 530
Date d'inscription : 08/01/2010
Re: Créer une progress barre dans CATIA
exactement le même problem !
des foi tu t'en sort par le gestionnaire de tache, en faisant un basculer vers...
mais c'est rare
des foi tu t'en sort par le gestionnaire de tache, en faisant un basculer vers...
mais c'est rare
mike688- actif
- Messages : 257
Date d'inscription : 23/12/2009
Age : 43
Localisation : Portieux (88)
Re: Créer une progress barre dans CATIA
Je suis d'accord avec Philippe,
Le problème de la StatutBar c'est qu'elle ne prend que du texte...
J'avais écris ce code comme pour toi avoir un indicateur de progression.
Le problème de la StatutBar c'est qu'elle ne prend que du texte...
J'avais écris ce code comme pour toi avoir un indicateur de progression.
- Code:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub StatusBar()
For i = 0 To 100
CATIA.StatusBar = ProgressBar(CInt(i))
Sleep 50 'Pour le test
Next
End Sub
Function ProgressBar(PerCent As Integer) As String
Select Case PerCent
Case 0 To 49
LeftBar = Chr(25)
For i = 1 To PerCent
LeftBar = LeftBar + Chr(16)
Next
For i = PerCent + 1 To 49
LeftBar = LeftBar + Chr(6)
Next
LeftBar = LeftBar + Chr(22)
For i = 51 To 99
LeftBar = LeftBar + Chr(6)
Next
ProgressBar = LeftBar + Chr(23)
Case 50 To 99
LeftBar = Chr(25)
For i = 1 To PerCent
LeftBar = LeftBar + Chr(16)
Next
For i = PerCent + 1 To 99
LeftBar = LeftBar + Chr(6)
Next
ProgressBar = LeftBar + Chr(23)
Case Else
LeftBar = Chr(25)
For i = 1 To 99
LeftBar = LeftBar + Chr(16)
Next
ProgressBar = LeftBar + Chr(23)
End Select
End Function
Re: Créer une progress barre dans CATIA
Comme je l'utilise souvent, j'ai créé une classe de ma barre de progression.
a associer avec un formulaire nommé FRM_Progression contenant un label nommé Bar1
La classe s'appelle de la façon suivante:
Pour modifier le texte de la barre d’entête du formulaire
Pour faire avancer la progression
Pour la masquer temporairement
Pour l'afficher temporairement
ne pas oublier de libérer la classe à la fin de la macro
- Code:
'*********************************************************************
'* Classe : ProgressBar
'*
'* Fonctions : Afficher et faire défiler une barre de progression
'* Modification : 18/08/15
'*
'**********************************************************************
Private Sub Class_initialize()
'affichage de la barre de progression
Load FRM_Progression
FRM_Progression.Show vbModeless
End Sub
Property Let Progession(ValProgress As Integer)
'Modifie la longueur de la barre de progression
If ValProgress > 100 Then PBAvancement = 100
If ValProgress < 1 Then ValProgress = 1
FRM_Progression.Bar1.Width = ValProgress * 3
End Property
Property Let Titre(StrTitre As String)
'Change le texte de titre du formulaire
FRM_Progression.Caption = StrTitre
End Property
Public Sub ProgressTitre(ValProgess As Integer, StrTitre As String)
' Modifie la longueur de la barre de progression et change le titre en une seule fonction
Titre = StrTitre
Progession = ValProgess
End Sub
Public Sub Cache()
'Masque la barre de progression
FRM_Progression.Hide
End Sub
Public Sub Affiche()
'Affiche la barre de progression
FRM_Progression.Show vbModeless
End Sub
Private Sub Class_Terminate()
'masque et décharge de la barre de progression
FRM_Progression.Hide
Unload FRM_Progression
End Sub
a associer avec un formulaire nommé FRM_Progression contenant un label nommé Bar1
La classe s'appelle de la façon suivante:
- Code:
Dim MaBarre as new Progressbar
Pour modifier le texte de la barre d’entête du formulaire
- Code:
MaBarre.titre = "texte du titre de la fenêtre....."
Pour faire avancer la progression
- Code:
MaBarre.Progression = 'valeur de 1 à 100'
Pour la masquer temporairement
- Code:
MaBarre.Cache
Pour l'afficher temporairement
- Code:
MaBarre.Affiche
ne pas oublier de libérer la classe à la fin de la macro
- Code:
Set MaBarre = Nothing
Docserta- actif
- Messages : 47
Date d'inscription : 09/11/2011
Localisation : Rennes
Re: Créer une progress barre dans CATIA
sympa ! merci de partager
Guss_- Admin
- Messages : 530
Date d'inscription : 08/01/2010
Re: Créer une progress barre dans CATIA
Il y a une petit erreur de frappe, je pense dans la définition d'une propriété de la classe
Property Let Progession => Property Let Progression
tu as oublié le R
Property Let Progession => Property Let Progression
tu as oublié le R
Guss_- Admin
- Messages : 530
Date d'inscription : 08/01/2010
Re: Créer une progress barre dans CATIA
Bien vu ! Je viens de m'en apercevoir et j'allais corriger le post
Docserta- actif
- Messages : 47
Date d'inscription : 09/11/2011
Localisation : Rennes
Re: Créer une progress barre dans CATIA
Je voudrais ajouter du texte avec un fond transparent sur la barre de progression. mais j'ai pas réussis.
si quelqu'un a une idée je suis preneur.
si quelqu'un a une idée je suis preneur.
Docserta- actif
- Messages : 47
Date d'inscription : 09/11/2011
Localisation : Rennes
Re: Créer une progress barre dans CATIA
Tu veux que la fenêtre soit transparente ou bien que l'arrière de la zone de texte ne cache pas d'autre éléments de la fenêtre ?
Guss_- Admin
- Messages : 530
Date d'inscription : 08/01/2010
Re: Créer une progress barre dans CATIA
Dans un Label tu as la propriété BackStyle qui peut prendre la valeur fmBackStyleTransparent
Guss_- Admin
- Messages : 530
Date d'inscription : 08/01/2010
Re: Créer une progress barre dans CATIA
C'est exactement ce que je cherchais.
Désolé pour le temps de réponse.
J’ajoute une fonction a la classe et je partage.
Désolé pour le temps de réponse.
J’ajoute une fonction a la classe et je partage.
Docserta- actif
- Messages : 47
Date d'inscription : 09/11/2011
Localisation : Rennes
Re: Créer une progress barre dans CATIA
Pas de problème
Si tu as des bouts de codes qui te sembles intéressants, tu peux les ajouter dans les Sujet en tête de la rubrique.
https://catiav5.forumactif.org/t1197-astuces-et-autres-routines-basiques-utiles-pour-la-creation-de-macros
Si tu as des bouts de codes qui te sembles intéressants, tu peux les ajouter dans les Sujet en tête de la rubrique.
https://catiav5.forumactif.org/t1197-astuces-et-autres-routines-basiques-utiles-pour-la-creation-de-macros
Guss_- Admin
- Messages : 530
Date d'inscription : 08/01/2010
Re: Créer une progress barre dans CATIA
Désolé pour le délai de réponse, j'étai en congés.
Voici les immages
Voici les immages
Docserta- actif
- Messages : 47
Date d'inscription : 09/11/2011
Localisation : Rennes
Re: Créer une progress barre dans CATIA
super ! la barre de progression fonctionne bien
Mais le plus dur c'est de la faire progresser car je ne connais pas le temps final de traitement de ma macro
MaBarre.Progression = 'valeur de 1 à 100'
Quelle est la meilleure méthode pour faire en sorte suive la progression de la barre soit calé sur le temps de résolution final ?
Mais le plus dur c'est de la faire progresser car je ne connais pas le temps final de traitement de ma macro
MaBarre.Progression = 'valeur de 1 à 100'
Quelle est la meilleure méthode pour faire en sorte suive la progression de la barre soit calé sur le temps de résolution final ?
Re: Créer une progress barre dans CATIA
Dans ta macro tu dois avoir des boucles de traitement qui vont s'incrémenté prend la valeur d'incrément de ta boucle la plus basse et tu sait en gros que si tout les boucles sont effectués c'est que tu as 100%
donc les valeur min et max sont les valeur min et max de condition de la boucle et la position de progression la valeur actuelle de la variable de condition de la boucle
donc les valeur min et max sont les valeur min et max de condition de la boucle et la position de progression la valeur actuelle de la variable de condition de la boucle
Guss_- Admin
- Messages : 530
Date d'inscription : 08/01/2010
Re: Créer une progress barre dans CATIA
Bonjour,
je cherche également à intégrer une progress bar dans ma macro CATIA mais je ne sais pas comment appeler la classe que tu as fait Docserta ni comprendre comment cela fonctionne.
Quelqu'un peut m'aider ?
je cherche également à intégrer une progress bar dans ma macro CATIA mais je ne sais pas comment appeler la classe que tu as fait Docserta ni comprendre comment cela fonctionne.
Quelqu'un peut m'aider ?
CharlyDuclos- actif
- Messages : 21
Date d'inscription : 31/10/2017
Localisation : Toulouse
Re: Créer une progress barre dans CATIA
Bonjour,
Tu commence par créer un formulaire (que tu nommes : Frm_Progression)
tu crée dedans un Label en forme de rectangle que tu nommes "Bar" (change les propriétés pour lui donner de la couleur)
tu crée ensuite un module de classe que tu nommes "ProgressBar"
copie/colle le code ci dessous dans le module de classe.
Enfin dans ton code, tu appelle la classe "Progressbar" de la facon suivante.
dim mBarre as progressbar
set mBarre = new progressebar
tu peux ensuite afficher, masquer et faire progresser la barre avec les commandes suivantes :
mBarre.affiche
mBarre.cache
mBarre.Progression = 25
mBarre.tritre = "veuillez patienter ..."
Bon courage.
Tu commence par créer un formulaire (que tu nommes : Frm_Progression)
tu crée dedans un Label en forme de rectangle que tu nommes "Bar" (change les propriétés pour lui donner de la couleur)
tu crée ensuite un module de classe que tu nommes "ProgressBar"
copie/colle le code ci dessous dans le module de classe.
- Code:
'*********************************************************************
'* Classe : ProgressBar
'*
'* Fonctions : Afficher et faire défiler une barre de progression
'* Modification : 18/08/15
'*
'**********************************************************************
Private Sub Class_initialize()
'affichage de la barre de progression
Load FRM_Progression
FRM_Progression.Show vbModeless
End Sub
Property Let Progession(ValProgress As Integer)
'Modifie la longueur de la barre de progression
If ValProgress > 100 Then PBAvancement = 100
If ValProgress < 1 Then ValProgress = 1
FRM_Progression.Bar1.Width = ValProgress * 3
End Property
Property Let Titre(StrTitre As String)
'Change le texte de titre du formulaire
FRM_Progression.Caption = StrTitre
End Property
Public Sub ProgressTitre(ValProgess As Integer, StrTitre As String)
' Modifie la longueur de la barre de progression et change le titre en une seule fonction
Titre = StrTitre
Progession = ValProgess
End Sub
Public Sub Cache()
'Masque la barre de progression
FRM_Progression.Hide
End Sub
Public Sub Affiche()
'Affiche la barre de progression
FRM_Progression.Show vbModeless
End Sub
Private Sub Class_Terminate()
'masque et décharge de la barre de progression
FRM_Progression.Hide
Unload FRM_Progression
End Sub
Enfin dans ton code, tu appelle la classe "Progressbar" de la facon suivante.
dim mBarre as progressbar
set mBarre = new progressebar
tu peux ensuite afficher, masquer et faire progresser la barre avec les commandes suivantes :
mBarre.affiche
mBarre.cache
mBarre.Progression = 25
mBarre.tritre = "veuillez patienter ..."
Bon courage.
Docserta- actif
- Messages : 47
Date d'inscription : 09/11/2011
Localisation : Rennes
Re: Créer une progress barre dans CATIA
J'ai un problème sur la ligne Set mBarre = New ProgressBar.
Il ne comprend pas le "FRM_Progression.Show vbModeless" dans le premier Sub du module de classe.
Une idée de pourquoi ?
Il ne comprend pas le "FRM_Progression.Show vbModeless" dans le premier Sub du module de classe.
Une idée de pourquoi ?
CharlyDuclos- actif
- Messages : 21
Date d'inscription : 31/10/2017
Localisation : Toulouse
Sujets similaires
» Créer et insérer une progress bar dans une macro
» Menu déroulant dans barre d'outils
» créer une bouteille avec catia
» créer une poche dans surface epaisse
» Créer une Fenêtre de contrôle pour pouvoir changer une dimensions et lancer une simulation dans le Workshop DMU kinematic
» Menu déroulant dans barre d'outils
» créer une bouteille avec catia
» créer une poche dans surface epaisse
» Créer une Fenêtre de contrôle pour pouvoir changer une dimensions et lancer une simulation dans le Workshop DMU kinematic
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum