14

今日の CAD アプリケーション (Rhino、Autocad) はどのようなもので、内部ではどのように編成されていますか?

例として Autocad と Rhino を挙げましたが、他の例も聞きたいです。私は特に、彼らのバックエンドが何 (多言語?) で書かれているか、どのように構成されているか、フロントエンド (GUI) をリアルタイムでどのように処理しているかを知りたいと思っています。彼らはネイティブの Windows API を使用していますか、それとも独自のライブラリを使用していますか。私は間違っているかもしれません...

それらを使用したことがあるほとんどの人が知っているように、それらは比較的複雑な回転操作をリアルタイムで処理します (シェーディングは私には興味がありません)。私は最近、いくつかのパッケージでいくつかの実験を行ってきましたが、いくつかの大きなモデルでは、たとえば、プログラムされたローテーション (大きなフルシップ モデル) の速度にかなりの違いがあることがわかりました (名前は挙げません)。 . だから私は彼らの内部について疑問に思っています...

また、誰かがこの主題に関する本を知っているなら、私はそれを聞くことに興味があります.

4

4 に答える 4

9

CATIAv5、Pro/Engineer、Solidworks などの 3D メカニカル CAD ソフトウェアは、ほとんどが C++ で記述されており、基本的な API を顧客に公開するためのシン COM インターフェイスを備えている場合もあります。

これらのアプリケーションは非常に巨大で、複数のチームによって開発されているため、インターフェイス/実装パターンなどの大規模な C++ 設計原則に依存して、モジュールを変更から隔離しています。

それらは、次のようないくつかのサブシステムで構成されています。

  • 基盤となる OS からの抽象化を提供する基本フレームワーク
  • GUI、ダイアログ、およびユーザー インタラクションのフレームワーク
  • 3D レンダラー (ほとんどの場合、いくつかのカスタム シーン グラフ レイヤーで OpenGL を使用)
  • テッセレーション モジュールを備えたジオメトリック カーネル (ジオメトリをレンダラーで表示できるようにするため)
  • ジオメトリ カーネル上に構築されたパラメトリック モデラー
  • さまざまな分野 (機械、製図、シミュレーションなど) を対象とする多くの特定のモデラー
于 2010-03-20T20:40:47.417 に答える
8

私の会社は AutoCAD の登録開発者であるため、C++ で作成されていることは確かです。COM インターフェイスと .Net ラッパーを公開します。また、グラフィック表示はコンポーネント化されており、置き換えられる可能性があります。その歴史をさかのぼると、クロスプラットフォームでした。ただし、Windows は約 10 年間しか存在せず、今では私が見たすべての Windows 機能を利用しています。Open Design Allianceに興味があるかもしれません。

于 2009-04-23T00:47:16.693 に答える
5

AutoLISP は、AutoCAD のプログラミングに長年使用されてきた Lisp の一種です。非常に強力で、友好的ではありません。AutoCAD (およびほとんどの業種) には、約 10 年間 VBA が組み込まれています。パワフルでとてもフレンドリー。VBA プロジェクトは、ホスト プログラム内部のメカニズムによって読み込まれる別のファイルに格納されます。最新バージョン (現在 2010) には、デフォルトで VBA が含まれなくなりました。別の VBA イネーブラーをインストールする必要があります。これは、VBA (さらに言えば VB6) がいずれ過去のものになることを知らせるためのものです。現在、.NET プラットフォームが推奨されています。VB.NET、C#.NET、C++ が一般的に使用されます。F# や IronPython などの他の .NET 言語を試した人もいます。

于 2009-05-04T21:49:47.410 に答える
4

オープン ソース プロジェクトの BRL-CAD に興味があるかもしれません。

于 2009-04-22T23:29:29.360 に答える