Hide Table of Contents

Create a Thread Feature Example (VBA)

This example shows how to create and edit a thread feature.

'----------------------------------------------------------------------------
' Preconditions:
' 1. Open:
'    public_documents\samples\tutorial\api\holecube.sldprt
' 2. Open an Immediate window.
'
' Postconditions:
' 1. Creates Thread1.
' 2. Modifies the thread start angle of Thread1.
' 3. Inspect the Immediate window.
'
' NOTE: Because the model is used elsewhere, do not save changes.
'---------------------------------------------------------------------------- 

Option Explicit

Sub main()

    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim swFeat As SldWorks.Feature
    Dim FeatMgr As SldWorks.FeatureManager
    Dim swThreadFeatData As SldWorks.ThreadFeatureData
    Dim pEdge As SldWorks.Edge
    Dim boolstatus As Boolean
   

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc

    Set FeatMgr = swModel.FeatureManager
    Set swThreadFeatData = FeatMgr.CreateDefinition(swFmSweepThread)
   

    swThreadFeatData.InitializeThreadData
    swThreadFeatData.ThreadMethod = 1
    swThreadFeatData.EndCondition = swThreadEndCondition_UpToSelection
   

    boolstatus = swModel.Extension.SelectByRay(0.011047195612548, -1.90800402080527E-02, -3.65739009737354E-04, 0.164466301431523, -0.479983539625146, -0.861723063044243, 1.60036844432164E-03, 1, False, 1, 0)
    Set pEdge = swModel.SelectionManager.GetSelectedObject6(1, -1)
    swThreadFeatData.Edge = pEdge
    swModel.ClearSelection2 True
    boolstatus = swModel.Extension.SelectByRay(8.50469161018452E-03, -2.12858011305457E-02, -2.54798703094821E-02, 0.164466301431523, -0.479983539625146, -0.861723063044243, 1.60036844432164E-03, 1, True, 1, 0)
    Set pEdge = swModel.SelectionManager.GetSelectedObject6(1, -1)
    swThreadFeatData.SetEndConditionReference pEdge
    swModel.ClearSelection2 True
   

    Set swFeat = FeatMgr.CreateFeature(swThreadFeatData)

    Debug.Print "File = " & swModel.GetPathName

    Set swThreadFeatData = swFeat.GetDefinition()
   

    swThreadFeatData.AccessSelections swModel, Nothing
    Debug.Print "Offset the starting location of the helix? " & swThreadFeatData.Offset
    Debug.Print "Reverse direction of offset? " & swThreadFeatData.ReverseOffset
    Debug.Print "Offset distance: " & swThreadFeatData.OffsetDistance
    Debug.Print "Thread starting angle: " & swThreadFeatData.ThreadStartAngle
    Debug.Print "End condition as defined in swThreadEndCondition_e: " & swThreadFeatData.EndCondition
    Debug.Print "End condition offset: " & swThreadFeatData.EndConditionOffset
    Debug.Print "Reverse end condition offset? " & swThreadFeatData.EndConditionOffsetReverse
    Debug.Print "End condition offset distance: " & swThreadFeatData.EndConditionOffsetDistance
    Debug.Print "Keep thread length constant? " & swThreadFeatData.MaintainThreadLength
    Debug.Print "Thread profile type: " & swThreadFeatData.Type
    Debug.Print "Size: " & swThreadFeatData.Size
    Debug.Print "Diameter overridden? " & swThreadFeatData.DiameterOverride
    Debug.Print "Diameter: " & swThreadFeatData.Diameter
    Debug.Print "Pitch overridden? " & swThreadFeatData.PitchOverride
    Debug.Print "Pitch: " & swThreadFeatData.Pitch
    Debug.Print "Thread method as defined in swThreadMethod_e: " & swThreadFeatData.ThreadMethod
    Debug.Print "Flip the profile of the helix about an axis? " & swThreadFeatData.MirrorProfile
    Debug.Print "How to flip the profile of the helix as defined in swThreadMirrorType_e: " & swThreadFeatData.MirrorType
    Debug.Print "Helix rotation angle: " & swThreadFeatData.RotationAngle
    Debug.Print "Thread wind direction (True = clockwise, False = counterclockwise): " & swThreadFeatData.RightHanded
    Debug.Print "Multiple thread starts? " & swThreadFeatData.MultipleStart
    If swThreadFeatData.MultipleStart = True Then
        Debug.Print "  Number of starts? " & swThreadFeatData.NumberOfStarts
    End If
    Debug.Print "Trim with the end face? " & swThreadFeatData.TrimEndFace
    Debug.Print "Trim with the start face? " & swThreadFeatData.TrimStartFace
   

    swThreadFeatData.ThreadStartAngle = 0.04
    swFeat.ModifyDefinition swThreadFeatData, swModel, Nothing

End Sub



Provide feedback on this topic

SOLIDWORKS welcomes your feedback concerning the presentation, accuracy, and thoroughness of the documentation. Use the form below to send your comments and suggestions about this topic directly to our documentation team. The documentation team cannot answer technical support questions. Click here for information about technical support.

* Required

 
*Email:  
Subject:   Feedback on Help Topics
Page:   Create a Thread Feature Example (VBA)
*Comment:  
*   I acknowledge I have read and I hereby accept the privacy policy under which my Personal Data will be used by Dassault Systèmes

Print Topic

Select the scope of content to print:

x

We have detected you are using a browser version older than Internet Explorer 7. For optimized display, we suggest upgrading your browser to Internet Explorer 7 or newer.

 Never show this message again
x

Web Help Content Version: API Help (English only) 2018 SP05

To disable Web help from within SOLIDWORKS and use local help instead, click Help > Use SOLIDWORKS Web Help.

To report problems encountered with the Web help interface and search, contact your local support representative. To provide feedback on individual help topics, use the “Feedback on this topic” link on the individual topic page.