色代えの 見本
# 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)
以下 3つスクリプトを
一緒に実行すると 色が 同じ成ってしまう
# xy 平面
import bpy
import math
# 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_XY"
# Set the color for the circle
color = (0.2, 0.2, 0.9, 1.0) # Use RGBA values (range 0.0 to 1.0) with 1.0 for full opacity
material_name = "Circle_Material"
# Check if the material already exists, otherwise create a new one
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
# yz 平面
import bpy
# 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_YZ"
# Set the color for the circle
color = (0.8, 0.2, 0.1, 1.0) # Use RGBA values (range 0.0 to 1.0) with 1.0 for full opacity
material_name = "Circle_Material"
# Check if the material already exists, otherwise create a new one
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
# Swap Y and Z components of the vertices
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)
import math
rotation_angle = math.radians(90)
bpy.context.view_layer.objects.active = circle_obj
bpy.ops.transform.rotate(value=rotation_angle, orient_axis='Z')
# zx 平面
import bpy
# 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_ZX"
# Set the color for the circle
color = (0.1, 0.9, 0.3, 1.0) # Use RGBA values (range 0.0 to 1.0) with 1.0 for full opacity
material_name = "Circle_Material"
# Check if the material already exists, otherwise create a new one
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
# Swap Y and Z components of the vertices
for vertex in circle_obj.data.vertices:
temp_y = vertex.co.y
vertex.co.y = vertex.co.z
vertex.co.z = temp_y