I am trying to unify the logic of many conveyors of my simulation that do the exact same thing, so instead of having e.g. 100 conveyors, each one with its own script, I have the logic gathered in one script only. To do so, I suppose I have to get each of the conveyors with a for loop, and same thing for the properties/behaviours of each component.
However, I’m still quite new to VC python programming so I don’t know how to write it.
I was trying something like this:
from vcScript import *
import vcMatrix
app = getApplication()
sim = app.Simulation
comp=getComponent()
for i in range(100):
blocks[i]=app.findComponent(‘Conveyor’)
paths[i]=blocks.findBehaviour(‘PhysicsPath’)
props[i]=comp.getProperty(‘Physics::Physics Type’)
sensorSignals[i]=blocks[i].findBehaviour(’'BooleanSignal")
Thanks for your answer, I see how that would work. Now then, to access properties and behaviours of each of those components how could I do? For example, for the path behaviour of each component: paths[i]=blocks.findBehaviour(‘PhysicsPath’)
No need to find out every behavior or property for all component, because they are all conveyor, simply findbehavior(sameBehaviorName) or getProperty(samePropertyName)
But I do need to be stop or activate the path of a specific conveyor when the corresponding signal triggers. Therefore, I should find the behaviours and properties right?
Yeah I guess that’s simpler. I did it that way but since there are many conveyors and I’m simulating with physics, the performance is downgraded a lot. That’s why I thought that maybe by having the logic in one script instead of 200, the performance would improve.
Thanks for your offering @idkfa but I’m afraid I’m not allowed to upload anything. I’m certain that the performance is due to various factors like using physics, a heavy CAD model (+5M triangles), these scripts…