OptiStructAnalysis (hwx.inspire.FEAnalysis)#

class OptiStructAnalysis(params={}, runOptions={}, ignoreWarnings=False)#

Bases: Analysis

Run structural analysis using OptiStruct

Attribute Table#

Name

Type

imported

Bool

progress

Int

solverType

Enum

status

Enum

workingDir

String

Method Table#

Name

Description

export (file, params={}, runOptions={}, ignoreWarnings=False)

Download solver file (.fem, .ssp) for run

importResults (self, showExplorer=True)

Make results available in the Analysis Explorer.

openResults (self, stage=0)

Open the h3d file to get a cls.Results object.

Example

from hwx.inspire import OptiStructAnalysis, gui, usingUnits
from hwx.inspire.demo import openDemoFile
from hwx.inspire import useRunDirectory
from os.path import expanduser

model = openDemoFile('ThreeBlocks.stmod')
part2 = model.getChild('Part 2')
pressure1 = model.getChild("Pressure 1")

params = OptiStructAnalysis.Params()

# Params can also be set by directly assigning the values
params.elementSize = 0.0077827
params.speedAccuracy = "FASTER"

print('params', repr(params))

home = expanduser("~")

# This will save the Analysis results in home directory
with useRunDirectory(home):
  with gui.waitCursor(message="Solving..."):
    analysis = OptiStructAnalysis(params)

results = analysis.openResults()

# Results in 'gui' units
with usingUnits("gui"):
  print('results:', results)

# We can also fetch the results at particular location
# by calling getAtPoint() and getMinMax() methods
print("Displacement :  " + str(results.getAtPoint(0,
                              'Displacement', pressure1.location)))
print("MinMax value of Displacement : " + str(results.getMinMax(0,
                                      'Displacement', part=part2)))
class Results(resultsManager, synth, stageIndex)#

Bases: Stage

Analysis results from .h3d file

Can be accessed like a dict of dicts. Use repr(results) to view available subCases and result types

Method Table#

Name

Description

getAtPoint (self, subCase, type, point, step=None, units=False)

Get value of specified type at a point (float)

getBucklingLoadFactor (self, subCase, mode)

Get Buckling load factor of specified mode

getFrequency (self, mode)

Get Normal frequency of specified mode

getMinMax (self, subCase, type, step=None, part=None, units=False, withPos=False)

Get (min, max) value of specified type.

getAtPoint(subCase, type, point, step=None, units=False)#

Get value of specified type at a point (float)

Parameters:
  • subCase (str or int) – Name or index of subcase

  • type (str or int) – Result type name or id

  • point (Point) – 3d point to fetch value at

  • step (int) – Simulation step. Leave as None for all steps

  • units (bool) – Get value with units

getBucklingLoadFactor(subCase, mode)#

Get Buckling load factor of specified mode

Parameters:
  • subCase (str or int) – Name or index of subcase

  • mode (int) – Buckling Mode index (starts with 1)

getFrequency(mode)#

Get Normal frequency of specified mode

Parameters:

mode (int) – Normal Mode index (starts with 1)

getMinMax(subCase, type, step=None, part=None, units=False, withPos=False)#
Get (min, max) value of specified type.

If withPos is True then it returns (min, max, min_pos, max_pos) where min_pos and max_pos are (x, y, z) tuples.

Parameters:
  • subCase (str or int) – Name or index of subcase

  • type (str or int) – Result type name or id

  • step (int) – Simulation step. Leave as None for all steps

  • part (Part) – Get min/max for specific part. Leave as None for all Parts

  • units (bool) – Get min/max with units

  • withPos (bool) – Get positions for min/max

class RunOptions(**kwds)#

Bases: Struct

Attribute Table#

Name

Type

isRemoteRun

property

waitTillFinish

property

property isRemoteRun#

(bool) Is remote run

repr()#

Convert params to a dict which can be used to reconstruct it.

Readonly attributes are removed and structs are compacted.

todict()#

Convert params to a dict containing all properties

property waitTillFinish#

(bool) Use False to do multiple runs in parallel

class Status(value)#

Bases: Enum

An enumeration.

Attribute Table#

Name

Type

ERROR

Status

FE_NOT_REALIZED

Status

GENERATING_FE_MODEL

Status

INFEASIBLE_DESIGN

Status

INITIALIZED

Status

MESH_NOT_GENERATED

Status

NOT_CONVERGED

Status

