Merge branch 'rel-4.6'

This commit is contained in:
Stewart Allen 2026-01-11 15:29:15 -05:00
commit c6c9846b96
184 changed files with 15553 additions and 9433 deletions

View file

@ -272,6 +272,9 @@ details[open] summary::after {
background-color: var(--blue-2);
color: black;
}
.dark #alert-border:hover {
background-color: rgba(255,255,255,0.7);
}
.dark #progress {
background-color: #333;
border-top: 1px solid #555;
@ -413,6 +416,8 @@ details[open] summary::after {
}
.dark #rnfo {
color: #aaa;
border: 1px solid rgba(255,255,255,0.25);
background-color: rgba(0,0,0,0.75);
}
.dark #rnfo label {
color: #ada;
@ -1334,10 +1339,12 @@ details[open] summary::after {
cursor: pointer;
}
.ext-buttons button {
display: inline-flex;
line-height: 1;
justify-content: center;
align-items: center;
text-align: center;
flex-grow: 1;
flex: 1 1 0; /* equal width */
margin-top: 3px;
height: 75%;
}
@ -1419,6 +1426,11 @@ details[open] summary::after {
word-break: break-word;
white-space: normal;
}
.z-select {
aspect-ratio: 1;
border-radius: 50%;
border-color: rgba(128,128,128,0.5) !important;
}
#oplist {
gap: 3px;
margin-bottom: 3px;
@ -1436,6 +1448,21 @@ details[open] summary::after {
#oplist .clock:hover {
background-color: var(--blue-2);
}
#oplist .loop:hover {
background-color: rgba(100, 150, 255, 0.35);
}
#oplist .in-loop {
margin-left: 10px;
}
#oplist .in-loop::before {
content: "";
border: 1px solid var(--blue-2);
border-radius: 3px;
width: 2px;
height: 80%;
position: absolute;
left: -10px;
}
#oplist > div {
padding: 4px 20px 4px 7px !important;
}
@ -1502,9 +1529,10 @@ details[open] summary::after {
font-size: larger;
}
#op-add-pop {
pointer-events: all !important;
position: absolute;
display: none;
top: 0;
top: 50%;
right: 100%;
transform: translateY(-50%);
}
@ -1513,7 +1541,7 @@ details[open] summary::after {
}
.op-grid {
display: grid !important;
grid-template-columns: 1fr 1fr;
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: auto;
align-items: center;
gap: 5px;
@ -2528,6 +2556,10 @@ details[open] summary::after {
color: #000;
flex-direction: column;
align-items: flex-end;
white-space: nowrap;
}
#stats hr {
width: 100%;
}
#stats:hover #rnfo {
display: grid;
@ -2539,8 +2571,8 @@ details[open] summary::after {
bottom: 100%;
gap: 3px;
right: 0;
background-color: rgba(255,255,255,0.05);
border: 1px solid black;
background-color: rgba(255,255,255,0.75);
border: 1px solid rgba(0,0,0,0.5);
border-radius: 3px;
padding: 5px;
}
@ -2605,3 +2637,17 @@ details[open] summary::after {
.range-detail span {
flex-grow: 1;
}
.devel #modal-box {
height: 80%;
}
.devel #mod-x-any {
height: 100%;
}
.devel #code-preview {
flex-grow: 1;
}
.devel #code-preview > div,
.devel #code-preview-textarea {
height: 100%;
}

View file

