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

Top-Down Design Question

SOLVED
Participant

Top-Down Design Question

Hello,

 

I have been wrestling with this problem for a while now. I am designing an assembly that uses multiple different plates of various materials and thicknesses, but there are many common features between the. I would like to be able to change these attributes on the fly or at assembly level, and I understand that is the point of Top-Down Design. I saw examples of using Skeleton Models, but when I tried that I could not constrain each part together to assemble them, the option simply wasn't there. I have also tried the parameter approach, where each part has the same list of parameters, and changing one in the parameters dialog affects the part. The only issue is, when I assemble each part and add the same list of parameters to the assembly file, changing the assembly parameters doesn't do anything. I then read that the parameters must be set at assembly level using a session ID, but when I tried this I would get errors stating that the part driven value can not be changed. Can anyone offer any insight or advice on the right way to go about this? 

For example, each plate has a hole and some bolt holes, and once assembled I would like to be able to change those parameters at assembly level.


Thank you all,
Michael Gedies

1 ACCEPTED SOLUTION

Accepted Solutions

Re: Top-Down Design Question

Here's the technique I've adopted after trying a lot of different things. I start off with an assembly file that I call the "master". In that assembly, I start with a set of datum planes (X, Y, and Z, for example). Then, I build a sketches to define the overall design. I'll have sketches of the interfaces for the stuff I'm making, maybe environmental walls and floors, etc. The trick is to have lots of simple sketches, each covering one particular aspect of the design. Don't learn the horrible hard way like I did that complex sketches can become irreparably unstable.

I use the sketches to define the overall design geometry in the different views where it's important. I can modify them and check out how things fit together and where I can make simplifications, etc. It's an easy thing to do "what if" discussions with colleagues to see what can be improved.

Once I have all my design pretty well defined, I build all the components. I use the geometry defined by the sketches to make the features of the parts that will be used in the various design assemblies. The parts are created inside the master assembly, by the way.

The nice thing about this method is that:

(1) I can make changes to the sketches in the master and they are reflected in changes to the parts. I.e. change a thickness on a wall and the part wall thickness increases, too.

(2) I can define relations that govern the dimensions of the parts within the master assembly, so I can have global design parameters that apply to the parts throughout. For example "thicknessBase" could be set to 4mm at the start of the design but later be increased to 6mm in all the pertinent parts by changing the parameter once in the master assembly.

(3) I can set the drawing parameters (i.e. "Title", "Designer") that will fill out the tables on a drawing, all in the master assembly, so I don't have to open up every part and set them.

 

You'll have to use the Session IDs of the parts to set the parameters and such, but that's all taken care of by Creo, anyway, and I've not had any difficulty with it.

 

Using this method I've been able to streamline designs a lot, particularly when dealing with indecisive clients who change things back and forth repeatedly.

View solution in original post

13 REPLIES 13

Re: Top-Down Design Question

On smaller assemblies, I usually use the default cs to constrain all the parts.  On larger ones, I'll put CS's where it makes sense to in the skeleton or any driving curves in the assembly itself.  I tend to not use skeletons, but simply put all the driving curves, surfaces, etc., in the assembly itself.

 

The assembly parameters will NOT drive part parameters unless you put relations in at the assembly level, and then it will change the part parameters ONLY if both the part and assembly are in session, and will rewuire a regen (maybe 2) to change.  I.E. PART1_PARAMETER1 = ASSY_PARAMETER1

Re: Top-Down Design Question

Michael,

 

You may wish to look at the use of a Notebook to control the model parameters.  The notebooks parameters function as "global" parameters for all the models associated (declared) to the notebook.  You can also use a notebook to control/automate the assembly of components.

 

See https://support.ptc.com/help/archive/creo40/creo_pma/usascii/index.html#page/assembly%2Fasm%2Fasm_th... for additional information.

 

Regards,

Dan N.

Re: Top-Down Design Question

I remember the whole notebook thing from....what, the late '90's?  I think that also requires an advanced license beyond assy defined top-down models?  Also, I've never used it and can't think of a single person who had.  I think that technique might have died on the vine.

Re: Top-Down Design Question

Here's the technique I've adopted after trying a lot of different things. I start off with an assembly file that I call the "master". In that assembly, I start with a set of datum planes (X, Y, and Z, for example). Then, I build a sketches to define the overall design. I'll have sketches of the interfaces for the stuff I'm making, maybe environmental walls and floors, etc. The trick is to have lots of simple sketches, each covering one particular aspect of the design. Don't learn the horrible hard way like I did that complex sketches can become irreparably unstable.

I use the sketches to define the overall design geometry in the different views where it's important. I can modify them and check out how things fit together and where I can make simplifications, etc. It's an easy thing to do "what if" discussions with colleagues to see what can be improved.

Once I have all my design pretty well defined, I build all the components. I use the geometry defined by the sketches to make the features of the parts that will be used in the various design assemblies. The parts are created inside the master assembly, by the way.

The nice thing about this method is that:

(1) I can make changes to the sketches in the master and they are reflected in changes to the parts. I.e. change a thickness on a wall and the part wall thickness increases, too.

(2) I can define relations that govern the dimensions of the parts within the master assembly, so I can have global design parameters that apply to the parts throughout. For example "thicknessBase" could be set to 4mm at the start of the design but later be increased to 6mm in all the pertinent parts by changing the parameter once in the master assembly.

(3) I can set the drawing parameters (i.e. "Title", "Designer") that will fill out the tables on a drawing, all in the master assembly, so I don't have to open up every part and set them.

 

You'll have to use the Session IDs of the parts to set the parameters and such, but that's all taken care of by Creo, anyway, and I've not had any difficulty with it.

 

Using this method I've been able to streamline designs a lot, particularly when dealing with indecisive clients who change things back and forth repeatedly.

View solution in original post

Re: Top-Down Design Question

Wow, this seems like the way to go. As far as I can tell, you are saying that you create individual sketches while the assembly is activated, possibly using make datums where needed, and then create parts using references to those sketches. If that is correct, then how does this method accommodate parts that move? When the part moves in relation to the base sketch, do the references stay intact? Or do you have to define them in such a way that they are at the part level and move with the part? Not sure if that makes sense but that's another issue I was running into.

Re: Top-Down Design Question

Hi,

please see attached data_set.zip.

I added following relations into g5_100_100_000.asm

 

/* endplatesuply.prt
ENDPLATE_THICKNESS:0=1

/* gasket_ports_supply.prt
GASKET_THICKNESS:2=2

/* ptfe_ports_supply.prt
INSL_THICKNESS:4=3

/* ptfe_fchnl_supply.prt
GASKET_THICKNESS:6=4

/* gasket_fchnl_supply.prt
GASKET_THICKNESS:8=5

Regenerated assembly is shown in following picture.

 

Command Show > Session ID enables you to get IDs of individual parts.

picture.png

 


Martin Hanák

Re: Top-Down Design Question

Thank you for your reply Martin. I see now how you are able to drive part parameters from assembly level using the relation command 

/* XXXX.prt

That works well, but is it possible to call on several files before issuing their parameter? What I mean is that while this works well for changing plate thicknesses, what if I wanted to changed all of the plates widths or heights at the same time? Would it be something like:

/* endplatesuply.prt
/* gasket_ports_supply.prt
/* ptfe_ports_supply.prt
/* ptfe_fchnl_supply.prt
/* gasket_fchnl_supply.prt

PLATE_WIDTH=xx

 I am worried that it is not possible without specifying the command over and over using the respective session ID's. Something like this:

/* endplatesuply.prt
PLATE_WIDTH:0=xx

/* gasket_ports_supply.prt
PLATE_WIDTH:2=xx

/* ptfe_ports_supply.prt
PLATE_WIDTH:4=xx
/* ptfe_fchnl_supply.prt PLATE_WIDTH:6=xx
/* gasket_fchnl_supply.prt PLATE_WIDTH:8=xx

 If this is true then I guess I could do this:

 

x=5.75

/* endplatesuply.prt PLATE_WIDTH:0=x /* gasket_ports_supply.prt PLATE_WIDTH:2=x /* ptfe_ports_supply.prt PLATE_WIDTH:4=x
/* ptfe_fchnl_supply.prt PLATE_WIDTH:6=x
/* gasket_fchnl_supply.prt PLATE_WIDTH:8=x

 

Re: Top-Down Design Question


@mgedies wrote:

Thank you for your reply Martin. I see now how you are able to drive part parameters from assembly level using the relation command 

/* XXXX.prt

That works well, but is it possible to call on several files before issuing their parameter? What I mean is that while this works well for changing plate thicknesses, what if I wanted to changed all of the plates widths or heights at the same time? Would it be something like:

/* endplatesuply.prt
/* gasket_ports_supply.prt
/* ptfe_ports_supply.prt
/* ptfe_fchnl_supply.prt
/* gasket_fchnl_supply.prt

PLATE_WIDTH=xx

 I am worried that it is not possible without specifying the command over and over using the respective session ID's. Something like this:

/* endplatesuply.prt
PLATE_WIDTH:0=xx

/* gasket_ports_supply.prt
PLATE_WIDTH:2=xx

/* ptfe_ports_supply.prt
PLATE_WIDTH:4=xx
/* ptfe_fchnl_supply.prt PLATE_WIDTH:6=xx
/* gasket_fchnl_supply.prt PLATE_WIDTH:8=xx

 If this is true then I guess I could do this:

 

x=5.75

/* endplatesuply.prt PLATE_WIDTH:0=x /* gasket_ports_supply.prt PLATE_WIDTH:2=x /* ptfe_ports_supply.prt PLATE_WIDTH:4=x
/* ptfe_fchnl_supply.prt PLATE_WIDTH:6=x
/* gasket_fchnl_supply.prt PLATE_WIDTH:8=x

 


Hi,

YES,  you have to specify the command over and over using the respective session ID's in case that you want to drive component thickness using top assembly relations.


Martin Hanák

Re: Top-Down Design Question

The master assembly is basically a "factory" where I make the parts I need. The parts in this assembly will usually be a pile of overlapping and intersecting parts. I'm just using this assembly as the top level of the design that is driving the configuration of all the parts that I need. It's not a working assembly, I just use that particular file type because it lets me have multiple parts controlled in one place.

I then build the actual part assemblies, the ones that contain all the parts, in a standard assembly file. Mates, alignments, offsets and all that stuff, consisting of the parts that were built within the master assembly.

Announcements
LiveWorx Call For Papers Happening Now!