import sys
import trimesh

src = sys.argv[1]
dst = sys.argv[2]
min_vol_mm3 = float(sys.argv[3]) if len(sys.argv) > 3 else 100.0

m = trimesh.load(src)
parts = m.split(only_watertight=False)
keep = [p for p in parts if abs(p.volume) >= min_vol_mm3]
print('componentes:', len(parts), '-> mantidos:', len(keep))
for p in keep:
    print('  volume_cm3=', round(abs(p.volume) / 1000, 2), 'bbox=', [round(v, 1) for v in p.extents])

out = trimesh.util.concatenate(keep) if len(keep) > 1 else keep[0]
out.export(dst)
print('watertight:', out.is_watertight, 'volume_cm3:', round(abs(out.volume) / 1000, 2))
print('bbox mm:', [round(v, 1) for v in out.extents])
