' COPYRIGTH DASSAULT SYSTEMES 2004
Option Explicit
' ***********************************************************************
' Purpose: Creates and modifies an assembly hole
' Assumtions: Looks for AssemblyHole.CATProduct in the DocView
' Languages: VBSCRIPT
' Locales: English
' CATIA Level: 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 Product document
' -----------------------------------------------------------
Dim sFilePath
sFilePath = CATIA.FileSystem.ConcatenatePaths(sDocPath, _
"online\CAAScdAsmUseCases\samples\AssemblyHole.CATProduct")
Dim oDoc As Document
set oDoc = CATIA.Documents.Open(sFilePath)
' --------------------------
' Get the different products
' --------------------------
Dim oRootProduct As Product
Set oRootProduct = CATIA.ActiveDocument.Product
Dim oSkeletton As Product
Set oSkeletton = oRootProduct.Products.Item ( "Skeletton.1" )
Dim oPlaque1 As Product
Set oPlaque1 = oRootProduct.Products.Item ( "Plaque1.1" )
Dim oPlaque2 As Product
Set oPlaque2 = oRootProduct.Products.Item ( "Plaque2.1" )
' -----------------------------------------
' Get the positioning sketch to create hole
' -----------------------------------------
Dim oSkelDocument As PartDocument
Set oSkelDocument = CATIA.Documents.Item("Skeletton.CATPart")
Dim oBody As Body
Set oBody = oSkelDocument.Part.Bodies.Item("PartBody")
Dim oPosSketch As Sketch
Set oPosSketch = oBody.Sketches.Item("Positioning sketch for assembly hole")
' -----------------------------------------
' Get the AssemblyFeatures technical object
' -----------------------------------------
Dim oAssemblyFeatures As AssemblyFeatures
Set oAssemblyFeatures = oRootProduct.GetTechnologicalObject("AssemblyFeatures")
' -------------------------------------------------------------
' Create assembly hole
' positioning sketch : oPosSketch
' instance containing the positioning sketch : oSkeletton
' instance defining the positioning of the hole : oSkeletton
' depth : 10 mm
' -------------------------------------------------------------
Dim oAssemblyHole As AssemblyHole
Set oAssemblyHole = oAssemblyFeatures.AddAssemblyHole(oPosSketch, oSkeletton, 10.000000, oSkeletton)
' ------------------------------------------------------------
' Affects parts to the assembly hole : Plaque1.1 and Plaque2.1
' ------------------------------------------------------------
oAssemblyHole.AddAffectedComponent oPlaque1
oAssemblyHole.AddAffectedComponent oPlaque2
' --------------------------------------------
' modify the hole parameters
' - diameter 10 mm
' - counterbored
' - V-bottom
' - length
' --------------------------------------------
Dim oDiameter As Length
Set oDiameter = oAssemblyHole.Diameter
oDiameter.Value = 10.000000
oAssemblyHole.Type = catCounterboredHole
oAssemblyHole.AnchorMode = catExtremPointHoleAnchor
Dim oHeadDiameter As Length
Set oHeadDiameter = oAssemblyHole.HeadDiameter
oHeadDiameter.Value = 15.000000
Dim oHeadDepth As Length
Set oHeadDepth = oAssemblyHole.HeadDepth
oHeadDepth.Value = 5.000000
Dim oBottomLimit As Limit
Set oBottomLimit = oAssemblyHole.BottomLimit
oBottomLimit.LimitMode = catOffsetLimit
Dim oDepth As Length
Set oDepth = oBottomLimit.Dimension
oDepth.Value = 30.000000
oAssemblyHole.BottomType = catVHoleBottom
Dim oBottomAngle As Angle
Set oBottomAngle = oAssemblyHole.BottomAngle
oBottomAngle.Value = 120.000000
' --------------------------------------
' Update the Product
' --------------------------------------
oRootProduct.Update
' --------------------------------------
' The end...
' --------------------------------------
End Sub