1

SketchUp API を使用して 3D モデル (ズーム、パン、回転など) をナビゲートしようとしています。私の最終的な目標は、Leap Motion アプリと統合することです。

ただし、現時点では、Sketchup API を介して基本的なナビゲーション ジェスチャを制御する方法を理解することが最初のステップになると思います。少し調べたところ、「カメラ」と「アニメーション」のインターフェースがあることがわかりましたが、スクリプト内の「ハードコードされた」パスとモーションにより適していると思います。

したがって、私は疑問に思っていました-別のプログラム(この場合、私の最終的なLeap Motionアプリ)からの入力を受け入れることができるプラグインを作成し、それをSketchup APIを使用して特定のナビゲーションコマンド(パン、ズーム、等)。これは、「カメラ」および「アニメーション」インターフェースを使用して(ある種のステップ単位で)行うことができますか、または私が見なければならない他のインターフェースがありますか.

いつものように、例が最も役に立ちます。

ありがとう!

4

2 に答える 2

1

ViewCameraそしてAnimationクラスはあなたが探しているものです。クラスは必要ないかもしれませんが、Animationクラスで時間を使っても問題ないかもしれませんUI。あなたが何をするかの詳細に依存します。

次のようにカメラを直接設定できます。 Sketchup.active_model.active_view.camera.set(ORIGIN, Z_AXIS, Y_AXIS)

またはView.camera=、便利な場合は、遷移時間引数も受け入れる which を使用できます。

入力をブリッジするために、アプリケーション間の通信を処理する Ruby C 拡張機能をいつでも作成できます。ただし、コンパイル方法によっては、通常の Ruby とは対照的に、SketchUp Ruby で C 拡張機能を動作させるにはいくつかの癖があります。数年前に Hello World の例を書きました: https://bitbucket.org/thomthom/sketchup-ruby-c-extension

Rubyインストーラーの開発キットを使用して、Windows用のより良いソリューションを見つけたことに注意してください:http://rubyinstaller.org/

于 2013-09-16T21:19:02.007 に答える
0

この回答は、camera= を使用して現在のビューに新しいカメラを割り当てたときにビューが「ジャンプ」しているように見えるという上記のコメントに関連していますが、camera.set を使用した場合はそうではありません。

元のカメラのカメラ FOV が異なっていて、新しいカメラが 30 の FOV にデフォルト設定されていたため、これが起こっていることがわかりました。初期カメラからオプションのパースペクティブと FOV 引数を使用してカメラを明示的に作成することで、この問題が解決されます。

new_camera = Sketchup::Camera.new new_eye, new_target, curr_camera.up, curr_camera.perspective?, curr_camera.fov

人々がこれが役に立つことを願っています!

于 2013-10-04T20:38:58.783 に答える