Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by Q.Nguyen-Dai

  1. Here's my script (tested only with SHELL elements) to select elements based on normal of one element. The tolerance will be applied at angle comparing. # Tested only with SHELL elements # Reference element *createmarkpanel elems 1 "Select Elem" set elist [hm_getmark elems 1] hm_markclear elems 1 set eid_ref [lindex $elist 0] set nx0 [hm_getvalue elems id=$eid_ref dataname=normalx] set ny0 [hm_getvalue elems id=$eid_ref dataname=normaly] set nz0 [hm_getvalue elems id=$eid_ref dataname=normalz] set v0 [list $nx0 $ny0 $nz0] # Tolerance for normal comparing, in deg set tolerance 17.0; # Select all displayed elements hm_createmark elems 1 "advanced" "displayed" set elist [hm_getmark elems 1] hm_markclear elems 1 #------------------------------------------------------------------------ set selectedElems [list] foreach eid $elist { set nx [hm_getvalue elems id=$eid dataname=normalx] set ny [hm_getvalue elems id=$eid dataname=normaly] set nz [hm_getvalue elems id=$eid dataname=normalz] set v1 [list $nx $ny $nz] set angle [::hwat::math::AngleBetweenVectors $v1 $v0] if { $angle <= $tolerance } { lappend selectedElems $eid } } eval *createmark elems 2 "$selectedElems"; set elist [hm_getmark elems 2] puts "Selected E: $elist"
  2. If there is no existing function, you can do it "manually" Just a point to know: it better to give some tolerance by selecting elements by normal.
  3. Keep in mind that the good principle of forum is "sharing": when you post your question here, I can answer also here and another person who has the same "issue" as you can learn from it directly.
  4. When you get information from user, you have always some risk of wrong data. In this case, the risk is so high. Instead of enter "quad4", user can entrer "qua4"? The best way is to get all valid type name in Hypermesh and build a GUI script with this list of type name. User is asked just to select an item of list.
  5. set x [hm_getvalue nodes id=$nodeID dataname=globalx] set y [hm_getvalue nodes id=$nodeID dataname=globaly] set z [hm_getvalue nodes id=$nodeID dataname=globalz]
  6. The simple way is asking user to choice one element and you get element type from this selected element. So user has selected element type indirectly, via element. *createmarkpanel elems 1 "Select Element" set eList [hm_getmark elems 1] hm_markclear elems 1 set eid [lindex $eList 0] # we work only with the 1st element set typename [hm_getvalue elems id=$eid dataname=typename] puts "Element type= $typename" # Do something with selected typename
  7. I don't think there are such type of set. If you work from Tcl script, you can keep your lines, surfaces, points ID in LIST variable. Here's an example: set myLines [list 1 2 3] set myPoints [list 10 11 12] set mySurfaces [list 30 31 32] # Mesure shortest distance from surface 30 to set of lines *createmark surfs 1 [lindex $mySurfaces 0] *createmark lines 1 $myLines hm_measureshortestdistance surfs 1 0 lines 1 0 5
  8. Keep contact here if you want some help. If it's possible I would like to have a look at your model HM where your customer requests "all Hexa"? Another point, Hexa mesh is in general a good meshing technique which gives you, in general, the good analysis results. But this depends to the analysis goal and the Geometry. Mathematically, Hexa meshing is not always possible with any geometry. From point of view of FEA, don't fear TET meshing! A good TET mesh could give you better results than a "bad" HEXA one. Splitting TET element to get HEX elements is not so good technique to have good HEXA elements.
  9. It's not possible. When you split, 2 should be become 2x2=4 right? Do you use split mesh for Mechanical computation or CFD?
  10. It's NOT Ethernet (or Wireless) IP address, but the Physical address MAC (https://en.wikipedia.org/wiki/MAC_address) So your Ethernet & Wireless cards have different address MAC, never the same!
  11. Hmm, don't understand what you want: "number elements on boundary surface" ? When you split something, you increase the number, right?
  12. As you does not have valid student "status", I don't know if it's possible for you to request a student release. Maybe another forum admin will respond you on this subject. In the meantime, you can continue to learn other softwares
  13. Do you speak about CFD Meshing or Mechanical meshing? Do you make your mesh in batch mode or interactive mode?
  14. INP can have geometry inside (I don't know) but from Hypermesh you can only export FEM entities into INP for Abaqus.
  15. Maybe you can not export INP from Hypermesh student release.
  16. I don't think you can do that with method "automatic" renumbering, via Hypermesh panel. But maybe it's simpler to control at begin of mesh creation? I mean you use Tcl script to create element by element for one layer and then copying later to get full mesh.
  17. For selecting one row of elements, you can try : hm_createmark "by box" "x0 y0 z0 x1 y1 z1 syst location contained all tol" Place entities on mark_id if they are inside/outside/on the boundary of the box. x0 - lower bound x coordinate y0 - lower bound y coordinate z0 - lower bound z coordinate x1 - upper bound x coordinate y1 - upper bound y coordinate z1 - upper bound z coordinate syst - the ID of a local coordinate system to which the coordinate bounds are relative to. If 0, the global axes are used. location - The location of the entities to find, relative to the shape. Valid values are inside, outside, boundary and acrossboundary. contained - A flag that indicates whether the entire entity should meet the location criteria (1) or just any part of the entity (0) to be selected. all - A flag that indicates whether all entities (1) or only displayed entities (0) are considered for selection. tol - The tolerance to use. In most cases, this should be set to 0.
  18. It's NOT Altair Hyperworks's issue, for sure. Please check configuration of your PC. On my zBook HP, I see the same and I have to disable the HP's f***** config to work.
  19. The following command works no problem for me: "C:\Program Files\Altair\2020\hwdesktop\hm\bin\win64\hmopengl.exe" -uOptiStruct
  20. The following code works without issue for me: *createlist nodes 1 96 94 100 *createcirclefrompoints 1 1 set lineid [hm_latestentityid lines] *createmark lines 1 $lineid *renumbersolverid lines 1 10000 1 0 0 0 0 0
  21. The same as nodes. You remplace entity "nodes" by "lines" Try it!
  22. Some screenshots to better understand your question please!
  • Create New...