Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3551 connectés 

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  228  229  230  ..  233  234  235  236  237  238
Auteur Sujet :

[Support] Catia : trucs, astuces, conseils, aide

n°1172321
Arafat33
Posté le 20-02-2015 à 20:20:16  profilanswer
 

Reprise du message précédent :
Bonjour à tous,
 
Désolé je me permet de vous soumettre encore une questions sur les macros.
Je souhaiterai créer une macro CATScript en lien avec des fichiers XML.  
 
Actuellement nous avons une application qui extrait les caractéristiques de tolérancement d'un Drawing dans un fichier au format xml.
Voilà à peu près comment se compose chaque bloc du fichier (1 bloc par cote).
 
[...]
<CADAnnotation>
   <blabla>xxxx</blabla>
   <blabla2>xxxx</blabla2>
   ...
   <Key>false</Key>
   ...
   <ValueString>10 #A#</ValueString>
   ...
   <blablaN>xxxx</blablaN>
</CADAnnotation>
[...]
 
 
C'est pas mal, mais je souhaiterai en plus avoir une macro qui :
- Parcours le fichier xml souhaité (chemin indiqué via l'explorateur windows?)
- Check s'il y a le champ #A# dans la ligne "ValueString" contenue dans chaque bloc
- Si c'est le cas, elle positionne la ligne "Key" à true.
 
Sauriez-vous comment pourrais-je me lancer?  
Merci à vous :) :)
 

mood
Publicité
Posté le 20-02-2015 à 20:20:16  profilanswer
 

n°1172357
so_xyz
Posté le 26-02-2015 à 15:36:20  profilanswer
 

ptittom a écrit :


 
Bonjour,
 
Ci-dessous une proposition (oui, j'avais un peu de temps à perdre):
 

Code :
  1. Sub CATMain()
  2.     Dim cSizes As New Collection
  3.     Dim oProd As Product
  4.    
  5.     Set oProd = CATIA.ActiveDocument.Product
  6.    
  7.     TraverseProduct oProd, cSizes
  8.     DisplayTotalSize cSizes
  9.    
  10. End Sub
  11. Sub TraverseProduct(oProd As Product, cSizes As Collection)
  12.     Dim I As Integer
  13.     Dim cSubProds As Products
  14.     Set cSubProds = oProd.Products
  15.    
  16.     cSizes.Add GetSize(oProd)
  17.     If cSubProds.Count >= 1 Then
  18.         For I = 1 To cSubProds.Count
  19.             TraverseProduct cSubProds.Item(I), cSizes
  20.         Next
  21.     End If
  22. End Sub
  23. Function GetSize(oProd As Product) As Double
  24.     Dim RefDoc As Document
  25.     Set RefDoc = oProd.ReferenceProduct.Parent
  26.    
  27.     Dim fso As Object 'FileSystemObject
  28.     Dim fl As Object 'File
  29.     Set fso = CreateObject("scripting.FileSystemObject" ) ' late binding
  30.     Set fl = fso.GetFile(RefDoc.Path & "\" & RefDoc.Name)
  31.    
  32.     Dim LocalSize As Double
  33.     On Error Resume Next
  34.         LocalSize = fl.Size
  35.         If Err.Number <> 0 Then
  36.             LocalSize = 0
  37.         End If
  38.         On Error GoTo 0
  39.     LocalSize = LocalSize / 1024 'ko
  40.     'LocalSize = Round(LocalSize / 1024, 1) 'Mo
  41.     GetSize = LocalSize
  42.    
  43. End Function
  44. Sub DisplayTotalSize(cSizes As Collection)
  45.     Dim I As Integer
  46.     Dim Total As Double
  47.     For I = 1 To cSizes.Count
  48.         Total = Total + cSizes.Item(I)
  49.     Next
  50.    
  51.     Debug.Print "Size:" & Round(Total, 2)
  52. End Sub



 
 
Salut ptittom,
 
Tout d'abord merci pour ta contribution et désolé mais j'avais un problème de licence CATIA qui ne me permettait pas de tester ta solution.
 
Ensuite ta solution fonctionne parfaite j'ai rajouté un Msgbox getSize pour être sur et bingo.
 
Donc merci beaucoup.  :)  

n°1172359
Guss_
Posté le 26-02-2015 à 16:49:11  profilanswer
 

Bl@ckbird a écrit :

Bonjour, une petite question comment récupérer le user name de windows dans catia pour renseigner un parametre ?
Merci d'avance.

 


salut

 

j'utilise ça pour récupéré le chemin du appdata utilisateur, afin d'enregistrer des config liées à mes macros :

 
Code :
  1. Dim User_path As String, WshShell, WshSysEnv
  2.    
  3.     Set WshShell = CreateObject("WScript.Shell" )
  4.     Set WshSysEnv = WshShell.Environment("PROCESS" )
  5.     User_path = WshSysEnv("appdata" )
 

avec ça tu dois pouvoir en tirer le username je pense


Message édité par Guss_ le 26-02-2015 à 16:50:46
n°1172360
Bl@ckbird
Posté le 26-02-2015 à 20:24:26  profilanswer
 

Merci je regarde ça... :)

