興味があろうがなかろうが。

なるべく役に立つ、とがった内容を記していきたいと思います。

【FreeCADプログラミング】ビューの表示方向の取得

本日のお題は『ビューの表示方向の取得』です。

言うまでもないかもしれませんが、皆さんが3Dモデルを見ているビュー(ウインドウ)にも向きがあります。

今回はビューが向いている方向の取得方法について、触れていきたいと思います。

1. 環境

  • FreeCAD 0.18

2. ビューの向きを取得する場面

ビューの向きを取得する場面は、現在の回転状態を保持しておきたい時です。

プログラムから色々な処理を行うことで、回転状態がズレてしまうことがありますが、あらかじめ実行前のビューの向きを取得しておけば、後で元に戻すことができます。

3. 使用するAPI

Gui.ActiveDocument.ActiveView.getViewDirection()メソッドを使用します。

4. 何が取得できるのか

下図のように、画面の奥行き側の方向が取得できます。

f:id:appli-get:20210725101255j:plain

奥行き方向のイメージ

5. プログラムを書いてみよう

取得自体の処理はAPIを使用するだけなので、いたってシンプルです。

# -*- coding: utf-8 -*-

import ptvsd
print("Waiting for debugger attach")
# 5678 is the default attach port in the VS Code debug configurations
ptvsd.enable_attach(address=('localhost', 5678), redirect_output=True)
ptvsd.wait_for_attach()

import FreeCAD

direction = Gui.ActiveDocument.ActiveView.getViewDirection()
FreeCAD.Console.PrintMessage(str(direction) + "\n")

 

Vector (0.0, 1.0, 0.0)

ちなみに気づいている方もいらっしゃるかもしれませんが、getViewDirectionメソッドのコードはマクロの記録で記録することができません

6. まとめ

  • ビューの表示方向を取得するには、getViewDirectionメソッドを使う。

7. 最後に

ビューの方向自体を使用する機会はなかなか無いと思いますので、こういう情報も取得できるということをまずは頭の片隅に入れておいてください。

更なる情報をお探しの方は!

下記のリンクから、FreeCADプログラミングのトップページに飛びます。

よろしければご参照くださいませ。

www.interested-or-not.com