Option Explicit
' COPYRIGHT DASSAULT SYSTEMES 2001
Dim Language as String
Language="VBScript"
' ***********************************************************************
' Purpose: This macro:
' 1 - Checks whether the active document is a CATPart
' 2 - Retrieves the Relations collection
' 3 - Creates the rule below
' if PartBody\Hole.1\Diameter > 10mm
' Message The hole diameter is PartBody\Hole.1\Diameter
' 4 - Creates the check below:
' PartBody\Pad.1\FirstLimit\Length > 100mm
'
' Assumptions:
' This macro is intended to be run on the
' KwrMacro0.CATPart document or any CATPart document
' with the appropriate parameters (PartBody\Hole.1\Diameter
' and PartBody\Pad.1\FirstLimit\Length)
'
'
'
' Author: Carole ROULLE, Pierre Grignon
' Languages: VBScript
' Locales: English (United States)
' CATIA Level: V5R6
' revision V5R13
' ***********************************************************************
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,,"No Doc Path Defined"
End If
' -----------------------------------------------------------
' Open the Part document
Dim sFilePath
sFilePath = CATIA.FileSystem.ConcatenatePaths(sDocPath, _
"online\CAAScdKniUseCases\samples\KwrMacro0.CATPart")
Dim oDoc As Document
set oDoc = CATIA.Documents.Open(sFilePath)
' Set the CATIA popup file alerts to False
' It prevents to stop the macro at each alert during its execution
CATIA.DisplayFileAlerts = False
' Retrieve your active document - CATIA is your application
' You get the active document by using the ActiveDocument property
' on your application object
Dim oActiveDoc As Document
Set oActiveDoc = CATIA.ActiveDocument
' Check whether the document is a CATPart
If (InStr(oActiveDoc.Name,".CATPart")) <> 0 Then
' Retrieve the collection object which contains
' all the document relations.
' The statements below are only valid when the active
' document is a CATPart
Dim oRelations As Relations
Set oRelations = oActiveDoc.Part.Relations
' Create the rule below:
' if PartBody\Hole.1\Diameter > 10mm
' Message The hole diameter is , PartBody\Hole.1\Diameter)
Dim Rule0 As Rule
Set Rule0 = oRelations.CreateProgram("Rule.1",_
"", "" +_
chr(10)_
+ "if PartBody\Hole.1\Diameter > 10mm" +_
chr(10) +_
"Message (""The hole diameter is # "", PartBody\Hole.1\Diameter)" )
' Create the check below:
' PartBody\Pad.1\FirstLimit\Length > 100mm
Dim Check1 As Check
Set Check1 = oRelations.CreateCheck ( "Check.1", "Increase the pad thickness",_
"/* Check created by CRE 03/16/00 */" +_
chr(10) + "PartBody\Pad.1\FirstLimit\Length > 100mm" )
' Update the document
CATIA.ActiveDocument.Part.Update
else
MsgBox "The active document must be a CATPart"
End If
End Sub