n°1172361
Bl@ckbird
Posté le 26-02-2015 à 20:36:38  profilanswer
 

Cool j'ai obtenu le chemin du "user " j'imagine quand manipulant la string je dois juste récupérer le "user", merci encore ;)  

n°1172363
alex21turb​o
Posté le 27-02-2015 à 08:19:28  profilanswer
 

salut tout le monde
j'aurais une ptite question. j'ai un lot de pièces 3d avec la cotation et tolerancement directement sur le 3D.
je n'arrive pas a faire apparaitre de manière automatique sur le 2D toute cette cotation.
c'est possible ou pas?

n°1172364
Guss_
Posté le 27-02-2015 à 16:03:10  profilanswer
 

Bl@ckbird a écrit :

Cool j'ai obtenu le chemin du "user " j'imagine quand manipulant la string je dois juste récupérer le "user", merci encore ;)  


 
Je pense même que en écrivant  
 
    User_path = WshSysEnv("user" )  
 
tu dois obtenir le login utilisateur

n°1172366
Bl@ckbird
Posté le 27-02-2015 à 16:38:47  profilanswer
 

Ben merci mais le paramètre reste vide :hello:

n°1172367
Guss_
Posté le 27-02-2015 à 17:11:38  profilanswer
 

http://vb.developpez.com/faq/vbs?page=Autres
 
visiblement c'est  
USERNAME
qu'il faut écrire ;)

n°1172368
Bl@ckbird
Posté le 27-02-2015 à 17:24:46  profilanswer
 

Merci Beaucoup Guss_ ça fonctionne , :pt1cable:  
 

mood
Publicité
Posté le 27-02-2015 à 17:24:46  profilanswer
 

n°1172370
jubeat
Mais pousse toi !
Posté le 27-02-2015 à 21:57:31  profilanswer
 

alex21turbo a écrit :

salut tout le monde
j'aurais une ptite question. j'ai un lot de pièces 3d avec la cotation et tolerancement directement sur le 3D.
je n'arrive pas a faire apparaitre de manière automatique sur le 2D toute cette cotation.
c'est possible ou pas?


Normalement, l'intérêt de faire de la cotation 3D, c'est justement de ne pas faire de 2D... :o
(pour le gain de temps, principalement)
 
Sinon, aucune idée si c'est possible, mais j'y crois moyen...


---------------
War Thunder : Karamazoff
n°1172373
Track39
Posté le 28-02-2015 à 14:38:45  profilanswer
 

Bonjour a tous ,
J'ai actuellement un problème avec Catia. Je cherche à modéliser un contact ponctuel entre 2 cylindres d'axe perpendiculaire mais la seule contrainte que je peux mettre entre les 2 cylindres est un contact linéique.
Avez vous une solution ?
Merci

n°1172376
Mr-blonde
Posté le 01-03-2015 à 11:41:33  profilanswer
 

alex21turbo a écrit :

salut tout le monde
j'aurais une ptite question. j'ai un lot de pièces 3d avec la cotation et tolerancement directement sur le 3D.
je n'arrive pas a faire apparaitre de manière automatique sur le 2D toute cette cotation.
c'est possible ou pas?


 
 
une fois tes vues placée dans le drawing, clic droit\propriété de la vue\ afficher les lignes  
 
Cdlt.

n°1172380
Arafat33
Posté le 02-03-2015 à 11:21:45  profilanswer
 

jubeat a écrit :


Normalement, l'intérêt de faire de la cotation 3D, c'est justement de ne pas faire de 2D... :o
(pour le gain de temps, principalement)
 
Sinon, aucune idée si c'est possible, mais j'y crois moyen...


 
Pour afficher dans un Draw les annotations FTA, tu peux insérer des "vues issues du 3D" (au lieu d'insérer des "vues de faces" ou autres)
Il faut ensuite sélectionner dans l'arborescence du 3D la vue créée sous FTA et contenant les annotations associées
 
 
 
 
 

n°1172381
Arafat33
Posté le 02-03-2015 à 11:22:40  profilanswer
 

jubeat a écrit :


Normalement, l'intérêt de faire de la cotation 3D, c'est justement de ne pas faire de 2D... :o
(pour le gain de temps, principalement)
 
Sinon, aucune idée si c'est possible, mais j'y crois moyen...


 
 
 
Pour afficher dans un Draw les annotations FTA, tu peux insérer des "vues issues du 3D" (au lieu d'insérer des "vues de faces" ou autres)
Il faut ensuite sélectionner dans l'arborescence du 3D la vue créée sous FTA et contenant les annotations associées
 
(Bug. Désolé si double post)
 
 

n°1172409
ptittom
Posté le 03-03-2015 à 08:51:24  profilanswer
 

Bl@ckbird a écrit :

Bonjour, une petite question comment récupérer le user name de windows dans catia pour renseigner un parametre ?
Merci d'avance.


 
Plus simple que la solution précédente:  

Code :
  1. CATIA.SystemService.Environ("username" )


Message édité par ptittom le 03-03-2015 à 08:58:00
n°1172410
ptittom
Posté le 03-03-2015 à 08:54:33  profilanswer
 

so_xyz a écrit :


 
 
Salut ptittom,
 
Tout d'abord merci pour ta contribution et désolé mais j'avais un problème de licence CATIA qui ne me permettait pas de tester ta solution.
 
Ensuite ta solution fonctionne parfaite j'ai rajouté un Msgbox getSize pour être sur et bingo.
 
Donc merci beaucoup.  :)  


 
Bonjour,
 
Il y a un bug: les pièces présentes plusieurs fois dans un product sont comptées plusieurs fois...
Il faudrait vérifier si la pièce est déjà présente avant de l'ajouter à la collection.
 
Content d'avoir pu te rendre service.

n°1172411
ptittom
Posté le 03-03-2015 à 08:57:10  profilanswer
 

Arafat33 a écrit :


 
Pour afficher dans un Draw les annotations FTA, tu peux insérer des "vues issues du 3D" (au lieu d'insérer des "vues de faces" ou autres)
Il faut ensuite sélectionner dans l'arborescence du 3D la vue créée sous FTA et contenant les annotations associées


 
+1
C'est effectivement la solution officielle pour réutiliser les informations FTA.

n°1172412
ptittom
Posté le 03-03-2015 à 09:08:42  profilanswer
 

Arafat33 a écrit :

Bonjour à tous,
 
C'est pas mal, mais je souhaiterai en plus avoir une macro qui :
- Parcours le fichier xml souhaité (chemin indiqué via l'explorateur windows?)
- Check s'il y a le champ #A# dans la ligne "ValueString" contenue dans chaque bloc
- Si c'est le cas, elle positionne la ligne "Key" à true.
 
Sauriez-vous comment pourrais-je me lancer?  
Merci à vous :) :)
 


 
Bonjour,
 
Je partirais sur la dll "Microsoft XML". Elle offre quelques fonctions pour parcourir un fichier XML.
Ensuite, il faut parcourir ton XML noeud par noeud en vérifiant ce que tu veux. Vu que ce n'est pas spécifique à CATIA, tu peux jeter un oeil aux tuto Excel traitant du sujet: exemple

n°1172525
Pims_UTT
Génoise confiture et chocolat
Posté le 09-03-2015 à 11:14:14  profilanswer
 

Amis Catiatistes bonjour,
 
Je travaille sur un script qui lance le 3DXML player et qui lui fait ouvrir un CGR. Ca marche très bien, mais j'aimerai pouvoir définir le titre de ma fenêtre dans la ligne de commande via mon script. Et c'est là que j'ai un soucis. Ce que j'ai essayé ne fonctionne pas et je ne trouve rien dans la doc.
 
Est-ce que l'un d'entre vous connaitrait une astuce? Comme c'est une commande à la D.assault, je suppose que ça doit être la même chose que sous Catia.
 
Pour info, voici un morceau de mon script:
 

Code :
  1. dim strVisuFullFileName as String
  2. dim strCommandLine as String
  3. strVisuFullFileName = "c:\Nicolas\Mon3D.cgr"
  4. strCommandLine = """C:\Program Files\Dassault Systemes\3D XML Player\win_b64\code\bin\3DXMLPlayer.exe"" """ & strVisuFullFileName & """ -env 3DXMLPlayer -direnv ""C:\Program Files\Dassault Systemes\3D XML Player\win_b64"" -title ""Toto"""
  5. id = shell(strCommandLine, ebNormalFocus)


 
Merci d'avance

n°1172559
malarox
Posté le 11-03-2015 à 10:45:44  profilanswer
 

Bonjour à tous !
 
Sauriez vous quelle est l'option à cocher pour que les couleurs suivent lorsqu'on fait une opé booléenne d'assemblage ?
 
(par exemple j'assemble un corps composé juste d'un trou afin de percer ma pièce [dit comme ça cela fait bizarre mais c'est pour faire des vis paramétrées] et je voudrai que le trou qui en résulte est la même couleur que le corps qui contient le trou [afin de pouvoir trier les trous dans un bloc (lisse, taraudé, précis, ect...)])
 
De plus si vous connaissez un un site ou si vous avez un pdf pour apprendre le paramétrage de fond en comble cela m’intéresse aussi car je n'ai trouvé que des bases et surtout, rien qui n'explique le fonctionnement et le but des résultats technologiques ...
 
Merci d'avance !

n°1172560
malarox
Posté le 11-03-2015 à 11:18:28  profilanswer
 

Re,  
 
quelques petites précision : J'ai trouvé l'option pour garder la couleur des composants assemblés ce qui fait que le trou crée à la couleur que je veux.
 
Voici la démarche que j'utilise du coup : je crée une goupille par exemple avec le corps de la goupille en corps principal et un corps secondaire nommé fixation qui servira à crée le trou. Mon corps "Fixation" possède donc simplement une fonction Trou. Je publie le corps secondaire et dans un assemblage j'assemble la publication a la pièce que je veux trouer; du coup, le trou est fait et bouge en fonction de la position de la goupille et de sa taille avec une simple mise a jour de l'assemblage.
 
Si je choisit une couleur pour le corps, les parois du trou auront la couleur du corps ce qui permet de différencier les trous alésés et les trous bruts de foret par exemple avec une couleur pour chaque.
 
Du coup ma question du message précédent à sa réponse mais je serais ravi de savoir si vous faites la même chose et si vous utilisez la même méthode ! =)
 
Les informations sur les paramètres, publications, résultats technologiques, ect... m’intéressent toujours cependant =)
 
Encore merci

n°1172570
so_xyz
Posté le 11-03-2015 à 16:17:49  profilanswer
 

Bonjour à tous,  
 
Je voulais savoir si des macro CATIA VBA développées sous CATIA R19 étaient compatible avec du CATIA R22.
 
On risque de changer nos config d'où ma question, même si j'imagine qu'elles ne seront pas compatibles  :sweat:  
 
Merci  
 

n°1172571
maximedrt
Posté le 11-03-2015 à 16:34:18  profilanswer
 

ptittom a écrit :


 
+1
C'est effectivement la solution officielle pour réutiliser les informations FTA.


+2  :)

