Particles in a conveyor
#1
Has anyone tried to build particles in a conveyor set up? Mine requires some adjustment.


Attached Files Thumbnail(s)
       
  Reply
#2
Here's another try. I wonder what explodes tyFlow simulation.

I built the previous version years ago with Orbaz PFlow tools. What I'm doing wrong here?


Attached Files Thumbnail(s)
   
  Reply
#3
They are exploding probably because you're using PhysX and/or Fluid sim.
And I am not really sure why you are using them at all (especially fluid force).

For conveyor belt first thing is that you animate mesh. You can find some tutorials on youtube how to do it. You can even search tank treads tutorial setup, because it's basically the same thing.

As for the particles, your main operator would be object bind (surface mode).
So first you can spawn particles whenever you want (Icon or object), add gravity, rotation, then add collision operator, and when they collide send them to new event where you will have object bind, so they stick to previously animated conveyor belt.
  Reply
#4
Thanks,

I'll try this approach. The fluid force is there, because at the end of the conveyor they drop to liquid.

The conveyor is animated and it worked on PFlow version, I made about ten ago. The operation is not continuous. So it stops time to time when there is too much particles in the liquid.

There will be part when particles disintegrate (or turn inti liquid). I didn't even try this with PFlow - they just vanished. I think it would be enough, if the just break into smaller pieces in the end and the fade off.
  Reply
#5
I am waiting for some fluid animation to be done, so I created you a sample scene, because I was bored anyway. Smile 

I created you 3 TyFlow versions:
- PhysX
- Particle Physics
- Regular particles

Actually, I haven't used object bind operator, because regular collision operator worked just nicely for Particle Physics and Regular particles (for PhysX version it was a bit trickier, but I managed it).
Should be easy to follow what I did... but if you don't understand what I did, feel free to ask here.

All 3 setups are very similar, and uses just 3 events:
Event 1 - particles falling and traveling on belt
Event 2 - particles are triggered, they brake to smaller, and fall to the floor, they stay some short time, and go into the next event.
Event 3 - particles are animated scaled down in 30 frames, and then they are deleted.

When you open file, a PhysX version is turned on. After you finish examining it, you can turn it of, and then turn on next Particle System.

Hope it helps.


Attached Files
.max   Conveyor belt particles.max (Size: 940 KB / Downloads: 46)
  Reply
#6
Thanks,

These were very useful tricks.
  Reply
#7
I made overnight simulation for 5 500 frames. It still explodes all over leaving only small fraction of particles to conveyor.

Should I bind the particles onto conveyor?


Attached Files Thumbnail(s)
   
  Reply
#8
Try not using PhysX Collision.
Look at my example, and what I did with conveyor in PhysX.
I basically separated it in another event where I build like PhysX Kinematic animated object, and it worked...

Either that... Or... avoid using PhysX for this... just use Particle Physics (if radial particles collisions are enough), and just use regular collision operator.
Again.. version of setup like that is also in my file.
  Reply
#9
Thanks for your feedback. I'm now following that approach. I'll se later if it's better. It's already looking very promising.

However, there's one thing, I would like to change. The particles in this simulation are narrow and long having ratio of 1/10. It would look better, if the particles would fall the long side being horizontal. The particles are purged to conveyor in random orientation.


Attached Files Thumbnail(s)
   
  Reply
#10
Switch in rotation operator from random 3D to World Space.
Then play with numbers in X,Y,Z parameters.
  Reply
#11
So, after overnight simulation, the situation is this. Particles behave the horizontal part correctly, but do not advance when the conveyor starts climbing. Any should I try the  object bind operator?

   

Here's frame 4 999. At frame 5 000 simulation explodes all over. We see, that particles do not advance for 3 000 or so frames.

   
  Reply
#12
You can try setting friction to collision operator to 100%.
But if that doesn't work... yes... you can try object bind.

Since collision operator is a test operator (meaning,,, you can send particles to new event), you can connect collision operator to new event where you will have object bind operator (set to surface)
  Reply
#13
Thanks,

I will try that  next. Here's a a result where I have marked where the conveyor belt has advanced. The particles are not even half way there. Friction has been set to 100% everywhere I found.


Attached Files Thumbnail(s)
   
  Reply
#14
If you want, you can send me the scene so I try it ( I am on max 24).

Anyway, in your place I would disable particle physics (for now), and all other events that are not important at this point.. like the one with voronoi... and I would perhaps even made lower particle count.
That way simulation should run much much faster... and then you can focus on making sure they are climbing up the ramp... after you solve that, you can turn on particles physics, and other operators.

