How to mesh a frustum in a layered block

brick x 150 y 178 z 50
volume 1 move x 75 y 89 z 25
create frustum height 50 radius 30 top 5
volume 2 move x 75 y 89 z 25
subtract volume 2 from volume 1 keep_tool
webcut volume all plane zplane offset 35
webcut volume all plane zplane offset 30
webcut volume all plane zplane offset 29
brick x 150 y 4 z 4
volume 9 move x 75 y 12 z 32
brick x 150 y 4 z 4
volume 10 move x 75 y 166 z 32
subtract volume 9 10 from volume all
merge all
imprint all

How can a model like this divide the grid, the top and bottom layers of the grid size can be larger, the middle layer of the grid size needs to be 1m

All I did was this

volume 5 size 1
volume 3 1 7 size auto factor 5
volume all scheme tetmesh
mesh volume all
graphics clip on location 75 0 0 direction 1 0 0 
draw tet all

Worked fine for me

How to partition the hexahedron grid

Hi @Xushuai,
of which volumes does the middle layer consist? 3 to 6?

Also you need to first imprint before you merge. Then you can already attempt to mesh.

imprint all
merge all

vol 3 4 5 6 size 1
mesh vol 3 4 5 6
mesh vol all

But only with this we will get a very bad element quality on the bottom.

Could you please put the desired layers into a block and tell us which element size and type you are targeting. If you need a good hex mesh then i would decompose a little further.

volume 1 2 size 3
mesh volume 1 2
refine surface 31 61 numsplit 1 bias 1 depth 0
volume 3 4 5 6 size 1
mesh volume 3 4 5 6

How can volume 7, 8 at the bottom be divided into a grid similar to volume 1, 2

It’s not so trivial to get this mesh. You have to be aware of the sweep directions and make sure that the intervals will match when meshing the middle layer.

So we need to decompose further. First lets put the volumes into blocks. When we do some webcuts the new volumes gets signed automatically to the blocks.

#!cubit
reset
brick x 150 y 178 z 50
volume 1 move x 75 y 89 z 25
create frustum height 50 radius 30 top 5
volume 2 move x 75 y 89 z 25
subtract volume 2 from volume 1 keep_tool
webcut volume all plane zplane offset 35
webcut volume all plane zplane offset 30
webcut volume all plane zplane offset 29
brick x 150 y 4 z 4
volume 9 move x 75 y 12 z 32
brick x 150 y 4 z 4
volume 10 move x 75 y 166 z 32
subtract volume 9 10 from volume all

block 1 add volume 1 2
block 1 name 'top_layer'
block 2 add volume 3 to 6
block 2 name 'middle_layer'
block 3 add volume 7 8
block 3 name 'bottom_layer'

Now lets decompose further. We need to make sure that the interval matching will work when we mesh.
The merged surfaces should have the same topology to achieve this.

webcut volume all with sheet extended from surface 73
webcut volume all with plane normal to curve 3  fraction .5 from start 
webcut volume all with plane normal to curve 4  fraction .5 from start
webcut volume all with sheet extended from surface 302  
webcut volume all with sheet extended from surface 425  
webcut volume all with sheet extended from surface 312  
webcut volume all with sheet extended from surface 322  

imprint all
merge all

First mesh everything and then reset the volumes in block 2.

vol all in block 1 3 size 5
mesh vol all
reset vol all in block 2

Now we refine the merged surfaces between block 2 and the other blocks.

refine Surface  725 683 680 718 485 443 228 234 348 355 563 525 598 605 643 640 663 660 583 505 738 745 703 700 463 268 274 395 388 545 618 625  numsplit 1 bias 1 depth 0

The top and bottom surfaces from block 2 should now have the same node and element count.


Now it’s crucial to take control of the mesh order. We will set the size for the block and first mesh the top layer in block 2. This way we will ensure that the middle layer in block 2 has matchin intervals with the bottom. Now we can mesh the rest of the block.

vol all in block 2 size 1
mesh Volume 60 56 17 39 68 64 4 28 40 18 52 48 3 72 76 27 
mesh vol all in block 2

A short look at the mesh.

draw hex all in block 1 color green
draw hex all in block 2 color yellow add
draw hex all in block 3 color blue add
graphics clip on location 75 0 0 direction 1 0 0 

Thank you very much. My problem has been solved. Very professional

Is there a command that can get all the volume in a block

select volume all in block 1