NOT_STARTED

Status

PARTS_NOT_CONNECTED

Status

RUNNING

Status

SUCCESS

Status

TERMINATED

Status

WARNING

Status

property active#

Returns or sets the object activeness.

Setting this on or off sets all children. Setting to True sets all the parents active too.

destroy()#

Delete the object removing it from the model.

The object may come back due to an undo/redo.

getAllChildren(type=None, **kwds)#

Returns a list of all children that matches the specified type.

Parameters:
  • type (list[Named]) – Filter to use to get the children based on object type.

  • **kwds – Additional keyword arguments to match other attributes of the object.

Returns:

The list of children that satisfy the supplied filters.

Return type:

list[Union[Part, Motor, BoundaryCondition, …]]

getAttribute(name)#

Returns the Attribute off the class, not the value.

Parameters:

name (str) – Attribute name to find its class.

getChild(name=None, recursive=False, **kwds)#

Returns the child of the object which matches the specified unique name.

Parameters:
  • name (str) – The name of the child object.

  • recursive (bool) – Search all descendents.

  • **kwds – Additional keyword arguments to match attributes of the object.

Returns:

The child object which satisfies the specified filters.

Return type:

Named

getChildren(type=None, recursive=False, sorted=False, **kwds)#

Returns a list of children that is of the specified type.

Parameters:
  • type (Type[Named]) – Filter objects by class.

  • recursive (bool) – True to get all descendent Parts and Assemblies.

  • sorted (bool) – Sort the children base on id.

Returns:

list[Named]

getDependents(recursive=False, **kwds)#

Get objects that reference this object through a Reference attribute.

Parameters:
  • recursive (bool) –

  • **kwds – Filter objects using isa.

Returns:

set[Named]

getGuiValue(attr, **kwds)#

Get value formatted to be shown in the gui

Parameters:

attr (str) – Attribute name to gets its gui value.

Returns:

Returns a string of the value with its gui units, like “5 mm/s”.

Return type:

str

getReferences(recursive=False, **kwds)#

Get objects this object references through a Reference attribute.

Parameters:
  • recursive (bool) –

  • **kwds – Filter objects using isa.

Returns:

set[Named]

getValue(attr)#

Return the attribute value for passed attribute name.

Parameters:

attr (String) – Attribute name to gets its value.

Returns:

Returns the attribute value

Return type:

str

importResults(showExplorer=True)#

Make results available in the Analysis Explorer.

Parameters:

showExplorer (bool) – Opens the Analysis Explorer dialog (gui mode only)

property imported#

If True, Results are loaded.

isa(type=None, filter=None, name=None, wildcard=None, **kwds)#

Determines if the object matches the specified settings or not.

Parameters:
  • type (Union[Part, Assembly, Contact..]) – The type of the object.

  • filter (method) – Return value of specified callback method.

  • name (str) – Name that matches exactly with object name.

  • wildcard (str) – A pattern to match exactly with the object name.

  • **kwds – Additional keyword arguments to match other attributes.

Returns:

True, if a match is found, otherwise False.

Return type:

bool

modelPositions()#

Forces all objects to return the original model positions instead of the current analysis positions.

Useful when defining draw methods on GeneralObjects where behaviour is different while animating.

property name#

Returns or sets the name of the object.

It can be any text string, including spaces, although it’s best to avoid using the following characters: ” ‘ * ? and $.

While these characters are allowed, they could create difficulties when you export the model to other applications.

openResults(stage=0)#

Open the h3d file to get a cls.Results object.

Usage:
with run.openResults() as results:

print(results)

Parameters:

stage (int) – Stage index

property parent#

Returns the parent of this entity.

Type:

Assembly

property progress#

Current state of the Object.

setValue(attr, value)#

Alias for setattr (attr, value) :param attr: Attribute name to sets its value. :type attr: str :param value: Attribute value to set . :type value: str

setValues(**kwds)#

setattr on name and value pairs in order Attributes are defined

Args: **kwds: To set attibures in one go

property solverType#

Solver Type of the Object

property status#

Current status of the Object.

property visible#

Determines whether the object is visible in the graphics window.

Setting this on or off sets all children. Setting to True sets all the parents visible too.

wasValueSet(attr)#

Check if attribute was set

Parameters:

attr (str) – Attribute name to check it value set or not

Returns:

True, if value was set else false.

Return type:

bool

property workingDir#

Working directory of the Object