Hole through pipe with SOFIMSHC/ SOFIMSHA

Hi, does someone know how to model a drilled hole in a hollow pipe having a circular cross-section? Because the pipe’s cross-section has irregular cuts and the cut depths change along the pipe axis, I have to model the pipe using brick elements in CADINP using SOFIMSHC and SOFIMSHA. SOFiPLUS doesn’t seem to support the creation of such 3D volume elements. Thanks in advance!

I would advise you to attach a picture, perhaps this will increase the number of people who want to help :slight_smile:

edit:
If I understand you correctly, then copy the area with a circular array, then copy the ring lengthwise and remove the cutouts.

Thanks Kirill!

Quad elements will not work for my case because the pipe has grooves and thickness reduction along its axis. I must go for brick elements yas you can see in the picture below.

The problem is I want to create a circular hole through the pipe. I thought of deleting the cluster of brick elements to somehow simulate the circular hole but it doesn’t look round. Perhaps I have to resort to surfaces and intersect them before doing hex or tet meshing for the volume but don’t know how to implement it yet.

Okay, I understood your task. Since I am a SOFiMSHA fan, I would solve it like this. With the help of a script, I generate BRICS with a regular structure, which then makes it easy to remove elements and move nodes to make hole more circular, since their numbers have a strict pattern in numbering.

+PROG SOFIMSHA urs:15.1 $ Text Input for Modeling
HEAD Text Input for Modeling
SYST spac gdiv 100000  gdir negz

let#angle 360.0    $ total angle
let#mlt 4          $ mesh density control

let#nn 1
let#en 1

$========================================================================== CIRCLE
let#radius 3.0
let#endRadius 3.0-0.2
let#r #radius
let#a 0.0

let#x 0.0
let#y 0.0
let#z 0.0

let#height 0.2  $ Height

let#xnoe #mlt*(200)+1   $ 200 - number of elements around the circle
let#ynoe #mlt*(2)+1     $ 2   - number of elements alog the radius
let#znoe #mlt*(1)+1     $ 1   - number of elements in vertical direction
let#xynoe #xnoe*#ynoe

let#dz #height/(#znoe-1)

let#da #angle/(#xnoe-1)
let#dr (#radius-#endRadius)/(#ynoe-1)

$ ============ update #non
let#non #nn-1

$ ============ NODES
loop#i #znoe
  loop#j #ynoe
    loop#k #xnoe

      NODE #nn #r*cos(#a) #r*sin(#a) #z
      let#nn #nn+1

      let#a #a+#da

    endloop

    let#a 0.0
    let#r #r-#dr

  endloop

  let#r #radius
  let#z #z+#dz
endloop


$ ================== PLATE ELEMENTS
grp 1
loop#i #znoe-1

  loop#j #ynoe-1

    loop#k #xnoe-1
        let#n1 #k+0+(#j+0)*#xnoe+(#i+0)*#xynoe+1+#non
        let#n2 #k+1+(#j+0)*#xnoe+(#i+0)*#xynoe+1+#non
        let#n3 #k+1+(#j+1)*#xnoe+(#i+0)*#xynoe+1+#non
        let#n4 #k+0+(#j+1)*#xnoe+(#i+0)*#xynoe+1+#non
        let#n5 #k+0+(#j+0)*#xnoe+(#i+1)*#xynoe+1+#non
        let#n6 #k+1+(#j+0)*#xnoe+(#i+1)*#xynoe+1+#non
        let#n7 #k+1+(#j+1)*#xnoe+(#i+1)*#xynoe+1+#non
        let#n8 #k+0+(#j+1)*#xnoe+(#i+1)*#xynoe+1+#non


      BRIC #en #n1 #n2 #n3 #n4 #n5 #n6 #n7 #n8
      let#en #en+1

    endloop
  endloop
endloop

$#include del.dat

del bric 125592-6400*0
del bric 125592-6400*1
del bric 125592-6400*2
del bric 125592-6400*3

END   

del_brics

@Kirill: Thank you! I am amazed with what you can create with your short piece of SOFIMSHA code. The groove is one important feature I want to have in my model. But if the groove depth changes linearly for some part of the pipe, should we resort to lofting the structural area?

In addition, I want to model a hole which is cut through the pipe as illustrated in the picture below. Removing brick elements can be tedious and will not make a perfect hole.

image

Yes, your mesh may have too complex geometry for the old-school meshing style in a reasonable amount of time. It might be worth finding a third party 3D mesher.
Unfortunately, I have dealt with larger objects, like bridges, where such problems do not arise.
If I come up with something, I will return with an answer.

Well … it seems like a problem to solve with abaqus not sofistik … It is a shame sofistik does not have more friendlier interface for modelling bric elements.

Hello

you could have a look at the TEDDY example:

TEDDY > File > Examples > SOFiMSHC > english > volume_modeling > tet_volume_mat1.dat

This example shows you a possible workflow for modelling a volume element with a sloped hole.
Perhaps you can implement a few of the described modelling methods to your project.

1 Like

Or nearly your hole in a pipe (but without brics): “SAR_intersection_02.dat” in geometric_modeling.
May be, there is a merging of both examples necessary.

1 Like

Thank you @JFH and @ragl for your helpful suggestions! It is one step closer.

Below is the teddy code in case you want to reproduce this.

$$$$$$$$$$
+prog aqua urs:2
head
mat 1 E 1.e6 0.3
end

+prog sofimshc urs:3
head modeling of surface
syst SPAC gdiv -1000
ctrl MESH 2 create surface mesh ctrl HMIN 0.5 mesh density
ctrl WARN 383 $ ignore warnings about unconnected structural lines
CTRL TOLG VAL 0.00010000[m]

