From 6495905a7d08d49b914a4add5a4bebdeb1ac5da0 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Sat, 8 Jun 2024 13:23:37 -0700 Subject: [PATCH] start cleaning up laser / 2d in preparation for new 2d device types --- src/kiri-dev/cam/Any.Generic.TinyG | 23 ++++++++++++- src/kiri-dev/fdm/Any.Generic.Klipper | 48 +++++++++++++++++++++++++++ src/kiri-dev/fdm/Any.Generic.Sailfish | 1 - src/kiri/conf.js | 4 +-- src/kiri/init.js | 14 ++++---- web/kiri/index.html | 23 ++++++++++--- web/kiri/lang/en.js | 26 +++++++-------- 7 files changed, 110 insertions(+), 29 deletions(-) mode change 120000 => 100644 src/kiri-dev/cam/Any.Generic.TinyG create mode 100644 src/kiri-dev/fdm/Any.Generic.Klipper delete mode 120000 src/kiri-dev/fdm/Any.Generic.Sailfish diff --git a/src/kiri-dev/cam/Any.Generic.TinyG b/src/kiri-dev/cam/Any.Generic.TinyG deleted file mode 120000 index 078a9115..00000000 --- a/src/kiri-dev/cam/Any.Generic.TinyG +++ /dev/null @@ -1 +0,0 @@ -Any.Generic.Grbl \ No newline at end of file diff --git a/src/kiri-dev/cam/Any.Generic.TinyG b/src/kiri-dev/cam/Any.Generic.TinyG new file mode 100644 index 00000000..5341c0ef --- /dev/null +++ b/src/kiri-dev/cam/Any.Generic.TinyG @@ -0,0 +1,22 @@ +{ + "file-ext": "nc", + "token-space": " ", + "strip-comments": true, + "pre":[ + "G21 ; set units to MM (required)", + "G90 ; absolute position mode (required)" + ], + "post":[ + "M30 ; program end" + ], + "tool-change":[ + "M6 T{tool} ; change tool to '{tool_name}'" + ], + "dwell":[ + "G4 P{time} ; dwell for {time}ms" + ], + "settings": { + "bed_width": 400, + "bed_depth": 400 + } +} diff --git a/src/kiri-dev/fdm/Any.Generic.Klipper b/src/kiri-dev/fdm/Any.Generic.Klipper new file mode 100644 index 00000000..dfd671f0 --- /dev/null +++ b/src/kiri-dev/fdm/Any.Generic.Klipper @@ -0,0 +1,48 @@ +{ + "pre":[ + "M104 S{temp} T{tool} ; set extruder temperature", + "M140 S{bed_temp} T{tool} ; set bed temperature", + "G90 ; set absolute positioning mode", + "M83 ; set relative positioning for extruder", + "M107 ; turn off filament cooling fan", + "G28 ; home axes", + "G92 X0 Y0 Z0 E0 ; reset all axes positions", + "G1 X0 Y0 Z0.25 F180 ; move xy to 0,0 and z 0.25mm over bed", + "G92 E0 ; zero the extruded", + "M190 S{bed_temp} T{tool} ; wait for bed to reach target temp", + "M109 S{temp} T{tool} ; wait for extruder to reach target temp", + "G1 E15 F200 ; purge 15mm from extruder", + "G92 E0 ; zero the extruded", + "G1 F225 ; set feed speed" + ], + "post":[ + "M107 ; turn off filament cooling fan", + "M104 S0 T{tool} ; turn off right extruder", + "M140 S0 T{tool} ; turn off bed", + "G1 Z{z_max} F1200 ; drop bed", + "G28 X0 Y0 ; home XY axes", + "M84 ; disable stepper motors" + ], + "extruders":[ + { + "nozzle": 0.4, + "filament": 1.75, + "offset_x": 0, + "offset_y": 0, + "select": [ "T0" ] + },{ + "nozzle": 0.4, + "filament": 1.75, + "offset_x": 30, + "offset_y": 0, + "select": [ "T1" ] + } + ], + "cmd":{ + "fan_power": "M106 S{fan_speed}" + }, + "settings":{ + "origin_center": false, + "extrude_abs": false + } +} diff --git a/src/kiri-dev/fdm/Any.Generic.Sailfish b/src/kiri-dev/fdm/Any.Generic.Sailfish deleted file mode 120000 index 40bf98a6..00000000 --- a/src/kiri-dev/fdm/Any.Generic.Sailfish +++ /dev/null @@ -1 +0,0 @@ -Any.Generic.Marlin \ No newline at end of file diff --git a/src/kiri/conf.js b/src/kiri/conf.js index c5fcc89c..eb176bd5 100644 --- a/src/kiri/conf.js +++ b/src/kiri/conf.js @@ -627,10 +627,10 @@ const conf = exports({ // process defaults Laser:Process p:{ processName: "default", - laserOffset: 0.25, + laserOffset: 0.1, laserSliceHeight: 1, laserSliceHeightMin: 0, - laserSliceSingle: false, + laserSliceSingle: true, outputTileSpacing: 1, outputLaserPower: 100, outputLaserSpeed: 1000, diff --git a/src/kiri/init.js b/src/kiri/init.js index abf68d72..1c6be987 100644 --- a/src/kiri/init.js +++ b/src/kiri/init.js @@ -1943,19 +1943,19 @@ gapp.register("kiri.init", [], (root, exports) => { laserMode: newGroup(LANG.sl_menu, $('lzr-slice'), { modes:LASER, driven, separator }), laserOffset: newInput(LANG.ls_offs_s, {title:LANG.ls_offs_l, convert:toFloat}), laserSliceHeight: newInput(LANG.ls_lahi_s, {title:LANG.ls_lahi_l, convert:toFloat, trigger: true}), - laserSliceHeightMin: newInput(LANG.ls_lahm_s, {title:LANG.ls_lahm_l, convert:toFloat, show:() => { return ui.laserSliceHeight.value == 0 }}), + laserSliceHeightMin: newInput(LANG.ls_lahm_s, {title:LANG.ls_lahm_l, convert:toFloat, show:() => ui.laserSliceHeight.value == 0 && !ui.laserSliceSingle.checked }), separator: newBlank({ class:"set-sep", driven }), laserSliceSingle: newBoolean(LANG.ls_sngl_s, onBooleanClick, {title:LANG.ls_sngl_l}), + knife: newGroup(LANG.dk_menu, $('lzr-knife'), { modes:LASER, marker:true, driven, separator }), + outputKnifeDepth: newInput(LANG.dk_dpth_s, {title:LANG.dk_dpth_l, convert:toFloat, bound:bound(0.0,5.0), show:() => ui.knifeOn.checked }), + outputKnifePasses: newInput(LANG.dk_pass_s, {title:LANG.dk_pass_l, convert:toInt, bound:bound(0,5), show:() => ui.knifeOn.checked}), + outputKnifeTip: newInput(LANG.dk_offs_s, {title:LANG.dk_offs_l, convert:toFloat, bound:bound(0.0,10.0), show:() => ui.knifeOn.checked}), + separator: newBlank({ class:"set-sep", driven, show:() => ui.knifeOn.checked }), + knifeOn: newBoolean(LANG.enable, onBooleanClick, {title:LANG.ou_drkn_l}), laserLayout: newGroup(LANG.lo_menu, $('lzr-layout'), { modes:LASER, driven, separator }), outputTileSpacing: newInput(LANG.ou_spac_s, {title:LANG.ou_spac_l, convert:toInt}), outputLaserMerged: newBoolean(LANG.ou_mrgd_s, onBooleanClick, {title:LANG.ou_mrgd_l}), outputLaserGroup: newBoolean(LANG.ou_grpd_s, onBooleanClick, {title:LANG.ou_grpd_l}), - knife: newGroup(LANG.dk_menu, $('lzr-knife'), { modes:LASER, marker:true, driven, separator }), - outputKnifeDepth: newInput(LANG.dk_dpth_s, {title:LANG.dk_dpth_l, convert:toFloat, bound:bound(0.0,5.0)}), - outputKnifePasses: newInput(LANG.dk_pass_s, {title:LANG.dk_pass_l, convert:toInt, bound:bound(0,5)}), - outputKnifeTip: newInput(LANG.dk_offs_s, {title:LANG.dk_offs_l, convert:toFloat, bound:bound(0.0,10.0)}), - separator: newBlank({ class:"set-sep", driven }), - knifeOn: newBoolean(LANG.enable, onBooleanClick, {title:LANG.ou_drkn_l}), laserOutput: newGroup(LANG.ou_menu, $('lzr-output'), { modes:LASER, driven, separator }), outputLaserPower: newInput(LANG.ou_powr_s, {title:LANG.ou_powr_l, convert:toInt, bound:bound(1,100)}), outputLaserSpeed: newInput(LANG.ou_sped_s, {title:LANG.ou_sped_l, convert:toInt}), diff --git a/web/kiri/index.html b/web/kiri/index.html index 1782ca15..254957a3 100644 --- a/web/kiri/index.html +++ b/web/kiri/index.html @@ -155,14 +155,27 @@ -
- - -
+
+
+ + +
+ @@ -320,8 +333,8 @@
-
+
diff --git a/web/kiri/lang/en.js b/web/kiri/lang/en.js index 7f2a2c63..63c81722 100644 --- a/web/kiri/lang/en.js +++ b/web/kiri/lang/en.js @@ -441,16 +441,6 @@ self.kiri.lang['en-us'] = { sp_auto_s: "automatic", sp_auto_l: ["enable generated supports","using at-slice-time geometry","supports will only appear","after slicing completes"], - // LASER SLICING - ls_offs_s: "offset", - ls_offs_l: ["adjust for beam width","also known as kerf","in millimeters"], - ls_lahi_s: "height", - ls_lahi_l: ["layer height","in millimeters","0 = auto/detect"], - ls_lahm_s: "min", - ls_lahm_l: ["layer height minimum","will merge auto slices","under this thickness","in millimeters"], - ls_sngl_s: "single", - ls_sngl_l: ["perform only one slice","at specified layer height"], - // CNC COMMON terms cc_tool: "tool", cc_offs_s: "offset", @@ -599,7 +589,7 @@ self.kiri.lang['en-us'] = { ci_face_s: "face", ci_face_l: "select face to rotate facing up", - // CNC LASER + // CNC LASER On/Off Operations (Carvera) cl_powr_s: "power", cl_powr_l: "laser power from 0 to 1.0", cl_adap_s: "adaptive", @@ -639,8 +629,18 @@ self.kiri.lang['en-us'] = { // OUTPUT ou_menu: "output", + // LASER SLICING + ls_offs_s: "offset / kerf", + ls_offs_l: ["adjust for beam width","also known as kerf","in millimeters"], + ls_lahi_s: "slice height", + ls_lahi_l: ["layer height","in millimeters","0 = auto/detect"], + ls_lahm_s: "slice minimum", + ls_lahm_l: ["layer height minimum","will merge auto slices","under this thickness","in millimeters"], + ls_sngl_s: "single slice", + ls_sngl_l: ["perform only one slice","at specified layer height"], + // LASER KNIFE - dk_menu: "knife", + dk_menu: "drag knife", dk_dpth_s: "cut depth", dk_dpth_l: ["final cut depth","in millimeters"], dk_pass_s: "cut passes", @@ -648,7 +648,7 @@ self.kiri.lang['en-us'] = { dk_offs_s: "tip offset", dk_offs_l: ["distance from blade tip","to center of tool","in millimeters"], - // OUTPUT LASER + // LASER OUTPUT ou_spac_s: "spacing", ou_spac_l: ["distance between layer output","in millimeters"], ou_scal_s: "scaling",