Récupérer le volume

Voir le sujet précédent Voir le sujet suivant Aller en bas

Récupérer le volume

Message par Ponpon le Mar 23 Aoû 2016 - 3:38

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. scratch Est-ce que vous auriez un exemple fonctionnel?

Bonne soirée!

Ponpon
timide
timide

Messages : 16
Date d'inscription : 28/04/2015
Localisation : Lyon

Revenir en haut Aller en bas

Re: Récupérer le volume

Message par Nico_atomique le Mar 23 Aoû 2016 - 18:28

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:
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 Smile

Nico_atomique
actif
actif

Messages : 38
Date d'inscription : 20/04/2016
Localisation : Marseille/Aix-en-Provence

Revenir en haut Aller en bas

Re: Récupérer le volume

Message par Ponpon le Mar 23 Aoû 2016 - 19:45

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' "

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. Cool


Ponpon
timide
timide

Messages : 16
Date d'inscription : 28/04/2015
Localisation : Lyon

Revenir en haut Aller en bas

Re: Récupérer le volume

Message par Nico_atomique le Mar 23 Aoû 2016 - 19:52

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
actif

Messages : 38
Date d'inscription : 20/04/2016
Localisation : Marseille/Aix-en-Provence

Revenir en haut Aller en bas

Re: Récupérer le volume

Message par Ponpon le Mar 23 Aoû 2016 - 20:52

Oui ça fonctionnement parfaitement merci. Smile

J'ai maintenant un autre petit souci sur la méthode analysismaterial... :p

Voilà mon bout de code Smile

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! bate

Alors que quand je mets par exemple : anlysisMaterial.PutValue "SAMDensity", "100"
cela fonctionne...


Des idées?

Encore merci Nico

Ponpon
timide
timide

Messages : 16
Date d'inscription : 28/04/2015
Localisation : Lyon

Revenir en haut Aller en bas

Re: Récupérer le volume

Message par Nico_atomique le Mar 23 Aoû 2016 - 21:34

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

Nico_atomique
actif
actif

Messages : 38
Date d'inscription : 20/04/2016
Localisation : Marseille/Aix-en-Provence

Revenir en haut Aller en bas

Re: Récupérer le volume

Message par Ponpon le Mar 23 Aoû 2016 - 22:43

En fait je cherche a attribuer une densité à la pièce via l'attribution d'un matériaux.

Ponpon
timide
timide

Messages : 16
Date d'inscription : 28/04/2015
Localisation : Lyon

Revenir en haut Aller en bas

Re: Récupérer le volume

Message par Ponpon le Mar 23 Aoû 2016 - 23:14

Ok j'ai trouvé il faut écrire

anlysisMaterial.PutValue "SAMDensity", ""& dens1


Ponpon
timide
timide

Messages : 16
Date d'inscription : 28/04/2015
Localisation : Lyon

Revenir en haut Aller en bas

Re: Récupérer le volume

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


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