次のスクリプトがあります。
import bpy
import os
print("Starter")
selection = bpy.context.selected_objects
for obj in selection:
print("Obj selected")
me = obj.data
for edge in me.edges:
vert1 = me.vertices[edge.vertices[0]]
vert2 = me.vertices[edge.vertices[1]]
print("<boundingLine p1=\"{0}f,0.0f,{1}f,1.0f\" p2=\"{2}f,0.0f,{3}f,1.0f\" />".format(vert1.co.x, vert1.co.y, vert2.co.x, vert2.co.y))
かなり基本的ですよね?すべてのエッジをコンソールに出力するだけで、コピーして xml ドキュメントに貼り付けることができます。オブジェクトをスケーリングし、オブジェクトでこのスクリプトを実行すると、スケーリングされる前に、コンソールに出力されたオブジェクトの古いスケーリングされていない値が取得されます。オブジェクトのすべての頂点をすべての軸で移動しようとしました。その結果、出力される値はスケールアウトされ、動きに応じて変換されます。
n を押して頂点のグローバル値を確認すると、適切にスケーリングされます。
正しい値が得られないのはなぜですか?!?
このスクリプトは時間を節約するはずでしたが、Blender で何かを動作させるのは雑用です! 彼らがAPIを更新したばかりであることは役に立たないので、そこにあるすべてのサンプルコードは古くなっています!