inkstitch / inkstitch

Ink/Stitch: an Inkscape extension for machine embroidery design
https://inkstitch.org
GNU General Public License v3.0
911 stars 168 forks source link

Janome files with STOP command on selected object. #905

Open ghost opened 3 years ago

ghost commented 3 years ago

Inkscape version 1.0.1 Inkstitch - v1.29.1 Machine: Janome 400E

Was attempting some applique and noticed some snags when using STOP commands. Specifically adding a stop to a selected object under certain conditions the machine will indicate the file is corrupt and won't read the file.

I have noted a couple of conditions for failure. 1st one is when there is more than one object in the layer and one object has a stop command attached.

A second condition is that if you have more than one layer (each with a single object) and one object has a STOP command it has to be on the topmost layer for the machine to read the file.

I would suspect there are probably more variations to trip this up. I have provided some use cases with SVG and corresponding JEF files.

Stop_command.zip

Zip file has JEF and SVG (filename to case below). 1 and 2 are just sanity ( item 2 with a Stop).

Use Cases

1 - No stop, 1 object, 1 layer. (Pass) 2 - 1 Stop attached to 1 Object, 1 layer (Pass) 3 - 2 objects - 1 Stop attached to 1 Object, 2nd Object no Stop attached, 1 layer (Failed) 4 - 2 layers (Bottom Layer 1 Stop attached to 1 Object 1 layer) (Upper layer 1 object no stop) Objects stacked (Failed) 5 - 2 layers (Bottom Layer 1 Stop attached to 1 Object 1 layer) (Upper layer 1 object no stop) Objects not stacked (Failed) 6 - Same as 5, move layer to with stop to topmost layer (Pass) 7 - Same as 6, add stop to bottom layer object. (Failed).

Note: Removing the STOP command via Remove Embroidery Settings works to fix it.

Another note here or just an observation is that reopening the Jef file with Inkscape and looking at XML attributes is that the STOP commands are converted to TRIM commands (also visually). Looking a PES file and compiling from the same SVG, STOP commands are there.

I have been using InkStitch for over a year, I don't recall having issues with the Stop commands. But again, I could be wrong as it's been awhile. Hopefully I am not missing something or doing something wrong.

ghost commented 3 years ago

In regards to this issue - I am going to reference https://github.com/EmbroidePy/pyembroidery/pull/116/files and https://github.com/EmbroidePy/pyembroidery/issues/115 for avoiding file corruption on some Janome machines and method of stop implementation.

lexelby commented 3 years ago

Awesome, thanks! We'll port that fix in soon.

I had a janome 400e previously, but I sold it, so I won't be able to test this. I'll tag you when we have a version to test.

ghost commented 3 years ago

Sure.

Thanks..