Fill gap in volume after removing internal surface

Hi,

I have a volume that contains internal surfaces. The volume was merged and imprinted with other volumes.

I would like to remove one of the internal surfaces. When I do this using remove surface 10 noextend the volume becomes a sheet body which cannot be meshed. I have tried to remove the “noextend” option but it does not work either because the internal surface has other curves associated with it.

After removing the internal surface, is there a way to fill the gap in the sheet body so that the volume can be useful for meshing again?

Thanks,

Hi,

Can you provide the model or a subset of the model that shows the issue? You might be able to
do stitch body with is_sheet [tolerance <value>]. The tolerance is optional. You might want to do a draw body with is_sheet first to make sure you are selecting the correct entities.

Thanks,
Karl

Hi @karl,

I think I solved this problem. What I did is the following: instead of using remove surface 20 noextend I used another command: separate surface 20.

Using separate surface 20 does not convert the volume to a sheet body, and therefore I do not need to imprint and merge again before the meshing step.

Question: I can’t find the command separate surface 20 in the Coreform Cubit manual. I found it by chance because Cubit threw an warning message. Do you know why this command is not in the manual?

Below is a full working example of how I solved this problem.

Thanks,

#!python
#!python

import sys
import os
import cubit

cubit.init([])
cubit.reset()

cubit.cmd("${Units('si')}")
cubit.cmd("set stop error on")
cubit.cmd("undo off")


cubit.cmd("graphics tolerance angle 30")
#cubit.cmd("graphics pause")

## Create volume 
cubit.cmd("brick x 10 y 10 z 10")

## Crete planes 
InnerPlanesAll=[]
cubit.cmd("Surface 6  copy scale x 0.0001 y 0.5 z 0.5 ")
InnerPlanesAll.append(cubit.get_last_id("body"))

## Create horizontal plane 
xFactor=1.1; yFactor=1.1
surfaceNumberAll=[]
for zFactor in [0.1]:
    cubit.cmd(f"Surface 2  copy scale x {xFactor} y {yFactor} z {zFactor} ")
    surfaceNumberAll.append(cubit.get_last_id("surface"))

#Performing webcut
#volNumber=1
for surfaceNumber in surfaceNumberAll:
    cubit.cmd(f"webcut volume 1 with sheet surface {surfaceNumber}")
    #volNumber=cubit.get_last_id("volume")

## Adding internal surface
for bodyNumber in InnerPlanesAll:
    cubit.cmd(f'subtract body {bodyNumber} from body all')
    #cubit.cmd(f'chop volume 13 with body {bodyNumber}')

## Imprint and merging
cubit.cmd("imprint all")
cubit.cmd("merge all")

## Deleting extra body
cubit.cmd("delete body 3")

## Removing one of the internal surfaces. This works as expected: no need to imprint and merge the voluems again.
cubit.cmd("separate surface 20")
cubit.cmd("delete body 5")

## This will convert the volume to a sheet body. Will need to imprint and merge again for meshing. 
#cubit.cmd("remove surface 20 noextend")

Hi,

It is in the manual, but it is currently hard to find. We have reformatted the documentation. There was a bug in version 2021.11 where the info links from the GUI panels did not sync to the new documentation correctly. You can find this link in the documentation by searching for the term “sep”. I understand that there is further work going on to improve the search capabilities as well.

Karl

4.5 Geometry Decomposition (coreform.com)

4.5.4 Separating Surfaces from Bodies

The separate surface command is used to separate a surface from a sheet body or a solid body.

To separate a surface from a body

  1. On the Command Panel, click on Geometry and then Surface.
  2. Click on the Modify action button.
  3. Select Split from the drop-down menu.
  4. Select Separate from the drop-down menu.
  5. Enter in the appropriate value for Surface ID(s). This can also be done using the Pick Widget function.
  6. Click Apply.

separate surface

Separating a surface from a solid body will create a “hole” in the solid body. Thus the solid body will become a sheet body. The newly separated surface will be also sheet body, but it will have a different id. Multiple surfaces can be separated from a body at the same time, but each separated surface will result in a distinct sheet body, as if the command had been performed on each surface individually.

@Karl,

Thanks for the reply. I am confused now. It says in the manual that using the separate command will convert the volume to a sheet body. However, in the example above that I sent you when I use the separate surface command I don’t get a sheet body for the volume.

Do you know why the behavior in my example does not match the explanation in the manual?

Thanks,

Hi @jsilva.mit,

The non-manifold surface is a special case not discussed in the documentation. Removing the non-manifold surface does not create a gap in the owning volume. Hence, the owning volume is not converted to a sheet body. Topologically there is no difference between what you did and the following.

brick x 10
create curve location 0 -2 5 location 0 2 5
imprint volume 1 with curve 13
delete curve 13

There is no need to create a sheet body because the volume is still closed. There is just an imprinted curve on the surface.

Karl