BLENDER PYTHON
トーラスを作る
メジャー半径1
マイナー半径 0.01
中心 0,0,ー1
中心 0,0,0
中心 0,0,1
名前は 位置を使って 小数点2桁まで
import bpy
import math
# トーラスのパラメータ
major_radius = 1.0
minor_radius = 0.01
positions = [(0, 0, -1), (0, 0, 0), (0, 0, 1)]
# トーラスを生成する関数
def create_torus(name, major_radius, minor_radius, position):
bpy.ops.mesh.primitive_torus_add(
align='WORLD',
location=position,
rotation=(0, 0, 0),
major_radius=major_radius,
minor_radius=minor_radius
)
torus = bpy.context.active_object
torus.name = name
# 位置情報から名前を生成する関数
def generate_name(position):
return f"Torus_{position[0]:.2f}_{position[1]:.2f}_{position[2]:.2f}"
# トーラスを生成
for pos in positions:
torus_name = generate_name(pos)
create_torus(torus_name, major_radius, minor_radius, pos)
球体を作る
半径 0.03
-1,0,-1 から
0,0,0 に等間隔で
11個の球体を作る
名前は"ミンコフスキー"
import bpy
import math
# 球体のパラメータ
radius = 0.03
num_spheres = 11
start_position = (-1, 0, -1)
end_position = (0, 0, 0)
# 球体を生成する関数
def create_sphere(name, radius, position):
bpy.ops.mesh.primitive_uv_sphere_add(
radius=radius,
location=position
)
sphere = bpy.context.active_object
sphere.name = name
# 位置情報から名前を生成する関数
def generate_name(base_name, index):
return f"{base_name}_{index}"
# 等間隔に球体を生成
for i in range(num_spheres):
t = i / (num_spheres - 1)
position = (
start_position[0] + t * (end_position[0] - start_position[0]),
start_position[1] + t * (end_position[1] - start_position[1]),
start_position[2] + t * (end_position[2] - start_position[2])
)
sphere_name = generate_name("ミンコフスキー", i)
create_sphere(sphere_name, radius, position)
球体を作る
半径 0.03
-1,0,0 から
0,0,0 に等間隔で
11個の球体を作る
名前は"線路 rail"
import bpy
import math
# 球体のパラメータ
radius = 0.03
num_spheres = 11
start_position = (-1, 0, 0)
end_position = (0, 0, 0)
# 球体を生成する関数
def create_sphere(name, radius, position):
bpy.ops.mesh.primitive_uv_sphere_add(
radius=radius,
location=position
)
sphere = bpy.context.active_object
sphere.name = name
# 位置情報から名前を生成する関数
def generate_name(base_name, index):
return f"{base_name}_{index}"
# 等間隔に球体を生成
for i in range(num_spheres):
t = i / (num_spheres - 1)
position = (
start_position[0] + t * (end_position[0] - start_position[0]),
start_position[1] + t * (end_position[1] - start_position[1]),
start_position[2] + t * (end_position[2] - start_position[2])
)
sphere_name = generate_name("線路_rail", i)
create_sphere(sphere_name, radius, position)
球体を作る
半径 0.03
-1,0,0 から
0,0,0 に等間隔で
11個の球体を作る
この11個の球体を
x成分と z成分は変えず
x成分の数値を利用し
x^2+y^2=1の円周位置に移動させる
名前は"円周 screen"
# コレクションを作る 重複の場合 作らない
import bpy
# List of collection names
collection_names = [
"円周 screen",
"ミンコフスキー",
"線路 rail"
]
# Function to create a new collection if it doesn't exist
def create_collection_if_not_exists(name):
if name not in bpy.data.collections:
collection = bpy.data.collections.new(name)
bpy.context.scene.collection.children.link(collection)
# Create collections
for name in collection_names:
create_collection_if_not_exists(name)
基本系 配布 001 単位円 torus と xyz軸 円柱
https://drive.google.com/file/d/1adh0pC0n5MUfaPnsQcab8CnTvHu_JqLg/view?usp=drive_link
基本系 配布 002 単位2長さ balls
https://drive.google.com/file/d/1vyg5oFWmw_TK8nwp5TmVSfLH94I6rTaY/view?usp=drive_link
基本系 配布 003 単位2長さ balls 光時計セット
https://drive.google.com/file/d/1u2Rn_nVBcewe39Vokua9C5n25cdivyyL/view?usp=drive_link
blender 基本系 配布 カタログ 2023 - zionad_mainのブログ https://mokuji000zionad.hatenablog.com/entry/2023/07/31/095208
以下 ChatGPT との対話 修正記録 と メモ・ノート
ああああああああああああああああああああああああああああああああああああああああああああ