stub in anycubic photon mono

This commit is contained in:
Stewart Allen 2026-05-16 00:27:32 -04:00
commit fa7bc3db15
10 changed files with 252 additions and 4 deletions

View file

@ -0,0 +1,15 @@
{
"no_clone": true,
"cmd": {},
"settings": {
"bed_width": 143.36,
"bed_depth": 89.6,
"bed_height": 1,
"max_height": 165,
"resolution_x": 4096,
"resolution_y": 2560,
"sla_format": "pm3n",
"sla_file_ext": "pm3n",
"sla_format_version": 1
}
}

View file

@ -0,0 +1,15 @@
{
"no_clone": true,
"cmd": {},
"settings": {
"bed_width": 153.4,
"bed_depth": 87,
"bed_height": 1,
"max_height": 165,
"resolution_x": 9024,
"resolution_y": 5120,
"sla_format": "pm4n",
"sla_file_ext": "pm4n",
"sla_format_version": 1
}
}

View file

@ -0,0 +1,15 @@
{
"no_clone": true,
"cmd": {},
"settings": {
"bed_width": 132,
"bed_depth": 80,
"bed_height": 1,
"max_height": 165,
"resolution_x": 3840,
"resolution_y": 2400,
"sla_format": "pwma",
"sla_file_ext": "pwma",
"sla_format_version": 1
}
}

View file

@ -0,0 +1,15 @@
{
"no_clone": true,
"cmd": {},
"settings": {
"bed_width": 218.88,
"bed_depth": 122.88,
"bed_height": 1,
"max_height": 200,
"resolution_x": 11520,
"resolution_y": 5120,
"sla_format": "pm5s",
"sla_file_ext": "pm5s",
"sla_format_version": 1
}
}

View file

@ -0,0 +1,15 @@
{
"no_clone": true,
"cmd": {},
"settings": {
"bed_width": 195.84,
"bed_depth": 122.4,
"bed_height": 1,
"max_height": 200,
"resolution_x": 5760,
"resolution_y": 3600,
"sla_format": "pwmb",
"sla_file_ext": "pwmb",
"sla_format_version": 1
}
}

View file

@ -0,0 +1,15 @@
{
"no_clone": true,
"cmd": {},
"settings": {
"bed_width": 192,
"bed_depth": 120,
"bed_height": 1,
"max_height": 245,
"resolution_x": 3840,
"resolution_y": 2400,
"sla_format": "pwmx",
"sla_file_ext": "pwmx",
"sla_format_version": 1
}
}

View file

@ -0,0 +1,15 @@
{
"no_clone": true,
"cmd": {},
"settings": {
"bed_width": 130,
"bed_depth": 80,
"bed_height": 1,
"max_height": 165,
"resolution_x": 1620,
"resolution_y": 2560,
"sla_format": "pwmo",
"sla_file_ext": "pwmo",
"sla_format_version": 1
}
}

View file

