Merge pull request #88 from DeemosTech/rodin-intergration
Bugfix: not finding parent_obj correctly when importing glb from rodin generated results
This commit is contained in:
commit
ce7b80fb00
34
addon.py
34
addon.py
@ -1190,22 +1190,30 @@ class BlenderMCPServer:
|
||||
mesh_obj = imported_objects[0]
|
||||
print("Single mesh imported, no cleanup needed.")
|
||||
else:
|
||||
parent_obj = imported_objects[0]
|
||||
if parent_obj.type == 'EMPTY' and len(parent_obj.children) == 1:
|
||||
potential_mesh = parent_obj.children[0]
|
||||
if potential_mesh.type == 'MESH':
|
||||
print("GLB structure confirmed: Empty node with one mesh child.")
|
||||
if len(imported_objects) == 2:
|
||||
empty_objs = [i for i in imported_objects if i.type == "EMPTY"]
|
||||
if len(empty_objs) != 1:
|
||||
print("Error: Expected an empty node with one mesh child or a single mesh object.")
|
||||
return
|
||||
parent_obj = empty_objs.pop()
|
||||
if len(parent_obj.children) == 1:
|
||||
potential_mesh = parent_obj.children[0]
|
||||
if potential_mesh.type == 'MESH':
|
||||
print("GLB structure confirmed: Empty node with one mesh child.")
|
||||
|
||||
# Unparent the mesh from the empty node
|
||||
potential_mesh.parent = None
|
||||
# Unparent the mesh from the empty node
|
||||
potential_mesh.parent = None
|
||||
|
||||
# Remove the empty node
|
||||
bpy.data.objects.remove(parent_obj)
|
||||
print("Removed empty node, keeping only the mesh.")
|
||||
# Remove the empty node
|
||||
bpy.data.objects.remove(parent_obj)
|
||||
print("Removed empty node, keeping only the mesh.")
|
||||
|
||||
mesh_obj = potential_mesh
|
||||
mesh_obj = potential_mesh
|
||||
else:
|
||||
print("Error: Child is not a mesh object.")
|
||||
return
|
||||
else:
|
||||
print("Error: Child is not a mesh object.")
|
||||
print("Error: Expected an empty node with one mesh child or a single mesh object.")
|
||||
return
|
||||
else:
|
||||
print("Error: Expected an empty node with one mesh child or a single mesh object.")
|
||||
@ -1272,6 +1280,8 @@ class BlenderMCPServer:
|
||||
return {"succeed": False, "error": str(e)}
|
||||
|
||||
break
|
||||
else:
|
||||
return {"succeed": False, "error": "Generation failed. Please first make sure that all jobs of the task are done and then try again later."}
|
||||
|
||||
try:
|
||||
obj = self._clean_imported_glb(
|
||||
|
||||
Loading…
Reference in New Issue
Block a user