blender 3.4.1 python 10x10 の平面に 半径1の穴を中心に作り 半径1の円錐底面を重ねる 円錐の底面を くり抜く
togetter.com/t/c2022meetzionad
togetter.com/t/b2022meetzionad
twitter 新着検索 Dürer & 測距儀
aaa
bbb
ccc twitter zionadchat
twitter に追い出されたら 連絡先は Gettr https://gettr.com/user/zionadchat
twitter サブアカウント https://twitter.com/2022zionad
old page いいい
new page いいい
目次 2022の目次 単純トリック hatena zionadchat
いいいいいいいい
以下は、Blender 3.4.1でPythonを使用して、10x10の平面に半径1の穴を中心に作り、半径1の円錐底面を重ね、円錐の底面をくり抜く方法です。
Blenderを開き、3Dビューポートを表示します。
メニューから「Add」>「Mesh」>「Plane」を選択して、10x10の平面を作成します。
平面を選択し、オブジェクトのプロパティパネルで「Edit Mode」に切り替えます。
「Face」モードに切り替え、平面の中央にある面を選択します。
「Inset」ツールを使用して、選択した面に半径1の穴を作成します。
円錐を作成するために、「Add」>「Mesh」>「Cone」を選択します。
円錐を選択し、オブジェクトのプロパティパネルで「Edit Mode」に切り替えます。
円錐の底面の頂点を選択し、「Scale」ツールを使用して半径1に拡大します。
円錐を選択し、オブジェクトのプロパティパネルで「Object Mode」に切り替えます。
平面と円錐を重ね合わせ、円錐を平面の中心に合わせます。
円錐を選択し、「Boolean Modifier」を適用します。
「Operation」を「Difference」に設定し、「Object」には平面を選択します。
モディファイヤを適用し、円錐の底面がくり抜かれた平面が完成します。
以上が、Blender 3.4.1でPythonを使用して、10x10の平面に半径1の穴を中心に作り、半径1の円錐底面を重ね、円錐の底面をくり抜く方法です。
冒頭に import math と 書き加えて python で書いて
以下は、Blender 3.4.1でPythonを使用して、10x10の平面に半径1の穴を中心に作り、半径1の円錐底面を重ね、円錐の底面をくり抜く方法です。冒頭にimport math
を追加しました。
import bpy
import bmesh
import math
# 平面を作成する
bpy.ops.mesh.primitive_plane_add(size=10)
# 平面を選択して、モードを編集モードに変更する
plane = bpy.context.active_object
bpy.ops.object.mode_set(mode='EDIT')
mesh = bmesh.from_edit_mesh(plane.data)
# 平面の中心に穴を開ける
vertices = [v for v in mesh.verts]
center = sum(vertices, bmesh.Vector()) / len(vertices)
ret = bmesh.ops.create_circle(mesh, cap_ends=True, segments=32, radius=1, location=center)
circle = ret['geom'][0]
bmesh.ops.delete(mesh, geom=[v for v in mesh.verts if circle in v.link_edges], context='VERTS')
# 編集モードを終了して、オブジェクトモードに戻る
bmesh.update_edit_mesh(mesh)
bpy.ops.object.mode_set(mode='OBJECT')
# 円錐を作成する
bpy.ops.mesh.primitive_cone_add(radius1=1, depth=2)
# 円錐を選択して、モードを編集モードに変更する
cone = bpy.context.active_object
bpy.ops.object.mode_set(mode='EDIT')
mesh = bmesh.from_edit_mesh(cone.data)
# 円錐の底面を拡大する
vertices = [v for v in mesh.verts if v.co.z < 0]
center = sum(vertices, bmesh.Vector()) / len(vertices)
for v in vertices:
v.co -= center
v.co *= 2
v.co += center
# 編集モードを終了して、オブジェクトモードに戻る
bmesh.update_edit_mesh(mesh)
bpy.ops.object.mode_set(mode='OBJECT')
# 平面と円錐を重ね合わせ、円錐を平面の中心に合わせる
cone.location = (0, 0, -1)
# 平面と円錐を選択して、モディファイヤーを追加する
bpy.ops.object.select_all(action='DESELECT')
plane.select_set(True)
cone.select_set(True)
bpy.context.view_layer.objects.active = plane
bpy.ops.object.modifier_add(type='BOOLEAN')
# モディファイヤーを設定する
modifier = plane.modifiers[-1]
modifier.object = cone
modifier.operation = 'DIFFERENCE'
# モディファイヤーを適用して、円錐の底面をくり抜く
bpy.ops.object.modifier_apply(modifier=modifier.name)
togetter.com/t/c2022meetzionad
togetter.com/t/b2022meetzionad
twitter 新着検索 Dürer & 測距儀
aaa
bbb
ccc twitter zionadchat
twitter に追い出されたら 連絡先は Gettr https://gettr.com/user/zionadchat
twitter サブアカウント https://twitter.com/2022zionad
old page いいい
new page いいい
目次 2022の目次 単純トリック hatena zionadchat
いいいいいいいい