Tcl script for summation of loads and moments at specific point

Vladimir Gantovnik_21974
Vladimir Gantovnik_21974 Altair Community Member
edited April 2022 in Community Q&A

Hi Engineers! I have a question: how do you write a script that will give values of summation of forces and moments at the selected point. For example, I have a surface (wing) loaded by pressure (PLOAD4), and I want to know the resulting shear forces, bending moment, and torsion moment at the root of the wing.  In HyperMesh GUI, I see Bcs/Check/Loads Summation, but I want to have a tcl script.

Thank you!

 

Welcome!

It looks like you're new here. Sign in or register to get started.

Best Answer

  • Adriano_Koga
    Adriano_Koga
    Altair Employee
    edited April 2022 Answer ✓

    Hi, Adriano! Thank you, but 1) if I need a tcl script, when I need a tcl script. The function will be part of a larger tcl code. Is it possible to use that FBD tool you suggested in tcl - probably not? 2) "some TCL scripting on your own, taking a look at some tutorials, etc." Common, I am a good tcl hypermesh programmer :) So, unfortunately, both of your suggestions are useless :) 

    Ok. So the question was, do we have a tcl function in API that will make a summation of PLOAD4 pressure loads and moments at the given node? 

    If there is no such function, how can I get the value of the PLOAD4 card at the given element? We know how to get the area of the given area, but what about the applied pressure?

    #get area of element 23 *createmark elements 1 23 set masscalc [hm_getmass elems 1] #calculate area of element set area [lindex $masscalc 2] puts $area

    Thank you!

    I'd say FBD tools would be your solution here, but i don't know if it is possible to call these in batch...

     

    Now, concerning your specific questions:

    you could use hm_getvalue to retrieve these values mcuh easily, and for many items at once.

     

    something like:

     

    hm_getvalue elems user_ids=${elems_list} dataname=area

     

    hm_getvalue loads user_ids=${loads_list} dataname=facearea

    hm_getvalue loads user_ids=${loads_list} dataname=magnitude

     

    image

Answers

  • Adriano_Koga
    Adriano_Koga
    Altair Employee
    edited April 2022

    i understand that you want to create your on script, and for that i'm not sure what you need for help, besides going through some TCL scripting on your own, taking a look at some tutorials, and so on.

     

    But, just as a FYI, there is already a tool in both HM and HV, called FBD (Free Body Diagram), that does what you need. maybe it would be nice to take a look on these, too.

  • Vladimir Gantovnik_21974
    Vladimir Gantovnik_21974 Altair Community Member
    edited April 2022

    i understand that you want to create your on script, and for that i'm not sure what you need for help, besides going through some TCL scripting on your own, taking a look at some tutorials, and so on.

     

    But, just as a FYI, there is already a tool in both HM and HV, called FBD (Free Body Diagram), that does what you need. maybe it would be nice to take a look on these, too.

    Hi, Adriano! Thank you, but 1) if I need a tcl script, when I need a tcl script. The function will be part of a larger tcl code. Is it possible to use that FBD tool you suggested in tcl - probably not? 2) "some TCL scripting on your own, taking a look at some tutorials, etc." Common, I am a good tcl hypermesh programmer :) So, unfortunately, both of your suggestions are useless :) 

    Ok. So the question was, do we have a tcl function in API that will make a summation of PLOAD4 pressure loads and moments at the given node? 

    If there is no such function, how can I get the value of the PLOAD4 card at the given element? We know how to get the area of the given area, but what about the applied pressure?

    #get area of element 23 *createmark elements 1 23 set masscalc [hm_getmass elems 1] #calculate area of element set area [lindex $masscalc 2] puts $area

    Thank you!

  • Adriano_Koga
    Adriano_Koga
    Altair Employee
    edited April 2022 Answer ✓

    Hi, Adriano! Thank you, but 1) if I need a tcl script, when I need a tcl script. The function will be part of a larger tcl code. Is it possible to use that FBD tool you suggested in tcl - probably not? 2) "some TCL scripting on your own, taking a look at some tutorials, etc." Common, I am a good tcl hypermesh programmer :) So, unfortunately, both of your suggestions are useless :) 

    Ok. So the question was, do we have a tcl function in API that will make a summation of PLOAD4 pressure loads and moments at the given node? 

    If there is no such function, how can I get the value of the PLOAD4 card at the given element? We know how to get the area of the given area, but what about the applied pressure?

    #get area of element 23 *createmark elements 1 23 set masscalc [hm_getmass elems 1] #calculate area of element set area [lindex $masscalc 2] puts $area

    Thank you!

    I'd say FBD tools would be your solution here, but i don't know if it is possible to call these in batch...

     

    Now, concerning your specific questions:

    you could use hm_getvalue to retrieve these values mcuh easily, and for many items at once.

     

    something like:

     

    hm_getvalue elems user_ids=${elems_list} dataname=area

     

    hm_getvalue loads user_ids=${loads_list} dataname=facearea

    hm_getvalue loads user_ids=${loads_list} dataname=magnitude

     

    image

  • Vladimir Gantovnik_21974
    Vladimir Gantovnik_21974 Altair Community Member
    edited April 2022

    Thank you, Adriano! I forgot about data names. 

    These commands work very well.

    set area [hm_getvalue elems id=$eid dataname=area] set magnitude [hm_getvalue loads id=$eid dataname=magnitude]  

    I even extracted the vector components of normals for each element:

    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]

    May, be you will help me with another question too. I have a model in the file model.hm and tcl script summation.tcl This tcl file slightly modifies applied forces (pressure) and calculates the summation of loads and moments at the given point. I can run this tcl file from the HyperMesh menu, and it works.

    But I want to do it in batch mode. I tried to run this bat file

    "[path]/hmbatch.exe" -tcl C:/project2/summation.tcl cmd

    But it does not work. It says 

    Error:  The file being opened for reading does not exist. End of command file - terminating. HM exiting with code 0

    How to apply my script to model.hm in batch mode? Should I open model.hm inside summation.tcl?

    Thank you!

Welcome!

It looks like you're new here. Sign in or register to get started.

Welcome!

It looks like you're new here. Sign in or register to get started.