2011-01-13 14 views
2

図面をPDF3Dにエクスポートしようとしたときに発生するVisual C++で書かれたCADアプリケーションのメモリ使用の問題を解決するように要求されました。Visual C++からU3D/PDF3Dをエクスポートする

エクスポート機能は、単純なモデルまたは複雑なモデルの一部のみで動作しますが、複雑なモデル全体では機能しません。

U3Dソースフォージプロジェクトを使用してU3Dオブジェクトを作成しています。それをPDFに挿入した後それは問題のあるオブジェクト作成部分です。

U3D sourceforgeプロジェクトは、C++で使用されるC++用のライブラリで、2007年以降に死んでいて、ドキュメントが貧弱でサンプルのコレクションが十分ではありません。プロジェクトのTODOリストには、メモリ問題があることも記載されています!

だから私は二つの側面で問題を攻撃するように依頼されています:

  1. はU3Dコードのメンテナンスを行います。

  2. アプリケーションがU3Dライブラリとやり取りする方法を変更します。

彼らはまた、私たちの支配下にあるように、側面2が好ましいと述べた。私は強くU3D方法EncodeXは、メモリ誤用の原因であると疑っています

  1. :問題を解決しようとすると

    、私は2つの結論を得ました。

  2. 私は、アプリケーションがlib(圧縮パラメータ、フラグなどを変更する)とやりとりし、その結果がメモリオーバー割り当てになるたびに、小さなものに多くの変更を加えました。

ですから、このライブラリを使用する価値はありますか?そのコードは読むのが楽しいものではありません...同じ目的のために他のライブラリを見るのは良い考えでしょうか? 私はそれらを探っていませんでしたが、私は真剣にVCGlibまたはlibharuに切り替えることを考えています。

他の選択肢は、Visual Technology PDF3Dの輸出者には容認できないコストがかかっているか、U3D輸出者の独自の実装を開発することです.U3D機能の非常に限られたセットという短所があります。それは期待された期限に備えることができませんでした。 これらのオプションは禁止されています。

私は本当に何がベストかを判断するのに助けが必要です。事前に

おかげで、 セルジオ

答えて

1

は、発見のメモリリークや他のいくつかのメモリのトラブルにしようと、私たちは、最も実用的なソリューションを締結:ファイルをロードして、それをエクスポートするために必要なだけのコードの一部

エキスをU3Dを小さなプログラムに変換し、メインのCADアプリケーションで呼び出します。最も洗練されたソリューションではありませんが、実際にはうまくいきます。プロセスは2 GBの障壁に近いメモリ使用量には達しません。

私はこの方法で早く解決する権限がありました。現代のWindowsバージョンが2GB以上

へ を各プロセスのメモリ制限を拡張するためのサポートというオプションを使用する64ビット

  • 移行
    • :私のようないくつかの他のものを提案しています

      これらの2つのソリューションは、既に稼働しているハードウェアやソフトウェアを再インストールする必要があるため、許容できませんでした。

  • 1

    いくつかのコメント: VCGlib - 無関係な、MeshLabは、コア機能のためにVCGlibに依存しているが、U3Dエクスポート・コマンドラインツールは、U3Dにテキスト形式から変換するために使用され、そのツールはsf U3Dライブラリからのものです。 libharu - 3DモデルをPDF出力に埋め込み、モデル(U3DまたはPRCファイル)を作成することはできません。

    もう1つのオプションは、他のAdobe 3D PDFフォーマットPRCをアウトプットすることです。 Acrobat SDKには、擬似コード形式の書式説明があります。 PRC出力はAsymptoteツールで実装されていました。 sourceforgeで検索し、興味があればAsymptoteフォーラムに質問してください。いくつかの絶望と悪い睡眠の夜の後

    +0

    PRCはオプションではありません。その理由は、costumerがPDF/U3Dを工場で標準化しているからです... – sergiol

    関連する問題