Blender プログラム例の紹介

前準備

前準備として,Blender のインストールが終わっていること.


関連する外部ページhttps://docs.blender.org/api/blender_python_api_2_73_release/info_overview.html

  1. スクリプトにパスを通す
    blender --python hoge.py
    
    PYTHONPATH
    import sys
    sys.path.append('/path/to/dir')
    
  2. プログラムを動かしてみる

    関連する外部ページhttps://github.com/vvoovv/blender-osm/wiki/Import-OpenStreetMap-%28.osm%29

    import bpy
    import random
    for x in bpy.data.objects:
        if x.type == "MESH":
            x.modifiers.new(x.name,'SOLIDIFY')
            x.modifiers[0].thickness = random.random()*200
    
  3. バッチ(batch)モードでの実行手順例
    blender -b --python hoge.py
    
  4. 対話(interactive)モードでの実行手順例
    blender --python-console
    

別のプログラム例(動作チェックを行なっていません

import bpy
a = bpy.context.selected_objects[0] 
print('Imported name: ', a.name)

別のプログラム例(動作チェックを行なっていません

#!/bin/bash
rm /tmp/hoge.py
cat > /tmp/hoge.py <<-BPY
import bpy
import os
print(dir(bpy))
BPY
blender -b --python hoge.py

別のプログラム例(動作チェックを行なっていません

#!/bin/bash
rm /tmp/hoge.py
cat > /tmp/hoge.py <<-BPY
import bpy
import os
print(bpy.__doc__)
BPY
blender -b --python hoge.py

別のプログラム例(動作チェックを行なっていません

#!/bin/bash
rm /tmp/hoge.py
cat > /tmp/hoge.py <<-BPY
import bpy
import os
bpy.context.selected_oject
bpy.context.active_object 

BPY
blender -b --python hoge.py

別のプログラム例(動作チェックを行なっていません

#!/bin/bash
rm /tmp/hoge.py
cat > /tmp/hoge.py <<-BPY
import bpy
import os
import bpy
for i in bpy.data.objects:
     print(i)

BPY
blender -b --python hoge.py

関連する外部ページhttp://kinjo.github.com/ojag-blender/#slide43

import bpy
print(bpy.data.meshes['Cube'].vertices[0].co
print(bpy.data.meshes['Cube'].vertices[0].co.y 
import bpy
print(bpy.ops.mesh.quads_convert_to_tris())
for i in bpy.data.meshes['Cube'].faces:
    for j in i.vertices:
        print(bpy.data.meshes['Cube'].vertices[j].co)

関連する外部ページhttp://www.wakayama-u.ac.jp/~tokoi/lecture/shori1/15.html

現在のシーンからすべての 'MESH' オブジェクト(立方体や球など)および材質データを表示するプログラム

import bpy

for a in bpy.context.scene.objects:
    if a.type == 'MESH':
        print(a)
for a in bpy.data.objects:
    if a.type == 'MESH':
        print(a)
for a in bpy.data.meshes:
    print(a)
for a in bpy.data.materials:
    print(a)