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.

Equivalent of Fusion 360's "As-Built Joint"

david_brophydavid_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?

Comments

  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 2,068 PRO
    edited March 2023
    I'm thinking OS removed all assembly planes & origins to prevent you from creating mates to the assembly. Turns out these mates disrupt inheritance when dragging one assembly into another. 

    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_pestyeric_pesty Member Posts: 1,885 PRO
    Dont mate directly to the origin in your assembly: just create an explicit mate connector on the origin first and mate to that instead and this will "stay put" in higher levels.
  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 2,068 PRO
    edited March 2023
    As a check, that mate won't inherent to the next level because it's referenced is to the assembly. All assembly references get dropped when importing an assembly to another assembly. You still have to group and maintain the group. I believe the group is passed to the next assembly but it's floating. 

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


  • eric_pestyeric_pesty Member Posts: 1,885 PRO
    If your sub-assembly is constrained with groups and mates it will move in an upper level but still as a group so you just have to constrain one thing.
    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! 

  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 2,068 PRO
    I think the issue is constraining the parts that don't move in an assembly. The problem is what happens when the part studio changes and keeping the assembly updated to the part studio. Many people are fastening everything together and creating long lists of fastened mates. It seems like there needs to be a link between the part studio and assembly for those things that have no motion. Possibly that's what a "as built joint" in fusion does. I do what Eric says group, fix & manage. If the part studio changes drastically, just delete it, reinsert it, group it and fix it. Pray all the other mates update their references.


    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.





  • eric_pestyeric_pesty Member Posts: 1,885 PRO
    billy2 said:
    It seems like there needs to be a link between the part studio and assembly for those things that have no motion. 
    Any reason you can't use a ("open") composite part for this instead of a sub-assy? At least in the earlier design stages where part studios change?

    A "dissolve composite" in the assembly would be nice (it would delete the composite and replace it with grouped parts)
  • david_brophydavid_brophy Member Posts: 51 ✭✭
    billy2 said:
    Possibly that's what a "as built joint" in fusion does. 

    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.




  • david_brophydavid_brophy Member Posts: 51 ✭✭
    Any reason you can't use a ("open") composite part for this instead of a sub-assy? At least in the earlier design stages where part studios change?

    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.

  • eric_pestyeric_pesty Member Posts: 1,885 PRO
    Can't you just add the door frame to your group (instead of the whole sub-assembly)?
  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 2,068 PRO
    edited March 2023
    @eric_pesty composite part is a great idea, I hadn't thought of that. It also changes the colors of the parts and then the BOM is messed up. Overall it's the idea that would work, make the assemblies positions linked to the part studio. I think for now I'll just fasten mate in the assembly all those things that don't move in an assembly. It goes fast and now that we can stuff all those mates inside a fasten folder, we can keep the mates that move more available. 

    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.

  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 2,068 PRO
    @david_brophy I sent you a message with my login email. If you share your document with me I can build the assembly in a different branch and then if you like it, you can merge it into your main branch.

    Typing these forum responses takes longer than doing the assy & part studios.

  • david_brophydavid_brophy Member Posts: 51 ✭✭
    Can't you just add the door frame to your group (instead of the whole sub-assembly)?

    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"






  • david_brophydavid_brophy Member Posts: 51 ✭✭
    billy2 said:
    I'd make the hinge in a library assembly with P/N, source, cost in properties. 
    The door isn't something I'm fabricating myself. I will specify the dimensions and the whole door assembly will be manufactured by an external company... So I just need the whole door on the BOM as a single item. However I do need it modelled relatively accurately because I'm fabricating trim around it, and I need the door to open in my design so I can check for clearances etc.
  • david_brophydavid_brophy Member Posts: 51 ✭✭
    Here's the main "box" assembly:

    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. 
  • eric_pestyeric_pesty Member Posts: 1,885 PRO
    You are right that you cannot group a "sub-component" of a sub-assembly from a higher level, my bad...

    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
  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 2,068 PRO
    edited March 2023
    @david_brophy when you assemble using coordinates, that's called assembling by coordinates and is used a lot at higher levels. When working with parts from part studios many use traditional mates. There is a time in a project when you shift from one style to another and it is usually architected from the beginning of a complex project.

    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.




Sign In or Register to comment.