# Belt conveyor with ribs

Submitted by ThomasR on Tue, 07/16/2013 - 05:47

Hi all,

I want to simulate a belt conveyor with ribs on the surface. (stl attached)
For a flat belt i would usually use the surface_vel command to specify the imported mesh as conveyor belt.
The Problem about this command is that there is no motion of the ribs. Think this behaviour is expected.

I thought about to generate single ribs as stl files and using move/mesh command to move ribs linear with the same velocity as the belt surface. At the end of the belt i would delete the ribs and enter new ribs at the otherside of the belt. I think this should be possible but doesnt sounds very smart to me.

Does anyone got some experience how to deal with this problems and could give me some advices how to do? Maybe got some other ideas i could try.

Thanks for help!

Cheers Thomas

AttachmentSize
59.5 KB

### Forums:

willchennewcastle | Tue, 07/16/2013 - 06:08

### I think what you are trying

I think what you are trying to say is a Apron Feeder.

ckloss | Thu, 07/18/2013 - 18:15

### >>Does anyone got some

>>Does anyone got some experience how to deal with this problems and could give me some advices how to do?
you can use fix move/mesh with the "variable" style to move the mesh around in an arbitrary way

Cheers
Christoph

richti83 | Thu, 07/18/2013 - 19:20

### A fancy loop can do

I did a Apron Feeder like this:

``` variable event1 equal round(\$D/(\${vel}*\${dt})) #swap moving every this step (i.e. distance between two bars/v) ######################## Eventloop ################################# label eventloop variable b loop 1 \${maxelement} variable c equal \${maxelement}-\$b+1 variable d equal \$c+7 unfix movecad\$c #stop linear motion of last element in linear motion fix rotcad\$c all move/mesh mesh cad\$c rotate origin \${porX} 0 \${porZ} axis 0 1 0 period \$T```

variable mod equal \$d-round(\$d/5)*5 #there is no modulo function in liggghts so I used this work-a-round
if (\${mod}==0) then "variable typ string platte1.stl" else "variable typ string platte2.stl" #make 4 normal plates and one with a liftbar

if "\$b>7" then &
"unfix wall" &
"undump vtk1" &
"undump vtk2" &
"fix cad\$d all mesh/surface/stress file \${typ} type 2 scale 1 move \$E 0 \$R rotate axis 0 1 0 angle -\$B reference_point \$E 0 \$R" &
"dump vtk1 all mesh/gran/VTK \${dumpstep} postALL/dump_interpolated*.vtk forces stress stresscomponents area id output interpolate" &
"dump vtk2 all mesh/gran/VTK \${dumpstep} postALL/dump_faces*.vtk forces stress stresscomponents area id output face"
run \${event1}
next b
jump in_all_in_one.lmp eventloop
#######################################################################

We see some limitations in LIGGGHTS:
-the wall command needs to be concatinated by hand.
@Christoph: would it be possible to make fix wall/gran/h*** to work on group-id base or a wildcard which forces liggghts to use all fixes of type mesh/surface as walls ? AFAIK only one wall/gran fix is allowed so the only difference is between insertion-walls and walls which should interact with particles .....
- the dump styles needs to be undumped when you change the wall/gran fix otherwise liggghts will crash (I think this is unwanted behaviour)
- there is no modulo function in variable command but there is a work-a-round using round and math

best, Christian

I'm not an associate of DCS GmbH and not a core developer of LIGGGHTS®
but I have 7 years user experience using LIGGGHTS®, ParaView and LINUX

ThomasR | Fri, 07/19/2013 - 02:23

### Hi,

Hi,
Thanks for the replies.
I solved my problem similiar to Christians solution. Also using a loop for the linear movement of the rips on the belt surface and rotation around the drum on the end.

indrajit.jagtap | Thu, 09/25/2014 - 09:42

### Apron conveyor using single STL for rib

I was trying to setup the apron conveyor. I came across this forum topic. I set up the case using surface_vel for plane. I used single STL file for rib, which is fixed and unfixed at appropriate time interval. The speed of this rib is also adjusted to conveyor speed to provide apron conveyor setup.

The input deck snippet is as below:

###########################################################################################################
#A loop is set to run 50 times.
#Conveyor is modeled using surface velocity for plane and motion to ribs.
#Ribs are modeled using single STL file which is fixed and unfixed in a loop at appropriate time interval
#For demo case, we need to have 4 ribs at a time on conveyor. Therefore, number 4 below in the loop.
# This can be made variable for actual case.
###########################################################################################################
variable a loop 50
label loop1

if '\$a > 4' then &
'variable b equal \$a-4' &
"unfix granwallrib\$b" &
'print "B = \$b"' &
'variable b delete'

fix cadrib\$a all mesh/surface file rib1.stl type 1 curvature 1e-05

fix granwallrib\$a all wall/gran/hertz/history mesh n_meshes 1 meshes cadrib\$a &
tangential_damping on rolling_friction cdt cohesion off
dump dmp_geomrib\$a all mesh/vtk 1000 Post/cleated-program-1_cad-rib_*.vtk id