Delete Face, Boundary Patch and Stitch features
Description
Demonstrates creating Face, Boundary Patch and Stitch features.
Code Samples
Public Sub BoundaryPatchFeature()
' 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, kJoinOperation)
Call oExtrudeDef.SetDistanceExtent(1, kNegativeExtentDirection)
Dim oExtrude As ExtrudeFeature
Set oExtrude = oCompDef.Features.ExtrudeFeatures.Add(oExtrudeDef)
' Get the top face of the extrusion
Dim oFrontFace As Face
Set oFrontFace = oExtrude.StartFaces.Item(1)
Dim oEdgeColl As EdgeCollection
Set oEdgeColl = ThisApplication.TransientObjects.CreateEdgeCollection
' Collect up the edges to create boundary patch.
Dim oEdge As Edge
For Each oEdge In oFrontFace.Edges
oEdgeColl.Add oEdge
Next
' Create a Delete Face feature to delete the top face.
Dim oFaceColl As FaceCollection
Set oFaceColl = ThisApplication.TransientObjects.CreateFaceCollection
Call oFaceColl.Add(oFrontFace)
Dim oDeleteFace As DeleteFaceFeature
Set oDeleteFace = oCompDef.Features.DeleteFaceFeatures.Add(oFaceColl)
Dim oBoundaryPatchDef As BoundaryPatchDefinition
Set oBoundaryPatchDef = oCompDef.Features.BoundaryPatchFeatures.CreateBoundaryPatchDefinition
' Create a boundary patch definition based on the edges of the deleted face.
Call oBoundaryPatchDef.BoundaryPatchLoops.Add(oEdgeColl)
' Set the conditions on each edge to be tangent.
For Each oEdge In oEdgeColl
Call oBoundaryPatchDef.BoundaryPatchLoops.Item(1).SetBoundaryCondition(oEdge, kTangentBoundaryPatchCondition)
Next
' Create the boundary patch feature based on the definition.
Dim oBoundaryPatch As BoundaryPatchFeature
Set oBoundaryPatch = oCompDef.Features.BoundaryPatchFeatures.Add(oBoundaryPatchDef)
' Stitch the boundary patch surface to the original body.
Dim oSurfaceToStitch As ObjectCollection
Set oSurfaceToStitch = ThisApplication.TransientObjects.CreateObjectCollection
Call oSurfaceToStitch.Add(oBoundaryPatch.SurfaceBodies.Item(1))
Call oSurfaceToStitch.Add(oCompDef.SurfaceBodies.Item(1))
Dim oStitch As KnitFeature
Set oStitch = oCompDef.Features.KnitFeatures.Add(oSurfaceToStitch)
End Sub
' Create a new part document, using the default part template.
Dim oPartDoc As PartDocument
oPartDoc = ThisApplication.Documents.Add(kPartDocumentObject, _
ThisApplication.FileManager.GetTemplateFile(kPartDocumentObject))
' Set a reference to the component definition.
Dim oCompDef As PartComponentDefinition
oCompDef = oPartDoc.ComponentDefinition
' Create a new sketch on the X-Y work plane.
Dim oSketch As PlanarSketch
oSketch = oCompDef.Sketches.Add(oCompDef.WorkPlanes(3))
' Set a reference to the transient geometry object.
Dim oTransGeom As TransientGeometry
oTransGeom = ThisApplication.TransientGeometry
' Draw a 4cm x 3cm rectangle with the corner at (0,0)
Dim oRectangleLines As SketchEntitiesEnumerator
oRectangleLines = oSketch.SketchLines.AddAsTwoPointRectangle( _
oTransGeom.CreatePoint2d(0, 0), _
oTransGeom.CreatePoint2d(4, 3))
' Create a profile.
Dim oProfile As Profile
oProfile = oSketch.Profiles.AddForSolid
' Create a base extrusion 1cm thick.
Dim oExtrudeDef As ExtrudeDefinition
oExtrudeDef = oCompDef.Features.ExtrudeFeatures.CreateExtrudeDefinition(oProfile, kJoinOperation)
Call oExtrudeDef.SetDistanceExtent(1, kNegativeExtentDirection)
Dim oExtrude As ExtrudeFeature
oExtrude = oCompDef.Features.ExtrudeFeatures.Add(oExtrudeDef)
' Get the top face of the extrusion
Dim oFrontFace As Face
oFrontFace = oExtrude.StartFaces.Item(1)
Dim oEdgeColl As EdgeCollection
oEdgeColl = ThisApplication.TransientObjects.CreateEdgeCollection
' Collect up the edges to create boundary patch.
Dim oEdge As Edge
For Each oEdge In oFrontFace.Edges
oEdgeColl.Add(oEdge)
Next
' Create a Delete Face feature to delete the top face.
Dim oFaceColl As FaceCollection
oFaceColl = ThisApplication.TransientObjects.CreateFaceCollection
Call oFaceColl.Add(oFrontFace)
Dim oDeleteFace As DeleteFaceFeature
oDeleteFace = oCompDef.Features.DeleteFaceFeatures.Add(oFaceColl)
Dim oBoundaryPatchDef As BoundaryPatchDefinition
oBoundaryPatchDef = oCompDef.Features.BoundaryPatchFeatures.CreateBoundaryPatchDefinition
' Create a boundary patch definition based on the edges of the deleted face.
Call oBoundaryPatchDef.BoundaryPatchLoops.Add(oEdgeColl)
' Set the conditions on each edge to be tangent.
For Each oEdge In oEdgeColl
Call oBoundaryPatchDef.BoundaryPatchLoops.Item(1).SetBoundaryCondition(oEdge, kTangentBoundaryPatchCondition)
Next
' Create the boundary patch feature based on the definition.
Dim oBoundaryPatch As BoundaryPatchFeature
oBoundaryPatch = oCompDef.Features.BoundaryPatchFeatures.Add(oBoundaryPatchDef)
' Stitch the boundary patch surface to the original body.
Dim oSurfaceToStitch As ObjectCollection
oSurfaceToStitch = ThisApplication.TransientObjects.CreateObjectCollection
Call oSurfaceToStitch.Add(oBoundaryPatch.SurfaceBodies.Item(1))
Call oSurfaceToStitch.Add(oCompDef.SurfaceBodies.Item(1))
Dim oStitch As KnitFeature
oStitch = oCompDef.Features.KnitFeatures.Add(oSurfaceToStitch)