CATIA V5 | 3DEXPERIENCE
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment :
Cartes Pokémon 151 : où trouver le ...
Voir le deal

Macro Excel: Problème avec GetCoordinates

3 participants

Aller en bas

R?solu Macro Excel: Problème avec GetCoordinates

Message par jbinder Jeu 23 Avr 2015 - 9:52

Bonjour,
J'ai un petit problème avec VBA, je "bidouille" en ce moment une macro excel qui doit me permettre d'importer les points d'un set géométrique CATIA, j'ai dans un premier temps récupérer une macro CATvba que j'ai ensuite modifiée qui me permet de faire ca, et maintenant j'essaie d'utiliser ce code dans une macro excel mais je bloque Razz
J'utilise les fonctions Selection et Search qui fonctionnent parfaitement depuis une macro catia, mais la syntaxe change souvent lorsque l'on passe à une macro VBA...

Merci d'avance pour votre aide!!

Ci dessous mes deux bouts de code, Catia et Excel:

Catia

Code:
Dim sel1, sel2 As Selection
Dim Excel As Object
Dim MyExcel As Object
Dim MyExcelFile As Object
Dim Feuille As Object
Dim a As Integer
Dim coords(2) As Integer


Sub CATMain()


StartEXCEL

ExportPoint



End Sub

'******************************************************************************
Sub StartEXCEL()
'******************************************************************************
On Error Resume Next
Set Excel = GetObject(, "EXCEL.Application")
If Err.Number <> 0 Then
ExcelNotOpen = True
Err.Clear
Set Excel = New Excel.Application
Excel.Visible = False
End If

Set MyExcel = Excel.Application.WorkBooks
Set MyExcelFile = MyExcel.Open("P:\°datenaustauschordner\Jeremy Binder\Back-up_Catia\Profil_NACA_MultipleChoices_Final.xls")
Set Feuille = MyExcelFile.Sheets(6)

End Sub

'******************************************************************************
Sub ExportPoint()
'******************************************************************************
Dim PtDoc As Part
Set PtDoc = CATIA.ActiveDocument.Part
Dim Param As Parameters
Set Param =PtDoc.Parameters
Dim Fak1, Fak2, Fak3 As Dimension
Set Fak1 = Param.Item("xn1_3")
Set Fak2 = Param.Item("yn1_3")
Set Fak3 = Param.Item("zn1_3")
Dim x3, y3, z3 As Double
x3 = Fak1.Value
y3 = Fak2.Value
z3 = Fak3.Value


CATIA.ActiveDocument.Selection.Search ".Punkt.Name=Skal_Ob*;Alle"


Set selection1 = CATIA.ActiveDocument.Selection
a = selection1.Count
For i = selection1.Count To 1 Step -1

Set element = selection1.Item(i)
Set point = element.value


'Write PointData to Excel Sheet
point.GetCoordinates(coords)

Feuille.Cells (a-i+2,"E") = coords(0)-x3
Feuille.Cells (a-i+2,"F") = coords(1)-y3
Feuille.Cells (a-i+2,"G") = coords(2)-z3

Next

CATIA.ActiveDocument.Selection.Search ".Punkt.Name=Skal_Un*;Alle"

Set selection2 = CATIA.ActiveDocument.Selection
For i = selection2.Count To 1 Step -1

Set element = selection2.Item(i)
Set point = element.value


'Write PointData to Excel Sheet
point.GetCoordinates(coords)

Feuille.Cells (2*a-i+1,"E") = coords(0)-x3
Feuille.Cells (2*a-i+1,"F") = coords(1)-y3
Feuille.Cells (2*a-i+1,"G") = coords(2)-z3

Next

End Sub

Excel


Code:
'------------------------------------------------------------------------
'Get Profile-points necessary to "Gestrakte-Profil"
'------------------------------------------------------------------------
Sub GetProfilePoints()

'    StartExcel
    ExportPoints
    
End Sub

Sub ExportPoints()

    Dim PtDoc As Object
    Set PtDoc = GetCATIAPartDocument
    Dim Param As Object
    Set Param = PtDoc.Part.Parameters
    Dim Fak1, Fak2, Fak3 As Object
    Set Fak1 = Param.Item("xn1_3")
    Set Fak2 = Param.Item("yn1_3")
    Set Fak3 = Param.Item("zn1_3")
    Dim x3, y3, z3 As Double
    x3 = Fak1.Value
    y3 = Fak2.Value
    z3 = Fak3.Value


    CATIA.ActiveDocument.Selection.Search ".Punkt.Name=Skal_Ob*;Alle"
    
    Set selection1 = CATIA.ActiveDocument.Selection
    a = selection1.Count
    
    For i = selection1.Count To 1 Step -1

        Set element = selection1.Item(i)
        Set Point = element.Value

        'Write PointData to Excel Sheet
        Point.GetCoordinates (coords)

        Sheets(6).Cells(a - i + 2, "E") = coords(0) - x3
        Sheets(6).Cells(a - i + 2, "F") = coords(1) - y3
        Sheets(6).Cells(a - i + 2, "G") = coords(2) - z3

    Next

    CATIA.ActiveDocument.Selection.Search ".Punkt.Name=Skal_Un*;Alle"

    Set selection2 = CATIA.ActiveDocument.Selection
    
    For i = selection2.Count To 1 Step -1

        Set element = selection2.Item(i)
        Set Point = element.Value

        'Write PointData to Excel Sheet
        Point.GetCoordinates (coords)

        Sheets(6).Cells(2 * a - i + 1, "E") = coords(0) - x3
        Sheets(6).Cells(2 * a - i + 1, "F") = coords(1) - y3
        Sheets(6).Cells(2 * a - i + 1, "G") = coords(2) - z3

    Next

End Sub


Dernière édition par jbinder le Jeu 23 Avr 2015 - 15:00, édité 2 fois

jbinder
timide
timide

Messages : 12
Date d'inscription : 22/04/2015
Localisation : Stuttgart

Revenir en haut Aller en bas

R?solu Re: Macro Excel: Problème avec GetCoordinates

Message par SamsGuamejy Jeu 23 Avr 2015 - 10:09

Salut Jérémy,
Peux-tu expliquer un peu mieux ce que tu veux faire avec cette macro excel? Tu veux faire l'inverse et basculer d'Excel à CATIA?
Je pige pas trop ce que tu veux faire là...
SamsGuamejy
SamsGuamejy
Fédérateur
Fédérateur

Messages : 314
Date d'inscription : 13/09/2010
Age : 39
Localisation : Vendée (85) FRANCE

http://www.beam3.fr

Revenir en haut Aller en bas

R?solu Re: Macro Excel: Problème avec GetCoordinates

Message par jbinder Jeu 23 Avr 2015 - 11:08

Salut!!
Désolé, j'explique:
Dans un fichier excel j'ai plusieurs sheets contenant les coordonnées de différents profiles d'ailes, avec la macro excel fourni dans catia, on peut importer ces points et créer ensuite splines ou surfaces.
Moi j'importe 8 profiles, ensuite je les modifie avec une affinité, mon programme me permet de choisir le type de profile que je veux, sachant que les profiles 4-5-6-7 sont déterminés par interpolation des autres profiles.
Du coup je crée dans cet ordre: profiles 8-1-2-3, j'applique en même temps les affinités, et ensuite mon but est de récupérer les coordonnées des points des profiles 8 et 3 (pour faire l'interpolation) afin de créer les profils restants.
J'ai donc crée des macro intermédiaires dans catia me permettant de: appliquer les affinités, créer des points sur l'affinité numéro 8 et 3, récupérer les coordonnées de ces points et les insérer dans mon excel qui me sort ensuite les coordonnées des profiles restant.

Mais je viens de me rendre compte que j'avais oublié d'insérer la macro pour créer les points Razz
L'erreur venait certainement de là...

J'aurai toutefois une question, cette ligne de code
Code:
PtDoc.Selection.Search "Name=Skal_Un*;Alle"
est censée me permettre de sélectionner les points dont le nom commence par "Skal_Un", je l'ai trouvé dans un bouquin sur les macros CATIA , et aucune info la dessus sur internet, vous savez si je peux l'utiliser dans VBA??

