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

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  222  223  224  ..  233  234  235  236  237  238
Auteur Sujet :

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

n°1167777
clem200
Posté le 27-06-2014 à 09:03:25  profilanswer
 

Reprise du message précédent :

Citation :

J'ignore pourquoi tes macros de vérifications ne sont pas dans le même projet VBA, ce serait peur être plus simple à gérer. Tu pourrais caser tes vérifications dans des routine Sub ou dans des modules appartenant au projet principal.


J'ai bien tout dans le même projet Catia. C'est juste que je commence seulement à apprendre le passage d'argument d'une sub à une autre ;)
 
En tout cas merci :) j'avais pourtant essayé ça mais avec moi ça marchait pas.
 
PS : j'ai d'ailleurs mes 1er problèmes de passage d'arguments .... je veux déclarer la part active pour que la macro que j'appelle puisse lire sa description mais il bloque à l'encadré noir avec un "Object doesn't support this property". J'ai essayé de mettre oDoc bien sur mais ça ne fonctionne pas pour la macro que j'apelle.
 
http://img4.hostingpics.net/pics/573186Sanstitre2.png

Message cité 1 fois
Message édité par clem200 le 27-06-2014 à 15:32:13
mood
Publicité
Posté le 27-06-2014 à 09:03:25  profilanswer
 

n°1167779
HPIR40
Posté le 27-06-2014 à 11:21:18  profilanswer
 

HPIR40 a écrit :

Bonjour
 
c'est du LUM et pour la version de catia c'est V5-R19
 
Edit: ca fonctionne, j'ai rebooté la machine et le miracle a eu lieu .... allelouiaaa ^^
 
Désolé pour le dérangement


 
Bon ben fausse joie
 
ce matin rebelotte Catia ne fonctionne plus et la rien a faire
 
J'ai donc totalement desinstallé CATIA, j'ai reinstallé donc à neuf le programme et voila ce qu'il me sort quand je le démarre
 
http://www.hostingpics.net/viewer. [...] ecatia.jpg
 
donc pas de soucis je lui dit ok et voila le resultat
 
http://www.hostingpics.net/viewer. [...] icence.jpg
 
Bon ok puisque tu le prend comme cela je vais donc dans setting management pour lui dire ou trouver la licence et la paf
 
http://www.hostingpics.net/viewer. [...] tcatia.jpg
 
Dans la boite j'ai un CD nommé IBM licence Use management (LUM).  
 
Ca a été installé par l'ancien admin sur le serveur de licence, mais je ne l'ai pas installé sur la machine cliente, c'est une erreur??
 
C'est ma première installation de Catia et c'est une sacré m***, Ansys ou abaqus sont plus faciles à installer
 
Merci pour votre aide

n°1167780
Guss_
Posté le 27-06-2014 à 11:42:54  profilanswer
 

Doit y avoir un moment où tu paramètre le chemin du serveur de licence. Mais bon sur ce sujet je n'en sais pas plus, j'ai pas la main sur c'est chose là au boulot

n°1167781
HPIR40
Posté le 27-06-2014 à 11:48:28  profilanswer
 

ben même pas c'est ca le pire
 
sur les autres logiciels a l'install, tu lui dis ben voila l'ip ou le hostname du gestionnaire de licence et basta debrouille toi avec lui.
 
Avec Catia ce n'est pas comme cela :kaola:  
 
Et donc voila pourquoi je galere :fou:

n°1167782
HPIR40
Posté le 27-06-2014 à 11:55:59  profilanswer
 

Bon ben c'est ok ca fonctionne ouf :bounce:  
 
Alors, comme cela il y aura une trace quelque part sur le net (on ne sais jamais)
 
il faut installer en plus le cd IBM licence use management (LUM) sur le poste client
 
Ensuite programme/runtime/configuration tool
 
la dedans selectionner uniquement network licence client, suite, suite et a un moment donné il demande le hostname du gestionnaire de licence.
 
Simplement entrer cette information, et fermer la fenetre, qui demande confirmation de l'enregistrement de la configuration, qu'il faut valider bien entendu.
 
Ensuite ouvrir tout à fait normalement catia et a ce moment la ca fonctionne parfaitement dés le premier essai  :bounce:  
 
Voila.
 

Message cité 1 fois
Message édité par HPIR40 le 27-06-2014 à 12:00:41
n°1167785
ptittom
Posté le 27-06-2014 à 18:12:28  profilanswer
 

HPIR40 a écrit :

Bon ben c'est ok ca fonctionne ouf :bounce:

 

Alors, comme cela il y aura une trace quelque part sur le net (on ne sais jamais)

 

il faut installer en plus le cd IBM licence use management (LUM) sur le poste client

 

Ensuite programme/runtime/configuration tool

 

la dedans selectionner uniquement network licence client, suite, suite et a un moment donné il demande le hostname du gestionnaire de licence.

 

Simplement entrer cette information, et fermer la fenetre, qui demande confirmation de l'enregistrement de la configuration, qu'il faut valider bien entendu.

 

