Blocking Commands

All ic_hex commands are used as a simple string without argument grouping. If an argument is grouped with curly braces, quotes, or square brackets, an eval should be placed before the command to remove one level of grouping.

Wherever an index range is needed as an argument, only specify the ranges which are limiting indices, not fully displayed indices. For example, for a box with max indices of 3 in i, j, and k (including VORFN), if only j and k are constrained, this argument may look like this: 0:2,3 2:1,3. The 1 index is not specified because it is not limited.

Use [range_string] to return the current active index range.

Wherever a list of volume parts is needed as an argument, [volume_activename_string] can be substituted for the current active parts that contain blocks. For example, the following command returns all visible vertex numbers:

eval ic_hex_select_nodes 1 all [range_string] m [volume_activename_string] node_numbers

ic_hex_check_licensing

Checks if hexa licensing is enabled.

ic_hex_release_licensing

Check back hexa licensing.

ic_hex_init

Initialize the hexlib and graphics adapter. Usage: ic_hex_init

ic_hex_ensure_is_loaded

Returns 1 if the call to the function loads the hex library. Usage: ic_hex_ensure_is_loaded

ic_hex_dladaptobj_is_loaded

Returns 1 if hex graphics adapter is initialized. Usage: ic_hex_dladaptobj_is_loaded

ic_hex_remove_dladaptobj args

Remove hex graphics object if it is initialized. Usage: ic_hex_remove_dladaptobj

ic_hex_update_dladaptobj args

Updates dladaptobj.

ic_hex_is_modified onoff [""]

Checks to see if blocking has been modified, optional argument onoff 0/1 sets the blocking as not modified or modified.

ic_hex_curve_radius args

Returns the radius of the curve. Restrictions: Valid only for periodic models. Usage: ic_hex_curve_radiuscurve_name

ic_hex_curve_length args

Returns the arc length of the curve. Usage: ic_hex_curve_lengthcurve_name

ic_hex_point_distance args

Returns the distance between the two prescribed points. Usage: ic_hex_point_distancep1p2

ic_hex_error_messages args

Enables/disables the display of error messages. Usage: ic_hex_error_messages on|off|1|0

ic_hex_reference_blocking args

Usage:ic_hex_reference_blockingref_blocking

ic_hex_set_ref_uns_mesh args

Usage: ic_hex_set_ref_uns_meshdomain_file

ic_hex_update_ref_uns_mesh args

Usage: ic_hex_update_ref_uns_mesh

ic_hex_set_uns_face_mesh args

Usage: ic_hex_uns_face_meshuns_face

ic_hex_surface_blocking args

Initializes a 2D block from every surface. Requires build topology first.

Usage: ic_hex_surface_blockingmaterialblock_type-min_edgevalue

Argument Descriptions:

materialthe blocks will belong to this part. -inherited will put each block into the part of the surface it came from
block_typedetermines the unstructured and mapped blocks. Can be -mapped, -mixed, or -unstruct.
-min_edgemerge block if any edge of a block is less than the following number. Only applies if the -respect_non_dormant argument is not added
valuevalue for -min_edge

Additional arguments:

-respect_non_dormantblocks will not be merged if this argument is appended
-surfacesonly initializes the listed surfaces. This is followed by a list of surface names.

ic_hex_multizone_blocking args

Initializes a 3D blocking. Requires build topology first. Geometry must contain a solid (from imported geometry) or a body.

Usage: ic_hex_multizone_blocking-inherited-block_type-min_edgevalue1-uface_typevalue2-volfampart

e.g.,: ic_hex_multizone_blocking -inherited -block_type -min_edge value1 -automatic_sweep -uface_type value2 -volfam part

Argument descriptions:

-block_type can be robust or swept.

-min_edge merge blocks if any edge of a block is less than the value1 number. Only applies if the -respect_non_dormant argument is not added.

value1 Value for -min_edge.

-uface_type can be one of several_tris or all_tris or all_quads.

value2 Value for -uface_type.

Additional arguments:

-respect_non_dormantBlocks will not be merged if this argument is appended.
-automatic_sweepIn case of block_type swept required.
-swept_surfacesThe surfaces for the swept blocks. This is followed by a list of surface names.

ic_hex_virtual_topo_blocking args

Creates 2D surface blocking for AutoVT

ic_hex_twod_to_threed args

Fills in 2D surface blocking with volume blocks. Usage: ic_hex_twod_to_threedpart[-basic]

part is the part that the new volume blocks will be created in.

If -basic is appended, the volume blocks will all be unstructured blocks if it cannot figure out a simple structured fill. If -basic if omitted, it will try to break up the domain in order to get as many structured blocks as possible.

The basic fill is the most robust and most used. The 2D blocking must form a closed volume of surface blocks.

ic_hex_make_edge_smooth args

Usage: ic_hex_make_edge_smoothn1n2

ic_hex_reset_ogrid_orthogonality args

Resets the Ogrid orthogonality between a vertex and the orthogonal vertex along Ogrid direction.

Usage: ic_hex_reset_ogrid_orthogonalityn1n2[parts]

ic_hex_blank_blocks args

