The version number of the Plugin API is the same as the HyperX version. For documentation regarding updating to a new API version, see here: Adding a New API.
Version 2024.1.8
Adds the following variables to PanelBeamState:
bool AllowNonZeroNinetyHoneycombCoreAngle; double HoneycombCoreAngle;
Use AllowNonZeroNinetyHoneycombCoreAngle to access the Advanced Setting Allow non-zero or ninety honeycomb core angles and HoneycombCoreAngle to access the Zone Setting Honeycomb Core Angle.
Version 2023.2.7
Update 1: Fix Fabric Ply Percentages for Composite Strength and Core Ramp Packages
Before this change, the Composite Strength and Core Ramp Packages computed ply percentages by counting each ply 100% in its primary direction for both tapes and fabrics.
The ply percentage calculation has been adjusted for fabrics only, which now count 50% in their primary direction, and 50% orthogonally.
The Composite Strength Package has been updated to version 1.8.8.
The Core Ramp Package has been updated to version 5.4.6.
Update 2: Fix Plugin Sided Object Loads
The Nx load on some objects in the plugins was incorrectly averaging the A and B side of the object between HyperX 2023.1.1 and now.
The effect of this issue is limited to:
-
Plugin "strip" objects (all beam objects or the web object of stiffened or DSM panels).
-
That additionally have an in-plane bending moment (and therefore a difference in A side and B side forces: see Design-To Beam Loads for A/B terminology).
Before HyperX 2023.1.1 (February 2023):
-
Plugin strip object strains used their B-side variation (incorrect).
-
Plugin strip object Nx load used the average
(A + B)/2value (correct).
HyperX 2023.1.1 to HyperX 2023.2.6 (February 2023 to present):
-
Plugin strip object strains in
.Strainwere corrected to average(A + B)/2values, and API members.StrainSideAand.StrainSideBwere added to access each side explicitly. -
Plugin strip object Nx load in
.ForceSideAwas added and correct. -
Plugin strip object Nx load in
.ForceSideBwas added and incorrect, calculated as(A + B)/2. -
Plugin strip object Nx load in
.Forcewas therefore also incorrect, calculated as the average of.ForceSideAand the incorrect.ForceSideB:(A + (A + B)/2 )/2or3A/4 + B/4.
HyperX 2023.2.7 Onwards:
-
Plugin strip object strains remain the same (correct).
-
Plugin strip object Nx load in
.ForceSideAremains correct, and.ForceSideBis now corrected. -
Plugin strip object Nx load in
.Forceis now correctly(A + B)/2.
Update 3: Send User FEA Load Scenario Names and Ids to Plugins
Before HyperX 2023.2.7, the plugin API was sent one load case member: std::string LoadCaseName
When the Load Property is a user-load, the load case name is an empty string.
Now, from HyperX 2023.2.7 onwards, the existing LoadCaseName member has the same behavior, and four additional values have been added:
-
int LoadCaseId -
int UserScenarioId -
std::string UserScenarioName -
bool IsUserScenario
When the Load Property is a User Load, IsUserScenario is set to true and the UserScenarioId and UserScenarioName members are populated.
When the Load Property is a FEA Load, IsUserScenario is set to false and the LoadCaseId and LoadCaseName members are populated.
Version 2021.1.16
This version corresponds with the addition of Analysis Properties, which replace the HyperSizer Pro Failure Tab.
Some settings that were previously set on the Zone-level have been moved and are now set on the analysis-level. These settings are no longer available in the Plugin API, and include the buckling boundary conditions and buckling knockdown factor. If these settings are required for your Plugin analysis, we recommend creating them as user constants.
Additionally, Analysis Properties are set before determining which Zone concepts they will be assigned to, which is different from the previous Failure Tab that assigned analysis methods after determining zone concept. This means you may now enable e.g. stiffener web objects for your analysis, but then apply the Analysis Property to an unstiffened plate (which does not contain a stiffener web object). It is important to make sure that all objects pulled out of the object array are checked for existence before attempting to use them. This has always been a best practice, but is now required.
Added Features
|
Change |
Previous Code |
Updated Code |
|---|---|---|
|
Remove BucklingBcXPlus, BucklingBcXMinus, BucklingBcYPlus, BucklingBcYMinus,and BucklingKnockdown from state variable |
auto BcXPlus = state_.PanelBeamProperty.BucklingBcXPlus; |
// Set up user constants for required buckling boundary conditions. // To create a user constant, see: ConfigurationBase // Extract the user constants in the analysis code to use them. For example: auto BcXPlus = state_.UserConstants.GetValue<int>(UserConstantId::BucklingBCXPlus); |
|
Required to check objects for existence |
auto webObject = state_.Objects(hs::Object::WebSupported); auto thickness = webObject.Geometry.Thickness; |
auto webObject = state_.Objects(hs::Object::WebSupported);
if (webObject.Exists)
{
auto thickness = webObject.Geometry.Thickness;
}
|