Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape.
First time visiting? Here are some places to start:- Looking for a certain topic? Check out the categories filter or use Search (upper right).
- Need support? Ask a question to our Community Support category.
- Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
- Be respectful, on topic and if you see a problem, Flag it.
If you would like to contact our Community Manager personally, feel free to send a private message or an email.
Equivalent of Fusion 360's "As-Built Joint"
david_brophy
Member Posts: 51 ✭✭
I'm having real trouble arranging parts / sub-assemblies in an assembly. My sub-assemblies are pre-positioned correctly using shared "master" sketches. I want to bring them together in a final assembly. In Fusion 360 I'd use the "As-Built Joint" function that just attaches things together using their current locations.
The "Group" function works fine for rigid sub-assemblies, but as soon as they have a joint they can't be grouped.
I've tried adding fastened mates to the origin, but this doesn't work (the parts can be moved even when the origins are mated).
Any ideas?
The "Group" function works fine for rigid sub-assemblies, but as soon as they have a joint they can't be grouped.
I've tried adding fastened mates to the origin, but this doesn't work (the parts can be moved even when the origins are mated).
Any ideas?
0
Comments
I can take a library assembly and drag into my existing assembly, and the library assemblies mates are inherited into the existing assembly. It allows multi levels of assembly while maintaining kinematics.
If you move parts from a part studio accidentally, you can always use the move triad and return to origin. I tend to use a fasten mate to position the part, then I add it to a group, which throws an error until I delete the fasten mate.
I'm just careful not to move the part studio parts in the assembly and I'm always updating the group. I use to fix everything, but they now throw an error when 2 things are fixed. It's now a habit maintaining the fixed group for non-moving parts coming in from a part studio.
I wish things didn't automatically move inside an assembly, seems like things would be better if everything came in fixed and then you had to unfix them to allow them to move.
Having nested assemblies moving correctly is really nice inside OS and worth the extra effort. Assembling by coordinates is not easy in OS and you have to maintain the locked state of parts coming from a part studio using group and fixing one thing inside the group.
@eric_pesty that's a great idea because you won't burn up your single "fix".
OS doesn't have a problem with floating assemblies which seems odd to us guys who want to lock things down.
You just have to know remember that the "origin" doesn't exist outside of that assembly. So don't mate things to the origin. "fix" basically constrains something relative to the origin so also doesn't translate up. You can fix one "reference" item that you constrain others to and then you will just have to constrain this in the context of a higher level assembly.
Basically you have to think of sub-assemblies as a way to organize parts but it has no effect on "motion". It's a bit un-intuitive at first coming from other CAD but it actually behaves like "real world".
Just think of the origin as your workbench or vise: fixture your one fixed item on your bench while you assemble other things to it in a sub-assembly and when you put that into a higher level you will have to attach "something" in that upper level to connect them!
I never liked flexible in SW and felt it was limiting. Everyone built massive assemblies to show motion but they weren't real.
We built a lot of automated equipment and having everything working at the top level and also having things broken down into their respective sub-assy is great. I have a library of robot assemblies that I can drag into a work cell to perform pick and place operations and it's motion mates stays in it's sub-assy. The mates are tuned to robot's 0 position so my library assembly matches the robot. I'm wanting to create OS positions for the robots and export them to the robot. I was talking to a guy who programmed the robots at tesla and he said it'd be a big boost to developing the software for automation while designing the cell. He uses OS.
I also worked at Biosero and developed drivers for automated equipment. Greenbutton go created automated sequences for 1,000s of lab equipment meaning lab technicians could easily create assays for automated processes.
Eventually , when OS takes off, you can have a piece of equipment and develop the motion sequences inside OS. You could develop automated equipment and it's sequences inside OS. There's no reason why you can't export the sequences to an automation cell over TCP/IP. Design it, program it and run it.
Go look at Jenny Science. They wrote their controller software in HTML. I bought one, hijacked the command sets and wrote my own controller for it. I could take a brand new linear actuator and hang it on the network. My software could config the drive and send sequences to it. It was truly plug & play. I never needed to run their software to configure their drive. We used ignition at the last company I worked at. All of that stuff is pretty easy to do these days. Jenny Science was surprised that someone could hijack their command set. I never tied the drive to OS but I could. I could send the commands to the drive and then have the drive send me updates that I could change the model inside OS. I gave Jenny Science my source code to run their drive with a raspberry pi.
We need more equipment manufacturers to stop writing windows apps to config their equipment. Demand that everything be done over TCP/IP. Stop buy equipment that doesn't support TCP/IP.
Don't freak out, I never addressed the internet gateway and IT had no problems with me sending packets over TCP/IP. I was running sockets over the company intranet. They wouldn't let me hang a raspberry pi on the network, but instead, gave me a mini mac. That's fine with me. During covid, I could monitor my automated equipment from home. I was forced to VPN into the company network because I never touched the gateway. IT scans for computers on the network that accesses the gateway, you don't want to do that. You want to play nicely with IT and a company network.
Automation is going to change in the near future. I think we can build an automation cell in OS and also program it. At least provide a starting point.
A "dissolve composite" in the assembly would be nice (it would delete the composite and replace it with grouped parts)
The "as built joint" function in Fusion is exactly the same as the "group" function in OnShape, but the group function throws an error when adding a non-rigid sub-assembly to a group.
The sub-assembly I'm trying to add is a door, so has a revolve mate allowing the door to open. It's not a rigid assembly, so can't be added to a group.
The sub-assembly I'm trying to position is a door, with door-frame, hinge and door. The door-frame is connected to the door via a revolve mate. So it has to be an assembly, not a composite part.
I was working on an assembly that had over 200 fasten mates. The list was so long, you couldn't scroll up/down.
We used replicate to cut list by 75% down.
It's hard for people to understand you make one part in a partstudio and then replicate it in the assembly ie... nuts & bolts.
@david_brophy I'd make the hinge in a library assembly with P/N, source, cost in properties. Then when assembling your door & frame you can add your hinge from your library of purchased part by filtering when inserting by a library property that'll only show you hinges. If your hinge works in a hinge assembly (with limits), you can easily add to it to anything from this point on and all future projects. It's one hinge in your company that you have used all over the place. Then the price changes for the hinge and and all your products update their pricing. Your BOM's can easily create accurate pricing and qty. You could start swapping out doors with a configuration and work the different door size with another configuration. Finally you could put your assembly on your website and have customers create orders for you.
After all CAD should be about creating assemblies & boms. The geometry is just something we have build.
I wish there were more discussions about how to put assemblies together.
Typing these forum responses takes longer than doing the assy & part studios.
When I click on the door frame to add it to the group, it selects the whole door sub-assembly, and shows an error: "Mate cannot be added between member of the same group"
https://cad.onshape.com/documents/c5434df9f366c2824fe15a23/w/3f04ccbc24ff57396a2395dc/e/aa0849b38d5b3e31b82cf8d0?renderMode=0&uiState=6402ab66da7830593ccba2ea
Here's the "door" assembly:
https://cad.onshape.com/documents/cdfa5e6306600aa6cdc984ba/w/3fe793db3b43171f89f2846a/e/f63e8e40b01cf76562863ba2?renderMode=0&uiState=6402ac18aee35b0cba70730a
... I've implemented a messy work-around by creating a sub-assembly called "Origin" that just has a mate connector at the origin. This is added to the main "box" assembly and also to the "door" assembly. The two "origin" mate connectors can be then fastened together (see "Fastened 1"). This is an awful mess. This could be fixed by allowing non-rigid sub-assemblies to be added to groups.
However, why not just use a fasten mate the door frame to the hole in the wall? Especially if the door is an "off the shelf item" its origin should in logical local place.
I'm also not sure why you are using a sub-assembly for all the windows like this. Mating things to a reference sketch is actually a good technique but I would put these sketches in you top level and mate things directly in here instead
I expected to see all windows, doors in the same documented and I figure you know what happens when you use many documents.
I didn't see any door hinges in your top level assembly, but with all your subassemblies, I don't think you'd have a problem adding a hinge to your top. If the hinge works with a revolute mate, then when you mate the hinge to your iso shelter and then mate the door to the hinge, the door would open. If you keep dragging the assembly into others, the door will always open in higher assembly levels. Seems like the hinge belongs to the door that way when inserting a door, you get the cut and a working hinge to mount the door. Seems like the windows should open also.
I like that you're performing boolean subtractions from inserted windows and doors using incontext, that's cool.
When you post a public document, I have to make a copy of it before I can work it. If I work the copy, you can't see it. Another thing is that I end up with a copy of your document. Currently my space is composed of 95% copies of other people stuff. If you share, you don't expose to the world, I don't end up adding to my collection of copies and you can stop sharing and I go away any time you want. I wish people would share when seeking up, it's cleaner, more powerful and easier to communicate. After all Onshape is a collaboration system. Everyone makes public, but sharing is better.
Your project structure is pretty intense and well thought out. Your top level BOM is working well. I like the way things can be drug into containers and quickly build a tiny house. I see a web interface allowing people to customize their on houses.