2009-04-22 8 views
9

今日書かれたCADアプリケーション(Rhino、AutoCAD)とは何ですか?内部でどのように組織されていますか?書かれたCADアプリとはどのようなものですか?

私は例としてAutocadとRhinoを挙げましたが、他の例も伺いたいと思います。私は、バックエンドが何(多言語?)で書かれているのか、それがどのように整理されているのか、彼らのフロントエンド(GUI)をリアルタイムでどのように扱うのかについて特に興味があります。彼らはネイティブのWindows APIや独自のライブラリを使用しているのですが、今日の市場でオープンソースのソリューションはそれをカットしないと私は想像しています。私は間違っているかもしれません...

ほとんどの人が知っているように、リアルタイムで比較的複雑な回転操作(陰影は私にとって興味深いものではありません)を処理します。私は最近、いくつかのパッケージでいくつかの実験を行ってきました。いくつかの大きなモデルでは、プログラム回転(大型フル・フル・モデル)のスピードにかなりの違いがあることが分かりました。 。だから私は彼らの内部について疑問に思っています...

また、誰かがそのテーマについていくつかの本を知っていたら、私はそれを聞いて興味があります。

答えて

7

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

4

オープンソースプロジェクトBRL-CADが関心をお持ちかもしれません。

5

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

+0

興味深い時にuild。あなたの意見では、acadの将来のスクリプトオプションは何でしょうか?あなたが言ったように、彼らはおそらくVBAを離れることになるでしょう、あなたは同じことがLispに起こると思いますか?現時点では、「自動」と「ビジュアル」の2つのバージョンがあります... – Rook

+0

オートデスクのこの回答は何度も聞いています。「そこには、顧客が依存している膨大な量の旧式のlispコードがあります。私は推測しているが、私は彼らが何年もの間Lispを放棄するとは思わない。 VBAが消えている限り、私は同じ理由で何年も起こることはありません。 VSTAは将来のオプションである可能性があります。 (VBAの.NET版)今のところ、C#に傾いている.NETのようです。 – mohnston

+1

AutoCAD 2010 shippied * VBAなし(別途ダウンロードできます) VSTAはCADアドインの未来です。 3年ごとにバイナリ形式を変更するので、ターゲットバージョンとの再コンパイルが必要です。 –

7

3D CATIAv5、Pro/Engineer、Solidworksなどの3D機械CADソフトウェアは、主にC++で記述されています。また、基本APIを顧客に公開するための薄いCOMインターフェイスもあります。

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

彼らは、次のようないくつかのサブシステムで構成されている:下地OS

  • GUI、ダイアログやユーザインタラクション
  • 3Dレンダリングのためのフレームワークからの抽象化を提供すること

    • ベースフレームワーク(主に使用いくつかのカスタムシーングラフレイヤーを持つOpenGL)
    • テッセレーションモジュールを備えた幾何学的カーネル(レンダラーにジオメトリを表示できるように)
    • パラメトリックモデラーb幾何学的なカーネル
    • と異なるドメインを対象に、多くの特定のモデラー(機械、製図、シミュレーション、...)
  • 関連する問題