Imagine you were a CAD programmer (if you actually are one, play along with me here.) What problems would you focus your energies on?
From my perspective, persistent bugs and software stability would be a good primary focus. But, let’s limit it to geometric modeling problems. Not just the run of the mill “fix this bug” stuff, but rather the real serious problems.
George Allen, Chief Technologist & Technical Fellow at Siemens PLM Software, wrote an interesting paper for an academic conference, where he talked about what he saw as the big geometric modeling problems in industrial CAD/CAM/CAE software. You can download a copy of the paper at this link.
In short, Allen sees three particularly tough problem areas: filleting, history-based models, and performance.
Consider filleting: According to Allen, “the filleting problem is important because it consumes a great deal of modeling time – typically as much as 40% in parts like castings, forgings, and sheet metal stampings.” He points out “the filleting functions in CAD systems are often unpredictable, counter-intuitive, and prone to failure. So, producing the desired results often requires considerable user skill, which means that the task can not be done effectively by low-priced inexperienced workers.”
The problem with history-based models starts when the replay (or rebuild) process fail—which often happens if parameters (or inputs) are changed substantially from previous ones. “When this happens, the user must ‘debug’ the model. He has to understand the sequence of steps that was used to build it, and find out which of these steps are failing, and why. The process is very similar to the debugging of programs — in fact, in a sense, a history-based model is a program. But, unfortunately, the debugging tools are very primitive compared to those available for debugging programs. As a result, people often just give up and rebuild the model from scratch.”
Allen sees two distinct problems in performance. First is with large models: “Our users are dealing with enormous models. A motor vehicle, for example, will typically have around 30,000 parts, and overall data size is likely to be around 15 or 20 gigabytes. The largest parts are complex castings like the engine block and complex sheet metal parts like the floor pan.” The second problem is less obvious; “that some operations take a few seconds, but users really need the computations to be done in real time (in other words, in around 1/30th of a second). Lack of real-time response makes some exploratory functions unusable, and this impairs user creativity.”
How much performance improvement would be enough? Allen says that “in either case, we need performance that is roughly 100x better than we have today, so clearly small incremental refinements of our current approaches will not be sufficient.”
In the paper, Allen suggests some possible solutions to these problems, but he really leaves things pretty open. The paper was targeted at academic researchers, to point them in the direction of research that would be of real value to developers of commercial CAD/CAM/CAE software—and ultimately, their customers.
Take a few minutes to download and read the paper. You’ll come away with a greater understanding of how challenging it can be to create good CAD software.