blender python
6つの正三角形で 正六角形を作りたい
正六角形の中心位置を指定できるようにする 先頭行に
正三角形の1辺の長さを指定するだけで 先頭行に
6つの正三角形のオブジェクトを作る
オブジェクトに名前を付ける 先頭行に
blender python
円柱を作る
半径を指定
中心を指定
長さを指定
スクリプトの先頭に
blender python
オブジェクト名
円錐を作る
半径を指定
中心を指定
長さを指定
スクリプトの先頭に
円錐の高さの長さを z軸の 2点で 指定したい
ensui_top = 0 ensui_bottome =-2 この2点間距離を円錐半径にする
この円錐の z=0と 底面のx=0を結ぶ 半径0.1の円柱を作って
#これから下 全部 一体スクリプト
import bpy
import math
import mathutils
# 三角形の1辺の長さを指定する
triangle_size = 2.0
kakodoai = triangle_size
# 正六角形の中心位置を指定する
hexagon_center = mathutils.Vector((0.0, 0.0, 0.0))
# 6つの正三角形を作成する
for i in range(6):
# 三角形の頂点を計算する
vertex1 = mathutils.Vector((math.cos(i * math.pi / 3), math.sin(i * math.pi / 3), 0.0))
vertex2 = mathutils.Vector((math.cos((i + 1) * math.pi / 3), math.sin((i + 1) * math.pi / 3), 0.0))
vertex3 = mathutils.Vector((0.0, 0.0, 0.0))
# 三角形の頂点をサイズに合わせて調整する
vertex1 *= triangle_size
vertex2 *= triangle_size
vertex3 *= triangle_size
# 三角形のメッシュを作成する
mesh = bpy.data.meshes.new("Triangle{}".format(i+1))
mesh.from_pydata([vertex1, vertex2, vertex3], [], [(0, 1, 2)])
mesh.update()
# 三角形のオブジェクトを作成する
obj = bpy.data.objects.new("Triangle{}".format(i+1), mesh)
bpy.context.scene.collection.objects.link(obj)
# 正六角形の中心にオブジェクトを移動する
for obj in bpy.data.objects:
obj.location += hexagon_center
# オブジェクトに名前を付ける
for i, obj in enumerate(bpy.data.objects):
obj.name = "Triangle{}".format(i+1)
import bpy
import math
import mathutils
zion_name = "過去円周 正三角形の辺"
# 円柱のパラメータを指定する
radius = kakodoai # 半径
length = 0 # 長さ
center = mathutils.Vector((0.0, 0.0, -kakodoai)) # 中心位置
# 円柱のメッシュを作成する
bpy.ops.mesh.primitive_cylinder_add(radius=radius, depth=length, enter_editmode=False, location=center)
obj = bpy.context.active_object
# 円柱のオブジェクト名を設定する
obj.name = zion_name
import bpy
import math
import mathutils
zion_name = "過去円周 正三角形の辺"
# 円柱のパラメータを指定する
radius = kakodoai # 半径
length = 0 # 長さ
center = mathutils.Vector((0.0, 0.0, - 0.5*3**(0.5)*kakodoai)) # 中心位置
# 円柱のメッシュを作成する
bpy.ops.mesh.primitive_cylinder_add(radius=radius, depth=length, enter_editmode=False, location=center)
obj = bpy.context.active_object
# 円柱のオブジェクト名を設定する
obj.name = zion_name
import bpy
import math
import mathutils
# 円錐のパラメータを指定する
height = triangle_size # 2点間の距離
radius = height # 半径
ensui_top = 0 # 上部座標のz値
ensui_bottom = - triangle_size # 下部座標のz値
center = mathutils.Vector((0.0, 0.0, (ensui_top + ensui_bottom) / 2.0)) # 中心位置
cone_name = "My Cone" # オブジェクト名
# 円錐のメッシュを作成する
bpy.ops.mesh.primitive_cone_add(radius1=radius, radius2=0.0, depth=height, enter_editmode=False, location=center)
obj = bpy.context.active_object
# オブジェクト名を設定する
obj.name = cone_name
cylinder_name = "My Cylinder" # オブジェクト名
cylinder_radius = 0.1 # 半径
cylinder_height = height # 高さ
cylinder_center = mathutils.Vector((0.0, 0.0, 0.0)) # 中心位置
bpy.ops.mesh.primitive_cylinder_add(radius=cylinder_radius, depth=cylinder_height, enter_editmode=False, location=cylinder_center)
cyl_obj = bpy.context.active_object
cyl_obj.name = cylinder_name