DRX OdGeクラス

izawaさんの掲示板にて…

zeranさん: DRX によるカスタムオブジェクト/カスタムエンティティが、各社の DWGdirect ベースの CAD で共通に使えるようになってはじめて…

という話題がされておりました。

全くもって同感!で…  ここ数年、これぞ、ITCが推し進めている道であり、一番苦心している点でもありますので、少しお話をさせて頂きたいと思います。

結論から言えば、ここ数年右往左往ありましたが、結果的には皆が幸せになれるような道筋ができつつあるように思います。

zeranさん: 幾何計算クラス(OdGe系)の設計と実装が昔から結構でたらめなままずっと放置されています…

ITCは、IntelliCAD7が遅れた大きな要因を 「DRXのバイナリ互換性を考えた場合、ODAのOdGeクラスの問題を避けることが出来なかった」 としています。

ODA-ITCで共同開発する道が模索されておりましたが… ODA会員の多くは、DWGファイルの読み書きにのみライブラリを使っているので、ODA会員からすれば幾何計算クラスへの要望は低く、開発予算を確保できずに暗礁に乗り上げた格好となってしまいました。同じ時期に、ITC会長だったArnoldが、ODA会長となったこともあって… ODA商用会員メンバーによって構成される理事会が、ODA と ITC (= IntelliCAD) の癒着を嫌ったというのも背景にあります。(2年くらい前の話)

結局、ITCは、独自の幾何計算クラスを使って IntelliCAD7 の開発を進めることになるのですが、「DRXのバイナリ互換を考えた場合、最終的にはODAへ提出するべきである」ということを前提にしておりました。

他の商用CADは、DRXの互換性の優先順位を下げ、早々に独自の幾何計算ライブラリを使って製品の開発を進めていましたので、ITCは、かなり出遅れた格好です。 ITC(IntelliCAD)が非営利団体であるが故… いたしがたないという所かと思います。基本的にITCの決断は、「あくまで理想」が優先される傾向にあり、特定の商用会員の「利益」に結びつくような方策は受け入れられません。

「我々は、OdGeクラスの問題を避けることは出来ない」 というITCの姿勢は一貫しておりました。各CADが、ODAのOdGe系クラスの代わりとなる独自の幾何計算クラスを提案しますと、この部分において DRXアプリケーションの「互換性」が取れなくなってしまいます。 これを危惧して、ITCは、自らの幾何計算ライブラリをODAへ提供することを理事会(2008年5月-大阪)で決議しました。

しかしながら、この提案(ITCが幾何計算クラスを提供)に対してODA側が難色を示します。 既に、DRX-APIをサポートしたCADが市場に出始めており、他からも 「うちのライブラリを買わないか?」 と提案があったので、ODAとしては安く手に入れるため結論を引き延ばす作戦にでたのです。 Arnold会長は、かつての同朋ながら… ODA運営を最優先に考え、ITCを特別優遇することは、他のODA-理事からのクレーム想定すると難しい選択だったようです。

この間、ODA&ITC&各社で様々な駆け引きがありましたが…. 先日のODAミーティング(2009年4月)にて関係者全員が集まり、議論した結果…

  • ODAは不足している幾何計算クラスの定義を全てヘッダに追加してインターフェイス部分を規定する。
  • 幾何計算ライブラリを必要とするメンバーは、ODAが提供する中身の無い仮実装を上書きすることで機能を提供する。

という方向で決着する方向になったようですから、間もなく登場する 2010-DWGに対応した 3.x においては、このような仕組みになるかもしれません。 言い換えれば、各CADが互換性のあるOdGeクラスを提供できるようになるのは、まだ当分先ということになります。

ITC IntelliCAD7 についても、「作業の手戻りが大きいので現行の独自クラスのまま、3.x を待たずに、最短でリリースすることを優先する」としています。

こうして、ODAが DRX-APIのインターフェイスを規定することで、DRXのバイナリ互換性を保持できる道筋が出来ました。 しかしながら、実装部を各社に委ねることになると… DRXアプリケーションから呼び出されれる関数の戻り値が、各ホストアプリケーションによって異なるという事は避けられそうにありません…

それでも、このODAの幾何計算クラスの問題は、ここ数年、全く進捗が無かったので、大きな前進…  ITCの役員さん達と一緒になって、私も微力ながらお手伝いをしておりましたので、少しホッとしています。

タグ:

コメントをどうぞ