'COPYRIGHT DASSAULT SYSTEMES 2000 '*********************************************************************** ' Purpose: Create User Material ' Retrieve the material from material catalog ' Apply analysis properties to the material. ' Assumptions: The material catalog is not empty ' Author: bmw ' Languages: CATScript ' Locales: English ' CATIA Level: V5R18 '*********************************************************************** Sub CATMain() '----------------------------------------------------------- 'Optional: allows to find the sample wherever it's installed sDocPath=CATIA.SystemService.Environ("CATDocView") If (Not CATIA.FileSystem.FolderExists(sDocPath)) Then Err.Raise 9999,,"No Doc Path Defined" End If '----------------------------------------------------------- 'Open the CATAnalysis Document sFilePath = CATIA.FileSystem.ConcatenatePaths(sDocPath, "online\CAAScdAniUseCases\samples\Beam.CATAnalysis") Set oAnalysisDocument = CATIA.Documents.Open(sFilePath) 'Retrieve the Analysis Managar and Analysis Model Set oAnalysisManager = oAnalysisDocument.Analysis 'Retrieve the analysis model from list of models Set oAnalysisModels = oAnalysisManager.AnalysisModels Set oAnalysisModel = oAnalysisModels.Item(1)
'Retrieve the material set from list of analysis sets Set oAnalysisSets = oAnalysisModel.AnalysisSets Set oAnalysisSet = oAnalysisSets.ItemByType("MaterialSet") 'Add an new user material Set oAnalysisEntities = oAnalysisSet.AnalysisEntities Set oAnalysisEntity1 = oAnalysisEntities.Add("SAMUserMaterial") 'Load the catalog of materials MaterialFile = CATIA.FileSystem.ConcatenatePaths(sDocPath, "online\CAAScdAniUseCases\samples\CatalogForAutomation.CATMaterial") Set oMaterial_document = CATIA.Documents.Open(MaterialFile) 'Load the catalog of materials Set cFamilies_list = oMaterial_document.Families 'Retrieve the first family of the library Dim ifamily_no As Integer ifamily_no = 1 Set oFirst_family = cFamilies_list.Item(iFamily_no) 'Retrieve the list of materials from the family Set cMaterials_list = oFirst_family.Materials Dim imaterial_no As Integer imaterial_no = 1 Set oMaterial1 = cMaterials_list.Item(imaterial_no) '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") anlysisMaterial.PutValue "SAMShearModulus_11", "1e+10" anlysisMaterial.PutValue "SAMShearModulus_12", "1e+10" anlysisMaterial.PutValue "SAMShearModulus_1Z", "1e+10" anlysisMaterial.PutValue "SAMShearModulus_22", "1e+10" anlysisMaterial.PutValue "SAMShearModulus_2Z", "1e+10" anlysisMaterial.PutValue "SAMShearModulus_33", "1e+10" anlysisMaterial.PutValue "SAMDensity", "7860" anlysisMaterial.PutValue "SAMThermalExpansion_X", "1-e5" anlysisMaterial.PutValue "SAMThermalExpansion_Y", "1-e5" anlysisMaterial.PutValue "SAMThermalExpansion_Z", "1-e5" anlysisMaterial.PutValue "SAMTensileStressLimit", "1e+11" anlysisMaterial.PutValue "SAMCompressiveStressLimit", "2e+11" anlysisMaterial.PutValue "SAMShearStressLimit", "1e+10" 'Apply the material on the User Material linkMode = 0 Set oManager = oAnalysisManager.GetItem("CATMatManagerVBExt") oManager.ApplyMaterialOnUserMaterial oAnalysisEntity1, oMaterial1, linkMode End Sub