2021.2 API Programmer's Guide
Internal ID Management
HyperMesh uses internal IDs as unique entity identifiers. These IDs are assigned automatically based on the order the entities are created in the database. Historically, they have been out of sync with the solver IDs. Starting with version 2021.2, HyperMesh synchronizes the internal IDs with solver IDs whenever possible, with the exception of models with duplicate solver IDs. These are allowed in Nastran, LS-DYNA, OptiStruct, and Radioss solver interfaces.
For models without duplicate IDs, no extra measures are needed for mapping internal IDs to solver IDs, or solver IDs to internal IDs, for the purpose of passing the correct entity identifiers to the Tcl API commands. Note that, for example, hm_createmark, hm_getmark and hm_getvalue operate with internal IDs rather than solver IDs. The same applies when querying entity IDs in the Matrix Browser.
When opening a HyperMesh database that was saved in prior versions, HyperMesh synchronizes the IDs, which can potentially lead to renumbering of internal IDs. This might affect existing scripts that are explicitly referencing an internal ID.
Properties to Stateequations
The LS-DYNA keywords *EOS_GRUNEISEN, *EOS_IDEAL_GAS, *EOS_IGNITION_AND_GROWTH_OF_REACTION_IN_HE, *EOS_JWL, *EOS_LINEAR_POLYNOMIAL, *EOS_LINEAR_POLYNOMIAL_WITH_ENERGY_LEAK, *EOS_PROPELLANT_DEFLAGRATION, *EOS_RATIO_OF_POLYNOMIALS, *EOS_SACK_TUESDAY, *EOS_TABULATED, *EOS_TABULATED_COMPACTION, *EOS_TENSOR_PORE_COLLAPSE have been mapped from the properties entity to the new stateequations entity. See the stateequations data name documentation for more details.
List of cardimages of EOS cards supported in LS-DYNA: EOS1, EOS2, EOS3, EOS4, EOS5, EOS6, EOS7, EOS8, EOS9, EOS10, EOS11, EOS12.
*createentity stateequations cardimage=EOS1
*ceateentity stateeuations config=101
*setvalue stateequations id=8 cardimage=EOS1
*setvalue stateequations id=8 cardimage=EOS1
*hm_getvalue stateequations id=8 dataname=cardimage
PART (component) cards in LS-DYNA referring to EOS keywords now refer to a stateequation entity instead of a property entity.
*createentity comps cardimage=Part includeid=0 name="component1"
*createentity stateequations name="stateequation1"
*setvalue comps id=1 STATUS=1 461={stateequations 1}
Name Pools
Abaqus is a name-based solver which uses a label (string) to reference entities such as sets, materials, and so on. These strings must be unique for a specific solver keyword, but it is often useful to reuse the same name across different solver keywords. In certain cases, different keywords are mapped to the same HyperMesh entity which prevents them from sharing names. To support this use case, the concept of name pools has been implemented, allowing for duplicate names for the same entity type. This is very similar to the concept of ID pools and duplicate IDs. The name pools are currently supported and enabled by default for sets in the Abaqus solver interface. As a result of this development initiative, two new data names have been introduced across all entities – internalname and solvername. The original data name name remains valid. If it is used with the hm_getvalue command, it always returns the internal name. If it is used with *setvalue, it sets the solver name for entity types with name pools, otherwise it sets the internal name.
Master/Slave Replaced with Main/Secondary
All names of API commands, entity data names and attributes, as well as element formulations containing the old terms, have been updated to use the terms ‘main’ and ‘secondary’. This change does not affect existing scripts - the original names are deprecated but remain supported. See the Deprecated Commands section for the full list of updated data names and commands.
New Commands
- Composites
- Connectors/Attachments
- Data Names
- General/Core
- Geometry
- HMASCII
- Job Management
- Meshing
- Postprocessing
- Template Commands
Modified Commands
- Composites
- *compositeanalysis - Added new optional arguments ffunc and loadid. Changed the valid values for the result argument.
- General/Core
- *spatialrenumbering - Added new arguments renumbering_type, ternary_axis, ternary_tolerance, ternaryid_increment, and ternary_entity_id.
- Geometry
- *external_skin_extraction - Added new arguments target_point_coordinates and baffle_detection and modified the order of arguments.
- Meshing
- *automesh_params - Added new option triamapflow and renamed smoothedges option to smoothmethod.
The following commands have new options or enhanced capabilities. Existing scripts are not affected and only need to be updated if usage of the new functionality is desired:
- Connectors
- *CE_FE_SetDetailsAndRealize - Added new argument prop_noplotelandnode.
- Data Names
- All entities now have the following data names: internalname and solvername.
- comments - Added new data names entityids and entityidsmax.
- crosssections - Added new data names cutplanegridoptions, cutplanegridspacex, and cutplanegridspacey.
- contactgroups - Added new data name film_id.
- dampings - Added new data names ACOUSTIC_CURVE, ACOUSTIC_CURVE_OPTION, ACOUSTIC_SCALE_FACTOR, acoustic_type, Acoustic_VALUE, Bending, BENDING_CURVE, BENDING_CURVE_OPTION, Bending_Option, BENDING_SCALE_FACTOR, DAMPINGS_TYPE, Fraction_Coverage, Freelayer_treatment_Option, Inplane, INPLANE_CURVE, INPLANE_CURVE_OPTION, Inplane_Option, INPLANE_SCALE_FACTOR, Layer_offset, Layer_Thickness, and material.
- dobjrefs - Added new data names dobjectreflid, dobjectrefnegoptions, dobjectrefposoptions, and dobjectrefuid.
- failures - Added new config value 232 and new data names a_s, eps_n, f_0, f_c, f_r, h_chi, i_loc, k_w, q1, q2, and r_len.
- freebodysections - Added new data name fbdgroupid.
- free shape - Added new data names dshapeconstrainedfortableset, dshapeconstrainedset, dshapegridconvectorset, freeshapegridcsetlistmax, freeshapegridcsets, and freeshapegridsetsystem.
- loads
- forces - Added new data names for Radioss engineering loads rad_itype and rad_sect_id. Added new engineering_type value 14 and new data names for composite plate loads: epsx, epsy, gamxy, kapx, kapxy, kapy, mx, mxy, my, nx, nxy, ny, qx, qy, sigfx, sigfy, sigx, sigy, taufxy, tauxy, tauyz, and tauzx.
- pressures - Added new data names for Radioss engineering loads: rad_afterflow, rad_alpha, rad_alpha_theta, rad_det_xa, rad_det_xc, rad_det_xs, rad_exp_data, rad_fct_idp, rad_freesurf, rad_fscalep, rad_grav_id, rad_iform, rad_integr, rad_ipres, rad_ipri, rad_itshift, rad_itype, rad_iz, rad_kform, rad_ndt, rad_pmin, rad_pref, rad_sect_id, rad_surf_id, rad_theta, and rad_wtnt.
- velocities - Added new data names for Radioss engineering loads rad_grquad_id and rad_grtria_id.
- modules - Added new data names isshapeaiencoded, shapeaiencodingsignaturecad, and shapeaiencodingsignaturefe.
- parameters - Added new data names symbol_quantity and varmgrinclude. Added new config value 7 and new usage value 6.
- physicalquantities - Added new data names filmcoeff_depend, filmcoeff_table, filmcoeff_type, position, sink_temperature, and table_style.
- plies - Added new type values 2, 5, 6, and 8.
- responses - Added new data name measuretype and new response value 13.
- rigidbodies - Added new data names density, densityDefined, isothermal_defined, isothermal_val, nodal_thickness, offset, offsetDefined, pin_set, position_defined, position_val, thickness, thickness_defined, tie_set, and user_offset.
- results - Added new data names currentstep, resourceeditfiles, resourceeditmode, resourcelist, subcasecount, and subcaselist.
- seatbelts - Added new data names check_remesh_mode, row_node_count, mesh_nodes_2d, from_nodes_1d, and to_nodes_1d.
- weldlines - Added new data names Evaluation_distance_table, HAZ_size, HAZ_set, Weld_bevel_angle, Weld_perform_class, Weld_root_face, Weld_root_opening, Weld_sub_type, and Weld_thickness.
- General/Core
- hm_ce_info - Added new options facearea and linelength.
- hm_collisiongetconfig - Added new option intersections_no_edge_on_face.
- hm_entitylist - Added new option solvername for the type of list.
- hm_getcog/hm_getmass/hm_getmoi - Added new supported entity types mats, props, parts, assems, plies, and laminates.
- hm_getnearbyentities - Added new supported input entities: points, lines, surfs, solids, parts, and connectors. Added new supported output entities: points, lines, surfs, solids, parts, connectors, and accelerometers.
- *createmark/hm_createmark - Added new methods "by metadata greater than or equal to value", "by metadata less than or equal to value", "by metadata value range outside", "by value range outside", "greater than or equal to value" and "less than or equal to value". Enhanced the "contains value" method to support first value comparison of entity array, integer array, real array, and string array attributes.
- *detectandcreateface2facecontacts - Added ADVC interface support.
- *equivalence - Added new optional argument equivalence_to_meshnodes.
- *readnodepositionsfromh3dfile - Added new optional argument comps_mark.
- *rundesignmethod - Added new option appendlogfile.
- *setoption/hm_getoption - Added new options delete_assemblies_children, delete_connectors_realised_fe, delete_part_contents, delete_solids_with_elements, delete_solids_with_surface, delete_subsystem_contents, delete_surface_with_elements, delete_surface_with_solids, front_face_orientation_view_cube, g_ce_auto_load_control, g_ce_control_config, g_ce_control_file_path, g_ce_control_id, g_ce_control_keep, g_ce_control_name, geometry_parasolid_removefillets, graph_enable, rbody_label, retain_segments, section_framewidth, section_solidfill, show_delete_associated_dialog, sketcher_create_nested_holes, sketcher_merge_adjacent_faces, sketcher_realize_mode, sketcher_show_center_points, sketcher_show_constraints, sketcher_show_dimensions, sketcher_show_grid, sketcher_show_points, snap_element_centroid, snap_element_edge, and sync_idle_with_browser_view.
- *setvalue - Added support for creating metadata and assigning and unassigning parameters.
- Meshing
- hm_getnodegeometry - Added optional argument geom_type.
- *batchparams_update - Added new options create_mesh, midmesh_defeature_ribs, midmesh_defeature_ribs_factor, and midmesh_step_offset_mode.
- *createsinglewallbulkhead - Added new option materialid.
- *elemoffset_thinsolid - Added new option batchmesh_source.
- *setoption/hm_getoption - Added new options CAD_topology_revision_edit_at_fe_mode, CAD_topology_revision_mesh_mode, CAD_topology_revision_remesh_tetra_mesh, CAD_topology_revision_transform_mode, CAD_topology_revision_transform_mode_rule, create_fe_topo_upon_element_copy.
- *solidmap_initialize_edges - Added full history (multiple undo) support.
- *update1delements - Added new options consolidationtol, consolidateprops, detatchelements and translatebeam.
Deprecated Commands
- General/Core
- *renumberinternaltosolverid - The command is no longer required as the internal IDs are synchronized with solver IDs by default when possible.
- Connectors
- *CE_ExportMasterConnectorsFile – Use *CE_ExportMainConnectorsFile instead.
- Data Names
- alesmoothings
- firstmasternodeid – Use firstmainnodeid instead.
- secondmasternodeid – Use secondmainnodeid instead.
- slavenodeid – Use secondarynodeid instead.
- constrainedrigidbodies
- mastercompid – Use maincompid instead.
- slavecompids – Use secondarycompids instead.
- contactgroups
- coupled_slave_nodes – Use coupled_secondary_nodes instead.
- coupled_slave_nodes_opt – Use coupled_secondary_nodes_opt instead.
- designvars
- masterslave – Use mainsecondary instead.
- topographymasterptr – Use topographymainptr instead.
- groups
- masterallmodel – Use mainallmodel instead.
- masterboxmax – Use mainboxmax instead.
- masterboxmin – Use mainboxmin instead.
- masterboxxmax – Use mainboxxmax instead.
- masterboxxmin – Use mainboxxmin instead.
- masterboxymax – Use mainboxymax instead.
- masterboxymin – Use mainboxymin instead.
- masterboxzmax – Use mainboxzmax instead.
- masterboxzmin – Use mainboxzmin instead.
- mastercomponentlist – Use maincomponentlist instead.
- mastercomponentlistmax – Use maincomponentlistmax instead.
- mastercontactsurflist – Use maincontactsurflist instead.
- mastercontactsurflistmax – Use maincontactsurflistmax instead.
- masterdefinition – Use maindefinition instead.
- masterelementlist – Use mainelementlist instead.
- masterentityids – Use mainentityids instead.
- mastersetlist – Use mainsetlist instead.
- slaveallmodel – Use secondaryallmodel instead.
- slaveboxmax – Use secondaryboxmax instead.
- slaveboxmin – Use secondaryboxmin instead.
- slaveboxxmax – Use secondaryboxxmax instead.
- slaveboxxmin – Use secondaryboxxmin instead.
- slaveboxymax – Use secondaryboxymax instead.
- slaveboxymin – Use secondaryboxymin instead.
- slaveboxzmax – Use secondaryboxzmax instead.
- slavecomponentlist – Use secondarycomponentlist instead.
- slavecomponentlistmax – Use secondarycomponentlistmax instead.
- slavecontactsurflist – Use secondarycontactsurflist instead.
- slavecontactsurflistmax – Use secondarycontactsurflistmax instead.
- slavedefinition – Use secondarydefinition instead.
- slaveelementlist – Use secondaryelementlist instead.
- slaveentityids – Use secondaryentityids instead.
- slavesetlist – Use secondarysetlist instead.
- slavesetlistmax – Use secondarysetlistmax instead.
- loads
- init_vel_slave_nodes_part – Use init_vel_secondary_nodes_part instead.
- rigidwalls
- rigidwallslavedefinition – Use rigidwallsecondarydefinition instead.
- alesmoothings
- General/Core
- *swapcontactmasterslave – Use *swapcontactmainsecondary instead.
- GUI/Framework
- hm_framework resizetab is deprecated in HyperWorks but continues to be supported in HyperWorks Desktop.
- HMASCII
- *groupcomponentmaster() – Use *groupcomponentmain() instead.
- *groupcomponentslave() – Use *groupcomponentsecondary() instead.
- *groupcontactsurfmaster() – Use *groupcontactsurfmain() instead.
- *groupcontactsurfslave() – Use *groupcontactsurfsecondary() instead.
- *groupmasterbox() – Use *groupmainbox() instead.
- *groupmasterset() – Use *groupmainset() instead.
- *groupslavebox() – Use *groupsecondarybox() instead.
- *groupslaveset() – Use *groupsecondaryset() instead.
- *master3() – Use *main3() instead.
- *master4() – Use *main4() instead.
- *slave1() – Use *secondary1() instead.
- *slave3() – Use *secondary3() instead.
- *slave4() – Use *secondary4() instead.
- HMIN
- HMIN_element_writemaster3() – Use HMIN_element_writemain3() instead.
- HMIN_element_writemaster4() – Use HMIN_element_writemain4() instead.
- HMIN_element_writemaster_face() – Use HMIN_element_writemain_face() instead.
- HMIN_element_writeslave_face() – Use HMIN_element_writesecondary_face() instead.
- HMIN_element_writeslave1() – Use HMIN_element_writesecondary1() instead.
- HMIN_element_writeslave3() – Use HMIN_element_writesecondary3() instead.
- HMIN_element_writeslave4() – Use HMIN_element_writesecondary4() instead.
- HMIN_group_solver_writemasterset() – Use HMIN_group_solver_writemainset() instead.
- HMIN_group_solver_writeslaveset() – Use HMIN_group_solver_writesecondaryset() instead.
- HMIN_group_writemasterbox() – Use HMIN_group_writemainbox() instead.
- HMIN_group_writemastercomponent() – Use HMIN_group_writemaincomponent() instead.
- HMIN_group_writemastercontactsurf() – Use HMIN_group_writemaincontactsurf() instead.
- HMIN_group_writemasterdefinition() – Use HMIN_group_writemaindefinition() instead.
- HMIN_group_writemasterset() – Use HMIN_group_writemainset() instead.
- HMIN_group_writeslavebox() – Use HMIN_group_writesecondarybox() instead.
- HMIN_group_writeslavecomponent() – Use HMIN_group_writesecondarycomponent() instead.
- HMIN_group_writeslavecontactsurf() – Use HMIN_group_writesecondarycontactsurf()) instead.
- HMIN_group_writeslavedefinition() – Use HMIN_group_writesecondarydefinition() instead.
- HMIN_group_writeslaveset() – Use HMIN_group_writesecondaryset() instead.
- Meshing
- *remesh_master_slave_boolean – Use *remesh_main_secondary_boolean instead.
- Template Functions
- @remsuppressedincludefrommaster() – Use @remsuppressedincludefrommain() instead.
- *setparameter
- *setparametermark
- *unsetparameter
- *unsetparametermark
Removed Commands
- General/Core
- *setoption/hm_getoption - Removed option graph_plot.
- GUI/Framework
- hm_framework - Removed options addframe, getframeworkstate, and removeframe.