Ensuite ouvrir tout à fait normalement catia et a ce moment la ca fonctionne parfaitement dés le premier essai  :bounce:

 

Voila.

 


 

En fait, le client LUM n'est pas obligatoire. Il suffit de créer un fichier ILS4.ini dans le dossier C:\ProgramData\IBM\LUM avec la bonne structure. Ce fichier contient les informations nécessaires pour les serveurs de license à disposition. Le client LUM crée ce fichier ILS4 et propose en plus une interface pour voir quelles licenses sont dispo sur le serveur. Ca peut être pratique pour trouver qui squate une license bien précise.

 

Message cité 1 fois
Message édité par ptittom le 27-06-2014 à 18:16:16
n°1167786
ptittom
Posté le 27-06-2014 à 18:15:29  profilanswer
 

clem200 a écrit :

PS : j'ai d'ailleurs mes 1er problèmes de passage d'arguments .... je veux déclarer la part active pour que la macro que j'appelle puisse lire sa description mais il bloque à l'encadré noir avec un "Object doesn't support this property". J'ai essayé de mettre oDoc bien sur mais ça ne fonctionne pas pour la macro que j'apelle.


 
Tu dois prendre la part du document que tu es entrain de regarder

Code :
  1. Set oPart = oDoc.Part


 
Si c'est un product:

Code :
  1. Dim oProduct As Product
  2. Set oProduct = oDoc.Product

n°1167794
HPIR40
Posté le 28-06-2014 à 08:32:08  profilanswer
 

ptittom a écrit :


 
En fait, le client LUM n'est pas obligatoire. Il suffit de créer un fichier ILS4.ini dans le dossier C:\ProgramData\IBM\LUM avec la bonne structure. Ce fichier contient les informations nécessaires pour les serveurs de license à disposition. Le client LUM crée ce fichier ILS4 et propose en plus une interface pour voir quelles licenses sont dispo sur le serveur. Ca peut être pratique pour trouver qui squate une license bien précise.
 


 
Merci beaucoup, pour l'info ca va me simplifier la tache. Je vais creer ce foutu fichier ILS4.ini et le sauvegarder sur le serveur.  
 
Comme cela si j'ai besoin d'une nouvelle installation, je ferrais un simple copier coller.

n°1167914
malarox
Posté le 02-07-2014 à 08:59:07  profilanswer
 

Bonjour,
il y à une particularitée de Catia qui fait qu'en mode Drawing, avec la norme ISO, les côtes s'affichent arrondie avec deux chiffres après la virgule. Cependant ce n'est pas le cas pour les côtes à un chiffre après la virgule...  
Je m'explique : une côte de 1,586 s'affichera à 1,59 par défaut mais une côte de 1,596 s'affichera 1,6 => serait-il possible que cette dernière s'affiche à 1,60 (avec le zéro) par défaut ?
 
J'ai trouver une feinte pour l'instant: en passant les propriétés numériques (dans la barre d'outils avec le raccourcis pour changer le nombre de décimales) de NUM.DIMM [par défaut avec l'ISO] en ANS.DIMM le zéro s'affiche mais cela n'est pas automatique et il faut faire le changement pour chaque côtes.
 
Est-il donc possible de changer les standards Catia afin que le chiffre des centièmes s'affiche tout le temps (même pour le zéro) ?
 
[Au cas où certains se demande à quoi cela sert, j'en est besoin pour la cotation des plans au travail, pour les tolérances générales.
 
Merci d'avance!

n°1167915
ptittom
Posté le 02-07-2014 à 09:19:59  profilanswer
 

Bonjour,
 
J'ai un CATScript chez un client pour definir le nombre de décimales pour un CATDrawing.
En gros, la macro navigue dans toutes les pages, puis dans toutes les vues puis dans toutes les dimensions du drawing (boucle for... next à niveaux).
Ensuite, on utilise les méthodes SetFormatPrecision et SetFormatName de l'objet Dimension DrawingDimValue.
 
En gros pour chaque Dimension de chaque View de chaque Sheet

Code :
  1. Dim myValue As DrawingDimValue
  2. Set myValue = myDimension.GetValue
  3. myValue.SetFormatName 1, "ANS.DIMM"
  4. myValue.SetFormatPrecision 1, 0.01


 
edit: j'ai réécrit une version courte de la macro (en vba, il faut peut être faire quelques modif pour du CATscript ou du MSscript).

Code :
  1. Sub CATMain()
  2. Dim oDoc As DrawingDocument
  3. Dim oSheet As DrawingSheet
  4. Dim oView As DrawingView
  5. Dim I As Integer
  6. Dim oDim As DrawingDimension
  7. Dim oDimValue As DrawingDimValue
  8. Set oDoc = CATIA.ActiveDocument
  9. For Each oSheet In oDoc.Sheets
  10.     For Each oView In oSheet.Views
  11.         For I = 1 To oView.Dimensions.Count
  12.             Set oDim = oView.Dimensions.Item(I)
  13.             Set oDimValue = oDim.GetValue
  14.             oDimValue.SetFormatName 1, "ANS.DIMM"
  15.             oDimValue.SetFormatPrecision 1, 0.01
  16.         Next
  17.     Next
  18. Next
  19. End Sub


 
Sinon, on peut chercher toutes les dimensions manuellement (Ctrl+F, ) et definir le format et la précision en une fois.
 
Pour définir le format et la précision par défaut, il faudrait farfouiller dans le standard ISO. Pour ca, il faut démarrer CATIA en mode admin (pas juste en tant qu'administrateur mais avec les bon arguments). Ce n'est pas forcément évident.


Message édité par ptittom le 02-07-2014 à 10:42:35
mood
Publicité
Posté le 02-07-2014 à 09:19:59  profilanswer
 

n°1167930
clem200
Posté le 02-07-2014 à 11:54:29  profilanswer
 

ptittom a écrit :


 
Tu dois prendre la part du document que tu es entrain de regarder

Code :
  1. Set oPart = oDoc.Part


 
Si c'est un product:

Code :
  1. Dim oProduct As Product
  2. Set oProduct = oDoc.Product



Merci beaucoup, c'est ça ! Je commence à bien comprendre le VBA mais ce genre de subtilité d'objet à déclarer me pose encore pas mal de problèmes.  
 
Normalement ma macro de vérification est presque terminé.  

n°1167937
clem200
Posté le 02-07-2014 à 15:23:55  profilanswer
 

Bonjour,  
 
Qu'est ce qui peut expliquer qu'avec l'éditeur VBA d'ouvert la macro fonctionne parfaitement (en faisant F5 ou F8) mais qu'avec le chemin "Outil => Macros => exécuter" rien ne se passe ?
 
PS : autant pour moi, faut juste que le code commence par "Sub catmain" obligatoirement apparemment.

Message cité 1 fois
Message édité par clem200 le 02-07-2014 à 15:56:56
n°1167974
ptittom
Posté le 03-07-2014 à 15:40:56  profilanswer
 

clem200 a écrit :

Bonjour,  
 
Qu'est ce qui peut expliquer qu'avec l'éditeur VBA d'ouvert la macro fonctionne parfaitement (en faisant F5 ou F8) mais qu'avec le chemin "Outil => Macros => exécuter" rien ne se passe ?
 
PS : autant pour moi, faut juste que le code commence par "Sub catmain" obligatoirement apparemment.


 
Exact. La routine principale doit être nommée CATMain()

n°1167988
thomas9180​0
Posté le 04-07-2014 à 00:29:23  profilanswer
 

Bonjour,
Je doit modifier une macro Catia pour faire un cartouche personnalise. Je voudrais connaitre une fonction permettant de tracer des fleches, ou a defaut, de tracer des formes geometriques (J'ai vu qu'il y avait une fonction pour tracer des cercles (Set circle = Fact.CreateClosedCircle(X, Y, R) ), j'aimerai trouver l'equivalent pour les triangles)
 
Merci d'avance, et merci pour ce forum ! On y apprend plein de choses !!
Thomas

n°1167991
ptittom
Posté le 04-07-2014 à 07:51:01  profilanswer
 

On peut passer par la collection Arrows de l'objet View (qui malheureusement n'existe pas pour l'objet View).
 
Un exemple qui devrait marcher pour un drawing avec au moins une view.

Code :
  1. Dim oView As DrawingView
  2. Set oView = CATIA.ActiveDocument.Sheets.Item(1).Views.Item(1)
  3. Dim oArrow As DrawingArrow
  4. Set oArrow = oView.Arrows.Add(50, 100, 150, 200)


 

n°1167994
clem200
Posté le 04-07-2014 à 09:42:58  profilanswer
 

Bonjour,  
 
L'une de mes dernières questions  ;)  
 
Je ne sais pas comment limiter une fonction recherche à la part active seulement. Je veux rechercher un sketch nommé "esquisse.37" mais seulement dans la Part que "j'étudie", cela permet de faire un message d'erreur part par part. Pour le moment la recherche fonctionne mais sur l'arbre complet.
 

Code :
  1. Dim cSel As Selection
  2.     Dim sSearch As String
  3.     Dim sSketchName As String
  4.    
  5.     Set oDoc = CATIA.ActiveDocument
  6.     Set cSel = oDoc.Selection
  7.     cSel.Clear
  8.    
  9.    
  10.     sSketchName = "esquisse.37"
  11.     sSearch = "CATPrtSearch.Sketch.Name=" & sSketchName & ",all"
  12.     cSel.Search sSearch
  13.    
  14.     If cSel.Count = 0 Then
  15.         MsgBox "Pas trouvé de sketch avec le nom:" & sSketchName
  16.     Else
  17.         MsgBox cSel.Count & " sketch(es) avec le nom " & sSketchName
  18.     End If


 
J'ai voulu remplacer la ligne 6 par "Set cSel = oPart.Selection" en sachant que Opart est la part active donné par la macro principale mais il aime pas ...


Message édité par clem200 le 04-07-2014 à 12:17:37
n°1167999
Guss_
Posté le 04-07-2014 à 13:43:40  profilanswer
 

Il aime pas, c'est à dire ? quel message d'erreur ?
 
Car effectivement si tu as exactement le même code mais qu'il n'y a que la ligne 6  où tu changes oDoc par oPart, il va gueuler car il ne sait pas ce que c'est oPart

n°1168000
clem200
Posté le 04-07-2014 à 14:35:35  profilanswer
 

Il me fait une erreur "Object doesn't support this property or method.  
 
Cette macro est appellé par une autre avec un passage d'argument. C'est vrai que je n'ai pas mis le tout début du code :  
 

Code :
  1. Public Sub esquisse2(ByVal oPart As Part)
  2. Dim cSel As Selection
  3.     Dim sSearch As String
  4.     Dim sSketchName As String
  5. .........................................


 
 


Message édité par clem200 le 04-07-2014 à 14:37:59
n°1168001
Guss_
Posté le 04-07-2014 à 15:12:18  profilanswer
 

supprime le " As Part"
 
ou alors c'est "as product" qu'il faut mettre

n°1168011
thomas9180​0
Posté le 04-07-2014 à 20:30:47  profilanswer
 

Merci ptittom pour ta réponse
 
Mais je me suis peut être mal exprimé. En fait, je dois reproduire un cartouche d'un autre logiciel de CAO à l'identique, et donc il faut que je mette des flèches dans le cadre extérieur. J'aurais donc besoin de pouvoir ajuster la taille et la forme de la flèche. C'est pour ca qu'insérer un triangle serait peut être plus simple au final. une fonction comme celle pour tracer les cercles serait parfaite.
 
Thomas

n°1168059
ptittom
Posté le 06-07-2014 à 20:27:50  profilanswer
 

thomas91800 a écrit :

Merci ptittom pour ta réponse

 

Mais je me suis peut être mal exprimé. En fait, je dois reproduire un cartouche d'un autre logiciel de CAO à l'identique, et donc il faut que je mette des flèches dans le cadre extérieur. J'aurais donc besoin de pouvoir ajuster la taille et la forme de la flèche. C'est pour ca qu'insérer un triangle serait peut être plus simple au final. une fonction comme celle pour tracer les cercles serait parfaite.

 

Thomas

 

Il n'y a pas de fonction pour les triangles. Il va falloir passer par des lignes.


Message édité par ptittom le 07-07-2014 à 07:49:07
n°1168060
ptittom
Posté le 06-07-2014 à 20:32:46  profilanswer
 

Bonjour,
 
L'objet selection n'est disponible que pour l'objet document. Par ailleurs, il n'est pas possible de déclarer plusieurs objet selection (pour ceux qui se demanderaient).
 
Pour chercher dans une part précise, il faut:
- vider la selection en cours
- ajouter la part souahitée
- faire la recherche dans la selection active.
 

Code :
  1. Dim cSel As Selection
  2.     Dim sSearch As String
  3.     Dim sSketchName As String
  4.    
  5.     Set oDoc = CATIA.ActiveDocument
  6.     Set cSel = oDoc.Selection
  7.     cSel.Clear
  8.    
  9.     cSel.Add MyProduct 'MyProduct est le product où ma part est incluse
  10.    
  11.     sSketchName = "esquisse.37"
  12.     sSearch = "CATPrtSearch.Sketch.Name=" & sSketchName & ",sel"
  13.     cSel.Search sSearch
  14.    
  15.     If cSel.Count = 0 Then
  16.         MsgBox "Pas trouvé de sketch avec le nom:" & sSketchName
  17.     Else
  18.         MsgBox cSel.Count & " sketch(es) avec le nom " & sSketchName
  19.     End If


 
Une remarque quand même: la fonction search de l'objet Selection n'est pas très rapide. Si tu sais qu'une esquisse nommée esquisse.37 doit se trouver dans le corps principal, tu peut peut être vérifier autrement si elle est présente en utilisant la gestion des erreurs (On Error...):

Code :
  1. Function IsMySketchThere (oPart As Part) As Boolean
  2. Dim oSketch As Sketch
  3. Dim oMainBody As Body
  4. Set oMainBody = oPart.MainBody 'PartBody toujours présent dans une part
  5. On Error Resume Next
  6. Set oSketch = oMainBody.Sketches.Item("esquisse.37" )
  7. If Err.Number <> 0 Then
  8.     MsgBox "Pas d'esquisse"
  9.     IsMySketchThere = False
  10. Else
  11.     MsgBox "esquisse trouvée"
  12.     IsMySketchThere = True
  13. End If
  14. Err.Clear
  15. On Error GoTo 0
  16. End Function


Message édité par ptittom le 07-07-2014 à 07:48:53
n°1168140
clem200
Posté le 08-07-2014 à 15:30:16  profilanswer
 

Je vais me servir du 2ème code qui fonctionne très bien. Un grand merci !  :D  
 
Pour info, même si sans tous le reste ça ne sert pas à grand chose, voici ma macro principal :  
 

Code :
  1. Sub catmain()
  2. Macro_de_vérification.Show
  3. Dim oDoc As Document
  4.        Dim DefName As String
  5.        Dim RefActivityName As String
  6.        RefActivityName = InputBox("Matricule (celui utilisé au démarrage de l'ordinateur)", "Matricule", DefName) 
  7.      
  8. Dim oProd As Product
  9. Dim ProductName As String
  10. Set oProd = CATIA.ActiveDocument.Product
  11. ProductName = oProd.Name
  12. For Each oDoc In CATIA.Documents
  13.    If TypeName(oDoc) = "PartDocument" Then
  14.  
  15.  
  16.     Dim oPart As Part
  17.     Set oPart = oDoc.Part
  18.                  Call description(oPart)
  19.                  Call mabec(oPart, RefActivityName)
  20.                  Call relation(oPart)
  21.                  Call esquisse(oPart)
  22.      
  23.    ElseIf TypeName(oDoc) = "ProductDocument" Then
  24.  
  25.      Dim oProduct As Product
  26.      Set oProduct = oDoc.Product
  27.    
  28.         If oProduct.Name = ProductName Then
  29.        
  30.         Else
  31.                 Call DescriptionProd(oProduct)
  32.                 Call RelationProd(oProduct)
  33.                 Call MabecProd(oProduct, RefActivityName)
  34.         End If
  35.          
  36.    Else
  37.  
  38.      
  39.    End If
  40.  
  41.              
  42. Next
  43.             Message = MsgBox("La vérifiction est terminée !", vbInformation, "Fin de la macro " )
  44.          
  45.            
  46. End Sub


Aujourd'hui je l'ai "amélioré" pour quelle ne traite pas le Product principal.
 
Maintenant qu'elle fonctionne le patron me demande d'avoir les résultats dans un tableur Excel ... Je vais le tuer !  :cry:  
Normalement je devrai m'en sortir, surtout que ptittom m'a montré comment ouvrir un tableur Excle depuis CATIA. Mais c'est chiant ...


Message édité par clem200 le 08-07-2014 à 15:33:29
n°1168141
ptittom
Posté le 08-07-2014 à 16:50:13  profilanswer
 

Ta macro planteras à la ligne 15 si tu n'as pas un product ouvert.
En général, je fais la phase d'initialisation dans une ou deux fonctions à part.

 
Code :
  1. Sub CATMain()
  2. ...
  3. Dim oDoc As Document
  4. Dim oProd As Product
  5. If GetoDoc(oDoc) = False then Exit Sub 'check if a document is opened
  6. If GetoProd(oProd) = False then Exit Sub 'check if a product is opened
  7. ...
  8. End Sub
  9. Function GetoDoc(oDoc As Document) As Boolean 'check if a document is opened
  10.     'Is a Document open ?
  11.     ' Yes -> True
  12.     ' No -> False
  13.     On Error Resume Next
  14.         Set oDoc = CATIA.ActiveDocument
  15.         GetoDoc = True
  16.     If Err.Number <> 0 Then
  17.         MsgBox "No Documents found." & VBA.vbNewLine & "Open a product and restart the macro.", vbCritical, "No Document"
  18.         GetoDoc = False
  19.     End If
  20.     On Error GoTo 0
  21. End Function
  22. Function GetoProd(oProd As Product) As Boolean 'check if the opened document is a product
  23.     If VBA.TypeName(oDoc) <> "ProductDocument" Then
  24.         MsgBox "The current document is not a CATIA Product." & VBA.vbNewLine & "Open a product and restart the macro.", vbCritical, "Wrong document type"
  25.         GetoProd = False
  26.     Else
  27.         Set oProduct = oDoc.Product
  28.         GetoProd = True
  29.     End If
  30. End Function
 

Pour cette histoire de résultats dans Excel, je partirais sur une collection que tu remplis au fur et à mesure avec des objets d'une classe définie par tes soins. Tu peux créer les propriétés dont tu as besoin:
- Name
- Type (Part / Product)
- ResultTest1
- ResultTest2
- etc.
C'est sans doute une des solution les plus lisibles pour stocker les résultats.

Message cité 1 fois
Message édité par ptittom le 08-07-2014 à 16:50:40
n°1168159
thomas9180​0
Posté le 09-07-2014 à 04:40:29  profilanswer
 

Bonjour,
 
J'ai encore des questions à propos de ma macro pour tracer un cartouche.
 
Je cherche à insérer un logo dans le cartouche, mais qui ne fasse pas partie du calque des vues, mais bien du fond de calque. Pour l'instant, j'arrive à insérer une image avec la commande :
 
Sub CATPicture()
 
 Set opic = CATIA.ActiveDocument.Sheets.ActiveSheet.Views.Item(1).Pictures
 Set onewpic = opic.Add("C:\your_pic.bmp", X, Y)
 
 End Sub
 
Mais ca m'insère mon logo comme une vue, qui peut être déplacée, redimensionnée, supprimée depuis le calque des vues, et plus embêtant, qui est impactée par l'échelle du plan.
Je voudrais que le logo soit fixé dans le cartouche, et idéalement, qu'il ne puisse pas être modifiable depuis le calque des vues.
 
Y aurait-il une solution ? :??:
 
Merci !!

n°1168160
ptittom
Posté le 09-07-2014 à 08:06:52  profilanswer
 

Bonjour,
 
Un objet Sheet a toujours au moins 2 vues:
1. Main View
2. Background view
 
Il suffit donc de selectionner l'item 2 de l'objet views d'une page.
Pour le problème d'échelle, tu peux peut être bloquer la view.
Un début de code ci dessous.
 

Code :
  1. Sub CATMain()
  2.     Dim oDrwDoc As DrawingDocument
  3.     Set oDrwDoc = CATIA.ActiveDocument
  4.    
  5.     Dim oSheet As DrawingSheet
  6.     Set oSheet = oDrwDoc.Sheets.ActiveSheet
  7.    
  8.     Dim oBackGround As DrawingView
  9.     Set oBackGround = oSheet.Views.Item(2) 'background is always the second view on a sheet
  10.    
  11.     oBackGround.LockStatus = True 'lock the view
  12.    
  13.     Dim oPictures As DrawingPictures
  14.     Set oPictures = oBackGround.Pictures
  15.    
  16.     Dim oNewPicture As DrawingPicture
  17.     Set oNewPicture = oPictures.Add("C:\your_pic.bmp", X, Y) 'insert the picture
  18.    
  19. End Sub


Message édité par ptittom le 09-07-2014 à 08:07:16
n°1168167
pucecwi
Posté le 09-07-2014 à 10:37:19  profilanswer
 

Bonjour à tous !
 
Voilà je rencontre un problème sur CATIA lorsque j'essaye de réaliser un volume multi-sections. Ce volume est définie par 4 sections et par plusieurs droites. Est il possible de réaliser ce volume multi-section avec l'outil multi-sections Solide en une seule fois? (Sans devoir faire le volume morceau par morceau?)  
 
Merci pour votre temps et vos réponses :)

n°1168177
clem200
Posté le 09-07-2014 à 12:27:52  profilanswer
 

ptittom a écrit :

Ta macro planteras à la ligne 15 si tu n'as pas un product ouvert.
Pour cette histoire de résultats dans Excel, je partirais sur une collection que tu remplis au fur et à mesure avec des objets d'une classe définie par tes soins. Tu peux créer les propriétés dont tu as besoin:
- Name
- Type (Part / Product)
- ResultTest1
- ResultTest2
- etc.
C'est sans doute une des solution les plus lisibles pour stocker les résultats.


Je suis justement en train de commencer à m'y mettre. Va pas falloir que je traine car dans 2 semaines je quitte l'entreprise ...  
 

Code :
  1. Dim CollecTest As New Collection
  2.     CollecTest .Add oPart.Name, "1"
  3.     Range("A2" ) = CollecTest .Item(1)


 
Avec l'exemple du dessus j'arrive à écrire dans mon excel le nom de la pièce dans la case A2. Bon c'est ridicule mais j'ai créé ma toute 1ère collection ...  
 
Mais il y a t-il un moyen d'écrire l'entiereté de ma collection, sans préciser la clé ? Pour lui dire : tu écris tout ce qu'il y a dans la collection dans telle colonne".
 
J'écume les forums Excel sans trouver ...


Message édité par clem200 le 10-07-2014 à 14:58:39
n°1168179
ptittom
Posté le 09-07-2014 à 12:56:49  profilanswer
 

Pour écrire une collection complète dans une colonne:

Code :
  1. Dim CollecTest As New Collection
  2. CollecTest .Add oPart.Name
  3. ...
  4. Function WriteCollectionInColumn(iLine As Integer, iColumn As Integer, cCollection As Collection)
  5. 'iLine: ligne de la première cellule où écrire. Par exemple: C2 --> 2
  6. 'iColumn: colonne de la première cellule où écrire. Par Exemple: C2 -->3
  7. 'cCollection: collection de strings
  8. 'je suppose qu'on travaille sur la feuille xlSheet qui a été déclarée quelquepart...
  9. Dim I As Integer
  10. For I=0 to cCollection.Count-1
  11.    xlSheet.Cells(iLine + I, iColumn) = cCollection.Item(I)
  12. Next
  13. End Function
 

C'est donc une boucle For...next toute bête. J'ai juste ajouté deux Integer pour dire d'où on part pour écrire les données.

Message cité 1 fois
Message édité par ptittom le 09-07-2014 à 13:00:27
n°1168181
ptittom
Posté le 09-07-2014 à 13:08:02  profilanswer
 

pucecwi a écrit :

Bonjour à tous !
 
Voilà je rencontre un problème sur CATIA lorsque j'essaye de réaliser un volume multi-sections. Ce volume est définie par 4 sections et par plusieurs droites. Est il possible de réaliser ce volume multi-section avec l'outil multi-sections Solide en une seule fois? (Sans devoir faire le volume morceau par morceau?)  
 
Merci pour votre temps et vos réponses :)


 
Bonjour,
 
