Javis OS
Javis OS is an Agentic AI that assists entrepreneurs in business tasks, helping them grow their work.
AI translation
Ladeplaner für Veranstaltungstechnik: Cases (stehend/gekippt, gestapelt) im LKW planen – Draufsicht, Seitenansicht, 3D, Druck
Translation pending
BusinessJavaScript · CSSGitHub @M4dm0nkyOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Version: V 0.15.0 – siehe CHANGELOG.md. Lokale Vanilla-JavaScript-App zur Planung und Visualisierung von Laderaum-Aufteilungen im LKW. Cases (auf Rollen, stehend oder getippt) werden interaktiv in den Laderaum positioniert, Kollisionen und Grenzen werden live geprüft. Nichts installieren, kein Terminal. Nach dem ersten Öffnen läuft die App auch offline. Als App ins Dock (empfohlen): • Safari: Seite öffnen → Menü Ablage → Zum Dock hinzufügen • Chrome: Seite öffnen → Installieren-Symbol rechts in der AdressleisteRead the full README ↗
Version: V 0.21.1 – siehe CHANGELOG.md.
Lokale Vanilla-JavaScript-App zur Planung und Visualisierung von Laderaum-Aufteilungen im LKW. Cases (auf Rollen, stehend oder getippt) werden interaktiv in den Laderaum positioniert, Kollisionen und Grenzen werden live geprüft.
Einfach öffnen: https://m4dm0nky.github.io/Truckload/
Nichts installieren, kein Terminal. Nach dem ersten Öffnen läuft die App auch offline.
Die App braucht einen aktuellen Browser (JSON-Module mit with { type: 'json' }): Chrome/Edge ≥ 123, Safari ≥ 17.2, Firefox ≥ 138 – nach Herstellerangaben, hier nicht geprüft. In Electron entspricht das Version 30 oder neuer.
Als App ins Dock (empfohlen):
Updates kommen automatisch: Mit Netz lädt die App immer den aktuellen Stand vom Server; nur ohne Netz (oder wenn der Server länger als 3 Sekunden braucht) nimmt sie die zuletzt gespeicherte Kopie.
Lokal ohne Internet-Adresse (für Entwicklung): Doppelklick auf start.command bzw. python3 -m http.server 8765 und http://localhost:8765 öffnen. Achtung: Jede Adresse hat ihren eigenen Browser-Speicher – Daten zwischen localhost und der GitHub-Adresse mit „Sichern“ / „Importieren“ übertragen.
npm test
docs/offene-punkte.md)Alle Daten liegen im Browser (IndexedDB)! Es gibt keine Sicherung auf dem Server. Regelmäßig Daten exportieren:
/Dropbox/truckload-backups/)So hast du immer ein Backup für den Fall, dass der lokale Browser-Speicher gelöscht wird.
Jeder Ladeplan nimmt die Cases und Fahrzeuge mit, die er benutzt. Liest du eine Sicherung auf einem Rechner ein, dem eigene Cases fehlen, sind trotzdem alle Stücke da. Der Inspector kennzeichnet sie mit „Aus der Projektdatei – nicht in deiner Bibliothek“; ändern kannst du sie erst nach „In meine Bibliothek übernehmen“. Gibt es ein Case auf dem Rechner schon, gilt die Fassung aus der eigenen Bibliothek. Ein mitgeführtes Fahrzeug steht nur so lange in der Fahrzeugauswahl, wie der geöffnete Plan es benutzt. Wer es behalten will, übernimmt es vorher in die eigene Bibliothek.
„Neu“ (oben links) öffnet einen Wizard mit drei Schritten. „+ Material hinzufügen“ in der Seitenleiste öffnet denselben Wizard für den aktuellen Load, dann ohne den ersten Schritt.
„Fertig“ legt den Load an und packt ihn bei aktiviertem Häkchen automatisch in den Truck. Gefällt das Ergebnis nicht, legt „Truck entladen“ alle Cases zurück nach „Noch nicht geladen“, um sie von Hand zu laden (rückgängig mit ⌘Z).
Automatisch gepackt wird sortenrein: Jeder Case-Typ kommt als eigener Block von der Stirnwand zur Tür, Stücke mit eigener Gruppe bilden dabei einen eigenen Block. Die Reihenfolge legt man über „Pack-Regeln …“ neben „Alles neu packen“ fest: eine Rangliste von Regeln – oben steht die wichtigste, bei Gleichstand entscheidet die nächste.
Eine Regel spricht Traversen, eine Gruppe, einen Case-Typ oder ein Gewerk an und schiebt den passenden Block „zuerst“ (an die Stirnwand) oder „zuletzt“ (an die Tür), zum Beispiel „Gruppe „Motoren“: zuletzt“ oder „Traversen: zuerst“. Dazu kommen zwei Maßregeln ohne eigenes Ziel: Große zuerst (nach Einzelvolumen) und Stückzahl zuerst (der Case-Typ mit den meisten gleichen Stücken zuerst).
Eine eigene Gruppe je Stück (z. B. „Motoren“) vergibt man im Wizard, Schritt „Beschriften“ – dort mit „Gruppe auf alle übernehmen“ für alle Stücke eines Case-Typs auf einmal –, oder nachträglich im Inspector.
Eine Rangliste lässt sich als Regelset unter einem Namen sichern und über „Übernehmen“ im Regelsets-Abschnitt des Dialogs in jedem anderen Load wieder einsetzen. Beim Speichern wählst du, wo das Regelset liegt: im Projekt (voreingestellt, reist mit Sicherung bzw. NYX-Projektdatei) oder in der Bibliothek (für alle Projekte). Die Auswahl zeigt beide Gruppen getrennt; gleiche Namen in beiden Gruppen stören sich nicht.
Der Schalter „Deckschicht mischen“ im Dialog „Pack-Regeln …“ füllt freie Höhe auf den Stapeln mit leichteren, kleineren Cases aus einem späteren Block, statt für sie eine eigene Bodenfläche zu belegen – „schwer nach unten, leicht und klein nach oben“. Sortenrein bleibt dabei der Boden: Nur was oben auf einem Stapel noch Platz hat, wird gemischt.
Die Reihenfolge bleibt dieselbe wie bisher: Erst versucht jedes Stück, den letzten offenen Stapel des vorigen Blocks aufzufüllen (gleiche Grundfläche), dann einen eigenen Bodenstapel zu beginnen – diese beiden Schritte ändert der Schalter nicht. Erst wenn beides nicht greift, kommt die Deckschicht ins Spiel, und nur für sie gilt: Ein Stück darf auf ein Case seiner eigenen Sorte, oder auf ein anderes, wenn beide dieselbe Gruppe tragen, oder – haben beide keine Gruppe – dasselbe Gewerk. Dazu muss es leichter oder gleich schwer sein als das oberste Stück des Stapels und mit seiner Grundfläche (ungedreht oder um 90° gedreht) vollständig darauf passen. Cases ohne Gewicht (0 kg) mischen nicht – weder als Deckschicht auf ein fremdes Case, noch tragen sie eine fremde Deckschicht, weil dort das Gewicht unbekannt ist.
Mehrere kleine Cases dürfen nebeneinander auf einem großen stehen. Alle liegen auf der Fläche des obersten Stücks des Stapels und stehen nie über: Das erste kommt in eine Ecke der Fläche, die nächsten daneben; ist die Reihe voll, beginnt dahinter eine neue. Ein Stück passt dabei ungedreht oder um 90° gedreht. Reihenfolge der Versuche: erst nebeneinander auf diesen Stapel; geht das nicht und trägt der Stapel erst ein einziges Deckstück, wird dieses wie bisher zum Träger und das neue Stück stellt sich auf ihn (Deckstück auf Deckstück). Sind es schon zwei oder mehr nebeneinander, trägt der Stapel nichts mehr obendrauf; weitere Stücke suchen den nächsten Stapel oder eine eigene Bodenfläche.
Gewicht und Lagen: Die Summe der Gewichte aller Deckstücke darf weder die zulässige Auflast des obersten Stücks und der Stücke darunter noch das Gewicht des obersten Stücks überschreiten (die zweite Grenze ist eine eigene Entscheidung: „nichts Schweres auf Leichtes“ gilt für die Lage als Ganzes). Jedes Deckstück darf einzeln nicht schwerer sein als das Stück unter ihm. Die Lagen je Stück gelten weiter: Mit der Wizard-Vorgabe Lage 1 und 2 ist ein Stapel aus zwei gleichen Cases schon voll, eine Deckschicht bräuchte dann Lage 3. Die Regel greift also vor allem dort, wo ein Stapel niedriger bleibt als die Truckhöhe – bei nicht stapelbaren Sorten auf nur einer Lage, bei einer ungeraden letzten Reihe, oder wenn die kleinen Cases Lage 3 bzw. 4 erlauben. Auch mit Deckschicht bleiben die Pack-Regeln gewahrt (eine Deckschicht wandert nie vor einen Block, der laut Rangliste eigentlich zuletzt kommen soll), und Traversenwagen tragen nie etwas Fremdes und stehen nie auf einer Deckschicht. Da es dabei immer der erste passende Stapel gewinnt, kann es vorkommen, dass sich mehrere kleine Cases auf demselben großen Case sammeln, statt sich auf mehrere große Cases zu verteilen.
Bestehende Pläne bleiben, wie sie sind: Gespeicherte Platzierungen ändern sich nicht. Erst beim nächsten „Alles neu packen“ gilt die neue Anordnung.
Der Schalter gilt je Load und wandert, wie die Rangliste selbst, mit einem gespeicherten Regelset mit.
Alte Loads ohne eigene Rangliste packen unverändert weiter: Fehlt sie, gilt automatisch die bisherige Reihenfolge – bei ehemals „Große zuerst“ Traversen zuletzt, dann nach Einzelvolumen, dann nach Stückzahl; bei ehemals „Stückzahl zuerst“ nach Stückzahl, dann nach Einzelvolumen.
Füllt eine Sorte ihre letzte Reihe nicht, darf die nächste die freien Spuren dieser Reihe belegen und den letzten, nicht vollen Stapel auffüllen – weiter vorn wird nie gemischt. „Rest einpacken“ setzt neue Cases an die letzte Reihe der vorhandenen Ladung an, weiter vorn füllt es keine Lücken.
Lage und „getippt“ eines einzelnen Stücks lassen sich auch nachträglich im Inspector ändern – sowohl für ein Stück im Truck als auch für eines in „Noch nicht geladen“ (dort einfach die Zeile in der Seitenleiste anklicken).
Bei einem Stück in „Noch nicht geladen“ steht, wenn es sich aus den Daten ergibt, der Grund dabei, etwa „zu groß für den Laderaum“, „auf ‚getippt‘ gesetzt, passt aber nur stehend“, „zu schwer für die Nutzlast des Fahrzeugs“ (das Stück allein liegt über der Nutzlast) oder „erlaubte Lagen 2, 3: darf nur auf anderen Stücken stehen“. Gründe, die von den anderen Stücken oder den Pack-Regeln abhängen, nennt die App nicht – dann steht dort nichts.
Das Gewicht eines Case-Typs lässt sich im Inspector direkt ändern (Zahlenfeld in kg, gilt für alle Stücke dieses Typs). Das gilt für eigene Cases und Listen-Vorlagen; bei Standardvorlagen legt „Kopieren“ in der Materialverwaltung eine änderbare Version an, und das Gewicht von Traversenwagen ergibt sich aus der Konstruktion.
Die Materialverwaltung ist ein eigener Bereich für den Bestand an Cases, Traversen und Boxen-Dollys. Sie ist immer erreichbar: über „Material“ auf dem Startbildschirm und über „Material“ in der Kopfleiste, auch mitten in einem Load, und über „Material“ unten im Wizard „Load zusammenstellen“. „Zurück“ führt dorthin zurück, wo man herkam – in den Wizard mit unveränderter Auswahl. Solange sie offen ist, ruhen die Tastenkürzel des Ladeplans.
Links steht der Sammlungsbaum: Standard, Meine Sammlung und die eigenen Sammlungen (auch als Untersammlungen, bis zu vier Ebenen) mit der Zahl ihrer Cases, darunter „+ Sammlung“, „Sammlung importieren“ und „Nur in Ladeplänen“. Rechts liegt das Material der gewählten Stelle, aufgeteilt in die Reiter Cases, Lautsprecher (Line-Array-Boxen, Subs, Boxen-Dollys), Traversen und Sonderbau, mit Suche.
Die 2D-Ansichten sind zum Planen da – nüchtern wie Tetris. Jedes Case ist ein Rechteck in seinem echten Außenmaß mit Rollen, also genau die Fläche, die es im LKW belegt. Ein dunkler Streifen an einer Kante zeigt, wo die Rollen sitzen (bei getippten Cases z. B. zur Tür). Traversenwagen sind Kästen mit Gitterstruktur. Die 3D-Ansicht ist die reale Ansicht: Flightcases mit Alu-Profil, Ecken, Verschlüssen und Rollen, Traversen mit Rollbrettern.
Draufsicht, Seitenansicht und Rückansicht lassen sich jede für sich vergrößern, z. B. um genau zu prüfen, wie die Cases stehen:
Cases lassen sich auch gezoomt verschieben und aus der Liste hineinziehen. Beim Hineinziehen rastet ein Case, wie beim Verschieben, an den Kanten der Nachbarn und an den Wänden ein. Der Ausdruck zeigt immer den ganzen Truck.
Oben in der Werkzeugleiste steht, wonach die Cases eingefärbt werden:
Ein Case mit 0 kg heißt „unbekannt“, nicht „am leichtesten“. Es bleibt deshalb im Gewichtsmodus neutral grau, statt als das leichteste Teil dazustehen. Traversenwagen behalten ihre Markenfarbe, in jedem Modus.
In der Draufsicht verdeckt die obere Lage die untere vollständig. Die Auswahl Lagen in der Werkzeugleiste zeichnet alles oberhalb der gewählten Lage blass — die darunterliegenden Cases werden lesbar, der Zusammenhang bleibt aber sichtbar, weil nichts verschwindet. In den 2D-Ansichten werden höhere Lagen blass gezeichnet, in der 3D-Ansicht ganz ausgeblendet — dort ergibt das einen sauberen Schnitt durch die Ladung. Das ausgewählte Case bleibt in beiden Fällen sichtbar. Der Ausdruck zeigt immer alle Lagen.
Reicht ein Fahrzeug nicht, kann ein Plan mehrere LKW tragen. Ein bestehender Plan bleibt ein normaler Ein-LKW-Plan, bis du ihn umstellst.
Neben dem Knopf „Drucken“ steht, was gedruckt wird:
Etiketten drucken auf A4 hoch und randlos, Ladeplan, Abhakliste und Ausladeliste auf A4 quer. Vor dem ersten Etikettenbogen einen Testdruck auf normalem Papier machen und gegen einen Bogen halten — der senkrechte Rand der Avery-Bögen ist nicht aus Herstellerangaben belegt (nur Shopseiten gesichtet, siehe Issue #29).
In der Bibliothek und im Wizard gibt es neben „Eigene Cases“ und den Vorlagen einen
eigenen Abschnitt „Cases aus deiner Liste“ mit 116 Cases – übernommen aus der privaten
Excel-Tabelle „Casemaße Complete.xlsx“ (Blatt „Data Cases“), in der die Maße über Jahre
gepflegt wurden. Sie liegen in data/meine.json und gehören zur Sammlung „Meine Sammlung“;
die Vorlagen liegen in data/standard.json („Standard“, nur lesbar). Jeder Eintrag zeigt den
Hersteller im Feld „Inhalt“ sowie die Firma, und beide Listen lassen sich zusätzlich nach
Sammlung filtern (siehe „Materialverwaltung“).
Leere Standard-Pack- und Kabelcases gibt es je Maß nur einmal, als „Packcase L×B×H“ mit einem Standardgewicht (120×60×80, das Standard-Packcase 120×60×60 plus Rollen, = 100 kg, die übrigen nach Volumen, z. B. 60×60×60 = 38 kg, 120×80×80 = 133 kg) unter den Vorlagen (60×60×60, 60×60×73, 80×60×60, 120×60×60, 120×60×73, 120×60×80, 120×80×80). Ob später Kabel oder etwas anderes hineinkommt, spielt fürs Laden keine Rolle. Cases mit konkretem Inhalt (z. B. Powerlocksatz, Multicore, Laka Loom) bleiben eigene Einträge. Traversenwagen stehen nicht mehr in der Liste; die baut man über „+ Traverse hinzufügen“.
Im Gewerk „Ton“ gibt es seit V 0.10.0 Line-Array- und Sub-Vorlagen von sechs Herstellern (L-Acoustics, d&b, Meyer Sound, Martin Audio, RCF, Nexo), recherchiert mit Quelle (siehe docs/casemasse-gewichte.md). Beim Einladen fragt ein Dialog, wie viele Boxen auf dem Dolly übereinanderstehen; daraus entsteht ein eigener Dolly-Stack (z. B. „L-Acoustics K2 4er (auf Dolly)“), der in 3D als gestapelte Lautsprecher-Gehäuse mit Grille-Front gezeigt wird.
Die früheren Einträge (9 leere Pack-/Kabelcases, 5 Traversen) sind nur ausgeblendet: Alte Ladepläne zeigen sie weiter unverändert. Sechs weitere Einträge (Lakabaum flach/Transflex, 63A VT Haube, Rigpack, FD34 2m CUSTOMIZE, Slick) sind seit 2026-09-30 auf Nutzerwunsch ebenso ausgeblendet – die beiden Traversen-Reste-Cases baut man stattdessen über „+ Traverse hinzufügen“.
Für 89 dieser Cases gibt es ein recherchiertes oder mit dem Nutzer abgestimmtes Schätzgewicht (Netto-Gerätegewicht plus Case-Anteil, bei leeren Rack-/Dolly-Gehäusen ein Standardwert nach Volumen, nachvollziehbar mit Quellen in docs/casemasse-gewichte.md). Zwei weitere Cases (die beiden FR10-Zeilen) tragen ihr unverändertes Originalgewicht aus der Tabelle und zählen ausdrücklich nicht als Schätzung. Die restlichen 25 stehen bewusst bei 0 kg – lieber ehrlich 0 kg als eine erfundene Zahl – und lassen sich im Inspector jederzeit nachtragen.
| Taste | Aktion |
|---|---|
| R | Gedrehte Case um 90° drehen |
| T | Case tippen: ein stehendes Case wird auf die Seite getippt, ein getipptes wieder aufgestellt |
| W | Rollenseite (Richtung) wechseln |
| D | Case duplizieren |
| Entf | Case löschen |
| Pfeile (↑↓←→) | Case in 5-cm-Schritten verschieben |
| Shift + Pfeile | Case in 1-cm-Schritten verschieben |
| Cmd/Strg + Z | Rückgängig |
| Cmd/Strg + Shift + Z | Wiederherstellen |