Trying to decide between these three CAD systems? Read on, because I have some thoughts and experiences with each that might help you become better informed about what they're each good at.
But first, a bit about me. My name's Josh, and I'm an industrial designer with nearly 10 years CAD experience. I started in design school using Rhino, then Solidworks. When I graduated and got my first design job, I moved straight to Siemens NX, and then when I branched out with my own design business, I switched to Onshape. The reasons for the switches were varied, and the road hasn't been smooth, so in the interest of every curious CAD user out there, I'd like to share my experiences with each package, what I like about them, and what I dislike.
If you don't have the time to read this whole article, here's the TLDR:
Standard basic parametric CAD capability. Frustratingly slow and restrictive at times. Basically no direct modelling tools. Feature trees that often like to break. Overpriced for what it offers.
World class capability, but built on an incredibly old code base (Unigraphics). This means some aspects are frustrating and slow, but overrall the toolset is simply unparalleled. The direct modeling toolset, surfacing and direct object selection by themselves puts NX on another plane to that of Solidworks. However, the licensing and purchasing options are simply nightmarish. Whatever you do, do NOT pirate this software (for reasons I will go into in this article!)
The system I want to love, but can't. A great idea, but frustratingly flawed. CAD in the cloud is a flexible, utopian dream. In theory, it is incredibly freeing to be able to switch between different computers. For instance, start on your main workstation, then switch to your laptop in the airport, and then on your phone for client presentations. And because Onshape is a completely new system, features are being released fortnightly, and designed from the ground up to be infinitely better than other systems. Having said that, the general functionality is about as basic as it comes. You need more clicks and more features to achieve simple results. And worst of all, sometimes it just doesn't work when you really need it to, either because your internet connection is down, or problems with their servers. I want to love Onshape, but I am incredibly close to ditching it for a few critical reasons. Read on to find out why.
In the beginning there was Solidworks
Solidworks has cornered the education and small business markets. Not because it is good, but because of an entrenched user base and aggressive sales. This is the system I learnt CAD on, and when I was using it, I loved it. A lot of my peers complained about rebuild times and features that would fail for inexplicable reasons, but I often was able to find a way around these issues and would defend it often. Why, because I hadn't used anything else. I think this is the default position of a lot of SW users. The devil you know is better than the devil you don't.
From an industry perspective, SW is an entry level CAD system. It is designed to make simple, solid body objects and to make functional, highly controlled assemblies with those parts. It is not designed for class-A surfacing or critical curve control. If you don't know what those things are, I might cover them in more detail in another article, but for now - it's basically the difference between the surfacing seen on a poorly designed hairdryer versus the smooth, flawless curves on a Mercedes. SW simply doesn't have the capability to design a car, or many other objects. For that, you have to step up to Alias (for A-surface modelling), CATIA or NX.
To give you some perspective, none of the big serious design companies use SW. Off the top of my head, Apple, Dyson and Mercedes all use Alias and NX for different stages in the design process. No self-respecting top-tier design company uses SW. Having said that, a HUGE swathe of mid and low-tier companies use SW. I know this might sound like a diss, but it's not. A lot of businesses use SW, so it's a useful tool to have under your belt, but at some point if you're serious about CAD work you're going to have to step up.
Now to go into a bit more detail about what SW is good at, and what makes it unique.
It's parametric solid modelling, capably done. It's all about managing the feature tree and making sure it is efficient and well built. When being taught how to model in SW, my teachers went to great lengths to make sure we fully constrained every sketch. And it's true, in SW this is important because if you don't, the whole tree can break randomly if a sketch becomes undefined and conflicts with future features. Let's be honest, how much of your time in SW is spent fixing a broken feature tree? I would argue up to 20% of an entire project can be spent re-building and fixing broken features. And god forbid if you want to go back and make significant changes in the tree. You could spend hours just getting back to where you were before. As a student, I just thought this was the way CAD was, and that it was my responsibility to shepherd and manage a temperamental feature tree that could fall over at any moment. A majority of your time is spent thinking about strategies to prevent the software failing, instead of focusing on the design.
I have news for you. It doesn't have to be like this. But before I continue, I will offer up a disclaimer, the approach I'm about to describe won't be for everyone. Let's call it my personal philosophy on modelling.
If you already know, in a finite way what your part has to look like and achieve, then SW is an efficient and capable system. But if any part of your design is still fluid or experimental, or liable to change significantly, SW is hopeless and clunky. The only way I can explain this is by directly comparing to a better system. Let's jump straight into how you can model in NX.
Who needs a feature tree? Modelling in NX
NX also utilises a feature tree. But it is infinitely more powerful, because if you choose to, you can bypass it completely because of a suite of tools known as direct editing tools. Siemens holds many patents for these tools, which is why you don't often see them anywhere else. Solidworks actually does have a pitifully small number of them, 'move face' and 'delete face', which it actually had to license from Siemens to even include. NX on the other hand, has dozens of these tools, each more dizzyingly powerful than the last. As an experienced CAD user, coming into NX was one mind-blowing realisation after the next - that everything I knew about modelling was wrong.
Let me start with a few practical examples. What if your feature tree is starting to get complicated, perhaps over 150 features, and you're experimenting with different forms and you're starting to see slower rebuild performance. On Solidworks, your only option is to suck it up, spend hours trying to make the tree more efficient, or worst case, remodeling the entire part to be more efficient. In NX, you can simply apply one command called 'remove attributes', which completely deletes the feature tree, and leaves you with pure surfaces and solid bodies. The file size immediately drops, and your speed immediately recovers. No more features. No more rebuilding. Just pure, dumb solid bodies.
But what now you ask, I've deleted my features, so now I'm stuck - I can't parametrically edit the model. In SW, you would be right. It's game over. In NX with its direct modelling tools, you can do almost ANYTHING with the dumb solid bodies that you want to. Move them, split them, delete them, replace faces, make surfaces tangent, and of course, start applying new parametric features to them. Without spending a whole article explaining all the direct editing commands and how they work, suffice it to say, that using this technique you can model dramatically faster and more efficiently. Deleting your feature tree saves you profound effort and keeps you focused on 'what's next' instead of constantly fixing your tree.
One example workflow is modelling all day and then at end removing attributes (deleting the features) ready for a clean set of solid bodies to start with the next day. No feature re-building. No time intensive sketch constraining. Just fast, fluid modelling towards your design goal. Obviously, if you're working on an A-surface model and want full parametric control of a complex surface, this is a good time to make an efficient, parametric tree. Especially because NX includes world class curve and surfacing tools. But the point is, that this approach isn't appropriate for every modelling task, especially during a fluid design process.
More reasons why NX is better
Ok, let's quickly talk about 'convert entity'. In SW, everything is defined by a sketch. If you want to use existing geometry, you have to create a sketch, and then convert an entity into a sketch line or point. Then you can apply features to these sketch objects. Now contrast this to NX where you don't need to create a sketch to reference a feature. In fact, 'convert entity' doesn't even exist in NX (actually, it does, but it's a nearly useless niche feature), you can simply click on existing lines, points or entities within the feature dialogue to quickly and powerfully create geometry. It's smarter, it's faster, it uses less clicks and less features. Very difficult to fully grasp how powerful this is if you're still in the SW paradigm, but unforgettable and irreplaceable once you become used to it.
But you pay for this kind of power
This is only scratching the surface on the million reasons why I think NX is profoundly more capable than SW. But it should be, because NX is priced at least 4 x more than SW per seat, not to mention the yearly maintenance fees.
There is absolutely no question which is the superior system. But as always, a purchasing decision is never only about what's 'best', but what is most suitable for your needs. NX is designed to be rolled out in big corporations. Their licensing system is complicated, convoluted and incredibly non user friendly. In fact, some elements of NX are downright horrible to use. Because the core of the system is derived from Unigraphics which has existed since the 70's, some simple things like sketching, or creating drawing templates, or exporting STL files, or exporting faces as DXF are infinitely more frustrating and difficult than they have to be compared to SW or OS. I spent nearly a week trying to create a beautiful, custom drawing template in NX, and it remains to this day one of the most needlessly complicated and frustrating processes I've ever had to undertake in a piece of professional software.
So if NX is so great, why did I switch to Onshape?
Ok, let me explain.
First, Onshape is nothing like NX. If there was any system that was a polar opposite to NX, it would be Onshape. The two systems that are more familiar would definitely be SW and OS. This makes sense, because the CEO of OS is the guy who founded and led SW in the early years, but frustrated with the company's lack of vision for moving into the cloud, sought funding and founded Onshape on the dream of an entirely new CAD paradigm. Hats off to him, because in many ways he succeeded. Onshape is bold, modern, and really cool on many levels. Cool enough that I have been using it for the last year and a half, but perhaps not cool enough for me to continue using it.
Here are some of the reasons I made the switch:
1. The cost. I used NX in a company that already had a license for me to use. And given the choice, I would use NX every day. But when I left the company to start my own design company, I had to choose a professional CAD package to use every day. Onshape has one of the lowest total cost of ownership for any full CAD package available today. But to be clear, I wouldn't have chosen the cheapest CAD package for that reason alone, rather, I think OS is a great value proposition.
2. The ease of file export. Onshape is far and away the best at simple things like exporting files. I know it sounds basic, but as a designer who constantly exports a lot of different formats daily, exporting files from Onshape is a dream come true. Just right click any body -> export and then choose your format. In NX, it's at least 5 dialog boxes to export an STL.
3. Great drawing capabilities. Easy to use display states, simple but powerful drawing tools and thank god, it is easy to make and use beautiful drawing templates.
3. Teamwork and file management. It's great for teamwork and completely replaces the need for file management in a system like Dropbox. Having two people logged into the same document working on different parts and seeing them update in an assembly in real time is a joy. And not having to manage files is amazing. All the parts for a project live in tabs in a single document file. The whole paradigm takes a while to get used it, but once you do, it's very cool.
4. You can do all the basic things that SW can do. This is actually a pro, because you can do every basic part modelling task fairly capably. It doesn't even come close to being half as powerful as NX, but most of the time, if you're not designing G2 or G3 continuity A-class surfaces, this is acceptable. At least for my product design goals, it has done the job of simple to moderate complexity parts for manufacturing. In that way, it can pass as an entry level professional tool.
5. Fortnightly updates. The Onshape team are working hard to roll out new functionality, and since it's still a baby in terms of the general maturity of other software in the field, each update is a slew of generally satisfying, low hanging fruit upgrades. If it weren't for the responsive, fast upgrades, I would definitely feel less comfortable with the lack of maturity in the software. Whenever I feel like a feature is missing (which is often), I often reflect on the fact that they may introduce it into the latest update. As an example, they only introduced basic 'feature tree folders' in the latest update (as of Feb, 2019).
But now back to reality, and one of the main reasons I decided to write this article. The agony that there is no perfect system, and the realisation that they all have their ups and downs. Onshape for the most part has been a capable tool, but sometimes, at key times, it has failed me big-time. And I'm having a hard time recommending it because of these flaws.
Here are the things I dislike about Onshape:
It's a cloud based service, and this cuts both ways. It's great from a file sharing, machine fluidity point of view. But get ready to say good-bye to your work if the internet drops out. I downplayed this at the start, assuming I wouldn't often be without internet. But let me tell you - every time the internet has dropped out for whatever reason, it has been a very difficult pill to swallow to not be able to continue working. It's silly, absurd, and makes you feel stupid for choosing the system when everyone around you can at least continue their CAD. Example, I was in China for work and our internet connection was incredibly unstable. In combination with this, and the great firewall of China, I had a consistently unstable connection to the Onshape servers. We tried everything to fix it, but at the end of the day, I spent nearly 40% of my time waiting for my CAD system to respond because of the poor connection. I wasted a few days wrangling with the system that I should have spent working on the project. This was almost unforgivable for a professional system right off the bat.
Even on a world class fiber connection back home, when the internet drops out, so too does my work. Today, for 30 minutes it happened. Not a deal-breaker, but very annoying. Last year, we had 7 days internet outage. Each time this happened, say goodbye to Onshape, unless you can tether your computer to your phone's hotspot. Doable, but annoying.
Browser timeouts. Onshape runs in the browser, and so it needs to open a connection to their servers. Unfortunately, after about 15-20 mins, the session times out and you have to reload the session. This is annoying and wastes time.
Slow rebuilds. Not very robust to errors. Same old problems that SW has on display here.
Can't handle super complex parts or assemblies. Parts I had running just fine in NX, ground to a total halt in OS. Talking to tech support, they told me my models were too complicated. I don't like my tools not being able to handle what I consider a normal workload. I had to develop strategies to simplify parts (by removing threads for example), separate more parts and learn the new assembly paradigm in OS, which as an aside, works well generally.
Less feature options than SW requires even more features to do similar tasks in SW and NX. If NX is the most efficient in terms of least number of features required to complete a task, then SW is second, and OS last.
So what if cost wasn't a factor / why don't I just pirate the software?
Well, I'd use NX obviously. And in fact, many people do this by pirating the software. It's fairly easy to do, and makes the most sense for students and beginners who don't want to pay for a limited and restricted version of the software. But let me tell you how bad an idea this is by way of a true story: a colleague of mine who actually owned a legitimate copy of NX, unknowingly had an illegal copy of NX installed on their machine from a previous operator. Without their knowledge, the software was phoning home to Siemens every time the computer, and therefore the Siemens license server started up (which is a system level process).
One day, this person used the machine at the corporate headquarters of a large company. This person immediately received a cease and desist letter from Siemens, who threatened to sue for millions if this person didn't buy another license. Luckily they avoided legal proceedings, but they did have to purchase another (unnecessary and extremely expensive) license. All this to say, that they are tracking every cracked version of their software, and they will take legal action if they can prove you are using it professionally. I would guess Solidworks are doing the same thing, but as far as I'm aware are much more lax about cracking down on it (for now). So be careful, and always use legitimate, licensed software.
Personally, I think Siemens and Dassault Systemes should provide their software to students for free, just like Autodesk does. It's a great idea because it creates life-long users who will be willing to pay when they go professional. These large player making their software difficult to acquire, a pain to install and use is one of the reasons I am greatly preferring Onshape at the moment.
There is no perfect system. Annoying to hear, I know. NX is superior in modelling power and flexibility, but its pricing is out of the reach of most individuals. SW and OS are fairly comparable, so if I had to choose, I would prefer OS for its lower cost and radical cloud features which make it a joy to use with multiple users. Solidworks is hard to recommend unless you need something that doesn't rely on an internet connection. Even then, there are better options out there now for a lower price.
As always, the general disclaimer is that this is all my opinion only. I will be updating this article periodically.
Sound off in the comments if you think I've missed something important to this comparison and thanks for reading!