Grotti 2.2.6: Wand-Vorschau, dichterer 3D-Pfad, ASCII-Dateinamen.

Kacheln zeigen Moonraker-Thumbnails; Toolpath-Thinning behält ganze Schichten; Nicht-ASCII-Namen vermeiden 10115 beim Senden.
This commit is contained in:
Dominic Gundel committed 2026-10-17 11:22:43 +02:00
1 parent 7da895bbcd
commit b277ca48aa
16 files changed
+302 -50

No files matched your search

+2 -2
View File
@@ -10,8 +10,8 @@ window.GrottiGcodeViewer = (function () {
const COLOR_OBJ_EX = 0xef4444;
const COLOR_OBJ_CUR = 0xfbbf24;
const GRID_STEP = 10;
// Nur leichte Doppelung — starke Offsets + Punkte wirkten wie Vollkörper mit Löchern
const FAT_OFFSETS = [0, -0.22, 0.22];
// Keine Parallel-Offsets: bei ausgedünnten Pfaden wirkten sie gesprenkelt
const FAT_OFFSETS = [0];
function create(canvas) {
const wrap = document.createElement("div");
+34 -3
View File
@@ -620,12 +620,44 @@ article.machine.offline:hover { opacity: 1; }
.job-line {
display: flex;
align-items: center;
gap: 0.45rem;
gap: 0.55rem;
min-width: 0;
color: var(--muted);
font-size: var(--t-sm);
padding: 0.45rem 0.5rem;
border-radius: 10px;
background: rgba(255, 255, 255, 0.03);
border: 1px solid var(--line);
}
.job-thumb {
width: 4.5rem;
height: 4.5rem;
object-fit: contain;
border-radius: 9px;
border: 1px solid var(--line);
background: var(--card-2);
flex: none;
}
.job-thumb[hidden] { display: none; }
.job-ico { display: inline-flex; flex: none; color: var(--faint); }
.job-ico .ico { width: 1.1rem; height: 1.1rem; }
.job-line.has-thumb .job-ico { display: none; }
.job-meta {
min-width: 0;
flex: 1;
display: flex;
flex-direction: column;
gap: 0.3rem;
align-items: flex-start;
}
.job-line .name {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
max-width: 100%;
color: var(--ink);
font-weight: 650;
}
.job-line .name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; min-width: 0; color: var(--ink); }
.job-line .swatches { padding: 0; min-height: 0; flex: none; }
.badge {
font-size: 0.65rem;
@@ -1874,7 +1906,6 @@ body.desk-on main {
.summary-text b { color: var(--ink); }
.page-head-side { display: flex; align-items: center; gap: 0.75rem 1rem; flex-wrap: wrap; }
.page-head-side .check { margin: 0; font-size: var(--t-sm); color: var(--muted); }
.job-line > .ico { color: var(--faint); }
.job-line[hidden] { display: none; }
article.machine.flash { animation: flash 2s var(--ease); }
@keyframes flash { 0%, 40% { box-shadow: 0 0 0 2px var(--accent), var(--shadow); } }