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.

An opinion on Onshapes mating system

traveler_hauptmantraveler_hauptman Member, OS Professional, Mentor, Developers Posts: 419 PRO
edited January 2015 in Product Feedback
I don't like mate connectors in Onshape. Normally I'd suck it up, remind myself I'm not getting paid to like it, and move on. However, in this preproduction phase it's possible there are people inside Onshape that don't like it either and so I'm going to try to articulate my viewpoint as best I can in hopes that it will give them support to help change things if they exist.

Let me start by saying I deeply respect what Onshape is trying to do as a company and I really enjoy seeing what they are doing with the product.

Geometry is more than what gets rendered to the screen. The math that is our understanding of geometry is elegant and beautiful. However we must recast the math into a numerical approach in which points, curves, surfaces and more complicated constructs are parametrized with a bunch of numbers that the computer can deal with. These are then converted further to a form that can be rendered onscreen as vertices, edges, and faces.

There is one final conversion. The most important one. I, the viewer, convert those edges and faces into something that has meaning. The pixilated edge becomes a perfect line once again. More importantly, the what started out as math becomes a set of tools for me to reason about the real physical world. The onscreen approximation of an ideal cylinder, is itself an approximation of a real bearing shaft with all the variations created by the materials and manufacturing processes used.

Solid modeling is about geometry and mating is about creating relationships between geometry. From a user interface perspective that means one needs to select some geometry and then define some relationships. Onscreen we have vertices, edges, and faces (some of which are for reference geometry) and the simplest relationship, coincidence, has useful meaning for each combination of those. Some other CAD programs take advantage of this but Onshape is different.

Let's start with Mate Connectors (MCs). SolidWorks calls the same thing a Coordinate System. In my day-to-day work I call them Frames or Transforms depending on context. One could argue it's one of the more complicated pieces of 3D primitive that users deal with and an interesting choice for Onshape to make this the fundamental geometric primitive for mating. Each MC has a position and orientation (relative to every other piece of geometry). Two MC's made coincident (fastened) are fully constrained in position and orientation and have 0 freedoms. To get the remaining Onshape mates, you make two MC's coincident and then relax one or more degrees of freedom.

Onshape dresses up Mate Connectors to be a one-size fits all universal solution but it's the same as the point,line,plane approach. Squint your eyes one way and the location + Z axis defines a plane. Cross your eyes another way and the location + Z axis defines an axis. And of course if you want a vertex, just use the location of the Mate connector.

<redacted> In the first draft of this I wrote all sorts of speculation about why Onshape took the approach they did. In the end it's not constructive and hopefully I'll get a good meaty technical discussion with the Onshape guys about why they did this eventually. The bottom line is that I can do everything with Mate Connectors that I could with points, lines, and planes. However, after using it for a while, I think I prefer the former approach. Let me see if I can articulate why...

When using Solid Modeling for mechanical design, I am usually thinking about what constraints to create  and avoid between parts. Over-constraining a real mechanism will cause it to wear quickly and perform badly. For many real designs, we can only make two types of constraint surfaces reasonably well in a cost effective manner. Planes and cylinders. These two physical surfaces are the foundation of the machines I create. (Other surfaces are possible and used. Spherical and 1D & 2D (Cam) surfaces. But we use them much less often).

The constraint from using two real cylinders, (peg and hole), is idealized by two coincident axes in a CAD program. The constraint for two real planes is that of two faces coincident in a CAD program. Thus an axis to axis mate and a plane to plane mate let me assemble a machine model in a manner that is analogous to real life. And, if you do it this way without cheating, without putting constraints in the model where there are none in real life, the freedom in the model will reflect areas of the design that need to be improved. (A third mate that is key to the above approach is the tangency mate. I'm leaving that out of the discussion for now since Onshape does not have it and when they eventually do it's unlikely to fit into the Mate Connector paradigm).

When I use the 6DoF mate connector of Onshape, I have to go through the extra mental workload of identifying the Z axis and figuring out how things will move relative to each other. The fact that Onshape had to add the 'Animate DoF' feature highlights this difficulty. Contrast this to point, line, and plane constraints which I find intuitive to reason about and I suspect others do to.

This is not to say that 6DoF constraints are useless. I usually have two phases in the course of a design. In the first phase I just need to position things relative to each other, make sure they don't interfere. In Solidworks I would use the equivalent of mate connectors and fasten mates and revolute mates. But in the second phase where things are being finalized and a manufacturable and maintainable design is needed, all these rough mates get removed and replaced by mates that have meaning in the physical design and then those mates are over-constrained to help catch unintentional changes later on during design maintenance.

