Commit Graph

523 Commits

Author SHA1 Message Date
Marius Stanciu 2eecb20e95 - remade file names in the app
- fixed the issue with factory_defaults being saved every time the app start
- fixed the preferences not being saved to a file when the Save button is pressed in Edit -> Preferences
- fixed and updated the Transform Tools in the Editors
2020-06-03 20:35:59 +03:00
Marius Stanciu 89d2de48da - added a new feature for Gerber parsing: if the NO buffering is chosen in the Gerber Advanced Preferences there is now a checkbox to activate delayed buffering which will do the buffering in background allowing the user to work in between. I hope that this can be useful in case of large Gerber files. 2020-06-03 04:02:04 +03:00
Marius Stanciu f5c84fdc49 - maintenance_2 2020-06-02 18:29:45 +03:00
Marius 5abb7866d8 - maintenance_1 2020-06-02 18:24:44 +03:00
Marius Stanciu 54407f6e50 - made Progressive plotting work in Isolation Tool
- fix an issue with progressive plotted shapes not being deleted on the end of the job
2020-06-01 20:37:31 +03:00
Marius Stanciu 8e687c5054 - fixed some issues related to using the new Numerical... GUI elements 2020-05-28 04:22:46 +03:00
Marius Stanciu c27a2d29e7 - all tuple entries in the Preferences UI are now protected against letter entry
- all entries in the Preferences UI that have numerical entry are protected now against letters
- cleaned the Preferences UI in the Gerber area
2020-05-27 00:27:10 +03:00
Marius Stanciu 2623bb0a65 - updated the Gerber parser such that it will parse correctly Gerber files that have only one solid polygon inside with multiple clear polygons (like those generated by the Invert Tool) 2020-05-25 00:37:54 +03:00
Marius Stanciu 8165c797a4 - changes some icons
- added a new GUI element which is a evaluated LineEdit that accepts only float numbers and /,*,+,-,% chars
- finished the Etch Compensation Tool
2020-05-24 04:22:49 +03:00
Marius Stanciu 2e8d5b3b96 - added the Exclusion zones processing to Geometry GCode generation 2020-05-23 04:32:57 +03:00
Marius Stanciu 51c9023bbe - added the Exclusion zones processing to Excellon GCode generation
- fixed a non frequent plotting problem for CNCJob objects made out of Excellon objects
2020-05-21 21:49:48 +03:00
Marius Stanciu 9c707e0682 - solved a circular import 2020-05-18 19:09:37 +03:00
Marius Stanciu d61ca10e75 - more refactoring; solved some issues introduced by the refactoring 2020-05-18 18:45:53 +03:00
Marius Stanciu 710a84b442 - more refactoring class names
- moved some of the methods from the App class to the ObjectCollection class
2020-05-18 16:39:26 +03:00
Marius Stanciu ba3f10d355 - renamed classes to have shorter names and grouped 2020-05-18 16:02:41 +03:00
Marius Stanciu 6aacd4d978 - fixed recent issues introduced in Tcl command Drillcncjob
- updated the Cncjob to use the 'endxy' parameter which dictates the x,y position at the end of the job
- now the Tcl commands Drillcncjob and Cncjob can use the toolchangexy and endxy parameters with or without parenthesis (but no spaces allowed)
2020-05-12 13:59:11 +03:00
Marius Stanciu a161354c25 - solved issue with new parameter end_xy when it is None
- solved issue with applying theme and not making the change in the Preferences UI. In Preferences UI the theme radio is always Light (white)
- now the annotations will invert the selected color in the Preferences, when selecting Dark theme
2020-05-06 16:37:48 +03:00
Marius Stanciu ed105eecad - fixed an issue that made the preprocessors comboxes in Preferences not to load and display the saved value fro the file
- some PEP8 corrections
2020-05-05 01:39:01 +03:00
Marius Stanciu f47396a6e5 - added some ToolTips (strings needed to be translated too) for the Cut Z entry in Geometry Object UI that explain why is sometime disabled and reason for it's value (sometime is zero) 2020-05-01 13:26:35 +03:00
Marius Stanciu 9f13b47077 - replaced the testing if instance of FlatCAMObj with testing the obj.kind attribute
- removed the import of the whole FlatCAMApp file only for the usage of GracefulException
- remove the import of FlatCAMApp and used alternate ways
- optimized the imports in some files
- moved the Bookmarksmanager and ToolDB classes into their own files
- solved some bugs that were not so visible in the Editors and HPGL parser
- split the FlatCAMObj file into multiple files located in the flatcamObjects folder and renamed the contained classes with names more suggestive
- updated the Google Translation for the German language
2020-04-27 12:34:56 +03:00
Marius Stanciu 3ec666edbb - replaced the testing if instance of FlatCAMObj with testing the obj.kind attribute
- removed the import of the whole FlatCAMApp file only for the usage of GracefulException
- remove the import of FlatCAMApp and used alternate ways
- optimized the imports in some files
- moved the Bookmarksmanager and ToolDB classes into their own files
- solved some bugs that were not so visible in the Editors and HPGL parser
2020-04-27 10:03:22 +03:00
Marius Stanciu 5a5a18ef43 - some PEP8 changes in Geometry Editor and other minor changes 2020-04-20 00:12:58 +03:00
Marius Stanciu e64c7060e5 - updated DrillCncJob Tcl Command with new parameters and fixed it to work in the new format of the Excellon methods
- changed CncJob Tcl Command parameter 'depthperpass' to a shorter 'dpp'
2020-04-13 23:43:48 +03:00
Marius Stanciu 139baaff64 - fixed issue #386 - multiple Cut operation on a edited object created a crash due of the bounds() method 2020-04-05 21:50:32 +03:00
Marius Stanciu 8a2f5fed05 - working to update the Paint Tool 2020-03-30 23:12:27 +03:00
Marius Stanciu 7415ebc8af - fixed bugs in cncjob TclCommand 2020-03-20 17:12:20 +02:00
Marius Stanciu ffaea546db - fixed issue in "re-cut" feature when combined with multi-depth feature 2020-03-20 16:28:59 +02:00
Marius Stanciu f4f87eb2a7 - updated the "re-cut" feature in Geometry object; now if the re-cut parameter is non zero it will cut half of the entered distance before the isolation end and half of it after the isolation end 2020-03-20 05:04:52 +02:00
Marius Stanciu 98f4a82ad4 - fixed a bug in CNCJob generation out of a Excellon object; the plot failed in case some of the geometry of the CNCJob was invalid 2020-03-13 13:29:59 +02:00
Marius Stanciu 70d3895799 - working on a new type of database 2020-03-01 00:52:24 +02:00
Marius Stanciu c5e4d72db8 - solved issue #381 where there was an error when trying to generate CNCJob out of an Excellon file that have a tool with only slots and no drills
- solved some issues in the preprocessors regarding the newly introduced feature that allow control of the final move X,Y positions
2020-02-28 17:59:15 +02:00
Marius Stanciu 8a6ada1984 - added a new parameter named 'End Move X,Y' for the Geometry and Excellon objects. Adding a tuple of coordinates in this field will control the X,Y position of the final move; not entering a value there will cause not to make an end move 2020-02-26 04:43:54 +02:00
Marius Stanciu f8f337526d - fixed some issues in the Geometry Editor; the jump sigmal disconnect was failing for repeated Editor tool operation 2020-02-19 14:15:06 +02:00
Marius Stanciu 124ba6cdc6 - adapted the GCode generation from Excellon to work with multiple tools data and modified the preprocessors header 2020-02-17 16:35:09 +02:00
Marius Stanciu 1e9232aeaa - updated the Excellon UI to hold data for each tool
- in Excellon UI removed the tools table column for Offset Z and used the UI form parameter
- updated the Excellon Editor to add for each tool a 'data' dictionary
- updated all FlatCAM tools to use the new confirmation message that show if the entered value is within range or outside
2020-02-17 04:43:01 +02:00
Marius Stanciu 25c9a31179 - more work in the new Laser Mode in the Paint Tool 2020-02-15 21:11:06 +02:00
Marius Stanciu e936e0e116 - fixed bug: when deleting a FlatCAMCNCJob with annotations enabled, the annotations are not deleted from canvas;
- fixed bug: creating a new project while a project is open and it contain CNCJob annotations and/or Gerber mark shapes, did not delete them from canvas
2020-02-12 23:28:21 +02:00
Marius Stanciu 82ab0d83d6 - started a new way to clear the Gerber polygons based on the 'follow' lines 2020-02-10 12:27:49 +02:00
Marius Stanciu c004c9082f - optimized the Paint and NCC Tools. When the Lines type of painting/clearing is used, the lines will try to arrange themselves on the direction that the lines length clearing the polygon are bigger 2020-02-10 04:00:34 +02:00
Marius Stanciu d33505096c - modified the Excellon GCode generation so now it can use multi depth drilling; modified the preprocessors to show the number of passes 2020-02-08 22:38:08 +02:00
Marius Stanciu 48029da52b - added a new preprocessor file for using laser on a Marlin motion controller but with the laser connected to one of the FAN pins, named 'Marlin_laser_use_FAN_pin' 2020-02-08 20:38:51 +02:00
Marius Stanciu 9911402c95 - added a new preprocessor for using laser on a Marlin 3D printer named 'Marlin_laser'
- modified the Geometry UI when using laser preprocessors
2020-02-08 18:01:32 +02:00
Marius Stanciu 23a1495c32 - fixed the preprocessors with 'laser' in the name to use the spindle direction set in the Preferences
- increased the upper limit for feedrates by an order of magnitude
2020-02-03 14:46:39 +02:00
Marius Stanciu 6eb96264f1 - fixed some bugs 2020-02-01 04:01:48 +02:00
Marius Stanciu fd0438842d - finished adding in Geometry Editor a TreeWidget with the geometry shapes found in the edited object 2020-01-28 03:59:15 +02:00
Marius Stanciu c9111dac9b - fixed an issue in Gerber parser with detecting old kind of units 2020-01-12 04:05:13 +02:00
Marius Stanciu a9b93cafa1 - improved the circle approximation resolution 2020-01-12 03:28:05 +02:00
Marius Stanciu 84c8588f89 - fixed the Drillcncjob Tcl command by adding an custom self.options key "Tools_in_use" and build it's value, in case it does not exist, to make the toolchange command work
- middle mouse click on closable tabs will close them
2020-01-02 01:50:49 +02:00
Marius Stanciu 3475ae00cd - fixed bug in NCC Tool: after trying to add a tool already in the Tool Table when trying to change the Tool Type the GUI does not change
- final fix for app not quiting when running a script as argument, script that has the quit_flatcam Tcl command; fixed issue #360
- fixed issue #363. The Tcl command drillcncjob does not create tool cut, does not allow creation of gcode, it forces the usage of dwell and dwelltime parameters
2020-01-01 16:13:33 +02:00
Marius Stanciu 841e1f3eeb - fixed Tcl commands that use the overlap parameter to switch from fraction to percentage
- in Transform Tool mae sure that the buffer sub-tool parameters are better explained in tooltips
2019-12-30 22:04:39 +02:00
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