Macro Excel: Problème avec GetCoordinates
3 participants
Page 1 sur 1
Macro Excel: Problème avec GetCoordinates
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
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
Excel
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
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
- Messages : 12
Date d'inscription : 22/04/2015
Localisation : Stuttgart
Re: Macro Excel: Problème avec GetCoordinates
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à...
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à...
Re: Macro Excel: Problème avec GetCoordinates
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
L'erreur venait certainement de là...
J'aurai toutefois une question, cette ligne de code
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
L'erreur venait certainement de là...
J'aurai toutefois une question, cette ligne de code
- Code:
PtDoc.Selection.Search "Name=Skal_Un*;Alle"
jbinder- timide
- Messages : 12
Date d'inscription : 22/04/2015
Localisation : Stuttgart
Re: Macro Excel: Problème avec GetCoordinates
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 ;-)
Je te laisse regarder ;-)
Re: Macro Excel: Problème avec GetCoordinates
Super merci, la ligne de code fonctionne!
Mais maintenant c'est celle ci qui pose problème
Mais maintenant c'est celle ci qui pose problème
- Code:
Point.GetCoordinates (coords)
jbinder- timide
- Messages : 12
Date d'inscription : 22/04/2015
Localisation : Stuttgart
Re: Macro Excel: Problème avec GetCoordinates
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
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
Re: Macro Excel: Problème avec GetCoordinates
Ok merci!!
Mais j'ai quand même un message d'erreur chaque fois que je teste la méthode
J'arrive pas à trouver mon erreur, pourtant ce code fonctionne parfaitement quand je le lance depuis catia.
Mais j'ai quand même un message d'erreur chaque fois que je teste la méthode
J'arrive pas à trouver mon erreur, pourtant ce code fonctionne parfaitement quand je le lance depuis catia.
jbinder- timide
- Messages : 12
Date d'inscription : 22/04/2015
Localisation : Stuttgart
Re: Macro Excel: Problème avec GetCoordinates
Ok le code fonctionne seulement lorsque je ne défini pas la nature des éléments du tableau...
jbinder- timide
- Messages : 12
Date d'inscription : 22/04/2015
Localisation : Stuttgart
Re: Macro Excel: Problème avec GetCoordinates
si tu a declarer point comme etant un point ça ne marche pas....
essai juste avec "dim point"
essai juste avec "dim point"
mike688- actif
- Messages : 257
Date d'inscription : 23/12/2009
Age : 43
Localisation : Portieux (88)
Re: Macro Excel: Problème avec GetCoordinates
Merci de votre aide,
vous pouvez me dire où se trouve le bouton résolu svp??
vous pouvez me dire où se trouve le bouton résolu svp??
jbinder- timide
- Messages : 12
Date d'inscription : 22/04/2015
Localisation : Stuttgart
Re: Macro Excel: Problème avec GetCoordinates
edite ton premier message
mike688- actif
- Messages : 257
Date d'inscription : 23/12/2009
Age : 43
Localisation : Portieux (88)
Sujets similaires
» Macro : Problème de communication entre CATIA et Excel
» Macro export cartouche dans Excel
» Macro Excel Catia
» Macro CATIA vers Excel
» Mettre Excel au premier plan via macro
» Macro export cartouche dans Excel
» Macro Excel Catia
» Macro CATIA vers Excel
» Mettre Excel au premier plan via macro
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum