' COPYRIGHT DASSAULT SYSTEMES 2001 Option Explicit ' *********************************************************************** ' Purpose : Compute clash and filter results. ' Assumptions : A CATProduct document should be active and some components selected. ' Author : ' Languages : VBScript ' Locales : English ' CATIA Level : V5R6 ' *********************************************************************** Sub CATMain() 'Acquire the filtering value Dim sFilterValue As String sFilterValue = "-1." 'Default value sFilterValue = InputBox("What is the filtering value ?", "Filtering value", sFilterValue) If (sFilterValue <> "") Then Dim dFilterValue As Double dFilterValue = Cdbl(sFilterValue) ' Retrieve the Clashes collection Dim cClashes As Clashes Set cClashes = CATIA.ActiveDocument.Product.GetTechnologicalObject("Clashes") ' Create a clash with selected components and compute it Dim oClash As Clash Set oClash = cClashes.AddFromSel oClash.ComputationType = catClashComputationTypeInsideOne oClash.InterferenceType = catClashInterferenceTypeContact oClash.Compute ' Filter conflicts Dim cConflicts As Conflicts Set cConflicts = oClash.Conflicts Dim I As Integer For I = 1 To cConflicts.Count Dim oConflict As Conflict Set oConflict = cConflicts.Item(I) If (oConflict.Type = catConflictTypeClash) Then If (oConflict.Value > dFilterValue) Then oConflict.Status = catConflictStatusIrrelevant oConflict.Comment = "Automatic filter : penetration less than " & dFilterValue End If ElseIf (oConflict.Type = catConflictTypeContact) Then oConflict.Status = catConflictStatusIrrelevant oConflict.Comment = "Automatic filter : contact" End If Next End If End Sub