如何在blender 4.0中使用knife_project和python脚本?它让我的刀项目.poll() 期望一个 view3d 区域并编辑网格

问题描述 投票:0回答:1

它 promat 我刀项目.poll() 期望一个 view3d 区域并编辑网格。

我想用Python脚本导入2个blender文件,然后切换到顶部视角,使用编辑模式网格投影切割来达到效果?但是当我在运行时提示“了解项目”时。 poll() 需要一个 view3d 区域并编辑网格',我应该如何处理这个问题?以下是我运行的脚本。

import bpy
from bpy import context

scene = bpy.context.scene

bpy.ops.object.mode_set(mode='OBJECT')

bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete()

file_path1 = 'C:/Users/aaa/Desktop/CD171/test/CD4.blend'
file_path2 = 'C:/Users/aaa/Desktop/CD171/test/CD2.blend'

target_name = 'button'
cutter_name = 'piece'

def import_blender_object(file_path, object_name):
    directory = file_path + "/Object/"
    bpy.ops.wm.append(filename=object_name, directory=directory)


import_blender_object(file_path1, target_name)
import_blender_object(file_path2, cutter_name)
button_obj = bpy.data.objects.get(target_name)
piece_obj = bpy.data.objects.get(cutter_name)

# assure button_obj and piece_obj exits
if not button_obj or not piece_obj:
    raise ValueError("can't find button obj。")

# select button as active object
bpy.ops.object.select_all(action='DESELECT')  # cancel choose all object
piece_obj.select_set(True)
bpy.context.view_layer.objects.active = piece_obj
button_obj.select_set(True)
bpy.context.view_layer.objects.active = button_obj
bpy.ops.object.mode_set(mode='EDIT')

# Maximize 3d view in all windows.
for window in context.window_manager.windows:
    screen = window.screen
    for area in screen.areas:
        if area.type == 'VIEW_3D':
            # get active space
            space = area.spaces.active       
            # set top view
            space.region_3d.view_perspective = 'ORTHO'
            space.region_3d.view_rotation = (1.0, 0.0, 0.0, 0.0)

            with context.temp_override(window=window, area=area):
                #bpy.ops.screen.screen_full_area()
                bpy.ops.mesh.knife_project()
            break

bpy.ops.object.mode_set(mode='OBJECT')

提前谢谢您!

python blender
1个回答
0
投票

你成功了吗?我也有同样的问题...

© www.soinside.com 2019 - 2024. All rights reserved.