Bounding an imported CAD geometry

Hi,
I’m facing a very strange problem whenever I import a cad geometry that encloses empty spaces. For some reason the empty space inside the geometry it’s not recognized by Cubit and that creates major problems during the meshing procedure or whatever I’m doing next. If I try to repeat the process creating the same geometry within Cubit everything is alright. Has everyone experience a similar problem?
Thanks,
Lorenzo

Hi Lorenzo,

Thanks for posting on the forum. How are you importing the CAD geometry, via STEP? If you could provide a simple example, and the steps you use to create the problem, that would help us find the issue.

Thanks,
Karl

Hi Karl,
Thank you fro the prompt answer. I attach a very simple geometry, it’s a cylinder with a cavity. The test is simple, I perform a bounding box operation and then I subtract the cylinder from the new volume brick. I should end up with 2 regions, one for the cavity and one external, but Cubit generates only one.
If I perform the same operations on an identical geometry created directly on Cubit, there are no issues. So it’s clearly something happening during importing.
Thank you. cyl.step (5.9 KB)
Lorenzo

Is this what you want?

import step “cyl.step” heal
create brick bounding box Volume 1 tight
subtract body 1 from body 2 keep_tool

Hi,
This “heal” command works for very simply geometry like this one, but if it complicates just a bit more, like the one attached, not anymore.
I tried:

import step "cap.step” heal
create brick bounding box Volume 1 extended percentage 50
subtract body 1 from body 2 keep_tool

Ending up with only one body instead of two.
Thanks,
Lorenzo cap.step (61.0 KB)

Hi Again,
If after import I run: healer autoheal volume 1 rebuild, it works fine, however it creates another volume with ID 2. Is there a way to run this command directly during import and don’t mess up the volume ids?
Thanks.
Lorenzo

What version of Cubit are you using? I’m using 2021.11 and your commands (listed below) seem to work for me.

import step "cap.step” heal
create brick bounding box Volume 1 extended percentage 50
subtract body 1 from body 2 keep_tool

image

Volume 1

Volume 3

I’m using 2021.5, I’ll try to update!

Hi again,
I tried with 2021.11 and the problem persists. Running the above-mentioned command should end up with a further volume for the internal cavity.
Regards,
Lorenzo

Hi,
Any follow up on this topic? I’ve noticed another error when importing in cubit a geometry with cavity, the volume name gets reset independently of its original one.
Best Regards,
Lorenzo

Hi Lorenzo,

I’m not sure we understand what you are looking for. As Greg mentioned above, volumes 1 and 3 seem to be the original cap object and the enclosing space excluding the cap object. What do you expect to get?

As to your question with the geometry with a cavity, can you give us an example to look at?

Thanks,
Karl

Hi Karl,
Thanks for coming back to me. I expect to get 3 volumes, the original cap, the outer volume and the inner volume, filling the cavity.
The same operations performed on a geometry with cavity created directly on cubit, gives 3 volume as expected. Furthermore, when importing geometries with cavities, the name ID gets lost.
Thanks,
Lorenzo

Hi Lorenzo,

I did notice that I get different results if I use ‘keep’ instead of ‘keep_tool’ in the boolean subtract. The help for subtract shows
Subtract [Volume|BODY] <range> From [Volume|BODY] <range> [imprint] [keep].

The use of ‘keep_tool’ looks like a bug in the GUI to me. Using ‘keep’ I get

image

where Volume 1 is the cap, Volume 2 is the bounding brick, and Volume 3 is the difference between the two.

Does this make any difference for you?

Karl

Hi Karl,
Not precisely, if you use ‘keep’ you would retain the two volumes before the subtraction.
I’ll try to explain the steps I’ve done a bit better.

  • import a simple hollow cylinder with a cavity or empty space inside, like the one attached:
    Cubit>import step “cap.step” heal
  • Create a bounding box around it
    Cubit>create brick bounding box Volume 1 extended percentage 50
  • Subtract the cap volume from the bounding box, keeping the tool:
    Cubit>Subtract Volume 1 from Volume 2 keep_tool

    I then end up with 2 volumes: the cap and the bounding box volume without the cap inside, which is not right (2 new volume should be created, one inside the cylinder and one outside).

If however I run this command after importing:
Cubit>healer autoheal volume 1 rebuild
And then I continue with the same commands, I end up with the right volumes:

This problem happen to all the imported geometries that have a cavity inside.
I hope I made myself clear.
Best Regards,
Lorenzo cap.step (61.0 KB)

Hi Lorenzo,

I understand the problem (if not the solution) now. When I tetmesh the cap and look at the elements in the cross-section, there is a gap. I did not understand that this was a thin-walled vessel when I first looked at it. I will keep trying to debug this problem.

Karl

Hi Lorenzo,

Here is what I found. This part is in a relatively small scale. The length is ~.04. The first thing I tried was to scale the part by 100 to just to see if there were any numerical issues at the smaller scale. When I did that, I got a warning the scaling may have corrupted the model. I then healed the model with a rebuild.

healer autoheal body 1 rebuild

I was then able to do the boolean subtract and get the correct internal cylinder.

I next just tried importing the body and did an autoheal with rebuild.

import step "~/Downloads/cap.step" heal
healer autoheal body 1 rebuild
compress
create brick bounding box vol 1 percent 50
subtract vol 1 from vol 2 keep_tool

This gave me the solution that you were looking for, three volumes including, the internal cylinder.

I am currently working on upgrading the ACIS library which is the third party tool we use for geometry and reading STEP files. I will do some checks to see if your model works correctly with the new version and report back to you in a couple of weeks.

Thank you for your patience,
Karl

Hi Karl,

I’ve also tried with larger parts and doesn’t seem to be the problem.

The autoheal rebuild function works well for simple geometries, but with more complex cases the only thing I came up with to overcome the problem was to cut the part in multiple parts so not to have closed empty spaces inside.
But this of course doesn’t solve the problem either.

There is also another thing when importing these parts, the volume name gets automatically cancelled and reset to Volume1, no matter what. Also very strange.

Thank you for looking into it.
Best Regards,
Lorenzo

Hi Lorenzo,

Is the volume name being removed during the healing operation? What happens if you import without healing? Do you still lose the name?

In general, we recommend that users scale small models to a larger size. We have seen cases with numerical instability with small models scales. You can scale the model back to the smaller size prior to export. If you are exporting an Exodus mesh, you can specify a scale size during export.

Karl

Hi Karl,

The volume name is removed independently on the healing operation at import.

I tried to scale the cylinder by a factor of 100 directly in the CAE tool and then import it to Cubit, but the error is still there.

Lorenzo

Hi Lorenzo,

You may still need to add the autoheal with rebuild as part of your process.

Can I send this model to the 3rd party vendor that supplies our STEP reader? I would like to report this as a bug to them.

Thanks,
Karl