本日のお題は『透過度の変更』です。
お察しの通り、オブジェクトの透け具合を変更します。
カスタマイズプログラミングをする際、あまり需要がない機能ですが、こんなこともできるということを頭の片隅に入れておきましょう。
1. 環境
- FreeCAD 0.18
2. 透過度を変更する方法
透過度を変更する場合は、ViewObjectのTransparencyプロパティを変更します。
3. プログラムを書いてみよう
今回は、すべての立方体の透過度を50に変更するプログラムを書いてみました。
色や透過・表示状態といったものは、ViewObject配下のプロパティをいじるということを頭の片隅に入れておくとよさそうですね。
# -*- 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 # アクティブなドキュメントを取得 activeDoc = App.ActiveDocument # アクティブドキュメントから作成履歴群を取得 histories = activeDoc.Objects # Boxが存在したら、透過度を50にする for history in histories: if history.TypeId == 'Part::Box': history.ViewObject.Transparency = 50
4. 補足
4.1. フェース単位の透過はできない?
デバッグなどで調べてみたところ、フェースにはViewObjectもTransparencyプロパティも存在しないようです。(私の調べ方が悪いだけかもしれませんが)
もしそうだとしたら、ソリッド単位でしか透過ができないことになりますね。
合間を見て、もう少し調べてみます。
※ フェース単位で透過する方法をご存じの方がいらっしゃいましたら、コメントを頂けると幸いです。
5. まとめ
- 透過度を変更するには、ViewObject.Transparencyの値を変更する
6. 最後に
少しずつやれることを増やして、知識のインデックスを付けていきましょう。
更なる情報をお探しの方は!
下記のリンクから、FreeCADプログラミングのトップページに飛びます。
よろしければご参照くださいませ。