Boolean Function for Elements?

Altair Forum User
Altair Forum User
Altair Employee
edited August 2021 in Community Q&A

Hello,

I'm working with a model that contains 2 components.

1. Comp contains surfaces, solids and elements
2. Comp contains lines, surfaces and Elements. A solid can not be created from the surfaces.
I used another way though to create Tetraeder Elements to fill the volume contained by the surfaces.

The 2nd component is placed within the 1st component.

Now I want to cut out the space of the 1st comp, so that the 2nd comp fits in without having the elements of both
components overlap.

Basically I want to use a boolean function for elements, like the 'solid edit>boolean>A-B (del B )' function for solids.
But as I can't create a solid from the surfaces of the 2nd comp. I need to go another way than the traditional boolean.

Is there something like boolean for elements?

Kind regards,
Niclas_emi
 

Tagged:

Answers

  • Q.Nguyen-Dai
    Q.Nguyen-Dai Altair Community Member
    edited May 2017

    For elements boolean operators, I think you can do with TCL macro.

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited May 2017

    Is there a script or tutorial on how to use TCL macro? Never worked with it before in Hypermesh.
    I would need to use TCL Script for this right?

  • Rahul Rajan_21763
    Rahul Rajan_21763 New Altair Community Member
    edited May 2017

    For 2d elements you could try mesh edit option listed under 2d page.

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited May 2017

    Is there something similar for 3D?

    When I'm trying to use 2D>mesh edit Option for the element of my two compounds, I get an error saying:

    'Source should be plot or shell element only.' Can I convert my comps into these kind of elements somehow?

  • tinh
    tinh Altair Community Member
    edited May 2017

    Hi,

    Is there something similar for 3D?

    When I'm trying to use 2D>mesh edit Option for the element of my two compounds, I get an error saying:

    'Source should be plot or shell element only.' Can I convert my comps into these kind of elements somehow?

     

     

    You can do like this:

    - enter panel tools>faces to create 2d facing elems of the tetra comps

    - use mesh edit to combine face patches

    - then recreate tetra elems using edited facing elems

     

     

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited May 2017

    Hi @tinh, thanks for your Reply. Unfortunately I didn't get any further with your solution so far, as I still get an error during 'mesh edit' as before.
    Also I can't find the edit facing elements option. Can you tell me where to find it?

  • tinh
    tinh Altair Community Member
    edited May 2017

    Hi @Niclas_emi

    If mesh editor throws an error, try editing the mesh manually. mesh editor is just useful for some cases

     

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited May 2017

    Hi,

     

     

    You can do like this:

    - enter panel tools>faces to create 2d facing elems of the tetra comps

    - use mesh edit to combine face patches

    - then recreate tetra elems using edited facing elems

     

     

    So this might solve the issue regarding the error 'Source should be plot or shell element only.' right? But not my main problem regarding
    the boolean function to substract one 3D-component from another..?

  • tinh
    tinh Altair Community Member
    edited May 2017

    Yes, probably there is no way to subtract 3d elems directly in hypermesh

    you have to change it back to 2d elems (faces), modify them, and use them to regenerate 3d

     

    did you try using simlab? there are some interesting tools to edit 3d comps...

  • Rahul Rajan_21763
    Rahul Rajan_21763 New Altair Community Member
    edited May 2017

    Hi,

    It would be nice if you could share screenshot of change your expecting in your model..In Hypermesh , may be morphing could help or as Tinh mentioned above, explore simLab which has really nice features for 3d mesh editing. 

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited May 2017

    Thanks for your answers! I will try simlab then, if I really don't get any further with Hypermesh. Otherwise I will let you know.

    To get back to my main problem, maybe there's another way to solve it..
    For my problem, imagine a larger solid SPHERE ('A'), from which I want to cut out a smaller solid CUBE ('B').

    My main problem was, that I wanted to substract one solid from another. (geom>solid edit>boolean A-B) and afterwards mesh component 'A',
    while leaving out empty space for the 'B'-Solid obviously.
    The Solid 'B' was created from a Surface, which I created from FE-entities using Tools>Faces. 

    When I tried to mesh the 'A'-Component, Hypermesh didn't leave out the 'B' components during meshing. 
    Although the substracted solid 'B' is shown within solid 'A', as usual if you use the boolean function.

    However, when I substracted a different Solid 'C' (let's say a donut-shape) from 'A', it worked... 'C' was basically created in the same way as 'B', as described above.

    So there must be an issue with my entire component or solid 'B', which makes it somehow impossible to properly substract it from 'A' using 'boolean A-B'.

    Any ideas what this issue might be?

     

  • tinh
    tinh Altair Community Member
    edited May 2017

    Sorry but I cannot help you more if you don't send us your model.

    from the beginning, we just talk by text. we need something to try, and error, and try again...

    That's the only my ideal.

  • Christoforos Chatzikomis
    Christoforos Chatzikomis Altair Community Member
    edited May 2021

    Hello,

    after reading the above, I understand that at least 4 years ago, the only option to perform a boolean operation for a mesh was to do it indirectly and and with a 2D mesh only.

    has anything changed in the newr versions of Hypermesh (Hyperworks now) that would allow performing a Boolean operation with two sets of 3d mesh?

    To make my example more specific:

    I have a voxel mesh of a component (component #1) that was created using a 3D geometry but because of the resolution of the voxel mesh, the resulting mesh is slightly bigger than the 3D geometry (all good with that, I understand why it is happening).

    Now I want to introduce another component (component #2) which is already meshed. Prior to the creating of the voxel mesh for component #1, component#2 was matching the component #1 3D model with no intersections.

    What I would like to do now is eliminate the voxel elements of component #1 (target) that intersect with component #2 (tool for removal).

    Has this or something similar introduced as a feature in newer versions of Hyperworks?

  • Jason_Craanen
    Jason_Craanen
    Altair Employee
    edited May 2021

    Hello,

    after reading the above, I understand that at least 4 years ago, the only option to perform a boolean operation for a mesh was to do it indirectly and and with a 2D mesh only.

    has anything changed in the newr versions of Hypermesh (Hyperworks now) that would allow performing a Boolean operation with two sets of 3d mesh?

    To make my example more specific:

    I have a voxel mesh of a component (component #1) that was created using a 3D geometry but because of the resolution of the voxel mesh, the resulting mesh is slightly bigger than the 3D geometry (all good with that, I understand why it is happening).

    Now I want to introduce another component (component #2) which is already meshed. Prior to the creating of the voxel mesh for component #1, component#2 was matching the component #1 3D model with no intersections.

    What I would like to do now is eliminate the voxel elements of component #1 (target) that intersect with component #2 (tool for removal).

    Has this or something similar introduced as a feature in newer versions of Hyperworks?

    Hello,

    Not exactly clear of your usecase, but you could try this tool. I used shell elements on the surfaces and would then fill with tets after the fact.

    image

  • Christoforos Chatzikomis
    Christoforos Chatzikomis Altair Community Member
    edited June 2021

    Hello,

    Not exactly clear of your usecase, but you could try this tool. I used shell elements on the surfaces and would then fill with tets after the fact.

    image

    Thank you for the reply and the advice,

    I was not aware of this option.

    I had a quick go and it did not seem to do anything but I will put a bit more effort in the setup of the "Mesh Boolean" tool and post feedback here.

    Thanks again

  • Christoforos Chatzikomis
    Christoforos Chatzikomis Altair Community Member
    edited August 2021

    Hello,

    Not exactly clear of your usecase, but you could try this tool. I used shell elements on the surfaces and would then fill with tets after the fact.

    image

    It took me a while but I did get around to try and use the feature. I could not find any documentation in the help section to help me understand the details of the options in the Boolean Operation in the manual of Hyperworks 2020 that I am using. I did however find it in the Hyperworks 2021 help documentation.

    - Based on this, should I assume that this function is only used with 2D elements? 

    - It was not clear from the instructions if the "master entitites to preserve" requires a mesh solid or I can use a non-meshed solid  as the "tool" for the boolean subtraction?

  • Christoforos Chatzikomis
    Christoforos Chatzikomis Altair Community Member
    edited August 2021

    It took me a while but I did get around to try and use the feature. I could not find any documentation in the help section to help me understand the details of the options in the Boolean Operation in the manual of Hyperworks 2020 that I am using. I did however find it in the Hyperworks 2021 help documentation.

    - Based on this, should I assume that this function is only used with 2D elements? 

    - It was not clear from the instructions if the "master entitites to preserve" requires a mesh solid or I can use a non-meshed solid  as the "tool" for the boolean subtraction?

    Apologies for the multiple messages on that: it seems that multiple clicks on the component/element selection are required so I did manage to make it work with using a 2D mesh for the target and a 2D mesh for the "removal tool" (master entity). In summary I tried the following combinations:

    Target / tool (master entity) 3D 2D Solid
    3D Error: "The selection of elements or components is incorrect" I am not able to pick the 2D component as master entity Not able to pick the solid component as master entity
    2D I am not able to pick the 3D component as master entity works as per Jason's suggestion above Not able to pick the solid component as master entity
  • Christoforos Chatzikomis
    Christoforos Chatzikomis Altair Community Member
    edited August 2021

    Apologies for the multiple messages on that: it seems that multiple clicks on the component/element selection are required so I did manage to make it work with using a 2D mesh for the target and a 2D mesh for the "removal tool" (master entity). In summary I tried the following combinations:

    Target / tool (master entity) 3D 2D Solid
    3D Error: "The selection of elements or components is incorrect" I am not able to pick the 2D component as master entity Not able to pick the solid component as master entity
    2D I am not able to pick the 3D component as master entity works as per Jason's suggestion above Not able to pick the solid component as master entity

    And to explain why I am insisting on this, I will explain my use case below:
    I have prepared a fairly complex topology optimization model with many loads,BCs, load collectors, load steps, non-design areas and RBE2s/RBE3s.
    Following the initial analysis, some additional components need to be excluded from the design space.
    I could do that in CAD (easy and straightforward) but then I would have to remesh the 3D model and recreate non-design spaces and RBE3s/RBE2s.
    If the boolean operation was working on solid elements, I could import the cad of the new parts to be excluded in the existing FEA model.
    Then I could eliminate the design space elements that clash with the new components and rerun my topology optimization.