Language="VBSCRIPT"
' COPYRIGTH DASSAULT SYSTEMES 2000
' ***********************************************************************
' Purpose: Create a New Analysis document.
' Import on a CATPart document with some publication defined
' Define all preprocessing data based on publications:
' This sample includes some rigid virtual parts that are clampled.
' Launch the Computation.
' Assumtions: Looks for FlangeForVirtualUsage.CATPart stored in the DocView
' Author:
' Languages: VBScript
' Locales: English
' CATIA Level: V5R13
' ***********************************************************************
Sub CATMain()
' -----------------------------------------------------------
' Optional: allows to find the sample wherever it's installed
sDocPath=CATIA.SystemService.Environ("CATDocView")
sSep=CATIA.SystemService.Environ("ADL_ODT_SLASH")
If (Not CATIA.FileSystem.FolderExists(sDocPath)) Then
Err.Raise 9999,,"No Doc Path Defined"
End If
' -----------------------------------------------------------
' Get the collection of documents in session
Set documents1 = CATIA.Documents
' Only one Analysis Document is required
' Create the CATAnalysis Document
Set TheAnalysisDocument = documents1.Add("Analysis")
' if WB name already is "GPSCfg", not to use StartWorkbench
WBName = CATIA.GetWorkbenchId
if (WBName <> "GPSCfg") Then
CATIA.StartWorkbench("GPSCfg")
End If
'_____________________________________________________________________________________
' Start to scan the existing structure of analysis document: Retrieve the AnalysisManager
' and link the analysis to a Part Document
' We call the Import on CATAnalysisImport which implements CATISamImportDefine
Set analysisManager1 = TheAnalysisDocument.Analysis
Dim arrayOfVariantOfShort1(0)
analysisManager1.ImportDefineFile (sDocPath & sSep & "online" & sSep & "CAAScdAniUseCases" & sSep & "samples" & sSep & "FlangeForVirtualUsage.CATPart"),
"CATAnalysisImport", arrayOfVariantOfShort1
' _____________________________________________________________________________________
' Reframe All.
Set specsAndGeomWindow1 = CATIA.ActiveWindow
Set viewer3D1 = specsAndGeomWindow1.ActiveViewer
viewer3D1.Reframe
' _____________________________________________________________________________________
' Scan the analysis document: Retrieve the Pointed documents to extract the reference for preprocessing
Set analysisLinkedDocuments1 = analysisManager1.LinkedDocuments
CATIA.SystemService.Print analysisLinkedDocuments1.Name
If (analysisLinkedDocuments1.Count <> 1 ) Then
Err.Raise 9999,,"NbDoc Lié NE 1"
End If
' _____________________________________________________________________________________
' Retrieve the CATPart Document and associated collection of publications for preprocessing.
Set TheDoc = analysisLinkedDocuments1.Item(1)
CATIA.SystemService.Print TheDoc.FullName
Set product1 = TheDoc.Product
Set publications1 = product1.Publications
' _____________________________________________________________________________________
' Create a Modal Case in the current analysis model.
Set analysisModels1 = analysisManager1.AnalysisModels
Set analysisModel1 = analysisModels1.Item(1)
Set analysisCases1 = analysisModel1.AnalysisCases
Set analysisCase1 = analysisCases1.Add()
Set analysisSets1 = analysisCase1.AnalysisSets
Set analysisSet1 = analysisSets1.Add("RestraintSet", catAnalysisSetIn)
Set analysisSet2 = analysisSets1.Add("MassSet", catAnalysisSetIn)
Set analysisSet3 = analysisCase1.AddSolution("FrequencySet")
Set analysisSet6 = analysisSets1.Add("SensorSet",catAnalysisSetOut)
' _____________________________________________________________________________________
' Create a property set from the Analysis Model to create some Rigid Virtal Parts
Set analysisSets2 = analysisModel1.AnalysisSets
Set analysisSet4 = analysisSets2.ItemByType("PropertySet")
Set analysisEntities1 = analysisSet4.AnalysisEntities
Set analysisEntity1 = analysisEntities1.Add("SAMVirPartRigid")
Set publication1 = publications1.Item("SmallHole")
analysisEntity1.AddSupportFromPublication product1, publication1
Set analysisEntity2 = analysisEntities1.Add("SAMVirPartRigid")
Set publication2 = publications1.Item("SmallHole1")
analysisEntity2.AddSupportFromPublication product1, publication2
Set analysisEntity3 = analysisEntities1.Add("SAMVirPartRigid")
Set publication3 = publications1.Item("SmallHole3")
analysisEntity3.AddSupportFromPublication product1, publication3
Set analysisEntity4 = analysisEntities1.Add("SAMVirPartRigid")
Set publication4 = publications1.Item("SmallHole2")
analysisEntity4.AddSupportFromPublication product1, publication4
' _____________________________________________________________________________________
' Clamp the Rigid Virtal Parts
Set analysisEntities2 = analysisSet1.AnalysisEntities
Set analysisEntity5 = analysisEntities2.Add("SAMClamp")
Set reference1 = analysisManager1.CreateReferenceFromObject(analysisEntity4)
analysisEntity5.AddSupportFromReference reference1, reference1
Set analysisEntity6 = analysisEntities2.Add("SAMClamp")
Set reference2 = analysisManager1.CreateReferenceFromObject(analysisEntity3)
analysisEntity6.AddSupportFromReference reference2, reference2
Set analysisEntity7 = analysisEntities2.Add("SAMClamp")
Set reference3 = analysisManager1.CreateReferenceFromObject(analysisEntity2)
analysisEntity7.AddSupportFromReference reference3, reference3
Set analysisEntity8 = analysisEntities2.Add("SAMClamp")
Set reference4 = analysisManager1.CreateReferenceFromObject(analysisEntity1)
analysisEntity8.AddSupportFromReference reference4, reference4
' _____________________________________________________________________________________
' Distribute some Masses on top of the Part
Set analysisEntities3 = analysisSet2.AnalysisEntities
Set analysisEntity9 = analysisEntities3.Add("SAMDistributedMass")
Set publication5 = publications1.Item("TopFace")
analysisEntity9.AddSupportFromPublication product1, publication5
Set basicComponents1 = analysisEntity9.BasicComponents
Set basicComponent1 = basicComponents1.GetItem("SAMMassMag")
basicComponent1.SetValue "", 0, 0, 0, 25.000000
' _____________________________________________________________________________________
' Read the Value of the Mass
CATIA.SystemService.Print " Mass Applied of the Part: " & basicComponent1.GetValue ("",0,0,0)
' _____________________________________________________________________________________
' Launch Computation.
analysisCase1.Compute
'------------------------------- END END END ----------------------------
CATIA.DisplayFileAlerts = False
' TheAnalysisDocument.Close
End Sub