Calculates the thickness of a midmesh and assigns properties.
    Syntax
      
      *compute_midmesh_thickness
        mesh_entity_type mesh_mark_id geom_entity_type geom_mark_id string_array
          number_of_strings
    
    Type
      
      HyperMesh Tcl Modify Command
    
    Description
      
      Computes the thickness of the midmesh elements based on the proximity with the geometry.
        New properties are created with thickness assigned. The command expects a baseline property
        with the name t0 to exist before execution. It estimates thickness and assigns the
        thicknesses to new properties, using the t0 property as a template. Optionally, an expected
        minimum and maximum thicknesses can be supplied, which will be used and a guide for the
        computation. 
      This functionality is currently supported for the OptiStruct,
          Radioss, Nastran, Abaqus, LS-DYNA and ANSYS user profiles.
    
    Inputs
      
      
        
          - mesh_entity_type
- Entity type used for mesh input. Valid values are:
          
- mesh_mark_id
- The ID of the mark containing the mesh input. Valid values are 1 and 2.
- geom_entity_type
- Entity type used for geometry input. Valid values are:
              - solids
- surfaces
- elements
- components
 
- geom_mark_id
- The ID of the mark containing the geometry input. Valid values are 1 and 2.
- string_array
- The ID of the string array that contains the additional input parameters. The string
            array is created using the *createstringarray command. This should
            always be set to 1. 
- Valid parameters and their syntax are:
              
                - AbsoluteGroupingTolerance: <tolerance>
- The band width of the thickness group. This is applicable only when
                  ThicknessOutputOption is PropertyOnElements or PropertyOnComponents, or when
                  GroupThickness is enabled.
- Range > 0 
- Default = 0, which means this option is ignored and GroupingTolerance is
                  used.
- AppendToTable: <value>
- If set to 1, when run for the second time, the current computation results will
                  be added to an existing table. This option is valid only for Radioss.
- AssignMidIntervalAsThickness: <value>
- Specifies whether to use the mid-value of the interval as the thickness of the
                  group.  Valid values are:
                    - 0 - Assigns the average thickness of all elements in the group.
- 1 - Assigns the mid-value of the interval. 
- -1 - The command chooses the behavior (for FixedInterval = 1, behaves as 1,
                      0 otherwise).  Default if not specified.
 
- CardImage: <card image name>
- The card image to be used to create new properties. This is applicable only if
                  the ThicknessOutputOption is set to PropertyOnElements or PropertyOnComponents. 
- Default - A suitable default card image is used according to the selected solver
                  profile.
- ConnectionInterpolationFactor: <factor>
- The factor used in interpolating the thickness values near a connection (sharp
                  corners, t/x-junctions). Valid factors are:
                    - 0 - Approximate mass conserved thickness estimation at connections. 
- 0 < factor < 1 - Thickness linearly decreases towards the connection. 
- 1 - Thickness is interpolated constantly (default). 
- > 1 - Thickness linearly increases towards the connection.
 
- CornerThicknessCorrectionThreshold: <value>
- The ratio of the maximum thickness allowed at corners to the maximum thickness
                  of the rest of the face. If a thickness exceeds this ratio at the corners, it will
                  be corrected. The inverse of this ratio is used to limit the maximum thickness at
                  the corners as well. 
- Range > 1.0 
- Default - 1.5
- FeatureAngle: <value>
- The angle used to decide the features of the mid-mesh. The corner scaling
                  options are applied to these features. 
- Range - (0, 180) 
- Default - 30
- FixedInterval: <value>
- User defined “fixed” thickness interval value for each group of elements.
- GroupThickness: <value>
- Defines whether the calculated exact thickness needs to be grouped and an
                  average value needs to be assigned. This helps reduce the number of different
                  thickness values, at the cost of accuracy of the results. This is applicable only
                  if ThicknessOutputOption is Element. This is always turned on if
                  ThicknessOutputOption is PropertyOnElements or PropertyOnComponents, and always
                  turned off if ThicknessOutputOption is Node or ElementNodal.
                    - 0 - Do not group thickness (default). 
- 1 - Group thickness.
 
- GroupingTolerance: <tolerance>
- The relative band width of the thickness group (in terms of a factor of the
                  average group thickness). This is applicable only when ThicknessOutputOption is
                  PropertyOnElements or PropertyOnComponents, or when GroupThickness is enabled.
                  This is ignored if, AbsoluteGroupingTolerance is provided. 
