2023年7月31日月曜日

point 球体




半径0.1


import bpy


# 半径を設定

radius = 0.1


# 座標を設定

location = (0, 0, 0)


# 球を作成

bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=location)

sphere = bpy.context.active_object


# マテリアルを作成

material = bpy.data.materials.new(name="RedMaterial")

sphere.data.materials.append(material)


# マテリアルの設定

material.use_nodes = False

material.diffuse_color = (1, 0, 0, 1)  # 赤色 (R:1.0, G:0.0, B:0.0, A:1.0)


# オブジェクトの名前を設定

sphere.name = "point(0,0,0)"






import bpy


def create_sphere_at_position(position, color, name):

    # 半径を設定

    radius = 0.1


    # 球を作成(指定した座標に)

    bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=position)

    sphere = bpy.context.active_object


    # マテリアルを作成

    material = bpy.data.materials.new(name="Material_" + name)

    sphere.data.materials.append(material)


    # マテリアルの設定

    material.use_nodes = False

    material.diffuse_color = color


    # オブジェクトの名前を設定

    sphere.name = name


# 球を作成(座標(-1, 0, 0)、紫の濃さ0.8)

create_sphere_at_position((-1, 0, 0), (0.6, 0.2, 0.6, 1.0), "point(-1,0,0)")


# 球を作成(座標(3, 0, 0)、紫の濃さ0.5)

create_sphere_at_position((3, 0, 0), (0.5, 0, 0.5, 1.0), "point(3,0,0)")





 

基本系 配布 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 






半径1の球体









import bpy


# 半径を設定

radius = 1


# 透明度を設定(0.0から1.0の間で設定。0.0は完全に透明、1.0は完全に不透明)

transparency = 0.1


# 球を作成

bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=(0, 0, 0))

sphere = bpy.context.active_object


# マテリアルを作成

material = bpy.data.materials.new(name="TransparentMaterial")

sphere.data.materials.append(material)


# マテリアルの設定

material.use_nodes = True

nodes = material.node_tree.nodes

bsdf_node = nodes["Principled BSDF"]

transparent_node = nodes.new(type='ShaderNodeBsdfTransparent')

mix_shader_node = nodes.new(type='ShaderNodeMixShader')


# ノードの接続

material.node_tree.links.new(bsdf_node.outputs['BSDF'], mix_shader_node.inputs[1])

material.node_tree.links.new(transparent_node.outputs['BSDF'], mix_shader_node.inputs[2])

material.node_tree.links.new(mix_shader_node.outputs['Shader'], material.node_tree.nodes['Material Output'].inputs['Surface'])


# 透明度を設定

bsdf_node.inputs["Base Color"].default_value = (0.5, 0.8, 1.0, 1.0)  # 薄い水色 (R:0.5, G:0.8, B:1.0, A:1.0)

mix_shader_node.inputs[0].default_value = transparency  # 透明度を設定


# 透明な影を設定(オブジェクトが影を落とすが、影が見えなくなります)

sphere.cycles.is_shadow_catcher = 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 





20230801b 3x3x3 立方体 箱庭



blender python 


立方体を作る

中心は 000

1辺 20


メッシュ

マテリアル

透明度 10%

ものすごい薄い水色







import bpy


# 立方体の1辺の長さを設定

side_length = 20


# 透明度を設定(0.0から1.0の間で設定。0.0は完全に透明、1.0は完全に不透明)

transparency = 0.1


# 立方体を作成

bpy.ops.mesh.primitive_cube_add(size=side_length, location=(0, 0, 0))

cube = bpy.context.active_object


# マテリアルを作成

material = bpy.data.materials.new(name="TransparentMaterial")

cube.data.materials.append(material)


# マテリアルの設定

material.use_nodes = True

nodes = material.node_tree.nodes

bsdf_node = nodes["Principled BSDF"]

transparent_node = nodes.new(type='ShaderNodeBsdfTransparent')

mix_shader_node = nodes.new(type='ShaderNodeMixShader')


# ノードの接続

material.node_tree.links.new(bsdf_node.outputs['BSDF'], mix_shader_node.inputs[1])

material.node_tree.links.new(transparent_node.outputs['BSDF'], mix_shader_node.inputs[2])

material.node_tree.links.new(mix_shader_node.outputs['Shader'], material.node_tree.nodes['Material Output'].inputs['Surface'])


# 透明度を設定

bsdf_node.inputs["Base Color"].default_value = (0.5, 0.8, 1.0, 1.0)  # 薄い水色 (R:0.5, G:0.8, B:1.0, A:1.0)

mix_shader_node.inputs[0].default_value = transparency  # 透明度を設定


# 透明な影を設定(オブジェクトが影を落とすが、影が見えなくなります)

cube.cycles.is_shadow_catcher = 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 





数字変更 20230801b 半径1の円 移動複製





名前は 小数2桁まで表示 


   center = (0, 0, 0)

   center = (1, 0, 0)

   center = ((3**0.5)/2, 0, 0)

   center = (2, 0, 0)

   center = (-1, 0, 0)






import bpy

import math


def create_circle_on_plane(plane, color):

    # Set the circle's radius and center

    radius = 1

    center = (0.5, 0, 0)


    # Create a new mesh circle with filled ngon

    bpy.ops.mesh.primitive_circle_add(radius=radius, location=center, fill_type='NGON')


    # Rename the circle object with the rounded position

    rounded_center = tuple(round(coord, 2) for coord in center)

    circle_obj = bpy.context.active_object

    circle_obj.name = "Circle_" + plane + "_({:.2f}, {:.2f}, {:.2f})".format(*rounded_center)


    # Check if the material already exists, otherwise create a new one

    material_name = "Circle_Material_" + plane

    if material_name not in bpy.data.materials:

        material = bpy.data.materials.new(name=material_name)

    else:

        material = bpy.data.materials[material_name]


    # Assign the color to the material

    material.use_nodes = False

    material.diffuse_color = color


    # Create a material slot and assign the material to the circle object

    if not circle_obj.data.materials:

        circle_obj.data.materials.append(material)

    else:

        circle_obj.data.materials[0] = material


    if plane == "YZ":

        # Swap Y and Z components of the vertices for YZ plane

        for vertex in circle_obj.data.vertices:

            temp_y = vertex.co.y

            vertex.co.y = vertex.co.z

            vertex.co.z = temp_y


        # Z-axis rotation (90 degrees) for YZ plane

        rotation_angle = math.radians(90)

        bpy.context.view_layer.objects.active = circle_obj

        bpy.ops.transform.rotate(value=rotation_angle, orient_axis='Z')

    elif plane == "ZX":

        # Swap Y and Z components of the vertices for ZX plane

        for vertex in circle_obj.data.vertices:

            temp_y = vertex.co.y

            vertex.co.y = vertex.co.z

            vertex.co.z = temp_y



# xy plane - 0, 191, 255 (Deep Sky Blue)

create_circle_on_plane("XY", (0/255, 191/255, 255/255, 1.0))


# yz plane - (255, 105, 180)

create_circle_on_plane("YZ", (255/255, 105/255, 180/255, 1.0))


# zx plane - 薄緑 (Light Green) - (144, 238, 144)

create_circle_on_plane("ZX", (144/255, 238/255, 144/255, 1.0))










# コレクションを作る 重複の場合 作らない

import bpy


# List of collection names

collection_names = [

 

   "円中心 (0, 0, 0)",

   "円中心 (3^(0.5), 0, 0)",

 "円中心 (0.5, 0, 0)",

 "円中心 (1, 0, 0)",

   "円中心 (2, 0, 0)",

    "xyz 軸 円柱"

]


# 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 





半径1の円 メッシュ マテリアル






色代えの  見本


# xy plane - 0, 191, 255 (Deep Sky Blue)
create_circle_on_plane("XY", (0/255, 191/255, 255/255, 1.0))








「配布単品 20230801 半径1の円板 色付き 001.blend」を共有











# 半径1の円板 xy yz zx

import bpy
import math

def create_circle_on_plane(plane, color):
    # Set the circle's radius and center
    radius = 1
    center = (0, 0, 0)

    # Create a new mesh circle with filled ngon
    bpy.ops.mesh.primitive_circle_add(radius=radius, location=center, fill_type='NGON')

    # Rename the circle object
    circle_obj = bpy.context.active_object
    circle_obj.name = "Circle_" + plane

    # Check if the material already exists, otherwise create a new one
    material_name = "Circle_Material_" + plane
    if material_name not in bpy.data.materials:
        material = bpy.data.materials.new(name=material_name)
    else:
        material = bpy.data.materials[material_name]

    # Assign the color to the material
    material.use_nodes = False
    material.diffuse_color = color

    # Create a material slot and assign the material to the circle object
    if not circle_obj.data.materials:
        circle_obj.data.materials.append(material)
    else:
        circle_obj.data.materials[0] = material

    if plane == "YZ":
        # Swap Y and Z components of the vertices for YZ plane
        for vertex in circle_obj.data.vertices:
            temp_y = vertex.co.y
            vertex.co.y = vertex.co.z
            vertex.co.z = temp_y

        # Z-axis rotation (90 degrees) for YZ plane
        rotation_angle = math.radians(90)
        bpy.context.view_layer.objects.active = circle_obj
        bpy.ops.transform.rotate(value=rotation_angle, orient_axis='Z')
    elif plane == "ZX":
        # Swap Y and Z components of the vertices for ZX plane
        for vertex in circle_obj.data.vertices:
            temp_y = vertex.co.y
            vertex.co.y = vertex.co.z
            vertex.co.z = temp_y



# xy plane - 0, 191, 255 (Deep Sky Blue)
create_circle_on_plane("XY", (0/255, 191/255, 255/255, 1.0))

# yz plane - (255, 105, 180)
create_circle_on_plane("YZ", (255/255, 105/255, 180/255, 1.0))

# zx plane - 薄緑 (Light Green) - (144, 238, 144)
create_circle_on_plane("ZX", (144/255, 238/255, 144/255, 1.0))







# コレクションを作る 重複の場合 作らない

import bpy


# List of collection names

collection_names = [

    "単位円 torus",

    "xyz 軸 円柱",

  "xyz 軸 円板",

]


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