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教学
|