Build Your Own CAD
Let’s imagine that you could start your own CAD company. This CAD company has to deliver functionality for the next 20 years. What are you going to do? What will it be? NURBS, mesh, hybrid? History, direct, functional modeling, or some hybrid? Discreet files, database? Cloud, local, or customizable?
Purpose and Delivery
CAD with different purposes can be so different from one another that I’m not sure a single all-purpose tool really makes sense. There are people who really just need prismatic shapes. If you design machines other than injection molds, or progressive dies, or things like that, you really could live on prismatic shapes with just direct modeling.
I think maybe we need to think about how we buy and sell CAD a little differently, and the needs of the user don’t need to be so diametrically opposed to the needs of the seller. For example, maybe I’m a contract designer, and do a little bit of everything. Maybe I could pay based on what I use. I definitely need prismatic modeling, and assembly modeling for maybe 80% of what I do, but then 20% is organic shapes. I don’t think I should have to pay $20k for something that I only use 20% of the time and $4k for what I use 80% of the time. It doesn’t make sense. In this age of data, surely there’s a way to figure out how active various dlls that make the various functions possible are. I really don’t like the idea of subscription CAD tools, but maybe there’s a way with a fixed price to buy a certain weekly level of dll usage. So you can have as many users as you want, but you can only use the Parasolid dll for a specific number of hours per week, in perpetuity. Subscription would be an option for those who prefer the rental model, but as with cars and homes and other high value items, there needs to be the option of actual ownership or rental (of the license). And the rental could be flat fee or per dll hour. As things are, it’s kind of an all-or-nothing thing, but with the dll hour idea, you could test out wiring, or mesh modeling, or motion, or whatever. You could custom order your software, and just get what you need. Bundling forces people to buy stuff they don’t want or need, trying to make it look like a good deal.
And of course the question of local vs cloud. I like some of the cloud advantages, but would much prefer a local cloud, one I can control myself for my local organization. There is also a real case for local licensing. The licensing and delivery of the application should not dictate control. The customer needs the option of complete control. Some customers want to cede control. If you own the license, you need full control. If you’re just renting it, control should be an option. It’s just that simple. I think software companies are both greedy and lazy at the same time, developing only a cloud version.
NURBS or Mesh?
I think what I would do would to first develop some sort of bridge/tunnel into NURBS modeling from the mesh world. This would allow a set of points to define a NURBS patch, with some sort of adjustable interpolation, giving points more or less influence on the shape.
Mesh data is so important for so many reasons. It is how things are displayed by a graphics card, the format is used in medical imaging, games, movie making, allowing morphing shape transitions, FEA and other simulations. This kind of data has to be able to be integrated into engineering data, in fact, we really need to be able to use mesh as engineering data. But obviously, we need NURBS accuracy for manufacturing.
If we had good enough tools, we could work the entire model as a mesh model, and then output it as NURBS as needed. The mesh workflow more closely resembles direct edit than history-based modeling, but mesh has more sophisticated selection tools to allow different types of edits. NURBS/mesh fluidity would allow all sorts of topological edits that haven’t been available before.
History or Direct?
Obviously mesh data would be sort of “direct” – because that’s just how you manipulate mesh. Certainly I would also want solids to have direct capabilities – kind of like Synchronous. But I think I would also like the option of using history-based features. In fact, I would at least explore the possibility of creating features that are a collection of faces, and those faces could be driven by direct edit tools or by live definition, solved in order.
I would hope to eliminate some types of features. SolidWorks has several different features that have been implemented mainly as compromises. They are direct edit functions that are firmly rooted in the history-based way of working.
For example, I’ve used the Move Face, Replace Face, and even Delete Face features as examples of direct edit functions forced into the history-based way of working. But there’s also the Freeform feature, which is a history-based feature posing as a mesh function. It’s a compromise. A poor imitation of real mesh modeling, but it gives history-based users a kind of tool they didn’t have before. In a new software package, I’d get rid of compromise stuff like this, because it’s no good. No one uses the Freeform feature, well, maybe not no one, but very few
Discreet or Database?
Have you had a look at Onshape? They put your data in a database. Lots of advantages. Some drawbacks as well. If I did this, I would also have a discreet filetype that could be extracted from or integrated into the database without loosing any native benefits.
The database gives you inherent file management down to the feature level, plus it gives you the ability to reuse features more easily. You should be able to copy parts between projects. I think there’s a way of managing it such that it isn’t a massive pain in the ass. It doesn’t have to be a liability.
Other Ideas?
What would you do if you were developing a new CAD product? Any particular functions you want to work in?
Add the use of a non-proprietory scripting language like Python and database or spreadsheet. FreeCAD does this. With Solidworks you are locked in MS products like Excell and VBscript or C#.
A CAD company that lasted 20 years or a piece of software that lasted 20 years. My first response would be why bother. There are many out there already and open source ones like FreeCAD are catch up to those you pay money to have.
If i did decide to start a CAD compnay it would be structured as a worker-owned cooperative. They preform as well or better than top-down enterprises, the works as also owners have a democratic system about the operation of the company, the rating, firing and hiring of managers, better pay, more job stability and higher work satisfaction. Mondragon is an example of a large one.
I will leave it to users and potential users of CAD products to give lots of feedback on what this software should have that is not already present in existing CAD packages or how to improve on what is out there. More discussions and research would follow.