python - Blender Python 脚本:按全局坐标放置/连接顶点
问题描述
要挤出顶点,在编辑模式下,您只需 Ctr+RMB 即可,Blender 会自动检测鼠标位置并在该位置放置一个新的连接顶点。
我不明白为什么我不能设置鼠标位置,然后在信息窗口中使用相同的功能,如下所示:
bpy.context.scene.cursor.location = (0.0, 0.0, 0.0)
bpy.context.scene.cursor.location = (1,1,1)
bpy.ops.mesh.dupli_extrude_cursor(rotate_source=True)
当我运行它时,我收到以下错误:
RuntimeError: Operator bpy.ops.mesh.dupli_extrude_cursor.poll() expected a view3d region & editmesh
我需要这种方式,因为我的对象的格式是全局协调的,并且我想避免与用于创建网格的低级函数交互,因为这是高级软件的脚本。
编辑>>>>
我用操作员尝试了这个:
import bpy
class MyExtrude(bpy.types.Operator):
bl_idname = "wm.myextrude"
bl_label = "Extrude Operator"
def invoke(self, context, event):
bpy.context.scene.cursor.location = (1,1,1)
bpy.ops.mesh.dupli_extrude_cursor(rotate_source=True)
return {'FINISHED'}
#weird workaround
classes = (MyExtrude,
)
register, unregister = bpy.utils.register_classes_factory(classes)
if __name__ == "__main__":
register()
bpy.ops.wm.myextrude('INVOKE_DEFAULT')
但是它返回相同的错误:
RuntimeError: Operator bpy.ops.mesh.dupli_extrude_cursor.poll() expected a view3d region & editmesh
解决方案
推荐阅读
- angular - Angular EventEmitter 在回调中不起作用
- django - 扩展models.Model的行为
- machine-learning - 问:Acumos:我不知道文档中写的“Acumos Portal Marketplace Users”和“Acumos Operations”有什么区别
- aem - 如何在aem中的两个组件之间设置组件?
- ios - 无论文本长度如何,如何使 SwiftUI 文本视图显示两行?
- ruby - 多个 Has_Many 与相同模型但不同列表的关系
- scala - 使用 sbt 运行 Scala/Swing 程序时出现 NoClassDefFoundError
- php - PHP警告:除以零
- android - 奖励产品是否将应用程序标记为“包含广告”?
- javascript - 使用 jQuery 检测 QR/条形码输入 onchange 事件