Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations MintJulep on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Variable Positioning 3

Status
Not open for further replies.

Ritmo2k

Automotive
Apr 24, 2008
9
I am having some issues with Variable Positioning relating to some sub assemblies. I have the following scenario:

1. Assembly of a shock absorber (consists of shock cylinder body w/ integral clevis and threaded shaft/piston components).
2. Assembly of a clevis pin (consists of clevis and tightening nut components).
3. Higher level Assembly with a lever arm that rotates 0 -> 90 degrees.

- The base of the shock body has an integral clevis that will center into a fixed component under the top level assembly.
- The lever arm is intended to be driven by an angular constraint. It has the clevis assembly separating it from the shock assemblies threaded shaft.
- I need the shock to swivel and extend with the clevis assembly as the lever rotates, and obviously swivels the clevis.

Where I am stuck is the order of constraints and what gets overridden? Possible constraints are components to assembly in each sub assembly, those components *or* their top level assembly being mated to the global top level assembly?

The cast does not have any examples, previously when animating an assembly in Visualization I wrote expressions for everything but it makes it more sense to build the constraints as they exist in real life for this project.

Any help would be appreciated!
Thanks
 
Replies continue below

Recommended for you

What version of NX are you running, and if it's NX 5, are you using Mating Conditions or the new Positioning Constraints?

If possible, could you at least provide a picture or two of your assembly showing perhaps the different desired positions?

John R. Baker, P.E.
Product 'Evangelist'
NX Design
Siemens PLM Software Inc.
Cypress, CA
 
Okay here's some help because I don't think you start with such a broad question and get a definitive answer. Instead you're looking for techniques that you can use to problem solve. So I'd urge you to do some reading both here by searching the forum and in the NX documentation.

Deformable Parts: Good for cylinders that expand and collapse if you're working in one part.

Linked expressions: Good for passing variables to control mating conditions to sub assemblies. Would probably also work for the newer mating constraints but I haven't tested the latter yet. This will help if your cylinder is an assembly of body and piston for example.

Mating conditions or the newer constraints in NX-5 will be invaluable if you want to maintain relationships between assembled parts while elements are repositioned.

Arrangements: In assemblies allow an unmated component or assembly, or one that can be moved with a degree of freedom to be repositioned in a saved location. The ends of stroke of any mechanism are a common example.

You'll want to investigate these create simple examples and test them so that you can understand how they work, and then you be able to build up a working assembly.

Lastly some really complex mechanisms don't quite work using these simple methods there is a motion module of NX for cases where engineering analysis is the goal not just some sort of spatial layout.

Short of using motion engines with a piston, crank and con-rod don't go past top dead center because the simple method has no understanding of momentum. However you can simulate the correct motion by rotating the crankshaft indefinitely, (i.e more than 360 degrees). We have done front and rear auto suspension with some success rubberized mounting points being the only thing that you have to guess with.


Best Regards

Hudson
 
John,
When are you guys going to offer Hudson a job?[wink]

Believe it if you need it or leave it if you dare. - [small]Robert Hunter[/small]
 
@ Hudson888

I managed to get it working in NX5 but the Online docs for Variable Constraints are weak, and CAST doesn't have anything!

@ JohnRBaker
Do the GTAC guys have anything they can pass along for Variable Constraints? Examples would be great! A while ago, someone in GTAC gave me 3 pdf's for Animation which proved invaluable.

Thanks everyone!

Ps. John, you work in GTAC up in Cypress?
 
Ritmo2K,

If you tell me what version you're running, I might be able to forward you some example parts.

And NO, I don't work for GTAC.

I'm on staff to the VP of NX Development and my responsibilities include communicating with existing customers and users to make sure that they understand what we're working on and why and how we think this will benefit them. I do this by following and responding in forums like this and others, as well as at regional and national user group meetings, both domestically and internationally, as well as spending time with important customers in strategic market segments so as make sure that we are meeting their needs as well. For example, I will be spending most of next week meeting with people at the GM Tech Center in Detroit.

I also work with development leaders and project teams to help assure that we are working on the right projects for the right reasons and that the functionality being implemented is consistent with the needs, as I see them, of our users.

I work in Cypress and have been with the company for nearly 28 years and was a user of Unigraphics for 3 years before that with a manufacturing company in Michigan where I was a R&D Project Engineer for 14 years.

John R. Baker, P.E.
Product 'Evangelist'
NX Design
Siemens PLM Software Inc.
Cypress, CA
 
