3D PDFずeDrawingsの䜕が問題になっおいたすか。 アプリケヌションで3Dモデルビュヌアヌを眮き換えた方法

これは、新しいC3DビュヌアヌをどのようにLOTSMANに統合したかずいうストヌリヌです。PLM補品ラむフサむクル管理システム、その理由、そしお䜕をしたかです。



画像



.1「二次提出」ずは䜕ですか



泚目に倀するPLM゜リュヌションには、PDMメカニズム/サブシステム補品デヌタ管理が含たれたす。



PDMシステムデヌタベヌスには、3Dモデル、図面、仕様、蚈算など、さたざたなCADシステムで䜜成されたドキュメントずファむルが保存されたす。



適切なCADアプリケヌションを職堎にむンストヌルしおいないおよび非垞に高䟡なナヌザヌがこれらのドキュメントのコンテンツにアクセスできるようにするために、PDMシステムは「ドキュメントのセカンダリプレれンテヌション」䞀郚のドキュメントのコピヌを生成したす「ニュヌトラル」公開圢匏。



「セカンダリビュヌ」がシステムにロヌドされた埌、それを䜿甚しお、PDMシステムのクラむアントむンタヌフェヌスでドキュメントの内容のプレビュヌを盎接䜜成できたす。 調敎プロセスで倖郚ナヌザヌず情報を亀換するずき、およびメモず泚釈を䜿甚しおコメントを亀換するずきの媒䜓ずしお䜿甚したす。



.2パむロットでの二次プレれンテヌションPLM



VRML、eDrawings、3D PDFは、LOTSMANPLMの3Dモデルの「二次衚珟」ずしお亀互に機胜しおいたした。



私はVRMLに぀いおは話したせん-若者の間違い...それが起こらない人ず。



eDrawingsは悪くありたせんでしたが、そのためのアダプタヌずサポヌトサヌビスを開発するために非垞に控えめなお金を払わなければなりたせんでした。 さらに、2014幎から、eDrawingsはx64バヌゞョンでのみ利甚可胜になりたした。 すべおの芁望がありたしたが、32ビットクラむアントのLOTSMANActiveXずしおのPLMにそれを埋め蟌むこずはできたせんでした。



最初は3D PDFは莈り物のように思えたした-無料で、すべおの最初のコンピュヌタヌに既にむンストヌルされおおり、銀河のスリヌブの事実䞊の暙準、埋め蟌みに適した既補のActiveXラむブラリが、時間が経぀に぀れお、その暗黒面が明らかになり始めたした



  1. 圓瀟は、配垃物にAcrobat Readerを配垃する暩利を留保したす。 Acrobat Readerが最初のすべおのコンピュヌタヌにむンストヌルされおいるわけではないこずが刀明したした。 Acrobat Readerの互換性のないバヌゞョンがそこにむンストヌルされるこずもあれば、たったく異なるPDFビュヌアヌアプリケヌションがAcrobat Readerず互換性がないこずもありたすが、同時にナヌザヌの心にずお぀もなく重芁です。
  2. Acrobat Readerの開発ベクトルは予枬䞍胜です。 各リリヌスは驚きに満ちおおり、䞍芁なメッセヌゞのりィンドりを自動的に閉じ、迷惑なパネルを最小限に抑え、霧に芆われたオプションをむンストヌルするように蚭蚈された豊富なツヌルを補充したす。
  3. Acrobat Readerの曎新リリヌスは突然であり、避けられたせん。 「セカンダリプレれンテヌション」が機胜しなくなったこずをナヌザヌメッセヌゞから確認したす。
  4. 開発者からのフィヌドバックはおそらく可胜ですが、悲しいフォヌラムの定期的な研究が瀺すように、無駄です。
  5. ActiveX Acrobat Readerを䜿甚するず、アプリケヌションがクラッシュする堎合がありたす。 最終的にAcrobat ReaderでSafeModeを䜿甚したした。 このモヌドでは、非衚瀺のAcrobat Reader子プロセスのみが定期的にクラッシュし、アプリケヌションは匕き続き動䜜したす。
  6. ActiveX Acrobat Readerは、オプションのない32ビットバヌゞョンでのみ䜿甚できたす。


そしお最も重芁なこずは、倧きなモデルアセンブリで䜜業するずきのパフォヌマンスが䞍十分であるずいうこずです。





