blendeer python でスクリプト書き出す
000を中心に 半径1のトーラス マイナー半径 0.02 を z=-1に描く
0、0、0.1を中心に 半径1-0.01のトーラス マイナー半径 0.02 を z=ー0.9に描く
0、0、0.2を中心に 半径1-0.02のトーラス マイナー半径 0.02 を z=ー0.8に描く
これを繰り返し z=0 まで トーラスを複数描く
import bpy
import math
center_x = 0.0
center_y = 0.0
minor_radius = 0.02
z = -1.0
z_increment = 0.1
num_toruses = 11
for i in range(num_toruses):
major_radius = 1.0 - (i * 0.1)
bpy.ops.mesh.primitive_torus_add(
align='WORLD',
location=(center_x, center_y, z),
rotation=(0, 0, 0),
major_radius=major_radius,
minor_radius=minor_radius,
major_segments=48,
minor_segments=12
)
torus_obj = bpy.context.object
bpy.context.view_layer.objects.active = torus_obj
bpy.ops.object.origin_set(type='ORIGIN_CENTER_OF_MASS', center='BOUNDS')
z += z_increment
今度は
z=0から Z=1に トーラスを11個描く
半径が 0から 0.1ずつ大きくする
この11個のトーラスに future torus 0.0 から 1.0の連番で名前を付ける
import bpy
import math
center_x = 0.0
center_y = 0.0
minor_radius = 0.02
z = 0.0
z_increment = 1.0 / 10.0 # Zの増分を計算
num_toruses = 11
for i in range(num_toruses):
major_radius = i * 0.1 # 半径を0から0.1ずつ増加させる
bpy.ops.mesh.primitive_torus_add(
align='WORLD',
location=(center_x, center_y, z),
rotation=(0, 0, 0),
major_radius=major_radius,
minor_radius=minor_radius,
major_segments=48,
minor_segments=12
)
torus_obj = bpy.context.object
bpy.context.view_layer.objects.active = torus_obj
bpy.ops.object.origin_set(type='ORIGIN_CENTER_OF_MASS', center='BOUNDS')
# トーラスに名前を付ける
torus_obj.name = "FutureTorus" + str(round(major_radius, 1))
z += z_increment
今度は
z=0から Z=-1に トーラスを11個描く
半径が 0から 0.1ずつ大きくする
この11個のトーラスに past torus -0.0 から -1.0 の連番で名前を付ける
import bpy
import math
center_x = 0.0
center_y = 0.0
minor_radius = 0.02
z = 0.0
z_decrement = -1.0 / 10.0 # Zの減分を計算
num_toruses = 11
for i in range(num_toruses):
major_radius = i * 0.1 # 半径を0から0.1ずつ増加させる
bpy.ops.mesh.primitive_torus_add(
align='WORLD',
location=(center_x, center_y, z),
rotation=(0, 0, 0),
major_radius=major_radius,
minor_radius=minor_radius,
major_segments=48,
minor_segments=12
)
torus_obj = bpy.context.object
bpy.context.view_layer.objects.active = torus_obj
bpy.ops.object.origin_set(type='ORIGIN_CENTER_OF_MASS', center='BOUNDS')
# トーラスに名前を付ける
torus_obj.name = "PastTorus" + str(round(-major_radius, 1))
z += z_decrement
コレクション名を 作る
Future torus
Past torus
+5 Future torus
+5 Past torus
-5 Future torus
-5 Past torus
6つ作る
import bpy
collection_names = ["Future torus", "Past torus", "+5 Future torus", "+5 Past torus", "-5 Future torus", "-5 Past torus"]
for collection_name in collection_names:
new_collection = bpy.data.collections.new(collection_name)
bpy.context.scene.collection.children.link(new_collection)
x軸に +5 移動させて 名前を +5 PastTorus で連番に
以下を x軸に +5 移動させて 連番名を +5 Future torus にして
以下を x軸に ー5 移動させて 連番名を -5 Future torus にして