Imports System.Runtime.InteropServices
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim objApplication As SolidEdgeFramework.Application = Nothing
Dim objDocument As SolidEdgePart.PartDocument = Nothing
Dim objPartDoc As SolidEdgePart.PartDocument = Nothing
Dim objModel As SolidEdgePart.Model = Nothing
Dim objStudyOwner As SolidEdgePart.StudyOwner = Nothing
Dim objStudy As SolidEdgePart.Study = Nothing
Dim objFEAOptimizationOwner As SolidEdgePart.OptimizationOwner = Nothing
Dim objOptimization As SolidEdgePart.Optimization = Nothing
Try
' Get Application Object.
objApplication = Marshal.GetActiveObject("SolidEdge.Application")
objDocument = objApplication.ActiveDocument
objStudyOwner = objDocument.StudyOwner
objStudy = objStudyOwner.Item(1)
Call objStudy.GetOptimizationOwner(objFEAOptimizationOwner)
'objOptimization = objFEAOptimizationOwner.Item(1)
objFEAOptimizationOwner.AddOptimization(objOptimization)
Dim strName As String = Nothing
Dim objType As SolidEdgePart.FEADesObjType_Auto
Dim objActionType As SolidEdgePart.FEADesObjAction_Auto
Dim objValueType As SolidEdgePart.FEADesObjValueType_Auto
Dim objeLLBType As SolidEdgePart.FEADesBoundType_Auto
Dim objeLUBType As SolidEdgePart.FEADesBoundType_Auto
Dim objVarType As SolidEdgePart.FEADesignVarType_Auto
Dim dblVal, dblVal2, dblVal3, dblVal4 As Double
Dim intNumDesLimits As Integer
Dim intIterations, boolSaveRes As Integer
Dim objIterationOwner As SolidEdgePart.IterationOwner = Nothing
Dim objIteration As SolidEdgePart.Iteration = Nothing
objOptimization.GetDesignObjective(strName, objType, objActionType, objValueType, dblVal, dblVal2)
objOptimization.SetDesignObjective("Mass", SolidEdgePart.FEADesObjType_Auto.eDesObjTypeMass_Auto, SolidEdgePart.FEADesObjAction_Auto.eDesObjActionMin_Auto, SolidEdgePart.FEADesObjValueType_Auto.eDesObjValueTypeMin_Auto, 1000.0)
objOptimization.AddDesignLimit("Surface Area", 64902.0, 77500.0, SolidEdgePart.FEADesObjType_Auto.eDesObjTypeSurfArea_Auto, SolidEdgePart.FEADesBoundType_Auto.eFEADesBoundTypeNone_Auto, SolidEdgePart.FEADesBoundType_Auto.eFEADesBoundTypeValue_Auto, SolidEdgePart.FEADesObjValueType_Auto.eDesObjValueypeMax_Auto)
objOptimization.RemoveDesignLimit("Surface Area")
objOptimization.GetNumberOfDesignLimits(intNumDesLimits)
objOptimization.GetDesignLimit(1, strName, dblVal, dblVal2, objType, objeLLBType, objeLUBType, objValueType, dblVal3)
'What is pVariable
Dim objVar As Object = Nothing
objOptimization.AddDesignVariable("ExtrudedProtrusion_1_FiniteDepth", 80.0, 100.0, SolidEdgePart.FEADesignVarType_Auto.eFEADesignVarTypeDim_Auto, SolidEdgePart.FEADesBoundType_Auto.eFEADesBoundTypeValue_Auto, SolidEdgePart.FEADesBoundType_Auto.eFEADesBoundTypeValue_Auto, objVar)
objOptimization.RemoveDesignVariable(objVar)
objOptimization.GetDesignVariable(1, strName, dblVal, dblVal2, objVarType, objeLUBType, objeLLBType, dblVal3)
objOptimization.SetDesignControlParameters(20, 1)
objOptimization.GetDesignControlParameters(intIterations, boolSaveRes)
objOptimization.SetDesignConvergenceParameters(0.0, 2.5, 0.001, 0.2)
objOptimization.GetDesignConvergenceParameters(dblVal, dblVal2, dblVal3, dblVal4)
objOptimization.OptimizeModel()
objOptimization.ResetGeometry()
objOptimization.GetIterationOwner(objIterationOwner)
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
End Class