import bpy
import math
# 小数の桁数を指定
decimal_places = 1
# 図形の大きさ
size = 0.3
def create_plane_at_position(position, width, height, name, x, y, z):
# 平面を作成(指定した座標に)
bpy.ops.mesh.primitive_plane_add(size=1, location=position)
plane = bpy.context.active_object
# 幅と高さを設定
plane.scale = (width, height, 1)
# マテリアルを作成
material = bpy.data.materials.new(name="Material_" + name)
plane.data.materials.append(material)
# マテリアルの設定
material.use_nodes = False
material.diffuse_color = (0.0, 1.0, 0.0, 1.0) # 緑色 (R:0.0, G:1.0, B:0.0, A:1.0)
# オブジェクトの名前を設定
formatted_name = "{} ({:.{}f}, {:.{}f}, {:.{}f})".format(name, x, decimal_places, y, decimal_places, z, decimal_places)
plane.name = formatted_name
def create_cone_or_circle_at_position(position, radius, height, name, x, y, z):
if position == (0, 0, 0):
# (0, 0, 0) の場合は円を作成
bpy.ops.mesh.primitive_circle_add(radius=radius, location=position)
obj = bpy.context.active_object
else:
# それ以外の場合は円錐を作成
bpy.ops.mesh.primitive_cone_add(vertices=32, radius1=radius, radius2=0, depth=height, location=position)
obj = bpy.context.active_object
# 円錐の底面中心を (0, 0, 0) から遠ざける向きを計算
direction = math.atan2(position[1], position[0])
distance = math.sqrt(position[0]**2 + position[1]**2 + position[2]**2)
angle = math.acos(position[2] / distance)
obj.rotation_euler = (angle + math.pi, 0, direction + math.pi / 2) # Y軸回りに90度回転
# マテリアルを作成
material = bpy.data.materials.new(name="Material_" + name)
obj.data.materials.append(material)
# マテリアルの設定
material.use_nodes = False
material.diffuse_color = (1.0, 0.0, 0.0, 1.0) # 赤色 (R:1.0, G:0.0, B:0.0, A:1.0)
# オブジェクトの名前を設定
formatted_name = "{} ({:.{}f}, {:.{}f}, {:.{}f})".format(name, x, decimal_places, y, decimal_places, z, decimal_places)
obj.name = formatted_name
# 円周上に等間隔に12個の図形を作成
radius = 3.0 # 半径
center_x = 1.0 # 中心のX座標
center_y = 2.0 # 中心のY座標
num_objects = 12 # 図形の個数
for i in range(num_objects):
angle = i * (2 * math.pi / num_objects) # 等間隔の角度
x = center_x + radius * math.cos(angle)
y = center_y + radius * math.sin(angle)
z = 0
position = (x, y, z)
plane_name = "地図位置"
obj_name = "事象情報"
create_plane_at_position(position, size, size, plane_name, x, y, z)
create_cone_or_circle_at_position(position, math.sqrt(2) * size / 2, size / 2, obj_name, x, y, z)
基本系 配布 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 との対話 修正記録 と メモ・ノート
ああああああああああああああああああああああああああああああああああああああああああああ