EXP Embroidery File Format/nl
Inhoud
Overzicht
Ik heb deze pagina gemaakt om het .exp-bestandsformaat te documenteren. Ik hoop dat het hiermee voor anderen makkelijker wordt om met .exp-bestanden te werken en hun eigen bestanden te schrijven als dat nodig is.
Basisinfo / framework voor .exp
.exp-bestanden zijn borduurbestanden die ontworpen zijn voor gebruik met Melco- of Bravo-systemen.
Deze bestanden zijn geschreven in binaire code. De code is geschreven in sets van 8 bits. Een bit is het binaire getal 0 of 1. Deze sets van 8 bits worden bytes genoemd. Deze bytes bevatten de informatie voor elke steekbewerking. Er zijn 256 mogelijke combinaties van bits om een byte te maken. Deze bytes vertegenwoordigen getallen van 0 tot 255. Elk van deze getallen staat voor een opdracht aan de borduurmachine.
Bytes worden in paren van 2 naar het bestand geschreven. Deze paren zijn meestal de commando's voor een beweging in de x (links/rechts) en y (omhoog/omlaag) richtingen. De eerste byte is het bewegingscommando voor x en de tweede byte is voor y.
De minimale resolutie van een steekbeweging in het .exp-bestandsformaat is 0,1 mm. Omdat de bewegingen allemaal op deze resolutie zijn gebaseerd, is het het handigst om 0,1 mm als basiseenheid te beschouwen bij het werken met gegevens die naar borduurwerk moeten worden geschreven.
De maximale beweging in één steekopdracht is 12,7 mm. Elke gewenste beweging groter dan deze lengte tussen steken moet worden gemaakt met een of meer "sprong"-bewegingen, hieronder uitgelegd.
Bewegings-/steekopdrachten

Een beweging van 0 in x of y wordt weergegeven door de bytewaarde 0.
Een positieve beweging in x of y in mm*10^-1 wordt weergegeven door dezelfde bytewaarde. Bijvoorbeeld, een beweging van +0,3 mm wordt weergegeven door de bytewaarde 3, een beweging van +7,1 mm wordt weergegeven door de bytewaarde 71, etc.
Een negatieve beweging in x of y in mm*10^-1 wordt weergegeven door de absolute waarde van de beweging afgetrokken van 256. Een beweging van -0,3 mm wordt bijvoorbeeld weergegeven door de bytewaarde 253, een beweging van -7,1 mm door de bytewaarde 185, enz.
Speciale bewerkingen worden ook gegeven als een set van 2 bytes. Deze speciale bewerkingen omvatten "kleur veranderen / stoppen", "springen" en "draad beëindigen / knippen". Deze speciale bewerkingen beginnen altijd met 128 als eerste byte, en de tweede byte geeft aan welke van de speciale bewerkingen moet worden uitgevoerd.
- Met 'Kleur wijzigen / stoppen' wordt de machine gepauzeerd, zodat de operator de kleuren van het borduurgaren kan veranderen of de machine-instellingen halverwege een afdruk naar wens kan aanpassen.
- Byte-representatie - (128,1)* *gevolgd door bewegingscommando (0,0) als er geen sprong gewenst is met het commando. Gevolgd door een ander commando van (0,0) om aan te geven dat er op dit punt een steek moet worden gemaakt om de volgende commando's vanaf te starten.
- "Springen" betekent dat de volgende set x- en y-bewegingsopdrachten geen steek mag ontvangen. Hierdoor kan de machine grotere afstanden tussen steken aanbrengen of kunnen er afzonderlijke objecten worden gemaakt zonder de stof ertussen te stikken.
- Byte-representatie - (128,4)* *gevolgd door het (x,y)-coördinaatcommando voor de beoogde sprong. Rijg de sprong- en sprongcoördinaatcommando's achter elkaar aan elkaar om een verdere afstand af te leggen. Gebruik na voltooiing van de sprong of reeks sprongen het coördinatensteekcommando (0,0) om de oorsprong voor de volgende steekbewerking te creëren.
- "End / cut thread" betekent dat de draad moet worden afgesneden. Het kan worden gebruikt bij het afronden van een deel van een borduurproces en/of aan het einde van het bestand. gebruikt Het wordt aanbevolen om een bestand altijd met deze opdracht te beëindigen. Het geeft een schone snede aan het einde van het borduurproces om te voorkomen dat er losse draden zijn.
- Byte-representatie - (128,128)* *moet worden gevolgd door een (0,0)-opdracht.
Raadpleeg de tabel met steekopdrachten voor een meer visuele uitleg van de steekopdrachten.
Uitleg schrijfproces