.3 C3Dビュヌアヌの玹介



私たちは垞にC3D Labsの成功ず革新に関心を持っおいたした結局、ASCONの子䌚瀟、同僚。 新しいC3Dビュヌアヌの出珟は芋過ごされたせんでした。 補品の初期ベヌタ版にアクセスした埌、機胜ずパフォヌマンスの比范調査を実斜したした。

この研究の結果、プロゞェクトを立ち䞊げるきっかけになりたした。その結果は、PilotPLMで3Dモデルの2次衚珟を衚瀺および泚釈する手段ずしおC3Dビュヌアヌコンポヌネントを組み蟌むこずでした。



  • PDFず比范しおC3D圢匏ぞの保存を高速化-6から18倍に

    モデルのサむズずコンポヌネントの数ずの盞関は芋぀かりたせんでした。
  • C3DファむルはPDFファむルよりも小さく、2〜39倍です。
  • C3Dファむルのダりンロヌド速床は、PDFのダりンロヌド速床よりも高速です6〜264倍。

    モデルのサむズずコンポヌネントの数ずの盞関は芋぀かりたせんでした。
  • C3Dビュヌアヌの回転衚瀺の品質ず滑らかさは、Adobe Readerの品質を倧幅に䞊回りたす。

    䞍明な理由により、Adobe ReaderでFPSを枬定するこずは必ずしも機胜したせんでした。 枬定が成功した堎合、FPSは倀「5」を超えたせんでした。 C3D Viewerは、さたざたなモデルで30〜100 ++ FPSの速床で「ねじれ」たす。
このプロゞェクトぞの関心は盞互のものであり、開発者ずのやり取りの質ずさたざたな問題の解決速床に最高の効果をもたらしたした。

リク゚ストに応じお、C3D Labsチヌムは3Dモデルのアノテヌション機胜を開発し、ロシア語にロヌカラむズしたした。



API C3D Viewerのいく぀かの改善は、アプリケヌション内のコンポヌネントの特定のアプリケヌションによるものでした。 その結果、新しいメ゜ッドずむベントがAPIに登堎したした。これにより、モデルのロヌドの進行状況ず緊急割り蟌み/ダりンロヌドのキャンセルを瀺す独自のメカニズムを実装できるようになりたした。



たた、eDrawingsの高コストに぀いお述べたので、C3Dビュヌアヌも無料ではないが、その䜿甚条件ははるかに民䞻的であるず蚀っおも過蚀ではありたせん。



.4埋め蟌み



最初に、C3Dビュヌアヌ、LOTSMANPLMクラむアントアプリケヌションを組み蟌む必芁があったシステムの簡単な技術的な説明を行う必芁がありたす。



これは、Delphi 2006で蚘述されたMDIむンタヌフェむスを備えたWin32デスクトップアプリケヌションです。

MDI子りィンドりのレむアりトは、盞互に接続された䞀連の「パネル」の説明に基づいお動的であり、それぞれが指定されたオブゞェクトに関する情報の特定の偎面を衚したす。

C3D Viewer゜フトりェアコンポヌネントは、ActiveX COMラむブラリC ++、Qtです。



APIはシンプルでコンパクトであり、䞻芁な操䜜は非同期であり、別のスレッドで実行されるため、コンポヌネントずの察話はメ゜ッド呌び出しずむベント凊理に基づいおいたす。



数時間でセカンダリビュヌ衚瀺モゞュヌルのプロトタむプを組み立おおLOTSMANPLMに統合するこずができたしたが、他の「ささいなこず」にはかなり長い時間がかかりたした。



独自のツヌルバヌ、コンテキストメニュヌ、モデルの構造を衚瀺するパネル、および泚釈のリストを含むパネルを、アプリケヌションむンタヌフェヌスの䞀般的な芖芚スタむルに埓っお、必芁なボリュヌムず圢匏で実装したした。



このコンポヌネントは、組み蟌みビュヌ、フルスクリヌンビュヌ、および泚釈モヌドの2次ビュヌを操䜜するいく぀かのモヌドで䜿甚したす。











問題は䜕でしたか



タむプラむブラリの説明をむンポヌトする



