import bpy
bpy.ops.mesh.primitive_cube_add() #添加立方體
ops表示操作命令的代碼,比如添加下面串列的一些命令
bpy.context
bpy.data
”."表示每一級
括號里面的都是立方體的屬性,清空里面屬性也是可以的,如果不知道屬性,可以命令列輸入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,放到代碼中即可,
清理按鈕的話,則:
study from blender-python教學
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/380987.html
標籤:其他
上一篇:樹莓派 3b+ 官方 系統 bullseye 安裝 opencv4.5.4 全程序
下一篇:大一新生的第一學期感想及疑惑
