今日の課題は押し出し機能です。 "extrude blender 2.8 python"などで検索してみても、英語日本語とも、blender 2.8 (2.9)でのextrude を使ったコードが今は少ないような印象です。数少ない資料がsuzulang資料「Blender 2.8 pythonで矢印を作る」。これをじっくり読解。「Blender 2.8 pythonで矢印を作る」の中の step 1 oshidashi部分まで流し読み extrude_region_move(TRANSFORM_OT_translate={"value":[1.0 , 0.0 , 3.0]} )のように数字入れたらなんとかなる、と解釈して、そこから試行錯誤してなんとか、
Cubeの一面を押し出し繰り返すことに成功しました。
import bpy
import math
import bmesh
bpy.ops.mesh.primitive_cube_add(location=(1,0,3), size = 2) # === create a cube
# 編集モードに切り替え.
bpy.ops.object.mode_set(mode='EDIT')
# 全てのメッシュを非選択状態にする.
bpy.ops.mesh.select_all(action='DESELECT')
'''面モードにし, 一つの面を...oshidashi '''
# 面モードに設定.
bpy.ops.mesh.select_mode(type="FACE")
# bmesh オブジェクトのインスタンス化.
b_mesh = bmesh.from_edit_mesh(bpy.context.object.data)
b_mesh.faces.ensure_lookup_table()
b_mesh.faces[3].select = True # === face number (3) south face
bpy.ops.mesh.extrude_region_move(TRANSFORM_OT_translate={"value":[ -0.5 , -1.0 , 0.5]} )
bpy.ops.mesh.extrude_region_move(TRANSFORM_OT_translate={"value":[ -0.5 , -1.0 , -0.5]} )
bpy.ops.mesh.extrude_region_move(TRANSFORM_OT_translate={"value":[ -0.5 , -1.0 , 0.5]} )
bpy.ops.mesh.extrude_region_move(TRANSFORM_OT_translate={"value":[ -0.5 , -1.0 , -0.5]} )