Share

Add iMate Definition

Description

Add iMate definitions using AddMateiMateDefinition and AddInsertiMateDefinition.

Code Samples

Public Sub CreateiMateDefinitionSample()
    ' Create a new part document, using the default part template.
    Dim oPartDoc As PartDocument
    Set oPartDoc = ThisApplication.Documents.Add(kPartDocumentObject, _
                ThisApplication.FileManager.GetTemplateFile(kPartDocumentObject))

    ' Set a reference to the component definition.
    Dim oCompDef As PartComponentDefinition
    Set oCompDef = oPartDoc.ComponentDefinition

    ' Create a new sketch on the X-Y work plane.
    Dim oSketch As PlanarSketch
    Set oSketch = oCompDef.Sketches.Add(oCompDef.WorkPlanes(3))

    ' Set a reference to the transient geometry object.
    Dim oTransGeom As TransientGeometry
    Set oTransGeom = ThisApplication.TransientGeometry

    ' Draw a 4cm x 3cm rectangle with the corner at (0,0)
    Dim oRectangleLines As SketchEntitiesEnumerator
    Set oRectangleLines = oSketch.SketchLines.AddAsTwoPointRectangle( _
                                oTransGeom.CreatePoint2d(0, 0), _
                                oTransGeom.CreatePoint2d(4, 3))

    ' Create a profile.
    Dim oProfile As Profile
    Set oProfile = oSketch.Profiles.AddForSolid

    ' Create a base extrusion 1cm thick.
    Dim oExtrudeDef As ExtrudeDefinition
    Set oExtrudeDef = oCompDef.Features.ExtrudeFeatures.CreateExtrudeDefinition(oProfile, kNewBodyOperation)
    Call oExtrudeDef.SetDistanceExtent(1, kNegativeExtentDirection)
    Dim oExtrude1 As ExtrudeFeature
    Set oExtrude1 = oCompDef.Features.ExtrudeFeatures.Add(oExtrudeDef)

    ' Get the top face of the extrusion to use for creating the new sketch.
    Dim oFrontFace As Face
    Set oFrontFace = oExtrude1.StartFaces.Item(1)

    ' Create a new sketch on this face, but use the method that allows you to
    ' control the orientation and orgin of the new sketch.
    Set oSketch = oCompDef.Sketches.AddWithOrientation(oFrontFace, _
                    oCompDef.WorkAxes.Item(1), True, True, oCompDef.WorkPoints(1))

    ' Create a sketch circle with the center at (2, 1.5).
    Dim oCircle As SketchCircle
    Set oCircle = oSketch.SketchCircles.AddByCenterRadius(oTransGeom.CreatePoint2d(2, 1.5), 0.5)
  
    ' Create a profile.
    Set oProfile = oSketch.Profiles.AddForSolid

    ' Create the second extrude (a hole).
    Dim oExtrude2 As ExtrudeFeature
    Set oExtrude2 = oCompDef.Features.ExtrudeFeatures.AddByThroughAllExtent( _
                        oProfile, kNegativeExtentDirection, kCutOperation)
                     
    ' Create a mate iMateDefinition on a side face of the first extrude.
    Dim oMateiMateDefinition As MateiMateDefinition
    Set oMateiMateDefinition = oCompDef.iMateDefinitions.AddMateiMateDefinition( _
                        oExtrude1.SideFaces.Item(1), 0, , , "MateA")
    
    ' Create a match list of names to use for the next iMateDefinition.
    Dim strMatchList(2) As String
    strMatchList(0) = "InsertA"
    strMatchList(1) = "InsertB"
    strMatchList(2) = "InsertC"
    
    ' Create an insert iMateDefinition on the cylindrical face of the second extrude.
    Dim oInsertiMateDefinition As InsertiMateDefinition
    Set oInsertiMateDefinition = oCompDef.iMateDefinitions.AddInsertiMateDefinition( _
                        oExtrude2.SideFaces.Item(1), False, 0, , "InsertA", strMatchList)
End Sub


Was this information helpful?