Blanks blocks. Usage: ic_hex_blank_blocks [marked] [reverse]

ic_hex_blank_selected_blocks use_output use_blank blocks

Blank selected blocks. Usage: ic_hex_blank_selected_blocksuse_output use_blank blocks. Set use_output to "1" if Pre-Mesh > Output Blocks is set. Set use_blank to "1" if Blocks > Blankingis set. blocks is a list of block numbers.

ic_hex_unblank_blocks args

Unblanks blocks. Usage: ic_hex_unblank_blocks [marked] [reverse]

ic_hex_check_face_radii args

Usage: ic_hex_check_face_radiin1n2n3n4

ic_hex_update_node_indices args

Updates the node indices. Usage: ic_hex_update_node_indices

ic_hex_update_node_locations args

Updates the node locations based on geometry tags and projection of vertices. Usage: ic_hex_update_node_locations [parts]

ic_hex_remove_unused_grid_lines args

Removes unused grid lines from the blocking

Usage: ic_hex_remove_unused_grid_lines [-only_one] [-version]

ic_hex_set_edge_tangents args

Sets the tangents on an edge Usage: ic_hex_set_edge_tangentsn1n2tan1_infotan2_info

Where: tan1_info would be one of following: tan1 ortho fac1 tangency_factor tan1 tangency_point_xyz fac1 tangency_factor "" and tan2_info would be one of following: tan2 ortho fac2 tangency_factor tan2 tangency_point_xyz fac2 tangency_factor "" e.g. set n1 22 set n2 65 eval ic_hex_set_edge_tangents $n1 $n2 tan1 ortho fac1 0.33 tan2 0 0 1 fac2 0.33

ic_hex_smooth_edges_at_vertex args

Makes the edges coming into a vertex smooth. Usage: ic_hex_smooth_edges_at_vertexnode_numfamilies

node_num could be replaced by ijk_range for example, set n 26 eval ic_hex_smooth_edges_at_vertex $n [volume_activename_string]

ic_hex_edge_node_dim args

Returns the dimension and index between two vertices. Usage: ic_hex_edge_node_dimn1n2

ic_hex_get_edge_node args

Returns the other node of the edge dimension. Usage: ic_hex_get_edge_nodeijk dim for example, ic_hex_get_edge_node " 1 2 1 " 0

ic_hex_point_location args

Returns the location of a prescribed point. Usage: ic_hex_point_locationname

ic_hex_get_surface_family args

Returns the family name of a surface. Usage: ic_hex_get_surface_familysurface_name

ic_hex_define_family args

Defines a family by a name. Usage: ic_hex_define_familyname

ic_hex_set_family_projection args

Allows you to enable/disable projection to a part.

Usage: ic_hex_set_family_projectionpartname0|1

for example, ic_hex_set_family_projection SOLID 0 indicates that projection to the part SOLID has been disabled. Similarly, ic_hex_set_family_projection FLUID 1 indicates that projection to the part FLUID has been enabled.

ic_hex_auto_split_edge args

Splits an edge into as many points as it will be meshed. Usage: ic_hex_auto_split_edge {n1 n2} | {-all [-spline] [dim : low , hi] [fam1 fam2 ...]}

ic_hex_split_edge args

Splits an edge at the specified location. Usage: ic_hex_split_edge {n1 n2} {n} {loc}

for example, ic_hex_split_edge 21 25 0 1.7 8.5 0 implies that edge 21–25 will be split at the location (1.7, 8.5, 0). The value n which is 0 in this example indicates that this is the first split between the vertices 21 (start vertex) and 25 (end vertex). Alternatively, a value of 1 would indicate that the split is the second between the specified vertices, and so on.


Tip:  To use an existing point to indicate the location to be used, you can use the following in the replay script:

set name pnt.00 ;# point must exist
set loc [ic_geo_get_point_location $name]
set x [lindex $loc 0]
set y [lindex $loc 1]
set z [lindex $loc 2]
ic_hex_split_edge 21 25 0 $x $y $z

ic_hex_undo_major_start args

Puts a major start in the undo log and save model. Usage: ic_hex_undo_major_starttext

ic_hex_undo_major_end args

Puts a major end in the undo log. Usage: ic_hex_undo_major_endtext

ic_hex_add_boco args

Adds a boundary condition to a family. Usage: ic_hex_add_bocofamily [value1 value2 ...]

ic_hex_get_block_family args

Gets the family (part) of a block. Usage: ic_hex_get_block_familyblock_num

ic_hex_read_domains args

Reads the node locations from the domains directory. Usage: ic_hex_read_domainsm1m2 ...

ic_hex_reverse_dimension args

Reverses the global orientation of a dimension. Usage: ic_hex_reverse_dimension [dim]

ic_hex_write_family_boco args

Writes the family boco file. Usage: ic_hex_write_family_boco [filename]

ic_hex_clear_bocos args

Clears the bocos on some or all families Usage: ic_hex_clear_bocos [fam1 ...]

ic_hex_align_superblocks args

Aligns blocks with a given superblock. Usage: ic_hex_align_superblocksblock_num

ic_hex_vertex_ijk args