- Range - (0, 1.0) 
- Default - 0.2
- HighlightCorrected: <value>
- 0 - Assign an extrapolated thickness value to any mesh outside the solid. 
- 1 - Highlight the corrected entities.
- LogFile: <file>
- The full path and name of the file where the command execution information is to
                  be logged.
- MaxInclinationOfMidMeshWithSolid: <angle>
- The maximum angle that the mid-mesh makes with the solid, beyond which the
                  estimated thickness will be ignored and corrected. 
- Range - (0, 90) 
- Default - 35
- MaxInclinationOfMidMeshWithSolidAtFreeEdges: <angle>
- The maximum angle that the mid-mesh makes with the solid at the free edges of
                  the mid-mesh, beyond which the estimated thickness will be ignored and corrected. 
- Range - (0, 90) 
- Default - 35
- MaxRelativeChordalDeviation: <value>
- The maximum chordal deviation to use when generating facets used for internal
                  calculations, relative to the minimum thickness. Applicable only if
                    geom_entity_type is surfaces or solids. The default is 0.1,
                  which means for a minimum thickness of 1.0, the geometry faceting will use a
                  maximum chordal deviation of 0.1.
- MaxSearchDistance: <distance>
- The maximum proximity distance which is considered for the thickness
                  calculation.
- Range ≥ 0, where 0 means the max distance is calculated internally, based on the
                  model bounding box dimensions.
- MaxThickness: <value>
- The maximum thickness expected in the model. Any thickness estimated more than
                  this is set to this value.
- MaxThicknessGradient: <factor>
- The maximum change in thickness allowed across two adjacent measurement
                  locations, as a factor of the distance between the locations. 
- Range - (0, 10.0] 
- Default - 2.0
- MinThickness: <value>
- The minimum thickness expected in the model. Any thickness less than this is
                  corrected.
- NeedOffset: <value>
- Defines whether element offset values are required or not.
                    - 0 - Offset values are not needed (default). 
- 1 - Offset values are needed.
 
- NewPropertyPrefix: <prefix>
- The prefix to be used for naming the newly created properties/components. This
                  is applicable only if the ThicknessOutputOption is set to PropertyOnElements or
                  PropertyOnComponents. 
- Default - 'thickness'. If SampleProperty is supplied, its name is used
                  instead.
- NumDecimals: <value>
- The number of decimal digits to use in the output. The output will be truncated
                  with the given value.
                    - > 0 - The number of digits required after the decimal point. 
- 0 - Rounded off to nearest integer. 
- < 0 - The minimum number of zeros required before the decimal point. 
- auto - 1% of the estimated min thickness. 
- AbsoluteGroupingTolerance - Use the same precision as
                      AbsoluteGroupingTolerance.
 
- Examples:
- NumDecimals: 2
                    - 303.2134 --> 303.21 
- 316.6666 --> 316.67
 
- NumDecimals: 0
                    - 303.2134 --> 303 
- 316.6666 --> 307
 
- NumDecimals: -1
                    - 303.2134 --> 300 
- 316.6666 --> 310
 
- NumDecimals: auto
                    - 303.2134 --> 303 
- 4316.6666 --> 4320
 
- RegroupThicknessVariationFactor:<value>
- The tolerance factor used to determine if element is going to be regrouped in
                  case of merging isolated elements into adjacent groups. For example, if the value
                  is 0.2, elements can only be regrouped if the percentage change in thickness is
                  going to be less than 20%.
- Range - (0, 1.0)
- Default – 0.2
- RenameRetainedComponents:<value>
- New components are created only if the existing component contains more than one
                  thickness groups. If all the elements in an existing component have the same
                  thickness, the component is retained as it is. In that case, setting this option
                  to 1 ensures that the retained component is renamed as per the naming rules for
                  new components. This is applicable only when the
                    ThicknessOutputOption value is set to
                  PropertyOnComponents2.
- SampleProperty: <property name>
- If CardImage is not supplied, a sample property can be supplied which will be
                  used as a template to create the new properties. This is applicable only if the
                  ThicknessOutputOption is set to PropertyOnElements or PropertyOnComponents. This
                  is also applicable when the CardImage option is not supported by this
                  command.
- SkipOutsideMeshFromCorrection: <value>
- 0 - Assign an extrapolated thickness value to any mesh outside the solid
                  (default). 
- 1 - Do not assign any thickness to any mesh which is determined to be outside
                  the solid, even if it is connected to the mid-mesh inside.
- StartThickness: <value>
- User defined “fixed” start thickness value of the first group. This is
                  applicable only for the user-defined fixed interval scheme.
