Community Tip - Have a PTC product question you need answered fast? Chances are someone has asked it before. Learn about the community search. X
Hello,
I have a question regarding assembly family tables.
Lets say I have an assembly with three parts, A, B and C. A and B are assembled at a certain distance from each other and C connects parts A and B, and has a variable length.
Now I create an assembly family table where I create multiple instances of the assembly by varying the distance between A and B, the result should be that in each assembly instance part C has a different length. This is ofcourse only possible by creating an instance of C for every instance of the assembly.
Now my question is, is it possible to have Creo create an instance of the part C automaticaly each time I create a new instance at the assembly level?
Or is the only way to achieve this, creating a family table at the part level, and replace part C in each assembly instance by the correct part instance?
Thanks
Jonathan
Solved! Go to Solution.
You hit a painful family table case. There is surely a way to create correct instance of C for each top assembly instance - sinc in each case C should have different length, which means it should actually be a separate business object.
I assume C has kind of extrudes UpTo A and B, does it.
So here we go - several steps, get patience 🙂
1, IN assembly family table you have say 2 instances INST1 and INST2, with different A / B dims.
2. Select INST1 row. Tools / Configure Assembly Components. You get a table that will mark C as a component that needs to be replaced by an instance (it will be created on fly) that will adjust to instance of assembly. C.PRT will have "?" next to it.
3. Now select C.PRT in the UI and RMB / Update References. CReo will suggest to create C_RF.PRT instance for C that will match to INST1. Name could be adjusted in UI beforehand. Confirm / OK - see how your INST1 now looks like. CReo automatically created C_RF.INST and replaced C by C_RF in INST1 in table.
4. If you have more components that have external references in top assembly contect you may use option ""All Unapdeted References". Multiple components will be treated at one hit.
Let me know if you manage it through. These are quite a few steps, but this is a nice automation after all. If you manage it you join exclusive club 🙂 - very few use this option as it is quite burried deep ...
Regards
- Vlad
Instead of manually creating an instance of C, you could flex C (by measured distance between A & B). This will essentially create an instance of C on the fly, behind the scenes.
This would indeed create a correct part on the fly, but the different parts for the different assembly instances would not be retrievable on its own, to create a drawing for example.
Thanks
Jonathan
True. You could cheat and use an assembly level drawing of part C. This way it would 'look' correct. Of course if it needs a unique part number and a unique part drawing, then you really have no option other than creating a new instance of C.
You hit a painful family table case. There is surely a way to create correct instance of C for each top assembly instance - sinc in each case C should have different length, which means it should actually be a separate business object.
I assume C has kind of extrudes UpTo A and B, does it.
So here we go - several steps, get patience 🙂
1, IN assembly family table you have say 2 instances INST1 and INST2, with different A / B dims.
2. Select INST1 row. Tools / Configure Assembly Components. You get a table that will mark C as a component that needs to be replaced by an instance (it will be created on fly) that will adjust to instance of assembly. C.PRT will have "?" next to it.
3. Now select C.PRT in the UI and RMB / Update References. CReo will suggest to create C_RF.PRT instance for C that will match to INST1. Name could be adjusted in UI beforehand. Confirm / OK - see how your INST1 now looks like. CReo automatically created C_RF.INST and replaced C by C_RF in INST1 in table.
4. If you have more components that have external references in top assembly contect you may use option ""All Unapdeted References". Multiple components will be treated at one hit.
Let me know if you manage it through. These are quite a few steps, but this is a nice automation after all. If you manage it you join exclusive club 🙂 - very few use this option as it is quite burried deep ...
Regards
- Vlad
Thanks Vladimir for the helpfull answer, the solution you mentioned works great, except for a small flaw/bug in Creo.
When I go to the "Configure Assembly components" menu the first time, it puts a question mark next to C.prt and indeed creates a new instance on the fly for component C, and creates a family table at the part level of component C. (very nice functionality)
But then when I create a new instance of the family table at the assembly level, and I go again to the "Configure Assembly components" menu, it puts a question mark next to C, but when I click update references, Creo tells me it can not make a new instance for component C, because it appears in the family table as a "YES/NO" option.
I know that when you add a component to an assembly family table you have tree options, YES, NO, or to use an instance of this component. But Creo doesn't get this, it thinks YES/NO is the only option.
The trick I use now, is to fill in an already existing instance of C (EG.the generic part) in the family table, then go to the "Configure Assembly components" menu and update all references, now Creo proposes a new instance for C.
So it seems to work fine, but you need a little user intervention every time you want to create a new instance.
Thanks,
Jonathan