ds-blue-logo
Preview  |  SOLIDWORKS USER FORUM
Use your SOLIDWORKS ID or 3DEXPERIENCE ID to log in.
JBJorn Bjarning26/06/2014

Hi everybody,

Long time ago I made a VBA macro which included a feature traversal routine for parts. Worked perfect. Recently I upgraded this macro to VB .Net 2013. Still works perfect in terms of functionality but the performance is terrible.

In order to verify/prove the situation I have simplified the macro to a very simple feature traversal routine like shown below (.net version). The main part of the program is not included here.

For a random model of mine it takes: 

0,00348 sekunder - with the old VBA macro

7,24 sekunder - with Visual Studio 2013

Can anyone explain why? Am I missing some important setting in Visual Studio which can explain this factor 2000 difference?

------------------------------------------------------------------------------

Sub TraverseFeatures(ByVal swModel As ModelDoc2)

        Dim swFeat As Feature
        Dim swSubFeat As Feature
        Dim sFeatureName As String
        Dim sSubFeatureName As String

        'Get first feature
        swFeat = swModel.FirstFeature

        sFeatureName = ""

        'Loop through all features       

        Do While Not swFeat Is Nothing

            sFeatureName = swFeat.Name

            'Get first sub feature
            swSubFeat = swFeat.GetFirstSubFeature

            'Loop through all subfeatures until cut-list folder is found - if present
            Do While Not swSubFeat Is Nothing

                'Get subfeature name
                sSubFeatureName = swSubFeat.Name

                'Get next sub feature
                swSubFeat = swSubFeat.GetNextSubFeature
            Loop

            'Get next feature
            swFeat = swFeat.GetNextFeature

        Loop

End Sub