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

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 SOFiMSH**A** 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
```

@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.

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.

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.

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