Skip to main content

Obstacles

Obstacles are keep-out zones that prevent the optimizer from placing material in specific regions of the design domain. They let you enforce clearance requirements, reserve space for components, avoid interference with adjacent assemblies, or define cable routing channels.

How obstacles work

During design optimization, the solver determines where to distribute material to best satisfy the design objectives (e.g., maximizing stiffness while meeting volume fraction targets). Without obstacles, the solver is free to place material anywhere within the design domain.

When an obstacle is present, the solver treats the obstacle's geometric region as an exclusion zone. Elements overlapping with the obstacle are forced to zero density, meaning no material can appear there. The solver must route load paths around obstacle regions while still maintaining structural integrity.

Adding obstacles generally increases the compliance of the resulting design compared to an unconstrained optimization, since the solver has less freedom in placing material. However, obstacles are essential for ensuring the final design is manufacturable and fits within its real-world environment.

Obstacle types

deFlex supports two types of obstacles:

Part-based obstacles

A part-based obstacle uses a geometric shape to define the keep-out zone. The shape can be:

  • Rectangle (2D scenes) or Box (3D scenes) -- parametric primitives that you can resize and reposition using the Properties panel or viewport gizmo.
  • STEP model -- an imported CAD file that defines an arbitrary 3D shape.
  • STL model -- an imported triangle mesh that defines a 3D shape.

The obstacle's geometry is defined entirely by its linked part. The part's transform (position, rotation, scale) determines where the keep-out zone sits within the design domain.

In the viewport, part-based obstacles are rendered as semi-transparent orange filled shapes with a wireframe overlay and a crosshatch pattern, making them visually distinct from preserves and other geometry.

Hull-based obstacles

A hull-based obstacle is generated by computing the 3D convex hull of all STEP mesh vertices in the scene. Rather than defining a simple geometric primitive, the hull tightly encloses the physical envelope of your imported CAD geometry.

Hull-based obstacles are created using the "Generate from STEP" action in the Obstacles section. The process collects vertices from:

  • Deformation step preserve meshes (both undeformed and deformed states, with their placement transforms applied)
  • STEP part meshes referenced by preserves or obstacles in the current analysis

At least 4 non-coplanar vertices are required to compute a valid 3D convex hull.

The invert mode

Hull-based obstacles have an invert toggle that controls which side of the hull boundary is the keep-out zone:

  • Inverted (default): Everything outside the hull is the obstacle. The solver can only place material inside the hull. This is the typical use case -- it constrains the design to fit within the physical envelope of your CAD geometry.
  • Non-inverted: Everything inside the hull is the obstacle. The solver can only place material outside the hull. This is useful for defining a void region that must remain empty.

In the viewport, an inverted hull is rendered by filling the design domain volume with translucent orange while cutting out the hull region using a stencil buffer. A non-inverted hull renders the hull itself as a filled translucent orange shape. In both cases, the hull wireframe marks the boundary between allowed and excluded zones.

Obstacles and the solver

When the solver processes a scene with obstacles:

  1. Each obstacle's geometry is resolved -- either from its linked part's shape and transform, or from its stored hull vertices.
  2. The mesh elements that fall within the obstacle region are identified.
  3. Those elements are excluded from the optimization by forcing their density to zero.
  4. The solver optimizes the remaining elements to satisfy the design objective, routing structural load paths around the excluded regions.

Because obstacle exclusions are applied at the element level, the resolution of the exclusion depends on mesh density. A finer mesh produces more precise obstacle boundaries. If the obstacle boundary falls between element centers, some elements near the edge may or may not be excluded depending on their overlap with the obstacle volume.

Obstacle availability by analysis type

Obstacles are available for most analysis types:

Analysis typeObstacles supported
Compliant 2DYes
Compliant 3DYes
Decoupled flexureYes
Thermal compliantYes
FlexureNo
MetamaterialsYes

Suppression

Obstacles can be suppressed to temporarily exclude them from the solver without deleting them from the scene. See Suppress and Unsuppress Objects.