*ossmooth_12

Extract the final design geometry from OptiStruct topology, topography and shape optimization results, and achieve smoothed plies from free-size optimization results on composites.

Syntax

*ossmooth_12 modelsel exemode load_op outputcode filepath_fem filepath_sh filepath_grid isosurface autobead string_array number_of_strings

Type

HyperMesh Tcl Modify

Description

Extract the final design geometry from OptiStruct topology, topography and shape optimization results, and achieve smoothed plies from free-size optimization results on composites.

Inputs

modelsel
Model selection option.
0 – Specify model file path to read.
1 – Use current model in HyperMesh.
exemode
Flag indicating the execution mode of OSSmooth. Valid values are:
  • 0 - Extract geometry only
  • 1 - Extract geometry and inherit boundary conditions for FEA reanalysis
  • 2 - Smoothing plies from free-sizing optimization results on composites
load_op
Execution/load option. Valid values are:
  • 0 – Create .oss file only to be used in standalone version (do not execute ossmooth)
  • 1 – Do not load geom into HyperMesh.
  • 2 – Load geom intoHyperMesh.
outputcode
Output file format. Valid values are:
  • 1 – Nastran
  • 2 – IGES
  • 3 – STL
  • 4 – H3D
  • 5 – STEP
  • 6 – PARASOLID
  • 7 – IGES (advanced)
filepath_fem
The full name and path to the OptiStruct .fem results file generated from the optimization.
filepath_sh
The full name and path to the OptiStruct .sh results file generated from the optimization.
filepath_grid
The full name and path to the OptiStruct .grid results file generated from the optimization.
isosurface
Flag indicating whether to create an isosurface.
  • 1 - Yes
  • 0 - No
autobead
Flag indicating whether to create an autobead design.
  • 1 - Yes
  • 0 - No
string_array
The ID of the string array that contains the additional parameters. The string array is created using the *createstringarray command. This should always be set to 1.
number_of_strings
Integer indicating the size (number of strings) in the string array created using *createstringarray. The valid strings are documented below.
Each argument can be either space or comma separated. There will be at most five strings of parameters, depending on the operations selected. Each string is introduced as follows:
"isosurf: surfacecode surfacemode densitythreshold detectbridge lowthreshold distancecoefficient optismoothboundary lapiteration lapfeatureangle lapsmoothboundary drawrecovery"
This sting is only required when isosurface = 1.
surfacecode
The method used for isosurface extraction. Valid values are:
  • 0 - No smoothing, isosurface only
  • 1 - Optimization based smoothing
  • 2 - No smoothing, element threshold
  • 3 - Laplacian smoothing
surfacemode
Isosurface mode indicating how to process non-design elements. Valid values are:
  • 0 - Keep all non-design elements with half layer around
  • 1 - Split only intersected non-design elements
  • 2 - Split overlap non-design elements with half layer around
  • 3 - Split overlap non-design elements
densitythreshold
Threshold value for topology optimization (real value ≥ 0 and ≤ 1).
detectbridge
Flag indicating whether to detect connectivity in isosurface (1=yes, 0=no).
lowthreshold
The low density threshold for connectivity detection (real value ≥ 0 and ≤ 1). Low threshold value must be smaller than density threshold value.
distancecoefficient
The distance coefficient to use in optimization based smoothing (real value ≥ -50 and ≤ 50).
optismoothboundary
Flag indicating whether to include the boundary or not in optimization based smoothing (1=yes, 0=no).
lapiteration
The number of iterations to use in Laplacian smoothing (integer ≥ 0).
lapfeatureangle
The feature angle to use in Laplacian smoothing (real value ≥ 1 and ≤ 80).
lapsmoothboundary
Flag indicating whether to include the boundary or not in Laplacian smoothing (1=yes, 0=no).
drawrecovery
Flag indicating whether to recovery draw constraints in topology optimization (1=yes, 0=no).
"autobead: shapeopt beadthreshold autobeadlayer"
This string is only required when autobead > 0.
shapeopt
Method used for topography or shape optimization interpretation. Valid values are:
  • 1 – Create autobead
  • 2 – Update new coordinates to original mesh