@ -46,6 +46,20 @@ export const SLA_FORMATS = {
priority: 1,
family: 'chitubox'
},
pw0: {
id: 'pw0',
ext: 'pw0',
proprietary: true,
available: false,
family: 'photon-workshop'
},
pwx: {
id: 'pwx',
ext: 'pwx',
proprietary: true,
available: false,
family: 'photon-workshop'
},
pwmo: {
id: 'pwmo',
ext: 'pwmo',
@ -60,6 +74,20 @@ export const SLA_FORMATS = {
available: false,
family: 'photon-workshop'
},
pwms: {
id: 'pwms',
ext: 'pwms',
proprietary: true,
available: false,
family: 'photon-workshop'
},
pwmx: {
id: 'pwmx',
ext: 'pwmx',
proprietary: true,
available: false,
family: 'photon-workshop'
},
pwmb: {
id: 'pwmb',
ext: 'pwmb',
@ -67,6 +95,27 @@ export const SLA_FORMATS = {
available: false,
family: 'photon-workshop'
},
pwsq: {
id: 'pwsq',
ext: 'pwsq',
proprietary: true,
available: false,
family: 'photon-workshop'
},
px6s: {
id: 'px6s',
ext: 'px6s',
proprietary: true,
available: false,
family: 'photon-workshop'
},
pm3: {
id: 'pm3',
ext: 'pm3',
proprietary: true,
available: false,
family: 'photon-workshop'
},
pm3n: {
id: 'pm3n',
ext: 'pm3n',
@ -74,12 +123,75 @@ export const SLA_FORMATS = {
available: false,
family: 'photon-workshop'
},
pm3m: {
id: 'pm3m',
ext: 'pm3m',
proprietary: true,
available: false,
family: 'photon-workshop'
},
pm3r: {
id: 'pm3r',
ext: 'pm3r',
proprietary: true,
available: false,
family: 'photon-workshop'
},
pm4m: {
id: 'pm4m',
ext: 'pm4m',
proprietary: true,
available: false,
family: 'photon-workshop'
},
pm4u: {
id: 'pm4u',
ext: 'pm4u',
proprietary: true,
available: false,
family: 'photon-workshop'
},
pm4n: {
id: 'pm4n',
ext: 'pm4n',
proprietary: true,
available: false,
family: 'photon-workshop'
},
pm5: {
id: 'pm5',
ext: 'pm5',
proprietary: true,
available: false,
family: 'photon-workshop'
},
pm5s: {
id: 'pm5s',
ext: 'pm5s',
proprietary: true,
available: false,
family: 'photon-workshop'
},
pm7: {
id: 'pm7',
ext: 'pm7',
proprietary: true,
available: false,
family: 'photon-workshop'
},
pm7m: {
id: 'pm7m',
ext: 'pm7m',
proprietary: true,
available: false,
family: 'photon-workshop'
},
pwsz: {
id: 'pwsz',
ext: 'pwsz',
proprietary: true,
available: false,
family: 'photon-workshop'
}
};

View file

@ -67,8 +67,7 @@ export function sla_export(print, online, ondone) {
});
}
if (format === 'pwmo' || format === 'pwma' || format === 'pwmb' ||
format === 'pm3n' || format === 'pm4n') {
if (PW.supports(format)) {
return PW.encode(format);
}

View file

@ -1,14 +1,46 @@
/** Copyright Stewart Allen <sa@grid.space> -- All Rights Reserved */
const FAMILY = "Photon Workshop";
const FORMAT_RECORDS = {
pw0: { ext: "pw0", generation: "pw", notes: "Photon Zero" },
pwx: { ext: "pwx", generation: "pw", notes: "Photon X" },
pwmo: { ext: "pwmo", generation: "mono", notes: "Photon Mono" },
pwma: { ext: "pwma", generation: "mono", notes: "Photon Mono 4K class" },
pwms: { ext: "pwms", generation: "mono", notes: "Photon Mono SE class" },
pwmx: { ext: "pwmx", generation: "mono-x", notes: "Photon Mono X class" },
pwmb: { ext: "pwmb", generation: "m3", notes: "Photon M3 / Mono X 6K class" },
pwsq: { ext: "pwsq", generation: "m3", notes: "Photon M3 Premium class" },
px6s: { ext: "px6s", generation: "m3", notes: "Photon X 6Ks class" },
pm3: { ext: "pm3", generation: "m3", notes: "Photon M3" },
pm3n: { ext: "pm3n", generation: "m3", notes: "Photon Mono 2" },
pm3m: { ext: "pm3m", generation: "m3", notes: "Photon M3 Max / Plus class" },
pm3r: { ext: "pm3r", generation: "m3", notes: "Photon M3 resolver variant" },
pm4m: { ext: "pm4m", generation: "m4", notes: "Photon Mono M4 class" },
pm4u: { ext: "pm4u", generation: "m4", notes: "Photon Mono 4 Ultra class" },
pm4n: { ext: "pm4n", generation: "m4", notes: "Photon Mono 4" },
pm5: { ext: "pm5", generation: "m5", notes: "Photon Mono M5" },
pm5s: { ext: "pm5s", generation: "m5", notes: "Photon Mono M5s" },
pm7: { ext: "pm7", generation: "m7", notes: "Photon Mono M7 class" },
pm7m: { ext: "pm7m", generation: "m7", notes: "Photon Mono M7 Pro class" },
pwsz: { ext: "pwsz", generation: "v3-zip", notes: "Photon Workshop v3 zip container" }
};
function encode(format) {
let rec = FORMAT_RECORDS[format];
return Promise.reject(new Error([
`${FAMILY} format .${format} is registered but not implemented.`,
"Add a fixture sliced by Photon Workshop before enabling this output target."
rec ? `Detected family generation: ${rec.generation} (${rec.notes}).` : "",
"Add a known-good fixture sliced by Photon Workshop for this exact extension before enabling this output target."
].join(" ")));
}
function supports(format) {
return FORMAT_RECORDS[format] !== undefined;
}
export const PW = {
encode
encode,
supports,
formats: FORMAT_RECORDS
};