Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape.
First time visiting? Here are some places to start:- Looking for a certain topic? Check out the categories filter or use Search (upper right).
- Need support? Ask a question to our Community Support category.
- Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
- Be respectful, on topic and if you see a problem, Flag it.
If you would like to contact our Community Manager personally, feel free to send a private message or an email.
Mate Limits Question...
larry_hawes
Member Posts: 478 PRO
in General
A question regarding mate limits. After playing with mate limits and trying to understand the logic behind the 'limits' interface it appears that the 'minimum' value selected along a particular axis equates to a negative value along that axis? And the 'maximum' value equates to a positive value along that axis?
For example is it true that a slider mate's limits selected to move along the 'Z' (blue) axis will move in 2 directions, positively or negatively along that 'Z' axis and that the 'minimum' is determined by a negative value along the 'Z' axis and the 'maximum' is determined by a positive value along that 'Z' axis?
This is the only logic I can discover after applying 'limits' and a question - is this an accurate assumption? If not what, am I missing?
If so why doesn't the interface reflect that logic? If indeed any movement in the negative direction along any axis is expressed as such where is that information in the interface? Is it there by an engineering convention? If so good enough, I will learn and bend to those conventions. If not why doesn't the interface give more clues as to what 'minimum' and 'maximum' mean to the user?
Would it be more logical to have each axis noted and instead of minimums and maximums have positive and negative values indicated as input fields? So any movement along the 'X' axis in a positive or negative direction would simply be noted as such? Choose the mate, locate the 'X' axis and input both/either the positive and negative directions to define the limit motion?
Decent chance I have this all wrong so I appreciate the forum but I found the entire paradigm very difficult to understand and implement.
https://forum.onshape.com/discussion/9346/planar-mate-question-about-limits#latest
For example is it true that a slider mate's limits selected to move along the 'Z' (blue) axis will move in 2 directions, positively or negatively along that 'Z' axis and that the 'minimum' is determined by a negative value along the 'Z' axis and the 'maximum' is determined by a positive value along that 'Z' axis?
This is the only logic I can discover after applying 'limits' and a question - is this an accurate assumption? If not what, am I missing?
If so why doesn't the interface reflect that logic? If indeed any movement in the negative direction along any axis is expressed as such where is that information in the interface? Is it there by an engineering convention? If so good enough, I will learn and bend to those conventions. If not why doesn't the interface give more clues as to what 'minimum' and 'maximum' mean to the user?
Would it be more logical to have each axis noted and instead of minimums and maximums have positive and negative values indicated as input fields? So any movement along the 'X' axis in a positive or negative direction would simply be noted as such? Choose the mate, locate the 'X' axis and input both/either the positive and negative directions to define the limit motion?
Decent chance I have this all wrong so I appreciate the forum but I found the entire paradigm very difficult to understand and implement.
https://forum.onshape.com/discussion/9346/planar-mate-question-about-limits#latest
0
Comments
HWM-Water Ltd
And what is meant by "The constraint is that the lower limit must be a smaller number than the upper." Which is the 'upper' and which is the 'lower'? By upper do you mean the minimum and by lower do you mean the maximum?
http://www.youtube.com/watch?v=kNKnmXiwf-M
https://cad.onshape.com/documents/4c6f8305284923923f148009/w/8b7c125a0e558180aab20ca0/e/b5f10e3c32cf46b2669e5bee
I think sometimes I mess with the underlying mate connectors to make these work in the direction I want. Cylindrical has the same mate offset has the same problem.
Twitter: @onshapetricks & @babart1977
With mates like planar that utilize all 3 axes then the values could be entered accordingly, again representing actual values off those axes' origins instead of minimums and maximums which I still do not understand the meaning of.
I did a little video to while testing, just waiting for it to load
Twitter: @onshapetricks & @babart1977
Twitter: @onshapetricks & @babart1977
It made things even MORE confusing for the simplest of models but through enough thrashing I kinda figured it out.
I sat here the other day with an electrical engineer and architect friend for nearly an hour trying to figure out mate limits and I think we did but still confused.
http://www.youtube.com/watch?v=ZTmKZDeHc8g
It looks like it chose the 'Z' axis of the mate that faces away from the part, out the back end if you will. In this case if want the part to move to the right towards the other end then you must input a negative value as it pertains to that 'Z' axis that faces away from the part. OK. But why is that 'Z' axis of that mate chosen as the relative origin for any limits or motion? Why not the other one? Are they chosen in order somehow?
As you can see, and as I can see, there's way to figure this stuff out but the usability can use some work IMO.
http://www.youtube.com/watch?v=RHEND1bDLtg
http://www.youtube.com/watch?v=ikyKJgksjfA
Here's a quote from that thread...
"Forcing the user to guess both:
a) that you need to put a negative number
b) that the negative number is not allowed to put put into the Maximum field (because you will get a different error if you try that)...
Yes, it's fine once you know it. Yes, it's fine if you happen to stumble across it. And now that we cognoscenti know how it works, we probably don't care to have it changed...
However on no planet is this genuinely "intuitive" - and certainly not as intuitive as it could be!"
https://forum.onshape.com/discussion/2449/how-do-i-reverse-the-direction-of-a-slider-mate
I couldn't agree more but if most users are OK with mate limit behavior then I'll adapt but the most interesting aspect is that OS prides itself on, (and the ONLY reason I chose this software) its user interface and I find the mate limit interface as confusing as I have ever found in any CAD software.
I've got one more example of some bizarre behavior and I am out and will learn to adapt.
http://www.youtube.com/watch?v=qUpeWNnaUi4
https://cad.onshape.com/documents/4c6f8305284923923f148009/w/cf146972ad27daf85e189cc3/e/5e6625bb5c5ea9d6f5b2fe31
https://cad.onshape.com/documents/b5cd0c49d717a5af7a44f727/w/fc5ef5a48ce20f724cddcb13/e/20f88f2b0386dbdebc8ecdd6
As far as I can see, the measurements should be taken relative to the mate connector of the moving part. However, that implies that the ‘moving part’ now is to be seen as fixed, and the formerly fixed part is now considered to be the moving part. You can visualise this bij actually fixing the moving part in the assembly (and unfixing the formerly fixed part, ofcourse).
Now the dimensions of the limits are easily determined by measuring the distance the formerly fixed part has to travel to reach the limit positions, taking into account the direction of the travel and the orientation of the mate connector of the formerly fixed part.
Offset/limit values are measured from the 2nd mate connector selected to the 1st mate connector but is measured using the 1st mate connector's Z axis orientation. You'll see this if you play with a couple plates mated together with a slider mate.
If you flip the MC orientation of the second part, the orientation of the second part is flipped, but the relative location between the two MCs stays the same. Flipping the orientation of the slider mate has the same exact effect. So, if you flip the orientation of MC2 and then flip the slider mate orientation, you should end up where you started.
However, if you flip the orientation of MC1, the second part will change location relative to the first part. This is because MC1 controls the direction of the offset. Changing slider mate's offset/limit from positive to negative has the same effect. Assume you have a slider mate with a limit of -5in to 10in. If you flip MC1, you can undo the change by changing the slider mate limits to -10in to 5in.
It's convoluted as all hell, but I guess it works. You can go in and edit MCs after the fact, but I wish you could flip both mate orientation and on-the-fly MC orientation as you edit/create a mate. This is how SW handles mates - there is an alignment toggle (aligned/anti-aligned surface normals) and also a flip dimension check box that decides which direction your offsets go. With SW's method, you never really need to mess with the actual limit values. You pick values that make sense, and then figure out the orientation that works. It makes it much easier to get the right orientation and not have to worry about using less-than-intuitive negative number to "less negative" number limits. You can do this in OS, but you have to go back and forth between editing the mate and 2 different mate connectors.
One thing I've learned about the team at OnShape is that they are almost certainly aware of the problems in the interface and are not happy with the unintended difficulties of their design - or not. Hard to say but my guess it's just not a priority,
It seems an easier way to deal with the paradigm is to establish a reference of some kind, be it a face or a mate or whatever, and place limits (both positive and negative) relative to that reference. Right now the reference is a moving target that takes a lot of trial and error to establish just what that reference is. Once that effort is put in (which should be minimal in an efficient interface) then it become easier. Now IMO there's way too much effort needed to figure out what the engineers intended.
We are aware that mate limits are not easy to understand. There are just too many ways to flip orientation in mate definition and so it not easy to come up with a consistent way to find the basis of mate limits. Also the expectation would be that mate basis will be on the static part and moving part mate connector measures distance with respect to static part which becomes difficult to programmatically define as what is moving and what is static is not alway nicely defined. On the other hand, first and second mate connectors are well defined but doesn't work well. We do show mate dimension/values with respect to the mate basis as you drag parts and limit values should be consistent with that. Our hope was that user can drag parts to see the value and set limit based on what mate values they see (not ideal though).
This is timely as we are looking at different ways to make it easy to understand and will be working on it soon. We can certainly contact you to get more feedback once we make some progress.
My purpose in posting the videos is to show the thought process one user goes through when trying to understand limits within OS. I think there is an opportunity to change the paradigm a bit to make it easier to understand and clearer for the user.
First the minimums and maximums do not reflect the actual process and values that the current OnShape limits represent. The current limit values locate the limits in reference to some reference geometry, using the words 'minimum' and 'maximum' but actually locating the limits according to that reference.
If it were truly a 'minimum' that number could never be negative. Negative numbers, in CAD, always represent some location in reference to another and that's exactly what each value (minimum and maximum) represents - a location in relation to a reference - not a minimum or a maximum. If that's true what is that reference location and why call it a minimum? THAT'S the confusing part for me. It seems to be arbitrary or at least very difficult to ascertain on a consistent basis exactly what that beginning reference point is.
Is it the 'X' 'Y' 'Z' axis of the first mate chosen, as if one could remember such a thing during the assembly process? And if it is where is that noted in the interface? Could that reference be determined in another way? And then, all limits be determined from that reference?
Forget the minimum and maximum paradigm and use standard CAD references (both negative and positive) from some specific and user determined reference point. i.e place a limit -.04 from a part face, or along a mate's 'Z' axis, (or any other user selected reference point) then place another limit at +12.2 from that same reference point. Now there are 2 limits placed according to a known and perhaps user selected reference, representing locations in 3D space not 'minimums' or 'maximums'. Now any negative value becomes a normal part of locating things in 3D space, instead of a very confusing value within some arbitrary 'minimum' value determined by an unknowable reference.
I think all the tools are there within OS and nothing I write here should minimize the programming effort required to change things as I'm suggesting but to me OS is all about the interface and I think it can be improved in this case.
If you would like to contact me for any further explanation or if I can help in any way do not hesitate.
I feel like there is a bit of a disconnect here that we may be able to clear up. I don't disagree with you that all the flippers and negative and positive values make it hard to pin down the way you want your mate to move, but I also think that maybe it will benefit you to explain what those "minimum" and "maximum" values actually represent (since it seems that is what you are hung up on).
As an example, if you start to set up a slider mate, you can slide it around, and it will display a value. This is the current value of the mate:
In this example, the mate is currently at approximately -2in.
Now the mate is at approximately +2in.
Now that I know that the mate value moves in this way, I can apply limits that represent the movement I desire. These limits can be positive or negative, the only restriction is that the "minimum" mate value is smaller than the "maximum" mate value. So, if I want the inner piece to have 2 inches of movement and stop when it is 1 inch away from entering the outer part my limits would be minimum: -3in, maximum: -1in.
If I want the inner piece to always stay inside the outer piece and have a full range of piston-type motion, I could make the minimum: 0in, maximum: 5in.
Here is an assembly containing both the limit strategies mentioned above:
https://cad.onshape.com/documents/1e9b24ce2ce68dfc13717c4c/w/7a455dfc4ca2928bd032ba09/e/bdda5b73a743a064e5c2c88d
The limits are in reference to the underlying "value" of the mate (as shown when you drag the mate around). The minimum and maximum just define the range that you want that mate value to fall between. One doesn't have to be negative and one doesn't have to be positive. Both could be positive or both could be negative. You're just defining the range of movement that your mate occupies.
I think once we become familiar with how software works it somehow becomes OK that it works that way.
I have learned through much study and experimentation that the way you just illustrated that OnShape deals with limits is exactly as it does indeed behave. It starts with a reference point, and as you move each part that value increases/decreases in a neg/pos manner giving you a distance value that can be entered in to a field that OS describes as minimum and maximum. I now get it and could probably describe it to a new user but that's not the point I've been trying to make.
Of course I get it - now. Of course you understand it as you are an expert and possibly even the designer of the feature. The point I'm trying to make is that it is VERY difficult to grasp the concepts and intent without knowing too many things and assuming too many parameters that can only be guessed at until the user understands the feature.
I think minimum and maximum are misused as basic paradigms for the feature and you are illustrating exactly that. The values placed in the minimum and maximum fields are referenced from some location and represent exactly that - references from that location - not necessarily minimums nor maximums.
Where is that reference? How does the user know where that reference is? Again one can learn these things through much study but why doesn't the interface define that reference in clear terms? Why can't we as the user choose among a list of beginning references? Let's say the interface allows us to choose a face that the limits will be defined from. Sweet, '0' and 3" from that face. In this case those do represent actual min and max values from that face.
But let's say the user gets to define a mate as the beginning reference point. Now what? Which axis of the mate is the reference? Can we select that as well? Are we still dealing with mins and maxes or more now a reference from that mate's selected axis? I'm saying that OnShape is acting like the latter. It's choosing a reference, then entering values according to that reference, and those values are (incorrectly IMO) labeled as min and maxes where I'm suggesting they simply be pos or neg values based on the reference.
Again I think familiarity with a feature does not make that feature easy to learn or use, it only means that someone has invested the time to learn it. I've done that but it could be so much easier for the user IMO.
I suggest something simple. Add an additional checkbox or directional toggle in the mate dialog that lets you flip how the mate behaves relative to MC1, basically multiplying MC1 Z (and Y) axis direction vector by -1. The toggle would behave the same as flipping the Z axis on MC1 but would be easier to accomplish. It can all be edited within the mate now without having to use silly limits like -10mm to -5mm. That's still better than having to edit MC1 or be forced to use silly limits like -10mm to -5mm. People don't naturally think in those terms. Sure, sometimes I'll want something to move +5/-10 relative to some surface, but usually it's one-sided, e.g. 0-10mm or 5-10mm. Having that toggle would let you you enter the mating process knowing exactly what your limit values will be - no futzing with negative values unless you actually have a bidirectional limit.
There is already a toggle that either aligns or anti-aligns the two mate connectors, so what's one more toggle if it adds greatly to usability. You can make the default value be False, thereby not breaking all the mates in existing assemblies. Whatcha think?
It seems that now OS is choosing that reference mate according to a formula that is pretty well hidden, at least to this user.
So maybe 2 things - note, choose or show which mate is being referenced, then allow limits to be based upon that reference, location, axis, etc.
http://www.youtube.com/watch?v=LKjQl-cpNYA
More importantly, if you can flip the orientation of the reference MC on the fly, you don't really need to know what the reference is. There is still going to be some random flipping, but now it's just a matter of trying one orientation and then another. Just two permutations (assuming you don't count the relative orientation of MC1 to MC2, which should be obvious visually).
Thanks for you indulgence
http://www.youtube.com/watch?v=fiUPrCgx1Tw
If we could specify which MC were the reference then it wouldn't matter which were chosen first and it would add a lot of flexibility and user options to the process.
I think you have made the point the that this needs improvement and we are all in agreement, I know I have to mess with these forgetting how they work everytime I create one. @malay_kumar has taken note and I am sure will be onto this soon. The great thing about Onshape is these things can be highlighted and fixed in a very short cycle time with no reinstall or patches required.
Twitter: @onshapetricks & @babart1977
OnShape is the best software company I ever seen when it comes time to listening and changing - if deemed necessary - so if my suggestion has any real merit I'm confident it will be acted upon in due time and hopefully in a manner that's even better than what I can currently envision.