beadthreshold
Threshold value for autobead (real value ≥ 0 and ≤ 1).
autobeadlayer
Layer value for autobead (integer value 1 or 2).
"remesh: remeshsize meshtype attachtype remeshlayer remeshfeatureangle"
This string is only required when using remeshing.
remeshsize
The element size used in remeshing.
meshtype
Flag indicating the elements generated in remeshing. Valid values are:
  • 0 - trias
  • 1 - quads
  • 2 - mixed
  • 3 - right trias
attachtype
Flag indicating which elements will be remeshed. Valid values are:
  • 0 - Remeshing a numer of layers elements around PLOT elements
  • 1 - Remeshing all elements
remeshlayer
The number of layers when attachtype = 0 (integer ≥ 0).
remeshfeatureangle
The feature angle used in remeshing.
"other_params: units tetrameshingcode createplot surfacereduction reductionfeatureangle"
This string is required when isosurface = 1 or autobead = 1.
units
Units used for IGES and STEP output. Valid values are:
  • 1 - inch
  • 2 - mm
  • 4 - foot
  • 6 - meter
  • 10 - cm
tetrameshingcode
Flag indicating whether to create tetramesh after creating isosurface (1=yes, 0=no).
createplot
Flag indicating whether to create PLOT elements (1=yes, 0=no).
surfacereduction
Flag indicating whether to use surface reduction (1=yes, 0=no).
reductionfeatureangle
The feature angle to used for surface reduction (real value ≥ 1 and ≤ 80).
"ply: plyfile plysmoothiteration smallregiontype smallregion splitdisconnected"
This string is required when exemode = 2.
plyfile
The full name and path to the .fem file to save the smoothed result plies.
plysmoothiteration
The number of iterations to use in ply shape smoothing (integer ≥ 0).
smallregiontype
Flag indicating method used for small region (element patch or hole) detection. Valid values are:
  • 0 - Detect small regions by area ratio
  • 1 - Detect small regions by element count
smallregion
Threshold value to use for small region elimination. Small region depends on smallregiontype: when smallregiontype = 0, this indicates the area ratio (real value ≥ 0 and < 1, calculated by small region area/total design area). When smallregiontype = 1, this indicates the element count (integer, ≥0).
splitdisconnected
Flag indicating whether to split disconnected patches into new plies (1=yes, 0=no).

Examples

To execute OSSmooth FEA reanalysis on the current model in HyperMesh (the C:/test/os1.fem and c:/test/os1.sh files), create isosurface with 0.3 density threshold, split all quads on non-design/design interface, Laplacian smoothing, with 10 iterations and 30 degrees feature angle, do remeshing on 2 layers of elements around PLOT, with element size 0.5, and feature angle 30:

*createstringarray 3 "isosurf: 3 3 0.3 0 -1 0 0 10 30 1 0" "remesh: 0.5 0 0 2 30" "other_params: 1 0 0 0 10"
*ossmooth_12 1 1 0 3 "c:/test/os1.fem" "c:/test/os1.sh" "" 1 0 1 2
To execute ply smoothing on C:/test/os2.fem, eliminate small element patches and holes with less than 20 elements, smoothing plies with 20 iterations, split disconnected patches into new plies, export smoothed result plies into C:/test/os2_smooth.fem:
*createstringarray 1 "ply: C:/test/os2_smooth.fem 20 1 20 1"
*ossmooth_12 0 2 0 1 "C:/test/os2.fem" "" "" 0 0 1 1

Errors

Incorrect usage results in a Tcl error. To detect errors, you can use the catch command:
if { [ catch {command_name...} ] } {
   # Handle error
}

Version History

12.0