Onshape, The Future of CAD?
Recently, I have begun working with the new-ish CAD system: Onshape. Onshape is a cloud based CAD software combining both modeling software and PDM. I’ve worked with more than a dozen different CAD softwares creating various types of addins, and Onshape very clearly stands apart.
Creating an addin for most CAD software generally works in the same way. You create your program (usually in C#), place the program in a specific location, and the CAD loads it in and handles the rest. With this process, you have control over deploying your application (and licensing), and to an extent, the libraries and technologies you choose to implement your solution. The difficulty in typical CAD add ins is the implementation process. Debugging and testing can be extremely difficult and time consuming. The available APIs generally give the bare minimum in terms of functionality. There is no help with the math or geometry, which can add to the development time and difficulty.
Working with Onshape has been a different experience. As a software developer, 3 key aspects stand out the most.
Document management, version control, and sharing are all a challenge for most CAD programs. Entire separate PDM solutions are sold to accommodate these challenges. PDM’s have their own issues. The IT cost of having a server and VPN solution for remote access. Files require being “checked in” or “checked out” limiting file usage to a single designer.
Onshape works a lot like a cloud storage solution, such as Google Drive or DropBox. Users can very easily share documents, and even work on documents concurrently. The surprise feature here is that when another user is in a document. You can “follow” a user, and see the document from their point of view. A nice feature when collaborating with a remote employee.
The biggest change from other CAD programs is how version control works in Onshape. Most developers have used either a Git or SVN type system. Onshape gives similar features with branching version control. Branches give great flexibility when modifying documents that may become their own separate document, or for a set of changes that need to be implemented alongside another development stream. Your changes do not affect another user’s changes until the branches are merged. Onshape’s version control system is definitely the future of document management. No other solution offers the same collaboration options, and other CAD's would require huge changes to catch up.
Barrier to Entry: Custom Features
A custom feature is something that ranges from hard to impossible to implement. It takes a lot of specific technical know-how, and usually years of experience with a specific CAD. As a result, any custom work that needs to be done is unlikely to happen in house, and finding an expert could be challenging.
Onshape’s solution is “FeatureScript”. Built right into Onshape is an IDE for their custom development language. FeatureScript has been specifically designed for creating design features. It is chock full of functions to aid in the creation of a feature.
The barrier to entry in creating a custom feature is unbelievably low. While all programming requires a little bit of a learning curve, basic programming concepts and a good understanding of parametric design can get you started.
The tutorial feature shows a user how to create a "slot" feature, used for joining laser cut pieces. The tutorial takes maybe 15-30 minutes to complete, and lets the user create a slot feature with a few clicks.
For a more experienced programmer, FeatureScript offers some powerful options for design automation. Curious what that looks like? Look through this github page full of excellent samples. FeatureScript seamless handles everything from wood working joint automation to nesting. When features become this easy to automate, the bar for "is this worth automating" becomes much much lower. Companies using Onshape should seriously consider on-boarding a developer before expanding and already large design team. The overall time savings could be huge.
The obvious point of contention to Onshape is that it is a cloud based solution. There’s a lot of argument about ongoing costs, freedom, etc. But from a developer’s perspective, the only real issue is that it requires an internet connection 100% of the time. When the internet goes down there is nothing you can do. But, as a cloud solution, users gain a whole lot.
Updates to Onshape are painless. They happen like magic.
Most computers work. CAD programs require powerful computers to run smoothly. In a time where companies are investing in work from home measures, powerful computers can be a huge cost. It’s not suggested, but I can even load Onshape up on my phone in a pinch.
On-boarding is a breeze, file sharing is easy, and collaboration is actually possible.
Support is a much simpler process. The support team has access to both your models and the same CAD setup as you, so there's no confusion and "system specific issues" that can't be fixed.
Remote work is trivial - pretty relevant right now.
Conclusion: Onshape is great!
It hasn't been long, but I've been greatly enjoying working with Onshape and FeatureScript. Its been a very different experience from working other CADs, almost unreal. The workflow for creating a feature is so simplified, it almost feels like something is missing. No messing around with UIs, installers, dll's of unknown versions. There hasn't been a moment of "But the solution works on my computer". I've spent a larger portion of my time directly on the solutions that create value.
Onshape is a fresh take on CAD, and I'm excited for its future.