Option Explicit
' COPYRIGHT DASSAULT SYSTEMES 2005
' *****************************************************************************
' Purpose: This sample illustrates how to delete a logical line instance,
' and a Group instance in a Distributive System document.
'
'
' Assumption: Looks for document CAAPspEduIn.CATProduct.
'
' Languages: VBScript
' Locales: English
' CATIA Level: V5R15
' *****************************************************************************
'--- strMessage_g is a global variable visible to all private Sub/Function
Dim strMessage_g As String
Sub CATMain()
' ---------------------------------------------------------------------
' Optional: allows to find the sample wherever it's installed
dim sDocPath As String
dim sDocFullPath As String
sDocPath=CATIA.SystemService.Environ("CATDocView")
If (Not CATIA.FileSystem.FolderExists(sDocPath)) Then
Err.Raise 9999,sDocPath,"No Doc Path Defined"
End If
' ------------------------------------------------------------------
' Open the Distributive system document
Dim objPspDoc As Document
sDocFullPath = CATIA.FileSystem.ConcatenatePaths(sDocPath, _
"online\CAAScdPspUseCases\samples\CAAPspEduIn.CATProduct")
If (CATIA.FileSystem.FileExists(sDocFullPath) = False) then
MsgBox sDocFullPath & " doesn't exist"
Exit Sub
End IF
strMessage_g = sDocFullPath
'MsgBox strMessage_g
Set objPspDoc = CATIA.Documents.Open(sDocFullPath)
strMessage_g = _
"-------------------------------------------------------------" & vbCr
strMessage_g = strMessage_g & _
"Output traces from CAAPspDeletePart.CATScript" & vbCrLf
Dim objPrdRoot As Product
Dim objPspWorkbench As PspWorkbench
'
' Find the top node (PspWorkbench)of the Distributive System object tree.
'
If ( Not ( objPspDoc Is Nothing ) ) Then
Set objPrdRoot = objPspDoc.Product
If ( Not ( objPrdRoot Is Nothing ) ) Then
Set objPspWorkbench = objPrdRoot.GetTechnologicalObject("PspWorkbench")
End If
End If
Dim objPspApplication As PspApplication
Dim objPspAppFactory As PspAppFactory
'-----------------------------------------------------------------------
' Get PspWorkBench, PspApplication
'-----------------------------------------------------------------------
If ( objPspWorkbench Is Nothing ) Then
strMessage_g = strMessage_g & "Unable to get PspWorkbench" & vbCr
Else
strMessage_g = strMessage_g & "Success in getting PspWorkbench" & vbCr
End If
If ( Not ( objPspWorkbench Is Nothing ) ) Then
Set objPspApplication = objPspWorkbench.GetApplication(catPspIDLCATPiping)
If ( Not(objPspApplication Is Nothing) ) Then
strMessage_g = strMessage_g & "Success in getting objPspApplication" _
& vbCr
objPspApplication.Initialization()
End If
End If '--- If ( Not ( objPspWorkbench Is Nothing )...
Dim objPspID As PspID
Dim iIdx As Integer
'-----------------------------------------------------------------------
' Create a Group, list groups and Delete group
'-----------------------------------------------------------------------
If ( Not ( objPspWorkbench Is Nothing ) And _
Not ( objPspApplication Is Nothing ) ) Then
Dim objLGroups As PspListOfObjects
Dim objPspGroup As PspGroup
Set objPspAppFactory = objPspWorkbench.GetInterface( _
"CATIAPspAppFactory", objPspApplication )
If ( Not ( objPspAppFactory Is Nothing ) ) Then
Dim strGroupType As String
Dim strGroupID As String
strGroupType = "CATPipSpool"
strGroupID = "PipingSpoolID"
Set objPspGroup = objPspAppFactory.CreateGroup (objPrdRoot, _
strGroupType, strGroupID)
If ( Not (objPspGroup Is Nothing) ) Then
strMessage_g = strMessage_g & "Created Group object: " & _
strGroupID & vbCr
End If
Set objLGroups = objPspAppFactory.ListGroups (objPrdRoot)
If ( Not ( objLGroups Is Nothing ) ) Then
strMessage_g = strMessage_g & _
"Number of Groups=" & objLGroups.Count & vbCr
'-----------------------------------------
' Display all the group information
'-----------------------------------------
If ( objLGroups.Count > 0 ) Then
For iIdx = 1 To objLGroups.Count
Set objPspID = objLGroups.Item(iIdx,"CATIAPspID")
If ( Not (objPspID Is Nothing) ) Then
strMessage_g = strMessage_g & "Group object ID=" _
& objPspID.GetID & vbCr
End If
Next ' End for loop indx = iIdx
End if
End If
'-------------------------------------------
' Delete group
If ( Not (objPspGroup Is Nothing) ) Then
objPspAppFactory.DeleteGroup objPspGroup
strMessage_g = strMessage_g & "Deleted Group successfully :" _
& strGroupID & vbCr
End If
End If
End If '--- If ( Not ( objPspWorkbench Is Nothing ) and objPspApplication
'-----------------------------------------------------------------------
' Create a Logical line instance, list line and Delete new instance
'-----------------------------------------------------------------------
If ( Not ( objPspAppFactory Is Nothing ) ) Then
Dim objPspLogLine As PspLogicalLine
Dim objLLines As PspListOfObjects
Dim strLineID As String
strLineID = "U1-P103-6in-CS150R-FG"
' ---------------------
' Create line instance
Set objPspLogLine = objPspAppFactory.GetLogicalLine (objPrdRoot, _
strLineID )
If ( Not (objPspLogLine Is Nothing) ) Then
strMessage_g = strMessage_g & "Create logical line instance ID = " _
& strLineID & vbCr
End If
' ---------------------
' List logical lines
Set objLLines = objPspAppFactory.ListLogicalLines (objPrdRoot)
If ( Not ( objLLines Is Nothing ) ) Then
strMessage_g = strMessage_g & _
"Number of Lines=" & objLLines.Count & vbCr
'-----------------------------------------
' Display all the group information
'-----------------------------------------
If ( objLLines.Count > 0 ) Then
For iIdx = 1 To objLLines.Count
Set objPspID = objLLines.Item(iIdx,"CATIAPspID")
If ( Not (objPspID Is Nothing) ) Then
strMessage_g = strMessage_g & "Line ID =" & _
objPspID.GetID & vbCr
End If
Next ' End for loop indx = iIdx
End if
End If
'-------------------------------------------
' Delete Line
'-------------------------------------------
If ( Not (objPspLogLine Is Nothing) ) Then
objPspAppFactory.DeleteLogicalLine objPspLogLine
strMessage_g = strMessage_g & "Deleted Line successfully :" & _
strLineID & vbCr
End If
End If
strMessage_g = strMessage_g & _
"------------------------------------------------------" & vbCr
MsgBox strMessage_g
End Sub