On peut normalement sélectionner autant de profils que désirés pour la fonction multi-section solid.
1. selectionner les profils (fermés) et vérifier leur orientation (flèche rouge sur chaque profil).  
2. éventuellement définir des contraintes de tangence pour les profils
3. indiquer les guides entre les profils dans l'onglet correspondant.
4. vérifier que le mode dans l'onglet coupling est le bon (ratio fonctionne normalement tout le temps, tu peux essayer les autres ensuite). Éventuellement jouer sur les closing points pour améliorer un peu le résultat.

n°1168191
pucecwi
Posté le 09-07-2014 à 16:29:35  profilanswer
 


pucecwi a écrit :
 
Bonjour à tous !  
 
Voilà je rencontre un problème sur CATIA lorsque j'essaye de réaliser un volume multi-sections. Ce volume est définie par 4 sections et par plusieurs droites. Est il possible de réaliser ce volume multi-section avec l'outil multi-sections Solide en une seule fois? (Sans devoir faire le volume morceau par morceau?)  
 
Merci pour votre temps et vos réponses :)  
 
 
Bonjour,  
 
On peut normalement sélectionner autant de profils que désirés pour la fonction multi-section solid.  
1. selectionner les profils (fermés) et vérifier leur orientation (flèche rouge sur chaque profil).  
2. éventuellement définir des contraintes de tangence pour les profils  
3. indiquer les guides entre les profils dans l'onglet correspondant.  
4. vérifier que le mode dans l'onglet coupling est le bon (ratio fonctionne normalement tout le temps, tu peux essayer les autres ensuite). Éventuellement jouer sur les closing points pour améliorer un peu le résultat.
Merci pour ta réponse, ça m'a aidé mais je rencontre toujours le même problème explicité par ce message d'erreur :  
 