Returns the i j k of a vertex. Usage: ic_hex_vertex_ijkvertex_num

ic_hex_vertex_number args

Returns the vertex number from the vertex index.

args is a vertex index in format { i j k etc }. There must be spaces on both sides of each number.

ic_hex_get_block_vertices args

Returns the 8 corner vertices of the block. Usage: ic_hex_get_block_verticesblock_num

ic_hex_get_vertex_blocks args

Returns block numbers of all blocks attached to the vertex. Usage: ic_hex_get_vertex_blocksvertex_num

ic_hex_get_edge_blocks args

Returns block numbers of all blocks attached to the edge. An edge is defined by its end vertex numbers.

Usage: ic_hex_get_edge_blocksvertex_num1vertex_num2

Usage: ic_hex_get_edge_blocks{ vertex_num1 vertex_num2 }

ic_hex_get_face_blocks args

Returns block numbers of attached blocks that contain the specified face. A face is defined by its 4 corner vertex numbers.

Usage: ic_hex_get_face_blocksvertex_num1vertex_num2vertex_num3vertex_num4

Usage: ic_hex_get_face_blocks{ vertex_num1 vertex_num2 vertex_num3 vertex_num4 }

ic_hex_get_vertex_faces args

Returns faces attached to the specified vertex. A face is defined by its 4 corner vertex numbers.

Usage: ic_hex_get_vertex_facesvertex_num

ic_hex_get_edge_faces args

Returns faces attached to the specified edge. A face is defined by its 4 corner vertex numbers. An edge is defined by its end vertex numbers.

Usage: ic_hex_get_edge_facesvertex_num1vertex_num2

ic_hex_get_vertex_edges args

Returns edges attached to the specified vertex. An edge is defined by its end vertex numbers.

Usage: ic_hex_get_vertex_edgesvertex_num

ic_hex_uncollapse_edge args

Uncollapses an edge of a degenerate block. Usage: ic_hex_uncollapse_edgevertex_num

ic_hex_link_shape args

Links the shape of one edge to another. Usage: ic_hex_link_shapetar_vert1tar_vert2src_vert1src_vert2factor

tar_vert1 and tar_vert2 are the end vertices of the target edge. src_vert1 and src_vert2 are the end vertices of the source edge. factor is a multiple of the curvature. 1 will produce the exact same shape. A decimal will produce less curvature, and a number greater than one will produce more curvature.

ic_hex_link_shape_dimension args

Links the shape of all edges across the specified index dimension

Usage: ic_hex_link_shape_dimensiondimvertex1vertex2factorindex_rangeparts

Argument descriptions:

dimindex dimension where i=0, j=1, k=2, O3=3, etc..
vertex1vertex number belonging to one of the source edges
vertex2vertex number belonging to one of the target edges
factormultiplication factor of the shape curvature. "1" will produce the same curvature.
index_rangeoperates only on this index_range. Use [range_string] to return the current active index range.
partsthe list of parts that contain blocks. Only edges belonging to these blocks will be shaped. Use [volume_activename_string] to return all the active part names containing blocks.

ic_hex_topo_vertex_numberargs

Returns the topological number of a face. Usage: ic_hex_topo_vertex_numbern1

ic_hex_topo_edge_number args

Returns the topological number of an edge. Usage: ic_hex_topo_edge_number[output_blocks]n1n2

ic_hex_list_edge_constraints args

Returns the constraints set on an edge. Usage: ic_hex_list_edge_constraintsn1n2

ic_hex_topo_face_number args

Returns the topological number of a face. Usage: ic_hex_topo_face_number [output_blocks] n1n2

ic_hex_topo_face_number_list args

Returns the topological numbers of a list of faces. Usage: ic_hex_topo_face_number_list [output_blocks] "n1n2n1n2 ..."

ic_hex_get_super_faces_topo args

Returns the topological numbers of all existing faces. Usage: ic_hex_get_super_faces_topo [output_blocks]

ic_hex_change_mouse_buttons args

Changes mouse buttons for Hexa. Usage: ic_hex_change_mouse_buttonsrotatetranslatescalescale_dir

ic_hex_global_smooth args

Runs the global hex smoother on the blocking. Usage: ic_hex_global_smoothfamilies [fam1 fam2 fam3 ...]

ic_hex_edge_ijk args

Usage: ic_hex_edge_ijktopo_num

ic_hex_gls_init args

Usage: ic_hex_gls_initname

ic_hex_display_ijk_region args

Display faces between different materials.

Usage: ic_hex_display_ijk_region [topo_dom_no dom] [ijk_reg n1 n2 n3 n4 n5 n6] [solid]

ic_hex_delete_blocks args

Deletes blocks permanently from the blocking.

Usage: ic_hex_delete_blocks {ijk1 ijk2} | marked | {numbers n1 n2 ...} | {blanked fam1 fam2 ...} [output_blocks]

ic_hex_mesh_dimension args

Gets the dimension of the blocking (2=2D Blocking or 3=3D Blocking). Usage: ic_hex_mesh_dimension

ic_hex_dim_to_mesh args

