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...

larry_haweslarry_hawes Member Posts: 434 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.

https://forum.onshape.com/discussion/9346/planar-mate-question-about-limits#latest
«1

Comments

  • owen_sparksowen_sparks 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. 
    Business Systems and Configuration Controller
    HWM-Water Ltd
  • larry_haweslarry_hawes Member Posts: 434 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?



    https://cad.onshape.com/documents/4c6f8305284923923f148009/w/8b7c125a0e558180aab20ca0/e/b5f10e3c32cf46b2669e5bee
  • brucebartlettbrucebartlett Member, OS Professional, Mentor Posts: 2,000 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
    Twitter: @onshapetricks  & @babart1977   
  • larry_haweslarry_hawes Member Posts: 434 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.


  • brucebartlettbrucebartlett Member, OS Professional, Mentor Posts: 2,000 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
    Twitter: @onshapetricks  & @babart1977   
  • brucebartlettbrucebartlett Member, OS Professional, Mentor Posts: 2,000 PRO
    Engineer ı Product Designer ı Onshape Consulting Partner
    Twitter: @onshapetricks  & @babart1977   
  • larry_haweslarry_hawes Member Posts: 434 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.


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


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


  • larry_haweslarry_hawes Member Posts: 434 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.
  • larry_haweslarry_hawes Member Posts: 434 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.



    https://cad.onshape.com/documents/4c6f8305284923923f148009/w/cf146972ad27daf85e189cc3/e/5e6625bb5c5ea9d6f5b2fe31

    https://cad.onshape.com/documents/b5cd0c49d717a5af7a44f727/w/fc5ef5a48ce20f724cddcb13/e/20f88f2b0386dbdebc8ecdd6
  • jan_bouwmanjan_bouwman 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.

     
  • mahirmahir Member, Developers Posts: 886 ✭✭✭✭
    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.
  • larry_haweslarry_hawes Member Posts: 434 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.
  • malay_kumarmalay_kumar Onshape Employees, Developers Posts: 84
    @larry_hawes and all, Thank you for the discussion and all your input is very useful. Please do keep these kind of discussions coming where workflow is not working. I was looking forward to respond for last couple of days but was busy implementing other interesting assembly features :smile:

    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. 
  • larry_haweslarry_hawes Member Posts: 434 PRO
    edited May 2018
    Appreciate your response.

    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. 
  • Jake_RosenfeldJake_Rosenfeld Moderator, Onshape Employees, Developers Posts: 1,528
    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:
    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.
    Jake Rosenfeld - Modeling Team
  • larry_haweslarry_hawes Member Posts: 434 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.
  • mahirmahir Member, Developers Posts: 886 ✭✭✭✭
    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?
  • larry_haweslarry_hawes Member Posts: 434 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.
  • larry_haweslarry_hawes Member Posts: 434 PRO
    Simple example - maybe


  • mahirmahir Member, Developers Posts: 886 ✭✭✭✭
    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).
  • larry_haweslarry_hawes Member Posts: 434 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


  • mahirmahir Member, Developers Posts: 886 ✭✭✭✭
    @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.
  • larry_haweslarry_hawes Member Posts: 434 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.
  • brucebartlettbrucebartlett Member, OS Professional, Mentor Posts: 2,000 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
    Twitter: @onshapetricks  & @babart1977   
  • larry_haweslarry_hawes Member Posts: 434 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. 
  • mahirmahir Member, Developers Posts: 886 ✭✭✭✭
    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).
  • larry_haweslarry_hawes Member Posts: 434 PRO
    Look forward to any improvements your teams decides will create a better UI.
Sign In or Register to comment.