data.polygons[0].select
はMeshPolygon対象である顔のブール特性です。それは真実または偽の価値を保存し、あなたがそれについて学ぶことはそれほど多くありません。
セレクト同様の操作者は、単にそれが条件に一致する場合trueに選択顔やセットをループ。
import bpy
obj_data = bpy.context.object.data
for f in obj_data.polygons:
if f.area < 0.1:
f.select = True
else:
f.select = False
選択に編集モードがbmesh使用して編集モードを終了するにすべての変更を上書きしてしまいますこれが唯一のオブジェクト・モードで動作することを
for f in obj_data.polygons:
f.select = not f.select
注意を反転させます。 bmeshはメッシュデータを編集するためのより良いオプションであり、オブジェクトを編集モードにして使用する必要はありません。 obectが編集モードの場合
import bpy
import bmesh
obj_data = bpy.context.object.data
bm = bmesh.new()
bm.from_mesh(obj_data)
bm.faces.ensure_lookup_table()
bad_faces = [f for f in bm.faces if f.calc_area() < 0.1]
bmesh.ops.delete(bm, geom=bad_faces, context=5)
bm.to_mesh(obj_data)
bm.free()
obj_data.update()
あなたはfrom_edit_mesh
とupdate_edit_mesh
を使用します。コンテクストパラメータの情報はbmesh.ops.delete()
hereです。
ありがとうございました!これは本当に役立ちます。 bmeshについて考えていない、それを勉強する必要があります:)しかし、私は編集されたメッシュのレンダリングを行う方法を理解していません。私は、Pythonスクリプトでノードをアニメーション使用していると私は私が手にレンダリングんだろうかの「コンテキスト」オブジェクトが属性「オブジェクト」を持っていない –
は、アニメーションのスクリプトノードがツリーノードということですか? 'Context'や' context'はすべて小文字ですか?失敗したスクリプトで別の質問をしてください。ブレンダー固有のスクリプト作成に役立つ[blender.stackexchange.com](https://blender.stackexchange.com)があります。 – sambler