問題タブ [ocean]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
79 参照

ocean - Plugin.ImageResourceName は効果がないようです

Petrel Plugin Manager が各プラグインのカスタム ビットマップを表示できれば素晴らしいのですが、このPlugin.ImageResourceNameプロパティは何の効果もないようです。

画像は正しく埋め込まれています (ドキュメントと ILDisAsm によると) - しかし、プラグイン マネージャーは代わりに一般的な画像を使用することを主張します。寸法やフォーマットに関する文書化されていない要件はありますか? ドキュメントのコード スニペットは、プロパティが実際に機能することを示すことなく、bmp と png の両方に言及しています。

SDK (モジュール サンプルのみ) やコード サンプルのダウンロード (いくつかのプラグインがここにありますが、リソース名に対して null を返します) で実際に実行されているサンプルを見つけることができませんでした。

作業サンプルまたは不足しているキーを提供できる人はいますか?

0 投票する
2 に答える
607 参照

wix - Petrel プラグインを展開するための Windows Installer XML (WiX) テンプレートまたはガイドライン?

Petrel プラグインを展開するための Windows Installer XML (WiX) プロジェクトを作成するためのテンプレートやガイドラインはありますか?

古い *.vdproj/MSI 勧告の自然な後継者として WiX が選択されなかった理由はありますか?

Petrel プラグイン用の WiX を試した人はいますか? アイデアや経験の交換に興味があります。私は WiX に不慣れで、始めるのが難しいと感じています。

(トピック外: 「新しい」PIP パラダイムは無駄がなくシンプルですが、企業での使用には適していません。クライアントは、グループ ポリシーなどを通じて大規模な展開を容易にするために MSI を再パッケージ化できることを期待しています。別の投稿を投稿します。これについて質問します。)

0 投票する
1 に答える
175 参照

ocean - グループ ポリシーなどによる PIP の大規模展開?

グループ ポリシーなどを使用して、Petrel PIP ファイル (プラグイン パッケージ) の大規模な展開を容易にする方法に関する推奨事項はありますか?

パッケージの内容 (プラグイン ファイル) は簡単ですが、ユーザー固有の PluginManagerSettings.xml ファイルは慎重に扱う必要があります。このコンセプトは、この目的のために MSI ファイルをカスタマイズして再パッケージ化できることを期待するクライアントにはあまり適していません。

シュルンベルジェは、この分野でいくつかのドキュメントと推奨されるベスト プラクティスを提供することをお勧めします。ドキュメントが存在する場合は、お詫び申し上げます。ポインタをいただければ幸いです。

0 投票する
2 に答える
99 参照

ocean - ドメイン オブジェクト統計タブのプロパティにアクセスする方法は?

ピラーグリッドとホライズンの統計タブで値にアクセスできると助かります。その多くは自分で計算できますが、これらのプロパティがどこかに存在する場合は、代わりにそれらにアクセスできればはるかに簡単になります。

0 投票する
1 に答える
133 参照

c# - SeismicLine2D 内の Horizo​​nInterpretation2D によって特定のポイントの値 (振幅) を取得するにはどうすればよいですか?

入力パラメータは Horizo​​nInterpretation2D と SeismicLine2D です。水平線を選択すると、ペトレルは画像 (赤) に示すように値を表示します。コードからこの値を見つけるには、サンプルの番号 (青) を取得する必要があります。サンプル数はどのように取得できますか?

スクリーンショット。

スクリーンショット ソリューション [フル サイズ]:

スクリーンショット ソリューション。

0 投票する
1 に答える
507 参照

ocean - PetrelのWindow3Dの背景色をプログラムで設定することは可能ですか?

PetrelのWindow3Dの背景色をプログラムで設定することは可能ですか?

ISettingsInfoを使用して色を取得/設定できることを確認しましたが、ウィンドウの背景を更新する方法を知りたいです。

0 投票する
1 に答える
106 参照

ocean - IObservableElementEnumerable.EnumerableChanged からの登録解除は機能しませんか?

ユーザーがフォルダーからドメイン オブジェクトを削除するなどの場合に更新するために、UI の一部は IObservableElementEnumerable.EnumerableChanged を使用します。

UI が破棄されると、イベントからサブスクライブを解除します...またはそう考えました。登録解除は効果がなく、イベント ハンドラーがまだ呼び出されていることがわかりました。これにより、多くの奇妙なバグが発生しましたが、メモリ リークも発生しました。

サブスクリプション解除が機能するのは、IObservableElementEnumerableFactory.GetEnumerable(obj) を再度呼び出す代わりに、IObservableElementEnumerable 参照を保存する場合のみです。しかし、これは、フォルダ オブジェクトへのライブ参照を保持する可能性が高く、フォルダ自体がユーザーによって削除されると壊れます。

これは、GetEnumerable() のドキュメントに次のように明確に記載されているため、特に不可解です。これは保証と解釈されるべきではありませんか?

サブスクリプション解除が機能しない理由があるはずですか?

次のコードは、Petrel 2011 の問題を再現します (メニュー拡張機能を備えた単純なプラグインに追加するか、ここ(DropBox)で完全なソリューションを入手してください)。

複製するには:

  1. プラグインで Petrel を実行する
  2. オブジェクトを含むフォルダーを使用してプロジェクトをロードする
  3. フォルダを選択
  4. プラグイン メニュー項目を有効にする
  5. ポップアップを開いた状態で、フォルダ内のオブジェクトを削除します
  6. ポップアップしたフォームを閉じる
  7. フォルダ内のオブジェクトを削除する

メッセージ ログは、フォームが破棄された後もイベント ハンドラーが呼び出されていることを明確に示しているはずです。

0 投票する
1 に答える
93 参照

ocean - プロジェクトの開始がいつ終了したかを知る方法

新しいプロジェクトを開始した後、ペトレルが新しいプロジェクトの作成をいつ完了したかを知りたいです。DataManager.WorkspaceOpenedイベントをサブスクライブすると、ワークスペースが開いたときにイベントが呼び出されますが、メインスレッドが新しいプロジェクトの作成を完了したときではない場合があります。

Petrelが新しいプロジェクトの作成をいつ終了するかをいつ知るかについてのアイデアはありますか?

0 投票する
1 に答える
62 参照

ocean - PropertyDataFilter1D に関連付けられたプロパティを検索

ユーザーによる PropertyDataFilter1D 入力があります。どのピラー グリッド プロパティがそのフィルターに関連付けられているかを調べるにはどうすればよいですか? フィルターには PropertyVersionBase メンバーが含まれていますが、それを使用してプロパティを検索する方法がわかりません。

0 投票する
1 に答える
339 参照

c# - 海を使用してペトレルの3Dウィンドウに地震体積壁をプロットする

海を通る3Dウィンドウでレンダリングされた3D地震データボリュームをプログラムでプロットできますか?

Window3d.showobject(seismic_cube)を使用してランダムなインライン/ xlineをプロットできますが、設定タブに移動せずにボリュームレンダリングを直接確認したいと思います。

これどうやってするの?