Commit Graph

229 Commits

Author SHA1 Message Date
Marius Stanciu
421e9766ea -clean-up before merge 2019-01-03 21:20:54 +02:00
Marius Stanciu
14477f4db4 - the main issue was the modules that I imported. It was the FlatCAMObj.py
modules which it was not what it was needed. I changed the imports to
camlib.py, remade the functions in camlib.py and now the Flip, Rotate
and Skew work over all the objects of FlatCAM (Gerber, Geometry created
by the FC, Geometry created by the objects, Excellon, CNCJob)
2018-06-06 04:08:50 +03:00
Marius Stanciu
74104ec19f - modified the pull request to include along the flipX, flipY commands
also the Rotate, SkewX and SkewY commands. Fix for issue #235

All perform the same in regard of multiple object selection.
2018-06-05 13:43:14 +03:00
Marius Stanciu
d4331b49bc Merged in marius_stanciu/flatcam_mpl/load_gerber_with_zero_value (pull request #83)
Support for Gerber files that have apertures with size zero
2018-06-04 16:56:22 +00:00
Marius Stanciu
da9f890c39 Merged master into Port_to_Python3k 2018-05-29 17:43:33 +03:00
Marius Stanciu
eb0637c5bb - minor PEP changes 2018-05-26 19:10:07 +03:00
Marius Stanciu
a4bbb98bf1 - converted from Python2 code to Python3 code
- in camlib.py, CNCJob class -> generate_from_excellon_by_tool() was
failing in the line to sort the tools due of been unable to compare
between dict's. I replaced that section.
2018-05-26 04:43:40 +03:00
Marius Stanciu
b8a8cfe1fd - added support for Gerber files that have apertures with size zero
Basically it test the "size" value for the current aperture and if it's
found with zero value it will replace with a really small value
(0.0000001)that for all practical purposes is "zero"
(0.0000001 in inch is really small and in mm is even smaller)
- correcting small typos
2018-05-25 12:41:17 +03:00
Juan Pablo Caram
62f0662083 Support to mill all holes from the command line. Fixes #218. 2017-05-05 16:20:14 -04:00
Juan Pablo Caram
fb6e1135e9 Added comments. 2016-11-01 00:34:46 -04:00
Juan Pablo Caram
f6d9901365 Added "connect" option for painting polygons. 2016-10-27 17:34:41 -04:00
Juan Pablo Caram
0b26a90175 Support for parallel-line painting. 2016-10-27 16:57:36 -04:00
jpcgt
deed138867 Merged in realthunder/flatcam/mirror_fix (pull request #46)
Fixed mirroring list of geometries
2016-10-27 19:48:02 +00:00
Juan Pablo Caram
8afb0704fd Functional select-all for painting (#210). 2016-09-23 14:04:31 -04:00
Juan Pablo Caram
dbe0105f9b Fixes SVG parser to produce polygons. Fixes #212. 2016-09-21 13:01:51 -04:00
Juan Pablo Caram
7474609776 Added feature: Select all polygons for painting and shell support with "paint" command. 2016-09-19 16:44:29 -04:00
Juan Pablo Caram
74e936ba02 Added inline docs 2016-08-08 15:23:37 -04:00
Zheng, Lei
8a43a63b80 Fixed mirroring list of geometries 2016-06-13 13:20:25 +08:00
Juan Pablo Caram
f9cbd78cd1 Show messages and errors in TCL shell. Better exception handling and reporting when opening files. 2016-06-11 21:33:38 -04:00
Juan Pablo Caram
9f138bdcc2 Fixes #119. 2016-06-04 23:01:36 -04:00
Juan Pablo Caram
eb18b7fd3f Fixes #157. 2016-06-04 17:54:07 -04:00
Juan Pablo Caram
d1442a4900 Cleaned up G-code parser. Fixed dwell command. Fixes #184. 2016-06-04 16:45:52 -04:00
Juan Pablo Caram
6136afe84c Added dwell (G4) post processing option to gcode. 2016-06-03 22:19:47 -04:00
Juan Pablo Caram
d28858ff38 Fast vertical movement above board. Fixes #141. 2016-04-10 16:43:03 -04:00
Kamil Sopko
4c20040fbe fix errors in tool selection 2016-04-09 12:48:32 +02:00
Kamil Sopko
b98954dccd fix error handling in signaled commands, error gets info about different scoup instead of true error
more detaild error  print including python trace when more complex unknown error

reinplement drillcncjob

fix camlib problem with all  drills("all"  was already there) but it crashes on tools without points, when  no tools "all" is as default

add timeout to all helps  if  command is  signaled
2016-04-03 14:20:50 +02:00
Kamil Sopko
e96ee1af29 merge new pull requests from FlatCAM->master
implement  executing of tasks  inside worker thread
cleanups, reimplement  Isolate/New/OpenGerber as OOP style Shell commands
disable edit  during shell execution,  show   some  progress
add ability for breakpoints in other threads and only if available
add X11 safe flag, not sure what happen on windows
2016-03-24 23:06:44 +01:00
Kamil Sopko
78854f7fe0 fix ordering in naming arguments and help
add commands TclCommandAddPolygon(add_poly, add_polygon) and TclCommandAddPolyline(add_polyline)

implement add_polyline in camlib.py
2016-03-17 12:14:12 +01:00
Kamil Sopko
a827e184b7 rename del_polygon to subtract_polygon
correctly  modify current  geometry and  dont leave it as path
fix shellcommands  to follow  new names
tweak  geocutout to be able cut 8  gaps
2016-02-23 00:23:27 +01:00
Kamil Sopko
cf51e4ce2c implement del_polygon from geometry 2016-02-20 10:56:32 +01:00
Marius Stanciu
71a81173bd camlib.py edited online with Bitbucket; removed the paranthesis around lambda function as it was making an tuple which it was not the intention. 2016-02-16 21:59:54 +00:00
Marius Stanciu
1be364d065 Issue #188: Adopted the solution suggested by JP to not use the operator module when performing the sorting on exobj,tools and use instead the lambda function. 2016-02-16 23:25:58 +02:00
Marius Stanciu
1a7e001a66 Added spaces after '#' in the comments 2016-02-16 22:53:01 +02:00
Marius Stanciu
cfa078a1e5 camlib.py (edited a comment) edited online with Bitbucket 2016-02-15 22:35:22 +00:00
Marius Stanciu
a35a422bcc This is a implementation of the the sorting of the tools found in Excellon file done in Python language and independent of the UI. There is no need to revert the previous solution as that one will make the sorting visible in GUI. 2016-02-15 23:40:08 +02:00
Marius Stanciu
a7b29065df Solved issue #188: Order of the drill bits in Gcode generation from Excellon file
The tools are ordered by diameter as I found that the tools order in the Excellon file is not always diameter based. There is also a plated / no-plated holes criteria.
The tools in the GUI tool-list are selected all by default.
If the user wants to select only some tools, he should be carefull when selecting the tools as the order of the selection will be the actual order of the tools in G-code.
2016-02-14 07:40:32 +02:00
Juan Pablo Caram
7fd026c254 Fix to Gerber parser, corrects line splitting. Fixes #183. 2015-12-30 10:26:19 -05:00
Juan Pablo Caram
3940408da5 Added non-compliant support for "-" in ApertureMacro names. Temporary fix for #185. 2015-12-29 17:35:43 -05:00
Juan Pablo Caram
ea27748697 Use Decimal for depth calculation. Fixes #130. 2015-12-29 16:34:13 -05:00
Juan Pablo Caram
67ef16e776 SVG: Accept but ignore units in length. 2015-12-20 20:51:33 -05:00
Juan Pablo Caram
d3ed12e5de Added SVG importing support to the GUI menu. See issue #179. 2015-12-18 16:43:47 -05:00
Juan Pablo Caram
fdf809774f Basic support for importing SVG. Via shell only at this time. See issue #179. 2015-12-18 12:49:52 -05:00
Juan Pablo Caram
89f3d6e3e3 Added line number information to status bar message on parse error. 2015-11-30 12:36:03 -05:00
Juan Pablo Caram
05e89b0ec3 Last pass in multi-pass cuts limited to specified z_cut. 2015-11-04 17:27:57 -05:00
Juan Pablo Caram
051b82009d Multiple depth cut functional. 2015-11-01 18:06:20 -05:00
Juan Pablo Caram
616237ea93 Replace exact last point of arc. Fixes #110. 2015-10-31 18:55:32 -04:00
Juan Pablo Caram
8f5cc7a02d Option to override user's defaults. Needed for unit testing. 2015-10-28 12:00:56 -04:00
Thomas Duffin
2c9a307483 Fixes #135
The polygon passed to clear_polygon() is generated using shapely’s buffer() function on line FlatCAMObj.py:1095.

When the margin given to the buffer() function is small, a single Polygon object is returned. If the margin is large enough it causes the polygon to be broken into pieces and a Multipolygon is returned instead. A visualisation of this can be seen in the shapely manual in the object.buffer() section.

The first thing clear_polygon() does is buffer the polygon again to take the tool diameter into account and the Polygon/Multipolygon generated by this is handled further down the function. The buffer() function used to take the tool diameter into account can be called happily on both Polygon and Multipolygon objects so there is no reason to block Multipolygons being passed to clear_polygon().

Therefore simply adding Multipolygon to the acceptable types in the assert statement on line camlib.py:382 fixes this bug and causes no further issues.
2015-10-25 23:14:11 +00:00
Juan Pablo Caram
d22b47f4af Log level back to debug after release. 2015-10-20 20:47:45 -04:00
Juan Pablo Caram
a679883adf RTree now using shapely object's id() instead of __hash__. Fixes 1#163. 2015-10-20 19:53:39 -04:00
Juan Pablo Caram
982ab16f28 Release version 8.4 2015-10-18 19:24:04 -04:00
Juan Pablo Caram
ee684e8101 Further work on multi-pass cuts. 2015-10-11 20:58:21 -04:00
Juan Pablo Caram
d687fb5287 Started multi-pass cuts. 2015-10-04 21:45:19 -04:00
Juan Pablo Caram
b5f428deea Added "interiors" shell command. 2015-10-04 21:25:00 -04:00
Juan Pablo Caram
4110940d49 Minor fix to "millholes" shell docs. Added get_exterior() method to Geometry. 2015-10-04 20:48:06 -04:00
Juan Pablo Caram
1942fe3bed Create polygon for path drawn so far when D03 is encountered. Fixes #150. 2015-10-02 19:09:44 -04:00
Juan Pablo Caram
d8c5d46cd0 Workaround for #152. Check for empty polygons before adding. 2015-09-28 21:25:31 -04:00
Juan Pablo Caram
22119072d3 Cleanup. And fixes #148. 2015-09-11 14:45:08 -04:00
Juan Pablo Caram
6fa0e91875 Fixed #139, Polygon aperture twice as large. 2015-08-29 22:30:58 -04:00
Jørn Sandvik Nilsson
44f5da3326 Added parameter "spindlespeed" to cncjob and drillcncjob. Will generate gcode "M03 S4000" (4000 rpm), or "M03" if omitted. 2015-07-17 09:49:24 +02:00
phdussud
0bf21458c6 Resolve issue 144
Added a test for the new mechanism
Added a gerber test file
2015-06-26 13:42:55 -07:00
phdussud
f5e481d1fa Best effort to generate isolation path cutting on the conventional side 2015-06-20 17:50:02 -07:00
jpcaram
cd39a55696 Support for optional '+' on Gerber numbers. Solvers #142. 2015-06-20 17:29:03 -04:00
phdussud
a8e8b9f0b6 Added S and T to the list of allowed Gcode commands. 2015-06-06 14:14:30 -07:00
jpcaram
31ddb9cf7c Multiple statement per line problem fixed (Issue #125). 2015-04-17 12:46:48 -04:00
Juan Pablo Caram
4ec72bc3f0 Fix for multiple statements per line. Tests pending. 2015-04-16 22:17:06 -04:00
jpcaram
aa951e277b Fixed conflict with PyQt5. Cleanup. Log level back to debug. 2015-03-31 10:41:32 -04:00
Juan Pablo Caram
476f1e5858 Version 8.3 for Windows. 2015-02-22 17:34:57 -05:00
jpcaram
873db32aad Fixed gerber parse error related to extra trace. 2015-02-17 17:54:51 -05:00
Juan Pablo Caram
519df2385f Final 8.2 for Windows. Removed cd into app folder. 2015-02-13 17:39:22 -05:00
Juan Pablo Caram
dda9bb1864 Version 8.2. Log level to WARNING. Removed unused scipy.optimize. 2015-02-13 16:57:42 -05:00
jpcaram
9dec4ff32f Activity shown for CNC Job generation via context manager. 2015-02-13 14:37:54 -05:00
jpcaram
2c699406f7 Activity indicator as context manager when opening files. Opening gerber from File->Open Gerber launches open_gerber in thread. 2015-02-13 14:05:06 -05:00
jpcaram
8da39d54d4 Desctivates canvas callbacks in drawing tool when deactivated. 2015-02-12 17:06:29 -05:00
jpcaram
247901655c Complete tool change sequence for gcode generated from excellon. 2015-02-07 19:32:02 -05:00
jpcaram
41e63c4390 Added paint_connect to standard paint algorithm. Resolves issue #103. 2015-02-07 18:41:29 -05:00
jpcaram
bba4f3a8bb Tool change support for gcode from excellon. Untested. 2015-02-07 13:32:58 -05:00
jpcaram
17a3316ce4 Improved speed in FlatCAMRTreeStorage. 2015-02-06 17:16:11 -05:00
jpcaram
e353413cd3 Disabled "Ok"/"Update Geometry" button after first update. Solves issue #105. 2015-02-05 09:18:54 -05:00
jpcaram
87fdf0a581 Another fixed bug introduced to clear_poly() in previous commit. Added process widget. 2015-01-30 18:10:06 -05:00
jpcaram
f92255b8f9 Fixed bug introduced to clear_poly() in previous commit. 2015-01-30 15:17:57 -05:00
jpcaram
d903356a55 Solved units change problem during parsing (issue #80). 2015-01-30 14:41:56 -05:00
jpcaram
3aa1746b23 Refactored basic painting algorithm to generate FlatCAMRtreeStorage. 2015-01-30 13:47:25 -05:00
jpcaram
4389f173a8 Removed path_join() from painting algorithm as paint_join() should do the trick alone. 2015-01-29 17:22:09 -05:00
jpcaram
c2c7a83855 Seed painting algorithm working with optimizations. 2015-01-29 17:02:06 -05:00
jpcaram
6733ebbfa8 Refactored paint_connect() and path_connect() to receive and return FlatCAMRTreeStorage objects. Updated unittests acordingly. 2015-01-29 15:52:03 -05:00
jpcaram
a1345f0a58 Fixes to path_connect() related to LinearRings. Added test cases. 2015-01-27 18:16:22 -05:00
jpcaram
573581ca80 Fixes to path_connect() and added units tests for it. 2015-01-26 17:52:26 -05:00
jpcaram
6b51f03db2 "Paint connect" functional. Added to seed-based painting and unit-tested. "Path connect" still pending. Disabled. "Path connect" unit test added. 2015-01-25 16:55:22 -05:00
jpcaram
9632d9a98f First write (untested) of paint_connect. 2015-01-22 21:23:10 -05:00
jpcaram
a42c3f6e10 Functional Geometry.path_connect() and added to seed-based painting algorithm. 2015-01-22 18:43:39 -05:00
jpcaram
a7dc9bcc09 Path optimization: Connect adjacent paths. 2015-01-22 18:11:09 -05:00
jpcaram
e5185dd66f Cleanup of camlib.CNCjob. 2015-01-22 17:23:18 -05:00
jpcaram
fd2657a8d7 Solves seed painting problem in issue #102. 2015-01-21 09:50:01 -05:00
Juan Pablo Caram
6361ad3338 Path check. 2015-01-19 17:17:16 -05:00
Juan Pablo Caram
922aa6734d Added python-simplejson line to setup_ubuntu.sh. 2015-01-19 12:41:34 -05:00
Juan Pablo Caram
670dd48127 Added "excellon_zeros" application default. It get propagated to the Excellon class. 2015-01-18 21:10:19 -05:00
Juan Pablo Caram
34a6b60053 Fixed Geometry merging. Solves issue #99. 2015-01-18 20:23:37 -05:00
Juan Pablo Caram
840cfcf9ff Cleanup for 8.1 2015-01-15 15:53:42 -05:00
jpcaram
4c234fcd55 Fixes polygon finding for painting. Function find_polygon made a method of Geometry. Solves Issue #96. 2015-01-14 20:24:37 -05:00