Het .exp-bestand begint altijd bij het coördinatencentrum (0,0) en geeft vervolgens de reeks opdrachten weer om het steekpatroon te traceren. Tenzij een speciale bewerking wordt gelezen, volgt de machine de instructies voor de (x,y)-beweging en maakt een normale steek. Wanneer de machine bij een speciale bewerkingsopdracht komt, voltooit deze de volgende bewegingsopdracht na de speciale bewerkingsbyteset en voldoet vervolgens aan de speciale bewerking.
In de afbeelding hierboven ziet u een visueel voorbeeld van het koppelen van fysieke opdrachten aan byte-representatie.
Omgezet naar binair zou deze reeks steken worden geschreven als een doorlopende string, zoals: chr(7),chr(0),chr(0),chr(244),chr(253),chr(0),chr(0),chr(251),chr(128),chr(128),chr(0),chr(0)
^ter herinnering: "chr(0),chr(0)" staat na de opdracht "cut/end", omdat de speciale opdracht gevolgd moet worden door een dubbele nul
Codering
Een belangrijke opmerking bij het schrijven van .exp-bestanden is dat de coderingstaal die wordt gebruikt om de gegevens naar het bestand te schrijven, veel glitches kan veroorzaken. Als de talen "ASCII" of "UTF-8" worden gebruikt, zal het bestand volledig verprutst zijn. Met Python 3.8 om .exp-bestanden te schrijven, kwamen de beste resultaten van de coderingstaal "latin-1". Zelfs met deze taal zijn er enkele glitches, met name met het getal 10. Het gebruik van de opdracht 10 veroorzaakt een beweging en stitch van (+1,3,+1,0) mm voor (x,y) in één byte-opdracht als deze in de plaats van x wordt gegeven. Vervolgens wordt het lezen van bytes als paren van twee gereset. Dus de volgende y-opdracht wordt vervolgens gelezen als een x en die bias blijft voor de rest van het bestand. Als 10 wordt ontvangen als een y-opdracht, worden er twee stitches gemaakt van de opdracht. De eerste is een (0,+1,3) mm beweging en stitch, de tweede is een (+1,0,0) mm beweging en stitch. De steken die op deze steken volgen, zullen ook compleet anders zijn dan de gegeven commando's, zelfs als de commando's normaal gesproken helemaal prima werken. Meestal met een grote sprong in een ongewenste richting. Dus tot slot, gebruik altijd de coderingstaal "latin-1" bij het schrijven van bestanden met Python en schrijf niet het commando 10.
EXP-bestanden schrijven om elektrische weerstanden op stof te fabriceren
Geborduurde elektrische weerstandsgeneratie
^Hier is een toepassing van EXP-schrijven. Gebruik het als voorbeeld als je wilt zien hoe je EXP-bestanden schrijft in Python. Dit is het project waar ik aan werkte, waarvoor ik moest leren hoe je EXP-bestanden maakt. Zie de pagina voor meer informatie.
Bronnen
Ik heb de pagina edutech wiki Embroidery Format EXP gebruikt om een eerste begrip te krijgen van het EXP-bestandsformaat. Tenminste op het moment van deze posting is die pagina vrij onvolledig, maar het gaf me wel een nuttige start bij het maken van een uitgebreidere set documentatie. Dus dank aan de oorspronkelijke auteur.