John,
I have NX5 fully updated. Examples would be great.

I appreciate your interest in helping me.

Thanks
 
OK, I have a very simple example that I created years ago (in V18.0) when we first introduced Variable Assembly Positioning. It's an assembly with 2 identical sub-assemblies of a air/hydraulic cylinder. The issue is that since these 2 sub-assemblies in the main assembly are the same, the components have only been loaded once, but in reality there are two instances in memory. However, until V18.0, if you changed one sub-assembly, those same changes would be reflected in the other. With Variable Positioning, one could override the internal relationship in one or both sub-assemblies so that they no longer reflected the same position.

I've attached a file containing a main assembly and the sub-assemblies. Since you stated that you're fully up on NX 5, I went and converted the old Mating Conditions into Position Constraints since in all honesty there is NO reason for you to learn anything about the old way of doing things since, a) they're basically obsolete, and b) the new way is so much simpler to use and understand.

OK, open the main assembly and note that first, while sitting at the top assembly level, you can't reposition the pistons of either cylinder since they are constraint ed relative to the sub-assembly. So go into the Assembly Navigator and make one of the Cylinder Assemblies the Work Part (don't make it the Displayed Part as I want you to see what's happening with both cylinders). Now go into 'Move Component' and select the cylinder rod extending out the top of the cylinder and while in dynamic mode, drag the vertical drag handle (yellow arrow) and note that when you stop, both cylinders update.