jbinder
timide
timide

Messages : 12
Date d'inscription : 22/04/2015
Localisation : Stuttgart

Revenir en haut Aller en bas

R?solu Re: Macro Excel: Problème avec GetCoordinates

Message par SamsGuamejy Jeu 23 Avr 2015 - 11:21

La fonction Search à été demandé il y a pas très longtemps sur https://catiav5.forumactif.org/t1305-comment-selectionner-une-part-specifique-avec-contenant-les-caracteres-allcatpart
Je te laisse regarder ;-)
SamsGuamejy
SamsGuamejy
Fédérateur
Fédérateur

Messages : 314
Date d'inscription : 13/09/2010
Age : 39
Localisation : Vendée (85) FRANCE

http://www.beam3.fr

Revenir en haut Aller en bas

R?solu Re: Macro Excel: Problème avec GetCoordinates

Message par jbinder Jeu 23 Avr 2015 - 12:10

Super merci, la ligne de code fonctionne!

Mais maintenant c'est celle ci qui pose problème Smile
Code:
Point.GetCoordinates (coords)
Sachant que j'ai bien déclaré coords au début, comme ceci: Dim coords(2) As Integer

jbinder
timide
timide

Messages : 12
Date d'inscription : 22/04/2015
Localisation : Stuttgart

Revenir en haut Aller en bas

R?solu Re: Macro Excel: Problème avec GetCoordinates

Message par SamsGuamejy Jeu 23 Avr 2015 - 12:19

Les coordonées d'un point est donnée en X,Y et Z par rapport à ton origine de pièce.

Donc :
coords(0) = X
coords(1) = Y
coords(2) = Z

Attention les coordonnées de point sont à virgule donc ce n'est pas des Interger mais des Double
SamsGuamejy
SamsGuamejy
Fédérateur
Fédérateur

Messages : 314
Date d'inscription : 13/09/2010
Age : 39
Localisation : Vendée (85) FRANCE

http://www.beam3.fr

Revenir en haut Aller en bas

R?solu Re: Macro Excel: Problème avec GetCoordinates

Message par jbinder Jeu 23 Avr 2015 - 13:43

Ok merci!!
Mais j'ai quand même un message d'erreur chaque fois que je teste la méthode Neutral
J'arrive pas à trouver mon erreur, pourtant ce code fonctionne parfaitement quand je le lance depuis catia.

jbinder
timide
timide

Messages : 12
Date d'inscription : 22/04/2015
Localisation : Stuttgart

Revenir en haut Aller en bas

R?solu Re: Macro Excel: Problème avec GetCoordinates

Message par jbinder Jeu 23 Avr 2015 - 14:51

Ok le code fonctionne seulement lorsque je ne défini pas la nature des éléments du tableau...

jbinder
timide
timide

Messages : 12
Date d'inscription : 22/04/2015
Localisation : Stuttgart

Revenir en haut Aller en bas

R?solu Re: Macro Excel: Problème avec GetCoordinates

Message par mike688 Jeu 23 Avr 2015 - 14:52

si tu a declarer point comme etant un point ça ne marche pas....
essai juste avec "dim point"
mike688
mike688
actif
actif

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

Revenir en haut Aller en bas

R?solu Re: Macro Excel: Problème avec GetCoordinates

Message par jbinder Jeu 23 Avr 2015 - 14:56

Merci de votre aide,
vous pouvez me dire où se trouve le bouton résolu svp??

jbinder
timide
timide

Messages : 12
Date d'inscription : 22/04/2015
Localisation : Stuttgart

Revenir en haut Aller en bas

R?solu Re: Macro Excel: Problème avec GetCoordinates

Message par mike688 Jeu 23 Avr 2015 - 14:57

edite ton premier message
mike688
mike688
actif
actif

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

Revenir en haut Aller en bas

R?solu Re: Macro Excel: Problème avec GetCoordinates

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

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