Wykres commitów

262 Commity (d9e907a49ec9c0e0b14fbc53ee3a5f11dcbd3473)

Autor SHA1 Wiadomość Data
Lex Neva 99c6b5f072
protect against bad values for certain params (#44)
This is a stopgap measure to prevent the extension from infinitely looping
if the user mistakenly gives a zero or negative value for zig-zag spacing
or running stitch length.

It's definitely not ideal -- the user is still allowed to enter invalid
numbers, but the extension just interprets any zero value as 0.01.  In
the future, I'll refactor things to add proper bounds-checking for
parameters and limit the values that can be entered in the UI.
2018-01-28 21:02:45 -05:00
Lex Neva 871802e4eb
properly notify GUI of Stroke being disabled (#43)
fixes #32: when changing from Stroke to Fill in params, the preview drew both.
2018-01-28 20:26:54 -05:00
Lex Neva fabe5bcd32
Fix simulate (#42)
* Simulate now works regardless of the output format you chose when you ran Embroider.
* Simulate (and the preview in Params) now respects TRIMs.
* Inkscape restart required (embroider.inx changed).

This one kind of grew in the telling. #37 was a theoretically simple bug, but in reality, the code necessary to fix it was the straw that broke the camel's back, and I had to do a fair bit of (much needed) code reorganization. Mostly the reorganization was just under the hood, but there was one user-facing change around the Embroider extension's settings window.

Way back in the day, the only way to control things like the stitch length or satin density was through global options specified in the extension settings. We've long since moved to per-object params, but for backward compatibility, ink/stitch defaulted to the command-line arguments.

That means that it was possible to get different stitch results from the same SVG file if you changed the extension's settings. For that reason, I never touched mine. I didn't intend for my users to use those extension-level settings at all, and I've planned to remove those settings for awhile now.

At this point, the extension settings just getting in the way of implementing more features, so I'm getting rid of them and moving the defaults into the parameters system. I've still left things like the output format and the collapse length (although I'm considering moving that one too).
2018-01-28 16:10:37 -05:00
Lex Neva ede0b2d0e6
add contributor covenant code of conduct (#38) 2018-01-26 13:19:44 -05:00
Lex Neva 0086607a94 stop adding build.tar.gz to the release 2018-01-23 22:39:53 -05:00
Lex Neva 2ab622bdf0 gitignore libembroidery 2018-01-23 22:38:21 -05:00
Lex Neva 2e3e43e1ca don't lint embroidermodder's python files 2018-01-23 22:17:29 -05:00
Lex Neva 0cbf3544b7 fast finish 2018-01-23 22:15:09 -05:00
Lex Neva c9e90dc61d prevent build loop 2018-01-23 22:06:24 -05:00
Lex Neva a57ac2a902 use TRAVIS_BRANCH (which is the tag for tag builds) 2018-01-23 22:04:19 -05:00
Lex Neva 858be29401 trying for a single pre-release per branch 2018-01-23 21:56:48 -05:00
Lex Neva acaebaa956
add params for "TRIM after" and "STOP after" (#29)
* adds new options to Params: "TRIM after" and "STOP after"
  * adds tooltip support to Params
  * inkstitch now includes libembroidery and can directly output any supported file type
    * this avoids the need for `libembroidery-convert` and compiling embroidermodder!
  * TRIM support for DST format (inserts 3 JUMPs)
  * STOP command supported as an extra color change that the operator can assign to code C00
  * TRIMs cause the following jump stitch not to be displayed in the Embroidery layer
2018-01-23 20:13:37 -05:00
Lex Neva 462bf0bdbe pyinstaller-based install instructions
also remove now-unnecessary installation shell script (sorry, @Moini!)
2018-01-13 22:56:35 -05:00
Lex Neva e13c16d50d don't deploy on lint builds 2018-01-13 22:46:44 -05:00
Lex Neva 38d88d1a2b hopefully finally fix travis deploy rules 2018-01-13 22:08:09 -05:00
Lex Neva 143eb342a4 fix travis deploy conditions 2018-01-13 20:45:14 -05:00
Lex Neva 8bab858be6
pyinstaller release method (#16)
pyinstaller packages up all of a python script's dependencies and builds them into standalone executables. It can either do a directory (containing a single executable and a bunch of shared libraries) or a self-contained executable that effectively just contains a compressed version of the directory.

The problem is, if you have several scripts like we do, you get several large directories or standalone binaries, and there's a ton of duplication between them. Fortunately it looks like using the directory method and just combining the directories works fine (for this project).

This PR runs the above build on any tagged commit and publishes a release in github containing the pyinstall-ified tarball. If the tag is named like "v1.2.3" _and_ the tag is on the master branch, then the github release will be marked as "production". Otherwise, it will be marked as a "pre-release". This means that we can build testable tarballs of the extension in a pull request by tagging a commit.
2018-01-13 20:18:50 -05:00
cclauss f244f58a17 Comment out: pip install -r requirements.txt 2018-01-07 15:41:53 -05:00
cclauss b4d72df937 Add free automated flake8 testing of pull requests
The owner of the this repo would need to go to https://travis-ci.org/profile and flip the repository switch __on__ to enable free automated flake8 testing of each pull request.
2018-01-06 19:51:28 -05:00
Lex Neva 3cd61b8ff9 automatically scale simulation window
The simulation window is scaled to fill the available space on the screen.  In
the Params dialog, the simulation window sits to the right of the Params window
and fills the remaining space.
2018-01-06 15:49:44 -05:00
cclauss ece8f15eda Use sys.stderr_backup in both save and restore
There is no __sys.stderr_backup__ defined in the [Python sys] module.  __save_stderr()__ adds a variable by that name which is a bit unconventional but it does work.  This PR changes __restore_stderr()__ to read that data from the same variable.  Without this change, __restore_stderr()__ will probably raise a NameError at runtime because __stderr_backup__ is an undefined name.

flake8 testing of https://github.com/lexelby/inkstitch on Python 2.7.14

$ __flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics__
```
./embroider_params.py:748:18: F821 undefined name 'stderr_backup'
    sys.stderr = stderr_backup
                 ^
```
2018-01-06 15:22:15 -05:00
Lex Neva 218ec1b63d don't intify floating point coordinates 2018-01-06 15:11:57 -05:00
Lex Neva 8d8e886d8b add scale parameter in simulate 2018-01-06 15:11:57 -05:00
Lex Neva 56aeabd9a6
add notes about the switch to 96dpi 2018-01-05 21:34:45 -05:00
Lex Neva 9778d85326 remove pixels_per_mm option 2018-01-04 22:43:12 -05:00
Lex Neva 21c22bd790 use PIXELS_PER_MM in simulate 2018-01-04 22:42:19 -05:00
Lex Neva 1e2c67e13d simulate bugfix 2018-01-04 22:42:08 -05:00
Lex Neva 7190d98dd4 parse and use viewBox attribute
The viewBox effectively adds global scaling and translation to all shapes in
the SVG.  Borrowing from inkscape-silhouette, we construct a transform from
the viewBox and apply it to all objects.

When adding the stitch plan into the SVG, we need to compensate for this
implied transformation, which we do by adding its inverse as a transform
on the stitch plan polylines.

All of this allows us to do away with the nonstandard 10 pixels per mm that
was previously hardcoded into inkstitch.  Old designs can add a viewBox to
switch from 10 pixels per mm to the standard 96 ppi that Inkscape uses.
2018-01-04 21:05:53 -05:00
Lex Neva d4c84a0fdb remove outdated index.html 2018-01-03 11:41:03 -05:00
Lex Neva 83bd9f4b70 more README fixups 2018-01-03 11:40:23 -05:00
Lex Neva 8ea0dd6d91 Create CNAME 2018-01-03 11:18:52 -05:00
Lex Neva d10cf3ecf1 Set theme jekyll-theme-minimal 2018-01-03 11:18:37 -05:00
Lex Neva 2d4e50d495 readme fixups 2018-01-03 11:11:47 -05:00
Lex Neva f50ec5e4c4 rename to ink/stitch 2018-01-03 11:09:18 -05:00
Lex Neva 823a135eaf add link to video of live preview feature 2018-01-01 19:33:25 -05:00
Lex Neva de17943061 remove live simulation from TODO 2018-01-01 15:46:36 -05:00
Lex Neva e204aadab0
Merge pull request #10 from lexelby/live-simulate
live stitching preview in the Params extension
2018-01-01 15:43:39 -05:00
Lex Neva 09b9dd94e6 adjust colors in the simulator to make them visible
Colors too close to white are darkened just a bit to make them stand out
against the white background.
2018-01-01 15:26:18 -05:00
Lex Neva 084dc783d2 add restart option for simulator 2018-01-01 15:00:58 -05:00
Lex Neva e9bddedf36 render objects in the correct order 2018-01-01 14:56:27 -05:00
Lex Neva 3cb4427fe6 make debugging slightly easier by popping up traceback 2017-12-31 22:55:57 -05:00
Lex Neva 75241f5f9d trim unnecessary whitespace 2017-12-31 22:38:15 -05:00
Lex Neva fd4d19bf8d don't start outdated simulation 2017-12-31 22:28:43 -05:00
Lex Neva c2388a53a6 adjust default simulation speed to always take ~5 seconds 2017-12-31 22:28:28 -05:00
Lex Neva 82fe2b7144 show simulate window at start 2017-12-31 22:10:10 -05:00
Lex Neva 824dd3c4e6 don't mirror Y axis for patches 2017-12-31 22:05:05 -05:00
Lex Neva 85aafccf25 cancel should not output the SVG
also sped up simulation
2017-12-30 21:30:53 -05:00
Lex Neva cb6df39773 get rid of thread killing
Switching to a cooperative model.  This has the downside that a long
patch computation will cause the simulate window to take longer to
update, but in practice the longest this will be is a couple of
seconds (for a very complicated autofill region).
2017-12-30 21:16:58 -05:00
Lex Neva 7152caa14d render in a background thread
The problem with this approach is that sometimes the SystemExit happens down
inside shapely and it complains bitterly (on stderr).  May have to rethink.
2017-12-30 20:54:35 -05:00
Lex Neva 61ed1da1cf params simulate window
when you change params, a simulate window opens to preview the results right
away
2017-12-30 16:05:21 -05:00