OK, now undo that Move and go back to where the top level assembly is the Work Part. Now go to the Assembly Navigator and expand one of the cylinder assemblies so that you see all of the components including the piston assy (don't expand this sub-assembly). Now select the piston assy and press MB3 and and when the pop-up menu comes up, about half way up is an item labeled 'Override Position'. Select it. Now all that will happen is that the icons in the Position column will change to show that this assembly has had it's Position Constraints overridden.

Now while you're at the top level assembly, go into Move Component and selecting the cylinder rod and like previously, move it up and down. Notice that now only the one piston moves. Now if you wish to position both pistons, just repeat the above procedure on the other cylinder assy. Now you can change the position of either or both pistons of the 2 cylinders independent of each other. Note that these changes have no real effect on the cylinder assy, just the top level assy as that is where these changes are actually stored. You can see this by making the cylinder assy that has had it's piston moved the displayed part. You will see that the piston is actually still in its original position despite it being moved in the top level assembly.

And if you wish to remove the override, just go back to the top level assembly and select the Piston Assy and press MB3 and select the 'Remove Position Override' and it will go back to behaving like it did before.

Anyway, I hope this helps at least understand the basics. Let me know what you think.

John R. Baker, P.E.
Product 'Evangelist'
NX Design
Siemens PLM Software Inc.
Cypress, CA
 
John,

Ewh has busted me I'm only doing this because I always wanted your job. [blush]

Ritmo,

John's example is a good one, try taking it one step further by constraining the distance that the piston moves up and down the cylinder, using a distance from the base to say the bottom face of the piston.

You'll do this by making one of the cylinder assemblies your work part, then add the constraint as a distance between faces much as you might have done in the old mating conditions by using the distance method and selecting the face on the bottom of the piston then the corresponding face of the base and nominating a distance. The distances may need to be negative signed depending on face normals I expect. In this case somewhere between 0 to -10 seemed to be the range of motion. Then select the new constraint in the ANT and from MB3 tick arrangement specific. Now back to the ANT into the cylinder assembly with MB3 again look for arrangements and just edit to add a new one which will probably be called arrangement2 (you could change the name but this will do for now). Back to the distance constraint in the ANT with MB3 to use Edit in Arrangements and see now how you can vary the distance number. Make it -1 and -6 for example. Then go to the top assembly (assy_main), and select one of the cylinder assemblies again then MB3 arrangements and pick arrangement2. You now have the ability to control the positions of the two cylinders independently of one another with two arrangements and some expressions. Not only that but the constraints at all levels are listed in the ANT so you can edit them quite easily to play with your design.

This is new functionality which to some extent we formerly achieved by a different method.

Now this is really new and I think may break through a limitation that we have always had hitherto until now. I found with John's example as it is that once you simply override the constraints of the Piston that it will let you create geometry in the top assembly and constrain the base to one thing and the cylinder to another. For example I created two blocks and using touch align was able to experiment with moving the blocks apart and having the cylinder move in and out of the piston. I'm pretty sure you couldn't do that before with mating conditions.

In this case what I'm still not sure of is why the piston by having the constraints removed is enabled thus. The constraint which oblige it to say aligned in the bore of the cylinder are still respected, and if you do this in the order that I wrote then you'll have to kill off that distance constraint in order to have it work.

John, I'm going to have to let you keep your job at least for now so you can tell us what this position override is actually overriding? [wink]

Best Regards

Hudson
 
Some questions (nx504./. I switched to constraints) :
I have looked at the example John attached( Thank you again).
I've tested an get a lock on some constraints. What is the reason what does the lock mean? Can I get a diagramm on the constraint like a wave diagramm? Under Information->Assembly-> Mating conditions-(no Mating conditions available -thats ok) where is constraints infos?
thx in ad
 
The 'Override Position' is not removing any constraints, it's just passing control for them up from the sub-assembly to the assembly. Basically what you can now do at the assembly level was what you could only do at the sub-assembly level previously, that is, move the piston up and down. The piston is still constrained relative to the cylinder, it's just that the sub-assembly, in the context of this overall assembly only, is no longer in control of the position of the piston. That now belongs to the top level assembly, thus the idea of the POSITION being 'overriden', NOT the constraints themseleves. I hope that helps clarify what is actually going on here.

As for discovering what's going on with the constraints, that's why we change the appearance of the icons in the Assembly Navigator to indicate that and if you select on the overriddenthemselves component, go to Properties and select Info and get some additional information about the constraints and such.

As for discovering the one can position the overriddenoverridden component relative to the some other object in the main assembly, our long term goal is to make these 'constraints' available as a general tool for all objects, whether you're working in an assembly or not. So far we've just tried to make it work logically where we have gotten some support and will try and continue adding these subtle enhancements as time goes by.

John R. Baker, P.E.
Product 'Evangelist'
NX Design
Siemens PLM Software Inc.
Cypress, CA
 
Thank you, John,
I think I understood the override position-bringing the constraint in top assy context. My question was more what is the reason of the lock symbol in the constraints. I've attached a picture. Another question is there/what is an overconstraint symbol or message like the colors in sketcher?
I found no answer so far in help and cast.
thx in ad
 
 http://files.engineering.com/getfile.aspx?folder=8db1aeba-c412-4bc6-82f1-5c7f1b5081bd&file=constraints.jpg
Now I don't get any locks on my example, but they generally mean that you can't edit or convert that particular constraint based on some condition that exists at that moment which requires that constraint to remain in it's current state.

As for indications of constraint status, all we have at the moment is the symbols in the Position column of the Assembly Navigator which shows the status of each component and if you allow the cursor to hover over the symbol/icon you will get more details about the status of the Component's position. There are a couple of ideas being looked at for some more visual feedback on the model itself that we hope to implement in some future release (but nothing yet in NX 6).

John R. Baker, P.E.
Product 'Evangelist'
NX Design
Siemens PLM Software Inc.
Cypress, CA
 
John thank you,
working testing modifing with the constraints, I like to group
constraint when a component is fully constraint -> to a bond type. Generally what im looking for a quicker solution to constraint circular components like dowels screws,etc... get them fully constraint.
thx in ad
a John Baker fan
 
What the heck is grouping to a bond type? It doesn't seem like a bad idea but it isn't something I have seen in NX.

I was equally somewhat satisfied by the way it is presented for mating conditions (the legacy method [wink]), on the basis that you knew what applied to which component. I know that the new constraints aren't applied the same way in terms of not being analyzed in any specific order, but you still want to know whether a given component has degrees of freedom or not. I don't think that I want or need to group anything to indicate that all that I need is the system to provide me with some visibility of that one aspect.

Best Regards

Hudson
 
John,

So this just means you can position them in absolute or any other more manually determined location relative to each other and then apply the bond so that when you use override the assembly still hangs together otherwise it may not. Is that more or less the purpose?

That is to say I had just about caught up with what you meant about how the override works when I read this today so I'm thinking of this as another step beyond that.

Best Regards

Hudson
 
Bond has nothing specifically to do with Override Position. It's just a way to replace a large number of constraints with a single one if there is no chance that any of the components will ever need to move relative to each other. And since Position Constraints are solved as a series of simultaneous equations, it could improve performance as it avoids having to solve a bunch of equations (constraints) that you already know are never going to change.

John R. Baker, P.E.
Product 'Evangelist'
NX Design
Siemens PLM Software Inc.
Cypress, CA
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor