Get Help

Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Community
- :
- Creo Parametric
- :
- 3D Part & Assembly Design
- :
- Re: increasing the quantity in top down design and...

Options

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

08-30-2017
03:27 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

08-30-2017
03:27 AM

increasing the quantity in top down design and skeleton

Hi

I am working on a Top down design with skeleton creation. I created skeleton which is working perfectly fine.

i am stuck with quntity to be increased. Let me explain in brief: Assume a base or platform of LXWXD= 600X1000X20(all dimensions in mm). And is assembled with 4 panels of same length and width of 250mm each.

If i control these LXWXD in my skeleton, my assembly is regenerating succesfully. (attached jpeg for reference)

But i need a solution like, if i increase width from 1000mm to 1500mm, instead of 4 panles of 375mm each, i need 5 panels of 300 mm each OR 6 panles of 250 mm each. I need quantity of panles to be increase and also if i decrease the width from 1000mm to 600mm , number of panles should decrease.

How can i control quantity;

1) Is there any way in pro-programing(i think it can cntrol relations only)

Can i use if else relation?

2) can i use family table for my skeleton or to my main assembly? if so help me with procedure..

3) Or need to take help of CAD customization or J link?

Please help me out if any other solutions for this!

Thank you, Sateesh

25 REPLIES 25

08-31-2017
08:16 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

08-31-2017
08:16 AM

Pattern the panels, create a length paramter and write a relation something like

if length is greater than 900 but less than 1100, # of panels equals 4, if # of panels equals 4

lenght of panel equals 250. add as many variations of this as required.

09-01-2017
02:25 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

09-01-2017
02:25 AM

Hi @jbob You meant to say to write the program in assembly level or skeleton level! please can you help me with the programming!

09-01-2017
08:09 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

09-01-2017
08:09 AM

sure, what determines the width, is it the size of the panels or do you just select a width? If it is the panels, can the panels be manufactured in any width or are the made in 50mm increments or some other number?

09-01-2017
09:40 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

09-01-2017
09:40 AM

if you have a skeleton feature where the width is d1:2 and the length is d2:2 and the depth is d0:2

your panel is width d1:0 and the length is d2:0 and the depth is d0:0

pattern the panel and you have 3 of components as p2:1 and dist between panels as d1:1

then you could have assembly relations something like