let#z -0.1 top of tube let#z1 -0.7 bottom of tube
let#zdrill -0.5 z drill let#ddrill 0.1 drill diameter

$ Structural lines and areas for bottom of cicular tube
sln 101 ; slnb x1 5 -1.55 #z x2 5 1.55 #z xm 5 0 #z nz -1 ! outer
sln 102 ; slnb x1 5 1.55 #z x2 5 -1.55 #z xm 5 0 #z nz -1 ! outer
sln 103; slnb x1 5 -1.5 #z x2 5 1.5 #z xm 5 0 #z nz -1 ! inner
sln 104; slnb x1 5 1.5 #z x2 5 -1.5 #z xm 5 0 #z nz -1 ! inner
sar no 1 grp 1 mno 1 titl ‘Part with hole’
sarb out 101,102
sarb in 103,104

$ Structural lines and areas for top of cicular tube
sln 201 ; slnb x1 5 -1.55 #z1 x2 5 1.55 #z1 xm 5 0 #z1 nz -1 ! outer
sln 202 ; slnb x1 5 1.55 #z1 x2 5 -1.55 #z1 xm 5 0 #z1 nz -1 ! outer
sln 203; slnb x1 5 -1.5 #z1 x2 5 1.5 #z1 xm 5 0 #z1 nz -1 ! inner
sln 204; slnb x1 5 1.5 #z1 x2 5 -1.5 #z1 xm 5 0 #z1 nz -1 ! inner
sar no 2 grp 1 mno 1 titl ‘Part with hole’
sarb out 201,202
sarb in 203,204

$ Geoemtric surfaces for side walls of the circular tube
gax C1 typc ARC
gaxb x1 5 -1.55 #z x2 5 -1.55 #z1
gax C2 typc ARC
gaxb x1 5 -1.5 #z x2 5 -1.5 #z1
gax C3 typc ARC
gaxb x1 5 1.55 #z x2 5 1.55 #z1
gax C4 typc ARC
gaxb x1 5 1.5 #z x2 5 1.5 #z1
gar S1 type ROTA
gara C1 x 5 0 #z nz -1 vmin 0.0 vmax 180.0
gar S2 type ROTA
gara C2 x 5 0 #z nz -1 vmin 0.0 vmax 180.0
gar S3 type ROTA
gara C3 x 5 0 #z nz -1 vmin 0.0 vmax 180.0
gar S4 type ROTA
gara C4 x 5 0 #z nz -1 vmin 0.0 vmax 180.0

$ Geometric surfaces for the drill holes
let#za #z+#zdrill+#ddrill/2
let#ze #z+#zdrill-#ddrill/2
let#zm #z+#zdrill
gax G1 typc ARC
gaxb x1 2 0 #za x2 8 0 #za
gax G2 typc ARC
gaxb x1 2 0 #ze x2 8 0 #ze
gar R1 type ROTA
gara G1 x 2 0 #zm nx 1 vmin 0.0 vmax 180.0
gar R2 type ROTA
gara G2 x 2 0 #zm nx 1 vmin 0.0 vmax 180.0

$ Geometric curves for the drill holes
gax S1R1 sur1 S1 sur2 R1
gax S1R2 sur1 S1 sur2 R2
gax S2R1 sur1 S2 sur2 R1
gax S2R2 sur1 S2 sur2 R2
gax S3R1 sur1 S3 sur2 R1
gax S3R2 sur1 S3 sur2 R2
gax S4R1 sur1 S4 sur2 R1
gax S4R2 sur1 S4 sur2 R2

Structural lines for the drill hole sln 301 sdiv 0.03 ref S1R1 outer intersection curve
sln 302 sdiv 0.03 ref S1R2 outer intersection curve sln 303 sdiv 0.03 ref S2R1 inner intersection curve
sln 304 sdiv 0.03 ref S2R2 $ inner intersection curve

sln 305 sdiv 0.03 ref S3R1 outer intersection curve sln 306 sdiv 0.03 ref S3R2 outer intersection curve
sln 307 sdiv 0.03 ref S4R1 inner intersection curve sln 308 sdiv 0.03 ref S4R2 inner intersection curve

sln 309 ref G1
sln 310 ref G2

$ Structural surfaces for the drill hole
! in one half of tube
sar 7 grp - t 0 ref R1
sarb out 309,310,301,303
sar 8 grp - t 0 ref R2
sarb out 309,310,302,304
! in the other half of tube
sar 9 grp - t 0 ref R1
sarb out 309,310,305,307
sar 10 grp - t 0 ref R2
sarb out 309,310,306,308

Structural surfaces one half of the tube sln 51 ref C1 outer
sln 53 ref C3 outer sln 52 ref C2 inner
sln 54 ref C4 inner sar 3 grp 1 t 0 h1 0.03 outer
sarb in 301,302
sarb out 101,51,201,53
sar 4 grp 1 t 0 h1 0.03 $ inner
sarb in 303,304
sarb out 103,52,203,54

Structural surfaces the other half of the tube sar 5 grp 1 t 0 h1 0.03 outer
sarb in 305,306
sarb out 102,51,202,53
sar 6 grp 1 t 0 h1 0.03 $ inner
sarb in 307,308
sarb out 104,52,204,54

end

+prog sofimsha urs:1
head volume meshing
syst REST

grp 10
bric PROP mno 1

umsh type TET
ubnd type OUT sel QGRP n1 1
ubnd type OUT QREF n1 7 8 9 10

end