Option Explicit
' COPYRIGHT DASSAULT SYSTEMES 2004
' *****************************************************************************
' Purpose: Create a schematic document.
' Languages: VBScript
' Locales: English
' CATIA Level: V5R15
' *****************************************************************************
Sub CATMain()
' -------------------------------------------------------------------------
' Optional: allows to find the sample wherever it's installed
dim sDocPath As String
sDocPath=CATIA.SystemService.Environ("CATDocView")
If (Not CATIA.FileSystem.FolderExists(sDocPath)) Then
Err.Raise 9999,sDocPath,"No Doc Path Defined"
End If
dim sSavePath As String
sSavePath=CATIA.SystemService.Environ("CATSavePath")
CATIA.SystemService.Print "CATSavePath = " & sSavePath
If (Not CATIA.FileSystem.FolderExists(sSavePath)) Then
Err.Raise 9999,sSavePath,"No Path for saving document"
End If
' Open main schematic P&ID design document
Dim sFilePath
sFilePath = CATIA.FileSystem.ConcatenatePaths(sDocPath, _
"online\CAAScdSchUseCases\samples\CAASCH_Detail01.CATProduct")
Dim objSchDoc As Document
Set objSchDoc = CATIA.Documents.Open(sFilePath)
Dim strMessage As String
strMessage = _
"--------------------------------------------------------------------" & vbCr
strMessage = strMessage & _
"Output traces from CAASchCreateSchDocument.CATScript" & vbCrLf
'
' Find the top node of the schematic object tree - schematic root.
Dim objPrdRoot As Product
Dim objSchRoot As SchematicRoot
If ( Not ( objSchDoc Is Nothing ) ) Then
Set objPrdRoot = objSchDoc.Product
If ( Not ( objPrdRoot Is Nothing ) ) Then
Set objSchRoot = objPrdRoot.GetTechnologicalObject("SchematicRoot")
End If
End If
Dim objSchSession As SchSession
Dim objSchDocNew As Document
Dim bInteractive As boolean
If ( Not ( objSchRoot Is Nothing ) ) Then
'-----------------------------------------------------------------------
' Get the schematic session.
'-----------------------------------------------------------------------
Set objSchSession = objSchRoot.GetSchematicSession
If ( Not ( objSchSession Is Nothing ) ) Then
strMessage = strMessage & "Got schematic session" & vbCr
'---------------------------------------------------------------------
' Create another schematic document.
'---------------------------------------------------------------------
'bInteractive = true
bInteractive = false
objSchSession.CreateDocument "CATProduct",bInteractive,objSchDocNew
If ( Not ( objSchDocNew Is Nothing ) ) Then
Set objPrdRoot = Nothing
Set objSchRoot = Nothing
Set objPrdRoot = objSchDocNew.Product
If ( Not ( objPrdRoot Is Nothing ) ) Then
Set objSchRoot = objPrdRoot.GetTechnologicalObject("SchematicRoot")
End If
If ( Not ( objSchRoot Is Nothing ) ) Then
objSchRoot.SetDrawingStandard catISO
strMessage = strMessage & "drawing standard set to catISO" & vbCr
Dim std As CatDrawingStandard
std = objSchRoot.GetDrawingStandard
strMessage = strMessage & "drawing standard = " & std & vbCr
End If
Dim strDocName As String
strDocName = objSchDocNew.FullName
strMessage = strMessage & "document created" & vbCr
strMessage = strMessage & "default name = " & strDocName & vbCr
strDocName = CATIA.FileSystem.ConcatenatePaths(sSavePath, _
"SampleOutput_SchDoc01.CATProduct")
objSchDocNew.SaveAs strDocName
strMessage = strMessage & "document created" & vbCr
strMessage = strMessage & "document saved as " & strDocName & vbCr
End If
End If '--- If ( Not ( objSchDocNew ...
End If '----If ( Not ( objSchRoot Is Nothing )...
strMessage = strMessage & _
"--------------------------------------------------------------------" & vbCr
MsgBox strMessage
End Sub