Opérateur de lissage : les points d'intersections entre les guides et au moins un des profils ne sont pas coplanaires. Choisissez un profil plan.  
 
J'ai beau redessiner mes courbes liant les différents profils j'obtiens toujours le même message d'erreur :( que faire?  
 
Merci pour ton aide !!!

n°1168199
ptittom
Posté le 10-07-2014 à 08:15:53  profilanswer
 

pucecwi a écrit :


Merci pour ta réponse, ça m'a aidé mais je rencontre toujours le même problème explicité par ce message d'erreur :  
 
Opérateur de lissage : les points d'intersections entre les guides et au moins un des profils ne sont pas coplanaires. Choisissez un profil plan.  
 
J'ai beau redessiner mes courbes liant les différents profils j'obtiens toujours le même message d'erreur :( que faire?  
 
Merci pour ton aide !!!


 
Bonjour,
 
1. Vérifier que les profils sont bien plans (sinon, projeter sur un plan au bon endroit pour être sûr)
2. Vérifier que les guides sont bien sur les profils. S'il n'y a pas d'intersection, le multi-section solid ne marchera pas.

n°1168206
pucecwi
Posté le 10-07-2014 à 14:06:15  profilanswer
 

Bonjour,
 
Quelqu'un saurait m'expliquer comment mailler une pièce en quadrangle dans Catia? C'est une poutre dont le profil est un I. Elle est étudiée en 3D.
 
Un grand merci pour votre aide !!! :)

n°1168215
clem200
Posté le 11-07-2014 à 08:59:04  profilanswer
 

ptittom a écrit :

Pour écrire une collection complète dans une colonne:

Code :
  1. Dim CollecTest As New Collection
  2. CollecTest .Add oPart.Name
  3. ...
  4. Function WriteCollectionInColumn(iLine As Integer, iColumn As Integer, cCollection As Collection)
  5. 'iLine: ligne de la première cellule où écrire. Par exemple: C2 --> 2
  6. 'iColumn: colonne de la première cellule où écrire. Par Exemple: C2 -->3
  7. 'cCollection: collection de strings
  8. 'je suppose qu'on travaille sur la feuille xlSheet qui a été déclarée quelquepart...
  9. Dim I As Integer
  10. For I=0 to cCollection.Count-1
  11.    xlSheet.Cells(iLine + I, iColumn) = cCollection.Item(I)
  12. Next
  13. End Function


 
C'est donc une boucle For...next toute bête. J'ai juste ajouté deux Integer pour dire d'où on part pour écrire les données.


 
J'ai compris le principe mais je n'arrive pas à le faire fonctionner ... Vous êtes sur qu'on puisse mettre dans une cellule un objet (comme Item) ?
J'ai une erreur "Subscript out of range" à la ligne 51.
 

