get bbl printer type from info module. auto-select last printer. set current date in 3mf
This commit is contained in:
parent
a14c260bb4
commit
4effee7c0e
4 changed files with 45 additions and 15 deletions
|
|
@ -14,7 +14,7 @@ self.kiri.load(api => {
|
|||
let video_on = false;
|
||||
let bound, device, printers, select, selected, conn_alert, export_select;
|
||||
let btn_del, in_host, in_code, in_serial, filelist;
|
||||
let host, password, serial, amsmap, socket = {
|
||||
let ptype, host, password, serial, amsmap, socket = {
|
||||
open: false,
|
||||
q: [],
|
||||
start() {
|
||||
|
|
@ -178,6 +178,9 @@ self.kiri.load(api => {
|
|||
}
|
||||
|
||||
function printer_select(name = '') {
|
||||
for (let [ printer, rec ] of Object.entries(printers)) {
|
||||
rec.selected = printer === name;
|
||||
}
|
||||
printer_video_set(false);
|
||||
btn_del.disabled = false;
|
||||
let rec = printers[name] || {};
|
||||
|
|
@ -332,6 +335,16 @@ self.kiri.load(api => {
|
|||
if (gcode_state && conn_alert) {
|
||||
api.alerts.hide(conn_alert);
|
||||
}
|
||||
// extract printer "type" from module info so that the 3MF
|
||||
// will be accepted by the target printer
|
||||
let serial = selected?.rec?.serial;
|
||||
if (serial && info?.module) {
|
||||
for (let mod of info.module) {
|
||||
if (mod.sn === serial) {
|
||||
selected.rec.type = mod.project_name;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function render_list(to) {
|
||||
|
|
@ -794,6 +807,16 @@ self.kiri.load(api => {
|
|||
if (which !== 'bambu' || !device) {
|
||||
return;
|
||||
}
|
||||
// determine default printer from last selection
|
||||
// if no export dialog selection override present
|
||||
if (!export_select) {
|
||||
for (let [ printer, rec ] of Object.entries(printers)) {
|
||||
if (rec.selected) {
|
||||
export_select = printer;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
printer_render({ files: [] });
|
||||
printer_select();
|
||||
socket.start();
|
||||
|
|
@ -846,16 +869,16 @@ self.kiri.load(api => {
|
|||
render_list(devlist);
|
||||
$('bambu-output').style.display = 'flex';
|
||||
$('print-bambu-1').onclick = function() {
|
||||
gen3mf(zip => send(`${$('print-filename').value}.3mf`, zip, false));
|
||||
gen3mf(zip => send(`${$('print-filename').value}.3mf`, zip, false), ptype);
|
||||
}
|
||||
$('print-bambu-2').onclick = function() {
|
||||
gen3mf(zip => send(`${$('print-filename').value}.3mf`, zip, true));
|
||||
gen3mf(zip => send(`${$('print-filename').value}.3mf`, zip, true), ptype);
|
||||
api.modal.show('bambu');
|
||||
}
|
||||
devlist.onchange = () => {
|
||||
let info = printers[devlist.value];
|
||||
console.log({ selected: devlist.value, info });
|
||||
host = info.host;
|
||||
ptype = info.type;
|
||||
serial = info.serial;
|
||||
password = info.code;
|
||||
export_select = devlist.value;
|
||||
|
|
@ -863,7 +886,7 @@ self.kiri.load(api => {
|
|||
$('print-bambu-2').disabled =
|
||||
(host && serial && password) ? false : true;
|
||||
get_ams_map(settings);
|
||||
console.log({ bambu: host, serial, amsmap });
|
||||
console.log({ bambu: serial, ptype, host, amsmap });
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,10 +2,10 @@
|
|||
"mode": "FDM",
|
||||
"internal": 0,
|
||||
"bedHeight": 2.5,
|
||||
"bedWidth": 250,
|
||||
"bedDepth": 250,
|
||||
"bedWidth": 256,
|
||||
"bedDepth": 256,
|
||||
"bedRound": false,
|
||||
"maxHeight": 250,
|
||||
"maxHeight": 256,
|
||||
"originCenter": false,
|
||||
"gcodeFan": [
|
||||
"M106 P1 S{fan_speed}"
|
||||
|
|
|
|||
|
|
@ -2,10 +2,10 @@
|
|||
"mode": "FDM",
|
||||
"internal": 0,
|
||||
"bedHeight": 2.5,
|
||||
"bedWidth": 250,
|
||||
"bedDepth": 250,
|
||||
"bedWidth": 256,
|
||||
"bedDepth": 256,
|
||||
"bedRound": false,
|
||||
"maxHeight": 250,
|
||||
"maxHeight": 256,
|
||||
"originCenter": false,
|
||||
"gcodeFan": [
|
||||
"M106 S{fan_speed}"
|
||||
|
|
|
|||
|
|
@ -528,7 +528,14 @@ function exportGCodeDialog(gcode, sections, info, names) {
|
|||
api.bambu.prep_export(gen3mf, gcode, info, settings);
|
||||
}
|
||||
|
||||
function gen3mf(then) {
|
||||
function gen3mf(then, ptype = 'unknown') {
|
||||
console.log({ gen3mf_target: ptype });
|
||||
let now = new Date();
|
||||
let ymd = [
|
||||
now.getFullYear(),
|
||||
(now.getMonth() + 1).toString().padStart(2,0),
|
||||
now.getDate().toString().padStart(2,0),
|
||||
].join('-');
|
||||
let files = [{
|
||||
name: `[Content_Types].xml`,
|
||||
data: [
|
||||
|
|
@ -554,12 +561,12 @@ function exportGCodeDialog(gcode, sections, info, names) {
|
|||
'<model unit="millimeter" xml:lang="en-US" xmlns="http://schemas.microsoft.com/3dmanufacturing/core/2015/02" xmlns:BambuStudio="http://schemas.bambulab.com/package/2021">',
|
||||
' <metadata name="Application">Kiri:Moto</metadata>',
|
||||
' <metadata name="Copyright"></metadata>',
|
||||
' <metadata name="CreationDate">2024-12-06</metadata>',
|
||||
` <metadata name="CreationDate">${ymd}</metadata>`,
|
||||
' <metadata name="Description"></metadata>',
|
||||
' <metadata name="Designer"></metadata>',
|
||||
' <metadata name="DesignerCover"></metadata>',
|
||||
' <metadata name="License"></metadata>',
|
||||
' <metadata name="ModificationDate">2024-12-06</metadata>',
|
||||
` <metadata name="ModificationDate">${ymd}</metadata>`,
|
||||
' <metadata name="Origin"></metadata>',
|
||||
' <metadata name="Title"></metadata>',
|
||||
' <resources>',
|
||||
|
|
@ -603,7 +610,7 @@ function exportGCodeDialog(gcode, sections, info, names) {
|
|||
' </header>',
|
||||
' <plate>',
|
||||
' <metadata key="index" value="1"/>',
|
||||
' <metadata key="printer_model_id" value="C11"/>',
|
||||
// ` <metadata key="printer_model_id" value="${ptype}"/>`,
|
||||
` <metadata key="nozzle_diameters" value="${nozzle0}"/>`,
|
||||
' <metadata key="timelapse_type" value="0"/>',
|
||||
` <metadata key="prediction" value="${Math.round(info.time)}"/>`,
|
||||
|
|
|
|||
Loading…
Reference in a new issue