Creating a Recirculating Conveyor

Hey everyone,

Working on a project to parametrize a custom conveyor, will need to simulate an “over/under” or recirculating feature. Plan of attack is to establish the frames along the conveyor as needed, and to use the conveyor wizard to stitch together a path from the frames. Top and bottom are linear straight runs, ends are 180 degree turns and circular. Image provided below.

Issue I’m running into is manipulating the frames once they’re created. Can get the frames to show up, but I can’t get them to move into the positions I want without manually changing their positions in the feature properties. Would like this to be accomplished programmatically so I can account for parameter changes on this specific conveyor.

Tried manipulating both PositionMatrix and NodePositionMatrix for my feature object, still can’t manage to get the frames to move position from the component origin.

Any thoughts?

from vcScript import *
import vcVector
import vcMatrix

#Create Parameters
conv = getComponent()
feats = conv.getFeature("Root")
numPallets = conv.createProperty(VC_INTEGER, "numPallets", VC_PROPERTY_DEFAULT)
numPallets.Value = 120
numPalletsTop = conv.createProperty(VC_INTEGER, "numPalletsTop", VC_PROPERTY_DEFAULT)
numPalletsTop.Value = numPallets.Value / 2
numPalletsBtm = conv.createProperty(VC_INTEGER, "numPalletsBtm", VC_PROPERTY_DEFAULT)
numPalletsBtm.Value = numPallets.Value / 2

#Create Statics
xoff = 0
yoff = 90.9
yiter = 203.2
zoff_top = 128.2

#Loop create Frames, top
for nn in range(1,numPalletsTop.Value + 1):
convFrame = feats.createFeature(VC_FRAME,"ConvFrame"+str(nn))
mtx = vcMatrix.new()
mtx.translateRel(xoff, yoff + yiter*(nn-1), zoff_top)
convFrame.FramePositionMatrix = mtx

Hi andrewcking,

after creating or modifying a feature in a component, just call comp.rebuild() to refresh the feature tree and notify the sim about the change.

So, in your case add in the end:

conv.rebuild()

 

P.S if modifying a node (link) call comp.update() to refresh the node tree.