Community Tip - Stay updated on what is happening on the PTC Community by subscribing to PTC Community Announcements. X
I have a model constrained with a pin, and cam mechanism constraint. It moves fine, until I add a part that's fixed to a CS buried in the model, then it locks up.
Any ideas?
THX!
I've gotta say, Mechanism is extremely finicky, and fragile. I cannot get the mechanism to work correctly. And there is NOTHING constrained to a "ground body". It is constrained 100% to a moving body. The best I can hope for is to move the assembly, while these parts stay floating in space, then regen, and they magically move to where they're supposed to be. the other option is to suppress tham, move the parts, then unsuppress, and they end where they belong.
Is this REALLY how it's supposed to work? My SW buddies are all busting my chops about how much easier and better their mechanism constraints are. I've got to agree with 'em....
Fed up.
Oh yes, very painful. But in general, when you are constraining, it should not let you make constraints between different part if they not compatable. but that doesn't mean you can't tie things up in a knot. That is likely what is happening. I find it very difficult to think in Mechanism speak. Normally, I have to have the Mechanism part thought out before I "link it up". Then I rebuilt the assembly.
It really should be smarter, but its not.
Frank, I am hoping that you should not rely on the magic mechanism pixies, have you looked into redefining your bodies so that you can get the right thing in your Ground?
When you are in Mechanism application, expand your tree to see the bodies (although this step is probably not necessary) use Edit > Redefine bodies. I
have to admit I am usually doing this to REMOVE a body from ground and then it pops up in a different body. I am hoping if you find the component that you want to be in the Ground and remove it from it's current body it may indeed revert to Ground (also right now I am in WF4 so that is the menu selections mentioned).
I hope a) that makes sense and b) I am not teaching Grandma to suck eggs as I appreciate you've been on Pro for years
hahahaha! the word s u c k got removed - I wasn't being rude 😮
Frank,
I have had the same problem at times and one of the things I have done that sometimes helps is to re-assemble the part that is causing the mechanism to lock with rigid constraints.
Well, it should really be a simple thing. I have a ground body, the assy itself, sith a short, straight datum curve for use in a slot connection. slot connections are my fave because they automatically limit travel. Then I have a shaft that moves linearly with it's axis coincident to the curve, and this is constrained with a slider connection and slot connection to the curve. Then I have a couple flat plates, with a pin connection and a slot connection using the point I made in the shaft acting on slots in the plates. This all works fine. The issue is that I was using a cs in one of the plates to attach another part to. This component would then have ZERO references to anything else, because a CS constrains it sompletely. I did this thinking that would be the best way to keep from having issues......and it seems to cause the issue.
I've tried several other things, and the best I can get is to have th eplates move, with the other parts floating in space (hey, at least it's not locked-up anymore!), and they maginally end up where they're supposed to be only after I regen.
What a finicky, fragile system.....
Thanks for the tip Charlotte, I'll look at the tree.
This is REALLY annoying me. I'm going thru it and making sure the only ground body is constrained only to assembly references. Then I'm making sure that all the moving bodies are ONLY constrained to only the ground body and the moving shaft. Again, everything works fine, until I add the parts constrained via a CS to the moving plate, then it locks up again. What a finicky fragile POS......
and when you press the highlight bodies icon does that cs constrained part highlight in green?
Not even sure where that icon is, but the list of bodies seems to be wrong. I'm re-building the assy......again. If this doesn't work I give up and I'm not going to waste any more time on this. I have the actual design to complete. I'll have to just chalk it up to poorly-written software.....
The Csys contraint might be considered a limitation to one of the other constraints during the motion.
Its one of those... "If I hit my finger with a hammer it hurts!"... "Don't hit your finger with the hammer!" ...things.
Yeah, I'm thinking that there's probably a bug in the software there with that. I'm going to remove that constraint from the original fixed body, and not use CS's anywhere and see if that doesn't fix it. Hmmm, no wonder why most of the demo's I saw dontt attach anything to a moving body........
Getting tired of trying to use a sledgehammer to put in finish nails....
Alright, here's the BUG:
I'm doing a top-down design, designing almost all the features of the parts in the assembly, and assembling them twice: Once in the "Design" rep (static - though I can animate the design curves in the sketch), and once in the "Mechanism" rep. ALL the parts I created in the assembly work fine. The 2 OTHER parts are modeled completely outside the assembly (based on an existing design), with no assy refs. THOSE 2 are giving me the problem. How do I know this? Because I had to create a completely new temp assy to test this. I used the EXACT same series of constraints in that assembly, where nothing has a ref to the current assy, and it works fine. I KNEW it wasn't me. Nice, huh?
My next step is to add a refo of some sort to the individual parts to see if that doesn't make it work. If not, well, then I'm forced into a "Design" assmbly, and a "Mechanism" assembly. Twice the work. So, I'll post up later after I check that.
You know, one of Pro/E's strong points vs. SolidQuirks is it's ability to do real top-down design.......maybe NOT?
After I get this all done, I'm certainly sending these in to PTC for an evaluation into the BUG. I'll post results.
#notthrilledatalltohavehadtowasteallthistime
Frank,
Wish we could get your model - it is too tuff to try and guess what is the real problem trying to just follow verbal descriptions. And I fully admit Mechanism is not as user friendly and self explanory as we could wish it to be, so in many cases when users are actually sure that they have ot do with a bug it appears to be a design error.
Though it might be still a bug - things happen, but on my statistics cases of mechnism lock are mostly due to design issue.
Creo follows so called "rigid body theory" in moving components around upon kinematic dragging or running analysis. This theory assumes that assembly along with component structure (fully represented in Model Tree) has a parallel "body structure". Only body structure constitutes mechanism drag, DOF or Lock behaviour.
Sometime ago Mechanism Tree was added to try and help understand bodies content. It can be used as a static analysis (which bodies I have now) as well as "what changed" analysis : you add one more component to assembly in a way that you desire, and comaring body tree structure "before and after" you can see if it reduced or increased number of bodies.
Here some info and tips about body calculation:
1. component B fully constrained to component A will be added to the body where A belongs. If A belongs to Ground Body then B will be added to Ground as well.
2. component C added to assembly as "not fully constrained" (be this by constraints or by connections) will create a new body.
3. If a new component D is fully constrained to A (which is in Ground Body) and in addition fully constrained to C (make 2 different constraint sets) this will result in adding C to same Ground body. Formally C continues to show "not fully constrained", but D later "locks" it to Ground in body calculation.
4. Connection definition : each connection can be ONLY created between parts that belong to 2 different bodies. Example : when you add component E by Pin connection, you should be sure that both Axis and Plane references on assembly side belong to same body (possibly to different components, but inside same body). So if you constraint E.prt to A.prt (both of Pin references) you almost granted get a clean connection. If you however reference A and B you must be sure that they both belong to same body - else Creo will not allow to select the second reference.
This is done to ensure that upon attempt to move things around each connection will not "fall apart" since it is not between 2 rigid bodies, but between 3 or more. Common user error is that upon creation of certain connection it really connects 2 bodies. However later some component is added in a way that it closes the loop and makes them the same body ... and user gets these annoying errors "connection is no longer valid" or like this.
Or alternatively, Pin created between A and (B ; C) turns invalid if B and C stop being a single body (say, redefine C to not fully constrained tyope).
Simple body tree analysis will show you that both components now belong to that same one body, hence connection turns invalid.
5. One more advanced item : in most cases all features of same part belong to same body. But it is not always the case. For example, features created with full external references (say Copygeom) will belong to the same body as reference part belongs. This is done in order to avoid creation of connections between such external parent-childs (which will immediately create external references). So if you have A.prt and B.prt, and B.prt has surface copied from A.prt - you will not be able to create connection using this surface from B and any of the geometries of part A (as they belong to same body). Again here - upon connection creation Creo will be there to prevent such connection. But it can easely happen that upon creation valid geometries were selected, and later ... rerouted / replaced etc - and you get your connection invalid.
6. In a particular case of Csys to Csys (or Fix Location) nothing specific should happen - else this is really a bug. If you add Csys to Csys this is a fully constrained way, hence the newly added part should be added to the same body where assembly side Csys belong. Fix Location (if used) is a shortcut that fixes a new component to assembly, strictly adding it to the same body as assembly itself. Try to look in Body Tree - you will see what i talk about.
7. Differences between Connections and Constraints respective Body Calculation :
- in general "not fully defined" constraints will behave the same as similar connection from kinematics point of view. Sure they will not allow addition of all other Mechnism stuff (motion limits, mechanical constants, friction etc).
- constraints are not restrictive to selection of references from 2 bodies only, and they will not "fail" in a way Connection does if bodies change unfaworably - they will just behave in a new context.
8. There is still a way to "fully fix" A.prt to B.prt and still keep them 2 different bodies (for a single purpoce of contact forces calculation - forces may reside only between 2 different bodies). Such connection between 2 components is called "Rigid", it leaves zero DOF between them.
Hope this will be of a little help, at least to get some ideas of how Creo operates bodies in mechanism. It is far from perfect and even further from "user friendly" - but it has quite direct logic behind.
As to the missing help around this topic ... I hope we will put some more either on learning connector, or as a part of tech Support topics, since such level of details is way beyond regular Help imo.
Let me know if some portion above is way too unclear, or if you have any specific case questions - will try to help.
Best,
- Vlad
I knew Vladimir could explain this better than anyone else.
Any more questions, Frank?
'Morning Vladimir. I will send PTC the model, but I can't do it here for proprietary reasons. I'm going to log it, and let you know the number so you can look at it. Like I said, it's satrange that the 2 parts work fine in an outside assembly, but locks up the one that the others were designed in. I'll be curious to see what you find.
Grazie!