https://www.perplexity.ai/?s=u&uuid=51fd0a95-3c2e-4c64-841b-53400e01dd88
以下は、半径1から半径3の領域に半径1の円をくり抜き、半径3の円周上に太さ1の円を描くBlender Pythonスクリプト 書いて
import bpy import bmesh from mathutils import Vector # Create a new mesh and object mesh = bpy.data.meshes.new("Circle") obj = bpy.data.objects.new("Circle", mesh) # Set location and scene of the object obj.location = Vector((0, 0, 0)) bpy.context.scene.collection.objects.link(obj) # Create a bmesh circle with radius 1 and segments 32 bm = bmesh.new() bmesh.ops.create_circle(bm, radius=1.0, segments=32) # Extrude the circle to create a cylinder with height 2 ret = bmesh.ops.extrude_edge_only(bm, edges=bm.edges) verts = [e for e in ret['geom'] if isinstance(e, bmesh.types.BMVert)] bmesh.ops.translate(bm, verts=verts, vec=(0.0, 0.0, 2.0)) # Inset the top face of the cylinder to create a hole with radius 1 top_face = None for face in bm.faces: if all(v.co.z == 2 for v in face.verts): top_face = face if top_face is not None: ret = bmesh.ops.inset_region(bm, faces=[top_face], thickness=1.0, depth=1.0, use_even_offset=True, use_relative_offset=False) verts = [e for e in ret['geom'] if isinstance(e, bmesh.types.BMVert)] bottom_verts = [v for v in verts if v.co.z == -1] top_verts = [v for v in verts if v.co.z == 1] # Connect the bottom vertices to form a new face at z=-1 bottom_face_verts = [] for i in range(len(bottom_verts)): j = (i + 1) % len(bottom_verts) bottom_face_verts.append(bottom_verts[i]) bottom_face_verts.append(bottom_verts[j]) bm.faces.new(bottom_face_verts) # Connect the top vertices to form a new face at z=3 top_face_verts = [] for i in range(len(top_verts)): j = (i + 1) % len(top_verts) top_face_verts.append(top_verts[i]) top_face_verts.append(top_verts[j]) bm.faces.new(top_face_verts) # Convert the bmesh to a mesh and update it bm.to_mesh(mesh) bm.free() # Add a bevel modifier to give thickness to the outer circle edge. mod_bevel_outer_circle_edge_thickness_01_mm=obj.modifiers.new(name="Bevel", type='BEVEL') mod_bevel_outer_circle_edge_thickness_01_mm.width_type='OFFSET' mod_bevel_outer_circle_edge_thickness_01_mm.offset_type='WIDTH' mod_bevel_outer_circle_edge_thickness_01_mm.width=.5
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
いいいいいいいい
以下は、半径1から半径3の領域に半径1の円をくり抜き、半径3の円周上に太さ1の円を描くBlender Pythonスクリプト 書いて
import bpy import bmesh from mathutils import Vector # Create a new mesh and object mesh = bpy.data.meshes.new("Circle") obj = bpy.data.objects.new("Circle", mesh) # Set location and scene of the object obj.location = Vector((0, 0, 0)) bpy.context.scene.collection.objects.link(obj) # Create a bmesh circle with radius 1 and segments 32 bm = bmesh.new() bmesh.ops.create_circle(bm, radius=1.0, segments=32) # Extrude the circle to create a cylinder with height 2 ret = bmesh.ops.extrude_edge_only(bm, edges=bm.edges) verts = [e for e in ret['geom'] if isinstance(e, bmesh.types.BMVert)] bmesh.ops.translate(bm, verts=verts, vec=(0.0, 0.0, 2.0)) # Inset the top face of the cylinder to create a hole with radius 1 top_face = None for face in bm.faces: if all(v.co.z == 2 for v in face.verts): top_face = face if top_face is not None: ret = bmesh.ops.inset_region(bm, faces=[top_face], thickness=1.0, depth=1.0, use_even_offset=True, use_relative_offset=False) verts = [e for e in ret['geom'] if isinstance(e, bmesh.types.BMVert)] bottom_verts = [v for v in verts if v.co.z == -1] top_verts = [v for v in verts if v.co.z == 1] # Connect the bottom vertices to form a new face at z=-1 bottom_face_verts = [] for i in range(len(bottom_verts)): j = (i + 1) % len(bottom_verts) bottom_face_verts.append(bottom_verts[i]) bottom_face_verts.append(bottom_verts[j]) bm.faces.new(bottom_face_verts) # Connect the top vertices to form a new face at z=3 top_face_verts = [] for i in range(len(top_verts)): j = (i + 1) % len(top_verts) top_face_verts.append(top_verts[i]) top_face_verts.append(top_verts[j]) bm.faces.new(top_face_verts) # Convert the bmesh to a mesh and update it bm.to_mesh(mesh) bm.free() # Add a bevel modifier to give thickness to the outer circle edge. mod_bevel_outer_circle_edge_thickness_01_mm=obj.modifiers.new(name="Bevel", type='BEVEL') mod_bevel_outer_circle_edge_thickness_01_mm.width_type='OFFSET' mod_bevel_outer_circle_edge_thickness_01_mm.offset_type='WIDTH' mod_bevel_outer_circle_edge_thickness_01_mm.width=.5
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
いいいいいいいい