Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What are CAD apps written in, and how are they organized? [closed]

What are CAD applications (Rhino, Autocad) of today written in and how are they organized internally ?

I gave as an example, Autocad and Rhino, although I would love to hear of other examples as well. I'm particularly interested in knowing what is their backend written in (multilanguage ?) and how is it organized, and how do they handle their frontend (GUI) in real time ? Do they use native windows API's or some libraries of their own, since I imagine, as good as may be, the open source solutions on today's market won't cut it. I may be wrong ...

As most of you who have used them know, they handle amongs other things relatively complex rotational operations in realtime (shading is not interesting me). I've been doing some experiments with several packages recently, and for some larger models found that there is considerable difference in speed in, for example, programed rotation (big full ship models) amongst some of them (which I won't name). So I'm wondering about their internals ...

Also, if someone knows of some book on the subject, I'd be interested to hear of it.

like image 744
Rook Avatar asked Apr 22 '09 23:04

Rook


People also ask

How is CAD software coded?

This type of app can be written in various language AutoCAD supports: C++, . NET languages (VB.NET, C#, F#...), AutoLISP, AutoCAD VBA. You can also automate AutoCAD vir its COM API (. NET COM interop, or classical VB), or any COM-able language.

How is CAD data stored?

Because CAD files are saved on some form of digital storage media – either a local hard drive, a shared network drive or (if transferring data) an email server or USB drive – the odds of files being overwritten, lost, stolen or corrupted are stacked against you.

What is AutoCAD written in?

AutoLISP is a dialect of the programming language Lisp built specifically for use with the full version of AutoCAD and its derivatives, which include AutoCAD Map 3D, AutoCAD Architecture and AutoCAD Mechanical.

What code is solidworks written in?

3D Mechanical CAD software such as CATIAv5, Pro/Engineer and Solidworks are mostly written in C++, sometimes with a thin COM interface for publishing basic API to customers.


2 Answers

3D Mechanical CAD software such as CATIAv5, Pro/Engineer and Solidworks are mostly written in C++, sometimes with a thin COM interface for publishing basic API to customers.

Since these applications are really huge and are being developped by several teams, they rely on large scale C++ design principles, such as Interface/Implementation patterns to insulate the modules from changes.

They are composed of several subsystems such as:

  • a base framework to provide abstraction from the underlaying OS
  • a framework for GUI, dialogs and user interaction
  • a 3D renderer (mostly using OpenGL with some custom scene graph layer)
  • a geometric kernel, with a tessellation module (so that geometry can be displayed in the renderer)
  • a parametric modeler build upon the geometric kernel
  • and a lot specific modelers targeted at different domains (Mechanical, Drafting, Simulation, ...)
like image 159
Gabriel Cuvillier Avatar answered Sep 24 '22 15:09

Gabriel Cuvillier


As my company is a registered developer for AutoCAD, I know for certain that its written in C++. It exposes a COM interface, as well as a .Net wrapper. Also, it graphics display is componentized and could be possibly replaced. Way back in its history it used be cross-platform. However its been Windows only for about 10 years and now takes advantage every Windows feature I've seen. You may be interested in the Open Design Alliance.

like image 22
Joel Lucsy Avatar answered Sep 26 '22 15:09

Joel Lucsy