Macro dans catia inertie
2 participants
Page 1 sur 1
Macro dans catia inertie
Bonjour à tous,
Suite au conseil de Guss, je relance un nouveau sujet.
J'aimerais lancer la commande mesure d'inertie et exporter le fichier en texte pour l'enregistrer dans un répertoire comme le fait manuellement le logiciel.
J'ai essayé l'enregistrement de macro mais il ne se passe rien. bate
Auriez-vous des idées pour lancer cette commande?!
Bonne journée! Smile Smile Smile
Suite au conseil de Guss, je relance un nouveau sujet.
J'aimerais lancer la commande mesure d'inertie et exporter le fichier en texte pour l'enregistrer dans un répertoire comme le fait manuellement le logiciel.
J'ai essayé l'enregistrement de macro mais il ne se passe rien. bate
Auriez-vous des idées pour lancer cette commande?!
Bonne journée! Smile Smile Smile
Ponpon- timide
- Messages : 16
Date d'inscription : 28/04/2015
Localisation : Lyon
Re: Macro dans catia inertie
Bonjour Ponpon,
Je ne sais pas si cette commande est directement accessible par macro. J'ai trouvé dans l'aide CATIA ce script qui donne les valeurs de mesure d'inertie du produit selectionné et j'ai rajouté la création du fichier texte.
Je ne sais pas si cette commande est directement accessible par macro. J'ai trouvé dans l'aide CATIA ce script qui donne les valeurs de mesure d'inertie du produit selectionné et j'ai rajouté la création du fichier texte.
- Code:
' COPYRIGHT DASSAULT SYSTEMES 2001
Option Explicit
' ***********************************************************************
' Purpose : Compute the mass and the center of gravity of a component.
' Assumptions : A CATProduct document should be active and a component selected.
' Author :
' Languages : VBA
' Locales : English
' CATIA Level : V5R6
' ***********************************************************************
Sub CATMain()
' Retrieve the selected component
Dim oSelection As Selection
Set oSelection = CATIA.ActiveDocument.Selection
Dim oProduct As AnyObject
On Error Resume Next
Set oProduct = oSelection.FindObject("CATIAProduct")
If (Err.Number <> 0) Then
MsgBox "No selected product"
Else
On Error GoTo 0
' Compute the inertia
Dim oInertia As AnyObject
Set oInertia = oProduct.GetTechnologicalObject("Inertia")
' Read the inertia data
Dim dMass As Double
dMass = oInertia.Mass
Dim dDensity As Double
dDensity = oInertia.Density
Dim dCoordinates(2)
oInertia.GetCOGPosition dCoordinates
Dim dMatrix(8)
oInertia.GetInertiaMatrix dMatrix
'suivant ton besoins tu peux rajouter:
Dim dPAxes(8)
oInertia.GetPrincipalAxes dPAxes
Dim dPMoments(2)
oInertia.GetPrincipalMoments dPMoments
End If
Dim oFileSys 'As FileSystem
Set oFileSys = CATIA.FileSystem
' Create the name of the output file
Dim sFileOutPath As String
sFileOutPath = "C:\temp\Inertie" '--> Nom et chemin du fichier texte
' Create the text file
Dim oFileOut As File
Set oFileOut = oFileSys.CreateFile("C:\temp\Inertie.txt", False) ' mettre true pour écraser un fichier existant
Dim oStream As TextStream
Set oStream = oFileOut.OpenAsTextStream("ForWriting")
' Configure ici ton fichier texte
oStream.Write "#####################################################################" & Chr(10)
oStream.Write "# #" & Chr(10)
oStream.Write "# INERTIA TEXT FILE #" & Chr(10)
oStream.Write "# #" & Chr(10)
oStream.Write "#####################################################################" & Chr(10)
oStream.Write Chr(10) & Chr(10)
oStream.Write oProduct.Name & Chr(10)
oStream.Write "Mass = " & CStr(dMass) & Chr(10)
oStream.Write "Denstity = " & CStr(dDensity) & Chr(10)
oStream.Write "Center of gravity : X = " & CStr(dCoordinates(0)) & ", Y = " + CStr(dCoordinates(1)) & ", Z = " + CStr(dCoordinates(2))
oStream.Write "Ixx = " & CStr(dMatrix(0)) & Chr(10)
oStream.Write "Ixy = " & CStr(dMatrix(1)) & Chr(10)
oStream.Write "Ixz = " & CStr(dMatrix(2)) & Chr(10)
oStream.Write "Iyx = " & CStr(dMatrix(3)) & Chr(10)
oStream.Write "Iyy = " & CStr(dMatrix(4)) & Chr(10)
oStream.Write "Iyz = " & CStr(dMatrix(5)) & Chr(10)
oStream.Write "Izx = " & CStr(dMatrix(6)) & Chr(10)
oStream.Write "Izy = " & CStr(dMatrix(7)) & Chr(10)
oStream.Write "Izz = " & CStr(dMatrix(8)) & Chr(10)
oStream.Write "A1x = " & CStr(dPAxes(0)) & Chr(10)
oStream.Write "A2x = " & CStr(dPAxes(1)) & Chr(10)
oStream.Write "A3x = " & CStr(dPAxes(2)) & Chr(10)
oStream.Write "A1y = " & CStr(dPAxes(3)) & Chr(10)
oStream.Write "A2y = " & CStr(dPAxes(4)) & Chr(10)
oStream.Write "A3y = " & CStr(dPAxes(5)) & Chr(10)
oStream.Write "A1z = " & CStr(dPAxes(6)) & Chr(10)
oStream.Write "A2z = " & CStr(dPAxes(7)) & Chr(10)
oStream.Write "A3Z = " & CStr(dPAxes(8)) & Chr(10)
oStream.Write "M1 = " & CStr(dPMoments(0)) & Chr(10)
oStream.Write "M2 = " & CStr(dPMoments(1)) & Chr(10)
oStream.Write "M3 = " & CStr(dPMoments(2)) & Chr(10)
oStream.Close
End Sub
lumpazepfel- Fédérateur
- Messages : 319
Date d'inscription : 02/11/2015
Localisation : Ensisheim
Re: Macro dans catia inertie
Salut Marc!
Merci pour ta réponse c'est une bonne piste pour avancer, cependant je ne peux programmer qu'en VBS dans Catia sinon il me jette!
J'ai déjà fais toute une macro de tri basée sur le texte normalisé renvoyer par la fonction mesure d'inertie... Je récupère tous les détails pièces par pièces des différents assemblages.
Merci pour ta réponse c'est une bonne piste pour avancer, cependant je ne peux programmer qu'en VBS dans Catia sinon il me jette!
J'ai déjà fais toute une macro de tri basée sur le texte normalisé renvoyer par la fonction mesure d'inertie... Je récupère tous les détails pièces par pièces des différents assemblages.
Ponpon- timide
- Messages : 16
Date d'inscription : 28/04/2015
Localisation : Lyon
Sujets similaires
» Macro Catia v5 r27
» Macro VBA - Enregistrer sous de tous les CATProduct et CATPart uniquement présents dans CATIA.ActiveDocument ?
» Macro Excel Catia
» Macro nomenclature et masse CATIA
» Macro Changement de la couleur d'un Part dans un Product suivant une recherche du nom dans un tableau excel
» Macro VBA - Enregistrer sous de tous les CATProduct et CATPart uniquement présents dans CATIA.ActiveDocument ?
» Macro Excel Catia
» Macro nomenclature et masse CATIA
» Macro Changement de la couleur d'un Part dans un Product suivant une recherche du nom dans un tableau excel
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum