10.0 API Programmer's Guide
2D/3D Properties
In HyperMesh v10.0, solver group #2 (RADIOSS, ANSYS, LS-DYNA, PAM-CRASH, Permas) solvers have converted from using attributes to assign properties components to using core HM references. This completes the 2D/3D properties project started in 9.0 for both solver groups.
For solver group #1 (OptiStruct, Abaqus, Nastran) the following diagram and rules apply for property assignment to components and elements:
- If property assigned to the element, that element is assigned the element property.
- If no property is assigned to the element, that element is assigned its component property.
- If no property is assigned to the element or component, that element is assigned no property.
- Materials are always assigned to properties and each element is assigned the material of its property.
For solver group #2 (RADIOSS, ANSYS, LS-DYNA, PAM-CRASH, PERMAS) the following diagram and rules apply for property assignment to components and elements:
- Property and materials are assigned to components only. Ignores any property assigned to elements.
- All elements within a component are assigned the component property and the component material.
New and Updated Tcl Commands for 2D/3D Properties
- Elements and components now have data names for referenced properties:
- a) property (pointer)
- b) propertyid
- To query the property and material assigned to a component or an element for solver
group #1:
- hm_getentityvalue comps $id property.id 0
- hm_getentityvalue elems $id property.id 0
- hm_getentityvalue elems $id property.material.id 0
- To query the property and material assigned to a component or an element for solver
group #2:
- hm_getentityvalue comps $id material.id 0
- hm_getentityvalue comps $id property.id 0
- hm_getentityvalue elems $id collector.material.id 0
- hm_getentityvalue elems $id collector.property.id 0
Note: If an element has been assigned a property directly it is still possible to query these values even though the solver group is not using them. - *propertyupdate entity_type mark_id property_name
- This command assigns/updates/unassigns the property associated with components and elements. This same command is used by the assign subpanel in both the Comps and Properties panels.
- *createmark/*appendmark/hm_createmark/hm_appendmark
- These options are available for components and elements:
- "by property"
- "by property id"
- "by property name"
- These options are available for components and elements:
- *createmark/*appendmark/hm_createmark/hm_appendmark
- These options are available for components, elements, and properties:
- "by material"
- "by material id"
- "by material name"
- These options are available for components, elements, and properties:
- hm_getthickness entity_type entity_id ?ply_id?\
- This command returns the thickness associated with the passed components and elements. The optional ply_id argument allows for additional control for querying the thickness of individual plies of composites. The thicknesses returned by this command follow the specific solver interface rules described above.
- hm_getcompthickness
- This command will return the same values as in 8.0, the thickness assigned to the property assigned to the component for both solver groups #1 and #2. However, these may not be the expected values as properties for solver group #1 can be assigned to the elements as of 9.0. The continuing usage is of this command is not recommended, instead, use the command hm_getthickness with the appropriate options. This command will be deprecated.
Scripting Considerations
- Card images on components have been moved to properties for solver group #1.
For example, the OptiStruct PSHELL card image is now a property card image instead of a component card image. Any scripts that create components and assign these card images must now create a property and assign the property to the component or to the elements.
- Both elements and components can have property references for solver group #1.
- Scripts that either set or query properties (thickness for example) must now consider that elements within the component can also have properties assigned directly to them.
- Properties on components are now core references instead of template attributes for solver group #2. Instead of using the template attributes, scripts must now be updated to use the core data reference.
- Scripts using hm_getcompthickness.
- This command is no longer supported and continuing usage is not recommended. Instead, use the command hm_getthickness with the appropriate options.
When converting or switching between solver interfaces it is possible to have some “mixture” between the two methods shown above. It is important to know what the correct practice is for each solver interface in order to know when modifications are required. It is also important to know these practices in order to understand the values being returned from relevant Tcl commands.
New Commands
- Analysis
- Connectors
- General/Core
- hm_bag_getconfigfromgenericname
- hm_bag_getentitylistall
- hm_bag_getentitylistmax
- hm_bag_getentitytypes
- hm_bag_getgenericnamefromconfig
- hm_bag_getsupportedconfiglist
- hm_baglist
- hm_baglist_byconfig
- hm_getangle
- hm_getconfigtypecountincol
- hm_getdistance
- hm_getinputoffsetid
- hm_getmass
- *bagcreate
- *bagdeleteall
- *bagentityupdate
- *copymarkgroup
- *editmarkpanel
- *markercreate
- *markersupdate
- *movemarkgroup
- Geometry
- hm_getbestcirclecenter
- hm_getmoiofsolid
- *createbestcirclecenternode
- *fillet_surface_edges
- *geomvectorcreate
- *geomvectorupdate
- *linecreateatplanesintersection
- *linecreateatsurfparams
- *linecreateconic
- *linecreatedragnodealongvector
- *linecreatefromnodesonsurface
- *linecreatenormal2d
- *linecreatenormalfromgeom
- *linecreatenormaltogeom
- *linecreatenurbs
- *linecreateoffsetalongcurvature
- *linecreatespline
- *linecreatestraight
- *linereverse
- *midsurface_extract_10
- *nodecreateatintersection
- *nodecreateatlineparams
- *nodecreateatplanesintersection
- *nodecreateatsurfparams
- *nodecreateatvectorplaneintersection
- *nodecreatebetweennodes
- *prepare_solid_holes_for_meshing
- *separate_fillets
- *separate_holes_in_3d_body_new
- *solidcreatedragsurfalongline
- *solidcreatespinsurfwithoffsetangle
- *surfacecreatedraglinealongline
- *surfacecreatedraglinealongnormal
- *surfacecreatedraglinealongvector
- *surfacecreatedragnodesalongline
- *surfacecreatenurbs
- *surfacecreatespinlinewithoffsetangle
- *surfacecreatespinnodeswithoffsetangle
- *surfaceprimitivefromlines
- *surfaceprimitivefrompoints
- Graphics
- hm_getoption detailed_elements
- hm_getoption show_line_dir
- *detailedelements
- *showgeomlinedir
- GUI
- hm_setpanelheight
- hm_winfo menucharheight
- hwbrowsermanager (new options)
- hm.cfg file
- *ce_fe_proj_hexa_face()
- *registertemplexfunction()
- Manufacturing
- *hf_AddSectionHandle
- *hf_ClearFromWorkingSection
- *hf_CreateAutomaticTL
- *hf_CreateBinderSectionAndHandles
- *hf_DeleteSectionHandle
- *hf_FeatureFromSurfaces
- *hf_RotateBinderSurf
- *hf_ScaleBinderSurf
- *hf_setformingdirection
- *hf_SlideHandleptrOnSectionPlane
- *hf_TranslateBinderSurf
- *ModifySectionHandle
- *UpdateBinderSections
- Meshing
- hm_getcleanupglobalflags
- hm_getelemcheckbounds
- hm_getelemcheckelems
- hm_getelemchecksummary3d
- hm_getelemcheckvalues
- hm_getmeshedgeparams
- hm_getmeshfaceparams
- *add_washer_elements
- *create_bead_elements
- *fill_circular_holes
- *linestoelementsaddelemsfixed
- *PenetrationCheckSummary
- *secondorderfix2
- *setcleanupglobalflags
- *shrinkwrapmesh
- *slivertetrafix
- *solidmap_solids_begin
- *solidmap_solids_end
- *solidmap_solids_set_density
- *solidmap_solids_set_elemsize
- *solidmap_solids_set_face_params
- *solidmap_solids_set_mapface
- *sphgenerate
- *trim_elems_by_circular_hole
- Morphing
- hm_morph_domaintypecount
- *morphapplyfesolver
- *morphconstraintcreateeq
- *morphconstraintupdateeq
- *morphcreatemodelshape
- *morphdeletemvedgenodes
- *morphdisplayconstraints
- *morphhandleprojectentity
- *morphhandleprojectline
- *morphhandleprojectplane
- *morphhandlescalexyz
- *morphinterpolatesurf
- *morphkringmanual
- *morphmanageedgemark
- *morphmapedgestoequation
- *morphmapedgestoline
- *morphmapedgestonodes
- *morphmapedgestoplane
- *morphmapedgestosurface
- *morphmapedgestotacit
- *morphmaptoequationvec
- *morphnodesequa
- *morphpositionshapemark
- *morphreflectshapemark
- *morphsculptmeshfea
- *morphtranslateshapemark
- *morphupdateendbymvol
- *morphvolumecreateflex
- *morphvolumeequivalence
- *morphvolumereflect
- *morphwritenodes
- Optimization
- *compositeshuffledesvarcreate
- *compositeshuffledesvarupdate
- *compositeshufflepairingconstraintupdate
- *compositesizedesvarcreate
- *compositesizedesvarupdate
- *compositesizelaminatethicknessupdate
- *exportuserdefinedshapes
- *freeshapeparametersupdatewithsmoothing
- *freesizedesvarcreatewithstackoption
- *freesizedesvarupdatewithstackoption
- *freesizeparametersupdatewithfatigue
- *ossmooth2
- *topologyparametersupdatewithfatigue
Modified Commands
- General/Core
- hm_getentityarray – Now properly returns entities contained in all set types, including formula sets.
- *createmark/*appendmark/hm_createmark/hm_appendmark – Have been updated
for the 2D/3D properties project to work correctly for the following options for
solver groups 1 and 2:
- components "by material"
- components "by material id"
- components "by material name"
- components "by property"
- components "by property id"
- components "by property name"
- elements "by material"
- elements "by material id"
- elements "by material name"
- elements "by property"
- elements "by property id"
- elements "by property name"
- properties "by material"
- properties "by material id"
- properties "by material name"
- *createmark/*appendmark/hm_createmark/hm_appendmark – The "by set", "by set id" and "by set name" options now properly select entities contained in all set types, including formula sets.
- *feinputwithdata2 – Now returns 0 when failing to import due to invalid/incorrect arguments.
- Meshing
- *replacenodes – Now honors *answer and hm_answernext yes/no/yestoall command and returns 0 upon a “no” answer.
Deprecated Commands
- Analysis
- *updateblock – use *updateblocks
- *updateblockwithsystem – use *updateblocks
- Geometry
- *midsurface_extract_new – use *midsurface_extract_10
- *separate_holes_in_3d_body – use *separate_holes_in_3d_body_new
- *solid_spin_from_surfs – use *solidcreatespinsurfwithoffsetangle
- *spinlinetoformsurface – use *surfacecreatespinlinewithoffsetangle
- *spinnodestoformsurface – use *surfacecreatespinnodeswithoffsetangle
- Meshing
- *nodesassociatetosolid– use *nodesassociatetogeometry
- *nodesassociatetosurface – use *nodesassociatetogeometry
- *secondorderfix – use *secondorderfix2
- Morphing
- *morphpositionshape – use *morphpositionshapemark
- *morphreflectshape – use *morphreflectshapemark
- *morphtranslateshape – use *morphtranslateshapemark
- Optimization
- *ossmooth – use *ossmooth2
- *ossmooth_post – use *ossmooth2
Removed Commands
- Geometry
- *topologycleanup
- Manufacturing
- *hf_AutoBinder
- Meshing
- *hm_fillet_mesh_cleanup
- *postmesh_element_cleanup
- *try_hm_cleanup