2023年6月21日水曜日

20230622 光円錐

 




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 にして