Code :
  1. Sub catmain()
  2. Dim oPart As Part
  3. Set oPart = CATIA.ActiveDocument.Part
  4. Dim xlApp 'As Excel.Application
  5. Dim xlBook 'As Excel.Workbook
  6. Dim xlSheet 'As Excel.Worksheet
  7.  
  8.     'Start Excel
  9.    
  10.     On Error Resume Next
  11.         Set xlApp = CreateObject("Excel.Application" )
  12.         If Err.Number <> 0 Then
  13.             MsgBox ("Excel could not be started" )
  14.   Exit Sub
  15.         End If
  16.     On Error GoTo 0
  17.     xlApp.Visible = False
  18.    
  19.     'open Excel Document
  20.    
  21.     Set xlBook = xlApp.Workbooks.Open("d:\LocalData\clem200\Desktop\traceur\Résultats", , True)
  22.     Set xlSheet = xlBook.Sheets.Item("Feuil1" )
  23.    
  24.     '### Excel Operations ###
  25.    
  26.     Dim ColleTest As New Collection
  27.     ColleTest .Add oPart.Name, "1"
  28.     ColleTest .Add "test ", "2"
  29.    
  30.     Call WriteCollectionInColumn(2, 5, ColleTest )
  31.    
  32.     '### Excel Operations ###
  33. 'Close Excel Document
  34. 'Close Excel
  35. ActiveWorkbook.SaveCopyAs "d:\LocalData\clem200\Desktop\Résultats 2.xlsx"
  36. xlBook.Close SaveChanges:=False
  37. xlApp.Quit
  38. End Sub
  39. Function WriteCollectionInColumn(iLine As Integer, iColumn As Integer, cCollection As Collection)
  40. Dim I As Integer
  41. For I = 0 To cCollection.Count - 1
  42.    xlSheet.Cells(iLine + I, iColumn) = cCollection.Item(I)
  43. Next
  44. End Function


Je ne vois pas ce qui lui manque.


Message édité par clem200 le 11-07-2014 à 10:36:04
n°1168219
clem200
Posté le 11-07-2014 à 11:31:40  profilanswer
 

J'ai rien dit, j'ai juste mis "ActiveSheet" à la ligne 47 au lieu de "xlSheet" et tout marche :)


Message édité par clem200 le 11-07-2014 à 12:02:17
n°1168306
clem200
Posté le 16-07-2014 à 09:05:10  profilanswer
 

Bonjour,  
 
Je viens de terminer une macro. J'ai voulu la mettre sous forme d'un bouton dans mes barres d'outils pour la lancer en un seul clique. Ca fonctionne bien mais qu'une seule fois ! Au 2nd essai Catia plante (ne répond plus).  
 
Par contre quand je fais Outils => Macros => executer ça fonctionne plein de fois de suite ! Je n'arrive pas à comprendre pourquoi. La manière de quitter la macro ?  
 
Merci d'avance.


Message édité par clem200 le 16-07-2014 à 10:00:35
n°1168367
levil
Posté le 18-07-2014 à 08:45:13  profilanswer
 

Bonjour tout le monde, voila je me présente je m'appel Xavier et je suis tout nouveau dans un bureau d'études en prestation de service.
 Voilà j'ai un petit problème sur catia V5 R19, je dois faire la mise en plan d'un châssis en mécano souder et il m'a été demander de réaliser les mises en plan de chacun des tubes de ce châssis, jusque-là aucun problème. Mais je dois également réaliser la nomenclature de tout ces sous ensembles et impossible de la générer. Je précise que mon châssis est un Part et que tous les sous ensemble sont ses Corps de pièces. Merci d'avance, parce que la je galère comme pas possible et je n'ai vraiment pas envie de tout refaire en Assembly design.

n°1168370
clem200
Posté le 18-07-2014 à 09:53:47  profilanswer
 

Bonjour,  
 
Je ne fais jamais de mise en plan alors ce n'est pas mon fort mais à ma connaissance il n'est pas possible d'éditer une nomenclature à partir d'un Part ...  
Mais cette pièce existe forcément en Product quelque part. L'idéal étant de se le procurer ...


Message édité par clem200 le 18-07-2014 à 09:54:11
n°1168400
boubs8
Posté le 22-07-2014 à 08:04:27  profilanswer
 

Bonjour,
Je suis en train de programmer un perçage avec un avant trou.
Je voudrais savoir si l'on peut mettre une rotation différente entre la plongée et le perçage svp?

n°1168401
boubs8
Posté le 22-07-2014 à 08:36:40  profilanswer
 

Pour info, je viens de trouver une solution:
utiliser la fonction usinage axial séquentiel.

n°1168545
camay76
Posté le 28-07-2014 à 17:58:29  profilanswer
 

Bonjour à tous,
 
J'ai un petit soucis sur catia. J'ai dessiné une pièce mécano-soudée dans une part contenant des corps de pièce sur catia et je souhaiterais maintenant la valider avec des calculs stress.
 
Je vais donc dans l'atelier GSA (Generative Structural Analysis) mais impossible de trouver comment mailler mes différents corps. Il ne maille que le corps principal.
 
est-il possible de calculer ce genre de pièce mécano soudée? Si oui, comment fait on?
 
merci

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  222  223  224  ..  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)