/*length

d2:0 = d2:2

/*depth

d0:0 = d0:2

/*width

IF d1:2 == 1000

p2:1 = 4

d1:0 = d1:2/4

d1:1 = d1:0

ELSE

IF d1:2 == 1500

p2:1 = 5

d1:0 = d1:2/5

d1:1 = d1:0

ENDIF

ENDIF

you would just change the skeleton feature to adjust the model. this is limited because the user would need to enter the correct number for the skeleton width dimension.

09-04-2017
02:09 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

09-04-2017
02:09 AM

Thank you @jbob, i got some idea.

What if , if width is in incrememnt of 25mm?

And how can i control the range in program..

that is,

if width is ranges from 800-1200mm i need number of panles to be 2

if width is ranges from 1200-1400mm i need number of panles to be 4

if width is ranges from 1400-1600mm i need number of panles to be 6

Sorry if i am asking too much questions! i am stuck with this and facing these issues to proceed!

Thank you 🙂

09-05-2017
08:47 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

09-05-2017
08:47 AM

P-A-N-E-L-S

09-05-2017
08:51 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

09-05-2017
08:51 AM

here is a sample of what you could do, this is not complete but you can see where this would go.

/*length

d2:2 = d2:0

/*depth

d0:2 = d0:0

/*width

IF d1:0 >=800 & d1:0 <= 824

d1:2 = 800/2

p2:1 = 2

d1:1 = d1:2

ELSE

IF d1:0 >=825 & d1:0 <= 849

d1:2 = 825/2

p2:1 = 2

d1:1 = d1:2

ELSE

IF d1:0 >=850 & d1:0 <= 874

d1:2 = 850/2

p2:1 = 2

d1:1 = d1:2

ELSE

IF d1:0 >=875 & d1:0 <= 899

d1:2 = 875/2

p2:1 = 2

d1:1 = d1:2

ELSE

IF d1:0 >=1200 & d1:0 <= 1224

d1:2 = 1200/4

p2:1 = 4

d1:1 = d1:2

ELSE

IF d1:0 >=1225 & d1:0 <= 1249

d1:2 = 1225/4

p2:1 = 4

d1:1 = d1:2

ELSE

IF d1:0 >=1250 & d1:0 <= 1274

d1:2 = 950/4

p2:1 = 4

d1:1 = d1:2

ELSE

IF d1:0 >=1275 & d1:0 <= 1299

d1:2 = 1275/4

p2:1 = 4

d1:1 = d1:2

ENDIF

ENDIF

ENDIF

ENDIF

ENDIF

ENDIF

ENDIF

ENDIF

09-06-2017
08:17 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

09-06-2017
08:17 AM

Thank you @jbob, i made the same above relations simpler and skeleton is working fine.

After skeleton,

Now i modeled panel parts using particular Skeleton curve as a reference,

When i decrease the width number of panels are not getting suppers.

Means when i decrease width from 1600mm to 900mm , skeleton is working fine but sub-parts are relates to main assembly, they need to get suppress here i think.

Can we suppress features using relations written in skeleton model?

09-06-2017
08:23 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

09-06-2017
08:23 AM

did you pattern the panels? If yes did you change the number of panels in the relations? I think the relations could be at the assembly level as well

09-07-2017
09:21 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

09-07-2017
09:21 AM

Yes @jbob i pattern the panels.

As my relations are in skeleton, Took refernce from it and pulled sketches into my sub assembly.

But i am getting popup in both top level and sub level to give twice the input , i.e if i wanna change the width, in top level assembly and also in sub assembly i need to give same value and regenerate both.

Is this right method? May be any other paths to get skeleton relations into assembly!

09-07-2017
09:25 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

09-07-2017
09:25 AM

Have you defined any INPUT parameters in the sub-assembly? If so, you will need to EXECUTE those parameters from your main-assembly.

09-07-2017
03:45 PM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

09-07-2017
03:45 PM

I put the relations at the assembly level not the skeleton level.

09-13-2017
05:01 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

09-13-2017
05:01 AM

Creo parametric pro-program neler yapılabilir ?

09-14-2017
06:23 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

09-14-2017
06:23 AM

Great, i transferred all skeleton level relations to assembly level. I can able to control the quantity. Thanks @jbob

Can we suppress a part or number of parts with the help of proprogram?

09-14-2017
06:52 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

09-14-2017
06:52 AM

Yes you can suppress part(s) with PRO/PROGRAM

If you look at the PRO/PROGRAM of an assembly, you will see:

INPUT

END INPUT

RELATIONS

END RELATIONS

*THE MODEL TREE OF YOUR ASSEMBLY*

ADD PART DIN965_M5X40

INTERNAL COMPONENT ID 235457

PARENTS = 16973(#54)

END ADD

MASSPROP

END MASSPROP

You can write "IF THEN ELSE" statements around the features and components to suppress/resume those with PRO/PROGRAM.

For example:

**IF INSERT_BOLT == YES**

ADD PART DIN965_M5X40

INTERNAL COMPONENT ID 235457

PARENTS = 16973(#54)

END ADD

**END IF**

Where INSERT_BOLT is a parameter which can be defined in the INPUT or in the RELATIONS.

09-14-2017
07:12 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

09-14-2017
07:12 AM

Ofcourse there are also the EXECUTE statements (assembly only) and the POSTRELATIONS section (part or assembly).

09-14-2017
07:43 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

09-14-2017
07:43 AM

Thanks for the rply,

How to know -

PARENTS = XX(XX) --->>VALUE?

If my master assy is XXX.asm, and XXX-A is subassembly. and inside this sub assembly i need to suppress parts. and my program is in master assy XXX.asm

If i open program in XXX-A.asm, i can see

ADD PART partname1

INTERNAL COMPONENT ID 48

END ADD

ADD PART partname2

INTERNAL COMPONENT ID 49

END ADD

ADD PART partname3

INTENAL COMPONENT ID 52

END ADD

If i define DEPTH>=850 & DEPTH<=1000; partname2.prt & partname3.prt should get suppress.

If i define DEPTH>=1001 & DEPTH<=1600; partname1.prt should get suppress.

In your example, does DIN965_M5X40 gets suppress or resume?

because its saying command ADD PART

And also heard "ADD SUPPRESSED PART" -How to use this!

09-14-2017
07:59 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

09-14-2017
07:59 AM

If you want to use a parameter from your master-assembly in a sub-assembly, you can use EXECUTE statements drive the parameters.

Open the PRO/PROGRAM of your subassembly XXX-A and add an input parameter DEPTH:

INPUT

DEPTH NUMBER

END INPUT

Now, open the PRO/PROGRAM of your masterassembly XXX and add:

INPUT

DEPTH NUMBER

END INPUT

RELATIONS

...

END RELATIONS

EXECUTE ASSEMBLY XXX-A

DEPTH = DEPTH

END EXECUTE

Explanation: DEPTH (*defined in XXX-A*) will get the value of DEPTH (*as defined in XXX*)

Now you can test if the EXECUTE statements are working: regenerate your master-assembly XXX and enter a value for DEPTH. Regenerate the master-assembly. Open your sub-assembly XXX-A and evaluate the value of DEPTH. The value of DEPTH should be the same.

09-14-2017
08:07 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

09-14-2017
08:07 AM

@ss3 wrote:

In your example, does DIN965_M5X40 gets suppress or resume?

because its saying command ADD PART

In my example, DIN965_M5X40 will be resumed. In short, if the statement is true, then the part will be resumed. If the statement is false, the part will be suppressed.

@ss3 wrote:

And also heard "ADD SUPPRESSED PART" -How to use this!

You don't.

@ss3 wrote:

ADD PART partname1

INTERNAL COMPONENT ID 48

END ADD

ADD PART partname2

INTERNAL COMPONENT ID 49

END ADD

ADD PART partname3

INTENAL COMPONENT ID 52

END ADD

If i define DEPTH>=850 & DEPTH<=1000; partname2.prt & partname3.prt should get suppress.

If i define DEPTH>=1001 & DEPTH<=1600; partname1.prt should get suppress.

It's easier to think "when should the part be shown" 🙂

IF DEPTH >= 850

IF DEPTH <= 1000

ADD PART partname2

INTERNAL COMPONENT ID 49

END ADD

ADD PART partname3

INTENAL COMPONENT ID 52

END ADD

ELSE

ADD PART partname1

INTERNAL COMPONENT ID 48

END ADD

END IF

END IF

09-18-2017
06:54 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

09-18-2017
06:54 AM

Thanks for the rplys.

I tried the mentioned procedures unfortunately it dint worked.

Pease let me know the program to be to suppress part/s. I tried different ways but facing errors to do it through pro/program.

I uploaded 2 assemblies,(CHECK3 & CHECK4 ATTACHED) one assy has direct formula and 2nd assy has family table.

In both the cases i dint get to suppress part.

IF LOAD=="5P"

(i need SHT1.prt)

IF LOAD=="6P"

(i need SHT1.prt)

IF LOAD=="8P"

(i need SHT2.prt & SHT3.prt and SHT1.prt should suppress)

thank you.

09-18-2017
07:17 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

09-18-2017
07:17 AM

Sadly I don't have Creo (still on Wildfire 4.0), but your PRO/PROGRAM should look like this

**IF LOAD=="5P" | LOAD=="6P"**

ADD PART SH1

...

END ADD

**END IF**

**IF LOAD=="8P"**

ADD PART SH2

...

END ADD

ADD PART SH3

...

END ADD

**END IF**

08-31-2017
04:47 PM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

08-31-2017
04:47 PM

If your panels are all 250 wide, then divide the total length by 250 and this will give you the number of instances you need, assuming that the total width is in multiples of 250.

if you need a narrow width panel to fill in, total width is 1650, then you will have 6 full panels and you can manually add the last 150 wide panel.

Multiple ways to calculate and place the panels.

It depends on if your panels are all the same size or do you have different widths to factor in.

You could take the 1650 with 6 250 wide panels and a 150 fill in panel.

You could also take the 6 panels and then recalculate the panel width so you have 6 275 wide panels.

09-01-2017
02:37 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

09-01-2017
02:37 AM

Hi @BenLoosli My panles should be of same width and as i stated earlier i stuck with increasing or decreasing the quantiy of panles. If i am having width 1000mm made of 4 panles of width 250 mm and if i change the width to 1600 then it should get chnge to 6 panles of eqvii spaced width.

It can be stated with range; "Width can be 300mm is minimum and 1600mm being max width."

If width is 300mm, number of panels equal to #1.

If width ranges from 400mm to 800mm, number of panles equal to #2

If width ranges from 800mm to 1200mm, number of panles equal to #4

If width ranges from 1200mm to 1600mm, number of panles equal to #6

Like this if i change the width, number of panles should get chnge.

Thank you,

09-06-2017
11:08 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

09-06-2017
11:08 AM

How many different panels do you have?

I see these numbers: 250mm 300mm 375mm

Does the program need to calculate the optimum number of panels? (with the least amount of wasted space)

Any way, please don't use a zillion IF THEN ELSE statements...

WIDTH = 300

/***************************************************************

/* PANELS - 250mm

/***************************************************************

PANEL_250_COUNT = FLOOR(WIDTH/250)

PANEL_250_WASTE = WIDTH-PANEL_250_COUNT*250

/***************************************************************

/* PANELS - 300mm

/***************************************************************

PANEL_300_COUNT = FLOOR(WIDTH/300)

PANEL_300_WASTE = WIDTH-PANEL_300_COUNT*300

/***************************************************************

/* PANELS - 375mm

/***************************************************************

PANEL_375_COUNT = FLOOR(WIDTH/375)

PANEL_375_WASTE = WIDTH-PANEL_375_COUNT*375

09-06-2017
11:15 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

09-06-2017
11:15 AM

With only 3 different panels widths, you could now compare the waste:

/***************************************************************

/* PATTERN

/***************************************************************

IF MIN(PANEL_250_WASTE,PANEL_300_WASTE) == PANEL_250_WASTE

/* PANEL 250 IS MORE EFFICIENT IN WASTE

/* NOW COMPARE 250 TO 375

IF MIN(PANEL_250_WASTE,PANEL_375_WASTE) == PANEL_250_WASTE

/* PANEL 250 IS MOST EFFICIENT

/* SET PATTERN PARAMETERS TO 250

ELSE

/* PANEL 375 IS MOST EFFICIENT

/* SET PATTERN PARAMETERS TO 375

ENDIF

ELSE

/* PANEL 300 IS MORE EFFICIENT IN WASTE

/* NOW COMPARE 300 TO 375

IF MIN(PANEL_300_WASTE,PANEL_375_WASTE) == PANEL_300_WASTE

/* PANEL 300 IS MOST EFFICIENT

/* SET PATTERN PARAMETERS TO 300

ELSE

/* PANEL 375 IS MOST EFFICIENT

/* SET PATTERN PARAMETERS TO 375

ENDIF

ENDIF