Hex meshing a spiral

Hi

I’m having a play with deploying IGA on ‘real’ geometries, and I’ve had some success with my parts by webcutting to help sweepability, however, I’ve come a cropper with a spiral component, any advice or tips for generating a hex mesh on a sprial?

e.g.the spiral above

Thanks

Andy

Hi Andy,

Where are you seeing the problem?

reset
create surf rect width 1 height .1
create curve helix zaxis location .5 0 0 thread_distance 5 angle 720 right_handed 
sweep surface 1 along curve 5  individual 
delete curve 5 
mesh vol 1
color curve all black

The volume is submappable, so it just meshes.

Also, would you clarify the issue with doing this for IGA? Is this with Coreform IGA? What are you trying to accomplish?

Thanks,
Karl

Hi @karl

Thanks for the quick reply. It was a error in my underlying geometry was causing the issue, after some repairs and rebuilding I’m a bit further along, but stuck again.

when a clean spriral, fits into a cylindrical annulus, unsurpringly, everything can mesh fine, after boolean ops to make it fit, and then imprinting and merging, the spiral itself is sweepable, but the cylinder in which it fits with the imprinted curves is not.

See the below script,

#!python
cubit.cmd('brick x 5 y 1 z 1')
cubit.cmd('create Cylinder height 10 radius 2.5 ')
cubit.cmd('create Cylinder height 10 radius 2.4 ')
cubit.cmd('subtract volume 3 from volume 2  ')
cubit.cmd('move Volume 1 z 2.5 include_merged ')
cubit.cmd('measure between  Surface 1 Surface 15 ')
cubit.cmd('move Volume 1  z 2.0 include_merged ')
cubit.cmd('Surface 1  copy ')
cubit.cmd('sweep surface 16 helix zaxis thread_distance 5 angle 360 right_handed  keep ')
cubit.cmd('delete volume 5')
cubit.cmd('sweep surface 16 helix zaxis thread_distance 5 angle 720 right_handed  keep ')
cubit.cmd('move Volume 6 z 10 include_merged preview ')
cubit.cmd('move Volume 6 z -10 include_merged preview ')
cubit.cmd('move Volume 6 z -10 include_merged ')
cubit.cmd('delete volume 1')
cubit.cmd('subtract volume 2  from volume 6  keep_tool ')
cubit.cmd('delete volume 8, 9')
cubit.cmd('split body 6')
cubit.cmd('delete volume 8, 9')
cubit.cmd('delete body 4')
cubit.cmd('volume 2 7  size 0.2')
cubit.cmd('imprint body all')
cubit.cmd('merge all')

Forgive the hysteresis of adding and taking away things, but it demonstrates the issue.

Thanks

Andy

Hi Andy,

The skew is pretty high, but all positive Jacobian. Here is a solution starting from where you left off. I am working on a new method to webcut by offsetting surfaces. I’m not sure I accounted for this case. I will add this one to my test set.

create sheet offset from surface 29  offset .2
create sheet offset from surface 30  offset .2

create volume loft surface 30 60  
create volume loft surface 29 59  
webcut Volume 2  tool Body 12  
delete Body 12  
undo group end
undo group begin
webcut Volume 2  tool Body 13  
delete Body 13 
delete body 10 11

mesh vol all

The worst elements are where the helix takes off. I don’t know how to do better there.

Karl