Continue to Site

Welcome to MCAD Central

Join our MCAD Central community forums, the largest resource for MCAD (Mechanical Computer-Aided Design) professionals, including files, forums, jobs, articles, calendar, and more.

Nested family tables

archibald

New member
Hey,

I've been struggling with this problem for a while now, so I finally decided to ask here on MCAD for help. I'm currently using PTC Creo 3.0 M070 (Student Edition).

What I want to achieve should be rather simple: I have to model two variants of a device (assembly with subassemblies), where these two variants are mostly the same but have one or two different parts and are cut differently. What's more is that each of these variants (let's call them 1 and 2) themselves consist of two more variants (I'll name them A and B here). This results in something like this:

Variant 1:
- Subvariant 1A
- Subvariant 1B
Variant 2:
- Subvariant 2A
- Subvariant 2B

As you've most probably already noticed, I'd like to do this using nested family tables. After playing for some time with this feature, it turned out that this can become quite complicated and rather tricky.

Below is my current setup (model tree left, toplevel family table right). Please note that the component names TS-UT-1, TS-UT-2, TS-OT-1 and TS-OT-2 reference to variants of the subassemblies TS-UNTERTEIL and TS-OBERTEIL.

3.jpg

So far, so good. This way, the 1-Variant of TESTSTATION (TS-1) gets only 1-Variants of the subassemblies, while the same goes for TS-2. The model tree looks like this if i open TS-1:

4.PNG

The problem occurs on the next level, when I create a family table within TS-1 (to enable the subvariants TS-1-A and TS-1-B). Here I would like to do the same as I did in the toplevel family table: insert a a component and select a variant depending on the variant of the parent.

Sadly this doesn't work and Creo gives me the message "In Elterntabelle dieses Objekts vorhandener Parameter ist nicht hinzufügbar" which roughly translates to "Parameter present in parent table of this object is not addable".

The funny thing, however, is that I've already been able to do so (once, but only once) and I can't find out how I did it that way...

1.jpg
2.jpg

I know I'm terrible at explaining this, but hopefully I've given you enough insight into my problem so you may be able to help me. I also don't know if it is necessary to use nested family tables at all, but so far it's the only thing that promises to avoid duplication of work in the different variants.

Thanks in advance! (Please have mercy on me if I did something wrong with my post, it's my first one here. Also, excuse my not-so-perfect english since it's not my mother tongue)
 
I abhor nested family tables. It becomes nearly impossible to effectively manage. I do make extensive use of family tables in assemblies though. At each assembly level you can have family tables and it is quite simple to swap instances out.
 
Well, since no one has replied yet, I'll try to simplify my problem...


Assume I have an assembly containing a single part:

parent.asm
- child.prt


The child part has a nested family table:

CHILD
CHILD-1
- CHILD-1-A
- CHILD-1-B


The parent assembly also has a family table which is not nested (for now):

PARENT
PARENT-1

This family table is configured so that PARENT contains CHILD and PARENT-1 contains CHILD-1. This works fine, of course.


But when I attempt to create a nested family table in the parent assembly like this:

PARENT
PARENT-1
- PARENT-1-A
- PARENT-1-B

I'm not able to select the child.prt component as subject of the family table in PARENT-1. Obviously I want PARENT-1-A to contain CHILD-1-A and PARENT-1-B to contain CHILD-1-B.


The reason I'm doing this is because I have to make assembly cuts in PARENT-1 that affect both PARENT-1-A and PARENT-1-B, and cuts in PARENT-2 that affect both PARENT-2-A and PARENT-2-B (but not PARENT-1), and so on. Otherwise I would have to duplicate features for the A and B variants which would be hard to maintain in case of changes because these cuts have to be exactly the same in both variants.

Are there any solutions, workarounds or alternative approaches? Thanks!
 
Thanks for your reply, even though it doesn't help me solve my problem... Could you recommend any alternative methods to do what I need?
 
If I understand you correctly, this

PARENT
PARENT-1
- PARENT-1-A
- PARENT-1-B

is a parent with its self as a child, if so, you cannot do that. It cannot be both the parent and the child.
 
If I understand you correctly, this

PARENT
PARENT-1
- PARENT-1-A
- PARENT-1-B

is a parent with its self as a child, if so, you cannot do that. It cannot be both the parent and the child.

I think it's not a child of itself, but a variant (which is perfectly safe). Please note that variant identifiers of family tables are written in all upper-case (as above), and members of a model tree in lower-case. Having multiple variants of a part where each variant itself has its variants is not the problem, as I'm able to do so and since this is the point of creating a nested family table.

The problem is that the child PART can only be selected in the first level of the family table, not in the second (in the nested one):

parent.asm (generic parent with generic child, does work)
- child.prt

parent-1<parent>.asm (first level variants of parent and child, does work)
- child-1<child>.prt

parent-1-a<parent-1>.asm (second level variants of parent and child, does not work)
- child-1-a<child-1>.prt

parent-1-b<parent-1>.asm (second level variant of parent and child, does not work)
- child-1-b<child-1>.prt

As configured in the first level of the family table, PARENT-1 contains the first level variant of CHILD, that is, CHILD-1. Therefore all sub-levels also contain CHILD-1 by default, which is the generic version of the first level variant of CHILD and has the nested CHILD-1-A and CHILD-1-B variants.

What makes my head ache is that these CHILD-1-A and CHILD-1-B variants cannot be configured to be within the PARENT-1-A and PARENT-1-B variants, even though CHILD-1 is generic and specifies another family table. Having said that, the assembled part on the second level could also look like this:

child-1-a<child-1<child>>.prt

Hope I got it across this time... Thanks for your replies so far!
 

Sponsor

Articles From 3DCAD World

Back
Top