12.0.110 API Programmer's Guide
Tcl Precision
According to Tcl tip #132 (http://www.tcl.tk/cgi-bin/tct/tip/132.html) the default value of tcl_precision was changed from 12 in Tcl 8.4 to 0 in Tcl 8.5, and it is recommended to always keep it as 0, which indicates full precision. Previously, HyperMesh was setting the value of tcl_precision to 12 internally, as well as in several scripts. As this is a global Tcl variable, it is not recommended to modify it from its default value. Any scripts that modify this value should be updated to no longer do so as it can have very negative side effects. If a value needs to be formatted, the Tcl format command can be used.
New Commands
- Composites
- Connectors
- Display
- General/Core
- hm_entitiesassociatedbygroupsmark
- hm_getdirectionpanel
- hm_getinternalidlist
- hm_getlockedentities
- hm_getmemoryinfo
- hm_getplaneintercepts
- hm_getplanepanel
- hm_getsolverid2
- hm_getsolverids
- hm_getwrappoints
- hm_wadlinesend
- hm_wadlinesgetgridpoints
- hm_wadlinesgetinternalbumperline
- hm_wadlinesgetwadline
- hm_wadlinesinit
- hm_wadlinessetaxes
- hm_wadlinessetentities
- hm_wadlinessetparameters
- *clearlock
- *compactsubmodelids
- *correctoverflowsubmodelentityids
- *createidrange
- *deleteidrange
- *deleteidrange
- *exclusiveidrange
- *lockentities
- *newidoption
- *tagcreatelabelbyid
- *unlockentities
- *updateidrange
- Geometry
- Graphics/Visualization
- hminlib
- HyperBeam
- Meshing
- hm_getconnected2delems
- hm_ispointinsidesolidelem
- *alignnode2
- *createfacesonfreeboundaries
- *elementqualityoptimizeelementnew
- *elementqualityoptimizenodenew
- *elementqualityplacenodenew
- *elementqualityswapedgenew
- *elementtesttimestep
- *elemoffset_thinsolid
- *hm_trim_elements_with_predefined_box
- *hm_trim_elements_with_two_point_box
- *meshdragelements2
- *meshspinelements2
- *remesh_element_intersection
- *setredoconnectparams
- *updatefeatures
- Morphing
- *morphconstraintcreatelayer
- *morphconstraintcreatematch
- *morphconstraintupdatelength
- *morphconstraintupdatematch
- *morphdomainautocolor
- *morphdomainsetcolor
- *morphdomainupdatecolor
- *morphfittosurface
- *morphmanualapplyenvelope
- *morphmaptshp
- *morphmvskinsolve
- *morphnodesequaenvelope
- *morphnodeslineenvelope
- *morphnodesmeshenvelope
- *morphnodesnodesenvelope
- *morphnodesnormalenvelope
- *morphnodesplaneenvelope
- *morphnodesrotateenvelope
- *morphnodesshapeenvelope
- *morphnodessurfenvelope
- *morphnodestranslateenvelope
- *morphnodesvectorenvelope
- *morphshapesmooth
- *morphsmoothmorphbased
- *morphstorematch
- Optimization
Modified Commands
- Collision
- hm_collisionentitycreate – Added new supported values to used_topology argument.
- hm_collisioninit – Added new optional arguments intersect_option and tolerance for handling/filtering of planar intersections. The behavior has changed in that planar intersections are ignored by default.
- Comparison
- hm_comparegetarea – Added an optional transformation index argument for querying a specific transformation.
- Data names
- components/elements – Added new data names IXXcog, IYYcog, IZZcog, IXYcog, IYZcog, IXZcog, principalaxis1, principalaxis2, principalaxis3, principalaxis1cog, principalaxis2cog, principalaxis3cog.
- General/Core
- hm_answernext – Added support for answers all (for 'yes to all') and nall (for 'no to all').
- hm_getprincipalaxes – Added new optional argument location_flag.
- hm_info – Added new options pushtofront and rotationcentermode.
- *createentitypanel/*createlistpanel/*createmarkpanel/*editmarkpanel/hm_getfloat/hm_getint/hm_getstring - These commands have been updated to disallow recursive calling (attempting to open another push panel when one is already active). Previously, recursive calling using any combination of these APIs would lead to a crash or other undesired behavior. Now, an error message is posted and a Tcl error is returned instead of allowing a recursive call.
- *writeh3d/*writeh3dtofile/*writeh3dwithorienttofile - Updated the outtype argument to add a new value 3 for writing an H3D with both geometry (STL) and FE data together.
- Updated H3D export of geometry (STL) to more accurately capture the visualization mode, and updated both geometry (STL) and FE output to properly capture transparency.
- Geometry
- *solid_extrude_from_surfs/*solid_offset_from_surfs – Added option bit values Bit3, Bit4 and Bit5.
- Graphics/Visualization
- hm_blockredraw – This command has been updated to now properly block all graphics updates. Previously, this command would only block certain updates, and would be reset upon Tcl errors. Now, this command behaves as a permanent mode until redraw is enabled again. Therefore, it is essential to make sure to re-enable graphics drawing inside of custom scripts. In addition, a new tool Preferences > Script Performance has been added that allows users to enable/disable certain script performance operations. The main use case for this dialog is to give users a chance to get back to a "normal" state in case a script did not behave as expected and did not restore proper interactive behaviors.
- *setelementcolormode – New modes added for coloring "by element quality" and "by domain".
- *setgeomrefinelevel – Added new supported value 11 (auto).
- *showcompositelayers – New mode added for composite layer edges visualization.
- GUI
- hm_framework – Added new options addrecentimport, getrecentfiles, getrecentimports, removerecentfile, removerecentimport, and setnativeheight. Added new optional argument height to drawpanel, which changes the previous behavior for default sizing of the panel area.
- Meshing
- hm_getelemcheckbounds/hm_getelemcheckelems/hm_getelemcheckvalues – Added new check_type values addedmass and timestep, and new optional argument time_failure.
- Morphing
- *morphhandlepertxyz – New values supported for constraint_flag argument.
- *morphinterpolatesurf – Added new arguments node1_id and node2_id.
- *morphremeshedges – Added ability to remesh using average element size by specifying starg argument <= 0.
- *morphupdateshapes – Added new mode values 13-17.
Deprecated Commands
- Composites
- *plyrealization – Use *plyrealization_option instead.
- Geometry
- hm_getcentroidofsolids – Use hm_getcentroid instead.
- Meshing
- *elementqualityoptimizeelement – Use *elementqualityoptimizeelementnew instead.
- *elementqualityoptimizenode1 – Use *elementqualityoptimizenodenew instead.
- *elementqualityplacenode1 – Use *elementqualityplacenodenew instead.
- *elementqualityswapedge – Use *elementqualityswapedgenew instead.
- *meshdragelements – Use *meshdragelements2 instead.
- *meshspinelements – Use *meshspinelements2 instead.
- Morphing
- *morphmanualapply – Use *morphmanualapplyenvelope instead.
- *morphnodesequa – Use *morphnodesequaenvelope instead.
- *morphnodesline – Use *morphnodeslineenvelope instead.
- *morphnodesmesh – Use *morphnodesmeshenvelope instead.
- *morphnodesnodes – Use *morphnodesnodesenvelope instead.
- *morphnodesnormal – Use *morphnodesnormalenvelope instead.
- *morphnodesplane – Use *morphnodesplaneenvelope instead.
- *morphnodesrotate – Use *morphnodesrotateenvelope instead.
- *morphnodesshape – Use *morphnodesshapeenvelope instead.
- *morphnodessurf – Use *morphnodessurfenvelope instead.
- *morphnodestranslate – Use *morphnodestranslateenvelope instead.
- *morphnodesvector – Use *morphnodesvectorenvelope instead.