Hide Table of Contents

Get Options of Nonlinear Study (VB.NET)

This example shows how to get a nonlinear study's options.

'----------------------------------------------------------------------------
' Preconditions:
' 1. Add the SOLIDWORKS Simulation as an add-in
'    (in SOLIDWORKS, click Tools > Add-ins > SOLIDWORKS Simulation).
' 2. Add the SOLIDWORKS Simulation primary interop assembly as
'    a reference (in the IDE's Project Explorer, right-click
'    the project name, select Add Reference, click the Browse tab,
'    navigate to the install_dir\api\redist\CLR2 folder and
'    select SolidWorks.Interop.cosworks.dll).
' 3. The specified file exists.
' 4. Open the Immediate window.
'
' Postconditions: Data for each nonlinear study in the
' active model is printed to the Immediate window.
'
' NOTE: Because the model is used elsewhere, do not
' save any changes when closing it.
'-------------------------------------
Imports SolidWorks.Interop.sldworks
Imports SolidWorks.Interop.swconst
Imports SolidWorks.Interop.cosworks
Imports System
Imports System.Diagnostics
Imports System.Runtime.InteropServices

Partial Class SolidWorksMacro


    
Public Sub Main()

        
Dim swAddin As CwAddincallback
        
Dim ssApp As CosmosWorks
        
Dim ssModelDoc As CWModelDoc
        
Dim ssStudyMgr As CWStudyManager
        
Dim ssStudy As CWStudy
        
Dim ssStudyOption As Object
        Dim ssNonLinearStudyOptions As CWNonLinearStudyOptions
        
Dim docName As String
        Dim errors As Integer
        Dim warnings As Integer
        Dim studyCnt As Integer
        Dim studyName As String
        Dim studyType As Integer
        Dim i As Integer
        Dim maxLoad As Double
        Dim maxDisplacement As Double
        Dim unit As Integer
        Dim selectedEntity As Object = Nothing
        Dim maxArcSteps As Integer
        Dim arcLengthMultiplier As Double
        Dim displacementComponent As Integer
        Dim frequency As Integer
        Dim maximum As Integer
        Dim convergence As Double
        Dim tolerance As Double
        Dim factor As Double
        Dim swEntity As Entity
        
Dim entityType As Integer
        Dim selEntityType As String

        ' Open specified document, which has two nonlinear studies
        docName = "c:\Program Files\solidworks Corp\SOLIDWORKS\Simulation\Examples\Nonlinear\nl_plate.sldprt"
        swApp.OpenDoc6(docName, swDocumentTypes_e.swDocPART, swOpenDocOptions_e.swOpenDocOptions_Silent, "", errors, warnings)

        
' Get SOLIDWORKS Simulation and its Study Manager object
        swAddin = swApp.GetAddInObject("SldWorks.Simulation")
        ssApp = swAddin.CosmosWorks
        ssModelDoc = ssApp.ActiveDoc
        ssStudyMgr = ssModelDoc.StudyManager

        
' Get data for only nonlinear types of studies
        studyCnt = ssStudyMgr.StudyCount
        
For i = 0 To studyCnt - 1
            ssStudy = ssStudyMgr.GetStudy(i)
            studyName = ssStudy.Name
            Debug.Print(
"")
            Debug.Print(
"Study name: " & studyName)
            studyType = ssStudy.AnalysisType
            
If (studyType = swsAnalysisStudyType_e.swsAnalysisStudyTypeNonlinear) Then
                ' Get nonlinear study's data
                ssStudyOption = ssStudy.NonLinearStudyOptions
                Debug.Print(
"  Study type:  Nonlinear")
                ssNonLinearStudyOptions = ssStudyOption
                Debug.Print(
"    Control method type: " & ssNonLinearStudyOptions.ControlMethodType)
                Debug.Print(
"    Start time: " & ssNonLinearStudyOptions.StartTime)
                Debug.Print(
"    End time: " & ssNonLinearStudyOptions.EndTime)
                Debug.Print(
"    Solution-time increment: " & ssNonLinearStudyOptions.TimeIncrement)
                Debug.Print(
"    Fixed-time increment: " & ssNonLinearStudyOptions.FixedTimeIncrement)
                Debug.Print(
"    Integration method type: " & ssNonLinearStudyOptions.IntegrationMethodType)
                Debug.Print(
"    Results folder path: " & ssNonLinearStudyOptions.ResultFolderPath)
                Debug.Print(
"    Save data for restarting analysis? " & ssNonLinearStudyOptions.SaveDataForRestartingAnalysis)
                Debug.Print(
"    Solver type: " & ssNonLinearStudyOptions.SolverType)
                Debug.Print(
"    Use large strain formulation? " & ssNonLinearStudyOptions.UseLargeStrain)
                Debug.Print(
"    Update direction of load at every solution step with deflection? " & ssNonLinearStudyOptions.UseUpdateLoadDirection)
                ssNonLinearStudyOptions.GetArcLengthCompletionOptions(maxLoad, maxDisplacement, unit, maxArcSteps, arcLengthMultiplier)
                Debug.Print(
"    Use large displacement formulation? " & ssNonLinearStudyOptions.UseLargeDisplacement)
                Debug.Print(
"    Arc-length completion options (maximum load, maximum displacement, unit, maximum arc steps, and arc-length multiplier): " & maxLoad & ", " & maxDisplacement & ", " & unit & ", " & maxArcSteps & ", " & arcLengthMultiplier)
                selEntityType =
"Nothing"
                ssNonLinearStudyOptions.GetDisplacementControlOptions2(displacementComponent, unit, selectedEntity)
                
If Not selectedEntity Is Nothing Then
                    swEntity = selectedEntity
                    entityType = swEntity.GetType
                    
Select Case entityType
                        
Case 3
                            selEntityType =
"vertex"
                        Case 6
                            selEntityType =
"reference point"
                        Case 0
                            selEntityType =
"Nothing"
                    End Select
                End If
                Debug.Print("    Displacement control options (displacement component, unit, selected entity): " & displacementComponent & ", " & unit & ", " & selEntityType)
                Debug.Print(
"    Iterative method type: " & ssNonLinearStudyOptions.IterativeMethodType)
                ssNonLinearStudyOptions.GetStepToleranceOptions(frequency, maximum, convergence, tolerance, factor)
                Debug.Print(
"    Tolerance: ")
                Debug.Print(
"        Frequency of performing equilibrium in number of solution steps: " & frequency)
                Debug.Print(
"        Maximum number of equilibrium iterations for any solution step: " & maximum)
                Debug.Print(
"        Relative displacement tolerance used for equilibrium convergence: " & convergence)
                Debug.Print(
"        Tolerance for strain increment for models with creep or plasticity: " & tolerance)
                Debug.Print(
"        Stiffness singularity elimination factor: " & factor)


            
End If
        Next

    End Sub

    ''' <summary>
    ''' The SldWorks swApp variable is pre-assigned for you.
    ''' </summary>
    Public swApp As SldWorks

End Class



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:   Get Options of Nonlinear Study (VB.NET)
*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) 2015 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.