Imports System.IO
Imports System.Runtime.InteropServices
Module Example
<STAThread()> _
Sub Main()
Dim objApplication As SolidEdgeFramework.Application = Nothing
Dim objPartDocument As SolidEdgePart.PartDocument = Nothing
Dim objStudyOwner As SolidEdgePart.StudyOwner = Nothing
Dim objStudy As SolidEdgePart.Study = Nothing
Dim objThermalStudy As SolidEdgePart.Study = Nothing
Dim objMeshOwner As SolidEdgePart.MeshOwner = Nothing
Dim objLoadOwner As SolidEdgePart.LoadOwner = Nothing
Dim objLoad As SolidEdgePart.Load = Nothing
Dim objModels As SolidEdgePart.Models = Nothing
Dim objModel As SolidEdgePart.Model = Nothing
Dim objModelBody As SolidEdgeGeometry.Body = Nothing
Dim objGeomArray(0) As Object
Dim objFaces As SolidEdgeGeometry.Faces = Nothing
Dim objFaceArray(1) As SolidEdgeGeometry.Face
Dim objExtrudedProtrusions As SolidEdgePart.ExtrudedProtrusions = Nothing
Dim objExtrudedProtrusion As SolidEdgePart.ExtrudedProtrusion = Nothing
Dim estudyType As SolidEdgePart.FEAStudyTypeEnum_Auto
Dim eMeshType As SolidEdgePart.FEAMeshTypeEnum_Auto
Dim dThickness As Double = 0
Dim dwInputOptions As UInteger = 0
Dim ulNumModes As ULong = 7
Dim dFreqlow As Double = 0
Dim dFreqHigh As Double = 1.0
Dim cmdLineOpts As String = ""
Dim nastranKeywordOpts As String = ""
Dim dwResultoptions As UInteger = 0
'Thermal Options
Dim dConvectionExp As Double = 0
Dim dEnclosureAmbientEle As Double = 0
Dim dwThrmlOptions As UInteger = 0
'Thermal Load Options
Dim eLoadType As SolidEdgePart.FEALoadTypeEnum_Auto = SolidEdgePart.FEALoadTypeEnum_Auto.eLoadTypeNone_Auto
Dim dLoadValue As Double = 0.0
Dim dLoadValueAngAccln As Double = 0.0
Dim eLoadSymbDir As SolidEdgePart.LoadSymbDirOptsEnum_Auto = SolidEdgePart.LoadSymbDirOptsEnum_Auto.eLoadDirHeatFlux_Auto
Dim dLoadDirX As Double = 0.0
Dim dLoadDirY As Double = 0.0
Dim dLoadDirZ As Double = 0.0
Dim dLoadPosX As Double = 0.0
Dim dLoadPosY As Double = 0.0
Dim dLoadPosZ As Double = 0.0
Dim unColorSymbol As UInteger = 255
Dim unAngAcclnColorSymbol As UInteger = 8388673
Dim dSpacingFactor As Double = 0.0
Dim dSizeFactor As Double = 0.0
Dim dSteeringWheelLen As Double = 0.0
Dim dwLoadProps As UInteger = 0
Dim dLoadSymSpacing As Double = 0.0
Dim dLoadSymSize As Double = 0.0
Dim dAmbientTemp As Double = 0.0
Dim dSurfEmissivity As Double = 0.0
Dim dSurfAbsoptivity As Double = 0.0
Dim dViewFactor As Double = 0.0
Dim nCavity As Integer = 0
Try
OleMessageFilter.Register()
objApplication = Marshal.GetActiveObject("SolidEdge.Application")
objPartDocument = objApplication.ActiveDocument
' Get Study Owner
objStudyOwner = objPartDocument.StudyOwner
'Add Thermal Study
estudyType = SolidEdgePart.FEAStudyTypeEnum_Auto.eStudyTypeSSHT_Auto
eMeshType = SolidEdgePart.FEAMeshTypeEnum_Auto.eMeshTypeTetrahedral_Auto
objStudyOwner.AddThermalStudy(estudyType,
eMeshType,
dThickness,
dwInputOptions,
ulNumModes,
dFreqlow,
dFreqHigh,
cmdLineOpts,
nastranKeywordOpts,
dwResultoptions,
dwThrmlOptions,
dEnclosureAmbientEle,
dConvectionExp,
objStudy)
objThermalStudy = objStudy
objModels = objPartDocument.Models
objModel = objModels.Item(1)
' Get the study geometries
objModelBody = objModel.Body()
objGeomArray(0) = Nothing
objGeomArray(0) = objModelBody
' Deselect the geometry from study
objThermalStudy.SetGeometries(objGeomArray)
objThermalStudy.GetLoadOwner(objLoadOwner)
'Get Thermal Options
objThermalStudy.GetThermalStudyOptions(dwThrmlOptions, dEnclosureAmbientEle, dConvectionExp)
dEnclosureAmbientEle = 10
dConvectionExp = 3.4
'Set Thermal Options
objThermalStudy.SetThermalStudyOptions(dwThrmlOptions, dEnclosureAmbientEle, dConvectionExp)
' Get Protrusion.
objExtrudedProtrusions = objModel.ExtrudedProtrusions
objExtrudedProtrusion = objExtrudedProtrusions.Item(1)
' Get faces collection
objFaces = objExtrudedProtrusion.Faces(SolidEdgeGeometry.FeatureTopologyQueryTypeConstants.igQueryAll)
objFaceArray(0) = objFaces.Item(0)
'Heat Flux Load Properties
eLoadType = SolidEdgePart.FEALoadTypeEnum_Auto.eLoadTypeSSHTHeatflux_Auto
dLoadValue = 100
dLoadValueAngAccln = 0.0
eLoadSymbDir = SolidEdgePart.LoadSymbDirOptsEnum_Auto.eLoadDirHeatFlux_Auto
dLoadDirX = 0.0
dLoadDirY = 0.0
dLoadDirZ = 1
dLoadPosX = -0.039485373058438106
dLoadPosY = 0.0
dLoadPosZ = 0.034828766147378246
unColorSymbol = 255
unAngAcclnColorSymbol = 8388673
dSpacingFactor = 0.15
dSizeFactor = 0.155
dSteeringWheelLen = 0.0
dwLoadProps = 2304
dLoadSymSpacing = 0.046329513280848368
dLoadSymSize = 0.047873830390209982
dAmbientTemp = 273.15
dSurfEmissivity = 0
dSurfAbsoptivity = 0
dViewFactor = 0
nCavity = 1
'Add Thermal Heat Flux Load
objLoadOwner.AddThermalLoad(objFaceArray,
eLoadType,
dLoadValue,
dLoadValueAngAccln,
eLoadSymbDir,
dLoadDirX,
dLoadDirY,
dLoadDirZ,
dLoadPosX,
dLoadPosY,
dLoadPosZ,
unColorSymbol,
unAngAcclnColorSymbol,
dSpacingFactor,
dSizeFactor,
dSteeringWheelLen,
dwLoadProps,
dLoadSymSpacing,
dLoadSymSize,
dAmbientTemp,
dSurfEmissivity,
dSurfAbsoptivity,
dViewFactor,
nCavity,
objLoad)
'Update Heat Flux Load Value.
objLoad.SetLoadValue(500)
objLoad = Nothing
objFaceArray(0) = Nothing
objFaceArray(0) = objFaces.Item(4)
'Radiation Load Properties
eLoadType = SolidEdgePart.FEALoadTypeEnum_Auto.eLoadTypeSSHTRadiation_Auto
dLoadValue = 100
dLoadValueAngAccln = 0.0
eLoadSymbDir = SolidEdgePart.LoadSymbDirOptsEnum_Auto.eLoadDirNormalToFace_Auto
dLoadDirX = 1
dLoadDirY = 0.0
dLoadDirZ = 0.0
dLoadPosX = -0.04057088227356833
dLoadPosY = 0.022897311677400896
dLoadPosZ = 0.06554422099691215
unColorSymbol = 42495
unAngAcclnColorSymbol = 8388673
dSpacingFactor = 0.15
dSizeFactor = 0.155
dSteeringWheelLen = 0.0
dwLoadProps = 2048
dLoadSymSpacing = 0.046329513280848368
dLoadSymSize = 0.047873830390209982
dAmbientTemp = 315.15
dSurfEmissivity = 0.54
dSurfAbsoptivity = 0.237
dViewFactor = 0.45
nCavity = 1
'Add Thermal Radiation Load
objLoadOwner.AddThermalLoad(objFaceArray,
eLoadType,
dLoadValue,
dLoadValueAngAccln,
eLoadSymbDir,
dLoadDirX,
dLoadDirY,
dLoadDirZ,
dLoadPosX,
dLoadPosY,
dLoadPosZ,
unColorSymbol,
unAngAcclnColorSymbol,
dSpacingFactor,
dSizeFactor,
dSteeringWheelLen,
dwLoadProps,
dLoadSymSpacing,
dLoadSymSize,
dAmbientTemp,
dSurfEmissivity,
dSurfAbsoptivity,
dViewFactor,
nCavity,
objLoad)
'Get Thermal Load Options
objLoad.GetThermalLoadOptions(eLoadType,
dLoadValue,
dLoadValueAngAccln,
eLoadSymbDir,
dLoadDirX,
dLoadDirY,
dLoadDirZ,
dLoadPosX,
dLoadPosY,
dLoadPosZ,
unColorSymbol,
unAngAcclnColorSymbol,
dSpacingFactor,
dSizeFactor,
dSteeringWheelLen,
dwLoadProps,
dLoadSymSpacing,
dLoadSymSize,
dAmbientTemp,
dSurfEmissivity,
dSurfAbsoptivity,
dViewFactor,
nCavity)
dAmbientTemp = 306.15
dSurfAbsoptivity = 0.9
dSurfEmissivity = 0.43
dViewFactor = 0.75
nCavity = 10
'Set Thermal Load Options
objLoad.SetThermalLoadOptions(eLoadType,
dLoadValue,
dLoadValueAngAccln,
eLoadSymbDir,
dLoadDirX,
dLoadDirY,
dLoadDirZ,
dLoadPosX,
dLoadPosY,
dLoadPosY,
unColorSymbol,
unAngAcclnColorSymbol,
dSpacingFactor,
dSizeFactor,
dSteeringWheelLen,
dwLoadProps,
dLoadSymSpacing,
dLoadSymSize,
dAmbientTemp,
dSurfEmissivity,
dSurfAbsoptivity,
dViewFactor,
nCavity)
Catch ex As Exception
Console.WriteLine(ex.Message)
Finally
OleMessageFilter.Revoke()
End Try
End Sub
End Module