代码之家  ›  专栏  ›  技术社区  ›  Rook

什么是CAD应用程序,它们是如何组织的?[关闭]

  •  9
  • Rook  · 技术社区  · 16 年前

    今天的CAD应用程序(Rhino、AutoCAD)是用什么编写的,它们是如何在内部组织的?

    我举了一个例子,AutoCAD和Rhino,尽管我也很想听到其他的例子。我特别想知道他们的后端是用什么写的(多语言?)它是如何组织的,以及它们如何实时处理前端(GUI)?他们使用的是本地WindowsAPI还是他们自己的一些库,因为我认为现在市场上的开放源码解决方案不会影响到它。我可能错了…

    正如大多数使用过它们的人所知道的,它们可以实时处理其他相对复杂的旋转操作(阴影对我来说并不有趣)。最近我用几个软件包做了一些实验,对于一些更大的模型,我发现在速度上有相当大的差异,例如,程序化旋转(大型全船模型)在其中一些(我不会说出名字)。所以我想知道它们的内部结构…

    另外,如果有人知道这方面的书,我会很感兴趣的。

    4 回复  |  直到 8 年前
        1
  •  7
  •   anddam    8 年前

    由于我的公司是一个注册的AutoCAD开发人员,我确信它是用C++编写的。它公开了一个COM接口和一个.NET包装器。此外,IT图形显示是组件化的,可能会被替换。 在历史上,它曾经是跨平台的。然而,它仅仅是Windows的10年,现在利用了我所看到的每一个Windows功能。 您可能对 Open Design Alliance .

        2
  •  7
  •   Gabriel Cuvillier    15 年前

    三维机械CAD软件,如CATAAV5、Pro/Engigy和SolidWorks,大多以C++编写,有时有一个瘦的COM接口,用于向用户发布基本API。

    由于这些应用程序非常庞大并且正在由多个团队开发,所以它们依赖于大规模的C++设计原则,例如接口/实现模式,以将模块与更改隔离。

    它们由几个子系统组成,如:

    • 提供底层操作系统抽象的基本框架
    • 图形用户界面、对话框和用户交互的框架
    • 一个3D渲染器(主要使用OpenGL和一些自定义场景图形层)
    • 几何内核,带有细分模块(以便几何图形可以显示在渲染器中)
    • 基于几何核的参数化建模器
    • 以及许多针对不同领域(机械、绘图、模拟等)的特定建模人员。
        3
  •  5
  •   mohnston    16 年前

    Autolisp是一种Lisp的风格,多年来一直用于对AutoCAD进行编程。很强大,一点都不友好。 AutoCAD(以及大多数垂直行业)内置了VBA大约10年。有点强大,很友好。VBA项目存储在单独的文件中,该文件由宿主程序内部的机制加载。 默认情况下,最新版本(当前为2010年)不再包含VBA。必须安装单独的VBA启用程序。这是为了让我们注意到,在某个时刻,vba(vb6)将成为过去。.NET平台目前是首选。VB.NET、C.net、C++是常用的。有些人尝试使用其他.NET语言,如f和Ironpython。

        4
  •  4
  •   sigjuice    16 年前

    您可能会对开源项目BRL-CAD感兴趣。

    推荐文章