n°1172573
Pims_UTT
Génoise confiture et chocolat
Posté le 11-03-2015 à 18:19:07  profilanswer
 

so_xyz a écrit :

Bonjour à tous,  
 
Je voulais savoir si des macro CATIA VBA développées sous CATIA R19 étaient compatible avec du CATIA R22.
 
On risque de changer nos config d'où ma question, même si j'imagine qu'elles ne seront pas compatibles  :sweat:  
 
Merci  
 


 
Normalement ça passe. Mais je te conseille quand même de les tester avec un poste en R22 avant de tout migrer, on sait jamais :o

n°1172581
ptittom
Posté le 12-03-2015 à 08:31:51  profilanswer
 

so_xyz a écrit :

Bonjour à tous,  
Je voulais savoir si des macro CATIA VBA développées sous CATIA R19 étaient compatible avec du CATIA R22.
On risque de changer nos config d'où ma question, même si j'imagine qu'elles ne seront pas compatibles  :sweat:  
Merci  


 
Bonjour,
 
R22 est encore en VBA6 32bits. Normalement, il ne devrait pas y avoir de problème.
 
À partir de R24, dassault est passé à VBA7 en 64bits. Certains objets ne fonctionnent plus (typiquement certains élément dans les userforms) et il faut modifier certaines références.
 

n°1172583
so_xyz
Posté le 12-03-2015 à 10:52:11  profilanswer
 

ptittom a écrit :


 
Bonjour,
 
R22 est encore en VBA6 32bits. Normalement, il ne devrait pas y avoir de problème.
 
À partir de R24, dassault est passé à VBA7 en 64bits. Certains objets ne fonctionnent plus (typiquement certains élément dans les userforms) et il faut modifier certaines références.
 


 
 
Merci pour ta réponse qui me redonne espoir  :)  ,
 
Je vais pas tarder à le savoir, je te dirais ce qu'il en est !

n°1172586
Guss_
Posté le 12-03-2015 à 11:31:51  profilanswer
 

Par contre pour la question de compatibilité, je rencontre des soucis pour le développement de nouvelles macros en ayant chargé des macros créés avec une révision précédente de catia  
 
Exemple en R21
- je peux charger une bibliothèque de macro crée en R19 l'utiliser la modifier.
- je peux charger une bibliothèque de macro crée en R21 l'utiliser la modifier.
- je ne peux pas charger une bibliothèque de macro crée en R19 si une bibliothèque R21 est déjà chargée, ou inversement.
 
à chaque changement de révision je suis obligé d'exporter tout mes modules indépendamment pour les réimporter dans une nouvelle bibliothèque. :fou:  
 
 
 
 
 

n°1172610
so_xyz
Posté le 13-03-2015 à 10:32:22  profilanswer
 

Bonjour à tous,
 
