blender python
半径1のトーラスを作る
オブジェクトに名前を付ける
マイナー半径 0.05
トーラスの中心位置 000
# トーラス 半径1円周
import bpy
# トーラスを作成
bpy.ops.mesh.primitive_torus_add(
align='WORLD',
location=(0, 0, 0),
rotation=(0, 0, 0),
major_radius=1,
minor_radius=0.01,
major_segments=48,
minor_segments=24
)
# 作成したオブジェクトに名前を付ける
obj = bpy.context.active_object
obj.name = "MyTorus"
追加のトーラスを作る
x軸を回転軸にして 90度回転
# xz 平面の 単位円 円周トーラス
import bpy
import math
# トーラスを作成
bpy.ops.mesh.primitive_torus_add(
align='WORLD',
location=(0, 0, 0),
rotation=(0, 0, 0),
major_radius=1,
minor_radius=0.01,
major_segments=48,
minor_segments=24
)
# 作成したオブジェクトに名前を付ける
obj = bpy.context.active_object
obj.name = "MyTorus"
# 追加のトーラスを作成
bpy.ops.object.duplicate(linked=False)
# 回転を設定
rotation_rad = math.radians(90) # 90度をラジアンに変換
bpy.context.active_object.rotation_euler = (rotation_rad, 0, 0)
太さ 0.05 で 円柱を 2つ作る
円柱長さ 1
円柱中心軸の中心は 1,1,0 と 1,0,0 の中間
円柱中心軸の中心は 1,-1,0 と 1,0,0 の中間位置
x軸を回転軸にして 90度回転
# 被写体 円柱
import bpy
import math
# 円柱を作成する関数
def create_cylinder(center_point, end_point, index):
# 中心点と終点の座標から方向ベクトルと長さを計算
direction = [end_point[i] - center_point[i] for i in range(3)]
length = sum([i**2 for i in direction])**0.5
# 円柱を作成
bpy.ops.mesh.primitive_cylinder_add(
align='WORLD',
location=(center_point[0] + direction[0] / 2, center_point[1] + direction[1] / 2, center_point[2] + direction[2] / 2),
depth=length,
rotation=(math.pi/2, 0, 0), # x軸を回転軸にして90度回転
radius=0.015
)
# 作成した円柱に連番の名前を付ける
obj = bpy.context.active_object
obj.name = "Cylinder{}".format(index)
# 円柱1の中心軸の中間位置の座標
center_point_1 = ((1 + 1) / 2, (1 + 0) / 2, 0)
end_point_1 = (1, 0, 0)
# 円柱1を作成
create_cylinder(center_point_1, end_point_1, 1)
# 円柱2の中心軸の中間位置の座標
center_point_2 = ((1 + 1) / 2, (-1 + 0) / 2, 0)
end_point_2 = (1, 0, 0)
# 円柱2を作成
create_cylinder(center_point_2, end_point_2, 2)
円柱で円板を複数作る
半径1
半径 √2/2
半径 √3/2
半径√2
半径√3
半径 2
中心 1,0,0
色を塗れるように
マテリアルをrgba で設定