From 7d8a848e30f6e2ae05a47f2d1fa100ed8f6a57c6 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Sun, 8 Jun 2025 14:11:21 -0400 Subject: [PATCH] allow onshape to spool thru localhost server to bambu printers --- mods/bambu/bambu.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/mods/bambu/bambu.js b/mods/bambu/bambu.js index 5d182528..1e795f0e 100644 --- a/mods/bambu/bambu.js +++ b/mods/bambu/bambu.js @@ -34,6 +34,8 @@ self.kiri.load(api => { "White": "#FFFFFF" }).map(v => `${v.substring(1)}FF`); + let local_port = 5309; + let local_url = `http://localhost:${local_port}`; let sequence_id = (Math.random() * 0xfff) | 0; let user_id = ((Math.random() * 0xfffffff) | 0).toString(); let init = false; @@ -52,7 +54,14 @@ self.kiri.load(api => { if (socket.ws) { return; } - let ws = socket.ws = new WebSocket("/bambu"); + let ws_url = api.onshape ? `${local_url}/bambu` : "/bambu"; + let ws = socket.ws = new WebSocket(ws_url); + ws.onerror = (error) => { + socket.open = false; + socket.ws = undefined; + console.log({ bambu_ws_error: error }); + ws_url = "/bambu"; + }; ws.onopen = () => { socket.open = true; socket.drain(); @@ -1279,7 +1288,7 @@ self.kiri.load(api => { function send(filename, gcode, start) { const spool = print_ams_select; - const baseUrl = '/api/bambu_send'; + const baseUrl = api.onshape ? `${local_url}/api/bambu_send` : "/api/bambu_send"; const url = new URL(baseUrl, window.location.origin); url.searchParams.append('host', host); url.searchParams.append('code', password); @@ -1288,7 +1297,7 @@ self.kiri.load(api => { url.searchParams.append('start', start ?? false); url.searchParams.append('ams', spool === 'auto' && amsmap ? amsmap : spool); - const alert = api.alerts.show('Sending to Bambu Printer'); + const alert = api.alerts.show('Sending to Bambu Printer', 120); fetch(url.toString(), { headers: { 'Content-Type': 'text/plain' },