CAD Ass'y Model(.STEP) --> Netgen(.VOL) --> Calculix(.INP)
with   vol2ci.py  (Version 0.023  2011/Nov/28 : bug fix for NetgenSTL-'surfaceelementsg ')

Tweet

LOAD STEP file  with Neggen
Solve and Post with Calculix




command
Screen
Comment
Run Netgen
File / LoadGeometry




Load CAD file(STEP, IGES etc)


Make a plan to decide Boundary Condtion.
Mesh/MeshOptions/secondOrderElements


I want to use C3D10
Generate Mesh



Mesh/Edit Boundary Conditions



0/all/change



(reset all surface's BC )
(Select FIX surface)
1/Change



(set 'FIX' surface's  BC to '1' )

(of course , you can use other number)
(Select LOAD surface )
2/Change



(set 'LOAD' surface's  BC to '2' )
(Select one Contact Surface)
10/Change



(Select another Contact Surface)
20/Change


File / SaveMesh





for example , two.vol
>python vol2ci.py two.vol out.inp



run Python script vol2ci.py

two.vol  is netgen mesh file made by above.

out.inp is filename made by script.
(any name you like)



vol2ci.py will make out.inp that include :
1) Node info such as
*NODE,Nset=Nall
1 , 40 , 0 , 20
2,  50 , 0 , 20

2) ELEMENT info such as
*ELEMENT, TYPE=C3D10, ELSET=Eall
1,34,137,143,117,439,484,473,358,752,751

3) ELSET set such as
*ELSET,ELSET=VOL1
1,
2,

4) NODE set ( for Boundary Condition)
*NSET,NSET=BC1
9,
12,

5) r1 for using in cgx
>cgx -c out.inp






read r1



r1 is ..

plus n BC1
comp BC1 down
comp BC1 down
plus f BC1
send BC1 abq sur
send BC1 abq pres 1.0

Role of r1 is
1) disp node BC ( plus n BC1)
2) make surface set ( comp BC1 down , comp BC1 down)
3) disp surface BC ( plus f BC1)
4) make surface set for contact ( send BC1 abq sur)
5) make surface set for press ( send BC1 abq pres 1.0)
prnt set




VOL# is Parts set
BC# is BoundaryCondition's No

confirm BC's
plot e VOL1






netgen add Number to each parts automatically ,
So it is need to confirm each part's set.





found 'VOL1 is upeer parts.'
plot e VOL2





found 'VOL2 is lower parts.'
quit cgx



confirm output file

BC1.dlo --- press surface set  for *DLOAD .
BC1.sur --- surface set

BC2.dlo
BC2.sur

BC10.dlo
BC10.sur

BC20.dlo
BC20.sur


prepare solver file(named so.inp)










*INCLUDE, INPUT=out.inp
*include,INPUT=BC10.sur
*include,INPUT=BC20.sur
*MATERIAL, Name=AL
*ELASTIC
 71000 , 0.35
*MATERIAL, Name=PLA
*ELASTIC
 1000 , 0.30
*SOLID SECTION,MATERIAL=PLA      , ELSET=VOL1
*SOLID SECTION,MATERIAL=AL       , ELSET=VOL2
*TIE,POSITION TOLERANCE=1
SBC10,SBC20
*AMPLITUDE,NAME=A1
0,0.1
*STEP
*STATIC
*BOUNDARY
BC1,1,3,0
*DLOAD,AMPLITUDE=A1
*INCLUDE, INPUT=BC2.dlo
*NODE FILE
U
*EL FILE
S
*END STEP












with *TIE command ,
fix two surface
(I don't know TOLERANCE=1 is adequate or not)

SBC10 is described in BC10.sur
 as *SURFACE, NAME=SBC10
>ccx so






>cgx -v so.frd



(datasets/Disp)



(datasets/Entity/ALL)


(Viewing Toggle Add-Displacement)


steps 100
scal d 10








*comparison



Netgen -> Calculix(no common nodes , using  *TIE)
CGX -> Calculix( use common face, common nodes  , not using *TIE)
Model


displacement


stress




return

inserted by FC2 system