Importer des coordonnées X Y Z d'un fichier Excel dans CATIA V5
Dernière réponse : dans Programmation
Bonjour,
Je souhaite à partir d'un fichier Excel ou j'aurai rentré les coordonnées en X Y et Z sur les colonnes A B et C, importer ces coordonnées et en créer des points sous le logiciel de CAO CATIA V5. Je programme en VBA.
Si quelqu'un pouvait m'aider ça serait sympa, merci.
Je souhaite à partir d'un fichier Excel ou j'aurai rentré les coordonnées en X Y et Z sur les colonnes A B et C, importer ces coordonnées et en créer des points sous le logiciel de CAO CATIA V5. Je programme en VBA.
Si quelqu'un pouvait m'aider ça serait sympa, merci.
Autres pages sur : importer coordonnees fichier excel catia
Lassé par la pub ? Créez un compte
Ok merci boubpopsyteam.
En fait j'ai déja réussi à récuperer ce principe dans l'aide de CATIA V5 et je l'ai adapté à ce que je voulais donc import de coordonnées d'Excel vers CATIA. Maintenant le problème c'est que ce que j'ai fais la programmation dans l'éditeur VBA Excel, je voudrais que ce programme soit dans l'éditeur VBA de CATIA, afin j'ouvre une page vierge Excel, je rentre les coordonnées dans les colonnes A B et C et CATIA execute l'import des coordonnées pour créer des points.
En fait j'ai déja réussi à récuperer ce principe dans l'aide de CATIA V5 et je l'ai adapté à ce que je voulais donc import de coordonnées d'Excel vers CATIA. Maintenant le problème c'est que ce que j'ai fais la programmation dans l'éditeur VBA Excel, je voudrais que ce programme soit dans l'éditeur VBA de CATIA, afin j'ouvre une page vierge Excel, je rentre les coordonnées dans les colonnes A B et C et CATIA execute l'import des coordonnées pour créer des points.
J'ai trouvé dans l'aide de Catia V5 un fichier Excel qui permet de rentrer des coordonnées de points (colonne A pour X, colonne B pour Y, colonne C pour Z) dans un tableau pré-définis d'excel et en cliquant sur un bouton sur la feuille excel les points se créés automatiquement dans une Part de Catia.
Le programme VBA se trouve donc dans ma feuille Excel.
Je souhaiterais créer une application avec l'éditeur VBA de Catia V5 qui me permette de spécifier un chemin à l'aide d'un bouton "parcourir" (j'aurai au préalable à partir d'une feuille excel vierge,rentré des coordonnées dans les colonnes A B et C ) puis de cliquer sur un bouton de type "valider" qui permettra d'executer le programme et donc de placer automatiquement mes points sur la Part. Mon programme se trouvera donc dans mon application que j'ai creer en VBA sur Catia V5.
Donc j'aimerais savoir si c'est possible et comment proceder.
J'espère avoir été le plus clair possible, si vous avez des questions n'hesitez pas.
merci,
Le programme VBA se trouve donc dans ma feuille Excel.
Je souhaiterais créer une application avec l'éditeur VBA de Catia V5 qui me permette de spécifier un chemin à l'aide d'un bouton "parcourir" (j'aurai au préalable à partir d'une feuille excel vierge,rentré des coordonnées dans les colonnes A B et C ) puis de cliquer sur un bouton de type "valider" qui permettra d'executer le programme et donc de placer automatiquement mes points sur la Part. Mon programme se trouvera donc dans mon application que j'ai creer en VBA sur Catia V5.
Donc j'aimerais savoir si c'est possible et comment proceder.
J'espère avoir été le plus clair possible, si vous avez des questions n'hesitez pas.
merci,
Oui. Je suis sûr que c'est possible.
Mais je n'ai pas Catia pour me le prouver avant de te le dire.
Ne peux-tu pas t'inspirer de ce qui est déjà fait dans Excel pour faire la partie EXECUTION.
Pour ce qui est d'ouvrir une boîte de dialogue, c'est la méthode GetOpenFilename de l'objet Application. Cette méthode ne fait que renvoyer un nom de fichier, ça n'ouvre pas le fichier.
Mais je n'ai pas Catia pour me le prouver avant de te le dire.
Ne peux-tu pas t'inspirer de ce qui est déjà fait dans Excel pour faire la partie EXECUTION.
Pour ce qui est d'ouvrir une boîte de dialogue, c'est la méthode GetOpenFilename de l'objet Application. Cette méthode ne fait que renvoyer un nom de fichier, ça n'ouvre pas le fichier.
J'ai crée l'interface, je clique sur "parcourir", la boite de dialogue s'ouvre, le chemin spécifié se met dans une listbox et je reprends le chemin de la listbox pour ouvrir un fichier excel. Donc pas de soucis de ce coté là.
Ce qui me pose problème maintenant c'est de reprendre le programme VBA d'excel (qui etait dans l'aide de Catia) et de l'inserer dans mon application VBA. Je ne sais pas comment faire, je ne sais pas si il ne vaut mieux pas repartir de zéro.
Tu as l'air de me dire que c'est possible mais je ne sais pas comment proceder.
En tout cas merci pour ton aide,
Ce qui me pose problème maintenant c'est de reprendre le programme VBA d'excel (qui etait dans l'aide de Catia) et de l'inserer dans mon application VBA. Je ne sais pas comment faire, je ne sais pas si il ne vaut mieux pas repartir de zéro.
Tu as l'air de me dire que c'est possible mais je ne sais pas comment proceder.
En tout cas merci pour ton aide,
Pour quelqu'un comme moi qui ne connait pas beaucoup le VBA, oui.
A la base elle construisait des points, puis par ces points des curves puis par ces curves des surfaces complexes.
J'ai supprimer de cette macro les curves et les surfaces pour ne garder que ce qui m'intéresse les points.
Il y a certaines des fonctions inutiles dedans que je n'ai pas supprimé.
merci pour ton aide,
A la base elle construisait des points, puis par ces points des curves puis par ces curves des surfaces complexes.
J'ai supprimer de cette macro les curves et les surfaces pour ne garder que ce qui m'intéresse les points.
Il y a certaines des fonctions inutiles dedans que je n'ai pas supprimé.
merci pour ton aide,
Bonjour,
Voilà à quoi ressemble le programme qui était dans l'aide de CATIA que j'ai modifié pour n'avoir que des points, je souhaite donc l'intégrer dans mon programme VBA que je développe avec l''éditeur VBA de CATIA, et non plus qu'il soit dans Excel comme actuellement:
(Je pense qu'il reste des choses inutiles dedans)
Voilà à quoi ressemble le programme qui était dans l'aide de CATIA que j'ai modifié pour n'avoir que des points, je souhaite donc l'intégrer dans mon programme VBA que je développe avec l''éditeur VBA de CATIA, et non plus qu'il soit dans Excel comme actuellement:
============================================================================
'// Generative Shape Design
'// point, splines, loft generation tool
'//============================================================================
Const Cst_iSTARTCurve As Integer = 1
Const Cst_iENDCurve As Integer = 11
Const Cst_iSTARTLoft As Integer = 2
Const Cst_iENDLoft As Integer = 22
Const Cst_iSTARTCoord As Integer = 3
Const Cst_iENDCoord As Integer = 33
Const Cst_iERRORCool As Integer = 99
Const Cst_iEND As Integer = 9999
Const Cst_strSTARTLoft As String = "Saisie des coordonnées PSE"
Const Cst_strENDLoft As String = "EndMulti-SectionsSurface"
Const Cst_strEND As String = "Fin"
'------------------------------------------------------------------------
'To define the kind of elements to create (1: create only points
'2: creates points and splines
'3: Creates points, splines and loft
'------------------------------------------------------------------------
Function GetTypeFile() As Integer
Dim strInput As String, strMsg As String
choice = 1
GetTypeFile = choice
End Function
'------------------------------------------------------------------------
'Get the active cell
'------------------------------------------------------------------------
Function GetCell(iindex As Integer, column As Integer) As String
Dim Chain As String
Sheets("Feuil1").Select
If (column = 1) Then
Chain = "A" + CStr(iindex)
ElseIf (column = 2) Then
Chain = "B" + CStr(iindex)
ElseIf (column = 3) Then
Chain = "C" + CStr(iindex)
End If
Range(Chain).Select
GetCell = ActiveCell.Value
End Function
Function GetCellA(iRang As Integer) As String
GetCellA = GetCell(iRang, 1)
End Function
Function GetCellB(iRang As Integer) As String
GetCellB = GetCell(iRang, 2)
End Function
Function GetCellC(iRang As Integer) As String
GetCellC = GetCell(iRang, 3)
End Function
'------------------------------------------------------------------------
'Syntax of the parameter file
'------------------------
'StartCurve -> to start the list of points defining the spline
' double , double , double
' double , double , double -> as many points as necessary to define the spline
'EndCurve -> to end the list of points defining the spline
'
'
'Example:
'--------
'StartCurve
' -10.89, 10 , 46.78
'1.56, 4, 6
'EndCurve -> spline composed of 2 points
'------------------------------------------------------------------------
Sub ChainAnalysis(ByRef iRang As Integer, ByRef X As Double, ByRef Y As Double, ByRef Z As Double, ByRef iValid As Integer)
Dim Chain As String
Dim Chain2 As String
Dim Chain3 As String
Chain = GetCellA(iRang)
Select Case Chain
Case Cst_strSTARTCurve
iValid = Cst_iSTARTCurve
Case Cst_strENDCurve
iValid = Cst_iENDCurve
Case Cst_strSTARTLoft
iValid = Cst_iSTARTLoft
Case Cst_strENDLoft
iValid = Cst_iENDLoft
Case Cst_strSTARTCoord
iValid = Cst_iSTARTCoord
Case Cst_strENDCoord
iValid = Cst_iENDCoord
Case Cst_strEND
iValid = Cst_iEND
Case Else
iValid = 0
End Select
If (iValid <> 0) Then
Exit Sub
End If
'Conversion string -> double
Chain2 = GetCellB(iRang)
Chain3 = GetCellC(iRang)
If ((Len(Chain) > 0) And (Len(Chain2) > 0) And (Len(Chain3) > 0)) Then
X = CDbl(Chain)
Y = CDbl(Chain2)
Z = CDbl(Chain3)
Else
iValid = Cst_iERRORCool
X = 0#
Y = 0#
Z = 0#
End If
End Sub
'------------------------------------------------------------------------
' Get CATIA Application
'------------------------------------------------------------------------
'Remark:
' When KO, update CATIA registers with:
' CNEXT /unregserver
' CNEXT /regserver
'-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Function GetCATIA() As Object
Set CATIA = GetObject(, "CATIA.Application")
If CATIA Is Nothing Then
Set CATIA = CreateObject("CATIA.Application")
CATIA.Visible = True
End If
Set GetCATIA = CATIA
End Function
'------------------------------------------------------------------------
' Get CATIADocument
'------------------------------------------------------------------------
Function GetCATIAPartDocument() As Object
Set CATIA = GetCATIA
Dim MyPartDocument As Object
Set MyPartDocument = CATIA.ActiveDocument
If MyPartDocument Is Nothing Then
MsgBox "No Catia Active Document found "
End If
Set GetCATIAPartDocument = MyPartDocument
End Function
'------------------------------------------------------------------------
' Creates all usable points from the parameter file
'------------------------------------------------------------------------
Sub CreationPoint()
'Get CATIA
Dim PtDoc As Object
Set PtDoc = GetCATIAPartDocument
' Get the HybridBody
Dim myHBody As Object
Set myHBody = PtDoc.Part.HybridBodies.Item("PSE")
Dim iLigne As Integer
Dim iValid As Integer
Dim X As Double
Dim Y As Double
Dim Z As Double
Dim Point As Object
iLigne = 1
'Analyze file
While iValid <> Cst_iEND
'Read a line
ChainAnalysis iLigne, X, Y, Z, iValid
iLigne = iLigne + 1
'Not on a startcurve or endcurve -> valid point
If (iValid = 0) Then
Set Point = PtDoc.Part.HybridShapeFactory.AddNewPointCoord(X, Y, Z)
myHBody.AppendHybridShape Point
End If
Wend
'Model update
PtDoc.Part.Update
End Sub
'------------------------------------------------------------------------
'Main program
'------------------------------------------------------------------------
Sub Main()
'Get the type of operations to do:
' Points --> 1
' Splines + Points --> 2
' Loft + Splines + Points --> 3
Dim TypeFile As Integer
TypeFile = GetTypeFile
' V5R12 - Create dedicate openBody for created geometry
' Get CATIA Active Document
' Warning: Active document has to be a Part Document
Dim PtDoc As Object
Set PtDoc = GetCATIAPartDocument
' Dim myHBody As HybridBody
Set myHBody = PtDoc.Part.HybridBodies.Add()
Set referencebody = PtDoc.Part.CreateReferenceFromObject(myHBody)
PtDoc.Part.HybridShapeFactory.ChangeFeatureName referencebody, "PSE"
TypeFile = 1
CreationPoint
End
End Sub
(Je pense qu'il reste des choses inutiles dedans)
Lassé par la pub ? Créez un compte
- Contenus similaires :
- ForumMacro excel catia v5
- ForumImporter fichier dans excel
- ForumImporter excel dans catia
- ForumCatia v5 excel
- ForumImporter point excel catia
- benchmarkImporter coordonnã es catia v5
- articlesCatia v5 tableau excel
- ForumVba catia v5 excel
- ForumImport catia v5 excel
- ForumCatia v5 export excel
- Voir plus