@ -22,8 +22,8 @@
<link rel="stylesheet" type="text/css" href="index.css">
<link href="manifest.json" rel="manifest">
<link href="../font/css/all.min.css" rel="stylesheet">
<!-- <script type="module" src="/lib/kiri/run/worker.js"></script>
<script type="module" src="/lib/kiri/run/minion.js"></script> -->
<!-- <script type="module" src="/lib/kiri/run/worker.js"></script> -->
<!-- <script type="module" src="/lib/kiri/run/minion.js"></script> -->
<script src="../lib/ext/tween.js"></script>
<script src="../font/js/all.min.js" crossorigin="anonymous" defer></script>
<script src="../lib/main/kiri.js" type="module"></script>
@ -110,8 +110,8 @@
<div id="file-import">
<label lk="import">import</label>
<span><i class="fas fa-file-upload"></i></span>
<!-- required file input loader -->
<input id="load-file" type="file" name="loadme" style="display:none"></input>
<!-- required file input loaders -->
<input id="load-file" type="file" name="loadme" style="display:none" accept=".km,.kmz,.stl,.obj,.svg,.png,.jpg,.jpeg,.gcode,.nc"></input>
</div>
<hr>
<div id="app-export">
@ -447,21 +447,22 @@
<div id="fdm-ranges" class="f-col"></div>
</div>
<div class="set2-group f-col mode-cam">
<div class="set-header mode-cam"><a>operation list</a></div>
<details open>
<summary class="set-header mode-cam"><a>operation list</a></summary>
<div id="camops" class="f-col a-stretch grow">
<div id="oplist" class="f-col"></div>
<div id="op-add" class="opdiv">
<i class="fas fa-plus"></i>
<div id="op-add-pop" class="f-col">
<div id="op-add-list" class="opdiv op-grid">
<div id="cam-index" title="rotate index axis">index</div>
<div id="cam-lathe" title="lathe operation">lathe</div>
<div id="laser-on" title="turn on laser mode">laser on</div>
<div id="laser-off" title="turn off laser mode">laser off</div>
<div id="cam-index" title="rotate index axis">index</div>
<div id="cam-lathe" title="lathe operation">lathe</div>
<div id="cam-flip" title="flip part and load&#13;profile for other side&#13;for double-sided work">flip</div>
<div id="cam-reg" title="drill registration holes&#13;along the X or Y axis&#13;for double-sided work">register</div>
<div title="drill selected holes">drill</div>
<div title="clear stock face">level</div>
<div title="drill selected holes">drill</div>
<div title="follow a downward helix&#13;using conical selections">helical</div>
<div title="insert custom gcode">gcode</div>
<div title="2.5D tracing along X or Y axis&#13;used for complex part features">contour</div>
@ -470,10 +471,12 @@
<div title="remove an area of material&#13;inside a defined boundary&#13;sometimes called pocketing">rough</div>
<div title="cutout parts using their shadow outline">outline</div>
<div title="perform operations on using outlines or surfaces&#13;many operations are simple wrappers around this">area</div>
<div id="cam-loop" title="loop next N operations M times">loop</div>
</div>
</div>
</div>
</div>
</details>
</div>
<div class="grow"></div>
<div class="line-sep2"></div>
@ -675,22 +678,42 @@
<label class="grow0 pad3">spool</label>
<select id="print-bambu-spool"></select>
<button id="print-bambu-1" class="grow" disabled>send</button>
<button id="print-bambu-2" class="grow" disabled>send + print</button>
<button id="print-bambu-2" class="grow" disabled>print</button>
</div>
</div>
<div id="send-to-octohead" class="header"><label>octoprint</label></div>
<div id="send-to-octoprint" class="f-col box">
<div id="send-remote-head" class="header"><label>send to print</label></div>
<div id="send-remote-print" class="f-col box">
<div class="grow f-row">
<div class="f-col grow">
<div id="ophost"><label lk="ex_host">host</label><input id="octo-host" size="20" placeholder="http(s)://host:port" /></div>
<div id="opapik"><label lk="ex_akey">key</label><input id="octo-apik" size="20" /></div>
<div id="ophost">
<label lk="ex_host">host</label>
<input id="octo-host" size="20" placeholder="http(s)://host:port" />
</div>
<div id="opapik">
<label lk="ex_akey">key</label>
<input id="octo-apik" size="20" />
</div>
<div id="optype">
<label lk="ex_type">type</label>
<select id="octo-type">
<option selected>moonraker</option>
<option>octoprint</option>
</select>
</div>
</div>
<button id="print-octoprint">send</button>
<button id="send-remote">send</button>
<button id="print-remote">print</button>
</div>
<div id="oph1nt">
<label class="hint">
check printer
<a href="http://docs.octoprint.org/en/master/api/general.html?highlight=cors#cross-origin-requests" target="_help">CORS</a>
settings
</label>
</div>
<div id="oph1nt"><label class="hint"><a href="http://docs.octoprint.org/en/master/api/general.html?highlight=cors#cross-origin-requests" target="_help">CORS support</a> must be enabled in API settings</label></div>
</div>
<div id="export-support" class="f-col">
<a id="export-support-a" target="support">this project neeeds your support!</a>
<a id="export-support-a" target="support">this project needs your support!</a>
</div>
</div>
<div id="mod-x-sla" class="mod-print mdialog f-col">
@ -716,7 +739,7 @@
<div class="f-row box">
<button id="print-svg" class="grow">svg</button>
<button id="print-dxf" class="grow">dxf</button>
<button id="print-stl" class="grow">stl</button>
<button id="print-obj" class="grow">obj</button>
<button id="print-lg" class="grow">gcode</button>
</div>
</div>

