blender的python脚本中如何获取选中顶点的方法记录
blender吧
全部回复
仅看楼主
level 6
mobilefzb 楼主
blender目前有个bmesh的模块可以完成获取编辑状态下的顶点边之类的数据属性进行进一步的处理,但是目前来说还出于开发阶段,所以不太稳定,这个方法是外国网站上搜索来的,打开个外国网站太不容易了,blendercn论坛也很不容易刷出来,只有把方法记录到这里,方便大家看。
这个处理函数写的比较奇怪,是通过回调的方式传入的,为何会这样做是因为发现获取到的顶点跳出函数后就被系统回收了也就是之前我想的通过数组将当前选中的顶点保存并返回思路不可行,为了不破坏封装性就直接这样写了,目前对python还出于初学阶段……高手觉得不爽改之。
import
bp
y
import bmesh
def get_selected_verts_frome_edit_mesh(sel_verts_callback) :
obj = bpy.context.object;
sel_vert_arr = [];
if obj.mode == 'EDIT':
bm = bmesh.from_edit_mesh(obj.data);
for v in bm.verts:
if v.select:
sel_vert_arr.append(v);
else :
print("Object is not in edit mode!");
pass;
sel_verts_callback(sel_vert_arr);
def my_callback(sel_verts):
for v in sel_verts:
print(v.co.x);
else :
print("end loop!");
get_selected_verts_frome_edit_mesh(my_callback);
2014年01月11日 10点01分 1
level 6
mobilefzb 楼主
居然把TAB按键统统吃掉了,PYTHON中TAB按键很重要,相当于{}
2014年01月11日 10点01分 2
这是浏览器解释 HTML 代码造成的。 在显示网页时,会把多余的空格全部合并为一个。 如果你查看网页源代码,可以看到这段Python程序里前面缩进用的空格都还在。
2014年01月13日 01点01分
level 7
请问怎么获取 线 或 面 呢?
2015年01月07日 15点01分 3
level 8
不要用tab,用多个space。py编辑器里一般有这些。
2015年01月08日 04点01分 4
1