Add slicer to layer when container is new (#57)

This commit is contained in:
Ma Nan
2025-04-11 16:38:56 +08:00
committed by GitHub
parent 1c49fbb813
commit 508e6858d7
2 changed files with 21 additions and 25 deletions

View File

@@ -164,4 +164,23 @@ def container_to_obj(container: Container,
container_obj=container_obj,
cache_dir=cache_dir)
try:
layer_node = get_nodes_by_type(
node_group, "BioxelNodes_FetchLayer")[0]
center_node = add_node_to_graph("ReCenter",
node_group,
use_link=get_use_link())
output_node = get_output_node(node_group)
node_group.links.new(layer_node.outputs[0],
center_node.inputs[0])
node_group.links.new(center_node.outputs[0],
output_node.inputs[0])
move_node_to_node(center_node, layer_node, (300, 0))
bpy.ops.bioxelnodes.add_slicer('EXEC_DEFAULT')
except:
pass
return container_obj

View File

@@ -8,9 +8,8 @@ from pathlib import Path
from ..exceptions import CancelledByUser
from ..props import BIOXELNODES_Series
from ..bioxelutils.node import add_node_to_graph
from ..bioxelutils.common import (get_all_layer_objs, get_container_obj,
get_layer_obj, get_nodes_by_type, get_output_node, is_incompatible, move_node_to_node)
get_layer_obj, is_incompatible)
from ..bioxelutils.container import (Container,
add_layers,
container_to_obj)
@@ -18,8 +17,7 @@ from ..bioxel.layer import Layer
from ..bioxel.parse import (DICOM_EXTS, SUPPORT_EXTS,
get_ext, parse_volumetric_data)
from ..utils import (get_cache_dir, get_use_link,
progress_update, progress_bar,
from ..utils import (get_cache_dir, progress_update, progress_bar,
select_object)
# 3rd-party
@@ -856,27 +854,6 @@ class ImportVolumetricDataDialog(bpy.types.Operator):
# Change render setting for better result
if is_first_import:
try:
node_group = container_obj.modifiers[0].node_group
layer_node = get_nodes_by_type(
node_group, "BioxelNodes_FetchLayer")[0]
center_node = add_node_to_graph("ReCenter",
node_group,
use_link=get_use_link())
output_node = get_output_node(node_group)
node_group.links.new(layer_node.outputs[0],
center_node.inputs[0])
node_group.links.new(center_node.outputs[0],
output_node.inputs[0])
move_node_to_node(center_node, layer_node, (300, 0))
bpy.ops.bioxelnodes.add_slicer('EXEC_DEFAULT')
except:
self.report({"WARNING"}, "Fail to create slicer.")
try:
bpy.ops.bioxelnodes.render_setting_preset('EXEC_DEFAULT',
preset="balance")