Gets the meshed dimension of the blocking (1,2,2.5 or 3). Usage: ic_hex_dim_to_mesh

ic_hex_create_block args

Creates a new block.

Usage: ic_hex_create_blockpart_namen1n2n3n4n5n6n7n8active_parts

Usage: ic_hex_create_blockpart_namen1n2n3n4active_parts (for a 2D blocking)

e.g.,: eval ic_hex_create_block SOLID 134 135 128 129 110 111 104 105 [volume_activename_string]

For the two opposing rectangular faces of the 3D block, n2 directly opposes n1, n4 directly opposes n3, n6 directly opposes n5, and n8 directly opposes n7

Any of n1 - n8 can be replaced with an {x y z} location

ic_hex_create_sheet args

Creates a 2D sheet in 3D Blocking.

Usage: same as ic_hex_create_block

ic_hex_create_unstruct_sheet args

Creates a 2D unstructured sheet in 3D Blocking.

ic_hex_merge_sheet_with_unstruct args

Merges the sheet block inside a free block.

Usage: ic_hex_merge_sheet_with_unstructfree_blocksheet_block

ic_hex_create_block_primitive args

Creates a block primitive. Usage: ic_hex_create_block_primitivetypefamily c1 c2 [c3] p1 p2 [p3] s1 s2 [s3]

ic_hex_create_yblock args

Creates a new Y-block.

Usage: ic_hex_create_yblockpart_namen1n2n3n4n5n6active_parts

e.g.,: eval ic_hex_create_yblock SOLID 134 135 110 128 129 104 [volume_activename_string]

The first 3 vertices belong to the triangular face of one side, and the last 3 vertices are for the triangular faces of the opposite side

Any of n1 - n6 can be replaced with an {x y z} location

ic_hex_create_degen_block args

Creates a new degenerate block.

Usage: ic_hex_create_degen_blockpart_namen1n2n3n4n5n6active_parts

e.g.,: eval ic_hex_create_degen_block SOLID 134 135 110 128 129 104 [volume_activename_string]

The mesh will converge to n1 and n4. Any of n1 - n6 can be replaced with an {x y z} location.

ic_hex_create_unstruct_block args

Creates a swept block.

Usage: ic_hex_create_unstruct_blockpart_namen1n2n3n4n5n6active_parts

Usage: ic_hex_create_unstruct_blockpart_namen1n2n3 ... nn active_parts (for a 2D blocking)

e.g.,: eval ic_hex_create_unstruct_block SOLID 134 135 110 128 129 104 [volume_activename_string]

For the two opposing triangular faces of the block, n2 directly opposes n1, n4 directly opposes n3, and n6 directly opposes n5. If a block is converted to unstructured, rather than created, it is not limited to a 6-vertex block in shape.

ic_hex_split_unstruct_block args

Split a free block face.

Usage: ic_hex_split_unstruct_blockvertex1vertex2

vertex1 and vertex2 must be corner vertices of the face to split.

ic_hex_split_unstruct_block3d args

Splits a 3D unstructured block into different volume regions.

Usage: ic_hex_split_unstruct_block3dublock_numby_sheetssheet1sheet2...

Usage: ic_hex_split_unstruct_block3dublock_numloop1sheet1

Usage: ic_hex_split_unstruct_block3dublock_numloop1sheet1loop2sheet2

ic_hex_select_blocks args

Returns block numbers in the range and parts specified.

Usage: ic_hex_select_blocks num display method index_range m parts

e.g.,: ic_hex_select_blocks 1 no_highlight all [range_string] m [volume_activename_string]

Argument descriptions:

numusually 1
displayno_highlight to not highlight the block
methodall, or inpoly p1 p2 p3 p4, where each p is the xyz of a point
index_rangespecifies the index range to limit selection. Use [range_string] to return the current active index range
mindicates the following arguments are part names
partsthe list of parts that contain blocks. Use [volume_activename_string] to return all the active part names containing blocks

The following arguments may be appended:

-not_blankedNormally, blanked blocks do not affect which vertices are returned. This option ensures vertices turned off due to blanked blocks are not returned.
super 
-keep_unstruct3d 

ic_hex_default_bunching_law args

Sets the default bunching law and ratio

Usage: ic_hex_default_bunching_lawlawratio

Returns without any argument the current bunching law.

ic_hex_merge_blocking args

Merge blocking topologies

Usage: ic_hex_merge_blockingtopo1topo2parts-remove_unused_grid_lines-eps<tolerance>-separate_classes-version 110

Where,

  • topo1 and topo2 are the topologies to merge

  • parts is the list of parts that contain blocks

    Use [volume_activename_string] to return all the active part names containing blocks.

  • tolerance specifies a relative tolerance for merging the topologies

ic_hex_merge_face args

Merges faces.

Usage by face corners: ic_hex_merge_face[ijk of vertex_num1][ijk of vertex_num2]

Usage by block faces: ic_hex_merge_face-facesface1face2

ic_hex_print_topo_tree args

Returns the existing topology names.

ic_hex_extrude_blocks args

Converts a 2D blocking into a 3D blocking by translation or rotation.

Usage: ic_hex_extrude_blockstranslatedir

Usage: ic_hex_extrude_blocksrotatecenteraxisangle

e.g.,: ic_hex_extrude_blocks rotate 0 0.05 0 1 0 0 45 -ncopies 1 -npoints 10 collapse_axis -extrude_points -extrude_curves

Argument descriptions:

dirvector which describes direction and magnitude of translation
centerxyz location of center of rotation
axisvector which gives the rotation axis direction
angleangle of rotation in degrees

Additional arguments for the rotation method:

-ncopiesEach 3D wedge will be incrementally copied around the axis. A number must follow this argument. The first extrusion is included in the number. 4 copies of 90 degrees will produce a complete 360 degrees.
-npointsThe number of nodes on extruded edges in the circumferential direction. A number must follow this argument.
collapse_axisMerges nodes at the axis. Choose this if vertices lie on the axis.
-extrude_pointsThe points of point-projected vertices (red vertices) will be extruded into curves.
-extrude_curvesThe curves of curve-projected edges (green edges) will be extruded into surfaces.

ic_hex_switch_blocking args

Switch to another blocking topology

Usage: ic_hex_switch_blockingtopo_name

ic_hex_merge_blocks args

Merge two or more mapped or free blocks.

Usage 2D:

  • ic_hex_merge_blocksblock_numublock_num

  • ic_hex_merge_blocksublock_num1ublock_num2

  • ic_hex_merge_blocksblock_num1block_num2block_num3 ...

Usage 3D:

  • ic_hex_merge_blocksblock_num1block_num2block_num3 ...

  • ic_hex_merge_blocksublock_num1ublock_num2ublock_num3 ...

where block_num means mapped block and ublock_num means free block.

ic_hex_get_proj_curves compcurve

Returns the curve names that make up the composite curve.

ic_hex_find_comp_curve curve

Returns the composite curve name given any of the curve names that belong to it. Hexa composite curves are given the name of the first curve in the list of curve names that make up the composite curve.

ic_hex_delete_node_on_edge args

Remove nodes from faces in a free 3D block. Removal of node is not allowed for block corners.

Usage: ic_hex_delete_node_on_edgevertex_num

ic_hex_set_mesh_params args

Sets the mesh params for the pre-mesh

Usage: ic_hex_set_mesh_paramsparts<fix_counts><fix_laws><curve_bunching>-version 110

Where,

  • parts is the list of parts that contain blocks.

    Use [volume_activename_string] to return all the active part names containing blocks

  • fix_counts, if specified, changes the edge bunching law to the default (BiGeometric) geometry law

  • fix_laws, if specified, adjusts the number of nodes on each edge based on the global surface or curve mesh size

  • curve_bunching, if specified, transfers the advanced bunching parameters specified for curves to their associated edges

ic_hex_composite_curve args

Creates a composite curve from the list of curves. The composite curve name is the name of the first curve in the list.

Usage: ic_hex_composite_curvecurve1curve2curve3 ...

ic_hex_mark_blocks args

Marks blocks to be later used in operations on specific blocks. These include block splitting, Ogrids, and transformation operations.

Usage: ic_hex_mark_blockssuperblockblock_number

Usage: ic_hex_mark_blocksunmark

Only one block_number is allowed. Repeat the command for multiple block numbers.

The unmark version of the command clears all the marked blocks. This should always be done before marking new blocks.

ic_hex_select_nodes args

Returns vertex indices in the index range and block parts specified.

Usage: ic_hex_select_nodesnummethodindex_rangemparts

e.g.,: ic_hex_select_nodes 1 all 0:2,3 2:1,3 m [volume_activename_string]

Argument descriptions:

num1
methodall, or inpoly p1 p2 p3 p4, where each p is the xyz of a point
index_rangeSpecifies the index range to limit selection. Use [range_string] to return the current active index range
mindicates the following arguments are part names
partsthe list of parts that contain blocks. Use [volume_activename_string] to return all the active part names containing blocks

The following arguments may be appended:

node_numbersReturn node numbers instead of indices
surfaceReturn only external vertices
-not_blankedNormally, blanked blocks do not affect which vertices are returned. This option ensures vertices turned off due to blanked blocks are not returned.

ic_hex_select_edgeargs

Returns edge ID's in the range and parts specified

Usage: ic_hex_select_edgedisplaymethodindex_rangemaxnummparts

e.g.,: ic_hex_select_edge no_highlight all [range_string] max 1 m [volume_activename_string] new_format edge_segment volume

Argument descriptions:

displayno_highlight to not highlight the edge
methodal, or inpoly p1 p2 p3 p4, where each p is the xyz of a point
index_rangeSpecifies the index range to limit selection. Use [range_string] to return the current active index range
maxthe text "max" indicates the following number is the maximum amount to select
numusually 1
mindicates the following arguments are part names
partsThe list of parts that contain blocks. Use [volume_activename_string] to return all the active part names containing blocks

The following arguments may be appended:

new_format 
edge_segment 
volumereturn internal volume edges also. Otherwise just return external edges.

ic_hex_display_edge_mesh args

Sets the visible index range for the blocking.

Usage: ic_hex_display_edge_meshindex_rangempartsvolume

e.g.,: ic_hex_display_edge_mesh 1:2,3 m [volume_activename_string] volume

Specify only the ranges which are limiting indices, not fully displayed indices. For example, for a box with max indices of 3 in i, j, and k (including VORFN), if only j and k are constrained, this argument may look like this: 0:2,3 2:1,3. The 1 index is not specified because it is not limited.

To display the full index range, leave the argument empty. To return the current index range, use the command range_string.

ic_hex_select_super_faces args

Returns face ID's in the range and parts specified.

Usage: ic_hex_select_super_facesmethodmaxnumindex_rangeparts

Usage: ic_hex_select_super_facesmethodmaxnumcornersv1v2index_rangeparts

e.g.,: ic_hex_select_super_faces all max 1 [range_string] [volume_activename_string]

Argument descriptions:

methodall, or inpoly p1 p2 p3 p4, where each p is the xyz of a point
maxindicates the following number is the maximum amount to select
numusually 1
cornersindicates the faces will be selected by the two corners method
v1, v2vertex numbers for the two corners method. Diagonally opposed vertices.
index_rangeSpecifies the index range to limit selection. Use [range_string] to return the current active index range
partsThe list of parts that contain blocks. Use [volume_activename_string] to return all the active part names containing blocks

ic_hex_project_to_surface args

Move the nodes to surfaces, curves, and points

Usage: ic_hex_project_to_surfaceverticesindex_rangeparts<move_ogrid_nodes>

Where,

  • vertices is a list of vertices to project

  • index_range sets the index_range on which the function operates. Use [range_string] to return the current active index range.

  • parts is the list of parts that contain blocks

  • <move_ogrid_nodes> optionally moves the ogrid nodes. Default is to not move the ogrid nodes.

ic_hex_ogrid args

Create ogrid

Usage: ic_hex_ogridpartsoffset<link_shape><-version 50>

Where,

  • parts is the list of parts that contain blocks

  • offset specifies the height of the ogrid layer

  • link_shape, if specified, causes all internal edges and faces of ogrid block to be shaped by the nearest, corresponding geometry.

ic_hex_list_block_families args

Returns only block parts

ic_hex_list_block_families_without skip [VORFN]

Returns all block parts except part_name.

Example usage: ic_hex_list_block_families_withoutpart_name

ic_hex_list_surface_families args

Returns only blocking surface families

ic_hex_list_block_numbers args

Returns the list of super block numbers

ic_hex_non_empty_families args

Returns all non-empty block parts

ic_hex_save_blocking args

Saves the current blocking

Usage: ic_hex_save_blockingfile<-sub_topo topo>

ic_hex_split_grid args

Splits hexa blocks.

Usage: ic_hex_split_gridvertex1vertex2valuempartsflags

Usage: ic_hex_split_gridindexdimvaluempartsflags

Argument descriptions:

vertex1vertex number at end of edge
vertex2vertex number at other end of edge
valuesplit value
  • a decimal between 0 and 1

  • abs:distance

  • point name

  • curve:curvename:parameter

mindicates the following are part names
partsparts to split through
flagsWhen set to marked, only the marked blocks are split. The command ic_hex_mark_blocks will mark blocks
indexindex of vertex on the lower side of dim in format { i j k etc }
dimdimension of edge to split where 0=i, 1=j, 2=k, 3=O3, etc...

ic_hex_restore_blocking args

Loads a blocking file

Usage: ic_hex_restore_blockingblocking_filename<-skip_read_surface_params>

If specified, -skip_read_surface_params will ignore the size parameter from the tetin file. This is useful if you set other size parameters to the blocking and do not want them to be overwritten. Default is to transfer size parameters automatically to the blocking.

ic_hex_blocking_loaded args

Returns whether or not a blocking is loaded.

Usage: ic_hex_blocking_loaded

ic_hex_remove_edge_point args

Interactively remove edge split vertices

ic_hex_ratio_histogram args

Returns a list with ratio values of the selected quality criterion:

  • Value 1 is the minimum value found.

  • Value 2 is the maximum value found.

  • The number of the next values depends on the number of bars specified. For each bar (range) it will return 4 values: number of elements, the lowest value, the highest value, and percent.

Usage: eval ic_hex_ratio_histogramnumber_of_barsparts proj projection_type minval minval_value -type criterion maxval maxval_valuenew_format

Where,

  • number_of_bars is the number of requested bars

  • parts is a list of parts that contain blocks

  • set projection_type to -1 (no projection), 0 (vertices), 1 (edges), or 2 (faces)

  • minval_value sets the minimum value of the requested ratio range

  • criterion specifies the quality criterion to be used

  • maxval_value sets the maximum value of the requested ratio range

ic_hex_undo args

Obsolete

ic_hex_redo args

Obsolete

ic_hex_new_blocking ents fam bbox [""] trf [""] version [50]

Obsolete; use ic_hex_initialize_blocking

ic_hex_keypoint_blocking args

Initialize blocking from key points. Initialize a 3D blocking from entities. Initializing is required before any other blocking commands can be done.

Usage: ic_hex_initialize_blockingentspartoriented {version 101}

ic_hex_convert_to_struct args

Convert a block to structured (mapped).

Usage:

  • 2D or 3D blocking: ic_hex_convert_to_structblock_number-iterative

    Example: ic_hex_convert_to_struct 44 -iterative

  • 3D free or swept block face: ic_hex_convert_to_structfree_face_number-propagate

    Example: ic_hex_convert_to_struct { 32 - 33 u } -propagate

for

Usage for

ic_hex_convert_to_swept args

Convert a block to swept or convert a free block free face to mapped.

Usage:

  • for convert a block to swept: ic_hex_convert_to_sweptblock_face [-merge_parallel] -merge_parallel will merge all adjacent mapped faces at the same index level.

  • for convert a free block free face to mapped: ic_hex_convert_to_sweptfree_block_face


Note:  only for 3D blocking


ic_hex_imprint_loop args

Imprint loops of edges from one face onto another free block (2D) or free face (3D).

Usage for 2D blocking: ic_hex_imprint_looptarget_blockedge_loops

Usage for 3D blocking: ic_hex_imprint_looptarget_faceedge_loops

ic_hex_imprint_loop_and_split_block3d args

Combines into a single operation the ability to imprint loops from one or more sets of edges onto a free face, then split the block between the pair(s) of loops.

Usage: ic_hex_imprint_loop_and_split_block3dfree_faceedge_loops

ic_hex_connect_edges args

Connect edges from one block onto another free block (2D only).

Usage for 2D blocking: ic_hex_connect_edgestarget_blockedges

ic_hex_create_swept_block args

Create a swept block by merging two faces.

Usage: ic_hex_create_swept_blockface1face2

ic_hex_unstruct_face_type args

Sets the type of mesh for unstructured 2D blocks

Usage: ic_hex_unstruct_face_typetype

type can be stl, all_tris, all_quads, several_tris, or one_tri

ic_hex_print_block_type_info args

Returns the block type (free, mapped or swept).

Usage: ic_hex_print_block_type_infoblock_num

ic_hex_create_named_selection_subset args

Creates a named selection subset.

Usage: ic_hex_create_named_selection_subsetname

name is applied to the subset.

ic_hex_subset_add_named_selection_items args

Add entities to a named selection subset.

Usage: ic_hex_subset_add_named_selection_itemsnametypenumber_of_entitiesentities

Argument descriptions:

nameidentifies the subset
typecan be vertex, edge, or face
number_of_entitiesan integer value for the quantity of items to be added
entitiesidentifies the entities that are to be added using this type-dependent syntax:
  • If vertex, use the vertex number followed by 0 -1. For example 15 0 -1

  • If edge, use the end vertices followed by -1. For example 3 15 -1

  • If face, use the four corner vertex numbers. For example, 14 15 19 18 for a mapped face like { 14 15 19 18 } or 18 24 -1 -1 for a free face like { 18 - 24 u }.

Example: ic_hex_subset_add_named_selection_items WALL face 4 14 19 15 18 15 18 16 17 12 13 16 17 12 13 14 19 will add 4faces to the named selection subset called WALL. The four faces have corner vertices { 14 19 15 18 }, { 15 18 16 17 }, { 12 13 16 17 }, and { 12 13 14 19 }.

ic_hex_subset_remove_named_selection_items args

Remove entities from a named selection subset.

Usage: ic_hex_subset_remove_named_selection_itemsnametypenumber_of_entitiesentities

Argument descriptions: See the table under ic_hex_subset_add_named_selection_items.

ic_hex_delete_named_selection_subset args

Delete a named selection subset.

Usage: ic_hex_delete_named_selection_subsetname

ic_hex_rename_named_selection_subset args

Rename a named selection subset.

Usage: ic_hex_rename_named_selection_subsetnamenew_name

ic_hex_subset_named_selection name

Returns 1 if the named selection subset exists, 0 otherwise.

Usage: ic_hex_subset_named_selectionname

ic_hex_subset_list_named_selections

Returns a list of all named selection subsets.

Usage: ic_hex_subset_list_named_selections

ic_hex_mesh_free_surfaces args

Use Quad to mesh all of the surfaces with unstructured/free blocks.

ic_hex_get_edge_param n1 n2 param

Returns edge parameters.

Usage: ic_hex_get_edge_paramvertex1vertex2parameter

Argument descriptions:

vertex1vertex number at end of edge
vertex2vertex number at other end of edge
parameterparameter value of edge to return
  • nodes (number of nodes)

  • len (edge length)

  • law (mesh law)

  • max (max space)

  • sp1a or sp2a (actual spacing 1 or 2)

  • sp2r or sp2r (requested spacing 1 or 2)

  • r1a or r2a (actual ratio 1 or 2)

  • r1r or r2r (requested ratio 1 or 2)

ic_hex_is_edge_linked n1 n2

Returns 1 if edge is linked to another edge, and 0 if not.

Usage: ic_hex_is_edge_linkededge_vertex1edge_vertex2

ic_hex_match_and_link_edges rn1 rn2 n1 n2

Allows you to match and link spacing on edges.