- ThicknessAssignMethod:<option>
- The method of assigning thickness. If set to “Average”, the thickness assigned
                  to the group will be the average thickness value of all the elements in that
                  group. Similarly, if set to “Min-interval”, the thickness assigned to the group
                  will be set to the minimum thickness element in that group if automatic method is
                  chosen, and the left boundary thickness if fixed interval method is chosen.
- Valid values are: Average (default), Min-interval, Mid-interval, and
                  Max-interval.
- ThicknessCorrectionMethod: <method>
- The method to be used to correct the thickness on elements/nodes where thickness
                  could not be estimated, or estimated incorrectly. Valid methods are:
                    - Interpolation - Interpolates the thickness from the neighborhood (default). 
- UseMinOrMaxThickness - Resets the estimated thicknesses which exceeds the
                      min or max limits to the set limits.
 
- ThicknessOutputOption: <option>
- Specify how the thickness data should be output. Valid options are:
                    - Node - Thickness assigned on node card.
- Element - Thickness assigned on element card (default for Radioss).
- ElementNodal - Thickness assigned as nodal thickness on element card
                      (default for LS-DYNA).
- PropertyOnComponents2 – Thickness assigned on component properties,
                      additionally make sure that elements originally from different components are
                      not grouped into the same component because they have the same thickness. This
                      is achieved by creating components with naming scheme
                      <component_name>_<prefix>_<thickness>
- PropertyOnElements - Thickness assigned on element properties (default for
                        OptiStruct, Abaqus
                      and Nastran).
 
- WriteToInclude: <value>
- If set to 1, the computation results will be written to an include file. This
                  option is valid only for Radioss.
 
- number_of_strings
- Integer indicating the size (number of strings) in the string array created using
              *createstringarray.
Examples
      
      To calculate the midmesh thickness for all shell elements, based off of the displayed
        surfaces, using a min thickness of 0.1 and a max thickness of
        1.0:
*createmark elems 1 all
*createmark surfs 1 displayed
*createstringarray 2 {MinThickness: 0.1} {MaxThickness: 1.0}
*compute_midmesh_thickness elems 1 surfs 1 1 2
To calculate the midmesh thickness for all shell elements, based off of the displayed
        surfaces, using a min thickness of 0.1 and a max thickness of 1.0 with REAL SET for
          
ANSYS:
*createmark elems 1 all
*createmark surfs 1 displayed
*createstringarray 14 "ThicknessOutputOption : PROPERTYONCOMPONENTS" "NeedOffset : 0" \
  "ThicknessCorrectionMethod : Interpolation" "ConnectionInterpolationFactor : 1.0" \
  "LogFile : C:/Users/ Temp/__ThicknessCalculationLog263.log" \
  "CardImage : SHELL63p" "GroupingTolerance : 0.2" "NumDecimals : Automatic" \
  "NumDecimalsOffset : Automatic" "MaxInclinationOfMidMeshWithSolid : 35" "MaxThicknessGradient : 2.0" \
  "ThicknessMeasurementLocation : Default" "SkipOutsideMeshFromCorrection : 0" \
  "MaxRelativeChordalDeviation : 0.1"
*compute_midmesh_thickness elems 1 surfs 1 1 2
To calculate the midmesh thickness for all shell elements, based off of the displayed
        surfaces, using a min thickness of 0.1 and a max thickness of 1.0 with SECTYPE for 
ANSYS:
*createmark elems 1 all
*createmark surfs 1 displayed
*createstringarray 14 "ThicknessOutputOption : PROPERTYONCOMPONENTS" "NeedOffset : 0" \
  "ThicknessCorrectionMethod : Interpolation" "ConnectionInterpolationFactor : 1.0" \
  "LogFile : C:/Users/Temp/__ThicknessCalculationLog263.log" \
  " CardImage : SECTYPE" "GroupingTolerance : 0.2" "NumDecimals : Automatic" \
  "NumDecimalsOffset : Automatic" "MaxInclinationOfMidMeshWithSolid : 35" "MaxThicknessGradient : 2.0" \
  "ThicknessMeasurementLocation : Default" "SkipOutsideMeshFromCorrection : 0" \
  "MaxRelativeChordalDeviation : 0.1"
*compute_midmesh_thickness elems 1 surfs 1 1 2
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
      
      11.0.101
      2017.1 - New options AssignMidIntervalAsThickness,
          FixedInterval and StartThickness added to support
        thickness grouping into intervals.
      2021.1 - New options
          RegroupThicknessVariationFactor,RenameRetainedComponents,
        and ThicknessAssignMethod to enhance thickness grouping. Removed
          ThicknessOutputOption value
        PropertyOnComponents.