ブレンダーとPythonの学習

import bpy
bpy.ops.mesh.primitive_cube_add() #添加立方体

ops は、次のリストにいくつかのコマンドを追加するなどの操作コマンドのコードを示します。
bpy.context
bpy.data
"." は、
括弧内の各レベルの属性がキューブの属性であることを示し、クリアすることも可能です属性がわからない場合は、Line input bpy.ops.mesh.primitive_cube_add( をコマンド実行し、コンソールのオートコンプリートをクリックします。for
i in range(7):
print(iy
bpy.context) .selected_objects[i].name = “g”

import bpy
bpy.ops.object.align(align_mode='OPT_1', relative_to='OPT_1',align_axis={'Z'})

地面に置かれた

import bpy
class fengfengToools(bpy.types.Operator):
    bl_idname = 'obj.dimian' #字符串不能有大写字母
    bl_label = '地面对齐‘
    # 编辑器不能写入中文,得建立txt文档 输入中文 ,然后复制粘贴进去。
    
    def execute(self,context):
        bpy.ops.object.align(align_mode='OPT_1', relative_to='OPT_1',align_axis={'Z'})
        return{'FINISHED'}
bpy.utils.register_class(fengfengToools)

次にメニュー環境設定を開き、その中の最初の「インターフェース」を見つけて「開発オプション」にチェックを入れ、スクリプトを実行してオブジェクトをクリックし、F3 キーを押して検索ボックスを表示し、「グラウンドアライメント」を検索してクリックします。それから地面に置きます。

スクリプト -> プラグインに変換

命名はワンタイムで、スクリプトを自動的にロードする方法 -> プラグインになります

bl_info = {
    "name": "地面对齐",
    "author": "kidominox",
    "version": (1, 0),
    "blender": (3, 0, 0),
    "location": "F3搜索这个命令",
    "description": "物体对齐到地面上",
    "warning": "",
    "doc_url": "",
    "category": "Object",
}
# 
import bpy
class fengfengToools(bpy.types.Operator):
    bl_idname = "obj.dimian"
    bl_label = "地面对齐"
    
    def execute(self,context):
        bpy.ops.object.align(align_mode='OPT_1',relative_to='OPT_1',align_axis={'Z'})
        return{'FINISHED'}

def register():
    bpy.utils.register_class(fengfengToools)
    
def unregister():
    bpy.utils.unregister_class(fengfengToools)
if __name__ == "__main__":
    register()

スクリプトをボタンに取り込む

bl_info = {
    "name": "地面对齐",
    "author": "kidominox",
    "version": (1, 0),
    "blender": (3, 0, 0),
    "location": "F3搜索这个命令",
    "description": "物体对齐到地面上",
    "warning": "",
    "doc_url": "",
    "category": "Object",
}
# 
import bpy
class fengfengToools(bpy.types.Operator):
    bl_idname = "obj.dimian"
    bl_label = "地面对齐"
    
    def execute(self,context):
        bpy.ops.object.align(align_mode='OPT_1',relative_to='OPT_1',align_axis={'Z'})
        return{'FINISHED'}

class kidominoxTools(bpy.types.Header):
    
    bl_space_type = 'INFO' # indicate
    
    def draw(self,context):
        self.layout.operator("obj.dimian")
        self.layout.operator("mesh.primitive_cube_add")
        #在命令中是bpy.ops.mesh.primitive_cube_add() 而mesh.primitive_cube_add是他的id
    
    
    
def register():
    bpy.utils.register_class(fengfengToools)
    bpy.utils.register_class(kidominoxTools)
    
def unregister():
    bpy.utils.unregister_class(fengfengToools)
    bpy.utils.unregister_class(kidominoxTools)

if __name__ == "__main__":
    register()

upのメインバージョンは2.83ですが、私のバージョン3.0.0ではボタンが取得できません。
ボタンを上に置きます:

class kidominoxTools(bpy.types.Header):
    
    bl_space_type = 'INFO' # indicate
    bl_space_type = 'TOPBAR'
    
    def draw(self,context):
    if context.region.alignment == 'RIGHT':
            self.layout.operator("obj.dimian")
            self.layout.operator("mesh.primitive_cube_add")

インターフェース上のボタンにコマンドを素早く設定

ここに画像の説明を挿入
まず、id に変更したいコマンドを実行します。たとえば、実行後は bpy.ops.mesh.extrude_region_move() なので、id は Mesh.extrude_region_move となり、それをコードに記述するだけです。
ボタンがクリーンアップされたら、次のようになります。Blender-Python の教育ここに画像の説明を挿入
から学ぶ

おすすめ

転載: blog.csdn.net/Carol_learning/article/details/121902673