Créer une progress barre dans CATIA

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

Créer une progress barre dans CATIA

Message par xorman le Mar 23 Sep 2014 - 4:23

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
avatar
xorman
actif
actif

Messages : 99
Date d'inscription : 06/09/2008
Age : 41
Localisation : Cherbourg

http://www.myimpression3d.com

Revenir en haut Aller en bas

Re: Créer une progress barre dans CATIA

Message par Guss_ le Jeu 25 Sep 2014 - 1:38

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_
Fédérateur
Fédérateur

Messages : 503
Date d'inscription : 08/01/2010

Revenir en haut Aller en bas

Re: Créer une progress barre dans CATIA

Message par Docserta le Jeu 30 Avr 2015 - 8:12

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

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.
avatar
Docserta
actif
actif

Messages : 45
Date d'inscription : 10/11/2011
Localisation : Rennes

Revenir en haut Aller en bas

Re: Créer une progress barre dans CATIA

Message par PhilippeC le Sam 2 Mai 2015 - 2:29

C'est pas terrible , mais bon :

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

PhilippeC
timide
timide

Messages : 13
Date d'inscription : 05/04/2015
Age : 59
Localisation : toulouse

Revenir en haut Aller en bas

Re: Créer une progress barre dans CATIA

Message par mike688 le Mer 6 Mai 2015 - 21:14

dans certain cas Philippe, des soft comme smarteam par exemple recouvre la status bar.
avatar
mike688
actif
actif

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

Revenir en haut Aller en bas

Re: Créer une progress barre dans CATIA

Message par Guss_ le Jeu 7 Mai 2015 - 21:13

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_
Fédérateur
Fédérateur

Messages : 503
Date d'inscription : 08/01/2010

Revenir en haut Aller en bas

Re: Créer une progress barre dans CATIA

Message par mike688 le Jeu 7 Mai 2015 - 22:23

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
avatar
mike688
actif
actif

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

Revenir en haut Aller en bas

Re: Créer une progress barre dans CATIA

Message par SamsGuamejy le Jeu 7 Mai 2015 - 22:39

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.

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

_________________
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: Créer une progress barre dans CATIA

Message par Docserta le Jeu 20 Aoû 2015 - 9:08

Comme je l'utilise souvent, j'ai créé une classe de ma barre de progression.

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
avatar
Docserta
actif
actif

Messages : 45
Date d'inscription : 10/11/2011
Localisation : Rennes

Revenir en haut Aller en bas

Re: Créer une progress barre dans CATIA

Message par Guss_ le Jeu 20 Aoû 2015 - 19:50

sympa ! merci de partager Smile

Guss_
Fédérateur
Fédérateur

Messages : 503
Date d'inscription : 08/01/2010

Revenir en haut Aller en bas

Re: Créer une progress barre dans CATIA

Message par Guss_ le Sam 22 Aoû 2015 - 2:12

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


Guss_
Fédérateur
Fédérateur

Messages : 503
Date d'inscription : 08/01/2010

Revenir en haut Aller en bas

Re: Créer une progress barre dans CATIA

Message par Docserta le Sam 22 Aoû 2015 - 2:22

Bien vu ! Je viens de m'en apercevoir et j'allais corriger le post Embarassed
avatar
Docserta
actif
actif

Messages : 45
Date d'inscription : 10/11/2011
Localisation : Rennes

Revenir en haut Aller en bas

Re: Créer une progress barre dans CATIA

Message par Docserta le Sam 22 Aoû 2015 - 2:24

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.
avatar
Docserta
actif
actif

Messages : 45
Date d'inscription : 10/11/2011
Localisation : Rennes

Revenir en haut Aller en bas

Re: Créer une progress barre dans CATIA

Message par Guss_ le Sam 22 Aoû 2015 - 3:03

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_
Fédérateur
Fédérateur

Messages : 503
Date d'inscription : 08/01/2010

Revenir en haut Aller en bas

Re: Créer une progress barre dans CATIA

Message par Guss_ le Sam 22 Aoû 2015 - 3:05

Dans un Label tu as la propriété BackStyle qui peut prendre la valeur fmBackStyleTransparent

Guss_
Fédérateur
Fédérateur

Messages : 503
Date d'inscription : 08/01/2010

Revenir en haut Aller en bas

Re: Créer une progress barre dans CATIA

Message par xorman le Mar 25 Aoû 2015 - 2:38

super le code docserta
merci pour le partage
avatar
xorman
actif
actif

Messages : 99
Date d'inscription : 06/09/2008
Age : 41
Localisation : Cherbourg

http://www.myimpression3d.com

Revenir en haut Aller en bas

Re: Créer une progress barre dans CATIA

Message par Docserta le Dim 6 Sep 2015 - 9:40

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.
avatar
Docserta
actif
actif

Messages : 45
Date d'inscription : 10/11/2011
Localisation : Rennes

Revenir en haut Aller en bas

Re: Créer une progress barre dans CATIA

Message par Guss_ le Ven 11 Sep 2015 - 21:09

Pas de problème Wink

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.

http://catiav5.forumactif.org/t1197-astuces-et-autres-routines-basiques-utiles-pour-la-creation-de-macros

Guss_
Fédérateur
Fédérateur

Messages : 503
Date d'inscription : 08/01/2010

Revenir en haut Aller en bas

Re: Créer une progress barre dans CATIA

Message par xorman le Jeu 15 Sep 2016 - 4:04

Bonjour
Avez vous une image de la barre de progression ?
merci
avatar
xorman
actif
actif

Messages : 99
Date d'inscription : 06/09/2008
Age : 41
Localisation : Cherbourg

http://www.myimpression3d.com

Revenir en haut Aller en bas

Re: Créer une progress barre dans CATIA

Message par Docserta le Mer 21 Sep 2016 - 22:11

Désolé pour le délai de réponse, j'étai en congés.

Voici les immages



avatar
Docserta
actif
actif

Messages : 45
Date d'inscription : 10/11/2011
Localisation : Rennes

Revenir en haut Aller en bas

Re: Créer une progress barre dans CATIA

Message par xorman le Jeu 22 Sep 2016 - 3:01

super Exclamation! 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 ?
avatar
xorman
actif
actif

Messages : 99
Date d'inscription : 06/09/2008
Age : 41
Localisation : Cherbourg

http://www.myimpression3d.com

Revenir en haut Aller en bas

Re: Créer une progress barre dans CATIA

Message par Guss_ le Ven 18 Nov 2016 - 22:23

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


Guss_
Fédérateur
Fédérateur

Messages : 503
Date d'inscription : 08/01/2010

Revenir en haut Aller en bas

Re: Créer une progress barre dans CATIA

Message par CharlyDuclos le Mar 28 Nov 2017 - 2:05

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 ?

CharlyDuclos
timide
timide

Messages : 13
Date d'inscription : 01/11/2017
Localisation : Toulouse

Revenir en haut Aller en bas

Re: Créer une progress barre dans CATIA

Message par Docserta le Mar 28 Nov 2017 - 3:05

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.

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.
avatar
Docserta
actif
actif

Messages : 45
Date d'inscription : 10/11/2011
Localisation : Rennes

Revenir en haut Aller en bas

Re: Créer une progress barre dans CATIA

Message par CharlyDuclos le Mar 28 Nov 2017 - 3:45

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 ?

CharlyDuclos
timide
timide

Messages : 13
Date d'inscription : 01/11/2017
Localisation : Toulouse

Revenir en haut Aller en bas

Re: Créer une progress barre dans CATIA

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

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