Voilà j'essaye de récupérer le nom de la session windows qui est active afin de rendre une macro utilisable sur différentes sessions
Pour simplifier ma macro, elle ouvre juste un fichier bien précis stocké sur le bureau de la session.
 
J'ai récupéré un code pour avoir la variable Username mais je n'arrive pas à l'intégrer dans la suite de mon code.
 
Ci dessous le code :
 

Code :
  1. Sub VariablesEnvironnement()
  2. Dim i As Integer, sEnv As String
  3. Dim Pos As Integer
  4.     ActiveWorkbook.Worksheets.Add
  5.     i = 1
  6.     Do
  7.         sEnv = Environ(i)
  8.         If Len(sEnv) = 0 Then Exit Do
  9.         Pos = InStr(Environ(i), "=" )
  10.         Cells(i, 1) = Left(sEnv, Pos - 1)
  11.         Cells(i, 2) = Right(sEnv, Len(sEnv) - Pos)
  12.         i = i + 1
  13.     Loop
  14.     MsgBox Environ("USERNAME" )
  15. '## Opening of Excel
  16.        
  17.         Set oExcel = CreateObject("Excel.Application" )
  18.         If Err.Number <> 0 Then
  19.             Set oExcel = CreateObject("Excel.Application" )
  20.             oExcel.Visible = True
  21.         End If
  22.         oExcel.Visible = True
  23. ------------------------------------------------------------------------------------------------------------------------------------
  24.         Set oBook = oExcel.Workbooks.Open("C:\User1234\Destock\MonFichierExcel" )
  25.         'Ici je souhaiterais au lieu d'avoir User1234, la variable Username pour avoir : ("C:Username\Destock\MonFichierExcel" )
  26. ------------------------------------------------------------------------------------------------------------------------------------
  27.         Set wbks = oExcel.ActiveWorkbook
  28.         Set oSheet = oBook.ActiveSheet
  29. '## Display the Excel
  30.        
  31.         oExcel.Visible = True
  32. End Sub


 
En espérant avoir été clair,  :)  
 
Si quelqu'un a une idée, je suis preneur
 
Bonne journée

n°1172635
ptittom
Posté le 15-03-2015 à 10:06:02  profilanswer
 

Guss_ a écrit :

Par contre pour la question de compatibilité, je rencontre des soucis pour le développement de nouvelles macros en ayant chargé des macros créés avec une révision précédente de catia  
 
Exemple en R21
- je peux charger une bibliothèque de macro crée en R19 l'utiliser la modifier.
- je peux charger une bibliothèque de macro crée en R21 l'utiliser la modifier.
- je ne peux pas charger une bibliothèque de macro crée en R19 si une bibliothèque R21 est déjà chargée, ou inversement.
 
à chaque changement de révision je suis obligé d'exporter tout mes modules indépendamment pour les réimporter dans une nouvelle bibliothèque. :fou:  


 
Bonjour,
 
