Software Use > Scripting
Visual Basic/COM interface questions
(1/1)
JEA:
I am working with Visual Basic to control HyperSizer and extract results, following the object model training examples.
I am currently trying to go through extracting results, and have a few questions (I am not very good at VB, learning as I go)
When extracting what concept was used for a given group/component, I am using:
Component_Object.ResultPanel(pcrConcept)
This is returning a number instead of the name of the concept. Is there a different tool that returns the name of the concept selected/used? IF not, does the concept number align with the concepts tab in HyperSizer working right to left and top to bottom? (i.e. Unstiffened panel family concepts: one stack = 1, two stack = 2, three stack = 3, honeycomb = 4, foam = 5)
Is there a command I can use to extract the selected material(s) and the controlling failure mode?
for example,
vpdTopFace_ThicknessMaterial gives the sized thickness.
Thanks
Ryan:
You can use the Description object with the FamilyConceptText function to extract this information. The FamilyConceptText function needs the Family #(BeamPanelFamily) and the Concept # (pcrConcept or bcrConcept).
Here's an example implementation:
**************************************
Dim objDescription As New Hypersizer.Description
......open a Hypersizer Application and Project...
For Each objGroup In objProject.Groups
For Each objComp In objGroup.Components
MsgBox ("#" & objComp.Key & "-" & objDescription.FamilyConceptText(objComp.Parent.Family, objComp.ResultPanel(pcrConcept)) )
Next objComp
Next objGroup
*****************************************
Example Output: "#15-Bonded Trusscore Sandwich"
-Ryan
JEA:
Thanks, I was able to get that to work.
Another question. How would I go about extracting the selected material and the controlling failure mode?
Using oComp.ResultVariable(vpdTopFace_ThicknessMaterial) gives the top face thickness.
Thanks for any help.
Ryan:
Sorry for the delay.
Getting the controlling failure analysis is fairly straightforward. Get the analysis id and use the AnalysisText method of the Description object.
*****************************************************
Dim oDes As New HyperSizer.Description
Debug.Print oDes.AnalysisText(oComp.ResultPanel(pcrAnalysisID))
*****************************************************
Getting the material is a little more complicated. Materials are defined by two pieces of information: 1) Material Type (isotropic, orthotropic etc.) 2) Material key unique for each material in a give type.
Attached is some code from a utility spreadsheet we are developing. Case selects are used to keep the code general to all material types.
*****************************************************
Dim lngMatTypeID As Long
Dim strMatKey As String
Dim oFoam As Foam
Dim oHC As Honeycomb
Dim oIso As Isotropic
Dim oLam As Laminate
Dim oLay As Layup
Dim oOrtho As Orthotropic
lngMatTypeID = oComp.ResultVariableMaterialType(vpdTopFace_ThicknessMaterial) ' Material Type ID
strMatKey = oComp.ResultVariableMaterialKey(vpdTopFace_ThicknessMaterial, lngMatTypeID) ' Material Key
If Abs(StrComp(strMatKey, "")) > 0 Then ' Make sure that the key is valid
Select Case lngMatTypeID
Case hmtFoam 'Foam'
Set oFoam = oHS.Foams.Key(strMatKey)
Cells(row, col) = oFoam.MaterialName
Case hmtHoneycomb 'Honeycomb'
Set oHC = oHS.Honeycombs.Key(strMatKey)
Cells(row, col) = oHC.MaterialName
Case hmtIsotropic 'Isotropic'
Set oIso = oHS.Isotropics.Key(strMatKey)
Cells(row, col) = oIso.MaterialName
Case hmtLaminate 'Laminate'
Set oLam = oHS.Laminates.Key(strMatKey)
Cells(row, col) = oLam.MaterialName
Case hmtLayup 'Lay-Up'
Set oLay = oHS.Layups.Key(strMatKey)
Cells(row, col) = oLay.MaterialName
Case hmtOrthotropic 'Orthotropic'
Set oOrtho = oHS.Orthotropics.Key(strMatKey)
Cells(row, col) = oOrtho.MaterialName
Case hmtThermal 'Thermal'
Case Else
Cells(row, col) = "Invalid Material Type ID"
End Select
Else ' Material Key is empty
' - This happens if the select concept doesn't have material data for a give object
' - Example: Unstiffened Plate/Sandwich Panel Family
' ----- Concept: One Stack Unstiffened has no core (key = 0)
' ----- Concept: Honeycomb Sandwich has core (key != 0)
Cells(row, col) = ".."
End If
End If
***************************************************
The Object Model manual has undergone a major revision. It has a more detailed discussion on retrieving material properties and analysis objects. It is available at:
http://www.hypersizer.com/manuals/User_Manual_Programmer.pdf
Navigation
[0] Message Index
Go to full version