Commit Graph

473 Commits

Author SHA1 Message Date
Marius Stanciu
c0ec3b6546 - Buffer sub-tool in Transform Tool: added the possibility to apply a factor effectively scaling the aperture size thus the copper features sizes
- in Transform Tool adjusted the GUI
2019-12-30 01:18:56 +02:00
Marius Stanciu
58054f71b3 - fixed a minor issue that when saving a project with CNCJob objects, the variable that holds the origin of the CNCJob object was not saved in the project. Added to the serializable objects also the exc_cnc_tools dictionary
- some changes in the File menu
2019-12-29 00:00:15 +02:00
Marius Stanciu
55549c7ba5 - cleaned the Preferences classes and added the signals and signal slots in those classes, removing them from the main app class
- each FlatCAM object found in Preferences has it's own set of controls for changing the colors
- added a set of gray icons to be used when the theme is complete dark (for now it is useful only for MacOS with dark theme because at the moment the app is not styled to dark UI except the plot area)
2019-12-27 03:05:17 +02:00
Marius Stanciu
0e5e3a5227 - some changes related to the fact that the geometry default tool diameter value can be comma separated string of tool diameters 2019-12-24 00:54:45 +02:00
Marius Stanciu
b1b140634b - in Tool Transform added a new feature named 'Buffer'. For Geometry and Gerber objects will create (and replace) a geometry at a distance from the original geometry and for Excellon will adjust the Tool diameters 2019-12-23 22:59:01 +02:00
Marius Stanciu
0e3a9f0795 - more mods to generate_from_geometry_2() method 2019-12-17 15:11:08 +02:00
Marius Stanciu
82f0c40ff8 - fixed the generate_from_geometry_2() method to use the default values in case the parameters are None 2019-12-17 13:26:09 +02:00
Marius Stanciu
0574f7a039 - fixed the CNCJob geometry created with HPGL preprocessor 2019-12-16 20:32:00 +02:00
Marius Stanciu
6c2d628c6c - fixed the Defaults upgrade overwrting the new version number with the old one
- fixed issue with clear_polygon3() - the one who makes 'lines' and fixed the NCC Tool
2019-12-16 14:52:58 +02:00
Marius Stanciu
7ad091e163 - modified the export_gcode() method and the preprocessors such that the preprocessors now have the information if to include the gcode header
- RELEASE 8.99
2019-12-16 00:12:04 +02:00
Marius Stanciu
6d826fa143 - added option to save objects as PDF files in File -> Save menu 2019-12-12 03:18:52 +02:00
Marius Stanciu
a664f21dc1 - started work in HPGL2 parser 2019-12-11 14:32:01 +02:00
Marius Stanciu
5f739d1baf - if extracut_length is zero then the extracut will cut up until the first point in path no matter what the distance is 2019-12-10 23:57:00 +02:00
Marius Stanciu
621ac9a598 - fixed a cummulative error when using the Tool Offset for Excellon objects
- added the dipaly of the real depth of cut (cut z + offset_z) for CNC tools made out of an Excellon object
2019-12-10 16:00:37 +02:00
Marius Stanciu
932f8143cd - if extracut_length is zero then the extracut will cut up until the first point in path no matter what the distance is 2019-12-10 05:33:32 +02:00
Marius Stanciu
511ebc274f - now extracut option in the Geometry Object will recut as many points as many they are within the specified re-cut length 2019-12-10 05:28:02 +02:00
Marius Stanciu
cee8c223a8 - small changes in the Geometry UI 2019-12-10 04:14:58 +02:00
Marius Stanciu
2ca509ca04 - few bugs solved regarding the newly created empty objects 2019-12-06 23:00:43 +02:00
Marius Stanciu
23a1388e98 - small changes in parse_gcode() 2019-12-06 18:45:13 +02:00
Marius Stanciu
bb192eb679 - in Properties Tool added more information's regarding the Excellon tools, about travelled distance and job time; fixed issues when doing Properties on the CNCjob objects
- TODO: I need to solve the mess in units conversion: it's too convoluted
2019-12-06 01:20:33 +02:00
Marius Stanciu
0d0f872244 - application wide change: introduced the precision parameters in Edit -> Preferences who will control how many decimals to use in the app parameters 2019-12-05 15:18:54 +02:00
Marius Stanciu
80dcd3805a - improvements in Importing SVG as Gerber - added an automatic source generation (it is not infallible)
- a hack to import correctly the QRCode exported as SVG from FlatCAM
2019-12-02 20:03:27 +02:00
Marius Stanciu
462e9b4bd8 - fixed issue #343; updated the Image Tool 2019-12-02 16:40:59 +02:00
Marius Stanciu
d5a9e0bb5a - In Gerber isolation changed the UI
- in Gerber isolation added the option to selectively isolate only certain polygons
2019-11-25 16:52:37 +02:00
Marius Stanciu
aac4fd75ca - small fixes 2019-11-24 04:21:18 +02:00
Marius Stanciu
d03428f860 - made sure that the units are read from the self.defaults and not from the GUI
- added Robber Bar option to Copper Thieving Tool
2019-11-24 00:31:41 +02:00
Marius Stanciu
70d123306c - in Tools Database added a contextual menu to add/copy/delete tool; CTRL+C, DEL keys work too; key T for adding a tool is now only partially working
- in Tools Database made the status bar messages show when adding/copying/deleting tools in DB
- changed all Except statements that were single to except Exception as recommended in some PEP
- renamed the Copper Fill Tool to Copper Thieving Tool as this is a more appropriate name; started to add ability for more types of copper thieving besides solid
- fixed some issues recently introduced in ParseSVG
- updated POT file
2019-11-11 02:35:42 +02:00
Marius Stanciu
14917456ab - added a new setting named 'Allow Machinist Unsafe Settings' that will allow the Travel Z and Cut Z to take both positive and negative values 2019-11-05 15:12:10 +02:00
Marius Stanciu
849bcded4c - updated the UI in Geometry UI
- optimized the order of the defaults storage declaration and the update of the Preferences GUI from the defaults
2019-11-05 01:01:52 +02:00
Marius Stanciu
120e866a01 - working on the Calibrate Excellon Tool
- converted Excellon Editor to usage of SpinBoxes
2019-10-28 23:14:40 +02:00
Marius Stanciu
2bde43ca3f - added a new FlatCAM Tool: Copper Fill Tool. It will pour copper into a Gerber filling all empty space with copper, at a clearance distance of the Gerber features 2019-10-25 19:52:11 +03:00
Marius Stanciu
c8a97e69d0 - QRCode Tool - a SVG object is generated and plotted on screen having the QRCode data
- fixed an import error in Distance Tool
2019-10-23 22:53:38 +03:00
Marius Stanciu
46659af432 - finished the update on French Google translation. 2019-10-19 04:45:17 +03:00
Marius Stanciu
1af594403e - fixed SVG export 2019-10-19 01:19:08 +03:00
Marius Stanciu
dfc0b98181 - fixed bug in Panelization Tool for which in case of Excellon objects, the panel kept a reference to the source object which created issues when moving or disabling/enabling the plots
- cleaned up the module imports throughout the app (the TclCommands are not yet verified)
2019-10-16 02:28:18 +03:00
Marius Stanciu
d43ec01cdd - fixed an issue that caused the impossibility to load a GCode file that contained the % symbol even when was loaded in a regular way from the File menu
- re-added the CNC tool diameter entry for the CNCjob object in Selected tab.FCSpinner
- since the CNCjob geometry creation is only useful for graphical purposes and have no impact on the GCode creation I have removed the cascaded union on the GCode geometry therefore speeding up the Gcode display by many factors (perhaps hundreds of times faster)
2019-10-14 22:26:50 +03:00
Marius Stanciu
b00c1018e4 - enhanced the Tool Film adding the Film adjustments and added the GUI in Preferences
- set the GUI layout in Preferences for a new category named Tools 2
2019-10-13 18:13:39 +03:00
Marius Stanciu
78721590e0 - fixed a bug in NCC Tool and start trying to make the App responsive while the NCC tool is run in a non-threaded way
- fixed a GUI bug with the QMenuBar recently introduced
2019-10-12 19:57:05 +03:00
Marius Stanciu
53338a2186 - fixed the Gerber Parser convert units unnecessary usage. The only units conversion should be done when creating the new object, after the parsing 2019-10-12 04:49:50 +03:00
Marius Stanciu
a6b89dbf3a - moved back the ApertureMacro class to camlib for now and made some import changes in the new ParseGerber and ParseExcellon classes
- some changes to the tests - perhaps I will try adding a few tests in the future
2019-10-06 15:56:41 +03:00
Marius Stanciu
b05c71201e - moved the ApertureMacro class from camlib to ParseGerber file 2019-10-06 07:28:13 +03:00
Marius Stanciu
8762b115c9 - made FlatCAMExcellon and FlatCAMGerber into their own files in the flatcamParser folder 2019-10-06 07:14:10 +03:00
Marius Stanciu
ce666e2dbf - added a fix in the Gerber parser to work even when there is no information about zero suppression in the Gerber file
- added new settings in Edit -> Preferences -> Gerber for Gerber Units and Gerber Zeros to be used as defaults in case that those informations are missing from the Gerber file
2019-10-01 15:08:49 +03:00
Marius Stanciu
f47d9cf3d2 - fixed issue #319 where generating a CNCJob from a geometry made with NCC Tool made the app crash
- replaced in FlatCAM Tools and in FLatCAMObj.py  and in Editors all references to hardcoded decimals in string formats for tools with a variable declared in the __init__()
2019-09-28 23:58:23 +03:00
Marius Stanciu
edbb690d1b - in legacy graphic engine, fixed a bug that when deleting an object all objects where deleted
- added a new TclCommand named set_origin which will set the origin for all loaded objects to zero if the -auto True argument is used and to a certain x,y location if the format is: set_origin 5,7
2019-09-23 03:35:32 +03:00
Marius Stanciu
183d4b7966 - some strings changed to be easier for translation
- updated the .POT file and the translation files
- updated and corrected the Romanian and Spanish translations
- updated the .PO files for the rest of the translations, they need to be filled in.
2019-09-22 17:06:22 +03:00
Marius Stanciu
bc6dc3decf - fixed CNCJob and Excellon plotting in legacy graphic engine
- in legacy graphic engine fixed the travel vs cut lines in CNCJob objects
- final fix for key shortcuts with modifier in legacy graphic engine
- refactored some of the code in the legacy graphic engine
2019-09-21 18:26:03 +03:00
Marius Stanciu
01e2755676 - fixed mouse cursor to work for all objects
- fixed event signals to work in both graphic engines: 2D and 3D
2019-09-21 01:10:32 +03:00
Marius Stanciu
011e80c0ce - legacy graphic engine - made the mouse events work (click, release, doubleclick, dragging)
- legacy graphic engine - made the key events work (simple or with modifiers)
- legacy graphic engine - made the mouse cursor work (enabled/disabled, position report); snapping is not moving the cursor yet
2019-09-20 17:25:32 +03:00
Marius Stanciu
26fe1bf5e1 - if FlatCAM is started with the 'quit' or 'exit' as argument it will close immediately and it will close also another instance of FlatCAM that may be running 2019-09-17 14:08:57 +03:00
Marius Stanciu
49ac19a221 - fixed an bug where the pywrapcp name from Google OR-Tools is not defined 2019-09-17 12:47:36 +03:00
Marius Stanciu
f51a3fa038 - made the splashscreen to be showed on the current monitor on systems with multiple monitors
- added a new entry in Menu -> View -> Redraw All which is doing what the name says: redraw all loaded objects
- fixed issue where in TCl Shell the Windows paths were not understood due of backslash symbol understood as escape symbol instead of path separator
- made sure that in for the TclCommand cncjob and for the drillcncjob if one of the args is stated but no value then the value used will be the default one
- made available the TSA algorithm for drill path optimization when the used OS is 64bit. When used OS is 32bit the only available algorithm is TSA
2019-09-16 23:27:02 +03:00
Marius Stanciu
cc3622d4c5 - fixed issue in the Laser postprocessor where the laser was turned on as soon as the GCode started creating an unwanted cut up until the job start 2019-09-16 18:19:46 +03:00
Marius Stanciu
e82bc22caf - more string changes
- updated translation files
2019-09-14 02:14:26 +03:00
Marius Stanciu
f6cd63021e - fixed some of the strings that were left in the old way
- updated the POT file
- updated Romanian language partially
2019-09-13 18:27:00 +03:00
Marius Stanciu
67808466d6 - added control for simplification when loading a Gerber file in Preferences -> Gerber -> Gerber General -> Simplify 2019-09-13 02:08:26 +03:00
Marius Stanciu
462e3ac2ec - made faster the Gerber parser for the case of having a not valid geometry when loading a Gerber file without buffering 2019-09-11 05:19:35 +03:00
Marius Stanciu
91cad9c57d - added the Gerber code as source for the panelized object in Panelize Tool
- whenever a Gerber file is deleted, the mark_shapes objects are deleted also
2019-09-11 04:54:30 +03:00
Marius Stanciu
a348bc8738 - made sure that all the progress counters count to 100%; updated this all over 2019-09-10 16:16:27 +03:00
Marius Stanciu
4114e773dd - when disabling plots, if the selection shape is visible, it will be deleted
- small changes in Tool Panel (eliminating some deepcopy() calls)
- made sure that all the progress counters count to 100%
2019-09-10 16:05:54 +03:00
Marius Stanciu
f658e05240 - added progress and possibility of graceful exit in Panel Tool
- added graceful exit possibility when creating Isolation
2019-09-10 15:08:42 +03:00
Marius Stanciu
5838bd0554 - added progress for the generation of Isolation geometry 2019-09-10 13:45:12 +03:00
Marius Stanciu
59704a6e01 - fixed issue when loading unbuffered a Gerber file that has negative regions
- fixed Panelize Tool to save the aperture geometries into the panel apertures. Also made the tool faster by removing the buffering at the end of the job
- modified FlatCAMEditor's files to the new string format that will allow easier translations
- updated POT file and the Romanian translation
2019-09-10 03:20:14 +03:00
Marius Stanciu
14fe5080ec - modified camlib.py, FlatCAMApp.py and ObjectCollection.py files to the new string format that will allow easier translations
- updated the POT file and the German language
2019-09-09 19:30:43 +03:00
Marius Stanciu
f38dab80e3 - added for NCC Tool and Paint Tool a setting in the Preferences -> Tools --> (NCC Tool/ Paint Tool) that can set a progressive plotting (plot shapes as they are processed) 2019-09-09 05:14:44 +03:00
Marius Stanciu
198e055328 - added a setting in Preferences -> Gerber -> Gerber General named Buffering. If set to 'no' the Gerber objects load a lot more faster (perhaps 10 times faster than when set to 'full') but the visual look is not so great as all the aperture polygons can be seen 2019-09-09 02:41:14 +03:00
Marius Stanciu
28a86aa661 - updated German language translation files
- separated the Plotting thread from the transformations threads
2019-09-07 23:16:20 +03:00
Marius Stanciu
97024ed643 - corrected some issues and made Move Tool to show correctly when it is moving and when it is offsetting the objects position 2019-09-07 18:41:48 +03:00
Marius Stanciu
4cbb5846e3 - all transformation functions show now the progress (rotate, mirror, scale, offset, skew)
- made threaded the Offset and Scale operations found in the Selected tab of the object
2019-09-07 17:08:25 +03:00
Marius Stanciu
5d854a6f1b - added a method to gracefully exit from threaded tasks and implemented it for the NCC Tool and for the Paint Tool
- modified the on_about() function to reflect the reality in 2019 - FlatCAM it is an Open Source contributed software
2019-09-07 09:16:32 +03:00
Marius Stanciu
124abf78b4 - made the objects offset (therefore the Move Tool) show progress display 2019-09-06 23:05:41 +03:00
Marius Stanciu
24e29bda55 - more customization for the progress display in case of NCC Tool, Paint Tool and for the Gcode generation 2019-09-06 22:25:38 +03:00
Marius Stanciu
053ceb3c24 - added progress display in status bar for generating CNCJob from Geometry objects 2019-09-06 16:27:23 +03:00
Marius Stanciu
48e9f4a260 - added progress display in status bar for generating CNCJob from Excellon objects 2019-09-06 15:50:37 +03:00
Marius Stanciu
c1e079474d - small changes 2019-09-06 00:40:07 +03:00
Marius Stanciu
eb7584b649 - hidden the configuration for G91 coordinates due of deciding to leave this development for another time; it require too much refactoring
- added some messages for the G-code generation so the user know in which stage the process is
2019-09-05 20:36:02 +03:00
Marius Stanciu
67f0c657c6 - more messages 2019-09-05 17:53:59 +03:00
Marius Stanciu
76138986bf - fixed issue with loading files at start-up
- fixed issue with generating bounding box geometry for CNCJob objects
- added some more infobar messages and log.debug
- increased the priority for the worker tasks
2019-09-05 17:38:45 +03:00
Marius Stanciu
a2a3f1c1ed - added support for G91 coordinates
- working in plotting the CNCjob generated with G91 coordinates
2019-09-04 17:41:17 +03:00
Marius Stanciu
28e31eb312 - started to work on support for G91 in Gcode (relative coordinates) 2019-09-04 09:38:29 +03:00
Marius Stanciu
d909b98130 - fixed bug in camblib.clear_polygon3() which caused that some copper clearing / paintings were not complete (some polygons were not processed) when the Straight Lines method was used
- some changes in NCC Tools regarding of the clearing itself
2019-09-03 23:15:29 +03:00
Marius Stanciu
4d9ff1c134 - fixed an issue when multi depth step is larger than the depth of cut 2019-09-02 00:35:52 +03:00
Marius Stanciu
ba1e0bc94b - fixed Tcl Command CncJob
- fixed crash due of Properties Tool trying to have a convex hull area on FlatCAMCNCJob objects which is not possible due of their nature
- modified Tcl Command SubtractRectangle
- fixed and modernized the Tcl Command Scale to be able to scale on X axis or on Y axis or on both and having as scale reference either the (0, 0) point or the minimum point of the bounding box or the center of the bounding box.
- fixed and modernized the Tcl Command Skew
2019-08-26 00:40:35 +03:00
Marius Stanciu
eedfb56bf5 - fixed minor issues 2019-08-25 21:19:03 +03:00
Marius Stanciu
883e1ca837 - fixed bug in Excellon parser for the Excellon files that do not put the type of zero suppression they use in the file (like DipTrace eCAD) 2019-08-21 15:14:35 +03:00
Marius Stanciu
97e262e47c - changed some debug messages in camlib.py and in FlatCAMObj.py 2019-08-21 15:05:50 +03:00
Marius Stanciu
b20203eace - moved the initialization of the FlatCAM editors after a read of the default values. If I don't do this then only at the first start of the application the Editors are not functional as the Editor objects are most likely destroyed
- fixed bug in FlatCAM editors that caused the shapes to be drawn without resolution when the app units where INCH
- modified the transformation functions in all classes in camlib.py and FlatCAMObj.py to work with empty geometries
2019-08-17 18:47:41 +03:00
Marius Stanciu
9205dd61f8 - fixed error when creating CNCJob due of having the annotations disabled from preferences but the plot2() function from camlib.CNCJob class still performed operations who yielded TypeError exceptions 2019-08-17 15:11:50 +03:00
Marius Stanciu
0131fb7700 - fixed error when creating CNCJob due of having the annotations disabled from preferences but the plot2() function from camlib.CNCJob class still performed operations who yielded TypeError exceptions 2019-08-17 06:12:27 +03:00
Marius Stanciu
bc6b2666cd - added estimated time of routing for the CNCJob and added travelled distance parameter for geometry, too 2019-08-17 06:02:20 +03:00
Marius Stanciu
eb385c1b28 - made sure that if multi depth is choosed when creating GCode then if the multidepth is more than the depth of cut only one cut is made (to the depth of cut) 2019-08-16 16:54:47 +03:00
Marius Stanciu
c886e3300c - added the Slot Type parameter for exporting Excellon in Edit -> Preferences -> Excellon -> Export Excellon. Now the Excellon object can be exported also with drilled slot command G85
- fixed bug in Excellon export when there are no zero suppression (coordinates with decimals)
2019-08-16 00:44:04 +03:00
Marius Stanciu
04bc1ba013 - fixed bug in camlib.Gerber.parse_lines() Gerber parser where for Allegro Gerber files the Gerber units were incorrectly detected 2019-08-12 23:27:14 +03:00
Marius Stanciu
fd104eee55 - done regression to solve the bug with multiple passes cutting from the copper features (I should remember not to make mods here)
- if 'combine' is checked in Gerber isolation but there is only one pass, the resulting geometry will still be single geo
- the 'passes' entry was changed to a IntSpinner so it will allow passes to be entered only in range (1, 999) - it will not allow entry of 0 which may create some issues
2019-08-12 00:28:46 +03:00
Marius Stanciu
cf8a277825 - trying to fix reported bugs 2019-08-11 02:18:32 +03:00
Marius Stanciu
89717642ed - fixed bug that created a choppy geometry for CNCJob when working in INCH
- fixed bug that did not asked the user to save the preferences after importing a new set of preferences, after the user is trying to close the Preferences tab window
2019-08-10 11:46:23 +03:00
Marius Stanciu
fd948cc2c8 - replaced setFixedWidth calls with setMinimumWidth
- recoded the camlib.Geometry.isolation_geometry() function
2019-08-07 15:05:33 +03:00
Marius Stanciu
5a141ad115 - fixed issue in the isolation function, if the isolation can't be done there will be generated no Geometry object 2019-08-06 03:29:43 +03:00
Marius Stanciu
afdff59aff - made sure that if using an negative Gerber isolation diameter, the resulting Geometry object will use a tool with positive diameter
- fixed bug that when isolating a Gerber file made out of a single polygon, an Recurrsion Exception was issued together with inability to create tbe isolation
2019-08-05 01:02:19 +03:00
Marius Stanciu
c6e3176ac3 - in Basic mode, the tool type column is no longer hidden as it may create issues when using an painted geometry
- some PEP8 clean-up in FlatCAMGui.py
2019-07-29 00:35:59 +03:00