TopologyOptimization (hwx.inspire.FEAnalysis)#

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

Bases: Optimization

Carve material away from design spaces, creating the lightest structure capable of withstanding the forces you apply to your model.

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 Shape Explorer.

reanalyze (self, density, runOptions={}, ignoreWarnings=False)

Run an OptiStructAnalysis on the generated shape.

switchToOptimizedParts (self)

Change part alternatives to this result.

Example

from hwx.inspire import TopologyOptimization, gui
from hwx.inspire.demo import openDemoFile

model = openDemoFile("SixSheets.stmod")
params = TopologyOptimization.Params()

# Params can also be set by directly assigning the values
params.objective = "MAXIMIZE_STIFFNESS"
params.thicknessConstraints.min = 0.006

print('params', repr(params))
with gui.waitCursor(message="Solving..."):
  run = TopologyOptimization(params)
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 Shape Explorer.

Parameters:

showExplorer (bool) – Opens the Shape 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.

property parent#

Returns the parent of this entity.

Type:

Assembly

property progress#

Current state of the Object.

reanalyze(density, runOptions={}, ignoreWarnings=False)#

Run an OptiStructAnalysis on the generated shape.

Parameters:
  • density (float) – Density threshold value. 1.0 - maximum density on design space. 0.0 - minimum density on design space.

  • runOptions (dict) – See cls.RunOptions

  • ignoreWarnings (bool) – Abort on warnings

Returns:

OptiStructReanalysis

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)#

Sets passed name/value pairs.

Values are set in a standard order (the order the attribute is defined on the class) which is required in certain cases when an attribute’s setter expects another attribute to have already been set. For example, setting a reference before a location that is wrt it.

Parameters:

**kwds – Set attributes in one go.

property solverType#

Solver Type of the Object

property status#

Current status of the Object.

switchToOptimizedParts()#

Change part alternatives to this result.

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