2023年10月16日月曜日

20231019 mon Tの字




コレクションを作る


名前

線路rail
視線方向 

import bpy

# 新しいコレクションの名前を指定
collection_names = ["線路rail", "視線方向"]

# 重複を避けるためにコレクション名をセットに保持
existing_collection_names = set(bpy.data.collections.keys())

# コレクションを作成
for collection_name in collection_names:
    if collection_name not in existing_collection_names:
        new_collection = bpy.data.collections.new(collection_name)
        bpy.context.scene.collection.children.link(new_collection)
        existing_collection_names.add(collection_name)  # 作成済みのコレクション名をセットに追加









-2,0,0から
0、1,0へ
角度を シータで






blender python



球体を作る
半径 0.01
名前は point 


(-2,0,0)から (2,,0,0)

0.1 間隔で 作る



import bpy

# 球体の半径を指定
radius = 0.03

# 球体を作成する範囲を指定
start_x = -2
end_x = 2
interval = 0.1

# 球体を作成するループ
for x in range(int(start_x * 10), int(end_x * 10) + 1, int(interval * 10)):
    # 球体の中心座標を計算
    current_x = x / 10.0
    location = (current_x, 0, 0)
    
    # 球体を作成
    bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=location, segments=32, ring_count=16)
    
    # 作成した球体の名前を設定
    sphere = bpy.context.active_object
    sphere.name = f"point_{current_x}"

# シーンを更新
bpy.context.view_layer.update()





-2,0,0から
0、1,0 方向へ

球体を作る
半径 0.01
名前は length root5 連番

0.1 間隔で11個 作る




-2,0,0から 0,1,0 の距離を求めて 0.1 で 割って その答えに1足した数の球体を等間隔で

理解しました。以下は、(-2, 0, 0)から(0, 1, 0)までの距離を求め、0.1で割ってその答えに1を足した数の球体を等間隔で作成するBlender Pythonスクリプトです。


22個の球体


import bpy
import math

# 球体の半径を指定
radius = 0.03

# 初期座標と目標座標を指定
start_coord = (-2, 0, 0)
end_coord = (0, 1, 0)

# 距離を計算
distance = math.sqrt(sum((end_coord[j] - start_coord[j])**2 for j in range(3)))

# 0.1で割って1を足した数
num_spheres = int(distance / 0.1) + 1

# 方向ベクトルを計算
direction_vector = [(end_coord[i] - start_coord[i]) / (num_spheres - 1) for i in range(3)]

# 球体を作成するループ
for i in range(num_spheres):
    # 現在の座標を計算
    current_coord = [start_coord[j] + i * direction_vector[j] for j in range(3)]
    
    # 現在の座標までの距離を計算
    distance_to_current = math.sqrt(sum((current_coord[j] - start_coord[j])**2 for j in range(3)))
    
    # 距離が1.0以下の場合に球体を作成
    if distance_to_current <= distance:
        bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=current_coord, segments=32, ring_count=16)



22個
# 初期座標と目標座標を指定
start_coord = (-2, 0, 0)
end_coord = (0, 1, 1)


import bpy
import math

# 球体の半径を指定
radius = 0.03

# 初期座標と目標座標を指定
start_coord = (-2, 0, 0)
end_coord = (0, 1, 1)

# 距離を計算
distance = math.sqrt(sum((end_coord[j] - start_coord[j])**2 for j in range(3)))

# 等間隔で球体を作成するループ
num_spheres = 22
for i in range(num_spheres):
    # 現在の座標を計算
    alpha = i / (num_spheres - 1)
    current_coord = [start_coord[j] + alpha * (end_coord[j] - start_coord[j]) for j in range(3)]
    
    # 球体を作成
    bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=current_coord, segments=32, ring_count=16)





22個

# 初期座標と目標座標を指定
start_coord = (-2, 0, 0)
end_coord = (0, 1, √5)



import bpy
import math

# 球体の半径を指定
radius = 0.03

# 初期座標と目標座標を指定
start_coord = (-2, 0, 0)
end_coord = (0, 1, math.sqrt(5))

# 距離を計算
distance = math.sqrt(sum((end_coord[j] - start_coord[j])**2 for j in range(3)))

# 等間隔で球体を作成するループ
num_spheres = 22
for i in range(num_spheres):
    # 現在の座標を計算
    alpha = i / (num_spheres - 1)
    current_coord = [start_coord[j] + alpha * (end_coord[j] - start_coord[j]) for j in range(3)]
    
    # 球体を作成
    bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=current_coord, segments=32, ring_count=16)





ああああああああああああああああああああああああああああああああああああああああああああ





 

基本系 配布 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 との対話 修正記録 と メモ・ノート


ああああああああああああああああああああああああああああああああああああああああああああ