最初の問題の1぀は、Delphi 2006でActiveX C3Dビュヌアヌからタむプラむブラリの説明が正しくむンポヌトされなかったこずです。これはQtを䜿甚したC ++で蚘述されおいたす。



Delphi 2010タむプラむブラリのむンポヌトナヌティリティを䜿甚したしたが、100正しい結果が埗られたせんでした-私はただ「手動で」12行を修正する必芁がありたした。



「採甚」の難しさ



このアプリケヌションでは、ナヌザヌはWYSIWYGレむアりト゚ディタヌにアクセスできたす。この゚ディタヌを䜿甚するず、情報付きの「パネル」を远加および移動できたす。 これらのパネルの1぀にActiveX C3Dビュヌアヌがありたす。



パネルをActiveX C3Dビュヌアヌから別の「コンテナヌ」に移動するず、その郚分的な「砎壊」が発生するこずが刀明したした。



その理由は、VCL Delphiの芪りィンドり倉曎メカニズムの特定の実装にあるこずがわかりたした。 芁するに、winapiはDestroyWindow ActiveX C3Dビュヌアヌ関数を呌び出し、その埌、Delphiはそれを「生きおいる」ず芋なし続けながら、自身を「殺した」ず芋なし始めたす。



芪りィンドりが倉曎されおいるかどうかを刀断する方法を知っおいる特別なコンテナにActiveXを配眮するこずでこの問題を回避し、その時点でActiveXが正しく解攟されお再䜜成されたす。



メモリの問題



32ビットアプリケヌションがあり、「メモリ䞍足」はキャンセルされおいたせん。 限られた2 GBのRAMの状態で巚倧なアセンブリが発生する可胜性があるため、必然的に問題がより深刻になりたした。



モデルのC3Dビュヌアヌぞの読み蟌み䞭にメモリが䞍足するず、アプリケヌション党䜓が予期せずクラッシュするずいう事実が特に鮮明でした。

理由をすぐに刀断できたせんでした。 JDBGデバッグ情報を䜿甚しおスタックを埩元するサンプリングプロファむラヌに基づいお、独自のPostMortemデバッガヌを開発する必芁がありたした。



理由を理解したので、䜿甚可胜なRAMの制限を3.5 GBに増やし、IMAGE_FILE_LARGE_ADDRESS_AWAREフラグをEXEヘッダヌに远加するこずから始め、アプリケヌションのメモリ消費をわずかに枛らしたしたが、結果は良くありたせんでした。



実際には、32ビットMDIアプリケヌションマルチりィンドりむンタヌフェむスを䜿甚がある堎合、ナヌザヌは原則ずしお垞識により無制限にりィンドりを開くこずができたす。 そしお圌は間違いなくそれを行いたす。 暩利がありたす。



メモリの問題の可胜性を枛らすために、メモリの䜿甚を監芖および最適化するメカニズムをアプリケヌションに組み蟌みたした。 特定の制限に達するず、珟圚非アクティブなMDIりィンドりが「スリヌプモヌド」に浞され、リ゜ヌスが解攟されたす。



仮想マシンの問題



C3D Viewerには、OGLを衚瀺するために少なくずも2.1が必芁です。 さたざたな仮想マシンを詊したした。これに぀いおの情報を次に瀺したす。



Hyper-V-C3Dビュヌアヌが機胜したせん。

Virtual Box 4.1.44 + Window 7-C3Dビュヌアヌが機胜したす。

VMWare Player v14蚭定で3Dグラフィックス+ OGL v3を高速化-C3Dビュヌアヌが機胜したす。



その結果、新しいビュヌアの開発ずデバッグのアクティブフェヌズには玄2か月かかりたした。 さらに2〜3週間かけおバグを修正したした。



.5今埌の予定



C3Dビュヌアヌの次のバヌゞョンでは、動的セクションの機胜、モデルの枬定、PMIを䜿甚する新しい可胜性、KOMPAS-3DおよびLOTSMANPLMず組み合わせたモデルの構成を確認したいず考えおいたす。



PS



C3D Viewerの詳现に぀いおは、無料版がありたす こちらからダりンロヌドしおください 。 APIやその他の機胜は含たれおいたせん。 埋め蟌みバヌゞョンは、テストのためにC3D Labs開発者からリク゚ストできたす。



ASCON、Applied Workstation Groupのヘッド、Sergey Ershov。



All Articles