View file

@ -8,8 +8,9 @@ self.lang['en-us'] = {
axis: "axis", // left object scale pop menu
back: "back",
clear: "clear", // clear workspace (remove all objects)
copy: "copy",
clone: "clone", // create duplicate
contents: "contents",
copy: "copy",
delete: "delete",
detail: "detail",
done: "done",
@ -136,8 +137,6 @@ self.lang['en-us'] = {
dv_xtab_l: "extrusion moves absolute",
dv_orgc_s: "origin center",
dv_orgc_l: "bed origin center",
// dv_orgt_s: "origin top",
// dv_orgt_l: "part z origin top",
dv_bedc_s: "circular bed",
dv_bedc_l: "device bed is circular",
dv_belt_s: "belt bed",
@ -325,9 +324,12 @@ self.lang['en-us'] = {
op_anim_l: ["animation mesh density","higher is more dense","takes more memory","and is slower"],
op_mani_s: "manifold",
op_mani_l: ["in stock indexed mode","use boolean visualiation","this is very expensive","and likely very slow"],
op_exgl_l: ["show Grid:Local devices in export dialog","includes Grid:Bots and OctoPrint plugins"],
op_exgh_l: ["legacy Grid:Host local network support"],
op_exop_l: ["legacy OctoPrint local network support","Grid:Space OctoPrint plugin recommended"],
op_exop_s: "remote host",
op_exop_l: ["enable sending files to remote hosts","moonraker = klipper","octoprint"],
op_excp_s: "code preview",
op_excp_l: ["show start of gcode","in export dialog"],
op_exth_s: "thumbnail",
op_exth_l: ["embed print thumbnail in gcode"],
lo_menu: "layout",
@ -394,7 +396,7 @@ self.lang['en-us'] = {
fi_over_l: ["overlap between shells and solid or sparse infill. can improve bonding to shells","as fraction of line width","0.0 - 1.0"],
fi_angl_s: "start angle",
fi_angl_l: ["starting angle in degrees","90 degrees added to ","each following layer","applies only to solid layers"],
fi_grow_s: "area expand",
fi_grow_s: "expand",
fi_grow_l: ["expand projected solids","can help with solid areas","over sparse infill areas","units in millimeters"],
// FDM FILL
@ -463,30 +465,26 @@ self.lang['en-us'] = {
// FDM SUPPORT
sp_menu: "support",
sp_detect: "detect",
sp_type_s: "type",
sp_type_l: ["automatic = detect","manual = paint on"],
sp_dens_s: "density",
sp_dens_l: ["fraction 0.0 - 1.0","recommended 0.15","0 to disable"],
sp_size_s: "pillar size",
sp_size_l: ["pillar width in millimeters","smaller values exponentially","increase detection times"],
sp_offs_s: "part offset",
sp_offs_l: ["offset from part","in millimeters"],
sp_gaps_s: "gap layers",
sp_gaps_s: "layer gap",
sp_gaps_l: ["number of layers","offset from part"],
sp_span_s: "max span",
sp_span_l: ["unsupported span that causes","a new support to be generated","in millimeters"],
sp_angl_s: "max angle",
sp_angl_s: "angle",
sp_angl_l: ["max overhang angle before","supporting pillar is generated","normal values 45-60","belt values 0-10"],
sp_area_s: "min area",
sp_area_l: ["minimum area for","a support column","in millimeters","smaller values will","slow detection"],
sp_xpnd_s: "expand",
sp_xpnd_l: ["expand support area","beyond part boundary","in millimeters"],
sp_grow_s: "grow",
sp_grow_l: ["grow support column to fill small gaps","in millimeters"],
sp_nozl_s: "extruder",
sp_nozl_l: ["in multi-extruder systems","the extruder to use for","support material"],
sp_nozl_s: "tool",
sp_nozl_l: ["in multi-extruder systems","the toolhead to use for","support material"],
sp_outl_s: "enclosed",
sp_outl_l: ["enclose support pattern","inside a perimeter shell"],
sp_auto_s: "automatic",
sp_auto_l: ["enable generated supports","using at-slice-time geometry","supports will only appear","after slicing completes"],
sp_tree_s: "tree type",
sp_tree_l: ["use tree type support structure"],
// CNC COMMON terms
cc_tool: "tool",
@ -584,6 +582,8 @@ self.lang['en-us'] = {
cf_linx_l: "linear y-axis finishing",
cf_liny_s: "enable x pass",
cf_liny_l: "linear x-axis finishing",
cf_clip_s: "clip to stock",
cf_clip_l: ["contour op only","clip cutting paths","to defined stock"],
// CNC TRACE
cu_menu: "trace",
@ -603,6 +603,8 @@ self.lang['en-us'] = {
cp_cont_l: ["ignore interior voids and features"],
cp_outl_s: "outline only",
cp_outl_l: ["ignore interior voids and features"],
cp_shad_s: "shadow",
cp_shad_l: ["select part shadow as work area. overrides selected edges and surface areas"],
// CNC DRILLING
cd_menu: "drill",
@ -711,6 +713,18 @@ self.lang['en-us'] = {
ct_nabl_s: "auto",
ct_nabl_l: ["auto generate radial tabs","projected from part center","using count and angle offset"],
// CNC LATHE
cl_xpnd_s: "expand",
cl_xpnd_l: ["grow starting radius for step down. radius is defined as the highest Z point measured from the X axis center of the part"],
// CNC AREA OP
ca_altr_s: "alternate",
ca_altr_l: "alternate direction of travel lines (zigzag)",
ca_sang_s: "step angle",
ca_sang_l: "crossing angle on the XY plane for contour lines",
ca_wall_s: "walls",
ca_wall_l: ["perform a single pass along vertical faces. leave interior spaces. similar to outline operation"],
// OUTPUT
ou_menu: "output",
@ -837,8 +851,6 @@ self.lang['en-us'] = {
cs_hght_l: ["height (z) in workspace units","0 defaults to part size"],
cs_offs_s: "offset",
cs_offs_l: ["use width, depth, height","as offsets from max","part size on platform"],
cs_clip_s: "clip to",
cs_clip_l: ["contour op only","clip cutting paths","to defined stock"],
cs_ishg_s: "show grid",
cs_ishg_l: ["show platform grid in indexed mode"],
cs_indx_s: "indexed",
@ -879,8 +891,10 @@ self.lang['en-us'] = {
ad_rdwl_l: ["time between re-engaging","filament and movement","in milliseconds"],
ad_scst_s: "shell coast",
ad_scst_l: ["non-printing end","of perimeter shells","in millimeters"],
ad_msol_s: "area filter",
ad_msol_s: "min area",
ad_msol_l: ["minimum area (mm^2)","bridges and flats less than this are culled"],
ad_mthk_s: "min thick",
ad_mthk_l: ["minimum area thickness","which is a ratio of area to perimeter","for layer differences which are used","to find bridges and flat areas","values from 0.0 - 0.5 work best"],
ad_mins_s: "min speed",
ad_mins_l: ["minimum speed","for short segments"],
ad_maxf_s: "max flowrate",
@ -889,8 +903,6 @@ self.lang['en-us'] = {
ad_scar_l: ["ease up length for scarf joint. disables arc detection","0 = disabled"],
ad_spol_s: "short path",
ad_spol_l: ["polygons shorter than this","will have their print speed","scaled down to min speed","in millimeters"],
ad_arct_s: "arc tolerance",
ad_arct_l: ["convert faceted lines to arcs","center point drift tolerance","when matching arc points","consider values around 0.15","value in millimeters","0 or scarf disables this"],
ad_zhop_s: "z hop distance",
ad_zhop_l: ["amount to raise z","on retraction moves","in millimeters","0 to disable"],
ad_abkl_s: "anti-backlash",
@ -1007,9 +1019,10 @@ self.lang['en-us'] = {
ex_gcpv: "gcode preview",
ex_dwnl: "download",
ex_bamb: "send to bambu",
ex_octo: "octoprint",
ex_octo: "remote host",
ex_host: "host",
ex_akey: "key",
ex_type: "remote print type",
ex_rsnm: "resin used ML",
ex_layr: "layers",
ex_ptim: "print time",

View file

@ -1,5 +1,5 @@
{
"name": "Kiri:Moto 4.5.0",
"name": "Kiri:Moto 4.6.0",
"short_name": "Kiri:Moto",
"description": "Slicer for 3D printers, CNC mills, laser cutters and more",
"start_url": "/boot/index.html",