Sketch profile control
Description
This sample demonstrates the usage of the Profiles API to control the shape of the profile. The sample creates three concntric circles and creates an extrusion of the region between the inner circles.
Code Samples
Public Sub SketchProfileControl()
' 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. Since it's being created on
' one of the base workplanes we know the orientation it will be created in
' and don't need to worry about controlling it. Because of this we also
' know the origin of the sketch plane will be at (0,0,0) in model space.
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 3 concentric circles.
Dim oCircle1 As SketchCircle
Set oCircle1 = oSketch.SketchCircles.AddByCenterRadius( _
oTransGeom.CreatePoint2d(5, 5), 6)
Dim oCircle2 As SketchCircle
Set oCircle2 = oSketch.SketchCircles.AddByCenterRadius( _
oTransGeom.CreatePoint2d(5, 5), 4)
Dim oCircle3 As SketchCircle
Set oCircle3 = oSketch.SketchCircles.AddByCenterRadius( _
oTransGeom.CreatePoint2d(5, 5), 2)
' Create a profile.
Dim oProfile As Profile
Set oProfile = oSketch.Profiles.AddForSolid
' Modify the profile: the returned profile consists of 3
' paths each corresponding to a sketch circle. The desired
' result is that the innermost path removes material and the
' second path adds material. The outermost path is not needed
' and is hence deleted.
Dim oProfPath As ProfilePath
For Each oProfPath In oProfile
If oProfPath.Item(1).SketchEntity Is oCircle3 Then
oProfPath.AddsMaterial = False
ElseIf oProfPath.Item(1).SketchEntity Is oCircle2 Then
oProfPath.AddsMaterial = False
Else
oProfPath.Delete
End If
Next
' Create a base extrusion 1cm thick.
Dim oExtrudeDef As ExtrudeDefinition
Set oExtrudeDef = oCompDef.Features.ExtrudeFeatures.CreateExtrudeDefinition(oProfile, kJoinOperation)
Call oExtrudeDef.SetDistanceExtent(1, kNegativeExtentDirection)
Dim oExtrude As ExtrudeFeature
Set oExtrude = oCompDef.Features.ExtrudeFeatures.Add(oExtrudeDef)
'Make the sketch visible for better visualization
oSketch.Visible = True
End Sub