2023年10月9日月曜日

20231010a 光行差の望遠鏡







コレクションだけを作る

Torus radius 1.0
Torus radius 2.0
Ball radius 0.07
Ball radius 0.03
Ball long radius 0.05

import bpy

# コレクション名のリスト
collection_names = ["Torus radius 1.0", "Torus radius 2.0", "Ball radius 0.07", "Ball radius 0.03"]

# コレクションを作成
for name in collection_names:
    new_collection = bpy.data.collections.new(name)
    bpy.context.scene.collection.children.link(new_collection)










blender pyhton


21個の球体を 等間隔に作る
球体半径 0.01
(-1,-2,0)から (1,2,0)


import bpy
import math


# 球体の数と半径を指定
num_spheres = 21
radius = 0.07

# 球体を作成する位置の範囲を指定
start_point = (-1, -2, 0)
end_point = (1, 2, 0)

# 21個の球体を作成
for i in range(num_spheres):
    # 位置を計算
    t = i / (num_spheres - 1)  # 0から1までの範囲で分割
    x = start_point[0] + t * (end_point[0] - start_point[0])
    y = start_point[1] + t * (end_point[1] - start_point[1])
    z = start_point[2] + t * (end_point[2] - start_point[2])

    # 球体を作成
    bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=(x, y, z))
    sphere = bpy.context.object

    # オブジェクト名に連番とXYZの位置情報を組み合わせて設定
    sphere.name = f"球体{i+1}_X{x:.2f}_Y{y:.2f}_Z{z:.2f}"






トーラスを21個作る

メジャー半径 1.0
マイナー半径 0.05


原点000で トーラスを作る
x軸で90度回転

トーラス中心を等間隔で
(-1,-2,0)から (1,2,0)

オブジェクト名に トーラスのメジャー半径を加える


import bpy
import math

# トーラスのパラメータ
major_radius = 2.0
minor_radius = 0.05
num_toruses = 21

# トーラスの中心を配置する範囲
start_position = (-1, -2, 0)
end_position = (1, 2, 0)

# トーラスの間隔を計算
spacing_x = (end_position[0] - start_position[0]) / (num_toruses - 1)
spacing_y = (end_position[1] - start_position[1]) / (num_toruses - 1)

# 21個のトーラスを作成して配置
for i in range(num_toruses):
    x_position = start_position[0] + i * spacing_x
    y_position = start_position[1] + i * spacing_y
    torus = bpy.ops.mesh.primitive_torus_add(
        align='WORLD',
        location=(x_position, y_position, start_position[2]),
        rotation=(math.radians(90), 0, 0),
        major_radius=major_radius,
        minor_radius=minor_radius,
        major_segments=48,
        minor_segments=12
    )
    
    # トーラスのオブジェクト名にメジャー半径を加える
    bpy.context.object.name = f"トーラス_{major_radius}"







blender pyhton


21個の球体を 等間隔に作る
球体半径 0.01
(-1,-2,0)から (1,2,0)


import bpy
import math


# 球体の数と半径を指定
num_spheres = 41
radius = 0.05

# 球体を作成する位置の範囲を指定
start_point = (-2, -4, 0)
end_point = (2, 4, 0)

# 41個の球体を作成
for i in range(num_spheres):
    # 位置を計算
    t = i / (num_spheres - 1)  # 0から1までの範囲で分割
    x = start_point[0] + t * (end_point[0] - start_point[0])
    y = start_point[1] + t * (end_point[1] - start_point[1])
    z = start_point[2] + t * (end_point[2] - start_point[2])

    # 球体を作成
    bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=(x, y, z))
    sphere = bpy.context.object

    # オブジェクト名に連番とXYZの位置情報を組み合わせて設定
    sphere.name = f"球体{i+1}_X{x:.2f}_Y{y:.2f}_Z{z:.2f}"













blender pyhton


線分を 作る
(-1,-2,0)から (1,2,0)

コレクション名 ”斜め望遠鏡” 
オヴジェクト名 線分傾け60度




blender pyhton


21個の球体を 等間隔に作る
球体半径 0.01
(-1,-2,0)から (1,2,0)

コレクション名 ”斜め望遠鏡” 
オヴジェクト名 
連番とXYZの位置情報を球体の名前に組み合わ




import bpy
import math

# コレクション名を指定
collection_name = "斜め望遠鏡"

# コレクションを作成または取得
collection = bpy.data.collections.get(collection_name)
if collection is None:
    collection = bpy.data.collections.new(collection_name)
    bpy.context.scene.collection.children.link(collection)

# 球体の数と半径を指定
num_spheres = 21
radius = 0.01

# 球体を作成する位置の範囲を指定
start_point = (-1, -2, 0)
end_point = (1, 2, 0)

# 21個の球体を作成
for i in range(num_spheres):
    # 位置を計算
    t = i / (num_spheres - 1)  # 0から1までの範囲で分割
    x = start_point[0] + t * (end_point[0] - start_point[0])
    y = start_point[1] + t * (end_point[1] - start_point[1])
    z = start_point[2] + t * (end_point[2] - start_point[2])

    # 球体を作成
    bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=(x, y, z))
    sphere = bpy.context.object

    # オブジェクト名に連番とXYZの位置情報を組み合わせて設定
    sphere.name = f"球体{i+1}_X{x:.2f}_Y{y:.2f}_Z{z:.2f}"



トーラスを21個 原点で 作り x軸で90度回転させ
球体の中心位置に トーラスの中心位置を重ねる移動

y成分、x成分、およびz = 0を中心にzx平面に平行に配置
トーラスを21個作る

メジャー半径 1.0
マイナー半径 0.05





立方体を作る
中心 000
1辺 4単位























import bpy

# 新しいコレクションを作成
collection1 = bpy.data.collections.new("Torus 1.0")
collection2 = bpy.data.collections.new("Torus 2.0")

# コレクションをシーンに追加
scene = bpy.context.scene
scene.collection.children.link(collection1)
scene.collection.children.link(collection2)



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

# シーンをクリア

bpy.ops.wm.read_factory_settings(use_empty=True)

# シーンをクリア bpy.ops.wm.read_factory_settings(use_empty=True)



 

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


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