Option Explicit
' COPYRIGHT DASSAULT SYSTEMES 2001
Dim Language as String
Language="VBScript"
' ***********************************************************************
' Purpose: This macro:
' 1 - Creates a rule base
' 2 - Adds the check below to this rulebase
' (for all) H:Hole
' H.Diameter>12mm
' 3 - Determines whether the rule base is to be solved or not
' 4 - Solves the rulebase if the rule base is to be solved
' 5 - Highlight the failed items
'
' Assumptions:
' This macro is intended to be run on the
' CAAKhwRuleBaseCreate.CATPart document
'
' Author: Carole ROULLE
' Languages: VBScript
' Locales: English (United States)
' CATIA Level: V5R6
' ***********************************************************************
Sub CATMain()
CATIA.DisplayFileAlerts = False
Dim oActiveDoc As Document
Set oActiveDoc = CATIA.ActiveDocument
' Check whether the document is a CATPart
If (InStr(oActiveDoc.Name,".CATPart")) <> 0 Then
' Retrieve the Relations collection
Dim oRel As Relations
Set oRel = oActiveDoc.Part.Relations
' Create the RB1 rulebase
Dim oRuleBase As Relation
Set oRuleBase = oRel.CreateRuleBase("RB1")
' Create the RuleSet.1 rule set and the HDiaCheck below
' the created rule set
Dim oCheck As Relation
Set oCheck= oRuleBase.RuleSet.CreateCheck("HDiaCheck","H:Hole","H.Diameter>12mm","RuleSet.1")
' The rule base needs to be solved
' To confirm this, the rule base fingerprint is retrieved
' if the Fingerprint is 0 - the rule base needs be solved
' otherwise it is solved
if (oRuleBase.Fingerprint = 0) then
msgbox "The rule base must be solved - Click OK to solve the rule base"
' Solve the rule base
oRuleBase.Deduce()
else
msgbox "The rule base is solved"
end if
' Highlight the elements not satifying the check criteria
' Reminder: elements are highlighted in the geometry area
' and in the specification tree as well
' Three holes are highlighted after the macro has finished running
oCheck.Highlight
' oRuleBase.Report()
CATIA.ActiveDocument.Part.Update
else MsgBox "The active document must be a CATPart"
end if
End Sub