Creating multiple copies of a parametric component with different parameters

Creating multiple copies of a parametric component with different parameters

jhigson
Explorer Explorer
10,630 Views
27 Replies
Message 1 of 28

Creating multiple copies of a parametric component with different parameters

jhigson
Explorer
Explorer

I have a component with a user parameter set to 31mm. What I want to do is have a single design with three copies of this component, with values for that parameter set to 26mm, 31mm, and 35mm.

 

Is there a way to import a component, and then modify the values of the component? Ie, import a parametric component.

 

By a parametric component, I mean a component that can be imported, and then the values that built it be changed. This is possible in OpenSCAD.

10,631 Views
27 Replies
Replies (27)
Message 2 of 28

laughingcreek
Mentor
Mentor

Yes, you can do that.  It's not going to work the same as configurations in SW.  I don't know how it compares to OpenScad.

 

Copy your original component.  Then "Paste New".  This creats an exact copy, but it is no longer linked to the origial.  However, any user parameters you set up remain in the new component, so they will update when you change them.  For the parameters you want to be differnt, either change it in the new component, or find it in the "change parameters" dialog and change it there.

0 Likes
Message 3 of 28

jhigson
Explorer
Explorer

This is good, but ideally I'd like to be able to change the original, and have the parametric copies of it incorporate those changes (but with their respective parameters). Do you know if this is possible?

0 Likes
Message 4 of 28

chrisplyler
Mentor
Mentor

Let's say you have a user parameter 'Original_Width' and you make two copies of your component using Paste New option.

 

Now you EITHER...

 

Set up two new user parameters '1st_Copy_Width' and '2nd_Copy_Width' and reassign the dimension in those two copies, or...

 

Reassign the dimension values in the two copies with a formula such as 'Original_Width * 1.5' and 'Original_Width * 2' (you'll have to determine the necessary relationship of course) so that they will be related to but different from the original. In this way you only have to change the Original_Width parameter, but all three instances will update.

Message 5 of 28

jhigson
Explorer
Explorer
I mustn’t have explained what I’m doing clearly, and I think I can see now that what I want to do isn’t supported by fusion 360.

I’ll try to be more clear just in case...

What I have is a clamp that clamps onto pipes of different diameter, and has some fittings that equipment attaches to.

I want to be able to:

1) Have versions of this for various pipe sizes
2) Be able to change the fitting for the equipment, and it reflect on all the versions

(1) necessitates a parametric component, while (2) necessitates not breaking the link.

As I see it, f360 doesn’t support parametric components in the way that other cad software does.
Message 6 of 28

Anonymous
Not applicable

Which software do You mean? 

I might really need this feature soon.

0 Likes
Message 7 of 28

MichaelT_123
Advisor
Advisor

Hi Mr. Higson

 

Try,...

- have a design with your parametric component (PComp). 

- clean unused parameters there, if you have them

- import  PComp(s) into a new design ( as many as you want)

- brake the link(s)

- respective PComp's parameters will be suffixed with indexes 

   ( I have rumbled about it some time ago ... as on some occasions it is not welcome

- set values of parameters for your liking

 

Regards

MichaelT

 

 

MichaelT
0 Likes
Message 8 of 28

Anonymous
Not applicable

Thanks, this works for sure, but what I was thinking about is a bit more complex, as I would prefer to be still able to make changes in the "parent" model (for example change one of the dimensions so changes are reflected in all "children" models) and then have two other dimensions specific for each children model so I can change them. 

Unless there is a chance that unlinking, changing some dimensions and then relinking parent file works that way 😉 


Message 9 of 28

MichaelT_123
Advisor
Advisor

Hi, Mr. Farys

 

... just following the steps I mentioned ...

 - in the final 'parent' design

 - have pre-prepared parameter(s) parentParam_A, B, C...

 - after you 'conceive' your children 

 - give each child a parental order in the form:

- childParamA = parentParam_A

- be gentle ...

 

Regards

MichaelT

 

 

MichaelT
Message 10 of 28

pj
Participant
Participant

I am testing fusion, if I can use it for a project. I need exactly this function. Your explanation unfortunately is not detailed. How can I assign Child variable to parent variable? I cannot find a way to do it? In Parameters, fusion does not accept the child's name variable. Please explain in detail, how this is done.

0 Likes
Message 11 of 28

Anonymous
Not applicable

1) Have versions of this for various pipe sizes
2) Be able to change the fitting for the equipment, and it reflect on all the versions

(1) necessitates a parametric component, while (2) necessitates not breaking the link.

Do (1) by creating a new component, and copying the bodies into it. These are now independent and can be edited separately.

Do (2) by rolling back the timeline to before you copied the component, change the fitting, then roll forward again.

Message 12 of 28

matteo_trasi_formamentis_it
Contributor
Contributor

Does not seem to work: if I do a Chamfer in "parent" design it will not show in Childer after unlink. And if I change other parameters in "Parent" unlinked ones do not seem to be linked (they aren't). I try to explain again:

1) I create a plate with an hole and a parameter DIAM

2) I need children that have different diameters (that's ok if I do what you say).

3) If I add an extrusion to the parent, say, on a side for a flange, and the chamfer the border of the parent, all the children must update, as normal in a parametric software.

 

Point 3 seems to show that Fusion is "half" parametric: Design is parametric, but parts as a whole are not!

0 Likes
Message 13 of 28

MichaelT_123
Advisor
Advisor

Hi Mr MatteoTrasi,

Could you create the simplistic testing/demo file showing the case.

Regards MichelT

MichaelT
0 Likes
Message 14 of 28

matteo_trasi_formamentis_it
Contributor
Contributor

I made a video. Sorry for my english, I learnt it in grocery and mall, just to survive a month in NY!

See the video:

 

I'll try to explain with text and pictures with a similar example:

 

Are Fusion Assemblies respecting parametric Paradigm?

My answer is: partially, in a way that make it useless in many cases. It’s because Fusion has not parametric “instances” ore “derivates”, call them as you want

A sample

[MISSING IMAGE]

 

This is my parametric component. The hole is positioned and sized with a parameter.

 

Immagine2.png

This is my assembly: on the left side you see 2 parts, linked to original component, while on the right side you have 3 parts, unlinked from original component, so you can change diameter, individually for each.

Obviously the 2 on the left have diameter fixed and defined in the original file (they are linked).

 

Now, I open my original component and change it

 

[MISSING IMAGE]

 

I added a sketch and an extrusion, so I changed a little detail that was not planned. Say I didn’t know it was necessary, and when my technicians revised the final project, with hundreds of these parts inserted, they say we need it.

 

This is the effect when updating the assembly

 

Immagine4.png

 

No way to make unlinked derivates to show extrusion!

So, if I change a part I cannot update it in assemblies (if I unlinked it, obviously). I can make many similar parts with copy / paste new or unlinking, but they are not a “parametric” part, they are copies, and even a little little change needed in my "parent" part will break my project. You cannot simply update your parent part and then update your project: you’d have to remove and reinsert all the “instances” of your part, with the same individual parameters, breaking joints and projections, and so on…. You’d better redraw all from scratch or reinsert again all instances with the same individual parameters after reimporting…. but it’s not only boring: if you miss something or you make something different from previous project, it will not fit with yet produced pieces, and your boss will fire you!

 

Message 15 of 28

Anonymous
Not applicable

You can do that by rolling back the timeline to before you made the copy, make the change, and then roll forward again. The change gets copied too.

0 Likes
Message 16 of 28

matteo_trasi_formamentis_it
Contributor
Contributor

Sorry, it doesn't work!

When you "import" (link) the parent part in your assembly, the instance is linked and it updates without needing of rolling back and forward.

But when you unlink an instance of the component because you want to change some parameter in that single instance, the timeline changes and the "importing" node is substituted by a copy of the entire modeling history in the parent.

So I can roll back, make modifications in parent, then roll forward and nothing obviosly changes because in the timeline there's no more an "import" node!

 

Message 17 of 28

MichaelT_123
Advisor
Advisor

Hi Mr  MatteoTrasi,

The video was great, but in the future if possible, try to attach a real F360 design file. Most responders to the problems like yours are volunteers, and they use their own time and expenses, so be mindful of limiting those.

On this occasion,  I rebuilt the required design structure, which I believe represent your case. The file FamilyPlates.f3z is attached.

FamilyPlates.png

 

The case is the typical one. Many users demand the functionality you described. In part, it has been implemented already.

In the attached file you will find ‘typical family’ structure… Father and children (Mother went shopping). The Father is in control of the plate/hole structure. Each of child has its own name and the pin to play with. Look at the userParameters list to find out the respective parameters.

The final Family assembly is configurable, but with some limitations. As Father can control children’s plates, children can’t have access to Father’s constituency.

However, there is a way children can access the hole (in Father’s packet). It is by unlinking from him. It will mean that they will be fatherless. It can also be done, when they go on the street, aka switch to direct design.

Can such limitation be avoided leading to more flexible parametric modelling?  Many options come to mind. One would be to add on the side of unlink option a new one I would call it bracket fuse. Such in-instance-place dynamic unlinking followed by bracketed successive fusion operations, in effect, would result in achieving a fully configurable component.

Based on the results of my telepathic scowering of F360 design meta-structure, it seems to be possible to add such facility, but would I recommend or be longing for it?

No, I can believe in ThreeWishesFrog, … but not beyond!

 

Regards

MichaelT

PS.

Consider to familiarise yourself with

https://forums.autodesk.com/t5/fusion-360-design-validate/dont-try-to-build-spaceships/td-p/9140458

particularly with the section containing the phrase 'Time Fabric'

MichaelT
Message 18 of 28

matteo_trasi_formamentis_it
Contributor
Contributor

Thank you for your time, and sorry for not having posted my files. Your assembly is really interesting. It may be an idea on how to organize subassemblies in some situation, to workaround the missing of parametric instances  We know it was not was I was looking for, but it's an idea.

The problem here is that you can always build a subassembly with FatherPlate and ovelapping pins, or some other object, and then make many assemblies adding different smaller or bigger objects,  but you have no way to make, say, an hole or a real pin ON your part with different diameters. We know that you cannot "assembly" a part with with an hole! Neither you can fuse a part with a pin if they are two separate parts...  That way you cannot freely make a fully parametric reusable part.

The way I think it would be nice, is something like you can do in Inventor (or even more simple in sketchup components or AutoCAD dynamic blocks): let some parameter "externally accessible" and let user change these parameters in each instance!

Well, I like Fusion anyway, and for the use I do (mainly little assemblies for 3D printing) it's really OK. I'm only sorry that more complex assemblies and projects probably need an "older" software to go!

Message 19 of 28

Edipo_santos
Explorer
Explorer

Despite being very helpful, the answer that @MichaelT_123 posted solved a different problem from the one requested by @jhigsonI am now facing the same problem.

Simply put, there is a way to keep all the parameters associated with the parent, but change only one parameter in the child?

More specifically, I want to change only the length. I need to create several versions of a piece with various lengths but maintaining the connection with the parent. This is the same problem @jhigson posted, whereas he need to change a diameter.

If not possible, this is a very limiting situation. If I need to make a small change to the parent object, I need to manually propagate the change to all child objects, which nullifies any advantage of having parameters after all.

Thanks in advance.

 

0 Likes
Message 20 of 28

Anonymous
Not applicable

I have the same problem... I have a general door with shelves design and it is parameterized to be slightly different if it is a left door or right door (using a parameter I named 'left' which if 1 sets various dimensions one way and if it is 0, it sets these dimensions for a right side door).  So I designed the door first in situ as a left door, and then I made a simple copy in my design to place it as a right door. These doors have many other parameters linked to the total design which can change the dimensions of the door if I change some global dimensions in the cabinet.  Now, when I make the copy, I cannot just change the parameter 'left' that I set up to make the copy a right hand door because the parameters are all global to the design and not local to the copy. If I change the parameter to right, hoping to change the copy to a right hand door, both doors change to become right hand doors.  What I would ideally like is the ability, in any instance of any copy, to specify a parameter override which is unique to that copy (and any children of that copy).  In this manner, I could design more globally flexible parts, replicate them at will throughout my design, and customize them to their specific instkantation using their parameter overrides. 

 

Another possible solution is to have a hierarchical parameter file rather than just a global parameter file, which allows me to identify parameters along the same hierarchy as the component hierarchy. This would be an even more convenient solution for me as my design preference is to specify as many design parameters up front as named user parameters... I try to preface the names with letters consistent with the design hierarchy that I am planning... but I know of no convenient way of organizing my parameters and it gets confusing after a while looking at my parameter file.  Since Fusion 360 supports a tops down hierarchical component design model, I would like it also to support a hierarchical top down parameter model, where components can inherit parameters from their parents, or they can specify their own parameters, or override the parameters of their parent... and pass their own parameters and overrides down to their child components.  I can think of so many areas where I would like this capability that I am surprised that it does not already exist.  (or maybe it does and I am just too stupid to not have found it).

0 Likes