import bpy
# 十字の長さ
cross_length = 2
# 十字の幅
cross_width = 0.2
# 十字を描く関数
def draw_cross():
# 十字の縦線を描く
bpy.ops.mesh.primitive_cube_add(size=cross_length, location=(0, 0, 0))
vertical_line = bpy.context.object
vertical_line.scale[1] = cross_width
vertical_line.name = "vertical_line"
# 十字の横線を描く
bpy.ops.mesh.primitive_cube_add(size=cross_length, location=(0, 0, 0))
horizontal_line = bpy.context.object
horizontal_line.scale[0] = cross_width
horizontal_line.name = "horizontal_line"
# 十字のもう1つの方向の線を描く
bpy.ops.mesh.primitive_cube_add(size=cross_length, location=(0, 0, 0))
depth_line = bpy.context.object
depth_line.scale[2] = cross_width
depth_line.name = "depth_line"
# オレンジの色を設定
orange_material = bpy.data.materials.new(name="オレンジ")
orange_material.diffuse_color = (1, 0.5, 0, 1) # RGB値でオレンジ色を設定
vertical_line.data.materials.append(orange_material)
horizontal_line.data.materials.append(orange_material)
depth_line.data.materials.append(orange_material)
# 十字を描く
draw_cross()
十字の幅を0.04に設定し、現在の色の補色になるように調整
import bpy
# 十字の長さ
cross_length = 2
# 十字の幅
cross_width = 0.04
# 補色を計算する関数
def calculate_complementary_color(color):
# 色の補色を計算
complementary_color = (1.0 - color[0], 1.0 - color[1], 1.0 - color[2], 1.0)
return complementary_color
# 十字を描く関数
def draw_cross():
# 十字の縦線を描く
bpy.ops.mesh.primitive_cube_add(size=cross_length, location=(0, 0, 0))
vertical_line = bpy.context.object
vertical_line.scale[1] = cross_width
vertical_line.name = "vertical_line"
# 十字の横線を描く
bpy.ops.mesh.primitive_cube_add(size=cross_length, location=(0, 0, 0))
horizontal_line = bpy.context.object
horizontal_line.scale[0] = cross_width
horizontal_line.name = "horizontal_line"
# 十字のもう1つの方向の線を描く
bpy.ops.mesh.primitive_cube_add(size=cross_length, location=(0, 0, 0))
depth_line = bpy.context.object
depth_line.scale[2] = cross_width
depth_line.name = "depth_line"
# 現在の色の補色を計算
current_color = bpy.context.scene.world.node_tree.nodes['Background'].inputs['Color'].default_value
complementary_color = calculate_complementary_color(current_color)
# 補色を設定
for obj in [vertical_line, horizontal_line, depth_line]:
complementary_material = bpy.data.materials.new(name="補色")
complementary_material.diffuse_color = complementary_color[:3] # RGB値で補色を設定
obj.data.materials.append(complementary_material)
# 十字を描く
draw_cross()
import bpy
# 立方体の辺の長さ
cube_size = 2
# 透明度が20%の水色で立方体を作成する関数
def create_cube():
bpy.ops.mesh.primitive_cube_add(size=cube_size, location=(0, 0, 0))
cube = bpy.context.object
cube.name = "立方体"
# 透明度が20%の水色のマテリアルを作成
material = bpy.data.materials.new(name="水色透明")
material.diffuse_color = (0, 0.5, 1, 0.2) # RGBA値で水色と透明度を設定
cube.data.materials.append(material)
# 立方体を作成
create_cube()
boolean
円柱 3つ
import bpy
# 円柱のパラメータ
cylinder_radius = 0.1 # 半径
cylinder_height = 2.0 # 高さ
# 円柱を作成する関数
def create_cylinder(rotation):
bpy.ops.mesh.primitive_cylinder_add(radius=cylinder_radius, depth=cylinder_height, location=(0, 0, 0), rotation=rotation)
cylinder = bpy.context.object
cylinder.name = "円柱"
return cylinder
# 姿勢を指定して円柱を作成
# x軸回転で作成
create_cylinder((1.5708, 0, 0)) # 1.5708 ラジアンは90度
# y軸回転で作成
create_cylinder((0, 1.5708, 0)) # 1.5708 ラジアンは90度
# z軸回転で作成
create_cylinder((0, 0, 1.5708)) # 1.5708 ラジアンは90度
import bpy
# 円柱のパラメータ
cylinder_radius = 0.1 # 半径
cylinder_height = 0.4 # 高さ
# 円柱を作成する関数
def create_cylinder(location, rotation):
bpy.ops.mesh.primitive_cylinder_add(radius=cylinder_radius, depth=cylinder_height, location=location, rotation=rotation)
cylinder = bpy.context.object
cylinder.name = "円柱"
return cylinder
# 姿勢を指定して円柱を作成
# x軸回転で作成
create_cylinder((0, 0, 0), (1.5708, 0, 0)) # 1.5708 ラジアンは90度
# y軸回転で作成
create_cylinder((0, 0, 0), (0, 1.5708, 0)) # 1.5708 ラジアンは90度
# z軸回転で作成
create_cylinder((0, 0, 0), (0, 0, 1.5708)) # 1.5708 ラジアンは90度
import bpy
# 円柱のパラメータ
cylinder_radius = 0.1 # 半径
cylinder_height = 0.4 # 高さ
# 円柱を作成する関数
def create_cylinder(location, rotation):
bpy.ops.mesh.primitive_cylinder_add(radius=cylinder_radius, depth=cylinder_height, location=location, rotation=rotation)
cylinder = bpy.context.object
cylinder.name = "円柱"
return cylinder
# 姿勢を指定して円柱を作成
# x軸回転で作成
create_cylinder((-1, 0, 0), (1.5708, 0, 0)) # 1.5708 ラジアンは90度
# y軸回転で作成
create_cylinder((-1, 0, 0), (0, 1.5708, 0)) # 1.5708 ラジアンは90度
# z軸回転で作成
create_cylinder((-1, 0, 0), (0, 0, 1.5708)) # 1.5708 ラジアンは90度
import bpy
# 円柱のパラメータ
cylinder_radius = 0.1 # 半径
cylinder_height = 0.4 # 高さ
# 円柱を作成する関数
def create_cylinder(location, rotation):
bpy.ops.mesh.primitive_cylinder_add(radius=cylinder_radius, depth=cylinder_height, location=location, rotation=rotation)
cylinder = bpy.context.object
cylinder.name = "円柱"
return cylinder
# 姿勢を指定して円柱を作成
# x軸回転で作成
create_cylinder((1, 0, 0), (1.5708, 0, 0)) # 1.5708 ラジアンは90度
# y軸回転で作成
create_cylinder((1, 0, 0), (0, 1.5708, 0)) # 1.5708 ラジアンは90度
# z軸回転で作成
create_cylinder((1, 0, 0), (0, 0, 1.5708)) # 1.5708 ラジアンは90度
@@@@@@@@@@@@@
捨て
blender python
python blender で 斜投影 の 見本を作って
Blenderを使用してPythonで斜投影の見本を作成するには、BlenderのPython APIを使用して3Dオブジェクトを作成し、適切な光源やカメラの設定を行います。以下は、簡単な例です。
まず、Blenderをスクリプトで制御できるようにするために、BlenderのPython APIをインポートします。そして、適切なカメラ、ライト、オブジェクトを作成し、斜投影を設定します。
import bpy
import math
# シーンのクリア
bpy.ops.wm.read_factory_settings(use_empty=True)
# メッシュの作成
bpy.ops.mesh.primitive_cube_add(size=2)
# カメラの作成
bpy.ops.object.camera_add(enter_editmode=False, align='VIEW', location=(0, -5, 3), rotation=(math.radians(60), 0, math.radians(45)))
# ライトの作成
bpy.ops.object.light_add(type='SUN', location=(2, -5, 5))
bpy.context.object.data.energy = 2.0
# 斜投影の設定
bpy.context.scene.camera.data.type = 'ORTHO'
bpy.context.scene.camera.data.ortho_scale = 3.0
bpy.context.scene.render.image_settings.file_format = 'PNG'
bpy.context.scene.render.filepath = "//output.png"
# レ
立方体の正方形の面に
幅 0.2 で 十字 cross を描いて
blender python
立方体 1辺2
中心 000
立方体を 厚さ 0 幅0.2のテープで
正方形 6面に
上下左右前後に貼る
正方形の中央に クロス croos になるように
基本系 配布 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