Also, I think I saw in some earlier screenshots that belt is made of many objects...
Maybe it would be a good idea to just make simple belt (like I did in my sample (just a line, and path follow on box), and use that for particles (and make it non renderable).
That way, not only you are making particles calculate less, but it will be easier for you to control, because you are handling just one object, not many objects.
  Reply
#15
Thanks,

Here's the latest test with object bind. I've never used that so I don't know if it's correct. Anyway it's been sent to new event (with object bind) when it touches the conveyor belt.

I cannot share any Max files - only screenshots are allowed.

Sorry,

I forgot the display operators. It seems to be working now. I'll let this run to the end.


Attached Files Thumbnail(s)
       
  Reply
#16
I'm starting to get some results.

There is two things, I need to fix for next simulation

  1. Particles on the conveyor are penetrating each others, so I guess I need to add particle physics operator.
  2. I modeled this thing based on 2D-drawings. There is a chute under the conveyor end. However particles are not flying long enough to hit the chute. Instead they are falling between the chute and conveyor. I'm thinking to build invisible chute to gap. However more realistic would be if the particles had inertial energy enough to land into the chute. Do I need particle physics to third event as well to do that?

   
  Reply
#17
Try turning "verlet" in object bind operator.
This is option so they inherit velocity after they are "released".

If that don't work, you can add simple speed operator in that third event (when they are released from object bind), and just set X or Y speed.. or you can create TyIcon, and use along icon arrow speed, and just set strength of speed to your likings.
------------------------

As for penetrating particles... for this kind of particles it might be better for you to use PhysX (but it will be slower to sim)
Particle Physics can only collide in spherical manner... also object bind might lock them before they repel of each other (it can look even PhysX particles).

It's hard to tell what's best to do here, without trying myself couple of options in that scene.

This is why I avoided object bind in my test (so I don't lock my particles), and solved physX conveyor belt in some other way.
  Reply
#18
" also object bind might lock them before they repel of each other (it can look even PhysX particles)."

I think this is the reason. I have used conveyor belt collision operator to send particles into bind particles event. So they are locked on that very moment and don't pile up. I think I might ad "Pile-up" event between first and two events.
  Reply
#19
I'm getting some promising results in my project. However, there's one more thing, I need to do. I should separate certain impurities to side stream which is taken away from the main stream. What would be the procedure to mark those particles on birth? So I would be sending good and bad particles, the bad particles being taken out during the process.
  Reply
#20
You can try using split operator, and then lead "dead" particles to new event, and do in that event whatever you want (delete them, ot make them travel elsewhere)
Propery Test operator is also great, because you can separate particles by their speed, by size, by matID... etc...
Finally,. you can use object test operator, so you can separate particles by distance or volume of some mesh.
  Reply
#21
Thanks,

Before, I get there, I need to solve this. I don't understand, how the Property test operator is supposed to operate? I mean particles start entering to Event 003 at frame 830 from birth (-550). The should be deleted after 700-900 frames in that event so the deletion should start at frame 150. However they area all there at frame 3 000.

What I'm doing wrong here?


Attached Files Thumbnail(s)
   
  Reply
#22

Well, to be honest, I've never used this "test action" stuff in TyFlow operators.
I just leave "send out" and I connect it to another event where I just have delete operator.

And I never use "property test" for time testing... for that.. I just use time test (again, send out to new event where I place delete operator).
Or you can simply use delete operator go up to the timing rollout and set values.

I don't see you did anything wrong here... and your calculation seems right... but I repeat.. I never tried to delete particles this way, by using "test action" stuff in operator.
Maybe that is for something else? I really don't know.

EDIT:
Actually.. on the second look... your calculations doesn't seems right.
Yes, you birth particles at -550, but you also have them waiting (until object test, and surface test) triggers them, so you need to add that time in calculations too.

In this case, it's much easier that you use "frame" option, instead of "event" option, in timing rollout... because with frame, you can just specify frame range with variations, without needing to do much calculations.
  Reply
#23
Thanks,

My idea was, that since this is the event, where the particles are turning into liquid, they will disappear after spending specified time in the liquid. That's why I decided to try event based deleting.

On the other hand, the side stream flows through the system without turning into liquid, so I need to separate those particles to another event.
  Reply
#24
So, how does the Split operator work? Do I need two birth events where I should mark the particles to be extracted from the main flow?


Attached Files Thumbnail(s)
   
  Reply
#25
(12-04-2024, 01:06 PM)JuhaHo Wrote: So, how does the Split operator work? Do I need two birth events where I should mark the particles to be extracted from the main flow?

No, you don't need 2 birth events
Split will just split (by percentage) of particles that are in event where split operator is. 

For example, I see that you placed split operator in 3th event. So it will split only particles that are in 3th event. 

If you want them to split before, or right at the very beginning (if I understood you correctly, that is what you want), you just need to move that split operator to the first event. 
Right after birth object operator (and perhaps, position icon), right bellow these 2, you can place split operator, and they will be splitted. 
Half (or whatever percent you type) will go to event where split is leading them. 
the rest will stay, and will look at the next operator, and will proceed normally. 

I hope I explained well... English is not my first language.  Smile
  Reply


Forum Jump: