cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

ProENGINEER WF4 - Control flexibility on higher level

hvandenbroek
1-Newbie

ProENGINEER WF4 - Control flexibility on higher level

Fellow ProENGINEER/CREO users,

I have the following issue:

I'm trying to create an assembly which can be controlled trough an Excel file. I allready have all variations defined with flexible components which are on their turn controlled trough an parameter in combination with Pro/PROGRAM.

Now everything works fine when modifying the flexibility manually i.e. EDIT DEFINITION-->FLEXIBILITY-->PARAMETERS-->YES/NO.

However I want these parameters to be linked to a parameter(s) which are located in the assembly where these flexible components are placed in, I just don't seem to find out how.

Also, question 2:

"What do ''Assoc. Param'' (Associative Parameters?) do?

EXAMPLE.jpg

Thanks in Advance,

With kind regards,

Hein


This thread is inactive and closed by the PTC Community Management Team. If you would like to provide a reply and re-open this thread, please notify the moderator and reference the thread. You may also use "Start a topic" button to ask a new question. Please be sure to include what version of the PTC product you are using so another community member knowledgeable about your version may be able to assist.
1 ACCEPTED SOLUTION

Accepted Solutions
vzak
6-Contributor
(To:hvandenbroek)

Hein,

What you need is to create component level parameters out of your flexible items. Then you can drive them by a regular assembly relations.

To create associative parameter in flexible component you still need to Redefine flexible component (once), add one more column in the Varied Items table : Associated Parameters. For the var items you want to drive from assembly just add meaningful names to that column.

Once done, these parameters will behave as a bi - directional link with Varied Items : you modify either of them - the other updates. Say you have Varied Length in a flex component P1, and you add associated parameter with name VAR_LENGTH_P1.

Now in assembly, you want to drive this value by assembly level parameter VAR_LENGTH_DRIVEPAR. You add assembly level relation :

VAR_LENGTH_P1:FID_[particular component ID] = VAR_LENGTH_DRIVEPAR

Or even better, you can add this relation right at a component level (not PART but COMPONENET) :

VAR_LENGTH_P1 = VAR_LENGTH_DRIVEPAR

Cheers,

- Vlad

View solution in original post

2 REPLIES 2
vzak
6-Contributor
(To:hvandenbroek)

Hein,

What you need is to create component level parameters out of your flexible items. Then you can drive them by a regular assembly relations.

To create associative parameter in flexible component you still need to Redefine flexible component (once), add one more column in the Varied Items table : Associated Parameters. For the var items you want to drive from assembly just add meaningful names to that column.

Once done, these parameters will behave as a bi - directional link with Varied Items : you modify either of them - the other updates. Say you have Varied Length in a flex component P1, and you add associated parameter with name VAR_LENGTH_P1.

Now in assembly, you want to drive this value by assembly level parameter VAR_LENGTH_DRIVEPAR. You add assembly level relation :

VAR_LENGTH_P1:FID_[particular component ID] = VAR_LENGTH_DRIVEPAR

Or even better, you can add this relation right at a component level (not PART but COMPONENET) :

VAR_LENGTH_P1 = VAR_LENGTH_DRIVEPAR

Cheers,

- Vlad

Vlad,

thanks for the helpfull reply.

Below I've added some additional info in how the complete picture looks like, maybe someone else will benefit from it.

1) First you built a model/modeltree with all components in it.

15-10-2013+12-00-57.jpg

2) After that you are going to add parameters to the sub-level assembly which you want to be flexible.

15-10-2013+12-08-07.jpg

15-10-2013+12-03-19.jpg

3) These parameters will be controlled by a relation which looks as follows.

Note that in this step an additional main controlling paramters is created. (COMPTYPE01)

15-10-2013+12-04-24.jpg

4) Now the components need to be placed/suppresed according to the parameters VARCOMP_01 and VARCOMP_02.

You do this by adding relations to ProPROGRAM. These look as follows.

15-10-2013+12-05-30.jpg

Now the subassy can be controlled through the parameter COMPTYPE01.

We however want this to be controlled by an upper-level-assembly. This could be done by adding relations directly referenced to the sublevel, however when you

release (lock) the lower level assembly these changes will not regenerate. (Unless a specific config option has been set (regenerate_read_only_objects --> yes))

So we need flexible components to be able to change the state of the subassembly while remaining released/unlocked.

5) Now the subassembly needs to gain some flexibility.

Add the parameter COMPTYPE01 to the flexibility menu in the subassembly.

15-10-2013+12-08-16.jpg

6) In the upper-level-assembly we need to give the subassy it's flexibility. In this menu we also assign a 'Assoc. Param' to the parameter COMPTYPE01.

See the explanation from Vlad in this discussion to get some more information about this 'Assoc. Param'.

In short it means that parameter COMPTYPE01 will copy the value from the 'Assoc. Param' that has been assigned to it. In this case DRIVEPAR_INPUT_01.

15-10-2013+12-08-50.jpg

7) Now in the upper-level-assembly create the controlling paramters which will define the state of the flexible components.

15-10-2013+12-09-32.jpg

😎 In the last step we will need to define the link between the 'Assoc. Param' DRIVEPAR_INPUT_01 and the upper-level-assembly paramter COMPTYPE01.

This needs to be done by a relation which is located in the Component of the flexible object, so not in the Sub-assembly.

When navigating with the relations menu to the Component which is flexible the local paramter DRIVEPAR_INPUT_01 can be seen. A relation with the upper level

assembly can be defined from here without using a component ID behind the relation. Just enter the upper-level-assembly parameter into the relation.

15-10-2013+12-10-15.jpg

All information given above describes the way I worked within my assembly, ofcourse there are more ways of accomplishing the same task, so feel free to alter any of the steps described to make it suit your own working method.

Thanks to Vlad for making clear how the Associative Parameter within the Flexibility menu works.

Announcements