2023年7月28日金曜日

202230729a 半径2の円  と 今回のコレクショ名



 






blender python


円を作る

円の半径2


円の中心は

0,0,0

0,-2,0

1,-√3,0

-1,-√3,0







centers = [

(0, 0, 0), 

(0, 2, 0), 

(1, -math.sqrt(3), 0), 

(-1, -math.sqrt(3), 0)

]








# 今回のコレクション名 作成





import bpy

# List of collection names
collection_names = [
    "円板",
    "高さ違い 円板",
    "球体 point marks",
    "rail Y=0",
    "rail Y=-√3",
    "rail Y=-2"
]

# 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)












import bpy

import math

import bmesh


# 円の半径

radius = 2.0


# 4つの円の位置

positions = [

    (0, 0, 0),

    (0, -2, 0),

    (1, -math.sqrt(3), 0),

    (-1, -math.sqrt(3), 0)

]


# 4つの色を用意(より薄い青)

colors = [

    (0.4, 0.8, 1.0, 1.0),

    (0.3, 0.6, 1.0, 1.0),

    (0.2, 0.4, 1.0, 1.0),

    (1.0, 0.4, 0.3, 1.0)

]


# 4つの円を作成し、位置と名前と色を設定

for i, (position, color) in enumerate(zip(positions, colors)):

    x, y, z = position

    name = f"Circle_(x={x:.1f}, y={y:.1f}, z={z:.1f})"

    

    # 新しいメッシュを作成

    mesh = bpy.data.meshes.new(f"{name}_Mesh")

    obj = bpy.data.objects.new(name, mesh)


    # シーンに追加

    scene = bpy.context.scene

    scene.collection.objects.link(obj)


    # メッシュを作成

    bm = bmesh.new()

    bmesh.ops.create_circle(bm, cap_ends=True, cap_tris=False, segments=64, radius=radius)

    bm.to_mesh(mesh)

    bm.free()


    # オブジェクトの位置を設定

    obj.location = position


    # マテリアルを作成しオブジェクトに割り当てる

    mat = bpy.data.materials.new(name=f"{name}_Material")

    mat.use_nodes = False  # ノードを使用しない

    mat.diffuse_color = color

    obj.data.materials.append(mat)







# 4つの円の位置

positions = [

    (0, 0, 1),

    (0, -2, 2),

    (1, -math.sqrt(3), 3),

    (-1, -math.sqrt(3), 4)

]





import bpy

import math

import bmesh


# 円の半径

radius = 2.0




# 4つの円の位置

positions = [

    (0, 0, 1),

    (0, -2, 2),

    (1, -math.sqrt(3), 3),

    (-1, -math.sqrt(3), 4)

]




# 4つの色を用意(より薄い青)

colors = [

    (0.4, 0.8, 1.0, 1.0),

    (0.3, 0.6, 1.0, 1.0),

    (0.2, 0.4, 1.0, 1.0),

    (1.0, 0.4, 0.3, 1.0)

]


# 4つの円を作成し、位置と名前と色を設定

for i, (position, color) in enumerate(zip(positions, colors)):

    x, y, z = position

    name = f"Circle_(x={x:.1f}, y={y:.1f}, z={z:.1f})"

    

    # 新しいメッシュを作成

    mesh = bpy.data.meshes.new(f"{name}_Mesh")

    obj = bpy.data.objects.new(name, mesh)


    # シーンに追加

    scene = bpy.context.scene

    scene.collection.objects.link(obj)


    # メッシュを作成

    bm = bmesh.new()

    bmesh.ops.create_circle(bm, cap_ends=True, cap_tris=False, segments=64, radius=radius)

    bm.to_mesh(mesh)

    bm.free()


    # オブジェクトの位置を設定

    obj.location = position


    # マテリアルを作成しオブジェクトに割り当てる

    mat = bpy.data.materials.new(name=f"{name}_Material")

    mat.use_nodes = False  # ノードを使用しない

    mat.diffuse_color = color

    obj.data.materials.append(mat)







aaaa