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.
- autobead
- Flag indicating whether to create an autobead design.
- 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
}