TCL auto self-intersection fixing

Altair Forum User
Altair Forum User
Altair Employee
edited July 2023 in Community Q&A

Hi,

 

I am working with 3D tetra meshes with small amount of self-intersections and would like to remove the intersection with tcl scripts (or command file) using HyperMesh's 'Automatic Self-intersection Fix' tool (see pic attached).

 

I realised that the command for checking penetration and self-intersection is *checkpenetration elements 1 0 1 1 0 0 0 0  . However, there is no command can be found for the auto-fixing feature. Any idea on this?

 

Many thanks,

Wensong

 

PS. I found on internet that the way of saving checkpenetration results is as following:

*checkpenetration elements 1 0 1 0 0 0 0 0
::hmCollisionGui::FindTreeSelection 0 0 0 0 0
*marktousermark elements 1

Could anyone please kindly explain to me what is this ::hmCollisionGui:: command and is it possible that the auto-fixing command is also under this command branch? 

<?xml version="1.0" encoding="UTF-8"?>post-32676-0-11752600-1428560995_thumb.j

Tagged:

Answers

  • Rahul Rajan_21763
    Rahul Rajan_21763 New Altair Community Member
    edited April 2015

    Hi,

    I have attached pdf for Hmcollision check.

    Regards

    Rahul R

    Unable to find an attachment - read this blog

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited April 2015

    Hi,

    I have attached pdf for Hmcollision check.

    Regards

    Rahul R

     

    Hi Rahul,

     

    Thanks for the pdf. That's very much appreciated!

     

    I wonder if you by any chance have idea on the intersection fixing command too?

     

    Many thanks,

    Wensong

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited April 2015

    Hi,

     

    Try this:  ::hwat::utils::PenetrationCheck

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited April 2015

    Hi Prakash,

     

    Do you have a description for this command? it appears like there are few arguments required to be filled in. 

     

    Cheers,

    Wensong

  • Rahul Rajan_21763
    Rahul Rajan_21763 New Altair Community Member
    edited April 2015

    Hi,

    In 13.0, we have the upgraded hm_collision* APIs.

     

    It has the features to detect the vector and depth of penetration area.Here is a sample model and Tcl script that shows how to use these APIs and get the relevant data.

     

    Regards

    Rahul R

    Unable to find an attachment - read this blog

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited April 2015

    Hi,

    In 13.0, we have the upgraded hm_collision* APIs.

     

    It has the features to detect the vector and depth of penetration area.Here is a sample model and Tcl script that shows how to use these APIs and get the relevant data.

     

    Regards

    Rahul R

     

    Hi Rahul,

     

    Yes, I am now able to get relevant information about the self-intersection elements. However, I still need to figure out a way to AUTO FIX the intersections. The reason is that I have a number of meshed to remesh and it is not practical to remove those self-intersections manually one by one.

     

    Since HM has this auto-fixing feature in GUI (as shown in the screen shot with the original post), do you have any corresponding tcl commands for it? so that I not only can find where the element intersections happen but also to be able to fix it automatically through scripting.

     

    I hope I explained the problem clear enough.

     

    Cheers,

    Wensong

  • Rahul Rajan_21763
    Rahul Rajan_21763 New Altair Community Member
    edited April 2015

    Hi,

    Unfortunately there aren't any commands yet for auto fixing intersections or penetrations.

    All you can do so far is to use the tools in the penetrations panel interactively.

     

    Regards

    Rahul R

  • tinh
    tinh Altair Community Member
    edited April 2015

    Hi Rahul,

     

    Yes, I am now able to get relevant information about the self-intersection elements. However, I still need to figure out a way to AUTO FIX the intersections. The reason is that I have a number of meshed to remesh and it is not practical to remove those self-intersections manually one by one.

     

    Since HM has this auto-fixing feature in GUI (as shown in the screen shot with the original post), do you have any corresponding tcl commands for it? so that I not only can find where the element intersections happen but also to be able to fix it automatically through scripting.

     

    I hope I explained the problem clear enough.

     

    Cheers,

    Wensong

     

    Hi,

    if the penetration tab is existing, you can invoke auto-fix by below command:

     

    hmCollisionGui::AutoFixDo

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited April 2015

    Hi,

    if the penetration tab is existing, you can invoke auto-fix by below command:

     

    hmCollisionGui::AutoFixDo

     

    Hi Tinh,

     

    This is truly helpful! Thank you!

     

    I wonder if you also have any idea on how to 'select' the first item in the result tree of the penetration tab? The AutoFixDo command you provided requires the intersection item to be selected first.

     

    This is the very last bit missing.

     

    Cheers,

    Wensong

    <?xml version="1.0" encoding="UTF-8"?>post-32676-0-57217400-1430112888_thumb.j

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited April 2015

    OK it is solved.

     

    For item selection in the result tree of penetration tab:

    hmCollisionGui::FindTreeSelection 0 0 0 0 0

     

    For autofixing of self-intersections and penetrations:

    hmCollisionGui::AutoFixDo

     

    Thank you all for your help. Hope HM scripting reference guide can be a bit more comprehensive in the future in a way that all these GUI commands are covered too.

     

    Cheers,

    Wensong

  • Ajay Prabhakaran
    Ajay Prabhakaran Altair Community Member
    edited July 2023

    But how can we get the depth value