Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape.

First time visiting? Here are some places to start:
1. Looking for a certain topic? Check out the categories filter or use Search (upper right).
2. Need support? Ask a question to our Community Support category.
3. Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
4. 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...

Member Posts: 478 PRO
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.

«1

• Member, Developers Posts: 2,660 PRO
I think you have an assumption in there that one limit must be negative and the other positive.  This is not the case.  The contraint is that the lower limit must be a smaller number than the upper.

As such its valid to have slider limits as 100 and 200
or
-500 and -400

Does that make sense?

Cheers,

Owen S.
HWM-Water Ltd
• Member Posts: 478 PRO
edited May 2018
I think you have an assumption in there that one limit must be negative and the other positive.  This is not the case.  The contraint is that the lower limit must be a smaller number than the upper.

As such its valid to have slider limits as 100 and 200
or
-500 and -400

Does that make sense?

Cheers,

Owen S.
I am not assuming that one value must be negative but am assuming that the value must be negative to set that limit in relation to the mate location if that limit is indeed in the negative direction of that mate's axis. How else would one set a limit that occurs in that negative axis' direction other than using a negative value? And how does that represent a 'minimum'?

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?

• Member, OS Professional, Mentor, User Group Leader Posts: 2,131 PRO
@larry_hawes I am with you on this, it is hard to understand these offsets.

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.
Engineer ı Product Designer ı Onshape Consulting Partner
• Member Posts: 478 PRO
edited May 2018
Here's a really bad drawing of a possibility I thought of for an interface re: mate limits. It would assume origins for each axis and the limits would be input in relation to those axes' origins. In the example below, which reflects the simple model I am working on, the limits are set .09 in the neg direction of the 'Z' axis and a corresponding .09 in the positive direction - all based on the origin, in this case, of the 'Z' axis of the mate.

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.

• Member, OS Professional, Mentor, User Group Leader Posts: 2,131 PRO
I just played with it and what is confusing is when you switch to the negative the top becomes the bottom as @owen_sparks outlined above.

I did a little video to while testing, just waiting for it to load

Engineer ı Product Designer ı Onshape Consulting Partner
• Member, OS Professional, Mentor, User Group Leader Posts: 2,131 PRO
Engineer ı Product Designer ı Onshape Consulting Partner
• Member Posts: 478 PRO
edited May 2018
SO appreciate you taking the time to post that video Bruce!! We may not be using the exact same terms but I saw that you placed your slider mate on the end of the part. This activates both mates which have 'Z' axes that face in opposite directions. The limit values only pertain to one of those 'Z' axes but there's no way to guess which one until you start to add values and watch the limits change.

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.

• Member Posts: 478 PRO
edited May 2018
I think, that in your video Bruce, OnShape also arbitrarily chose a 'Z' axis to calculate limits from. Can you see that the slider mates have 'Z' axis' that face opposite directions? And that OnShape has chosen one of those to calc limits from? But which one? And why?

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.
• Member Posts: 478 PRO
Another quick interface idea....

• Member Posts: 478 PRO
OK - One last shot at what I think would improve the interface....

• Member Posts: 478 PRO
I see this is not a new discussion and it appears that most are OK with this behavior?

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.
• Member Posts: 478 PRO
edited May 2018
One more inexplicable case of mate limit behavior but again most seem to be OK with this behavior judging by the non-response to this thread so I will adapt to the crazy and carry on.

• Member Posts: 2 EDU
Hi
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.

• Member, Developers Posts: 1,277 ✭✭✭✭✭
edited May 2018
@larry_hawes, I'm with you. Limits are NOT intuitive. I generally just muck around with flipping orientation of mates/mate connectors and/or using negative values until I get the desired results. However, there is indeed a rule, vague as it may be.

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.
• Member Posts: 478 PRO
Yes, it is convoluted as all hell and it is possible to figure out how to make it work but wow. There's definitely better ways to limit the mates than the current paradigm but until the developers find an interest in same we'll muddle through.

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.
• Member Posts: 478 PRO
edited May 2018

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.
• Moderator, Onshape Employees, Developers Posts: 1,646
Hi @larry_hawes

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:

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.
Jake Rosenfeld - Modeling Team
• Member Posts: 478 PRO
edited May 2018
Thanks Jake, and I believe you are making my point.

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.
• Member, Developers Posts: 1,277 ✭✭✭✭✭
edited May 2018
@Jake_Rosenfeld
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?
• Member Posts: 478 PRO
I think something simple like this could work well as long as each mate is well defined and easy to locate/modify. When I open, for example a slider mate, there will only be (and appropriately so) limits in the 'Z' direction of 'one' of the necessary 2 mates. How can we know which mate is being referenced? Simply flipping how the mate behaves will do no good if the user doesn't which mate is being flipped. Can we select or choose that mate in some manner? If we could, then any reference would be based off that mate's location and axes' direction.

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.
• Member Posts: 478 PRO
Simple example - maybe

• Member, Developers Posts: 1,277 ✭✭✭✭✭
edited May 2018
The reference is always the first MC selected, whether it's created ahead of time or on the fly. If that reference's orientation can be flipped in the mate dialog, then it would essentially work like SW's mate dialog, which I find more intuitive when it comes to limits.

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).
• Member Posts: 478 PRO
Discovered something that may or may not matter. The point is I JUST discovered it after trying to understand this literally for days.

Thanks for you indulgence

• Member, Developers Posts: 1,277 ✭✭✭✭✭
@larry_hawes, per my last post, the measurement reference is the first MC. What moves or is anchored can change, but the first MC is the first MC.
• Member Posts: 478 PRO
mahir said:
@larry_hawes, per my last post, the measurement reference is the first MC. What moves or is anchored can change, but the first MC is the first MC.
OK, but in practice remembering which mate connector was chosen first gets confusing and requires the forethought to choose the correct MC first. I had this EXACT experience and had to go back and choose the other MC first even though I couldn't remember which I had chosen first the first time.

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.
• Member, OS Professional, Mentor, User Group Leader Posts: 2,131 PRO
Hi Larry,  I think it makes a difference in the order the mate connectors are selected, try selecting part 1 first then part 2, I see you're selection list say part then 1, although I'd have to go try.

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.
Engineer ı Product Designer ı Onshape Consulting Partner
• Member Posts: 478 PRO
Hi Larry,  I think it makes a difference in the order the mate connectors are selected, try selecting part 1 first then part 2, I see you're selection list say part then 1, although I'd have to go try.

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.
Thanks Bruce and I think you are right about which MC gets chosen first. Tried it a couple different ways and got various, inconsistent results.

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.
• Member, Developers Posts: 1,277 ✭✭✭✭✭
I know it's difficult to imagine, but I believe adding that extra orientation toggle would fix the confusion. In the end, it wouldn't matter which MC is selected first. You would still be able to get the desired relative motion from MC1 to MC2 with positive limits that make sense. I'll start an improvement request given the time (and ability to properly explain the improvement).
• Member Posts: 478 PRO
Look forward to any improvements your teams decides will create a better UI.