Wykres commitów

217 Commity (main)

Autor SHA1 Wiadomość Data
Kaalleen f31e09312a
fix min_arg() is an empty sequence (#941) 2020-12-28 07:13:16 +01:00
Kaalleen a67eace2cd
inherit styles (#673) 2020-05-02 15:00:42 +02:00
Kaalleen 3199050876
Namespaced Attributes (#657) 2020-04-25 14:45:27 +02:00
Lex Neva 46dbe4668e actually split outline edge 2020-03-16 23:00:19 -04:00
Lex Neva c81c11eb53 ensure starting point is on the border 2020-03-16 23:00:19 -04:00
Lex Neva 9bb4686df7 fix NetworkXNoPath error 2020-03-16 23:00:19 -04:00
Lex Neva 502f20d6f8 avoid jumps when not underpathing autofill 2020-03-16 23:00:19 -04:00
Lex Neva 1f7c6a6c29 fix 'LineString has no method geoms' error 2019-08-15 22:49:37 -04:00
Kaalleen 077f7ea72b add Troubleshoot extension (#465)
adds an extension to help you understand what's wrong with an object and how to fix it, e.g. "invalid" fill shapes
2019-08-05 22:42:48 -04:00
Kaalleen d5e873f8c5
Merge pull request #481
show various bugs the door
2019-07-28 10:02:28 +02:00
Lex Neva e8bd745dfc handle single linestrings properly (fixes #471) 2019-06-22 18:13:01 -04:00
Lex Neva 43a385ea0a Merge branch 'master' into lexelby/lettering-features 2019-04-30 19:57:31 -04:00
Lex Neva 9d4441b700 remove unnecessary comparisons to None 2019-04-10 00:00:44 -04:00
Lex Neva a766e4e408 make error message more readable 2019-04-09 23:49:54 -04:00
Lex Neva 92541eb760 split up long function 2019-04-09 23:47:24 -04:00
Lex Neva f204366347 try harder to avoid traveling around the border 2019-04-04 19:58:35 -04:00
Lex Neva f5f0ce49a8 fix 'too many values to unpack' exception 2019-03-30 22:20:46 -04:00
Lex Neva 284ef6afcb avoid parsing forward slashes in docstring 2019-03-29 20:24:24 -04:00
Lex Neva 513850c975 add vertical travel edges for less jagged travel paths 2019-03-29 20:19:25 -04:00
Lex Neva 90a16fb7f9 more debug logging 2019-03-29 15:03:28 -04:00
Lex Neva 56f1d85647 add timing logging for auto-fill 2019-03-28 15:22:11 -04:00
Lex Neva f6e6d099d2 penalize outline edges more 2019-03-24 14:57:47 -04:00
Lex Neva cf6621d0dd make travel stitch prefer the center of the shape 2019-03-22 20:08:47 -04:00
Lex Neva 90fe045169 don't try to end inside the shape 2019-03-21 21:09:03 -04:00
Lex Neva 97ced89e87 switch to multigraph to avoid accidentally deleting outline edges 2019-03-20 22:41:57 -04:00
Lex Neva 1e5733bbcd add first stitch 2019-03-20 20:46:26 -04:00
Lex Neva 4c1f1bc2bb tidy up start/end travel code 2019-03-20 20:45:29 -04:00
Lex Neva 69df0271b5 protect against shapely error 2019-03-20 20:35:54 -04:00
Lex Neva 685df3b3f0 fix start/end at top or bottom of shape 2019-03-19 23:28:19 -04:00
Lex Neva 68590492f5 allow starting and ending on the border of a hole 2019-03-19 22:36:05 -04:00
Lex Neva 8520d4e63c avoid cutting corners 2019-03-19 20:26:25 -04:00
Lex Neva ba2b78d349 use blazing-fast STRtree for intersection detection 2019-03-19 20:02:42 -04:00
Lex Neva 2ba333c8a7 avoid putting underpathing on top 2019-03-18 20:57:05 -04:00
Lex Neva ec14fe7343 more cleanup 2019-03-14 21:54:51 -04:00
Lex Neva 200e2ac5f7 deduplicate and comment code 2019-03-14 21:46:44 -04:00
Lex Neva e616061e85 underpathing! 2019-03-14 21:02:47 -04:00
Lex Neva 30ea54dc6d tidy up the code a bit 2019-03-13 20:11:07 -04:00
Lex Neva 8323bd5f0f remove unused code 2019-03-13 06:18:27 -04:00
Lex Neva 8ffa9ca90e faster, simpler auto-fill algorithm 2019-03-12 23:03:22 -04:00
Lex Neva 0a06fa740c shapely.geometry -> shgeo for brevity 2019-03-12 22:32:56 -04:00
Lex Neva fb3c8186d2 lower trim threshold to 0.75mm 2019-03-08 20:06:36 -05:00
Lex Neva a14ed903cf auto satin should trim at the end too 2019-03-08 19:59:28 -05:00
Lex Neva 53a9bd6b31 add trims in stitches.auto_satin 2019-03-08 19:57:11 -05:00
Lex Neva fa3236372b fix style 2019-02-16 16:53:38 -05:00
Lex Neva be7d0af82d improve error message when trying to autofill tiny shapes 2019-02-16 16:53:38 -05:00
Lex Neva fdd9a74fd6 fix argument bug in auto-satin 2019-02-16 16:53:38 -05:00
Lex Neva 6a8edfc1cd fix crash if fill start and end points are very close 2019-01-04 20:22:10 -05:00
Lex Neva 04ed93cb25 ability to stitch a single-point running stitch path 2019-01-04 20:08:11 -05:00
Lex Neva 8f3c922011 fix style 2018-12-13 20:10:50 -05:00
Lex Neva 9ae97154d6 add option to skip last stitch in fill rows 2018-12-12 20:55:04 -05:00
Lex Neva f5c85183d9
basic lettering (#344)
Can handle multiple lines of text and routes the stitching in alternating directions on each line.
2018-11-14 20:23:06 -05:00
Lex Neva be833f898f
new extension: Auto-Route Satin Columns (#330)
**video demo:** https://www.youtube.com/watch?v=tbghtqziB1g

This branch adds a new extension, Auto-Route Satin Columns, implementing #214!  This is a huge new feature that opens the door wide for exciting stuff like lettering (#142).

To use it, select some satin columns and run the extension.  After a few seconds, it will replace your satins with a new set with a logical stitching order.  Under-pathing and jump-stitches will be added as necessary, and satins will be broken to facilitate jumps.  The resulting satins will retain all of the parameters you had set on the original satins, including underlay, zig-zag spacing, etc.

By default, it will choose the left-most extreme as the starting point and the right-most extreme as the ending point (even if these occur partway through a satin such as the left edge of a letter "o").  You can override this by attaching the new "Auto-route satin stitch starting/ending position" commands.

There's also an option to add trims instead of jump stitches.  Any jump stitch over 1mm is trimmed.  I might make this configurable in the future but in my tests it seems to do a good job.  Trim commands are added to the SVG, so it's easy enough to modify/delete as you see fit.
2018-10-30 17:43:21 -06:00
Lex Neva 8830eb7d40
new extension: split satin (#315)
This branch adds a new command to split a satin column at a specified point.  The split happens at a stitch boundary to ensure that the two resulting satins sew just like the original.  All parameters set on the original satin remain set on the two new satins, and all rungs are retained.  If one of the satins would have no rungs left, a new rung is added.

How to use:

1. Select a satin column (simple satin doesn't work)
2. Attach the "Satin split point" command using the "Attach commands to selected objects" extension.
3. Move the symbol (or just the connector line's endpoint) to point to the exact spot you want the satin to be split at.
4. Select the satin column again.
5. Run "Split Satin Column".
6. The split point command and connector line disappear, and nothing else appears to have happened.  Select your satin and you'll see that it's been split.

This extension is a by-product of my initial work on #214.  Ink/Stitch will need the ability to split a satin at an arbitrary point, and I figured, why not go ahead and release that functionality as an extension while I'm at it? :)
2018-09-29 14:00:36 -06:00
Lex Neva 944022ee53 proper running stitch for big row spacing 2018-09-10 23:04:08 -04:00
Lex Neva 908f2cd772 pyflakes fixes 2018-08-21 21:43:09 -04:00
Lex Neva 94f391ab42 more pep8 fixes 2018-08-21 20:50:14 -04:00
Lex Neva 038875f876 autopep8 2018-08-21 20:32:50 -04:00
Lex Neva ef17511c66 adjust magic number to 1.4 2018-08-17 15:28:19 -04:00
Lex Neva 80d8257e80 avoid cutting corners in auto-fill running stitch 2018-08-09 15:17:33 -04:00
Lex Neva cdb8fdb133 add bean stitch option 2018-07-27 20:26:18 -04:00
Lex Neva 3950be1316 tidy comments 2018-06-23 23:10:01 -04:00
Lex Neva 78efaf120f remove unnecessary travel back to start 2018-06-23 22:53:17 -04:00
Lex Neva e0a2b31ede fix collapse_sequential_outline_edges 2018-06-23 21:41:00 -04:00
Lex Neva b7cb98d277 end on the ending point 2018-06-23 20:07:20 -04:00
Lex Neva 49b8c9f00b fix two bugs in running stitch
* the first stitch was duplicated
  * the last stitch was omitted
2018-05-28 21:34:58 -04:00
Lex Neva 05daffb7e0 refactor everything out of lib/__init__.py 2018-05-01 21:21:07 -04:00
Lex Neva 1b31806423 rename inkstitch/ to lib/
You can't have a module and a package named the same thing.  PyInstaller wants
to import the main script as if it were a module, and this doesn't work unless
there's no directory of the same name with a __init__.py in it.
2018-05-01 20:37:51 -04:00