Je ne connais pas le phénomène mais j'ai eu quelque chose de similaire lors du passage de R16 à R19. Certaines macros ne pouvaient pas être éditées: fnêtre simplement grise, sans code, userform ou autre. Au final, j'ai trouvé que les références étaient en cause: si toutes les références par défaut étaient sélectionnées, le problème survenait. J'ai pu m'en sortir en éditant en R16 et en ne sélectionnant que les références nécessaire (en général 4-5 par macro, selon ce que l'on fait). C'est peut être un piste pour toi ?

n°1172636
ptittom
Posté le 15-03-2015 à 10:11:32  profilanswer
 

so_xyz a écrit :

Bonjour à tous,
 
Voilà j'essaye de récupérer le nom de la session windows qui est active afin de rendre une macro utilisable sur différentes sessions
Pour simplifier ma macro, elle ouvre juste un fichier bien précis stocké sur le bureau de la session.


 
Bonjour,
 
C'est du Excel pur et dur ?
Avec CATIA, j'utilise ce que j'ai cité précédemment: CATIA.SystemService.Environ("username" )
 
Sinon, ton code me semble étrange: tu utilises des fonctions excel avant de démarrer Excel... C'est pour avoir une deuxième fenêtre ?

n°1172644
so_xyz
Posté le 16-03-2015 à 07:51:12  profilanswer
 

ptittom a écrit :


 
Bonjour,
 
C'est du Excel pur et dur ?
Avec CATIA, j'utilise ce que j'ai cité précédemment: CATIA.SystemService.Environ("username" )
 
Sinon, ton code me semble étrange: tu utilises des fonctions excel avant de démarrer Excel... C'est pour avoir une deuxième fenêtre ?


 
Bonjour,
 
Oui c'est du Excel, et oui c'était pour ouvrir un 2ème excel mais tu as raison dans mon problème ce n'est pas nécessaire...
En faite, je veux utiliser ma macro sur différentes stations qui ont donc chacun leur "Username"
Dans cette macro, j'ouvre un fichier qui est stocké sur le bureau, dans l'adresse du type :  
"C:\User1234\Destock\MonFichierExcel"
"C:\User1235\Destock\MonFichierExcel"
"C:\User1236\Destock\MonFichierExcel", seul la partie User1234 change.
 
Ce que je voulais faire c'est récupérer l'username, le garder en mémoire pour l'utiliser par la suite afin de mettre automatiquement cette ligne :
        Set oBook = oExcel.Workbooks.Open("C:\User1234\Destock\MonFichierExcel" )
 
J'ai essayé sans conviction en remplacant le User1234 par USERNAME mais cela ne fonctionne pas
Je ne sais pas si c'est possible...
 

Code :
  1. Sub VariablesEnvironnement()
  2. Dim i As Integer, sEnv As String
  3.     MsgBox Environ("USERNAME" )
  4. '## Opening of Excel
  5.      
  6.         Set oExcel = CreateObject("Excel.Application" )
  7.         If Err.Number <> 0 Then
  8.             Set oExcel = CreateObject("Excel.Application" )
  9.             oExcel.Visible = True
  10.         End If
  11.         oExcel.Visible = True
  12. ------------------------------------------------------------------------------------------------------------------------------------
  13.         Set oBook = oExcel.Workbooks.Open("C:\User1234\Destock\MonFichierExcel" )
  14.         'Ici je souhaiterais au lieu d'avoir User1234, la variable Username pour avoir : ("C:Username\Destock\MonFichierExcel" )
  15. ------------------------------------------------------------------------------------------------------------------------------------
  16.         Set wbks = oExcel.ActiveWorkbook
  17.         Set oSheet = oBook.ActiveSheet
  18. '## Display the Excel
  19.      
  20.         oExcel.Visible = True
  21. End Sub


 
Si quelqu'un a une idée,
 
Merci beaucoup

n°1172645
Guss_
Posté le 16-03-2015 à 11:24:18  profilanswer
 

ptittom a écrit :


 
Bonjour,
 
Je ne connais pas le phénomène mais j'ai eu quelque chose de similaire lors du passage de R16 à R19. Certaines macros ne pouvaient pas être éditées: fnêtre simplement grise, sans code, userform ou autre. Au final, j'ai trouvé que les références étaient en cause: si toutes les références par défaut étaient sélectionnées, le problème survenait. J'ai pu m'en sortir en éditant en R16 et en ne sélectionnant que les références nécessaire (en général 4-5 par macro, selon ce que l'on fait). C'est peut être un piste pour toi ?


 
Je regarderais les références. Mais en général, ça me met en vrac VBA lorsque j'ai le soucis  ("module not found", "out of memory", fenêtre grisée sans rien dedans dans l'éditeur, ou encore rien ne se passe lorsque le lance une macro)

n°1172646
so_xyz
Posté le 16-03-2015 à 11:58:33  profilanswer
 

J'ai trouvé une solution, je la partage si ça peut servir à quelqu'un :
 

Code :
  1. sUser = Environ("USERNAME" )
  2. '## Opening of Excel
  3.    Set oExcel = CreateObject("Excel.Application" )
  4.    If Err.Number <> 0 Then
  5.        Set oExcel = CreateObject("Excel.Application" )
  6.        oExcel.Visible = True
  7.    End If
  8.    oExcel.Visible = True
  9.    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  10.    ' Ouvrir Fichier
  11.    Set oBook = oExcel.Workbooks.Open("C:\" & sUser & "\desktop\ModèleFichePièceV2.xlsm" )
  12.    Set oSheet = oBook.ActiveSheet


 
Merci à tous


Message édité par so_xyz le 16-03-2015 à 11:58:57
n°1172647
so_xyz
Posté le 16-03-2015 à 12:43:11  profilanswer
 

Bonjour à tous,
 
Je me retrouve avec une macro qui bien fonctionné jusqu'à ce matin :fou:
L'objectif était d'obtenir la valeur des différents paramètres créés sur CATIA ... au début tout est ok, mais depuis ce matin les valeurs des paramètres sont 1 ou 0 ... Je ne sais pas pourquoi je partage avec vous le code si quelqu'un a une idée
 

Code :
  1. '## Start CATIA
  2.  
  3.         Dim oDoc As Document
  4.         Dim oPart As Part
  5.        
  6.         On Error Resume Next
  7.         Set oDoc = CATIA.ActiveDocument
  8.         If Err.Number <> 0 Then
  9.             MsgBox "No Document opened"    'Verify if the document is open
  10.             Err.Clear
  11.             Exit Sub
  12.         End If
  13.         On Error GoTo 0
  14.        
  15.         If TypeName(oDoc) <> "PartDocument" Then
  16.             MsgBox "The active document is not a part"   'Verify if the doc is a CATIA Part or not
  17.             Exit Sub
  18.         End If
  19.        
  20.         Set oPart = oDoc.Part
  21.        
  22.         Dim partDocument1 As PartDocument
  23.         Set partDocument1 = CATIA.ActiveDocument
  24.        
  25.         Dim part1 As Part
  26.         Set part1 = partDocument1.Part
  27.    
  28.         part1.Update
  29.         Set parametersFP = part1.Parameters
  30.         Set instance = partDocument1.Product
  31.         Set analyse_instance = instance.Analyze
  32.         Set position_instance = instance.Position
  33.                  
  34.     'Declaration of the first parameter X
  35.         Dim X As Parameter
  36.     'Declaration of the second parameter Y
  37.         Dim Y As Parameter
  38.     'Declaration of the third parameter Z
  39.         Dim Z As Parameter
  40.     'Declaration of the fourth parameter SP
  41.         Dim SP As Parameter
  42.        
  43. '## Recuperation of PARAMETERS
  44.         Set partDocument1 = CATIA.ActiveDocument
  45.         Set part1 = partDocument1.Part
  46.         Set parameters1 = part1.Parameter
  47.        
  48.         Set mesure1 = parameters1.Item("X" )
  49.         Set Mesure2 = parameters1.Item("Y" )
  50.         Set Mesure3 = parameters1.Item("Z" )
  51.         Set Mesure4 = parameters1.Item("SP" )   'Seul ce paramètre est ok, ce qui est bizarre
  52.         Dim oSel As Selection
  53.         Set oSel = oDoc.Selection
  54.         oSel.Clear

n°1172655
ptittom
Posté le 16-03-2015 à 14:08:51  profilanswer
 

so_xyz a écrit :

Bonjour à tous,
 
Je me retrouve avec une macro qui bien fonctionné jusqu'à ce matin :fou:
L'objectif était d'obtenir la valeur des différents paramètres créés sur CATIA ... au début tout est ok, mais depuis ce matin les valeurs des paramètres sont 1 ou 0 ... Je ne sais pas pourquoi je partage avec vous le code si quelqu'un a une idée
 


 Bonjour,
 
Tu as bossé avec le macro recorder ? Il y a pas mal de déclaration en double ou dont tu ne te sers pas... Si je comprends ton code, tu veux récupérer les valeurs des paramètres X, Y, Z et SP contenu dans une part (pourquoi passes-tu par les instances d'ailleurs ?).

Code :
  1. Dim oDoc As Document
  2.         Dim oPart As Part
  3.        
  4.         On Error Resume Next
  5.         Set oDoc = CATIA.ActiveDocument
  6.         If Err.Number <> 0 Then
  7.             MsgBox "No Document opened"    'Verify if the document is open
  8.             Err.Clear
  9.             Exit Sub
  10.         End If
  11.         On Error GoTo 0
  12.        
  13.         If TypeName(oDoc) <> "PartDocument" Then
  14.             MsgBox "The active document is not a part"   'Verify if the doc is a CATIA Part or not
  15.             Exit Sub
  16.         End If
  17. Set oPart = oDoc.Part
  18. Dim cParameters As Parameters
  19. Set cParameters = oPart.Parameters 'ici il manque un s à la ligne 48.
  20. Debug.Print cParameters.Item("X" ).ValueAsString
  21. Debug.Print cParameters.Item("Y" ).ValueAsString
  22. Debug.Print cParameters.Item("Z" ).ValueAsString
  23. Debug.Print cParameters.Item("SP" ).ValueAsString

Message cité 1 fois
Message édité par ptittom le 16-03-2015 à 14:09:18
n°1172657
so_xyz
Posté le 16-03-2015 à 14:57:00  profilanswer
 

ptittom a écrit :


 Bonjour,
 
Tu as bossé avec le macro recorder ? Il y a pas mal de déclaration en double ou dont tu ne te sers pas... Si je comprends ton code, tu veux récupérer les valeurs des paramètres X, Y, Z et SP contenu dans une part (pourquoi passes-tu par les instances d'ailleurs ?).

Code :
  1. Dim oDoc As Document
  2.         Dim oPart As Part
  3.        
  4.         On Error Resume Next
  5.         Set oDoc = CATIA.ActiveDocument
  6.         If Err.Number <> 0 Then
  7.             MsgBox "No Document opened"    'Verify if the document is open
  8.             Err.Clear
  9.             Exit Sub
  10.         End If
  11.         On Error GoTo 0
  12.        
  13.         If TypeName(oDoc) <> "PartDocument" Then
  14.             MsgBox "The active document is not a part"   'Verify if the doc is a CATIA Part or not
  15.             Exit Sub
  16.         End If
  17. Set oPart = oDoc.Part
  18. Dim cParameters As Parameters
  19. Set cParameters = oPart.Parameters 'ici il manque un s à la ligne 48.
  20. Debug.Print cParameters.Item("X" ).ValueAsString
  21. Debug.Print cParameters.Item("Y" ).ValueAsString
  22. Debug.Print cParameters.Item("Z" ).ValueAsString
  23. Debug.Print cParameters.Item("SP" ).ValueAsString



 
 
Salut,
 
Merci pour ta réponse, Oui étant novice, je suis passé par l'enregistreur automatique de macro et par quelque forums... mais sinon tu as bien compris je veux "juste" récupérer mes paramètres X, Y, Z et SP pour les collés dans un fichier Excel,  
 
Ce que je ne comprend pas c'est que la valeur SP exportée est correcte alors que les paramètres X, Y et Z...

n°1172659
ptittom
Posté le 16-03-2015 à 15:11:38  profilanswer
 

C'est quel type de paramètre ? length ?
Mon code marche (enfin, pas de plantage ?)? Tu peux essayer de sélectionner les paramètres dans CATIa pour voir ce qui est lu.
 
Dim oSel As Selection
Set oSel = oDoc.Selection
oSel.Clear
oSel.Add cParameters.Item("X" )
 
Là, ton paramètre X devrait être sélectionné dans CATIA. Je soupconne la macro de lire la valeur X de l'axis system principal

Message cité 1 fois
Message édité par ptittom le 16-03-2015 à 15:14:56
n°1172661
so_xyz
Posté le 16-03-2015 à 15:28:41  profilanswer
 

ptittom a écrit :

C'est quel type de paramètre ? length ?
Mon code marche (enfin, pas de plantage ?)? Tu peux essayer de sélectionner les paramètres dans CATIa pour voir ce qui est lu.
 
Dim oSel As Selection
Set oSel = oDoc.Selection
oSel.Clear
oSel.Add cParameters.Item("X" )
 
Là, ton paramètre X devrait être sélectionné dans CATIA. Je soupconne la macro de lire la valeur X de l'axis system principal


 
Oui ce sont des longueurs (pourtant mon code fonctionné parfaitement jusqu'à ojd)
Par contre, désolé mais je n'ai pas compris ou je devais mettre le code que tu m'as passé..

n°1172723
ptittom
Posté le 18-03-2015 à 07:53:25  profilanswer
 

so_xyz a écrit :


 
Oui ce sont des longueurs (pourtant mon code fonctionné parfaitement jusqu'à ojd)
Par contre, désolé mais je n'ai pas compris ou je devais mettre le code que tu m'as passé..


Code :
  1. Dim oDoc As Document
  2.             Dim oPart As Part
  3.            Dim oSel As Selection
  4. Set oSel = oDoc.Selection
  5. oSel.Clear
  6.             On Error Resume Next
  7.             Set oDoc = CATIA.ActiveDocument
  8.             If Err.Number <> 0 Then
  9.                 MsgBox "No Document opened"    'Verify if the document is open
  10.                 Err.Clear
  11.                 Exit Sub
  12.             End If
  13.             On Error GoTo 0
  14.          
  15.             If TypeName(oDoc) <> "PartDocument" Then
  16.                 MsgBox "The active document is not a part"   'Verify if the doc is a CATIA Part or not
  17.                 Exit Sub
  18.             End If
  19.     Set oPart = oDoc.Part
  20.     Dim cParameters As Parameters
  21.     Set cParameters = oPart.Parameters 'ici il manque un s à la ligne 48.
  22. Dim MyParameter As Parameter
  23. Set MyParameter = cParameters.Item("X" )
  24. oSel.Add MyParameter 'voir dans CATIA ce qui est sélectionné.
  25. Debug.Print MyParameter.Item("X" ).ValueAsString

n°1172740
arno894
Posté le 18-03-2015 à 13:39:07  profilanswer
 

Bonjour,
 
Dans une macro, je me suis créé un fichier log où j'écris différentes erreurs.
Je souhaite ouvrir ce fichier txt une fois que ma macro est terminée. Si quelqu'un a une idée et peut m'expliquer comment faire.
 
Merci

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  228  229  230  ..  233  234  235  236  237  238

Aller à :
Ajouter une réponse
 

Sujets relatifs
Transfert de donnees 3D texturees entre Catia et 3DSMAX6[Blender] Besoin d'aide !
De l'aide sur une Recherche..:: Topic des Publivores ::..
[Toshop] Besoin d'aide pour faire un dégradéCatia - Commande pour masquer tous les plans?!!!
Conseils / remarques sur ma maquette (site geo expert)topic unique de l' acréatique-chronique
[REGLE][FLASH]Demande de conseils 
Plus de sujets relatifs à : [Support] Catia : trucs, astuces, conseils, aide


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)