Usage: ic_hex_match_and_link_edgesfrom_edgeto_edge

from_edge is the reference edge, to_edge is the target edge(s).

ic_hex_copy_edge_params from to absolut [0] no_nodes [0]

Allows you to copy the edge parameters from a reference edge to the selected edge(s) or to all parallel edges.

Usage: ic_hex_copy_edge_paramsfrom_edgeto_edgeabsolutno_nodes

from_edge is the reference edge. to_edge could be a list of selected edges or the value copy_to_parallel. absolut indicates that the exact spacing will be copied (default 0). no_nodes determines whether the number of nodes will be copied (default 0).

ic_hex_ratio_check_minquality which fams [""] range [""] project_type [2] full [0]

Checks and returns the minimum quality ratio (in case of "Volume change" the maximum quality).

Usage: ic_hex_ratio_check_minquality "criterion" [parts to check] [index range] [project_type 2]

ic_hex_scale_mesh_size_with_spacings_gui scale fams [""] range [""] use_output_blocks [0]

Scales the mesh size and edge spacing1, spacing2, and max space. This automatically selects all visible edges.

Usage: ic_hex_scale_mesh_size_with_spacings_guiscale_factor [parts] [index range] [use_output_blocks 0]


Note:  This function runs only in GUI mode, not in batch mode.


ic_hex_scale_mesh_size_with_spacings scale edges

Scales the mesh size and edge spacing1, spacing2, and max space.

Usage: ic_hex_scale_mesh_size_with_spacingsscale_factoredges_to_scale


Note:  This function runs in both modes (GUI mode and batch mode).


ic_hex _get_edge_segment_number args

Returns the number of edge segments (splitted edge).

Usage: ic_hex_get_edge_segment_numberedge_vertex1edge_vertex2

ic_hex_get_hidden_nodes args

Returns also the hidden nodes (if any) of an edge. Usage: ic_hex_get_hidden_nodesedge_vertex1edge_vertex2

ic_hex_set_unstruct_face_method args

Sets the method of mesh for unstructured 2D blocks.

Usage: ic_hex_unstruct_face_methodmethod

Method can be uniform_quad, gambit_pave, or auto.

ic_hex_ogrid_smooth_transition args

Turns the Ogrid_smooth_transition option on or off.

Usage: ic_hex_ogrid_smooth_transition [on/off]

Returns 0 (off) or 1 (on): set state [ic_hex_ogrid_smooth_transition]

ic_hex_project_to_topo args

Turns the Project_to_topo option on or off.

Usage: ic_hex_project_to_topo [on/off]

Returns 0 (off) or 1 (on): set state [ic_hex_project_to_topo]

ic_hex_get_nearest_existing_point vertex part [""]

Returns the nearest geometry point to a vertex position.

Usage: ic_hex_get_nearest_existing_pointvertex_num

ic_hex_compute_curvature_asf args

Computes the bunching on the blocking edges according to the TGLib size function background grid (must be accessible).

Usage: ic_hex_compute_curvature_asf-asf_mesh_filefname-do_proximity-skip_edges_in_sweep_dir-skip_dimsd1 d2 d3 ...

e.g.,: eval ic_hex_compute_curvature_asf-asf_mesh_file./asf_mesh.uns-do_proximity-skip_dims0 4 6

Argument Descriptions:

-asf_mesh_fileFull path to an unstructured mesh file that stores the edge bunching based on size functions.

Optional arguments:

-do_proximityEvaluate also the proximity size functions.
-skip_edges_in_sweep_dirDo not compute the size function based bunching in sweep direction.
-skip_dimsList of integer Hexa blocking dimensions in which direction of the size function should not be evaluated.

ic_hex_count_blocks type orfn [0]

Returns the number of blocks.

Usage: ic_hex_count_blocksblock_type<vorfn>

block_type can be free, mapped, or swept.

Set vorfn to 1 to include blocks in part VORFN in the count.

ic_hex_number_all_free_faces

Returns the number of free faces (in 3D) and the number of free blocks (in 2D).

Usage: ic_hex_number_all_free_faces

ic_hex_split_unstruct_block3d_by_edge_loops args

Split a free block by boundary edges.

Usage: ic_hex_split_unstruct_block3d_by_edge_loopsublock_numsheet_num

ic_hex_convert_to_struct_from_nodes args

Convert a free block free face to mapped from four corner vertices.

Usage: ic_hex_convert_to_struct_from_nodes-face free_face -v_end "four_corner_vertices"


Note:  Use this function if the selected free_face has more than four vertices.


ic_hex_get_edge_to_apply n1 n2

When working with superblocks (blocks that have been merged), some edges have hidden vertices that are used internally in scripting. Returns edge vertices required to define the edge in scripting commands given the visible vertices as input.

Usage: ic_hex_get_edge_to_applystart_edge_vertexend_edge_vertex


Note:  if there are no hidden vertices, the result will be the same as the input. For example, if an edge has visible corners 10 and 20. With a hidden vertex of 15, ic_hex_get_edge_to_apply10 20 would return 10 15. If there are no hidden vertices in the case above, it would return 10 20.