Récupérer le volume
2 participants
Page 1 sur 1
Récupérer le volume
Bonjour à tous,
J'essaye de créer une macro pour obtenir le volume d'une part à l'aide de la fonction GetVolume.
Je ne comprends pas pourquoi cela ne fonctionne pas. Est-ce que vous auriez un exemple fonctionnel?
Bonne soirée!
J'essaye de créer une macro pour obtenir le volume d'une part à l'aide de la fonction GetVolume.
Je ne comprends pas pourquoi cela ne fonctionne pas. Est-ce que vous auriez un exemple fonctionnel?
Bonne soirée!
Ponpon- timide
- Messages : 16
Date d'inscription : 28/04/2015
Localisation : Lyon
Re: Récupérer le volume
Salut,
Attention, GetVolume ne fonctionne que pour les structure object.
Si tu essaies d'obtenir le volume d'une Part ou d'un product, tu as deux solutions: soit utiliser Analyze.Volume soit utiliser GetTechnologicalObject("Inertia")
Exemple avec GetTechnologicalObject:
J'espère que ça t'aidera
Attention, GetVolume ne fonctionne que pour les structure object.
Si tu essaies d'obtenir le volume d'une Part ou d'un product, tu as deux solutions: soit utiliser Analyze.Volume soit utiliser GetTechnologicalObject("Inertia")
Exemple avec GetTechnologicalObject:
- Code:
Dim objProduct As Part
Dim objInertia As Inertia
Set objInertia = objProduct.GetTechnologicalObject("Inertia")
Dim getVolume As String
getVolume = objInertia.Volume
J'espère que ça t'aidera
Nico_atomique- actif
- Messages : 38
Date d'inscription : 19/04/2016
Localisation : Marseille/Aix-en-Provence
Re: Récupérer le volume
Salut Nico,
Je n'y parviens pas la méthode est surement bonne. Je me demande si je n'ai pas un problème de licence.
J'ai un message d'erreur : " Cet objet ne gère pas cette propriété ou cette méthode: 'objProfuct.GetTechnologicalObject' "
En tout cas merci pour ta réponse rapide.
Je n'y parviens pas la méthode est surement bonne. Je me demande si je n'ai pas un problème de licence.
J'ai un message d'erreur : " Cet objet ne gère pas cette propriété ou cette méthode: 'objProfuct.GetTechnologicalObject' "
- Code:
Sub CATMain()
Set objProduct = CATIA.ActiveDocument
Dim objProduct As Part
Dim objInertia As Inertia
Set objInertia = objProduct.GetTechnologicalObject("Inertia")
Dim getVolume As String
getVolume = objInertia.Volume
MsgBox(getVolume)
End Sub
En tout cas merci pour ta réponse rapide.
Ponpon- timide
- Messages : 16
Date d'inscription : 28/04/2015
Localisation : Lyon
Re: Récupérer le volume
J'ai trouvé une autre façon de faire via le SPA Workbench et le measurable, cette méthode marche pour sur d'après son auteur.
- Code:
Sub CATMain()
Set objPart = CATIA.ActiveDocument.Part
Set objRef = objPart.CreateReferenceFromObject(objPart.MainBody)
Set objSPAWkb = CATIA.ActiveDocument.GetWorkBench("SPAWorkbench")
Set objMeasurable = objSPAWkb.GetMeasurable(objRef)
MsgBox objMeasurable.Volume
End Sub
Nico_atomique- actif
- Messages : 38
Date d'inscription : 19/04/2016
Localisation : Marseille/Aix-en-Provence
Re: Récupérer le volume
Oui ça fonctionnement parfaitement merci.
J'ai maintenant un autre petit souci sur la méthode analysismaterial... :p
Voilà mon bout de code
Je sais grâce au MsgBox que ma valeur dens1 existe et il ne veut pas l'attribuer!
Alors que quand je mets par exemple : anlysisMaterial.PutValue "SAMDensity", "100"
cela fonctionne...
Des idées?
Encore merci Nico
J'ai maintenant un autre petit souci sur la méthode analysismaterial... :p
Voilà mon bout de code
- Code:
Sub CREERMAT
'Load the catalog of materials
MaterialFile ="J:\DOC_V5\V5R22\French\online\French\CAAScdAniUseCases\samples\CatalogForAutomation.CATMaterial"
Set oMaterial_document = CATIA.Documents.Open(MaterialFile)
Set cFamilies_list = oMaterial_document.Families
Set oFirst_family = cFamilies_list.Item(1)
Set cMaterials_list = oFirst_family.Materials
'Retrieve a material from the list and create analysis material
imaterial_no = 1
Set oMaterial1 = cMaterials_list.Item(imaterial_no)
Set anlysisMaterial = oMaterial1.CreateAnalysisData("SAMAnisotropicMaterial")
Dim dens1 as String
dens1=mass1/vol1
MsgBox dens1
anlysisMaterial.PutValue "SAMDensity", dens1
End Sub
Je sais grâce au MsgBox que ma valeur dens1 existe et il ne veut pas l'attribuer!
Alors que quand je mets par exemple : anlysisMaterial.PutValue "SAMDensity", "100"
cela fonctionne...
Des idées?
Encore merci Nico
Ponpon- timide
- Messages : 16
Date d'inscription : 28/04/2015
Localisation : Lyon
Re: Récupérer le volume
Tu cherches à extraire la densité du matériau? Ou la densité de la pièce?
Si tu cherches à extraire la densité de la pièce, il te suffit de faire un
Set objPart = CATIA.ActiveDocument.Part
MsgBox(objPart.Density)
Et après tu peux récupérer cette valeur pour la mettre dans ta dernière commande
Si tu cherches à extraire la densité de la pièce, il te suffit de faire un
Set objPart = CATIA.ActiveDocument.Part
MsgBox(objPart.Density)
Et après tu peux récupérer cette valeur pour la mettre dans ta dernière commande
Nico_atomique- actif
- Messages : 38
Date d'inscription : 19/04/2016
Localisation : Marseille/Aix-en-Provence
Re: Récupérer le volume
En fait je cherche a attribuer une densité à la pièce via l'attribution d'un matériaux.
Ponpon- timide
- Messages : 16
Date d'inscription : 28/04/2015
Localisation : Lyon
Re: Récupérer le volume
Ok j'ai trouvé il faut écrire
anlysisMaterial.PutValue "SAMDensity", ""& dens1
anlysisMaterial.PutValue "SAMDensity", ""& dens1
Ponpon- timide
- Messages : 16
Date d'inscription : 28/04/2015
Localisation : Lyon
Sujets similaires
» macro VBA: recupérer le format d'un CATdrawing
» Recupérer nom et chemin du fichier actif
» Récupérer un événement CATIA V5
» Récupérer les propriétés d'une part
» Récupérer le tolérancement géométrique d'un drawing
» Recupérer nom et chemin du fichier actif
» Récupérer un événement CATIA V5
» Récupérer les propriétés d'une part
» Récupérer le tolérancement géométrique d'un drawing
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum