Community
Inventor Forum
Welcome to Autodesk’s Inventor Forums. Share your knowledge, ask questions, and explore popular Inventor topics.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Linking (eqution) part to its own assembly - please help

11 REPLIES 11
Reply
Message 1 of 12
wolf1o
1271 Views, 11 Replies

Linking (eqution) part to its own assembly - please help

Hello.

I have a small assembly with the parts. I'm doing an array (pattern) of one of the parts and I tried to do two things without success:

1. Tried to link one of the parts to the assembly itself with the equation tool ,but the software doesn't let me do it and says "...was rejected since it causes a cyclic dependency" - so what?:-) I know and need to do it!

2. After rejected the first choice, I tried to "project geometry" some stuff of the pattern I created in order to try and and make my connection in this way, but then I got a similar rejection: : problem encountered when doing cross part projection"...probably it's because it's from a pattern I'm creating from the part I'm doing this sketch inside?

 

What Can I do in order to bypass these remarks and make it somehow?

 

Most important, Why can't one "tie" something from a part to its own assembly in which it's located???

 

Thanks!

Inventor 2012 Pro.
I7 workstation
11 REPLIES 11
Message 2 of 12
harco
in reply to: wolf1o

 

You can use the link button in your assembly parameters dialogue to pull in values from the part.

Decide which parameters you want to use in the part parameters dialogue and mark them for export.

When you click link they should show up for selection.

You may have problems if adaptivity is on and if you are using multiple sources for values.

Try to have one part (a master) that contains and controls all your variables.

 

linking.PNG

 

 

 

A simpler way to pattern components is to use a feature pattern in the part then you can select that feature in the assembly to fill your pattern, this is then driven by the part feature pattern.

comp pattern.PNG

hope this helps

Message 3 of 12
wolf1o
in reply to: harco

Hi,

 

I know how to use the exports parameters option and linking, but the software doesn't allow me to link one of the parts to the assembly (in which it seats) from which I want to use the "exported" parameters! It give this cyclic dependency remark!

 

Regarding your other option, It doesn't help - I wish there was the (so trivial and simple!) "sketch driven" pattern option. (and not just "feature driven pattern")

Inventor 2012 Pro.
I7 workstation
Message 4 of 12
rjay75
in reply to: wolf1o

I've attached an example. I've been able to link to the parameters of a part and insert that part into an assembly with out any cyclic errors. It seems to work as long as the relations ships all go one way. The assembly needs the linked and inserted parts but the parts don't link to the assembly. Was something like this what you're trying to achieve.

 

tasm1.PNG

Message 5 of 12
harco
in reply to: wolf1o

You must be in some way pushing parameters in 2 directions to cause the cyclic dependency.

This is why I mentioned one master part as a controller to have only one source driving.

 

As you stated-

"Most important, Why can't one "tie" something from a part to its own assembly in which it's located???"

 

This can be done as shown by rjay75 and myself, rjay's being a bit clearer, albeit both very simple assemblies.

 

You will need to find where your conflict of parameters is to remove the cyclic dependency.

We can't really give much more advice without seeing the assembly and parts themselves.

 

Where you say-

"I wish there was the (so trivial and simple!) "sketch driven" pattern option."

My first thought was to create a feature pattern of work points or work axes but this does not work, there needs to be a true feature, which is why I used the split command as it doesn't actually change the structural volume but does give a feature pattern to use.

Or you could use tiny holes, could be a bit messy, as can splits in drawings - unwanted lines.

This may be some thing you could try.

Message 6 of 12
wolf1o
in reply to: harco

I'll try, I really don't know what to do, as when I choose to link to the assembly file when editing the part, It won't allow me to do it, simply giving this cyclic error...:-(

Inventor 2012 Pro.
I7 workstation
Message 7 of 12
rjay75
in reply to: wolf1o

Ahh, I see the problem. No you can't link to the assembly file from the part if it contains the part. That is a cyclic reference. There's no way to trick or resolve that. It's like a chicken laying it's own egg.

 

I there's a value you need to use in both place the parameter in the part. Then in the assembly link to the parameter as we described earlier.

Message 8 of 12
jtylerbc
in reply to: rjay75

This is correct - you can send from the part to the assembly, but not from the assembly to the part.

 

If the point was to use the assembly to store parameters in a central location, you could create a dummy part to contain your parameters, then link the other parts to it instead of the assembly.

Message 9 of 12
tommy-z
in reply to: wolf1o

As always with Inventor, there is absolutely no logic behind the restriction.

 

Most people will consider the top-assembly the "mother" of the whole construction, and it stands to reason that one would prefer to keep all the common parameters in the top-assembly.

 

If I make an assembly of, say, a car-wheel all parameters, like Rim_Dia, Rim_width, Tyre_Height, Hub_Dia, Bolt_PCD etc etc could easily be contained inside the assembly, to be referenced by the parts (like Rim, Hub, Tyre etc).

 

This would not in any way be creating any cyclic dependency, how could it?

Message 10 of 12
jtylerbc
in reply to: tommy-z

While you're right about how people normally think of the assembly, from a programming perspective I think the opposite is true.  The assembly gets its geometry from the parts, so the circular flow is something like:

 

Assembly passes parameter to part

Part uses parameter to create geometry

Assembly uses part geometry

 

Since the assembly may be using that part geometry in some way (constraints, etc.), this has the potential to cause problems.  While the parameter itself may not have made a full round trip (like two Excel cells referencing each other), the geometry resulting from it did.  I think this is really where the circularity comes from.  I believe in some cases the program is preventing you from setting up a situation that might cause a circular reference later.

 

That all being said - there is now a way around this issue if you really want to drive parts using assembly parameters.  You can write an iLogic rule in the assembly to pass the value of the assembly parameter to a user parameter in the part.  The code for each parameter looks something like:

 

Parameter("PARTNAME:1", "PARTPARAMETER") = ASSEMBLYPARAMETER

 

Where PARTNAME:1 is the name and instance number for the part from the browser, PARTPARAMETER is the user parameter in the part, and ASSEMBLYPARAMETER is the controlling parameter in the assembly.

 

There is, of course, still the option I had posted previously of creating a dummy part to house the controlling parameters. 

Message 11 of 12
mrattray
in reply to: tommy-z

Having used both the iLogic and "master part" methods to an extreme, I strongly recommend the "master part" method. It's more robust and predictable.
Mike (not Matt) Rattray

Message 12 of 12
rjay75
in reply to: tommy-z

One reason for this restriction has to do with how parts and assemblies are updated.

 

If an assembly or part is marked as dirty and needs to be updated typically all the referenced files are updated first, then the current file is updated. The current file is dependent on its referenced file.

 

In order to do updates using the assembly as the storage for the main set of parameters the update process would be something like this.

 

Assembly (Update Parameters not dependent on any referenced files.)

Assembly (Update Geometry dependent on Parameters but not referenced files.)

[Assembly is still in a dirty state at this point]

Parts (Update linked Assembly references [Ignore the assembly is dirty])

Parts (Update Parts [Parts are now still dirty because the assembly update isn't complete yet])

Assembly (Update components and any dependent geometry and parameters)

Repeat process

 

This would just keep repeating because files are reference are maintained at the file level. To achieve the ability to do the type of partial/phased updates references would need to be maintained at the feature/parameter level.

 

Dependancy resolution would have to be enhanced to avoid cyclic references that may occur just because of feature order.

 

For instance the assembly specifies number of pins. A part feature is arrayed using the number of pins. A cut out is placed in another part that is sized by the arrayed features boundary. Objects are constrained to the edges of the cutout when the parts are placed back in the assembly. In order for the updates to occur dependency maps would need to be generated for every parameter that extend beyond the boundary of a single file. In a complex assembly this could lead to a very tangled mess and a lot longer updating times.

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report