Community Tip - When posting, your subject should be specific and summarize your question. Here are some additional tips on asking a great question. X
To make a Family of an Assembly, I set up a Family Table Assembly. In this assembly, most parts are used just as they are. This reprents no issues. Some parts are not used in one instance and are used the another instance. This too represents no issues. The Family Table of the Assembly presents a "Y" for one instance and a "N" for the other and this works fine.
One part in the Assy FT Generic is a FT part itself. In the Assy FT Generic the Part FT Generic is called. Again, so far, no problem.
In the Assy FT table, one Generic and two instances are defined. The Assy Generic calls the Part Generic. Instance 1 of the Assy FT calls part instance 1 of the Part FT and, you've guessed it, Instance 2 of the Assy FT calls part instance 2 of the Part FT Verfiying only brings angel songs and praise upon the creator (that would be me)
However, when opening the Assy FT instance 1, not instance 1 of the Part FT is loaded but the generic of the Part FT...... and the same for Assy FT instance 2... in this, Part FT Generic is loaded instead of Instance 1 of the Part FT.
So:
What is called and should:happen:
Assy FT Generic: Assy FT Inst.1 Assy FT Inst 2
Part 1 Part 1 Part 1
Part 2 Part 2 Part 2
Part 3 Part 3 Part 3
Part 4 Part 4 -
Part 5 Part 5 Part 5
Part 6 FT Generic Part 6 FT Inst.1 Part 6 FT Inst.2
What actualy happens
Assy FT Generic: Assy FT Inst.1 Assy FT Inst 2
Part 1 Part 1 Part 1
Part 2 Part 2 Part 2
Part 3 Part 3 Part 3
Part 4 Part 4 -
Part 5 Part 5 Part 5
Part 6 FT Generic Part 6 FT Generic Part 6 FT Generic
I have tried all kinds of different methods of including the instances in the FT both for the part as for the assy, but to no avail.I checked on possible variables within Creo (as in config.pro settings), but to no avail as well....
Can anyone provide me a clue as where I might be going wrong......
(CREO 8.0.8.0)
Did you try to specify the name of an instance using the full path family_table_instance_name<generic_name>.PRT
like
BOLT-M10<BOLT>.PRT
Extension, I’m not sure, but may required.
Dear RPN,
Thank you ever so much for your input. Appreciated !!!
The solution you prevent is not allowed by CREO (8.0.8.0 btw) in the Family Table Dialog Box. I did the input of the instance manually:
INSTANCE1
INSTANCE1.PRT
INSTANCE1<GENERIC>.PRT
The first and second inputs are allowed by Creo and provide no different result from eachother (both fail to place INSTANCE.PRT but do place GENERIC.PRT of the Part FT)
The third, as you provide in your feedback, is not allowed to be entered by Creo, returning the Error dialog box:
"You have either entered an invalid text string or a numberic velue for this cell. Please return to the cell and enter the date appopriately for the current column" <OK>
In the Family Table dialog box, I also used the "TOOLS>REPLACE USING>FAMILY MEMBER...". menu option. Choosing this, the Family Tree dialog box pops up and lets you choose the generic or appropriate instance. Of course I choose the correct instance for that Instance of the FT Assy. Creo inputs the name
NOT as "instance1.prt",
NOT as "instance1<generic>.prt"
but as "instance1"
Then saving the generic of the Assy with the FT, and opening it again, still the generic of the part is inserted into the assembly instead of the chosen instance of that FT part.
Of course, I tried the option in which I cleared the memory after saving the Assy FT and then reloading it, choosing the correct instance of the Assy FT. Still the GENERIC of the PartFT is loaded. Not the called instance.....
Only to be sure, you have through all tables unique names. For example you don’t have
bolt-m10<bolt>
bolt-m10<chrombolt>
Can you share images of the Tabled?
Hi there RPN!
Please find the pictures of the tables, definitions and model trees.
This is the PartFT_generic - Family Table definition:
Generic: DAJ974_01.PRT
Instance1: 4PV880_01.PRT
Instance2: 4NQ966_01.PRT
This is the AssyFT_generic - Family Table Definition:
AssyFT_generic: DAJ974.ASM
AssyFT_instance1: 4PV880.ASM
AssyFT_instance2: 4NQ966.ASM
This is the model tree of AssyFT_generic:
Generic name: DAJ974.ASM
loaded PartFT file: DAJ974_01.PRT (the PartFT_generic)
Intended file: DAJ974_01.PRT (so the correct one is loaded)
Here you see the model tree of AssyFT_instance1:
Instance name: 4PV880.ASM (AssyFT_instance1)
loaded PartFT file: DAJ974_01.PRT (this is the PartFT_generic)
Intended file: 4PV880_01.PRT (so the INcorrect one is loaded... PartFT_instance1 SHOULD have been loaded....)
And finally, here you see the model tree of AssyFT_instance2:
Instance name: 4NQ966.ASM (AssyFT_instance2)
loaded PartFT file: DAJ974_01.PRT (this is the PartFT_generic)
Intended file: 4NQ966_01.PRT (so the INcorrect one is loaded... PartFT_instance2 SHOULD have been loaded....)
Few more straws:
1) Are you using Windchill? If not, maybe delete the .xpr and .xas files in your working directory and retry?
2) I see welded edge prep feature. Is this referencing the troublesome FT part 6 in some way?
Hee Martin!
1. Yes, we use Windchill here.
2. I removed the edge preperations but it did not present any result
(again thanks for all the effort !!!!!!)
If you look at the messages that are generated when you open one of the non-generic instances of your assembly, you'll probably see error messages telling you that it can't find whatever you put in the Part 6 column for that instance, and that it's using the generic.
I have used this type of structure a lot in the past and the "trick" is instead of "Y" or "N" in the column of the family table you put the name of the instance you want to use. Just the instance name, nothing about the generic.
Let's say I have a part called mypart.prt, which has two family table instances, mypart-small and mypart-large. To use one or the other of the instances in an assembly, instead of Y or N in the column I'd put mypart-small or mypart-large.
Hi there Ken!
Thanks for the response, very much appeciated!!
There are no error messages when opening the
- AssyFT-Generic,
- AssyFT-Instance1
- AssyFT-Instance2
- PartFT-generic
- PartFT-Instance1
- PartFT-Instance2
All verifications provide "Success"
There are no error messages when regenerating, saving or opening any of the files mentioned above.
I have both manually entered the instances using "INSTANCE1.PRT" and "INSTANCE1" which both did not present error at the moment of entering it in the Family Table menu. Entering "INSTANCE1<GENERIC>.PRT" (as it shows in the Model tree) is not allowed at all (tried that after being asked to in a former answer on my post).
I did the FT cell input through the menu option "TOOLS > REPLACE USING > FAMILY MEMBER .,," which makes the Family Tree menu pop up and lets you choose the instance you want to use. Creo fills in the cell itself (and does it in the format "INSTANCE1")
I have been acquainted with this AssyFT buildup (worked from Pro/Engineer 2000) and it has never failed me on this. If FT's failed me I could always trace the error I did myself. Hope we can find my error here as well.... ..
Here's a previous discussion that might help:
Thanks Ken,
No, I did find this one on my internet Search too, but that does not provide an answer. So thanks, but unfortunately, it aint the solution.... 😞
Did you try to close all parts and assemblies an then Erase memory?
Then open again and see what happens... sometimes family tables have something wrong in RAM and that is the problem...
Hi ther Trebla,
You too, many thanks!!!!!
Yes.. closed all files, purged memory and reopened. No solution. Closed Creo, restarted Creo, reopened the files, no solution. Even closed the computer, restarted it.. no result
ok MV,
I would try another thing, remove the extensions in this family table and then 'Verify instances of the family'...
Hi there Trebla!
Did that (for the third time already 🙂 ) and still no result.....
I agree with Ken's post.
Make sure all the constraints are in the assembly of the individual components because if they are not, the software doesn't know how to place the instance. Usually the part will show in the assembly, but with a constraint error.
Double/Triple check spelling. If you tell it to look for something and spelled it wrong it is looking for the wrong component. Instances will not show in the assembly since there are no parts with those names.
I try not to make the generic part one of the instance used in the assembly above (just my practice). It just defines everything that is used in the instances.
Hi there Dale!
Thanks to you as well, very much appreciated.
The constraint on the placement of the PartFT_Generic in the AssyFT_Generic is the only Coordiante System in both the AssyFT-model as in the PartFT-model.Both these CSYS-s are not touched and available in both of the instances of the AssyFT as both of the instances of the PartFT as well as in both their generics. The CSYS of AssyFT and PartFT are from the template we use, for assy and part and form the 4th feature after the three base datum planes..
I've even cleared out the complete family table from the AssyFT_Generic, making it a "normal" assy, saving it, closing Creo, opening Creo again, reopening the Assembly and recreating the Family table again. To prevent mistyping, I used the "TOOLS > REPLACE USING > FAMILY MEMEBER ,,," option in the Family Table Menu.
This presents the available instances within the PartFT_Generic file. So only mouse clicking, no typing at all, no possible mistake in the naming or the use of ",PRT" or not.... Creo aranges and I merely click. But same faulty AssyFT_instance1 and AssyFT_instance2 come from a seemingly correct AssyFT_generic....: The PartFT_generic is included in the AssyFT_Generic and its two instances. The PartFT_instances are not in the AssyFT_instances......
Totaly agree, NEVER use the generic as an instance.... as I have not done here in this situation as well, I have made those mistakes some 25-odd years ago and never did that since. 🙂
Ken's effort is appreciated though is not the solution unfortunately....
Just a thought, but try a new assembly, not a family table, and see if you can assemble Part #6 Instance 1 into the Generic Assembly directly without an error. (Pulling at straws here, but maybe something else is causing the error.)
Hi there Dale!
I understand and apreciate! Straws here were gone and that is why I am trying straws-of-others 😉
The PartFT_instance1 and PartFT_instance2 are perfectly placeable in a "normal" assy. What I can even inform you about what I have tried as well:
When I open AssyFT_instance1, the PartFT_generic is found (though not called in the FT of the assy). When I do is:
- take AssyFT_instance1
- Select PartFT_generic
- Via: OPERATIONS > REPLACE > FAMILY TABLE and select the PartFT_instance1 to replace PartFT_generic
- This replaces PartFT_generic for PartFT_instance1 in AssyFT_instance1
Now the AssyFT_instance1 does have the PartFT_instance1 assembled in the file. However, opening the AssyFT_Generic or AssyFT_instance2 file, those now too contains the PartFT_instance1. instead of their designated generic / instance in the Family Table menu.
It looks like PartFT_generic and its instances are not allowed to follow FT rules of Creo.....
Hi there Martin! Thanks for the response,
As suspected, your models work perfect. No issues at all. Other FTs here work fine too.. that is why it is kinda frustrating for me....
@MV_10003361 wrote:
Hi there Martin! Thanks for the response,
As suspected, your models work perfect. No issues at all. Other FTs here work fine too.. that is why it is kinda frustrating for me....
Hi,
OK ... so this means that the problem is data dependent. If you upload your files then you will enable others to investigate them. If you cannot upload your files then ... it is up to you.
@MV_10003361 wrote:
Hi there Martin,
Please do have a go at it...
Hi,
I am not able to tell you what is causing the problem. After some investigation I realized that your assembly is very complicated because of big amount of references between its components.
If you open my test assembly asm0001.asm you will see that part instances are opened correctly. This means that the problem is hidden somewhere inside assembly. Maybe references to daj974_skel.prt are the root of the problem.
My suggestion: Start from scratch. I'm not sure if it makes sense to repair an existing assembly.
Note following warnings during open action.
Hi there Martin!
Thank you for the effort. from the start I was afraid of it. Always wondering: Should I start again or should i continue trying to repair. What is the point you say: enough is enough.
I must admit, I am always sad that, what seems to be basic functionality, which I have perdormed throughout my 25 years of PTC usage. all of a sudden does not work...