I need more control over in which order assembly parts are picked/placed

Is there a way to access/use the slot order index more directly? Like for instance, say: From ‘step A’, I only want the part at slot 3?

Another option I’m looking for, is a method to reverse the default pick order. I’ve noticed that when assembling parts, VC starts picking parts from the slot with the lowest index number. While disassembling, it starts with the highest. This makes perfect sense in most cases, but not all.

I have an assembly (a cart with parts), whose parts needs to be picked and checked at certain points, one at a time. They are to be placed back at the exact same spot before the inspector can pick the next part.

In this case, VC would correctly pick the part from slot 1 first, but place it back on slot 5 (even when that slot is still occupied by another part). I managed getting around this by creating a new step, a dummy step, with reversed order index, and return the parts to dummy step instead.


That worked out fine for one node, but not with several nodes in a row. Because at the next node, the inspector will have to pick from the dummy step (where all the parts are now), and return them to the original step. But here the index order is reversed, and so the pick and place order of everything is also reversed. I don’t want that. I need the pick and place order to always be the same.


This feature would be nice to have:

A simple toggle in the process statement for instance, that could reverse the pick or place order…

TrayInspector v7.vcmx (180.5 KB)

Hey @kreaturen, You reverse the order in disassembly using Inverse list, under Assembly Instance

With other 2 situations, I’m not much help as i am fairly new to this
hope i was some help to you

1 Like

Omg, I’m so completely blind, how have I missed that?!

[Embarrassingly crawls back to the hole I came from…]

But thank you :sweat_smile:

1 Like

I have only used this method to disassembly, however, in theory it could work for assembly as well

Puh… Turns out I wasn’t completely blind, after all… (But also “Nooo! I want to be blind” :sob:)

That handy little feature isn’t available for some reason when setting the AssemblyDataSource as ‘Assembly Product Type’ and not ‘Assembly Instance’.

Reason I’m setting it up this way, is because my tray of objects have many steps, and I need to specify exactly which step I want the process to work on. Here I’ve chosen the ‘RodStep’ which is somewhere in the “middle” of the step hierarchy. If I chose ‘Assembly Instance’ instead, I’d loose that ability.

It really frustrating that they have omitted ‘InverseList’ from one of these options, when they have the feature (Why?!). It’s like I’m forced to chose one level of control for another, and I can’t do that. I need both :crazy_face:

Ahh I see, it is slightly annoying in that case. Not sure if this is any help but have inversed the order yourself? In the assembly change the index numbers? long method that may or may not be of use
(Sorry if I’m not much help)

Not sure if this is any help but have inversed the order yourself? In the assembly change the index numbers? long method that may or may not be of use
(Sorry if I’m not much help)

No no, I appreciate any input :slight_smile:
(Also knowing that ‘InverseList’ exists in other situations, is very useful information for later)

But yeah, that is basically what I’ve been doing for now. Having parallel step “doubles” with inversed index order, that I have manually set (And yes, a very tedious process :joy:). But as I mentioned in the OP, that only works well for one node, not several nodes in a row. Because the visual pick order of parts keeps alternating between from ‘Front to Back’ to ‘Back to Front’ and ‘Front to Back’ again, every other node. That would be fine, if the pick order didn’t actually matter, but in this case it kinda does.

Maybe one of the gurus knows a trick :wink:

1 Like

The InverseList is associated with the ReturnAsList option, which in turn only makes sense if you have an actual assembly product instance as the produced list contains product instances. From the assembly product type you can only get the info about the steps and slots, but not associated to any specific product instances.

This reversing order stuff is not really a proper solution for the “pick and place into same place”, which would be better solved leaving the slot reserved for the specific product instance, but unfortunately I think there isn’t currently a way to do that either even with scripting.

There is some expression API for assembly steps and slots, but that probably isn’t useful unless you could re-assign the slot indices or something wild like that.

Oh, that’s to bad…

I don’t fully understand your answer though. Probably because I’m not familiar with lists, and what to use them for…

What I was most unsure about is what is meant by ‘instance’ here, as in “assembly product instance”. How come choosing ‘Assembly Product Type’ mean that the assembly suddenly doesn’t contain “product instances” anymore? You get one assembly (with or without all parts) passing through either way, so I find that particular difference difficult to grasp… I thought that all I had done was to specify exactly which assembly it is, otherwise an assembly ought be the same as any other assembly right? (At least, that’s what I thought, until now)

Perhaps, but it couldn’t hurt to have more options right. Maybe it’s not the best approach in this case (or any case), but we have slots, and they have index numbers. Why not (in the future) have more possibilities to use them for fun interesting things. There could only be upsides to having more access to them via process statements. Like say, “I want you to remove the part on slot 3”, “I want you to skip 2 and 4”, “I want you to pick parts backwards on this step”… So many possibilities.

You mean like having one unique part per slot? Like if I had 5 slots, and wanted to fill them with 5 cylinders that each had their own designated slot; then I’d need 5 uniquely named cylinders in the parts list? Having ‘cylinder1’, ‘cylinder2’, … , ‘cylinder5’, and marry these five cylinders (who all look the same) with slot 1 to 5 respectively? That could possibly work :thinking:… Only problem is, I’d need 41 unique parts for the real thing then. Which will be kinda crazy :crazy_face:

I’ve been looking into those things as well, but waaay too far out for me (for the time being) :rofl: