feat(blender): extension set live in the GUI; MCP acceptance 9/9, probe made safe-mode compliant

This commit is contained in:
vh
2026-09-28 15:08:22 -07:00
parent 056433555f
commit fd20183cbb
3 changed files with 62 additions and 21 deletions
+36 -16
View File
@@ -70,11 +70,9 @@ def dims(o):
return "x".join(str(round(d * 1000, 3)) for d in world_extent(o)) + " mm (world)"
def run(name, fn):
try:
fn(name)
except Exception as ex:
report(name, False, "raised " + type(ex).__name__ + ": " + str(ex))
def raised(name, ex):
# repr, not type(ex).__name__: safe mode refuses dunder attributes.
report(name, False, "raised " + repr(ex)[:300])
# 1. 3D-Print Toolbox: clean non-manifold on a cube with one face deleted.
@@ -221,17 +219,39 @@ def t_cad_sketcher(name):
"sketch objects " + str(len(sketches)))
for n, f in (
("print3d_toolbox clean_non_manifold", t_print3d),
("bool_tool boolean_auto_difference", t_booltool),
("looptools circle", t_looptools),
("measureit addsegment", t_measureit),
("surfacepsycho bezier patch + STEP export", t_surfacepsycho),
("step_importer import_scene.step", t_step_import),
("ThreeMF_io export + import", t_threemf),
("CAD_Sketcher sketch + solve", t_cad_sketcher),
):
run(n, f)
# Each test is called by name: safe mode refuses calling a function held in a variable.
try:
t_print3d("print3d_toolbox clean_non_manifold")
except Exception as ex:
raised("print3d_toolbox clean_non_manifold", ex)
try:
t_booltool("bool_tool boolean_auto_difference")
except Exception as ex:
raised("bool_tool boolean_auto_difference", ex)
try:
t_looptools("looptools circle")
except Exception as ex:
raised("looptools circle", ex)
try:
t_measureit("measureit addsegment")
except Exception as ex:
raised("measureit addsegment", ex)
try:
t_surfacepsycho("surfacepsycho bezier patch + STEP export")
except Exception as ex:
raised("surfacepsycho bezier patch + STEP export", ex)
try:
t_step_import("step_importer import_scene.step")
except Exception as ex:
raised("step_importer import_scene.step", ex)
try:
t_threemf("ThreeMF_io export + import")
except Exception as ex:
raised("ThreeMF_io export + import", ex)
try:
t_cad_sketcher("CAD_Sketcher sketch + solve")
except Exception as ex:
raised("CAD_Sketcher sketch + solve", ex)
failed = [r[0] for r in results if not r[1]]
print("SUMMARY " + TAG + ": " + str(len(results) - len(failed)) + "/" + str(len(results)) + " passed")