Meanwhile the amount of noise in the model created by the myriad of potential mate connectors creates useless choice. One square face with no other features has 21 potential mate connectors! Which one is the appropriate one? For two square blocks, all 21 work for a fasten mate equally well. I guarantee that if this is the way Onshape does things in the long run that every design group will have a multi-page policy on mate connector selection for new team members to get up to speed on in order to maintain design consistency. Too much choice (when it's not needed) is generally a bad thing.

Don't get me wrong. When placing a new Mate Connector (Coordinate system / mate reference in SW parlance), having this same plethora of options available is awesome. But that is only useful when creating a new coordinate system (or Mate Connector) for a specific purpose, and not so useful when mating a typical bunch of parts.

For automatic mate connectors we don't need this. If Onshape only let me select vertexes, edges, and faces during mating, and gave me a single mate connector for each, I bet it would handle 96% of all cases just as it does in other CAD programs.

In summary, I'm not too keen on the Onshape mating system. I'm pretty confident at this point that I understand what they did with their approach and gave it a chance. I'm assuming their plan is to build up the mate system to have capability equivalent the others and I'm giving them the benefit of the doubt there too.

I think automatic mate connectors create too much noise and I think compressing point/line/plane mating primitives into a coordinate frame super primitive creates a beast that is much less intuitive to work with.

As stated above, I'm not trying to bash the Onshape guys here. Just sharing my perspective.



  • raj_Onshaperaj_Onshape Onshape Employees Posts: 106
    Thanks for taking the time to highlight your frustrations with onshape mate philosophy.

    Let me see if I can highlight some of the positives of using mate connectors and higher level mates

    1)  The design intent is usually clearer with higher level mates.  If you have two components that are fastened it is immediately obvious that they are so in Onshape. In a CAD system that allows primitive mates you can have to look at two components and do some mental analysis of all the planars/coincident .. mates to figure out if the design intent was to actually fasten them together.

    2) Usually higher level mates usually results in considerably lower of number of total user visible mates for the same effect. So I think it makes understanding the mating scheme easier for other users and troubleshoot mating problems.

    3) You mentioned a two phase approach of mating in your workflow. With mate connectors defined in part studio  you can do assembly simulation before the parts are fully spec'd out. One can go back and redefine the part studio mate connectors. So even in your first phase one can do real final mates.

    That being said we are doing work to make creating higher level mates as easy as primitive mates in other CAD systems and not overwhelm user with the mate connectors on the screen.  Ability to hide mate connectors has been implemented. Each face/edge already has a appropriate default mate connector associated with it. So to create a planar mate you can just pick the face and not worry about a particular mate connector on it. We are also working on creating mates by dragging and dropping mate connectors... 

    Thanks for your feedback

  • traveler_hauptmantraveler_hauptman Member, OS Professional, Mentor, Developers Posts: 419 PRO
    Raj, thanks for taking the time to respond and comment.

    Sometimes I think that Onshape thinks of mates as a way to position parts within assemblies. However this is only the least interesting way of using mates.

    As a designer I use mates for 3 major tasks. One task is describing and verifying the process of assembling the parts into an assembly. This is my phase I above. In this task one must simply verify that the parts can be physically moved through space without collision in a sequence that allows assembling the parts. Once that is done then it is documented in assembly drawings. For this task mate connectors work fine as stated above. 

    Another task is modeling the real physical joining of parts. 6dof mates (fasten mates) can model welds and adhesives. In a typical project for myself, these will make up 1%-5% of the mates. The remaining physical joins are holes constraining cylinders, flat surfaces pressed against flat surfaces, and non-flat surfaces pressed against any surface. The mates that best model these joins are axis-coincident-to-axis, plane-coincident-to-plane, and surface-tangent-to-surface. 

    The benefit of restricting oneself to mates that have physical analogues is that it can reveal problem areas in the design. This becomes more important as design complexity grows. A simple example is a bearing held on a shaft by retaining rings. One might be tempted to mate the bearing to the shaft using the equivalent to Onshape's revolve mate, however if you instead only make the axis coincident (cylindrical mate for you guys) then the bearing is free to slide along the shaft until you add the retaining rings (which only get plane coincident mates). This creates an inherent design check... the design is not finished until the bearing is fully constrained by the actual parts providing the constraints. 

    Now there is a limit to how well this works. It's not perfect. But it catches enough issues that I use it for every complex design. Having under-constrained parts highlighted in the parts list (as they are in solidworks) creates a nice ToDo list. You aren't done with the design until you have mated all the parts using physical analogue mates and fully constrained every part.

    The above mating technique segues nicely into the final task that I use mates for. Maintaining the integrity of a complex design.

    When one returns to a complex design with hundreds or 10's of hundreds of parts, after the project has been deployed, it is not trivial to make changes. The power of parametric modeling is that constraints and features can drive other constraints and features, and so on. While we are in the middle of a design we hold much of these relationships in our head and can understand the full impact of a change pretty quickly. But when we return to a design we have either never seen before, or have not seen in a long time, then every single change MUST be checked against all downstream dependencies to make sure we are not adversely other parts with our change.

    I think you will agree that navigating and understanding the dependency tree in a unfamiliar model is challenging. 

    One way to deal with this is to overconstrain assemblies. If you have two plates joined by a bolt circle, and you mate one plate to the other using a single mate connector, you can change the holes in one plate, forget to change them in the other, and easily send to manufacture two plates that will not work together.

    However if you instead mate each hole in the plates to each other, the mate solver will fail to solve if you do not change the holes in the same way for both plates. You get a nice big red warning on all dependent parts that have not been updated correctly. 

    (This is a simple example to illustrate how it works, in reality one would typically use the same sketch to generate the holes in both plates so this would not be a problem...)

    Mating each mechanical interface feature on every part using only mates with physical analogues will create a model that, because it is overconstrained, will fail to build correctly until it has be fixed in a way that would let it be assembled in real life. It takes me less than a minute to add 7 more mates to a 8 bolt bolt-circle. It can (and has) save hours of an engineers time plus wrongly manufactured parts a couple years down the road. 

    So that where I'm coming from. To respond to your points:

    1) Communication of design intent is a really important part of the design process. Every team develops their own conventions to do this and it's my experience that they converge somewhat. I agree that for a 6dof constraint a single mate is clearer than multiple mates. If the goal is to communicate clearly a fasten mate then we mate coordinate systems just like Onshape. Usually when I design a welded or adhered assembly I do it in a common context (using the same driving sketches) so using coincident mates on the pre-existing origin coordinate system is the easiest and clearest. Is the rare situation where I'm welding a subassembly, placing the coordinate system at the interface is more appropriate. 

    2) The number of constrained and free degrees of freedom is the same no matter what mating approach you use. Simple math. So then the question is, what representations are easiest for people to reason about.

    Mate connectors are coordinate systems. A much more complicated piece of geometry than planes, lines, or points. It's my opinion that humans don't have a good analogue of them to reason with. I make my living working with coordinate systems and I spend my day waving my hand splayed in the right-hand rule in the air and picking up objects and spinning them. Presently in Onshape the meaning of a mate is so unclear that you have added a "animate degrees of freedom" tool to help. I predict that if you guys continue to use mate connectors, you will change from a generic triad representation in the 3D model to DoF specific representations in the 3D model.

    So even though there are "more" primitive mates needed to define a given set of constraints and freedoms, I think they are easier to reason about. One can quickly build up a picture of constraints and freedoms by looking at the list of mates.

    3) I think you misunderstood a little bit about the phases and I hope that my more detailed description helps. The two phases have different purposes. As I stated above, mate connectors are adequate for the first phase but cumbersome for design checks and overconstraining the assembly.

    Thank you very much for engaging it the dialog. I appreciate the time you guys have put in so far and I really look forward to what you and the rest of the Onshape team continue to produce. 

  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 2,005 PRO
    edited February 2015
    2015/01/31 9:15am created
    Traveler thanks for this discussion and the technical background. Because of your post I've decided to dive into these mate connectors and see if they work for me.

    Original Post

    As an example, here's a simple 3 component assembly that a friend of mine assembled.

    On inspection you see there's 4 mates for 3 components which doesn't seem right. I think new users will do this same thing unless there's a massive training campaign.

    Breaking it down further, there's 2 mates for 2 components which is very similar to the constraint based method. This isn't how OS works and we should have one mate for each component.

    Check the math
    For fun, I mapped the DOF to the mates to see if OS got the math right. To the right of the image below I have a table that lists the DOF for this assembly based on the world coordinates. The red "X" means that DOF is locked. For planar 1 mate: z trans, x rot & y rot are locked out.

    Planar 2 is added to the table. There's no y trans constraint which means this assembly is indeterminate. The red component should move along Y.

    Ok, so the red component doesn't move in this assembly so I need to keep looking. Turns out planer 4 has a reference to the red component. From the table, every DOF has a red "X" and now this assembly is deterministic. The red component won't move.

    If I suppress planar 4, then the red component should move along y. It does, and more importantly did OS get the math correct? Yes.

    Let's do it right
    I've deleted the previous mate connectors and will attempt to add proper mate connectors. I want to mate these 2 components.

    Using assembly mate connectors, I pick features that represent what I think I need.

    Now let me pick the correct mate, Raj, which one should I pick? Turns out none of them work.

    Don't freak out, I've never planned on using assembly mate connectors. Let me go to each part and define the mate connector in the part. Now I know how this part will behave in the assembly so defining these part mate connectors in the part doesn't rub me the wrong way.

    I've imported this assembly from SW and there's one huge part studio that's not fun to work with. My parts are in this huge part studio but I'll manage. I found the parts and hid everything else and have added the 2 mate connectors.

    I go back to my assembly planning on using the part mate connectors except I can't find them. Where are they? Is this a bug? I can't get my part mate connectors to show up in the assembly. I was planning on using them to assemble.

    Since that didn't work, I'll create the mate connectors inside the assembly. This isn't good and I'm not happy.

    I've added a slider mate to the 2 assembly mate connectors and it works. One mate, not 3 constraints.

    The last mate is trivial. Click on one edge and then another. Bam! done. Now I'm going to have a mix of part and assy mate connectors which doesn't seem clean. Where do the mate connectors belong: parts or assemblies? If they are suppose to be in the parts, why isn't it working? Traveler these are the strategies we need to figure out.

    I have 2 mates & 3 components. Yeah!

  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 2,005 PRO
    edited February 2015
    -Pro/E beta positioned components based on DOF's and Danny Dean stopped the release and insisted on a constraint based system. His reasoning was people don't think in terms of DOF. It wasn't a ruling from superior beings that brought us constraints.

    -Mate connectors vs. constraints, it's not choice between good or bad, it's a choice between 2 evils. Which poison do you want to swallow this morning?

    -Constraints are very inefficient, look at all the DOF with multiple red "X". How many times do I have to say don't rotate about y? Theoretically you can have 6 constraints to make a component deterministic (I guess you could have an infinite number of constraints). Holy crap batman! That's a mess. And this is the reason assemblies are such a mess in other CAD systems.

    -Mate connectors inside OS don't work, needs more. This assy example is very simple and based on my post, it's not working. I agree with Traveler, mate connectors don't work. Raj, make this work and show us how it's done. Take this simple assembly and show me a good strategy.

    -Mate connectors are closer to the DOF's than constraints therefore I like mate connectors. I'm a transformation guru therefore the complexity doesn't bother me, but I don't think others want'm and was the reason constraints were created. Constraints are messy and I really don't like that. Mate connectors are more difficult to understand but cleaner. I favor the cleaner approach.

    -Reducing the constraint count for an assembly is needed badly. Traveler you talk about this and I weight this with more importance than anything else. This is the reason I favor this mate connector approach over the constraint paradigm even though it's not working yet.

    -OS needs to ghost these mates in an assembly so we can see them when I open the document. This would win me over. I think others would see the benefits also and prefer the more difficult mate connector approach vs. the messy constraint approach.

    -Traveler, you're a contractor, some one's going to have to explain this to customers. Figure it out, double your rate and go make tons of money. Remember, there are no VARS.

    -I'm going to end with this last conclusion. Look at the valid OS assemblies below. Neither are real world. You can tell me that's how the math works and I'll tell you my assembly won't do either of these. Therefore assemblies don't work, they don't represent real world and we need to develop a more accurate model for real world mechanical assemblies. I guess we are just starting. It's not a math problem to solve, it's about creating a tool I can use.

  • traveler_hauptmantraveler_hauptman Member, OS Professional, Mentor, Developers Posts: 419 PRO
    @bill Thanks for sharing your viewpoint. I really like how you've presented it as a narrative. I had to cut some discussion and qualifying points out of my original post because I exceeded the wordcount. Next time I'll try to remember to use pictures.

    This post has me thinking... I'll respond as soon as I have time.
  • brucebartlettbrucebartlett Member, OS Professional, Mentor, User Group Leader Posts: 2,136 PRO
    edited February 2015
    @Traveler Hauptman interesting discussion, now is certainly the time to raise concerns. I've been thinking about this for the last day or so but haven't time get my idea's down, you have set the bar high on this one but it is an in depth topic. I also struggle with the mating system in Onshape for certain operations but find it extremely quick and user friendly for other operations.

    @bill liked your table for the dof. Also excellent idea for workspace identification of mates. When you stepped back into the part studio did you make sure you had owner part selected for your mate connector?

    • Dropping a part in and using a single fasten mate to fully lock it down. Bang, Bang, Click and done. Great for bolt in hole stuff but to get speed in the work flow you have to have predetermine mate connectors. @Traveler Hauptman I have never bothered multi-constraining parts as you have mention find I have enough problems without adding extra's, maybe this is laziness on my or most like my fellow workmate be-half.
    • Love the easy at which you can switch between mate types.
    • Love the simplicity of the re volute mate.
    • Love the Lock in and flick around the axis feature (or what ever it is called).
    • Struggle with odd shape parts. I would normally use a lot of plane to plane co-incident mates can't use these in Onshape for two reasons  1 planes don't come through to the assembly and 2 the multi-body part studio method of modeling tends to have more parts positioned off the origin. 
    • I don't like not being able to do offset on the planner mate. Painful having to use the mate connector to do this. 
    • Not mating to an assembly sketch.
    • not be able to click on a part and see it mates
    • Seeing all the mate connectors

    Unknowns/waiting for improvement.
    • Group mate. Still haven't mastered dropping a part studio, updating the part studio and redoing the group 
    • Ball mate, looks good but have not used yet.
    • Slot mate, have not used yet. Does it pick up the ends of the slots? Would be nice to have stop points at the end of the slots and also for the revolute mate and set angles. 

    I do like the Soildworks mating system but do not like the mate maintenance, I spend large amounts of time fixing mates. If this system, being a combination of the Multi-body Part Studio and the Mate connectors can reduce the maintenance I will persist. 

    This a part studio study branch of my factory trolley all individual parts to be assembled in a onshape assy  also mate connectors added to some parts at the origin to replicate the planes, no mirror or patterns (I used the part mirror and patterns to repeat the corners for production).

    Found it hard to assemble this part, do-able but hard. I think mirror and patterns would make it easier. 

    If in Solidworks I would have built it in the assembly and mated plane to the sketches, I do understand this is prone to errors.

    This is an assembly with a layout sketch I used with mated in rough components, I spent weeks on this geo, the wheels and bits of frame help with the visualisation during development. I have had to re-think this method for Onshape but still can't get the same effect. (Dimension rubbed out on image to protect IP).

    Using similar method in the part studio seems to work fine without messing with the final assembly. It is a bit disconcerting moving the parts out of position though. I moved the sketch with the final switched on allow rebuild in motion. 

    This is the assembly of the above Part Studio not a issue on the rebuild even with the loose sketch which i have moved though motions and left in a random position. I am also coming back into this assembly after 3 weeks and it's very hard to see what mate is what, even worse the mate connectors not really helpful to visualise what's going on here, I really want to be able to click on the parts and see related mates in the tree. 
    Engineer ı Product Designer ı Onshape Consulting Partner
    Twitter: @onshapetricks  & @babart1977   
  • caradoncaradon OS Professional, Mentor Posts: 300 PRO
    edited February 2015
    Great analyses, guys.

    I think mate connectors can be a hassle to achieve desired mechanical behavior in certain situations.
    Take for instance small assembly as shown below.

    My brain got twisted working out how to make the spring follow along the motion of the clamping arms. FYI, it involved two 'helper parts'. Maybe I'll post a breakdown of the mating setup later on.
    It would be very straightforward in SolidWorks, in Onshape it isn't.

    I really think we need better & more 'mechanically motivated' mating functionality.
    Like others have said also, thinking about mates purely as tools to limit DOF is too shallow a concept for many mechanical problems out there in the real world.

    Another example where Onshape currently falls short is in tangential mating (sliding surfaces, cam-rocker...). I wonder how Onshape will deal with this in the paradigm that is the mate connector...

  • traveler_hauptmantraveler_hauptman Member, OS Professional, Mentor, Developers Posts: 419 PRO
    edited February 2015

    Setting aside whether Mate Connectors are a preferred paradigm....

    One can create the same mates using mate connectors as you can with SolidWorks coincident, distance, and angle mates. Using a proxy part (one whose physical body is not part of the real assembly) a parallel mate is possible. So right now Onshape can create the same constraints as all the basic SolidWorks mates. 

    I have no doubt that when Onshape fleshes out the current mating system it will have equivelent functionality to other CAD systems.

    @Bruce, I had to step back a little to recast my normal approach to mate connectors. Your datum plane mating hate is fixed by creating manual mate connectors in the part on the planes that have meaning during mating, and in the same way you can mate to an assembly sketch (considering that in Onshape an assembly sketch is any sketch in the part studio). I share your pain with the awkwardness of setting mate distance and having to scan though every single mate and watch which parts are highlighting to pair parts with mates. 

    Assuming Onshape stays with the Mate Connector paradigm I think we can guess at some of the improvements that will come sooner or later. 

    * Angle and translation parameters of mate connectors will be brought forward to the mate workflow, either by presenting the mate connector parameters directly in the model to be edited, or via mathematically redundant parameters presented as specific 'distance mate' and 'angle mate' added to the current set of mates. Either way the creation and edit workflows get easier for this type of mate.

    * Equivalents of some SW mechanical mates will probably arrive (Gear, rack & pinion, screw, universal joint) before limit mates.

    * Limit mates will be implemented on the 1DOF free mates (revolute, slider). Limit type mechanical mates (slot, hinge) will be close on their heels. Heck, maybe Onshapes solver is already fully capable and it's simply a matter of rolling out the UI in a controlled manner.... 

    * I expect the UI will gain improvements to discovery and navigation of mate dependencies. Which mates belong to which parts.

    All of these guesses are to say that I don't see any barriers to a fully functional mating system being created. I'm not sure I conveyed that well in my first post. My issue is whether it's limiting using coordinate frames as the only mate geometry versus using the full set of points, lines, planes and coordinate frames for mate geometry, combined with my belief  that points, lines, and planes are more intuitive to work with in most cases. 

  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 2,005 PRO

    We're thinking along the same lines. Here's my part mate connector constructor:

    This mate connector is defined based on the edge of a component and I suspect that OS should up-select and know this mate connector belongs to this component. The mate connector should bind to the component. Since I imported all this, this component was already in an assembly. I suspect the mate connector should be there and this is a bug. Let's have OS tell us how this should work.

    On a different note, I submitted a feedback ticket asking that the mate connector inherit it's visual properties from the component. If I hide the component, it's mate connector should hide also. I want them to be bound together and behave as one.

  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 2,005 PRO

    Why are you restricting our creative juices by limiting our post size?

  • brucebartlettbrucebartlett Member, OS Professional, Mentor, User Group Leader Posts: 2,136 PRO
    bill said:

    We're thinking along the same lines. Here's my part mate connector constructor:

    This mate connector is defined based on the edge of a component and I suspect that OS should up-select and know this mate connector belongs to this component. The mate connector should bind to the component. Since I imported all this, this component was already in an assembly. I suspect the mate connector should be there and this is a bug. Let's have OS tell us how this should work.
    @bill, did you try selecting the "Owner part" down the bottom. This also allow's connection to a part if the geometry is outside the part eg. you can connect Mate Connector's to a layout sketch then link them to an unrelated part and have them blow through to the assembly with that part. I have used this to build assemblies from a part studio layout sketch. Don't think theres a bug here although it might might be nice to auto select the owner part.
    Engineer ı Product Designer ı Onshape Consulting Partner
    Twitter: @onshapetricks  & @babart1977   
  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 2,005 PRO
    Thanks Bruce,

    So I added the "Owner part":

    That did fix my problem.

    I guess that's powerful, that means the edge reference can be anything in the part studio. The edge doesn't have to belong to the part.

    You are the master Bruce!

  • Aaron_Easton_NickovichAaron_Easton_Nickovich Member Posts: 21 ✭✭
    I have been playing around with mating and connectors a lot recently. Bill's narrative was about my shitty mates before I really started to experiment with the possibilities OnShape provides. Instead of using things I didn't understand like sliders, pins, fasteners, etc. I used the things I was used to doing and that was the messy way of SW constraints.

    I realized after about an hour of making an ungodly mess of an assembly that what I was doing wasn't the right way. I took on a different approach to another assembly and experimented with ways to simplify it to the least amount of mates as possible.

    I started out doing it the SW way and constraining all the parts in every direction. this face to that face, this radius to that radius, etc. After I completely constrained the assembly, I had about 40 mates for a 20 part assembly. In order to back track and find a mate that I wanted to change, I had to scroll through the list and find the one that highlighted the two faces that I didn't want anymore.

    Then, I told myself this can't be right. There's got to be a reason they have so few amount of SW mates and all these other types of mates. So I took a different design approach. I figured that if only two parts need to move relative to each other then just fix all the parts that don't move to each other and contrain only the parts that are designed to move. As you can see, only 4 mates total was required to make this happen.
    The one problem I suspect will happen from mating this assembly through grouping is that it may not update well when it needs to be redesigned. Will this work anymore? I don't know, but when I come to the stage of redesign I suspect I'll need to go back and break this method and use a lot more mate connectors. For now, this assembly is locked in place and won't be redesigned so it works.

    The good thing about this new model technique is that the design intent is made extremely clear. Instead of planar mates which could mean any number of surfaces are moving relative to each other, the design intent is apparent because there are only 3 things are allowed to move and from the "slider mates" it's clear it must be something that slides along some axis. and from the model I bet even a child could guess which parts are going to slide. Again, this may blow up in my face in the near future, but for now it doesn't get any simpler than that.
  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 2,005 PRO
    edited February 2015

    90% of a design doesn't move or moves as a group. Why would you say that grouping isn't robust? I think it will be ok. I guess we'll see. Constraining everything is a real drag, hope we don't have to constrain everything.

    One assembly strategy that's becoming clear to me is to create no assembly mate connecters. If the assembly needs a special mate connector, put it in the part and use it in the assembly. Now for simple mates, do it in the assembly.


    What do you think about this strategy?

  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 2,005 PRO
    I just updated this assembly to my/our latest assembly strategy and it worked. Actually it was easy and painless. 1 assembly down, 45 more to go.

  • traveler_hauptmantraveler_hauptman Member, OS Professional, Mentor, Developers Posts: 419 PRO

    The one problem I suspect will happen from mating this assembly through grouping is that it may not update well when it needs to be redesigned. Will this work anymore? I don't know, but when I come to the stage of redesign I suspect I'll need to go back and break this method and use a lot more mate connectors. For now, this assembly is locked in place and won't be redesigned so it works.

    I think Onshape is still figuring out how to deal with inertial frames like the origin. Based on the progression I've seen I think they originally thought they could eliminate the origin and give a cleaner user experience.

    I expect them to figure out the small set of situations in which we need an inertial frame and eventually hide the origin again, only exposing it when needed and getting back the clean experience.

    A "Position as in PartStudio" option on the group mate would fix your updating problem.

    In the meantime, here's the workaround:

    To get a new part into a group (without deleting and breaking dependent mates), add a mate connector at the part studio on some feature of a part already in the group and associate it with your new part. In the assembly, mate the mate connector to that same feature in the group, add your part to the group, and delete the temporary mate. Delete the mate connector to keep things really clean.

  • andrew_troupandrew_troup Member, Mentor Posts: 1,584 ✭✭✭✭✭
    Traveler_Hauptman suggests a "Position as in PartStudio" option for group mates, to ensure positions update automatically and painlessly following design changes.

    Bravo ! I personally think this option will inevitably be included, and the sooner the better.

    This would cement the truly brilliant "clean sheet of paper" opportunity of the PartStudio approach.

    I applaud those at 
     OnS responsible for the underlying philosophies of that approach.

    Their  liberal thinking about multi-body part modelling contrasts with the conventional (and essentially reactionary) view that "it's just laziness which impels people to try and use multibodies when they should be building assemblies". I hold my hand up to having taken that view on numerous occasions, so I'm not in a position to throw any stones here.

    The OnS innovation is a gamechanger.  

    What's more: Here we see the fruits of human behaviour being used as valuable information, rather than being treated as just another opportunity to condemn and belittle. 
  • sergio_p_sergio_p_ Member Posts: 37 ✭✭
    Hi, I'm a very frustrated also with the OS mating system. Maybe they are too powerfull, but what I see is that for example for making a cilindrical mate between two cilindrical parts, there are too many faces/features avalible to select, when should be enough with higliting the cilindrical ones and/or his axis only

    Again, is my feeling, maybe they are too powerfull for me :-).

    CAD, FEA and Engineering Consultor
    +54 9 11 2250 0564
  • andrew_troupandrew_troup Member, Mentor Posts: 1,584 ✭✭✭✭✭
    A recent video clip on the smart use of the Shift key will (I think) help you considerably, @Sergio_P_

    When I get a bit of time I will hunt back and post a link
  • jakeramsleyjakeramsley Member, Moderator, Onshape Employees, Developers Posts: 654
    Sergio_P_ said:
    Hi, I'm a very frustrated also with the OS mating system. Maybe they are too powerfull, but what I see is that for example for making a cilindrical mate between two cilindrical parts, there are too many faces/features avalible to select, when should be enough with higliting the cilindrical ones and/or his axis only

    Again, is my feeling, maybe they are too powerfull for me :-).

    Hello Sergio_P,

    A cylindrical mate is one where the z-axes are aligned, but besides that can be offset and rotate.  The way our system does mates, we don't force that a cylindrical mate actually be applied to cylindrical components.  This allows for flexibility of choosing how certain points and what degrees of freedom are constrained to one another.  This is why we don't filter out any of the implicit mate connector points.

    However, for simplicity we try to infer the correct mate connector based on the geometry you are hovering over.  If you want to add a cylinder in a cylindrical mate, you can select either of the end cap faces or the cylindrical face and we will snap to the axis of the cylinder by default.

    If you have an example that this is difficult to work with, please submit a feedback using the '?' and we'll see if we can make some improvements to the process.  Examples of what you would like to do is the best for pointing us in the right direction of what your requirements are and how we should address them.
    Jake Ramsley

    Director of Quality Engineering & Release Manager              onshape.com
  • 3dcad3dcad Member, OS Professional, Mentor Posts: 2,470 PRO
    edited May 2015
    In my work 90% of mates are done in part studio, thanks for the brilliant multi-part design which saves tons of time doing fastened mates.

    But the problems begin when I need some moving parts (that 10% in each design), I bring the whole part studio in assembly, group all and add some parts with non-fastened mates - everything good at this point. But if I need to make any changes to part studio (I mean moving or creating new parts) then I have two different design, one in part studio and one in assembly.

    I would really need these two maintain each other. 

    At this point, I don't have clear thought what needs to be added or changed - I need to do some more testing to be sure what I wan't.
    Do you have this problem or ideas how to make it work for all of us?
  • andrew_troupandrew_troup Member, Mentor Posts: 1,584 ✭✭✭✭✭
    I think you ask an important question, @3dcad. I don't pretend to have much in the way of answers yet: I haven't yet done enough assembly modelling of the sort where these issues might become problematic, and so far (apart from time constraints) my "rationalisation to self" has been that many of the capabilities I would need to do serious work still lie in the future. Lofting has been one important milestone, and 3D sketching will be another. The currently impoverished landscape of the feature list is a third, for me, and assembly-related things, such as limit mates, a fourth.

    I'm hoping to get enough slack in my workload in the coming months to tackle a project which will push the envelope quite a bit harder, partly because I do feel that if you want to really get to grips with a tool, there's some benefit in being forced to come up with simplifications and workarounds.

    Some of the best models I've seen, even of quite tricky stuff, rely relatively little on high-end features.
    I'd even consider attempting a whole project (under the right circumstances) before drawing comes on stream, simply squirting it out to another package for detailing / drawing.

    My other main practical motivation is this: I think it would be desirable for the long term penetration of the product if this user community continued to get even more ambitious for the product and even more engaged in its improvement.

    To me this includes doing whatever we can to get our thinking clearer about the answers to such questions, and to provide the feedback and smart input to help get the product licked into a shape where it can really make a splash when it's launched.
  • Stuart_TodStuart_Tod Member Posts: 56 PRO
    Reading through all the posts above leaves me thinking.

    Is there a reason why CAD packages (I've worked with Solidworks, Inventor and now Onshape) don't have 'solid' option/button which causes components (parts) to become solid (i.e. impenetrable by any other object)? This option would solve a whole number of 'mate' scenarios - a 'solid' pin in a slot in another 'solid' part can't pass through the body, but has all other degrees of freedom - so it can behave exactly as it would in the real world.

    A 'solid' cylindrical body in a round hole in another 'solid' part would automatically behave as if it had a revolute, cylindrical and slider mate.

    A 'solid' part with a planar face would butt up to another 'solid' planar face, but not pass through it - and still has all other degrees of freedom. Just like sliding my coffee mug around on my desk.

    You don't need a cam mate, a 'solid' cam and a 'solid' follower could only behave properly because they can't pass through each other.

    The 'make solid' button would make assembly mimic real world conditions - it would also (as the assembly was built up) solve design questions through automatic collision detection with other 'solid' parts. A 'suppress solid' button would allow you to place a part inside an assembly, for instance if you forgot to put a bolt in!

    After all that, the only 'mate' we would need would be the 'fasten' mate, which replicates glue, weld or whatever other fastening you can envisage in the real world, applied after the parts have been positioned where you want them. So you could 'glue' a nut and bolt together through a hole in a pair of mating flanges, and the real-life mimicry is complete. Delete or suppress the 'glue' (= unscrew the nut in real life) and you can move the nut, bolt and both flanged components.

    Positioning constraints would be temporary and only used for placing components exactly. Think of laying up the parts for a welded frame on the bench, and cramping them into position (add constraints, carefully measured) then welding them into position (glueing as described above). After which you take the clamps off (delete constraints).

    You wouldn't need constraints for fitted components that are made 'solid', as they could only fit into each other where they are physically able to do so. Think of the baby toy with the shapes and the slots and the holes. Square peg in a round hole (unless of course the peg is small enough to fit through the round hole....).

    This approach seems so simple that I'm sure the code writers are going to have a long, detailed reason why it can't be done. But I'd like to see it attempted!

  • pete_yodispete_yodis OS Professional, Mentor Posts: 666 ✭✭✭
    edited June 2015
    @stuart_tod ; CAD packages have this capability with the motion analysis software add-ons.  You can simulate real world contact between bodies.  The problem is there is a tremendous performance hit to run those computations all the time.  Computations on those interactions can take minutes to 10's of minutes or more depending on the complexity of the geometry.  Mates in CAD packages are lightweight in that regard.  Onshape is positioning their mates to much more cleanly carry over to motion analysis - which is traditionally a problem in current packages.  It will be interesting to watch that front - especially sitting on top of AWS and its massive compute capability if needed.
  • 3dcad3dcad Member, OS Professional, Mentor Posts: 2,470 PRO
    @stuart_tod  Your idea is great and while computers develop and bandwidth grows I'm sure it will be something like this in future.. Currently we can only simulate smaller areas like @pete_yodis mentioned. There has been some discussion to add this feature in onshape, search for limit mates to read and participate.

  • andrew_troupandrew_troup Member, Mentor Posts: 1,584 ✭✭✭✭✭
    edited June 2015
    Solidworks has had this capability within their standard modeller for over a decade

    (They added it in 2003, I think; if so, they were probably the first mainstream, for-the-masses MCAD provider to implement the physics engine, supplied by D-cubed, IIRC) ...

    but it's not specific to individual parts: it works for the whole assembly. 

     .... I can't recall exactly what it was called - "physical dynamics", maybe?. It can be handy, and is hugely impressive, but it didn't end up proving to be a silver bullet.
  • 3dcad3dcad Member, OS Professional, Mentor Posts: 2,470 PRO
    How do solid works (physical dynamics?) handle situations where 8,3mm dowel goes into 8,0mm hole or nail goes into wood?
  • andrew_troupandrew_troup Member, Mentor Posts: 1,584 ✭✭✭✭✭
    You used to have to make a configuration where the wood expanded around the nail, IIRC, at least in the early days. I don't know if it has acquired some sort of "ignore" capability since then.
  • dennis_20dennis_20 Member Posts: 87 EDU
    In SolidWorks the "physical dynamics" is the correct term, but it is with regard to parts that still have some available degrees of freedom, i.e. if you have a pin in a bigger slot and can still move it around then if you select to use the physical dynamics the sliding will be limited to where the pin runs into the slot.  (It does no good for the situation of a pin being mated concentric to a smaller hole.)  Though this physical dynamics is very handy it is not a panacea.  Since the calculations can be intensive the software has to do the best it can, typically by making the computations as fast and frequently as possible.  However, it is possible to move something faster than the software can keep up and therefore achieve a "jump".  I see this most often with a tangent mate.  It can be frustrating when the parts are moving around as you want and the tangency flips from what you want to something that you don't want, yet still is a legitimate solution to the tangency constraint.
  • vishwarath_taduruvishwarath_taduru Member Posts: 4
    I think there has to be a comprehensive tutorial for understanding mate types in OS
Sign In or Register to comment.