FlatCAM BETA (c) 2019 - by Marius Stanciu
Based on FlatCAM:
2D Computer-Aided PCB Manufacturing by (c) 2014-2016 Juan Pablo Caram
=================================================
CHANGELOG for FlatCAM beta
=================================================
6.11.2020
- in Gerber Editor made the selection multithreaded in a bid to get more performance but until Shapely will start working on vectorized geometry this don't yield too much improvement
- in Gerber Editor, for selection now the intersection of the click point and the geometry is determined for chunks of the original geometry, each chunk gets done in a separate process
- updated the French translation (by Olivier Cornet)
- fixed the new InputDialog widget to set its passed values in the constructor
- in Gerber Editor fixed the Add circular array capability
5.11.2020
- fixed the annotation plotting in the CNCJob object
- created a new InputDialog widget that has the buttons and the context menu translated and replaced the old widget throughout the app
- updated the translation strings
- Turkish language strings updated
- set some policy rules back the way they were for the combo boxes in Geometry Object properties
- updated the Italian translation (by Massimiliano Golfetto)
- finished the Google-translation of the German language strings
4.11.2020
- updated all the translation files
- fixed issue with arrays of items could not be added in the Gerber/Excellon Editor when a translation is used
- fixed issue in the Excellon Editor where the Space key did not toggle the direction of the array of drills
- combed the application strings all over the app and trimmed them up until those starting with letter 'O'
- updated the translation strings
- fixed the UI layout in Excellon Editor and made sure that after changing a value in the Notebook side after the mouse is inside the canvas, the canvas takes the focus allowing the key shortcuts to work
- Turkish language strings updated (by Mehmet Kaya)
- in Gerber Editor added the shortcut key 'Space' to change the direction of the array of pads
- updated all the translation languages. Translated by Google the Spanish, Russian. Romanian translation updated.
- refactored the name of the classes from the Gerber Editor
- added more icons in the Gerber and Excellon Editors for the buttons
3.11.2020
- fixed an issue in Tool Isolation used with tools from the Tools Database: the set offset value was not used
- updated the Tools Database to include all the Geometry keys in the every tool from database
- made sure that the Operation Type values ('Iso', 'Rough' and 'Finish') are not translated as this may create issues all over the application
- fix an older issue that made that only the Custom choice created an effect when changing the Offset in the Geometry Object Tool Table
- trying to optimize Gerber Editor selection with the mouse
- optimized some of the strings
- fixed the project context save functionality to work in the new program configuration
- updated Turkish translation (by Mehmet Kaya)
- in NCC and Isolation Tools, the Validity Checking of the tools is now multithreaded when the Check Validity UI control is checked
- translation strings updated
- fixed an error in Gerber parser, when it encounter a pen-up followed by pen-down move while in a region
- trimmed the application strings
- updated the Italian translation (by Massimiliano Golfetto)
- fixed a series of issues in Gerber Editor tools when the user is trying to use the tools by preselecting a aperture without size (aperture macro)
- moved all the UI stuff out of the Gerber Editor class in its own class
- in the Excellon Editor, added shortcut keys Space and Ctrl+Space for toggling the direction of the Slots, respectively for the Array of Slots
- updated the translation strings to the latest changes in the app strings
2.11.2020
- fixed the Tcl Command AlignDrill
- fixed the Tcl Command AlignDrillGrid
- fixed the Tcl COmmand Panelize, Excellon panelization section
- Fixed an issue in Tool Calibration export_excellon method call
- PEP8 corrections all over the app
- made sure that the object selection will not work while in Editors or in the App Tools
- some minor changes to strings and icons
- in Corner Markers Tool - the new Gerber object will have also follow_geometry
- upgraded the Fiducials Tool to create new objects instead of updating in place the source objects
- upgraded the Copper Thieving Tool to create new objects instead of updating in place the source objects
- in Copper Thieving Tool added a new parameter to filter areas too small to be desired in the copper thieving; added it to Preferences too
- Copper Thieving Tool added a new parameter to select what extra geometry to include in the Pattern Plating Mask; added it to the Preferences
- made a wide change on the spinners GUI ranges: from 9999.9999 all values to 10000.0000
- fixed some late issues in Corner Markers Tool new feature (messages)
- upgraded Calculator Tool and added the new parameter is the Preferences
- updated translation strings
- fixed borderline bug in Gerber editor when the edited Gerber object last aperture is a aperture without size (Aperture Macro)
- improved the loading of a Gerber object in the Gerber Editor
- updated translation strings
1.11.2020
- updated the French Translation (by Olivier Cornet)
- fixed issue in Corner Markers Tool that crashed the app if only one corner was checked
- fixed issue in Isolation Tool where Area Isolation selection was not working
- added to the translatable strings the category labels in the Project Tab and also updated the translations
- fixed a small issue (messages) in Corner Markers Tool
- in Corners Markers Tool added a new feature: possibility to use cross shape markers
- in Corner Marker Tool add new feature: ability to create an Excellon object with drill holes in the corner markes
- in Corner Marker Tool, will no longer update the current object with the marker geometry but create a new Gerber object
- in Join Excellon functionality made sure that the new Combo Exellon object will have copied the data from source objects and not just references, therefore will survive the delete of its parents
- updated Turkish translation (by Mehmet Kaya)
- updated all the languages except Turkish
- in the Tool PDF fixed the creation of Excellon objects to the current Excellon object data structure
31.10.2020
- adapted HPGL importer to work within the new app
- in Gerber Editor fixed an error when using the Distance Tool with "Snap to center" option active: if clicking not on a pad Distance Tool was not working
- updated the Turkish translation strings (by Mehmet Kaya)
- typo fixed in Copper Thieving Tool (due of recent changes)
- fixed issue #457; wrong reference when saving a project
- fixed issue in Excellon Editor that crashed the app if using the Resize Drill feature by clicking in menu/toolbar
- fixed issue in Excellon Editor when using the menu links to Move or Copy Drills/Slots
- updated the strings
- updated the Turkish translation strings (by Mehmet Kaya)
- added a parent to some of the FCInputDialog widgets used in the app such that those pop-up windows will b displayed in the center of the app main window as opposed to the center of the screen
- finished the Google-translation of not translated strings in Russian language
30.10.2020
- fixed the Punch Gerber Tool bug that did not allowed the projects to be loaded or to create a new project. Fixed issue #456
- in Tool Subtract added an option to delete the source objects after a successful operation. Fixed issue #455
- when entering into an Editor now the Project tab is disabled and the Properties tab where the Editor is installed change the text to 'Editor' and the color is set in Red. After exiting the Tab text is reverted to previous state.
- fixed and issue where the Tab color that was changed in various states of the app was reverted back to a default color 'black'. Now it reverts to whatever color had before therefore being compatible with an usage of black theme
- fixed bug that did not allow joining of any object to a Geometry object
- working on solving the lost triggered signals for the Editor Toolbars buttons after changing the layout
- fixed issue #454; trigger signals for Editor Toolbars lost after changing the layout
- updated the translation strings
- more bugs that were introduced by recent changes done to solve other bugs and so on: fixed issues with the Editors and Delete shortcut
- fixed an error in the Gerber Editor
29.10.2020
- added icons in most application Tools
- updated Punch Gerber Tool such that the aperture table is updated upon clicking of the checboxes in Processed Pads Type
- updated Punch Gerber Tool: the Excellon method now takes into consideration the pads choice
- minor change for the FCComboBox UI element by setting its size policy as ignored so it will not expand the notebook when the name of one of its items is very long
- added a protection on opening the tools database UI if the tools DB file is not loaded
- fixed NCC Tool not working with the new changes; the check for not having complete isolation is just a Warning
- fixed the sizePolicy for the FCComboBox widgets in the Preferences that holds the preprocessors
- fixed issue with how the preamble / postamble GCode were inserted into the final GCode
- fixed a small issue in GCode Editor where the signals for the buttons were attached again at each launch of the GCode Editor
- fixed issues in the Tools Database due of recent changes in how the data structure is created
- made sure that the right tools go only to the intended use, in Tools Database otherwise an error status message is created and Tools DB is closed on adding a wrong tool
- fixed the usage for Tools Database in Unix-like OS's; fixed issue #453
- done some modest refactoring
- fixed the Search and Add feature in Geometry Object UI
- fixed issue with preamble not being inserted when used alone
- modified the way that the start GCode is stored such that now the bug in GCode Editor that did not allowed selection of the first tool is now solved
- in Punch Gerber Tool added a column in the apertures table that allow marking of the selected aperture so the user can see what apertures are selected
- improvements in the Punch Gerber Tool aperture markings
- improved the Geometry Object functionality in regards of Tools DB, deleting a tool and adding a tool
- when using the 'T' shortcut key with Properties Tab in focus and populated with the properties of a Geometry Object made the popped up spinner to have the value autoselected
- optimized the UI in Extract Drills Tool
- added some more icons for buttons
28.10.2020
- a series of PEP8 corrections in the FlatCAMGeometry.py
- in Geometry UI finished a very basic way for the Polish feature (this will be upgraded in the future, for now is very rough)
- added some new GUI elements by subclassing some widgets for the dialog pop-ups
- in NCC Tool and Isolation Tool, pressing the shortcut key 'T' will bring the add new tool pop up in which now it is included the button to get the optimal diameter
- in Geometry UI and for Solderpaste Tool replaced the pop up window that is launched when using shortcut key with one that has the context menu translated
- some UI cleanup in the Geometry UI
- updated the translation strings except Russian which could be in the works
- fixed an error that did not allowed for the older preferences to be deleted when installing a different version of the software
- in Legacy Mode fixed a small issue: the status bar icon for the Grid axis was not colored on app start
- added a new string to the translatable strings
- fixed an error that sometime showed in Legacy Mode when moving the mouse outside canvas
- reactivated the shortcut key 'S' in TCL Shell, to close the shell dock when it was open (of course the focus has to be not on the command line)
- brought up-to-date and fixed the Tcl Command Drillcncjob and Cncjob
- fixed Tcl command Isolate to not print messages on message bar in case it is run headless
- fixed Tcl command Copper Clear (NCC)
- fixed Tcl command Paint
- temporary fix for comboboxes not finding the the value in the items when setting themselves with a value by defaulting to the first item in the list
- fix in Tool Subtract where there was a typo
- upgraded the punch Gerber Tool
- updated the Turkish translation strings (by Mehmet Kaya)
- fixed an issue in Isolation Tool when running the app in Basic mode;
- fixed Paint, Isolation and NCC Tools such the translated comboboxes values are now stored as indexes instead of translated words as before
- in Geometry Object made sure that the widgets in the Tool Table gets populated regardless of encountering non-recognizable translated values
- in Paint Tool found a small bug and fixed it
- fixed the Tool Subtractor algorithms
27.10.2020
- created custom classes derived from TextEdit and from LineEdit where I overloaded the context menu and I made all the other classes that were inheriting from them to inherit from those new classes
- minor fix in ToolsDB2UI
- updated the Turkish translation strings (by Mehmet Kaya)
- fixed a bug in conversion of any to Gerber in the section of Excellon conversion
- some PEP8 fixes
- fixed a bug due of recent chagnes in FileMenuHandlers class
- fixed an issue in Tools Database (ToolsDB2 class) that did not made the Tab name in Red color when adding/deleting a tool by using the context menu
- optimized the Tools Database
- small string change
26.10.2020
- added a new menu entry and functionality in the View category: enable all non-selected (shortcut key ALT+3)
- fixed shortcut keys for a number of functionality and in some cases added some new
- fixed the enable/disable all plots functionality
- fixed issue with the app window restored in a shifted position after doing Fullscreen
- fixed issue with coords, delta_coords and status toolbars being disabled when entering fullscreen mode and remaining disabled after restore to normal mode
- changed some of the strings (added a few in the How To section)
- more strings updated
- modified the shortcut strings and the way the shortcuts were listed in the Shortcut keys list such that it will allow a future Shortcuts Manager
- updated all the language strings according to the modifications done above
- fixed a small issue with using the shortcut key for toggling the display of Properties tab
- fixed issue with not updating the model view on the model used in the Project tab when using the shortcut keys 1, 2, 3 which made the color of the tree element not reflect the change in status
- minor string fix; removed the 'Close' menu entry on the context menu for the TCL Shell
- overloaded the context menu in the Tcl Shell and added key shortcuts; the menu entries are now translatable
- overloaded the context menu in several classes from GUI Elements such that the menus are now translated
- fixed a formatting issue in the MainGUI.py file
- updated the translations for the new strings that were added
- another GUI element for which I've overloaded the context menu to make it translatable: _ExpandableTextEdit
- overloaded the context menu for FCSpinner and for FCDoubleSpinner
- added new strings and therefore updated the translation strings
- fixed some minor issues when doing a project save
25.10.2020
- updated the Italian translation (by Massimiliano Golfetto)
- finished the update of the Spanish translation (Google translate)
24.10.2020
- added a new GUI element, an InputDialog made out of FCSliderWithSpinner named FCInputDialogSlider
- replaced the InputDialog in the Opacity pop menu for the objects in the Project Tab with a FCInputDialogSlider
- minor changes
- UI changes in the AppTextEditor and in CNCJob properties tab and in GCoe Editor
- some changes in strings; updated all the translation strings to the latest changes
- finished the Romanian translation
- created two new preprocessors (from 'default' and from 'grbl_11') that will have no toolchange commands regardless of the settings in the software
- updated the Turkish translation (by Mehmet Kaya)
- the methods of the APP class that were the handlers for the File menu are now moved to their own class
- fixed some of the Tcl Commands that depended on the methods refactored above
- reverted the preprocessors with no toolchange commands to the original but removed the M6 toolchange command
- fixed newly introduced issue when doing File -> Print(PDF)
- fixed newly introduced issues with SysTray and Splash
- added ability for the app to detect the current DPI used on the screen; applied this information in the Film Tool when exporting PNG files
- found that Pillow v >= 7.2 breaks Reportlab 3.5.53 (latest version) and creates an error in Film Tool when exporting PNG files. Pillow 7.2 still works.
23.10.2020
- updated Copper Thieving Tool to work with the updated program
- updated Rules Check Tool - Hole Size rule to work with the new data structure for the Excellon objects
- updated Rules Check Tool - added an activity message
- updated some strings, updated the translation strings
- commented the ToolsDB class since it is not used currently
- some minor changes in the AppTextEditor.py file
- removed Hungarian language since it's looking like is no longer being translated
- added a default properties tab which will hold a set of information's about the application
- minor changes in the Properties Tool
- Excellon UI: fixed a small issue with toggling all rows in Tools Table not toggling off and also the milling section in Utilities was not updated
- some refactoring in the keys of the defaults dictionary
- fixed an ambiguity in the Tools Database GUI elements
22.10.2020
- added a message to show if voronoi_diagram method can be used (require Shapely >= 1.8)
- modified behind the scene the UI for Tool Subtract
- modified some strings and updated the translation strings
- in NCC Tool added a check for the validity of the used tools; its only informative
- in NCC Tool done some refactoring
- in NCC Tool fixed a bug when using Rest Machining; optimizations
- in NCC Tool fixed a UI issue
- updated the Turkish translation (by Mehmet Kaya)
- small change in the CNCJob UI by replacing the AL checkbox with a checkable QButton
- disabled the Autolevelling feature in CNCJob due of being not finished and missing also a not-yet-released package: Shapely v 1.8
- added some new strings for translation and updated the translation strings
- in ToolsDB2UI class made the vertical layouts have a preferred minimum dimension as opposed to the previous fixed one
- in Geometry Object made sure that the Tools Table second column is set to Resize to contents
- fixed a bug in Tool PunchGerber when using an Excellon to punch holes in the Gerber apertures
21.10.2020
- in Geometry Object fixed the issue with not using the End X-Y value and also made some other updates here
- in NCC and Paint Tool fixed some issues with missing keys in the tool data dictionary
- In Excellon Object UI fixed the enable/disable for the Milling section according to the Tools Table row that is selected
- In Excellon Object UI fixed the milling geometry generation
- updated the translations strings to the changes in the source code
- some strings changed
- made the Properties checkbox in the Object UI into a checkable button and added to it an icon
- fixed crash on using shortcut for creating a new Document Object
- fixed Cutout Tool to work with the endxy parameter
- added the exclusion parameters for Drilling Tool to the Preferences area
- cascaded_union() method will be deprecated in Shapely 1.8 in favor of unary_union; replaced the usage of cascaded_union with unary_union in all the app
- added some strings to the translatable strings and updated the translation strings
- merged in the Autolevelling branch and made some PEP8 changes to the bilinearInterpolator.py file
- added a button in Gerber UI that will hide/show the bounding box generation and the non-copper region section
- compacted the UI for the 2Sided Tool
- added a button in Excellon UI that will hide/show the milling section
- optimized a bit the UI for Gerber/Excellon/Geometry objects
- optimized FlatCAMObj.add_properties_items() method
- updated the Turkish translation (by Mehmet Kaya)
- added ability to run a callback function with callback_parameters after a new FlatCAM object is created
20.10.2020
- finished to add the Properties data to the Object Properties (former Selected Tab)
19.10.2020
- added a check (and added to Preferences too) for the verification of tools validity in the Isolation Tool
- fixed QrCode Tool
- updated the Turkish translation (by Mehmet Kaya)
18.10.2020
- fixed issue with calling the inform signal in the FlatCAMDefaults.load method
- fixed macro parsing in Gerber files generated by KiCAD 4.99 (KiCAD 5.0)
17.10.2020
- updated Turkish translation (by Mehmet Kaya)
8.10.2020
- small change in the NCC Tool UI
- some strings are changed and therefore the translation strings source are updated
- Isolation Tool - added a check for having a complete isolation
7.10.2020
- working on adding DPI setting for PNG export in Film Tool - update
- finished updating DPI setting feature for PNG export in Film Tool
5.10.2020
- working on adding DPI setting for PNG export in the Film Tool
- finished working in adding DPI settings for PNG export in Film Tool although there are some limitations due of Reportlab
- small change in TclCommandExportSVG
26.09.2020
- the Selected Tab is now Properties Tab for FlatCAM objects
- modified the Properties Tab for various FlatCAM objects preparing the move of Properties Tool data into the Properties Tab
- if the Properties tab is in focus (selected) when a new object is created then it is automatically selected therefore it's properties will be populated
25.09.2020
- minor GUI change in Isolation Tool
24.09.2020
- fixed a bug where end_xy parameter in Drilling Tool was not used
- fixed an issue in Delete All method in the app_Main.py
23.09.2020
- added support for virtual units in SVG parser; warning: it may require the support for units which is not implemented yet
- fixed canvas selection such that when selecting shape fails to be displayed with rounded corners a square selection shape is used
- fixed canvas selection for the case when the selected object is a single line or a line made from multiple segments
22.09.2020
- fixed an error in importing SVG that has a single line
- updated the POT file and the PO/MO files for Turkish language
- working to add virtual units to SVG parser
20.09.2020
- in CNCJob UI Autolevelling: on manual add of probe points, only voronoi diagram is calculated
- in SVG parser: made sure that the minimum number of steps to approximate an arc/circle/bezier is 10
19.09.2020
- removed some brackets in the GRBL laser preprocessor due of GRBL firmware interpreting the first closing bracket as the comment end
3.09.2020
- in CNCJob UI Autolevelling: changed the UI a bit
- added a bilinear interpolation calculation class from: https://github.com/pmav99/interpolation
- in CNCJob UI Autolevelling: made sure that the grid can't have less than 2 rows and 2 columns when using the bilinear interpolation or 1 row and 1 column when using the Voronoi polygons
- in CNCJob UI Autolevelling: prepared the app for bilinear interpolation
- in CNCJob UI Autolevelling: fixes in the UI
2.09.2020
- in CNCJob UI Autolevelling: solved some small errors: when manual adding probe points dragging the mouse with left button pressed created selection rectangles; detection of click inside the solid geometry was failing
- in CNCJob UI Autolevelling: in manual adding of probe points make sure you always add a first probe point in origin
- in CNCJob UI Autolevelling: first added point when manual adding of probe points is auto added in origin before adding first point
- in CNCJob UI Autolevelling: temp geo for adding points in manual mode is now painted in solid black color and with a smaller diameter
- in CNCJob UI Autolevelling - GRBL controller - added a way to save a GRBL height map
- in CNCJob UI Autolevelling: added the UI for choosing the method used for the interpolation used in autolevelling
31.08.2020
- updated the Italian translation files by Massimiliano Golfetto
- in CNCJob UI Autolevelling: made sure that plotting a Voronoi polygon is done only for non-None polygons
- in CNCJob UI Autolevelling: in manual mode, Points can be chosen only when clicking inside the object to be probed
- in CNCJob UI Autolevelling: made sure that plotting a Voronoi polygon is done only for non-None polygons
- in CNCJob UI Autolevelling: remade the probing points generation so they could allow bilinear interpolation
29.08.2020
- 2Sided Tool - fixed newly introduced issues in the Alignment section
- 2Sided Tool - modified the UI such that some of the fields will allow only numbers and some special characters ([,],(,),/,*,,,+,-,%)
- Cutout Tool - working on adding mouse bites for the Freeform cutout
- updated the translation files to the current state of the app
- Cutout Tool - rectangular and freeform cutouts are done in a threaded way
- Cutout Tool - added the Mouse Bites feature for the Rectangular and Freeform cutouts and right now it fails in case of using a Geometry object and Freeform cutout (weird result)
- some changes in camlib due of warnings for future changes in Shapely 2.0
- Cutout Tool - fixed mouse bites feature in case of using a Geometry object and Freeform cutout
- Cutout Tool - can do cutouts on multigeo Geometry objects: it will automatically select the geometry of first tool
- Geometry Editor - fixed exception raised when trying to move and there is no shape to move
- Cutout Tool - finished adding the Mouse Bites feature by adding mouse bites for manual cutouts
28.08.2020
- Paint Tool - upgraded the UI and added the functionality that now adding a new tool is done by first searching the Tools DB for a suitable tool and if fails then it adds an default tool
- Paint Tool - on start will attempt to search in the Tools DB for the default tools and if found will load them from the DB
- NCC Tool - upgraded the UI and added the functionality that now adding a new tool is done by first searching the Tools DB for a suitable tool and if fails then it adds an default tool
- NCC Tool - on start will attempt to search in the Tools DB for the default tools and if found will load them from the DB
- fixes in NCC, Paint and Isolation Tool due of recent changes
- modified the Tools Database and Preferences with the new parameters from CutOut Tool
- changes in Tool Cutout: now on Cutout Tool start the app will look into Tools Database and search for a tool with same diameter (or within the set tolerance) as the one from Preferences and load it if found or load a default tool if not
- Tool Cutout - this Tool can now load tools from Tools Database through buttons in the Cutout Tool
27.08.2020
- fixed the Tcl commands AddCircle, AddPolygon, AddPolyline and AddRectangle to have stored bounds therefore making them movable/selectable on canvas
- in Tool Cutout, when using the Thin Gaps feature, the resulting geometry loose the extra color by toggling tool plot in Geometry UI Tools Table- fixed
- in Tool Cutout fixed manual adding of gaps with thin gaps and plotting
- in Tool Cutout, when using fix gaps made sure that this feature is not activated if the value is zero
- in Tool Cutout: modified the UI in preparation for adding the Mouse Bites feature
- Turkish translation strings were updated by the translator, Mehmet Kaya
- Film Tool - moved the Tool UI in its own class
- in Tools: Image, InvertGerber, Optimal, PcbWizard - moved the Tool UI in its own class
- Tool Isolation - made sure that the app can load from Tools Database only tools marked for Isolation tool
- Tool Isolation - on Tool start it will attempt to load the Preferences set tools by diameter from Tools Database. If it can't find one there it will add a default tool.
- in Tools: Transform, SUb, RulesCheck, DistanceMin, Distance - moved the Tool UI in its own class
- some small fixes
- fixed a borderline issue in CNCJob UI Autolevelling - Voronoi polygons calculations
26.08.2020
- fix for issue nr 2 in case of Drilling Tool. Need to check Isolation Tool, Paint Tool, NCC Tool
- Drilling Tool - UI changes
- Geometry object - now plotting color for an individual tool can be specified
- in CutOut Tool - when using 'thin gaps' option then the cut parts are colored differently than the rest of the geometry in the Geometry object
- solved some deprecation warnings (Shapely module)
- Drilling Tool - when replacing Tools if more than one tool for one diameter is found, the application exit the process and display an error in status bar; some minor fixes
- Isolation Tool - remade the UI
- Isolation Tool - modified the add new tool method to search first in Tools Database for a suitable tool
- Isolation Tool - added ability to find the tool diameter that will guarantee total isolation of the currently selected Gerber object
- NCC Tool - UI change: if the operation is Isolation then some of the tool parameters are disabled
- fixed issue when plotting a CNCJob object with multiple tools and annotations on by plotting annotations after all the tools geometries are plotted
- fixed crash in Properties Tool, when applied on a CNCJob object made out of an Excellon object (fixed issue #444)
- in Properties Tool, for CNCJob objects made out of Excellon objects, added the information's from Tool Data
- in Properties Tool made sure that the set color for the Tree parents depends on the fact if the gray icons set are used (dark theme) or not
- Properties Tool - properties for a Gerber objects has the Tool Data now at the end of the information's
- in Gerber UI done some optimizations
25.08.2020
- in CNCJob UI Autolevelling - made the Voronoi calculations work even in the scenarios that previously did not work; it need a newer version of Shapely, currently I installed the GIT version
- in CNCJob UI Autolevelling - Voronoi polygons are now plotted
- in CNCJob UI Autolevelling - adding manual probe points now show some geometry (circles) for the added points until the adding is finished
- 2Sided Tool - finished the feature that allows picking an Excellon drill hole center as a Point mirror reference
- Tool Align Objects - moved the Tool Ui into its own class
- for Tools: Calculators, Calibration, Copper Thieving, Corners, Fiducials - moved the Tool UI in its own class
24.08.2020
- fixed issues in units conversion
- in CNCJob UI Autolevelling - changed how the probing code is generated and when
- changed some strings in CNCJob UI Autolevelling
- made sure that when doing units conversion keep only the decimals specified in the application decimals setting (should differentiate between values and display?)
- in CNCJob UI Autolevelling - some UI changes
- in CNCJob UI Autolevelling - GRBL controller - added the probing method
- in CNCJob UI Autolevelling - GRBL controller - fixed the send_grbl_command() method
23.08.2020
- in CNCJob UI Autolevelling - autolevelling is made to be not available for cnc code generated with Roland or HPGL preprocessors
- in CNCJob UI Autolevelling - added a save dialog for the probing GCode
- added a new GUI element, a DoubleSlider
- in CNCJob UI Autolevelling - GRBL controller - Control: trying to add DoubleSlider + DoubleSpinner combo controls
- in GUI element FCDoubleSpinner fixed an range issue
21.08.2020
- in CNCJob UI Autolevelling - GRBL controller - Control: added a Origin button; changed the UI to have rounded rectangles
- in CNCJob UI Autolevelling - GRBL controller - Control: added feedrate and step size controls and added them in Preferences
- in CNCJob UI Autolevelling - GRBL controller - added handlers for the Zeroing and for Homing and for Pause/Resume; some UI optimizations
19.08.2020
- in CNCJob UI Autolevelling - sending GCode/GRBL commands is now threaded
- in CNCJob UI Autolevelling - Grbl Connect tab colors will change with the connection status
- in CNCJob UI Autolevelling - GRBL Control and Sender tabs are disabled when the serial port is disconnected
- in CNCJob UI Autolevelling - GRBL Sender - now only a single command can be sent
- in CNCJob UI Autolevelling - GRBL controller - changed the UI
- in CNCJob UI Autolevelling - added some VOronoi poly calculations
18.08.2020
- in Doublesided Tool added some UI for Excellon hole snapping
- in Doublesided Tool cleaned up the UI
- in CNCJob UI Autolevelling - in COntrol section added buttons for Jog an individual axes zeroing
- in CNCJob UI Autolevelling - added handlers for: jogging, reset, sending commands
- in CNCJob UI Autolevelling - added handlers for GRBL report and for getting GRBL parameters
17.08.2020
- in CNCJob UI Autolevelling - GRBL GUI controls are now organized in a tab widget
16.08.2020
- in CNCJob UI Autolevelling - updated the UI with controls for probing GCode parameters and added signals and slots for the UI
- in CNCJob UI Autolevelling - added a mini gcode sender for the GRBL to be able to send the probing GCode and get the height map (I may make a small and light app for that so it does not need to have FlatCAM on the GCode sender PC)
- in CNCJob UI Autolevelling finished the probing GCode generation for MACH/LinuxCNC controllers; this GCode can also be viewed
- in CNCJob UI Autolevelling - Probing GCode has now a header
- in CNCJob UI Autolevelling - Added entries in Preferences
- in CNCJob UI Autolevelling - finished the Import Height Map method
- in CNCJob UI Autolevelling - made autolevelling checkbox state persistent between app restarts
14.08.2020
- in CNCJob UI worked on the UI for the Autolevelling
- in CNCJob UI finished working on adding test points in Grid mode
- in CNCJob UI finished working on adding test points in Manual mode
13.08.2020
- in CNCJob UI added GUI for an eventual Autolevelling feature
- in CNCJob UI updated the GUI for Autolevelling
- Cutout Tool - finished handler for gaps thickness control for the manual gaps
- CNCJob object - working in generating Voronoi diagram for autolevelling
11.08.2020
- CutOut Tool - finished handler for gaps thickness control for the free form cutout
9.08.2020
- small fix so the cx_freeze 6.2 module will work in building a frozen version of FlatCAM
7.08.2020
- all Geometry objects resulted from Isolation Tool are now of type multi-geo
- fixed minor glitch in the Isolation Tool UI
- added an extra check when doing selection on canvas
- fixed an UI problem in Gerber Editor
5.08.2020
- Tool Cutout - more work in gaps thickness control feature
- Tool Cutout - added some icons to buttons
- Tool Cutout - done handling the gaps thickness control for the rectangular cutout; TODO: check all app for the usage of geometry_spindledir and geometry_optimization_type defaults in tools and in options
- Tool Cutout - some work in gaps thickness control for the free form cutout
4.08.2020
- removed the Toolchange Macro feature (in the future it will be replaced by full preprocessor customization)
- modified GUI in Preferences
- Tool Cutout - working in adding gaps thickness control feature; added the UI in the Tool
3.08.2020
- GCode Editor - GCode tool selection when clicking on tool in Tools table is working. The only issue is that the first tool gcode includes the start gcode which confuse the algorithm
- GCode Editor - can not delete objects while in the Editor; can not close the Code Editor Tab except on Editor exit; activated the shortcut keys (for now only CTRL+S is working)
- added a way to remember the old state of Tools toolbar before and after entering an Editor
- GCode Editor - modified the UI
2.08.2020
- GCode Editor - closing the Editor will close also the Code Editor Tab
- cleanup of the CNCJob UI; added a checkbox to signal if any append/prepend gcode was set in Preferences (unchecking it will override and disable the usage of the append/prepend GCode)
- the start Gcode is now stored in the CNCJob object attribute gc_start
- GCode Editor - finished adding the ability to select a row in the Tools table and select the related GCode
- GCode Editor - working on GCode tool selection - not OK
1.08.2020
- Tools Database: added a Cutout Tool Parameters section
- GCode Editor - work in the UI
31.07.2020
- minor work in GCode Editor
29.07.2020
- fixed an exception that was raised in Geometry object when using an Offset
27.07.2020
- Gerber parser - a single move with pen up D2 followed by a pen down D1 at the same location is now treated as a Flash; fixed issue #441
25.07.2020
- Tools Tab is hidden when entering into a Editor and showed on exit (this needs to be remade such that the toolbars state should be restored to whatever it was before entering in the Editor)
22.07.2020
- working on a proper GCode Editor
- wip in the GCode Editor
- added a Laser preprocessor named 'Z_laser' which will change the Z to the Travel Z on each ToolChange event allowing therefore control of the dot size
- by default now a new blank Geometry object created by FlatCAM is of type multigeo
- made sure that optimizations of lines when importing SVG or DXF as lines will not encounter polygons but only LinesStrings or LinearRings, otherwise having crashes
- fixed the import SVG and import DXF, when importing as Geometry to be imported as multigeo tool
- fixed the import SVG and import DXF, the source files will be saved as loaded into the source_file attribute of the resulting object (be it Geometry or Gerber)
- in import SVG and import DXF methods made sure that any polygons that are imported as polygons will survive and only the lines are optimized (changed the behavior of the above made modification)
21.07.2020
- updated the FCRadio class with a method that allow disabling certain options
- the Path optimization options for Excellon and Geometry objects are now available depending on the OS platform used (32bit vs 64bit)
- fixed MultiColor checkbox in Excellon Object to work in Legacy Mode (2D)
- modified the visibility change in Excellon UI to no longer do plot() when doing visibility toggle for one of the tools but only a visibility change in the shapes properties
- Excellon UI in Legacy Mode (2D): fixed the Solid checkbox functionality
- Excellon UI: fixed plot checkbox performing an extra plot function which was not required
- Excellon UI: added a column which will color each row/tool of that column in the color used when checking Multicolor checkbox
- Excellon UI: made sure that when the Multicolor checkbox is unchecked, the color is updated in the Color column of the tools table
- made sure that the Preferences files are deleted on new version install, while the application is in Beta status
- fixed issues with detecting older Preferences files
- fixed some issues in Excellon Editor due of recent changes
- moved the Gerber colors fill in the AppObject.on_object_created() slot and fixed some minor issues here
- made sure there are no issues when plotting the Excellon object in one thread and trying to build the UI in another by using a signal
20.07.2020
- fixed a bug in the FlatCAMGerber.on_mark_cb_click_table() method when moving a Gerber object
- added a way to remember the colors set for the Gerber objects; it will remember the order that they were loaded and set a color previously given
- added a control in Preferences -> Gerber Tab for Gerber colors storage usage
- made sure that the defaults on first install will set the number of workers to half the number of CPU's on the system but no less than 2
18.07.2020
- added some icons in the Code Editor
- replaced some icons in the app
- in Code Editor, when changing text, the Save Code button will change color (text and icon) to red and after save it will revert the color to the default one
- in Code Editor some methods rework
16.07.2020
- added a new method for GCode generation for Geometry objects
- added multiple algorithms for path optimization when generating GCode from an Geometry object beside the original Rtree algorithm: TSA, OR-Tools Basic, OR-Tools metaheuristics
- added controls for Geometry object path optimization in Preferences
15.07.2020
- added icons to some of the push buttons
- Tool Drilling - automatically switch to the Selected Tab after job finished
- added Editor Push buttons in Geometry and CNCJob UI's
- Tool Drilling - brushing through code and solved the report on estimation of execution time
- Tool Drilling - more optimizations regarding of using Toolchange as opposed to not using it
- modified the preprocessors to work with the new properties for Excellon objects
- added to preprocessors information regarding the X,Y position at the end of the job
- Tool Drilling made sure that on Toolchange event after toolchange event the tool feedrate is set
- added some icons to more push buttons inside the app
- a change of layout in Tools Database
- a new icon for Search in DB
14.07.2020
- Drilling Tool - now there is an Excellon preference that control the autoload of tools from the Tools Database
- Tools Database - remade the UI
- made sure that the serializable attributes are added correctly and only once (self.ser_attrs)
- Tools Database - some fixes in the UI (some of the widgets had duplicated names)
- Tools Database - made sure the on save the tools are saved only with the properties that relate to their targeted area of the app
- Tools Database - changes can be done only for one tool at a time
- Tool Database - more changes to the UI
13.07.2020
- fixed a bug in Tools Database: due of not disconnecting the signals it created a race that was concluded into a RuntimeError exception (an dict changed size during iteration)
- Drilling Tool - working in adding tools auto-load from Tools DB
- some updates to the Excellon Object options
- Drilling Tool - manual add from Tools DB is working
- Drilling Tool - now slots are converted to drills if the checkbox is ON for the tool investigated
- Drilling Tool - fixes due of changes in properties (preferences)
- fixed the Drillcncjob TCL command
- Multiple Tools fix - fixed issue with converting slots to drills selection being cleared when toggling all rows by clicking on the header
- Multiple Tools fix - fixes for when having multiple tools selected which created issues in tool tables for many tools
12.07.2020
- when creating a new FlatCAM object, the options will be updated with FlatCAM tools properties that relate to them
- updated the Tools DB class by separating the Tools DB UI into it's own class
- Tools DB - added the parameters for Drilling Tool
11.07.2020
- moved all Excellon Advanced Preferences to Drilling Tool Preferences
- updated Drilling Tool to use the new settings
- updated the Excellon Editor: the default_data dict is populated now on Editor entry
- Excellon Editor: added a new functionality: conversion of slots to drills
- Excellon UI: added a new feature that is grouped in Advanced Settings: a toggle tools table visibility checkbox
- Drilling Tool - minor fixes
- Drilling Tool - changes in UI
- Isolation Tool - modified the UI; preparing to add new feature of polishing at the end of the milling job
- Tool Paint - fixed an issue when launching the tool and an object other than Geometry or Excellon is selected
- Geometry UI - moved the UI for polishing from Isolation Tool to Geometry UI (actually in the future Milling Tool) where it belongs
- Gerber UI - optimized the mark shapes to use only one ShapeCollection
10.07.2020
- Tool Drilling - moved some of the Excellon Preferences related to drilling operation to it's own group Drilling Tool Options
- optimized the CNCJob UI to look like other parts of the app
- in Gerber and Excellon UI added buttons to start the Editor
- in all Editors Selected Tab added a button to Exit the Editor
- Tool Drilling - fixed incorrect annotations in CNCJob objects generated; one drawback is that now each tool (when Toolchange is ON) has it's own annotation order which lead to overlapping in the start point of one tool and the end of previous tool
- Tool Drilling - refactoring methods and optimizations
9.07.2020
- Tool Drilling - remade the methods used to generate GCode from Excellon, to parse the GCode. Now the GCode and GCode_parsed are stored individually for each tool and also they are plotted individually
- Tool Drilling now works - I still need to add the method for converting slots to drill holes
- CNCJob object - now it is possible for CNCJob objects originated from Excellon objects, to toggle the plot for a selection of tools
- working in cleaning up the Excellon UI (Selected Tab)
- finished the clean-up in Excellon UI
- Tool Drilling - added new feature to drill the slots
8.07.2020
- Tool Drilling - working on the UI
- Tool Drilling - added more tool parameters; laying the ground for adding "Drilling Slots" feature
- added as ToolTip for the the Preprocessor combobox items, the actual name of the items
- working on Tool Drilling - remaking the way that the GCode is stored, each tool will store it's own GCode
- working on Tool Drilling
7.07.2020
- updated the Panelize Tool to save the source code for the panelized Excellon objects so it can be saved from the Save project tab context menu entry
- updated the Panelize Tool to save the source code for the panelized Geometry objects as DXF file
- fixed the Panelize Tool so the box object stay as selected on new objects are loaded; any selection shape on canvas is deleted when clicking Panelize
6.07.2020
- Convert Any to Excellon. Finished Gerber object conversion to Excellon. Flash's are converted to drills. Traces in the form of a linear LineString (no changes in direction) are converted to slots.
- Turkish translation updated by Mehmet Kaya for the 8.993 version of strings
2.07.2020
- trying to optimize the resulting geometry in DXF import (and in SVG import) by merging contiguous lines; reduced the lines to about one third of the original
- fixed importing DXF file as Gerber method such that now the resulting Gerber object is correctly created having the geometry attributes like self.apertures and self.follow_geometry
- added Turkish translation - courtesy of Mehmet Kaya
- modified the Gerber export method to take care of the situation where the exported Gerber file is a SVG/DXF file imported as Gerber
- working in making a new functionality: Convert Any to Excellon. Finished Geometry object conversion to Excellon.
30.06.2020
- fixed the SVG parser so the SVG files with no information regarding the 'height' can be opened in FlatCAM; fixed issue #433
29.06.2020
- fixed the DXF parser to work with the latest version of ezdxf module (issues for the ellipse entity and modified attribute name for the knots_values to knots)
- fixed the DXF parser to parse correctly the b-splines by not adding automatically a knot value 0f (0, 0) when the spline is not closed
27.06.2020
- Drilling Tool - UI is working as expected; I will have to propagate the changes to other tools too, to increase likeness between different parts of the app
25.06.2020
- made sure that when trying to view the source but no object is selected, the messages are correct
- wip for Tool Drilling
23.06.2020
- working on Tool Drilling
21.06.2020
- wip
18.06.2020
- fixed bug in the Cutout Tool that did not allowed the manual cutous to be added on a Geometry created in the Tool
- fixed bug in Cutout Tool that made the selection box show in the stage of adding manual gaps
- updated Cutout Tool UI
- Cutout Tool - in manual gap adding there is now an option to automatically turn on the big cursor which could help
- Cutout Tool - fixed errors when trying to add a manual gap without having a geometry object selected in the combobox
- Cutout Tool - made sure that all the paths generated by this tool are contiguous which means that two lines that meet at one end will become only one line therefore reducing unnecessary Z moves
- Panelize Tool - added a new option for the panels of type Geometry named Path Optimization. If the checkbox is checked then all the LineStrings that are overlapped in the resulting multigeo Geometry panel object will keep only one of the paths thus minimizing the tool cuts.
- Panelize Tool - fixed to work for panelizing Excellon objects with the new data structure storing drills and tools in the obj.tools dictionary
- put the bases for a new Tool: Milling Holes Tool
17.06.2020
- added the multi-save capability if multiple CNCJob objects are selected in Project tab but only if all are of type CNCJob
- added fuse tools control in Preferences UI for the Excellon objects: if checked the app will try to see if there are tools with same diameter and merge the drills for those tools; if not the tools will just be added to the new combined Excellon
- modified generate_from_excellon_by_tool() method in camlib.CNCJob() such that when Toolchange option is False, since the drills will be drilled with one tool only, all tools will be optimized together
16.06.2020
- changed the data structure for the Excellon object; modified the Excellon parser and the Excellon object class
- fixed partially the Excellon Editor to work with the new data structure
- fixed Excellon export to work with the new data structure
- fixed all transformations in the Excellon object attributes; still need to fix the App Tools that creates or use Excellon objects
- fixed some problems (typos, missing data) generated by latest changes
- more typos fixed in Excellon parser, slots processing
- fixed Extract Drills Tool to work with the new Excellon data format
- minor fix in App Tools that were updated to have UI in a separate class
- Tool Punch Gerber - updated the UI
- Tool Panelize - updated the UI
- Tool Extract Drills - updated the UI
- Tool QRcode - updated the UI
- Tool SolderPaste - updated the UI
- Tool DblSided - updated the UI
15.06.2020
- in Paint Tool and NCC Tool updated the way the selected tools were processed and made sure that the Tools Table rows are counted only once in the processing
- modified the UI in Paint Tool such that in case of using rest machining the offset will apply for all tools
- Paint Tool - made the rest machining function for the paint single polygon method
- Paint Tool - refurbished the 'rest machining' for the entire tool
- Isolation Tool - fixed to work with selection of tools in the Tool Table (previously it always used all the tools in the Tool Table)
- Tools Database - added a context menu action to Save the changes to the database even if it's not in the Administration mode
- Tool Isolation - fixed a UI minor issue: 'forced rest' checkbox state at startup was always enabled
- started working in moving the Excellon drilling in its own Application Tool
- created a new App Tool named Drilling Tool where I will move the drilling out of the Excellon UI
- working on the Drilling Tool - started to create a new data structure that will hold the Excellon object data
14.06.2020
- made sure that clicking the icons in the status bar works only for the left mouse click
- if clicking the activity icon in the status bar and there is no object selected then the effect will be a plot_all with fit_view
- modified the FCLabel GUI element
- NCC Tool - remade and optimized the copper clearing with rest machining: now it works as expected with a reasonable performance
- fixed issue #428 - Cutout Tool -> Freeform geometry was not generated due of trying to get the bounds of the solid_geometry before it was available
- NCC Tool - now the tools can be reordered (if the order UI radio is set to 'no')
- remade the UI in Paint Tool and the tools in tools table ca now be reordered (if the order UI radio is set to 'no')
- some updates in NCC Tool using code from Paint Tool
- in Paint and NCC Tools made sure that using the key ESCAPE to cancel the tool will not create mouse events issues
- some updates in Tcl commands Paint and CopperClear data dicts
- modified the Isolation Tool UI: now the tools can be reordered (if the order UI radio is set to 'no')
- modified the Paint, NCC and Isolation Tools that when no tools is selected in the Tools Table, a message will show that no Tool is selected and the Geometry generation button is disabled
13.06.2020
- modified the Tools Database such that there is now a way to mark a tool as meant to be used in a certain part of the application; it will disable or enable parts of the parameters of the tool
- updated the FCTable GUI element to work correctly when doing drag&drop for the rows
- updated the Geometry UI to work with the new FCTable
- made the coordinates / delta coordinates / grid toolbar / actions toolbar visibility an option, controlled from the infobar (Status bar) context menu. How it's at app shutdown it's restored at the next application start
- moved the init of activity view in the MainGUI file from the APP.__init__()
- added a new string in the tooltip for the button that adds tool from database specifying the tools database administration is done in the menu
- when opening a new tab in the PlotTabArea the coordinates toolbars will be hidden and shown after the tab is closed
12.06.2020
- NCC Tool optimization - moved the UI in its own class
- NCC Tool optimization - optimized the Tool edit method
- NCC Tool - allow no tool at NCC Tool start (the Preferences have no tool)
- NCC Tool - optimized tool reset code
- NCC Tool - fixed the non-rest copper clearing to work as expected: each tool in the tool table will make it's own copper clearing without interference from the rest of the tools
- Geometry UI - made again the header clickable and first click selects all rows, second click will deselect all rows.
- Geometry UI - minor updates in the layout; moved the warning text to the tooltip of the generate_cncjob button
- Geometry UI - working in making the modification of tool parameters such that if there is a selection of tools the modification in the Tool parameters will be applied to all selected
11.06.2020
- finished tool reordering in Geometry UI
10.06.2020
- fixed bug in the Isolation Tool that in certain cases an empty geometry was present in the solid_geometry which mae the CNCJob object generation to fail. It happen for Gerber objects created in the Gerber Editor
- working on the tool reordering in the Geometry UI
- continue - work in tool reordering in Geometry UI
9.06.2020
- fixed a possible problem in generating bounds value for a solid_geometry that have empty geo elements
- added ability to merge tools when merging Geometry objects if they share the same attributes like: diameter, tool_type or type
- added a control in Edit -> Preferences -> Geometry to control if to merge/fuse tools during Geometry merging
8.06.2020
- minor changes in the way that the tools are installed and connected
- renamed the GeoEditor class/file to AppGeoEditor from FlatCAMGeoEditor making it easier to see in the IDE tree structure
- some refactoring that lead to a working solution when using the Python 3.8 + PyQt 5.15
- more refactoring in the app Editors
- added a protection when trying to edit a Geometry object that have multiple tools but no tool is selected
7.06.2020
- refactoring in camlib.py. Made sure that some conditions are met, if some of the parameters are None then return failure. Modifications in generate_from_geometry_2 and generate_from_multitool_geometry methods
- fixed issue with trying to access GUI from different threads by adding a new signal for printing to shell messages
- fixed a small issue in Gerber file opener filter that did not see the *.TOP extension or *.outline extension
- in Excellon parser added a way to "guestimate" the units if no units are detected in the header. I may need to make it optional in Preferences
- changed the Excellon defaults for zeros suppression to TZ (assumed that most Excellon without units in header will come out of older Eagle) and the Excellon export default is now with coordinates in decimal
- made sure that the message that exclusion areas are deleted is displayed only if there are shapes in the exclusion areas storage
- fixed bug: on first ever usage of FlatCAM beta the last loaded language (alphabetically) is used instead of English (in current state is Russian)
- made sure the the GUI settings are cleared on each new install
- added a new signal that is triggered by change in visibility for the Shell Dock and will change the status of the shell label in the status bar. In this way the label will really be changed each time the shell is toggled
- optimized the GUI in Film Tool
- optimized GUI in Alignment Tool
6.06.2020
- NCC Tool - added a message to warn the user that he needs at least one tool with clearing operation
- added a GUI element in the Preferences to control the possibility to edit with mouse cursor objects in the Project Tab. It is named: "Allow Edit"
5.06.2020
- fixed a small issue in the Panelization Tool that blocked the usage of a Geometry object as panelization reference
- in Tool Calculators fixed an application crash if the user typed letters instead of numbers in the boxes. Now the boxes accept only numbers, dots, comma, spaces and arithmetic operators
- NumericalEvalEntry allow the input of commas now
- Tool Calculators: allowed comma to be used as decimal separator
- changed how the import of svg.path module is done in the ParseSVG.py file
- Tool Isolation - new feature that allow to isolate interiors of polygons (holes in polygons). It is possible that the isolation to be reported as successful (internal limitations) but some interiors to not be isolated. This way the user get to fix the isolation by doing an extra isolation.
- added mouse events disconnect in the quit_application() method
- remade the ReadMe tab
- Tool Isolation - added a GUI element to control if the isolation of a polygon, when done with rest, should be done with the current tool even if its interiors (holes in it) could not be isolated or to be left for the next tool
- updated all the translation strings to the latest changes
- small fix
- fixed the color set for the application objects
- made some reverts regarding the mods in the quit_application() method - problems when freezed
RELEASE 8.993
4.06.2020
- improved the Isolation Tool - rest machining: test if the isolated polygon has interiors (holes) and if those can't be isolated too then mark the polygon as a rest geometry to be isolated with the next tool and so on
- updated the French translation strings - from @micmac (Michel Maciejewski)
3.06.2020
- updated Transform Tool to have a selection of possible references for the transformations that are now selectable in the GUI
- Transform Tool - compacted the UI
- minor issue in Paint Tool
- 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.
- made the delayed Gerber buffering to use multiprocessing but I see not much performance increase
- made sure that the status bar label for preferences is updated also when the Preferences Tab is opened from the Edit -> Preferences
- 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
- updated the language translation strings (and Google_Translated some of them)
- made sure that if the user closes the app with an editor open, before the exit the editor is closed and signals disconnected
- updated the Italian translation - contribution by Golfetto Massimiliano
- made the timing for the object creation to be displayed in the shell
2.06.2020
- Tcl Shell - added a button to delete the content of the active line
- Tcl Command Isolate - fixed to work in the new configuration
- Tcl Command Follow - fixed to work in the new configuration
- Etch Compensation Tool - added a new etchant: alkaline baths
- fixed spacing in the status toolbar icons
- updated the translation files to the latest changes
- modified behavior of object comboboxes in Paint, NCC and CutOut Tools: now if an object is selected in Project Tab and is of the supported kind in the Tool, it will be auto-selected
- fixed some more strings
- updated the Google-translations for the German, Spanish, French
- updated the Romanian translation
- replaced the icon for the Editor in Toolbar (both for the normal icons and for icons in dark theme)
1.06.2020
- made the Distance Tool display the angle in values between 0 and 359.9999 degrees
- changed some strings
- fixed the warning that old preferences found even for new installation
- in Paint Tool fixed the message to select a polygon when using the Selection: Single Polygon being overwritten by the "Grid disabled" message
- more changes in strings throughout the app
- made some minor changes in the GUI of the FlatCAM Tools
- in Tools Database made sure that each new tool added has a unique name
- in AppTool made some methods to be class methods
- reverted the class methods in AppTool
- added a button for Transformations Tool in the lower side (common) of the Object UI
- some other UI changes
- after using Isolation Tool it will switch automatically to the Geometry UI
- in Preferences replaced some widgets with a new one that combine a Slider with a Spinner (from David Robertson)
- in Preferences replaced the widgets that sets colors with a compound one (from David Robertson)
- made Progressive plotting work in Isolation Tool
- fix an issue with progressive plotted shapes not being deleted on the end of the job
- some fixed due of recent changes and some strings changed
- added a validator for the FCColorEntry GUI element such that only the valid chars are accepted
- changed the status bar label to have an icon instead of text
- added a label in status bar that will toggle the Preferences tab
- made some changes such that that the label in status bar for toggling the Preferences Tab will be updated in various cases of closing the tab
- changed colors for the status bar labels and added some of the new icons in the gray version
- remade visibility as threaded - it seems that I can't really squeeze more performance from this
31.05.2020
- structural changes in Preferences from David Robertson
- made last filter selected for open file to be used next time when opening files (for Excellon, GCode and Gerber files, for now)
30.05.2020
- made confirmation messages for the values that are modified not to be printed in the Shell
- Isolation Tool: working on the Rest machining: almost there, perhaps I will use multiprocessing
- Isolation Tool: removed the tools that have empty geometry in case of rest machining
- Isolation Tool: solved some naming issues
- Isolation Tool: updated the tools dict with the common parameters value on isolating
- Fixed a recent change that made the edited Geometry objects in the Geometry Editor not to be plotted after saving changes
- modified the Tool Database such that when a tool shape is selected as 'V' any change in the Vdia or Vangle or CutZ parameters will update the tool diameter value
- In Tool Isolation made sure that the use of ESC key while some processes are active will disconnect the mouse events that may be connected, correctly
- optimized the Gerber UI
- added a Multi-color checkbox for the Geometry UI (will color differently tool geometry when the geometry is multitool)
- added a Multi-color checkbox for the Excellon UI (this way colors for each tool are easier to differentiate especially when the diameter is close)
- made the Shell Dock always show docked
- fixed NCC Tool behavior when selecting tools for Isolation operation
29.05.2020
- fixed the Tool Isolation when using the 'follow' parameter
- in Isolation Tool when the Rest machining is checked the combine parameter is set True automatically because the rest machining concept make sense only when all tools are used together
- some changes in the UI; added in the status bar an icon to control the Shell Dock
- clicking on the activity icon will replot all objects
- optimized UI in Tool Isolation
- overloaded the App inform signal to allow not printing to shell if a second bool parameter is given; modified some GUI messages to use this feature
- fixed the shell status label status on shell dock close from close button
- refactored some methods from App class and moved them to plotcanvas (plotcanvaslegacy) class
- added an label with icon in the status bar, clicking it will toggle (show status) of the X-Y axis on cavnas
- optimized the UI, added to status bar an icon to toggle the axis
- updated the Etch Compensation Tool by adding a new possibility to compensate the lateral etch (manual value)
- updated the Etch Compensation Tool such that the resulting Gerber object will have the apertures attributes ('size', 'width', 'height') updated to the changes
28.05.2020
- made the visibility change (when using the Spacebar key in Project Tab) to be not threaded and to use the enabled property of the ShapesCollection which should be faster
- updated the Tool Database class to have the Isolation Tool data
- Isolation Tool - made to work the adding of tools from database
- fixed some issues related to using the new Numerical... GUI elements
- fixed issues in the Tool Subtract
- remade Tool Subtract to use multiprocessing when processing geometry
- the resulting Gerber file from Tool Subtract has now the attribute source_file populated
27.05.2020
- working on Isolation Tool: made to work the Isolation with multiple tools without rest machining
26.05.2020
- working on Isolation Tool: made to work the tool parameters data to GUI and GUI to data
- Isolation Tool: reworked the GUI
- if there is a Gerber object selected then in Isolation Tool the Gerber object combobox will show that object name as current
- made the Project Tree items not editable by clicking on selected Tree items (the object rename can still be done in the Selected tab)
- working on Isolation Tool: added a Preferences section in Edit -> Preferences and updated their usage within the Isolation tool
- fixed milling drills not plotting the resulting Geometry object
- 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
- minor UI changes
25.05.2020
- updated the GUI fields for the Scale and Offset in the Object UI to allow only numeric values and operators in the list [/,*,+,-], spaces, dots and comma
- modified the Etch Compensation Tool and added conversion utilities from Oz thickenss and mils to microns
- added a Toggle All checkbox to Corner Markers Tool
- added an Icon to the MessageBox that asks for saving if the user try to close the app and there is some unsaved work
- changed and added some icons
- fixed the Shortcuts Tab to reflect the actual current shortcut keys
- started to work on moving the Isolation Routing from the Gerber Object UI to it's own tool
- created a new tool: Isolation Routing Tool: work in progress
- some fixes in NCC Tool
- added a dialog in Menu -> Help -> ReadMe?
24.05.2020
- 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
- fixed unreliable work of Gerber Editor and optimized the App.editor2object() method
- 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)
- fixed a small bug in the Geometry UI that made updating the storage from GUI not to work
- some small changes in Gerber Editor
23.05.2020
- fixed a issue when testing for Exclusion areas overlap over the Geometry object solid_geometry
22.05.2020
- fixed the algorithm for calculating closest points in the Exclusion areas
- added the Exclusion zones processing to Geometry GCode generation
21.05.2020
- added the Exclusion zones processing to Excellon GCode generation
- fixed a non frequent plotting problem for CNCJob objects made out of Excellon objects
19.05.2020
- updated the Italian language (translation incomplete)
- updated all the language strings to the latest changes; updated the POT file
- fixed a possible malfunction in Tool Punch Gerber
18.05.2020
- fixed the PDF Tool when importing as Gerber objects
- moved all the parsing out of the PDF Tool to a new file ParsePDF in the flatcamParsers folder
- trying to fix the pixmap load crash when running a FlatCAMScript
- made the workspace label in the status bar clickable and also added a status bar message on status toggle for workspace
- modified the GUI for Film and Panelize Tools
- moved some of the GUI related methods from FlatCAMApp.App to the flatcamGUI.MainGUI class
- moved Shortcuts Tab creation in it's own class
- renamed classes to have shorter names and grouped
- removed reference to postprocessors and replaced it with preprocessors
- more refactoring class names
- moved some of the methods from the App class to the ObjectCollection class
- moved all the new_object related methods in their own class AppObjects.AppObject
- more refactoring; solved some issues introduced by the refactoring
- solved a circular import
- updated the language translation files to the latest changes (no translation)
- working on a new Tool: Etch Compensation Tool -> installed the tool and created the GUI and class template
- moved more methods out of App_Main class
- added confirmation messages for toggle of HUD, Grid, Grid Snap, Axis
- added icon in status bar for HUD; clicking on it will toggle the HUD (heads up display)
- fixes due of recent changes
- fixed issue #417
17.05.2020
- added new FlatCAM Tool: Corner Markers Tool which will add line markers in the selected corners of the bounding box of the targeted Gerber object
- added a menu entry in Menu -> View for Toggle HUD
- solved the issue with the GUI in the Notebook being expanded too much in width due of the FCDoubleSpinner and FCSpinner sizeHint by setting the sizePolicy to Ignored value
- fixed the workspace being always A4
- added a label in the status bar to show if the workplace is active and what size it is
- now the Edit command (either from Menu Edit ->Edit Object) or through the shortcut key (E key) or project tab context menu works also for the CNCJob objects (will open a text Editor with the GCode)
- fixed the object collection methods that return a list of objects or names of objects such that they have a parameter now to allow adding to those lists (or not) for the objects of type Script or Document. Thus fixing some of the Tcl commands such Set Origin
- reverted the previous changes to object collection; it is better to create empty methods in FlatCAMScript and FlatCAMDocument objects
16.05.2020
- worked on the NCC Tool; added a new clear method named 'Combo' which will go through all methods until the clear is done
- added a Preferences parameter for font size used in HUD
13.05.2020
- updated the French translation strings, made by @micmac (Michel)
12.05.2020
- 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)
- modified the Tcl command Paint "single" parameter. Now it's value is a tuple with the x,y coordinates of the single polygon to be painted.
- the HUD display state is now persistent between app restarts
- updated the Distance Tool such that the right click of the mouse will cancel the tool unless it was a panning move
- modified the PlotCanvasLegacy to decide if there is a mouse drag based on the distance between the press event position and the release event position. If the distance is smaller than a delta distance then it is not a drag move.
11.05.2020
- removed the labels in status bar that display X,Y positions and replaced it with a HUD display on canvas (combo key SHIFT+H) will toggle the display of the HUD
- made the HUD work in Legacy2D mode
- fixed situation when the mouse cursor is outside of the canvas and no therefore returning None values
- remade the Snap Toolbar presence; now it is always active and situated in the Status Bar
- Snap Toolbar is now visible in Fullscreen
- in Fullscreen now the Notebook is available but it will be hidden on Fullscreen launch
- fixed some minor issues (in the HUD added a separating line, missing an icon in toolbars on first launch)
- made sure that the corner snap buttons are shown only in Editors
- changed the HUD color when using Dark theme
- fix issue in Legacy2D graphic mode where the snap function was not accessible when the PlotCanvasLegacy class was created
- modified the HUD in Legacy2D when using Dark Theme to use different colors
- modified how the graphic engine change act in Preferences: now only by clicking Apply(or Save) the change will happen. And there is also a message asking for confirmation
- re-added the position labels in the status bar; they will be useful if HUD is Off (Altium does the same :) so learn from the best)
- fixed the Tcl command Cncjob: there was a problem reported as issue #416. The command did not work due of the dpp parameter
- modified the Tcl command Cncjob such that if some of the parameters are not used then the default values will be used (set with set_sys)
- modified the Tcl command Drillcncjob to use the defaults when some of the parameters are not used
10.05.2020
- fixed the problem with using comma as decimal separator in Grid Snap fields
9.05.2020
- modified the GUI for Exclusion areas; now the shapes are displayed in a Table where they can be selected and deleted. Modification applied for Geometry Objects only (for now).
- fixed an error when converting units, error that acted when in those fields that accept lists of tools only one tool was added
- finished the GUI for exclusion areas both in the Excellon and Geometry Objects. Need to think if to make it visible only in Advanced Mode
8.05.2020
- added a parameter to the FlatCAMDefaults class, whenever a value in the self.defaults dict change it will call a callback function and send to it the modified key
- optimized and fixed some issues in the self.on_toggle_units() method
- the Exclusion areas will have all the orange color but the color of the outline will differ according to the type of the object from where it was added (cosmetic use only as the Exclusion areas will be applied globally)
- removed the Apply theme button in the Preferences; it is now replaced by the more general buttons (either Save or Apply)
- added a confirmation/warning message when applying a new theme
7.05.2020
- added a fix so the app close is now clean, with exit code 0 as set
- added the ability to add exclusion areas from the Excellon object too. Now there is a difference in color to differentiate from which type of object the exclusion areas were added but they all serve the same purpose
6.05.2020
- wip in adding Exclusion areas in Geometry object; each Geometry object has now a storage for shapes (exclusion shapes, should I make them more general?)
- changed the above: too many shapes collections and the performance will go down. Created a class ExclusionAreas that holds all the require properties and the Object UI elements will connect to it's methods. This way I can apply this feature to Excellon object too (who is a special type of Geometry Object)
- handled the New project event and the object deletion (when all objects are deleted then the exclusion areas will be deleted too)
- 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
5.05.2020
- fixed an issue that made the preprocessors combo boxes in Preferences not to load and display the saved value fro the file
- some PEP8 corrections
4.05.2020
- in detachable tabs, Linux loose the reference of the detached tab and on close of the detachable tabs will gave a 'segmentation fault' error. Solved it by not deleting the reference in case of Unix-like systems
- some strings added to translation strings
3.05.2020
- small changes to allow making the x86 installer that is made from a Python 3.5 run FlatCAM beta
- fixed multiple parameter 'outname' in the Tcl commands OpenGerber and OpenGcode
- added more examples in the scripts Examples: isolate and cutout examples
- updated the Italian translation
- updated the translation files
- changed the line endings for Makefile and setup_ubuntu.sh files
- protected a dict in VispyVisuals from issuing errors of keys changed while iterating through it
2.05.2020
- working on a new feature: adding interdiction area for Gcode generation. They will be added in the Geometry Object
2.05.2020
- changed the icons for the grid snap in the status bar
- moved some of the methods from FlatCAMApp.App to flatcamGUI.MainGUI class
- fixed bug in Gerber Editor in which the units conversion wasn't calculated correct
- fixed bug in Gerber Editor in which the QThread that is started on object edit was not stopped at clean up stage
- fixed bug in Gerber Editor that kept all the apertures (including the geometry) of a previously edited object that was not saved after edit
- modified the Cutout Tool to generate multi-geo objects therefore the set geometry parameters will populate the Geometry Object UI
- modified the Panelize Tool to optimize the output from Cutout Tool such that there are no longer overlapping cuts
- some string corrections
- updated the Italian translation done by user @pcb-hobbyst (Golfetto Massimiliano)
- RELEASE 8.992
01.05.2020
- 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)
- solve parenting issues when trying to load a FlatScript from Menu -> File -> Scripting
- added a first new example script and added some files to work with
- added a new parameter that will store the home folder of the FlatCAM installation so we can access the example folder
- added in Gerber editor a method for zoom fit that takes into consideration the current geometry of the edited object
30.04.2020
- made some corrections - due of recent refactoring PyCharm reported errors all over (not correct but it made programming difficult)
- modified the requirements.txt file to force svg.path module to be at least version 4.0
- fixed bug in Tools DB that crashed when a tool is copied
- in Tools Database added a Save Button whose color is changed in Red if the DB was modified and back to default when the DB is saved.
- fixed bug in Tool DB that crashed the app when the Tool Name was modified but there was no tree item (a tool in the list) selected in the Tree widget (list of tools)
- now on tool add and tool copy, the last item (tool, which is the one added) is autoselected; o tool delete always the first item (tool) is selected
- fixed issue #409; problem was due of an assert I used in the handler of the Menu ->Options -> Flip X(Y) menu entry
- activated and updated the editing in the Aperture Table in the Gerber Editor; not all parameters can be edited for every type of aperture
- some strings updated
- fixed a small issue in loading the Projects
29.04.2020
- added a try-except clause in the FlatCAMTranslation.restart_program() when closing the Listener and the thread that runs it to adjust to MacOS usage
- more PEP8 changes
- in PreferencesUI.PreferencesUIManager class I removed the need to pass reference to the App class since it this was available through the 'ui' parameter
- some fixes due to recent refactoring
- minor bugs fixed (not so visible)
- promoted some methods to be static
- set the default layout on first run to the 'minimal' value
- modified the method that detects which tab was closed in the Plot Area so it will no longer depend on it's translated text but on it's objectName set on the QTab creation
- fixed the merge methods for all FlatCAM objects
- fixed a SyntaxError Exception when checking for types of found old preferences
- updated the French, German and Spanish Google translations
- updated the Romanian translation
- fixed units conversion issue
- updated the units conversion method to convert all the convertible parameters in the Preferences
- solved the problem with not closing all the tabs in Plot Area when creating a New Project; the issue was that once a tab was removed the indexes are remade (when tab 0 is removed then tab 1 becomes tab 0 and so on)
- some more strings changed -> updated the translations
- replaced some FormLayouts with Gridlayouts in Tool Cutout.
28.04.2020
- handled a possible situation in App.load_defaults() method
- fixed some issues in FlatCAMDB that may appear in certain scenarios
- some minor changes in the Python version detection
- added a new Tcl Command named SetPath which will set a path to be used by the Tcl commands. Once set will serve as a fallback path in case that the files fail to be opened first time. It will be persistent, saved in preferences.
- added the GUI for the new Open Example in the FIle -> Scripting menu.
- I am modifying all the open ... handlers to add a parameter that will flag if the method was launched from Tcl Shell. This way if the method will fail to open the filename (which include the path) it will try to open from a set fallback path.
- fixed issue #406, bug introduced recently (leftover changes).
- modified the ImportSVG Tcl command name to OpenSVG (open_svg alias)
- added a new Tcl command named OpenDXF (open_dxf alias)
- fixed some errors in Scripting features
- added a new Tcl command named GetPath as a convenient way to get the current default path stored in App.defaults['global_tcl_path']
- added a new package to be installed in Linux to make available the black theme for FlatCAM beta
- moved all the 'share' resources (icons) to the 'assets/resources' folder
- some more fixes to problems generated by latest changes in the open handlers
- modified the make_freezed.py script for the new location of the icons
- added a fix for the ConnectionRefusedError in Linux that is issued when first running after a FlatCAM crash
- in SVG parser modified some imports to be one on each line
- fixed the Tcl Command BBox (leftovers from recent global changes)
- fixed some typos in strings reported by @pcb-hobbyst on FlatCAM forum
- disabled a skip_quotes method in ToolShell.FCShell class so I can now use quotes to enclose file paths with spaces inside
27.04.2020
- finished the moving of all Tcl Shell stuff out of the FlatCAAMApp class to flatcamTools.ToolShell class
- updated the requirements.txt file to request that the Shapely package needs to be at least version 1.7.0 as it is needed in the latest versions of FlatCAM beta
- some TOOD cleanups
- minor changes
- 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
- added support for Hungarian language - no translation for now
- minor changes
- moved the ObjectCollection class to the flatcamObjects folder where it belongs
- Linux Makefile
25.04.2020
- ensured that on Graceful Exit (CTRL+ALT+X key combo) if using Progressive Plotting, the eventual residual plotted lines are deleted. This apply for Tool NCC and Tool Paint
- fixed links in Attributions tab in Help -> About FlatCAM to be able to open external links.
- updated Google Translations for French and Spanish languages
- added some '\n' chars in the Help Tcl command to make the help more readable
24.04.2020
- some PEP changes, some method descriptions updated
- added a placeholder text to 2Sided Tool
- added a new menu entry in the context menu of the Tcl Shell: 'Save Log' which will save the content of the Tcl Shell browser window to a file
- the status bar messages that are echoed in the Tcl Shell will no longer have all text colored but only the identifier
- some message strings cleanup
- added possibility to save as text file the content in Tcl Shell browser window when clicking the Save log context menu entry
- fixed an issue regarding the statusbar pixmap selection
- update the language template strings.pot and updated the Romanian translation
- updated the Readme file with the steps for installation for MacOS
- updated the requirements.txt file
- updated some of the icons in the dark_resources folder (some added, some modified)
- updated Paint Tool for the new Tool DB
- updated the Tcl commands CopperClear and Paint
23.04.2020
- fixed the Tcl Command Help to work as expected; made the text of the commands to be colored in Red color and bold
- added a 'Close' menu entry in the Tcl Shell context menu that will close (hide) the Tcl Shell Dock widget
- on launching the Tcl Shell the Edit line will take focus immediately
- in App.on_mouse_move_over_plot() method no longer will be done a setFocus() on every move, only when it is needed
- added an extra check if old preferences files are detected, a check if the type of the values is the same with the type in the current preferences file. If the type is not the same then the current type is preferred.
- aligned the Tcl commands display when the Help Tcl command is run without parameters
- fixed the Tcl command Plot_All that malfunctioned if there were any FlatCAM scripts (or FlatCAM documents) open
- updated the shortcuts list
22.04.2020
- added a new feature, project auto-saving controlled from Edit -> Preferences -> General -> APP. Preferences -> Enable Auto Save checkbox
- fixed some bugs in the Tcl Commands
- modified the Tcl Commands to be able to use as boolean values keywords with lower case like 'false' instead of expected 'False'
- refactored some of the code in the App class and created a new Tcl Command named Help
20.04.2020
- made the Grid icon in the status bar clickable and it will toggle the snap to grid function
- some mods in the Distance Tool
- added ability to use line width when adding shapes for both Legacy and OpenGL graphic engines
- added the linewidth=2 parameter for the Tool Distance utility geometry
- fixed a selection issue in Legacy graphic mode for single click
- added a CHANGELOG file and changed the README file to contain the installation instructions
- updated the README file
- in Project Tab added tooltips for the loaded objects
- fixed a bug in loading objects by drag&drop into the Project Tab where only one object in the selection was loaded
19.04.2020
- fixed a bug that did not allow to edit GUI elements of type FCDoubleSpinner if it contained the percent symbol
- some small optimizations in the GUI of Cutout Tool
- fixed more issues (new) in NCC Tool
- added a new layout named 'minimal'
- some PEP8 changes in Geometry Editor
15.04.2020
- made sure that the Tcl commands descriptions listed on help command are aligned
14.04.2020
- lightened the hue of the color for 'success' messages printed in the Tcl Shell browser
- modified the extensions all over such the names include also the extension name. For Linux who does not display the extensions in the native FileDialog.
- added descriptions for some of the methods in the app.
- added lightened icons for the dark theme from Leandro Heck
13.04.2020
- added the outname parameter for the geocutout Tcl command
- multiple fixes in the Tcl commands (especially regarding the interchange between True/false and 1/0 values)
- updated the help for all Tcl Commands
- in Tcl Shell, the 'help' command will add also a brief description for each command in the list
- updated the App.plot_all() method giving it the possibility to be run as threaded or not
- updated the Tcl command PlotAll to be able to run threaded or not
- updated the Tcl commands PlotAll and PlotObjects to have a parameter that control if the objects are to be plotted or not on canvas; it serve as a disable/enable
- minor update to the autocomplete dictionary
- the Show Shell in Edit -> Preferences will now toggle the Tcl shell based on the current status of the Tcl Shell
- updated the Tcl command Isolate help for follow parameter
- updated DrillCncJob Tcl Command with new parameters and fixed it to work in the new format of the Excellon methods
- fixed issue #399
- changed CncJob Tcl Command parameter 'depthperpass' to a shorter 'dpp'
11.04.2020
- fixed issue #394 - the saveDialog in Linux did not added the selected extension
- when the Save button is clicked in the Edit -> Preferences the Preferences tab is closed.
10.04.2020
- made sure that the timeout parameter used by some Tcl Commands is seen as an integer in all cases - fixed issue #389
- minor changes in Paint Tool
- minor changes in GUI (Save locations in Menu -> File) and the key shortcuts - fixed issue #391
9.04.2020
- if FlatCAM is not run with Python version >= 3.5 it will exit.
- modified all CTRL+ with Ctrl+ and all ALT+ with Alt+ and all SHIFT+ with Shift+. Fixed issue #387.
- removed some packages from setup_ubuntu.sh as they are not needed in FlatCAM beta
8.4.2020
- fixed the Tcl Command Delete to have an argument -f that will force deletion evading the popup (if the popup is enabled). The sme command without a name now will delete all objects
- fixed the Tcl Command JoinExcellons
- fixed the Tcl Command JoinGeometry
- fixed the Tcl Command Mirror
- updated the Tcl Command Mirror to use a (X,Y) origin parameter. Works if the -box parameter is not used.
- updated the Tcl Command Offset. Now it can use only -x or -y parameter no longer is mandatory to have both. The one that is not present will be assumed 0.0
- updated the Tcl Command Panelize. The -rows and -columns parameters are no longer both required. If one is not present then it is assumed to be zero.
- updated the Tcl Command Scale. THe -origin parameter can now be a tuple of (x,y) coordinates.
- updated the Tcl Command Skew. Now it can use only -x or -y parameter no longer is mandatory to have both. The one that is not present will be assumed 0.0
- updated the help for all the Tcl Commands
6.04.2020
- added key shortcuts (arrow up/down) that will select the objects in the Project tab if the focus is in that tab
- added a minor change to the ListSys Tcl command
- fixed an crash generated when running the Tool Database from the Menu -> Options menu entry
- fixed a bug in handling the UP/DOWN key shortcuts that caused a crash when no object was selected in the Project Tab; also made sure that the said keys are handled only for the Project Tab
- some PEP8 changes and other minor changes
- updated the requirements file
- updated the 2Sided Tool by not allowing the Gerber file to be mirrored without a valid reference and added some placeholder texts
5.04.2020
- made sure that the HDPI scaling attribute is set before the QApplication is started
- made sure that when saving a project, the app will try to update the active object from UI form only if there is an active object
- fix for contextual menus on canvas when using PyQt versions > 5.12.1
- decision on which mouse button to use for panning is done now once when setting the plotcanvas
- fix to work with Python 3.8 (closing the application)
- fixed bug in Gerber parser that allowed loading as Gerber of a file that is not a Gerber
- fixed a bug in extension detection for Gerber files that allowed in the filtered list files that extension *.gb*
- added a processEvents method in the Gerber parser parse_lines() method
- fixed issue #386 - multiple Cut operation on a edited object created a crash due of the bounds() method
- some changes in the Geometry UI
4.04.2020
- fixed the Repeated code parsing in Excellon Parse
1.04.2020
- updated the SVG parser to take into consideration the 'Close' svg element and paths that are made from a single line (we may need to switch to svgpathtools module)
- minor changes to increase compatibility with Python 3.8
- PEP8 changes
30.03.2020
- working to update the Paint Tool
- fixed some issues in Paint Tool
29.03.2020
- modified the new database to accept data from NCC and Paint Tools
- fixed issues in the new database when adding the tool in a Geometry object
- fixed a bug in Geometry object that generated a change of dictionary while iterating over it
- started to add the new database links in the NCC and Paint Tools
- in the new Tools DB added ability to double click on the ID in the tree widget to execute adding a tool from DB
- working in updating NCC Tool
28.03.2020
- finished the new database based on a QTreeWidget
21.03.2020
- fixed Cutout Tool to work with negative values for Margin parameter
20.03.2020
- 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
- added to Paint and NCC Tool a feature that allow polygon area selection when the reference is selected as Area Selection
- in Paint Tool and NCC Tool added ability to use Escape Tool to cancel Area Selection and for Paint Tool to cancel Polygon Selection
- fixed issue in "re-cut" feature when combined with multi-depth feature
- fixed bugs in cncjob TclCommand
13.03.2020
- 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
- fixed Properties Tool due of recent changes to the FCTree widget
12.03.2020
- working on the new database
- fix a bug in the TextInputTool in FlatCAM Geometry Editor that crashed the sw when some fonts are not loaded correctly
4.03.2020
- updated all the FlatCAM Tools and the Gerber UI FCComboBoxes to update the box value with the latest object loaded in the App
- some fixes in the NCC Tool
- modified some strings
02.03.2020
- added property that allow the FCComboBox to update the view with the last item loaded; updated the app to use this property
01.03.2020
- updated the CutOut Tool such that while adding manual gaps, the cutting geometry is updated on-the-fly if the gap size or tool diameter parameters are adjusted
- updated the UI in Geometry Editor
29.02.2020
- compacted the NCC Tool UI by replacing some Radio buttons with Combo boxes due of too many elements
- fixed error in CutOut Tool when trying to create a FreeFrom Cutout out of a Gerber object with the Convex Shape checked
- working on a new type of database
28.02.2020
- some small changes in preprocessors
- 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
25.02.2020
- fixed bug in Gerber parser: it tried to calculate a len() for a single element and not a list - a Gerber generated by Eagle exhibited this
- 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
20.02.2020
- in Paint Tool replaced the Selection radio with a combobox GUI element that is more compact
- in NCC Tool modified the UI
19.02.2020
- fixed some issues in the Geometry Editor; the jump signal disconnect was failing for repeated Editor tool operation
- fixed an issue in Gerber Editor where the multiprocessing pool was reported as closed and an ValueError exception was raised in a certain scneraio
- on Set Origin, Move to Origin and Move actions for Gerber and Excellon objects the source file will be also updated (the export functions will export an updated object)
- in FlatCAMObj.export_gerber() method took into account the possibility of polygons of type 'clear' (the ones found in the Gerber files under the LPC command)
17.02.2020
- 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
- updated all FlatCAM tools to use the new confirmation message for QSpinBoxes, too
- in Excellon UI protected the values that are common parameters from change on tool selection change
- fixed some issues related to the usage of the new confirmation message in FlatCAM Tools
- made sure that the FlatCAM Tools UI initialization is done only in set_tool_ui() method and not in the constructor
- adapted the GCode generation from Excellon to work with multiple tools data and modified the preprocessors header
- when multiple tools are selected in Excellon UI and parameters are modified it will applied to all selected
- in Excellon UI, Paint Tool and NCC Tool finished the "Apply parameters to all tools" functionality
- updated Paint Tool and NCC Tool in the UI functionality
- fixed the Offset spinbox not being controller by offset checkbox in NCC Tool
16.02.2020
- small update to NCC Tool UI
15.02.2020
- in Paint Tool added a new method of painting named Combo who will pass through all the methods until the polygon is cleared
- in Paint Tool attempting to add a new mode suitable for Laser usage
- more work in the new Laser Mode in the Paint Tool
- modified the Paint Tool UI
14.02.2020
- adjusted the UI for Excellon and Geometry objects
- added a new FlatCAM Tool: Gerber Invert Tool. It will invert the copper features in a Gerber file: where is copper there will be empty and where is empty it will be copper
- added the Preferences entries for the Gerber Invert Tool
13.02.2020
- finished Punch Gerber Tool
- minor changes in the Tool Transform and Tool Calculators UI to bring them up2date with the other tools
12.02.2020
- working on fixing a bug in GeometryObject.merge() - FIXED issue #380
- fixed bug: when deleting a FlatCAMCNCJob with annotations enabled, the annotations are not deleted from canvas; fixed issue #379
- 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
11.02.2020
- working on Tool Punch; finished the geometry update with the clear geometry for the case of Excellon method
- working on Tool Punch; finished the geometry update with the clear geometry for the case of Fixed Diameter method
10.02.2020
- 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
- solved bug that made drilling with Marlin preprocessor very slow
- applied the fix for above bug to the TclCommand Drillcncjob too
- started a new way to clear the Gerber polygons based on the 'follow' lines
- some cleanup and bug fixes for the Paint Tool
8.02.2020
- added a new preprocessor for using laser on a Marlin 3D printer named 'Marlin_laser_use_Spindle_pin'
- modified the Geometry UI when using laser preprocessors
- 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'
- modified the Excellon GCode generation so now it can use multi depth drilling; modified the preprocessors to show the number of passes
5.02.2020
- Modified the Distance Tool such that the Measure button can't be clicked while measuring is in progress
- optimized selection of drills in the Excellon Editor
- fixed bugs in multiple selection in Excellon Editor
- fixed selection problems in Gerber Editor
- in Distance Tool, when run in the Excellon or Gerber Editor, added a new option to snap to center of the geometry (drill for Excellon, pad for Gerber)
3.02.2020
- modified Spinbox and DoubleSpinbox Custom UI elements such that they issue a warning status message when the typed value is out of range
- 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
2.02.2020
- fixed issue #376 where the V-Shape parameters from Gerber UI are not transferred to the resulting Geometry object if the 'combine' checkbox is not checked in the Gerber UI
- in Excellon UI, if Basic application mode is selected in Preferences, the Plot column 'P' is hidden now because some inexperienced users mistake this column checkboxes for tool selection
- fixed an error in Gerber Parser; the initial values for current_x, current_y were None but should have been 0.0
- limited the lower limit of angle of V-tip to a value of 1 because 0 makes no sense
- small changes in Gerber UI
- in Geometry Editor make sure that after an edit is finished (correctly or forced) the QTree in the Editor UI is cleared of items
31.01.2020
- added a new functionality, a variation of Set Origin named Move to Origin. It will move a selection of objects to origin such as the bottom left corner of the bounding box that fit them all is in origin.
- fixed some bugs
- fixed a division by zero error: fixed #377
30.01.2020
- remade GUI in Tool Cutout, Tool Align Objects, Tool Panelize
- some changed in the Excellon UI
- some UI changes in the common object UI
29.01.2020
- changes in how the Editor exit is handled
- small fix in some pywin32 imports
- remade the GUI + small fixes in 2Sided Tool
- updated 2Sided Tool
28.01.2020
- some changes in Excellon Editor
27.01.2020
- in Geometry Editor made sure that on final save, for MultiLineString geometry all the connected lines are merged into one LineString to minimize the number of vertical movements in GCode
- more work in Punch Gerber Tool
- the Jump To popup window will now autoselect the LineEdit therefore no more need for an extra click after launching the function
- made some structural changes in Properties Tool
- started to make some changes in Geometry Editor
- finished adding in Geometry Editor a TreeWidget with the geometry shapes found in the edited object
24.02.2020
- small changes to the Toolchange manual preprocessor
- fix for plotting Excellon objects if the color is changed and then the object is moved
- laying the GUI for a new Tool: Punch Gerber Tool which will add holes in the Gerber apertures
- fixed bugs in Minimum Distance Tool
- update in the GUI for the Punch Gerber Tool
22.01.2020
- fixed a bug in the bounding box generation
19.01.2020
- fixed some bugs that are visible in Linux regarding the ArgsThread class: on app close we need to quit the QThread running the ArgsThread class and also close the opened Socket
- make sure that the fixes above apply when rebooting app for theme change or for language change
- fixed and issue that made setting colors for the Gerber file not possible if using a translation
- made possible to set the colors for Excellon objects too
- added to the possible colors the fundamentals: black and white
- in the project context menu for setting colors added the option to set the transparency and also a default option which revert the color to the default value set in the Preferences
17.01.2020
- more changes to Excellon UI
- changes to Geometry UI
- more work in NCC Tool upgrade; each tool now work with it's own set of parameters
- some updates in NCC Tool
- optimized the object envelope generation in the redesigned NCC Tool
16.01.2020
- updated/optimized the GUI in Preferences for Paint Tool and for NCC Tool
- work in Paint Tool to bring it up to date with NCC Tool
- updated the GUI in preferences for Calculator Tool
- a small change in the Excellon UI
- updated the Excellon and Geometry UI to be similar
- put bases for future changes to Excellon Object UI such that each tool will hold it's own parameters
- in ParseExcellon.Excellon the self.tools dict has now a key 'data' which holds a dict with all the default values for Excellon and Geometry
- Excellon and Geometry objects, when started with multiple tools selected, the parameters tool name reflect this situation
- moved default_data data update from Excellon parser to the Excellon object constructor
15.01.2020
- added key shortcuts and toolbar icons for the new tools: Align Object Tool (Alt+A) and Extract Drills (Alt+I)
- added new functionality (key shortcut Shift+J) to locate the corners of the bounding box (and center) in a selected object
- modified the NCC Tool GUI to prepare for accepting a tool from a tool database
- started to modify the Paint Tool to be similar to NCC Tool and to accept a tool from a database
- work in Paint Tool GUI functionality
14.01.2020
- in Extract Drill Tool added a new method of drills extraction. The methods are: fixed diameter, fixed annular ring and proportional
- in Align Objects Tool finished the Single Point method of alignment
- working on the Dual Point option in Align Objects Tool - angle has to be recalculated
- finished Dual Point option in Align Objects Tool
13.01.2020
- fixed a small GUI issue in Excellon UI when Basic mode is active
- started the add of a new Tool: Align Objects Tool which will align (sync) objects of Gerber or Excellon type
- fixed an issue in Gerber parser introduced recently due of changes made to make Gerber files produced by Sprint Layout
- working on the Align Objects Tool
12.01.2020
- improved the circle approximation resolution
- fixed an issue in Gerber parser with detecting old kind of units
- if CTRL key is pressed during app startup the app will start in the Legacy(2D) graphic engine compatibility mode
11.01.2020
- fixed an issue in the Distance Tool
- expanded the Extract Drills Tool to use a particular annular ring for each type of aperture flash (pad)
- Extract Drills Tool: fixed issue with oblong pads and with pads made from aperture macros
- Extract Drills Tool: added controls in Edit -> Preferences
10.02.2020
- working on a new tool: Extract Drills Tool who will create a Excellon object out of the apertures of a Gerber object
- finished the GUI in the Extract Drills Tool
- fixed issue in Film Tool where some parameters names in calls of method export_positive() were not matching the actual parameters name
- finished the Extract Drills Tool
- fixed a small issue in the DoubleSided Tool
8.01.2020
- working in NCC Tool
- selected rows in the Tools Tables will stay colored in blue after loosing focus instead of the default gray
- in NCC Tool the Tool name in the Parameters section will be the Tool ID in the Tool Table
- added an exception catch in case the plotcanvas init failed for the OpenGL graphic engine and warn user about what happened
7.01.2020
- solved issue #368 - when using the Enable/Disable prj context menu entries the plotted status is not updated in the object properties
- updates in NCC Tool
6.01.2020
- working on new NCC Tool
2.01.2020
- started to rework the NCC Tool GUI in preparation for adding a Tool DB feature
- for auto-completer, now clicking an entry in the completer popup will select that entry and insert it
- made available only for Linux and Windows (not OSX) the starting of the thread that checks if another instance of FlatCAM is already running at the launch of FLatCAM
- modified Toggle Workspace function to work in the new Preferences UI configuration
- cleaned the app from progress signal usage since it is not used anymore
1.01.2020
- 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
- in NCC Tool I've added a warning so the user is warned that the NCC margin has to have a value of at least the tool diameter that is doing an iso_op job in the Tool Table
- modified the Drillcncjob and Cncjob Tcl commands to be allowed to work without the 'dwell' and 'toolchange' arguments. If 'dwelltime' argument is present it will be assumed that the 'dwell' is True and the same for 'toolchangez' parameter, if present then 'toolchange' will be assumed to be True, else False
- modified the extracut and multidepth parameters in Cncjob Tcl command like for dwell and toolchange
- added ability for Tcl commands to have optional arguments with None value (meaning missing value). This case should be treated for each Tcl command in execute() method
- 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
30.12.2019
- 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
- fixed some decimals issues in NCC Tool, Paint Tool and Excellon Editor (they were still using the hardcoded values)
- some small updates in the NCC Tool
- changes in the Preferences UI for NCC and Paint Tool in Tool Dia entry field
- fixed Tcl commands that use the overlap parameter to switch from fraction to percentage
- in Transform Tool made sure that the buffer sub-tool parameters are better explained in tooltips
- attempt to make TclCommand quit_flatcam work under Linux
- some fixes in the NCC Tcl command (using the bool() method on some params)
- another attempt to make TclCommand quit_flatcam work under Linux
- another attempt to make TclCommand quit_flatcam work under Linux - use signal to call a hard exit when in Linux
- TclCommand quit_flatcam work under Linux
29.12.2019
- the Apply button text in Preferences is now made red when changes were made and require to be applied
- the Gerber UI is built only once now so the process is lighter on CPU
- the Gerber apertures marking shapes storage is now built only once because the more are built the more sluggish is the interface
- added a new function called by shortcut key combo Ctrl+G when the current widget in Plot Area is an Code Editor. It will jump to the specified line in the text.
- fixed a small bug where the app tried to hide a label that I've removed previously
- in Paint Tool Preferences is allowed to add a list of initial tools separated by comma
- in Geometry Paint Tool fixed the Overlap rate to work between 0 and 99.9999%
28.12.2019
- more updates to the Preferences window and in some other parts of the GUI
- updated the translations (less Russian)
- 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
28.12.2019
- updated all the translations files
- fixed the big mouse cursor in OpenGL(3D) graphic mode to get the set color
- fixed the cursor to have the set color and set cursor width in the Legacy(2D) graphic engine
- in Legacy(2D) graphic mode fixed the cursor toggle when the big cursor is activated
- in Legacy(2D) fixed big mouse cursor to snap to the grid
- RELEASE 8.991
27.12.2019
- updated the POT file and the translation files for German, Spanish and French languages
- fixed some typos
26.12.2019
- modified the ToolDB class and changed some strings
- Preferences classes now have access to the App attributes through app.setup_obj_classes() method
- moved app.setup_obj_classes() upper in the App.__init__()
- added a new Preferences setting allowing to modify the mouse cursor color
- remade the GUI in Preferences -> General grouping the settings in a more clear way
- made available the Jump To function in Excellon Editor
- added a clean_up() method in all the Editor Tools that need it, to be run when aborting using the ESC key
- fixed an error in the Gerber parser; it did not took into consideration the aperture size declared before the beginning of a Gerber region. Detected for Gerber files generated by KiCAD 5.x
- in Panelize Tool made sure that for Gerber objects if one of the apertures is without geometry then it is ignored
- further modifications in Preferences -> General GUI
- further modifications in Preferences -> General GUI - extended the changes
- in Legacy(2D) graphic engine made to work the mouse color change
- theme changing is no longer auto-reboot upon change; it require now to press a button
- 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)
25.12.2019
- fixed an issue in old default file detection and in saving the factory defaults file
- in Preferences window removed the Import/Export Preferences buttons because they are redundant with the entries in the File -> Menu -> Backup. and added a button to Restore Defaults
- when in Basic mode the Tool type of the tool in the Geometry UI Tool Table after isolating a Gerber object is automatically selected as 'C1'
- let the multiprocessing Pool have as many processes as needed
- added a new Preferences setting allowing a custom mouse line width (to make it thicker or thinner)
- changed the extension of the Tool Database file to FlatDB for easy recognition (in the future double clicking such a file might import the new tools in the FC database)
24.12.2019
- edited some icons so they don't contain white background
- fixed an incorrect usage of object in the app.select_objects() method
- fixed a typo in ToolDB.on_tool_add()
23.12.2019
- some fixes in the Legacy(2D) graphic mode regarding the possibility of changing the color of the Gerber objects
- added a method to darken the outline color for Gerber objects when they have the color set
- when Printing as PDF Gerber objects now the rendered color is the print color
- speed up the plotting in OpenGL(3D) graphic mode
- speed up the color setting for Gerber object when using the OpenGL(3D) graphic mode
- setting color for Gerber objects work on a selection of Gerber objects
- ~~when the selection is changed in the Project Tree the selection shape on canvas is deleted~~
- if an object is selected on Project Tree and it does not have the selection shape drawn, first click on canvas over it will draw the selection shape
- 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
- solved issue #355 - when the tool diameter field in the Edit → Preferences → Geometry → Geometry General → Tools → Tool dia is only one the app failed to read it
- solved issue #356 - in Tools DB can not be added more than one tool if a translation is active
- some changes related to the fact that the geometry default tool diameter value can be comma separated string of tool diameters
22.12.2019
- added a new option for the Gerber objects: on the project context menu now can be chosen a color for the selected Gerber object
- fixed issue in Gerber UI where a label was not hidden when in Basic mode
- added the color parameters of the objects to the serializable attributes
- fixed Gerber object color set for Legacy(2D) graphic engine; glitch on the OpenGL(3D) graphic engine
- fixed the above mentioned glitch in the OpenGL(3D) graphic engine when an Gerber object has been set with a color
21.12.2019
- fixed a typo in Distance Tool
20.12.2019
- fixed a rare issue in the generation of non-copper-region geometry started from the Gerber Object UI (selected tab)
- Print function is now printing a PDF file for a selection of objects in the colors from canvas
- added an icon in the infobar that will show more clearly the status of the grid snapping
- in Geometry Object UI (selected tab) when a tool type is changed from no matter what to V-shape, the cut_z value is saved and when the tool type is changed back to something different than V-shape, this saved cut-z value is restored
- fixed re-cut length entry not staying disabled when the re-cut cb is not checked
19.12.2019
- in 2-Sided Tool added a way to calculate the bounding box values for a selection of objects, and also the centroid
- in 2-Sided Tool fixed the Reset Tool button handler to reset the bounds value too; changed a string
- added Preferences values for PDF margins when saving text in Code Editor as PDF
- when clicking Cancel in Preferences now the values are reverted to what they used to be before opening Preferences tab and start changing values
- starting to work to a general Print function; for now it will generate PDF files; currently it works only for one object not for a selection
- added shortcut key Ctrl+P for printing to PDF method
18.12.2019
- added new parameters to improve Gerber parsing
- small optimizations in the Preferences UI
- the Jump To function reference is now saving it's last used value
- added the ability to use the Jump To method in the Gerber Editor
- improved the loading of Config File by using the advanced code editor
- fixed a bug in the new feature 'extra buffering'
- fixed the creation of CNCJob objects out of multigeo Geometry objects (objects with multiple tools)
- optimized the NCC Tool
17.12.2019
- more optimizations in NCC Tool
- optimizations in Paint Tool
- maximum range for Cut Z is now zero to deal with the situation when using V-shape with tip-dia same value with cut width
- modified QValidator in FCDoubleSpinner() GUI element to allow entering the minus sign when the range maximum is set as 0.0; also for positive numbers allowed entering the symbol plus
- made sure that if in Gerber UI the isolation is made with a V-Shape tool then the tool type is automatically updated on the generated Geometry Object
- added ability to save the Source File as PDF (still have to adjust the page size)
- fixed the generate_from_geometry_2() method to use the default values in case the parameters are None
- added ability to save the Source File as PDF - fixed page size and added line breaks
- more mods to generate_from_geometry_2() method
- fixed bug saving the FlatCAM project saying the file is used by another application
- fixed issue #347 - a Gerber generated by Sprint Layout with copper pour ON will not have rendered the copper pour
16.12.2019
- in Geometry Editor added support for Jump To function such as that it works within the Editor Tools themselves. For now it works only in absolute jumps
- modified the Jump To method such that now allows relative jump from the current mouse location
- fixed the Defaults upgrade overwriting the new version number with the old one
- fixed issue with clear_polygon3() - the one who makes 'lines' and fixed the NCC Tool
- some small changes in the GeometryObject.on_tool_add() method
- made sure that in Geometry Editor the self.app.mouse attribute is updated with the current mouse position (x, y)
- updated the preprocessor files
- fixed the HPGL preprocessor
- fixed the CNCJob geometry created with HPGL preprocessor
- fixed GCode generated with HPGL preprocessor to output only integer coordinates
- fixed the HPGL2 import parsing for absolute linear movements
- fixed the line endings for setup_ubuntu.sh
15.12.2019
- fixed a bug that created a crash in special conditions; it's related to the QSettings in FlatCAMGui.py
- added a script to remove the bad profiles from resource pictures. From here: https://stackoverflow.com/questions/22745076/libpng-warning-iccp-known-incorrect-srgb-profile/43415650, link mentioned by @camellan (Andrey Kultyapov)
- prepared the application for usage of dark icons in case of using the dark theme
- updated the languages
- fixed a typo
- fixed layout on first launch of the app
- fixed some issues with the recent preparation for dark icons resource usage
- added a new preprocessor file contributed by Daniel Friderich and added fixes for it
- modified the export_gcode() method and the preprocessors such that the preprocessors now have the information if to include the gcode header
- updated all the translation PO files and the POT file
- RELEASE 8.99
14.12.2019
- finished the strings update in the Google-translated Spanish
- finished the strings update in the Google-translated French
13.12.2019
- HPGL2 import: added support for circles, arcs and 3-point arcs. Everything works only for absolute coordinates.
- removed the .plt extension from Gcode extensions
- some strings updated; update on the Romanian translate
- more strings updated; finished the Romanian translation update
- some work in updating the Spanish Google-translation
- small updates (Google Translate) in Russian and Brazilian-PT languages
12.12.2019
- finished the Calibration Tool
- changed the Scale Entry in Object UI to FCEntry() GUI element in order to allow expressions to be entered. E.g: 1/25.4
- some small changes in the Scale button handler in FlatCAMObj() class
- added option to save objects as PDF files in File -> Save menu
- optimized the GerberObject.clear_plot_apertures() method
- some changes in the ObjectUI and for the Geometry UI
- finished a very rough and limited HPGL2 file import
11.12.2019
- started work in HPGL2 parser
- some more work in Calibration Tool
10.12.2019
- small changes in the Geometry UI
- now extracut option in the Geometry Object will recut as many points as many they are within the specified re-cut length
- if extracut_length is zero then the extracut will cut up until the first point in path no matter what the distance is
- in Gerber isolation, when selection mode is checked, now area selection works too
- in CNCJob UI, now the CNCJob objects made out of Excellon objects will display their CNC tools (drill bits)
- fixed a cumulative error when using the Tool Offset for Excellon objects
- added the display of the real depth of cut (cut z + offset_z) for CNC tools made out of an Excellon object
- for OpenGL graphic mode added a fit_view() execution on canvas initialization
- fixed Excellon scaling the UI values
- replaced the SpindleSpeed entry with a FCSpinner() GUI element; if speed is set to 0 it will amount to None
9.12.2019
- updated the border for fit view on OpenGL graphic mode
- Calibration Tool - added preferences values
- Calibration Tool - more work on it
- reverted this change: "selected object in Project used to ask twice for UI build" because it will not build the UI when a tab is closed for Document object and the object is selected
- fixed issue after Geometry object edit; the GCode made from an edited object did not reflect the changes in the object
- in Object UI, the Scale FCDoubleSpinner will no longer work for Return key press due of issues of unwanted scaling on focusOut event
- in GeometryObject fixed the scale and offset methods to always process the self.solid_geometry
- Calibration Tool - finished the calibrated object creation method
- updated the POT file
- fixed an error in the German PO file
- updated the languages PO files
- some fixes on the app.jump_to() method
- made sure that the ToolFilm will not start saving a file if there are no objects loaded
- some fixes on the app.jump_to() method for the Legacy(2D) graphic mode
8.12.2019
- Calibrate Tool - rearranged the GUI
- in Geometry UI made sure that the Label that points to the Tool parameters show clearly that those parameters apply only for the selected tool
- fixed an small issue in Object UI
- small fixes: selected object in Project used to ask twice for UI build; if scale factor in Object UI is 1 do nothing as there is no point in scaling with a factor of 1
- in Geometry UI added a button that allow updating all the tools in the Tool Table with the current values in the UI form
- updated Tcl commands to make use of either 0 or False for False value or 1 or True for True in case of a parameter with type Bool
7.12.2019
- renamed Calibrate Excellon Tool to a simpler Calibrate Tool
- Calibrate Tool - when generating verification GCode it will always load into an Editor from which it can be edited and/or saved. On save the editor will close.
- updated the CNCJob and Drillcncjob Tcl Commands to use 0 and 1 as values for the parameters that are stated as of bool type, beside the normal keywords of False and True
- Calibrate Tool - working on it
6.12.2019
- fixed the toggle_units() method so now the grid values are accurate to the decimal
- cleaned up the Excellon parser and fixed some bugs (old and new); Excellon parser has it's own convert_units() method no longer inheriting from Geometry
- in Excellon UI fixed bug that did not allow editing of the Offset Z parameter from the Tool table
- in Properties Tool added new information's for the tools in the CNCjob objects
- few bugs solved regarding the newly created empty objects
- changed everywhere the name "preprocessor" with "preprocessor"
- updated the preprocessor files in the toolchange section in order to avoid a graphical representation of travel lines glitch
- fixed a GUI glitch in the Excellon tool table
- added units to some of the parameters in the Properties Tool
5.12.2019
- in NCC Tool, the new Geometry object that is created on copper clear now has the solid_geometry attribute where the geometry is stored not only in the obj.tools attribute
- Copper Thieving Tool - added units label for the pattern plated area
- Properties Tool - added a new parameter, the copper area which show the area of the copper features for the Gerber objects
- Copper Thieving Tool - added a default value for the mask clearance when generating pattern plating mask
- application wide change: introduced the precision parameters in Edit -> Preferences who will control how many decimals to use in the app parameters
- changed the FCDoubleSpinner, FCSpinner and FCEntry GUI elements to allow passing an alignment value: left, right or center (not yet available in the app)
- fixed the GUI of the Geometry Editor Tool Transform and adapted it to use the precision setting
- updated Gerber Editor to use the precision setting and the Gerber Editor Transform Tool to use the FCDoubleSpinner GUI element
- 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
4.12.2019
- made sure that if an older preferences file is detected then there are no errors and only the parameters that are currently active are loaded; the factory defaults file is deleted and recreated in the new format
- in Preferences added a new button: 'Close' to close the Preferences window without saving
- fixed bug in FCSpinner and FCDoubleSpinner GUI elements, that are now the main GUI element in FlatCAM, that made partial selection difficult
- updated the Paint Tool in Geometry Editor to use the FCDoubleSpinner
- added the possibility for suffix presence on the FCSpinner and FCDoubleSpinner GUI Elements
- added the '%' symbol for overlap fields; I still need to divide the content by 100 to get the original (0 ... 1) value
- fixed the overlap parameter all over the app to reflect the change to percentage
- in Copper Thieving Tool added the display of the patterned plated area (approximate area)
- Copper Thieving Tool - updated the way plated area is calculated making it a bit more precise but still it is a bit bigger than the actual area
- fixed the Copy Object function to copy also the source_file content
- Copper Thieving Tool - when the clearance value for the pattern plating mask is negative it will be applied to the origin soldermask too
- modified the GUI in all tools making the text of the buttons bold and adding a new button named Reset Tool which have to reset the tool GUI and variables (need to check all tools to see if happen)
- when the Tool tab is in focus, clicking on canvas will no longer change the focus to Project tab
- Copper Thieving Tool - when creating the pattern platting mask will make a new Gerber object with it
- small fix in the GUI layout in Gerber Editor
3.12.2019
- in Preferences added an Apply button which apply the modified preferences but does not save to a file, minimizing the file IO operations; Ctrl+S key combo does the Apply now.
- updated some of the default values to metric, values that were missed previously
- remade the Gerber Editor way to import an Gerber object into the editor in such a way to use the multiprocessing
- various small fixes
- fix for toggle grid lines updating canvas only after moving the mouse (hack, actually)
- some changes in the UI layout in Cutout Tool
- added some geometry parameters in Cutout Tool as a convenience, to be passed to the generated Geometry objects
2.12.2019
- fixed issue #343; updated the Image Tool
- 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
- added 3 new tcl commands: export dxf, export excellon and export gerber
- added a Cancel button in Tools DB when requesting to add a tool in the Geometry Tool Table
- modified the default values for the METRIC system; the app now starts in the METRIC units since the majority of the world use the METRIC units system
- small changes, updated the estimated release date
- Tool Copper Thieving - added pattern plating mask generation feature
28.11.2019
- small fixes in NCC Tool and in the GeometryObject class
27.11.2019
- in Tool Film added the page size and page orientation in case of saving the film as PDF file
- the application workspace has now a lot more options selectable in the Edit -> Preferences -> General -> GUI Preferences
- updated the drawing of the workspace such that the application overall start time is improved and after first turn on of the workspace, toggling it will have no performance penalty
- updated the workspace functions to work in Legacy(2D) graphic mode
- adjusted the selection color transparency for the Legacy(2D) graphic mode because it was too transparent for the fill
26.11.2019
- updated the Film Tool to allow exporting PDF and PNG file (besides the SVG file)
25.11.2019
- In Gerber isolation changed the UI
- in Gerber isolation added the option to selectively isolate only certain polygons
- made some optimizations in GerberObject.isolate() method
- updated the 'single' isolation of Gerber polygons to remove the polygon if clicked on it and it is already in the list of single polygons to be isolated
- clicking to add a polygon when doing Single type isolation will add a blue shape marking the selected polygon, second click will remove that shape
- fixed bugs in Paint Tool when painting single polygon
- in Gerber isolation added the option to selectively isolate only certain polygons - made it to work for Legacy(2D) graphic mode
- remade the Paint Tool - single polygon painting; now it can single paint a list of polygons that are clicked onto (right click will start the actual painting)
23.11.2019
- in Tool Fiducials added a new fiducial type: chess pattern
- work in Calibrate Excellon Tool
- fixed the line numbers in the TextPlainEdit to fit all digits of the line number; activated the line numbers for ScriptObject objects too
- line numbers in the TextPlainEdit for the selected line are bold
- made sure that the self.defaults dictionary is deepcopy-ed in the self.options dictionary
- made sure that the units are read from the self.defaults and not from the GUI
- added Robber Bar option to Copper Thieving Tool
22.11.2019
- Tool Fiducials - added GUI in Preferences and entries in self.defaults dict
- Tool Fiducials - updated the source_file object for the modified Gerber files
- working on adding line numbers to the TextPlainEdit
- GCode view now has line numbers
- solved a bug that made selection of objects on canvas impossible if there is an object of type ScriptObject or DocumentObject opened
21.11.2019
- Tool Fiducials - finished the part with adding copper fiducials: manual and auto
- Tool Fiducials - added choice of shapes: circular or non-standard cross
- Tool Fiducials - finished the work on adding soldermask openings
- Tool Fiducials - finished the tool
- updated requirements.txt and setup_ubuntu.sh files
20.11.2019
- Tool Fiducials - added the GUI and the shortcut key
- Tool Fiducials - updated the icon
19.11.2019
- removed the f-strings replacing them with the traditional string formatting due of not being supported by older versions of Python 3
- fixed some TclCommands: MillDrills and OpenGerber
- fixed bug in Tool Subtract that did not allow subtracting Gerber objects
- starting to work on Tool Fiducials - created the file
18.11.2019
- finished the Dots and Squares options in the Copper Thieving Tool
- working on the Lines option in Copper Thieving Tool
- finished the Lines option in the Copper Thieving Tool; still have to add threading to maximize performance
- finished Copper Thieving Tool improvements
- working on the Calibrate Excellon Tool - remade the UI
17.11.2019
- optimized the storage of the Gerber mark shapes by making them one layer only
- optimized the Distance Tool such that the distance utility geometry will be shown even when the mark shapes are plotted.
- updated the make_freezed.py file to make sure that all the required files are included
- updated the setup_ubuntu.sh to include the sudo command (courtesy of Krishna Torque on bitbucket)
16.11.2019
- fixed issue #341 that affected both preprocessors that have inlined feedrate: marlin and repetier. The used feedrate was the Feedrate X-Y and instead had to be Feedrate Z.
15.11.2019
- added all the recognized extensions to the save dialog filters; latest extension used will be preselected next time a save operation occur
- fixed issue #335. The FCDoubleSPinBox (and FCSpinBox) value was not used when the user entered data but just hovered away the mouse expecting the data to be already confirmed
- converted setup_ubuntu.sh to Linux line endings
14.11.2019
- made sure that the 'default' preprocessor file is always loaded first such that this name is always first in the GUI comboboxes
- added a class in GUIElements for a TextEdit box with line numbers and highlight
13.11.2019
- trying to improve the performance of View CNC Code command by using QPlainTextEdit; made the mods for it
- when using the Find function in the AppTextEditor and the result reach the bottom of the document, the next find will be the first in the document (before it defaulted to the beginning of the document)
- finished improving the show of text files in FlatCAM (CNC Code, Source files)
- fixed an issue in the FlatCAMObj.GerberObject.convert_units() which needed to be updated after changes elsewhere
12.11.2019
- added two new preprocessor files for ISEL CNC and for BERTA CNC
- clicking on a FCTable GUI element empty space will also clear the focus now
11.11.2019
- 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
- fixed GUI in 2Sided Tool
- extending the Copper Thieving Tool - wip
9.11.2019
- fixed a new bug that did not allow to open the FlatCAM Preferences files by doubleclick in Windows
- added a new feature: Tools Database for Geometry objects; resolved issue #308
- added tooltips for the Tools Database table headers and buttons
8.11.2019
- updated the make file for frozen executable
7.11.2019
- added the '.ngc' file extension to the GCode Save file dialog filter
- made the 'M2' Gcode command footer optional, default is False (can be set using the TclCommand: set_sys cncjob_footer True)
- added a setting in Preferences to force the GCode output to have the Windows line-endings even for non-Windows OS's
6.11.2019
- the "CRTL+S" key combo when the Preferences Tab is in focus will save the Preferences instead of saving the Project
- fixed bug in the Paint Tool that did not allow choosing a Paint Method that was not Standard
- made sure that in the GeometryObject.merge() all the source data is deepcopy-ed in the final object
- the font color of the Preferences tab will change to red if settings are not saved and it will revert to default when saved
- fixed issue #333. The Geometry Editor Paint tool was not working and using it resulted in an error
5.11.2019
- 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
- fixed some issues when editing a multigeo geometry
4.11.2019
- wip
- getting rid of all the Options GUI and related functions as it is no longer supported
- updated the UI in Geometry UI
- optimized the order of the defaults storage declaration and the update of the Preferences GUI from the defaults
- started to add a Tool Database
3.11.2019
- fixed the V-shape tool diameter calculation in NCC Tool
- in NCC Tool made the new tool dia (circular type) a parameter in Preferences
- fixed a small issue with clicking in a disabled FCDoubleSpinner or FCSpinner still doing a selection
30.10.2019
- converted SolderPaste Tool to usage of SpinBoxes; changed the SolderPaste Tool UI in Preferences too
- fixed a bug in SolderPaste Tool that did not allow to view the GCode
29.10.2019
- a bug fix in Geometry Object
- fixed some missing properties in Tool Calculators
28.10.2019
- in Tools: Paint, NCC and Copper Fill, when using the Area Selection, now the selected areas will stay drawn as markers until the user click RMB
- in legacy2D graphic engine, adding an utility geometry no longer draw the older ones, overwriting them
- fixed some issues in the Gerber Editor (Aperture add was double adding an aperture)
- converted Gerber Editor to usage of SpinBoxes
- working on the Calibrate Excellon Tool
- converted Excellon Editor to usage of SpinBoxes
- Calibrate Excellon Tool: working on self.calculate_factors() method
27.10.2019
- Copper Fill Tool: some PEP8 corrections
26.10.2019
- fixed an error in the FCDoubleSpinner class when FlatCAM is run on system with locale that use the comma as decimal separator
25.10.2019
- QRCode Tool: added ability to add negative QRCodes (perhaps they can be isolated on copper?); added a clear area surrounding the QRCode in case it is dropped on a copper pour (region); fixed the Gerber export
- QRCode Tool: all parameters are hard-coded for now
- small update
- fixed imports in all TclCommands
- fixed the requirements.txt and setup_ubuntu.sh files
- QRCode Tool: change the plot method parameter
- QRCode Tool: added ability to save the generated QRCode as SVG file or PNG file
- QRCode Tool: added the feature to save the PNG file with transparent background
- QRCode Tool: added GUI category in Preferences window
- QRCode Tool: shortcut key for this tool is now Alt+Q while PDF import Tool was relegated to Ctrl+Q combo key shortcut
- 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
- Copper Fill Tool: added possibility to select between a bounding box rectangular or convex hull when the reference is the geometry of the source Gerber object
- Copper Fill Tool: cleanup on not regular tool exit
- Copper Fill Tool: added GUI category in Edit -> Preferences window
- QRCode Tool: added a selection limit parameter to control the selection shape vs utility geo
24.10.2019
- added some placeholder texts in the TextBoxes.
- working on QRCode Tool; added the utility geometry and initial functional layout
- working on QRCode Tool; finished adding the QRCode geometry to the selected Gerber object and also finished adding the 'follow' geometry needed when exporting the Gerber object as a Gerber file in addition to the 'solid' geometry in the obj.apertures
- working on QRCode Tool; finished offsetting the geometry both in apertures and in solid_geometry; updated the source_file of the source object
23.10.2019
- QRCode Tool - a SVG object is generated and plotted on screen having the QRCode data
- fixed an import error in Distance Tool
- fixed the Toggle Grid Lines functionality
22.10.2019
- working on the Calibrate Excellon Tool
- finished the GUI layout for the Calibrate Excellon Tool
- start working on QRCode Tool - not working yet
- start working on QRCode Tool - searching for alternatives
21.10.2019
- the context menu for the Tabs in notebook and PlotTabArea is launched now on right mouse click on tabs themselves
- fixed an error when trying to view the source file and there is no object selected
- updated the Objects menu signals so whenever an object is (de)selected in the Project Tab, it's state will reflect the (un)checked state of the actions in the Object menu
- fixed issue in Gerber Object UI of not updating the value of CutZ entry on TipDia or TipAngle entries change. Fixed issue #324
18.10.2019
- fixed a small bug in BETA status change
- updated the About FlatCAM window
- reverted change in tool dia being able to take only positive values in Gerber Object UI
- started to work to a new tool: Calibrate Excellon Tool
- solved the issue #329
18.10.2019
- finished the update on the Google translated Spanish translation.
- updated the new objects icons for Gerber, Geometry and Excellon
- small import problem fixed
- RELEASE 8.98
17.10.2019
- fixed a bug in milling holes due of a message wrongly formatted
- added an translator email address
- finished the update on German Google translation. Part of it was corrected by Jens Karstedt
- finished the update of the Romanian translation.
- finished the Objects menu by adding the ability of actions to be checked so they will show the selected status of the objects and by adding to actions to (de)select all objects
- fixed and optimized the click selection on canvas
- fixed Gerber parsing for very simple Gerber files that have only one Polygon but many LPC zones
- fixed SVG export; fix bug #327
- finished the update on French Google translation.
16.10.2019
- small update to Romanian translation files
15.10.2019
- adjusted the layout in NCC Tool
- 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)
- removed the styling on the comboboxes cellWidget's in the Tool Tables
- replaced some of the icons that did not looked Ok on the dark theme
- added a new toolbar button for the Copy object functionality
- changed the Panelize tool icon
- corrected some strings
14.10.2019
- modified the result highlight color in Check Rules Tool
- added the Check Rules Tool parameters to the unit conversion list
- converted more of the Preferences entries to FCDoubleSpinner and FCSpinner
- converted all ObjectUI entries to FCDoubleSpinner and FCSpinner
- updated the translation files (~ 89% translation level)
- changed the splash screen as it seems that FlatCAM beta will never be more than beta
- changed some of the signals from returnPressed to editingFinished due of now using the SpinBoxes
- 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)
- added a secondary link in the bookmark manager
- fixed the bookmark manager order of bookmark links; first two links are always protected from deletion or drag-and-drop to other positions
- fixed a whole load of PyQT signal problems generated by recent changes to the usage of SpinBoxes; added a signal returnPressed for the FCSpinner and for FCDoubleSpinner
- fixed issue in Paint Tool where the first added tool was expected to have a float diameter but it was a string
- updated the translation files to the latest state in the app
13.10.2019
- fixed a bug in the Merge functions
- fixed the Export PNG function when using the 2D legacy graphic engine
- added a new capability to toggle the grid lines for both graphic engines: menu link in View and key shortcut combo Alt+G
- changed the grid colors for 3D graphic engine when in Dark mode
- 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
- added the Preferences for Check Rules Tool and for Optimal Tool and also updated the Film Tool to use the default settings in Preferences
12.10.2019
- fixed the Gerber Parser convert units unnecessary usage. The only units conversion should be done when creating the new object, after the parsing
- more fixes in Rules Check Tool
- optimized the Move Tool
- added support for key-based panning in 3D graphic engine. Moving the mouse wheel while pressing the CTRL key will pan up-down and while pressing SHIFT key will pan left-right
- 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
11.10.2019
- added a Bookmark Manager and a Bookmark menu in the Help Menu
- added an initial support for rows drag and drop in FCTable in GUIElements; it crashes for CellWidgets for now, if CellWidgetsare in the table rows
- fixed some issues in the Bookmark Manager
- modified the Bookmark manager to be installed as a widget tab in Plot Area; fixed the drag & drop function for the table rows that have CellWidgets inside
- marked in gray color the rows in the Bookmark Manager table that will populate the BookMark menu
- made sure that only one instance of the BookmarkManager class is active at one time
10.10.2019
- fixed Tool Move to work only for objects that are selected but also plotted, therefore disabled objects will not be moved even if selected
9.10.2019
- updated the Rules Check Tool - solved some issues
- made FCDoubleSpinner to use either comma or dot as a decimal separator
- fixed the FCDoubleSpinner to only allow the amount of decimals already set with set_precision()
- fixed ToolPanelize to use FCDoubleSpinner in some places
8.10.2019
- modified the FCSpinner and FCDoubleSpinner GUI elements such that the wheel event will not change the values inside unless there is a focus in the lineedit of the SpinBox
- in Preferences General, Gerber, Geometry, Excellon, CNCJob sections made all the input fields of type SpinBox (where possible)
- updated the Distance Tool utility geometry color to adapt to the dark theme canvas
- Toggle Code Editor now works as expected even when the user is closing the Editor tab and not using the command Toggle Code Editor
- more changes in Preferences GUI, replacing the FCEntries with Spinners
- some small fixes in toggle units conversion
- small GUI changes
7.10.2019
- fixed an conflict in a signal usage that was triggered by Tool SolderPaste when a new project was created
- updated Optimal Tool to display both points coordinates that made a distance (and the minimum) not only the middle point (which is still the place where the jump happen)
- added a dark theme to FlatCAM (only for canvas). The selection is done in Edit -> Preferences -> General -> GUI Settings
- updated the .POT file and worked a bit in the romanian translation
- small changes: reduced the thickness of the axis in 3D mode from 3 pixels to 1 pixel
- made sure that is the text in the source file of a DocumentObject is HTML is loaded as such
- added inverted icons
6.10.2019
- remade the Mark area Tool in Gerber Editor to be able to clear the markings and also to delete the marked polygons (Gerber apertures)
- working in adding to the Optimal Tool the rest of the distances found in the Gerber and the locations associated; added GUI
- added display of the results for the Rules Check Tool in a formatted way
- made the Rules Check Tool document window Read Only
- made Excellon and Gerber classes from camlib into their own files in the flatcamParser folder
- moved the ApertureMacro class from camlib to ParseGerber file
- 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
- changed the Jump To icon and reverted some changes to the parseGerber and ParseExcellon classes
- updated Tool Optimal with display of all distances (and locations of the middle point between where they happen) found in the Gerber Object
5.10.2019
- remade the Tool Calculators to use the QSpinBox in order to simplify the user interaction and remove possible errors
- remade: Tool Cutout, Tool 2Sided, Tool Image, Panelize Tool, NCC Tool, Paint Tool to use the QSpinBox GUI elements
- optimized the Transformation Tool both in GUI and in functionality and replaced the entries with QSpinBox
- fixed an issue with the tool table context menu in Paint Tool
- made some changes in the GUI in Paint Tool, NCC Tool and SolderPaste Tool
- changed some of the icons; added attributions for icons source in the About FlatCAM window
- added a new tool in the Geometry Editor named Explode which is the opposite of Union Tool: it will explode the polygons into lines
4.10.2019
- updated the Film Tool and added the ability to generate Punched Positive films (holes in the pads) when a Gerber file is the film's source. The punch holes source can be either an Excellon file or the pads center
- optimized Rules Check Tool so it runs faster when doing Copper 2 Copper rule
- small GUI changes in Optimal Tool and in Film Tool
- some PEP8 corrections
- some code annotations to make it easier to navigate in the MainGUI.py
- fixed exit FullScreen with Escape key
- added a new menu category in the MenuBar named 'Objects'. It will hold the objects found in the Project tab. Useful when working in FullScreen
- disabled a log.debug in ObjectColection.get_by_name()
- added a Toggle Notebook button named 'NB' in the QMenBar which toggle the notebook
- in Gerber isolation section, the tool dia value is updated when changing from Circular to V-shape and reverse
- in Tool Film, when punching holes in a positive film, if the resulting object geometry is the same as the source object geometry, the film will not ge generated
- fixed a bug that when a Gerber object is edited and it has as solid_geometry a single Polygon, saving the result was failing due of len() function not working on a single Polygon
- added the Distance Tool, Distance Min Tool, Jump To and Set Origin functions to the Edit Toolbar
3.10.2019
- previously I've added the initial layout for the DocumentObject object
- added more editing features in the Selected Tab for the DocumentObject object
2.10.2019
- fixed bug in Geometry Editor that did not allow the copy of geometric elements
- created a new class that holds all the Code Editor functionality and integrated as a Editor in FlatCAM, the location is in flatcamEditors folder
- remade all the functions for view_source, scripts and view_code to use the new AppTextEditor class; now all the Code Editor tabs are being kept alive, before only one could be in an open state
- changed the name of the new object FlatCAMNotes to a more general one DocumentObject
- changed the way a new ScriptObject object is made, the method that is processing the Tcl commands when the Run button is clicked is moved to the FlatCAMObj.ScriptObject() class
- reused the Multiprocessing Pool declared in the App for the ToolRulesCheck() class
- adapted the Project context menu for the new types of FLatCAM objects
- modified the setup_recent_files to accommodate the new FlatCAM objects
- made sure that when an ScriptObject object is deleted, it's associated Tab is closed
- fixed the FlatCMAScript object saving when project is saved (loading a project with this script object is not working yet)
- fixed the FlatCMAScript object when loading it from a project
1.10.2019
- fixed the FCSpinner and FCDoubleSpinner GUI elements to select all on first click and deselect on second click in the Spinbox LineEdit
- for Gerber object in Selected Tab added ability to chose a V-Shape tool and therefore control the isolation better by adjusting the cut width of the isolation in function of the cut depth, tip width of the tool and the tip angle of the tool
- when in Gerber UI is selected the V-Shape tool, all those parameters (tip dia, tip angle, tool_type = 'V' and cut Z) are transferred to the generated Geometry and prefilled in the Geoemtry UI
- 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
- added new settings for the Gerber newly introduced feature to isolate with the V-Shape tools (tip dia, tip angle, tool_type and cut Z) in Edit -> Preferences -> Gerber Advanced
- made those settings just added for Gerber, to be updated on object creation
- added the Geo Tolerance parameter to those that are converted from MM to INCH
- added two new FlatCAM objects: ScriptObject and FlatCAMNotes
30.09.2019
- modified the Distance Tool such that the number of decimals all over the tool is set in one place by the self.decimals
- added a new tool named Minimum Distance Tool who will calculate the minimum distance between two objects; key shortcut: SHIFT + M
- finished the Minimum Distance Tool in case of using it at the object level (not in Editors)
- completed the Minimum Distance Tool by adding the usage in Editors
- made the Minimum Distance Tool more precise for the Excellon Editor since in the Excellon Editor the holes shape are represented as a cross line but in reality they should be evaluated as circles
- small change in the UI layout for Check Rules Tool by adding a new rule (Check trace size)
- changed a tooltip in Optimal Tool
- in Optimal Tool added display of how frequent that minimum distance is found
- in Tool Distance and Tool Minimal Distance made the entry fields read-only
- in Optimal Tool added the display of the locations where the minimum distance was detected
- added support to use Multi Processing (multi core usage, not simple threading) in Rules Check Tool
- in Rules Check Tool added the functionality for the following rules: Hole Size, Trace Size, Hole to Hole Clearance
- in Rules Check Tool added the functionality for Copper to Copper Clearance
- in Rules Check Tool added the functionality for Copper to Outline Clearance, Silk to Silk Clearance, Silk to Solder Mask Clearance, Silk to Outline Clearance, Minimum Solder Mask Sliver, Minimum Annular Ring
- fixes to cover all possible situations for the Minimum Annular Ring Rule in Rules Check Tool
- some fixes in Rules Check Tool and added a QSignal that is fired at the end of the job
29.09.2019
- work done for the GUI layout of the Rule Check Tool
- setup signals in the Rules Check Tool GUI
- changed the name of the Measurement Tool to Distance Tool. Moved it's location to the Edit Menu
- added Angle parameter which is continuously updated to the Distance Tool
28.09.2019
- changed the icon for Open Script and reused it for the Check Rules Tool
- added a new tool named "Optimal Tool" which will determine the minimum distance between the copper features for a Gerber object, in fact determining the maximum diameter for a isolation tool that can be used for a complete isolation
- fixed the ToolMeasurement geometry not being displayed
- fixed a bug in Excellon Editor that crashed the app when editing the first tool added automatically into a new black Excellon file
- made sure that if the big mouse cursor is selected, the utility geometry in Excellon Editor has a thicker line width (2 pixels now) so it is visible over the geometry of the mouse cursor
- fixed issue #319 where generating a CNCJob from a geometry made with NCC Tool made the app crash; also #328 which is the same
- 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__()
- fixed a small bug that made app crash when the splash screen is disabled: it was trying to close it without being open
27.09.2019
- optimized the toggle axis command
- added possibility of using a big mouse cursor or a small mouse cursor. The big mouse cursor is made from 2 infinite lines. This was implemented for both graphic engines
- added ability to change the cursor size when the small mouse cursor is selected in Preferences -> General
- removed the line that remove the spaces from the path parameter in the Tcl commands that open something (Gerber, Gcode, Excellon)
- fixed issue with the old SysTray icon not hidden when the application is restarted programmatically
- if an object is edited but the result is not saved, the app will reload the edited object UI and set the Selected tab as active
- made the mouse cursor (big, small) change in real time for both graphic engines
- started to work on a new FlatCAM tool: Rules Check
- created the GUI for the Rule Check Tool
- if there are (x, y) coordinates in the clipboard, when launching the "Jump to" function, those coordinates will be preloaded in the Dialog box.
- when the combo SHIFT + LMB is executed there is no longer a deselection of objects
- when the "Jump to" function is called, the mouse cursor (if active) will be moved to the new position and the screen position labels will be updated accordingly
27.09.2019
- RELEASE FlatCAM 8.97
26.09.2019
- added a Copy All button in the Code Editor, clicking this button will copy all text in the editor to the clipboard
- added a 'Milling Type' radio button in Geometry Editor Preferences to contorl the type of geometry will be generated in the Geo Editor (for conventional milling or for the climb milling)
- added the functionality to allow climb/conventional milling selection for the geometry created in the Geometry Editor
- now any Geometry that is edited in Geometry editor will have coordinates ordered such that the resulting Gcode will allow the selected milling type in the 'Milling Type' radio button in Geometry Editor Preferences (which depends also of the spindle direction)
- some strings update
- French Google-translation at 100%
- German Google-translation update to 100%
- updated the other languages and the .POT file
- changed some strings (that should not have been included for translation) and updated language files and the .POT file
- fixed issue when rebooting from within in cx_freezed state (it issued a startup arg with the path to FlatCAM.exe but that triggered the last sys.exit(2) that I had in the App.args_at_startup())
- modified the make_win script for the presence of MatPlotLib
25.09.2019
- French translation at 33%
- fixed the 'Jump To' function to work in legacy graphic engine
- in legacy graphic engine fixed the mouse cursor shape when grid snapping is ON, such that it fits with the shape from the OpenGL graphic engine
- in legacy graphic engine fixed the axis toggle
- French Google-translation at 48%
24.09.2019
- fixed the fullscreen method to show the application window in fullscreen wherever the mouse pointer it is therefore on the screen we are working on; before it was showing always on the primary screen
- fixed setup_ubuntu.sh to include the matplotlib package required by the Legacy (2D) graphic engine
- in legacy graphic engine, fixed issue where immediately after changing the mouse cursor snapping the mouse cursor shape was not updated
- in legacy graphic engine, fixed issue where while zooming the mouse cursor shape was not updated
- in legacy graphic engine, fixed issue where immediately after panning finished the mouse cursor shape was not updated
- unfortunately the fix for issue where while zooming the mouse cursor shape was not updated braked something in way that Matplotlib work with PyQt5, therefore I removed it
- fixed a bug in legacy graphic engine: when doing the self.app.collection.delete_all() in new_project an app crash occurred
- implemented the Annotation change in CNCJob Selected Tab for the legacy graphic engine
23.09.2019
- in legacy graphic engine, fixed bug that made the old object disappear when a new object was loaded
- in legacy graphic engine, fixed bug that crashed the app when creating a new project
- 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
- added a new TclCommand named "bounds" which will return a list of bounds values from a supplied list of objects names. For use in Tcl Scripts
- updated strings in the translations and the .POT file
- added the new keywords to the default keywords list
- fixed the FullScreen option not working for the 3D graphic engine (due bug of Qt5 when OpenGL window is fullscreen) by creating a sort of fullscreen
- added a final fix that allow full coverage of the screen in FullScreen in Windows and still the menus are working
- optimized the Gerber mark shapes display
- fixed a color format bug in Tool Move for 3D engine
- made sure that when the Tool Move is used on a Gerber file with mark shapes active, those mark shapes are deleted before the actual move
- in legacy graphic engine, fixed issue with Delete shortcut key trying to delete twice
- 26% in Google-translated French translation and updated some strings too
22.09.2019
- fixed zoom directions legacy graphic engine (previous commit)
- fixed display of MultiGeo geometries in legacy graphic engine
- fixed Paint tool to work in legacy graphic engine
- fixed CutOut Tool to work in legacy graphic engine
- fixed display of distance labels and code optimizations in ToolPaint and NCC Tool
- adjusted axis at startup for legacy graphic engine plotcanvas
- when the graphic engine is changed in Edit -> Preferences -> General -> App Preferences, the application will restart
- made hover shapes work in legacy graphic engine
- fixed bug in display of the apertures marked in the Aperture table found in the Gerber Selected tab and through this made it to also work with the legacy graphic engine
- fixed annotation in Mark Area Tool in Gerber Editor to work in legacy graphic engine
- fixed the MultiColor plot option Gerber selected tab to work in legacy graphic engine
- documented some methods in the ShapeCollectionLegacy class
- updated the files: setup_ubuntu.sh and requirements.txt
- 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.
- fixed crash when trying to set a workspace in FlatCAM in the Legacy engine 2D mode by disabling this function for the case of 2D mode
- fixed exception when trying to Fit View (shortcut key 'V') with no object loaded, in legacy graphic engine
21.09.2019
- fixed Measuring Tool in legacy graphic engine
- fixed Gerber plotting in legacy graphic engine
- fixed Geometry plotting in legacy graphic engine
- 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
- fixed drawing of selection box when dragging mouse on screen and the selection shape drawing on the selected objects
- fixed the moving drawing shape in Tool Move in legacy graphic engine
- fixed moving geometry in Tool Measurement in legacy graphic engine
- fixed Geometry Editor to work in legacy graphic engine
- fixed Excellon Editor to work in legacy graphic engine
- fixed Gerber Editor to work in legacy graphic engine
- fixed NCC tool to work in legacy graphic engine
20.09.2019
- final fix for the --shellvar having spaces within the assigned value; now they are retained
- 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
- made the mouse cursor snap to the grid when grid snapping is active
- changed the axis color to the one used in the OpenGL graphic engine
- work on ShapeCollectionLegacy
- fixed mouse cursor to work for all objects
- fixed event signals to work in both graphic engines: 2D and 3D
19.09.2019
- made sure that if FlatCAM is registered with a file extension that it does not recognize it will exit
- added some fixes in the the file extension detection
- added some status messages for the Tcl script related methods
- made sure that optionally, when a script is run then it is also loaded into the code editor
- added control over the display of Sys Tray Icon in Edit -> Preferences -> General -> GUI Settings -> Sys Tray Icon checkbox
- updated some of the default values to more reasonable ones
- FlatCAM can be run in HEADLESS mode now. This mode can be selected by using the --headless=1 command line argument or by changing the line headless=False to True in config/configuration.txt file. In this mod the Sys Tray Icon menu will hold only the Run Scrip menu entry and Exit entry.
- added a new TclCommand named quit_flatcam which will ... quit FlatCAM from Tcl Shell or from a script
- fixed the command line argument --shellvar to work when there are spaces in the argument value
- fixed bug in Gerber editor that did not allow to display all shapes after it encountered one shape without 'solid' geometry
- fixed bug in Gerber Editor -> selection area handler where if some of the selected shapes did not had the 'solid' geometry will silently abort selection of further shapes
- added new control in Edit -> Preferences -> General -> Gui Preferences -> Activity Icon. Will select a GIF from a selection, the one used to show that FlatCAM is working.
- changed the script icon to a smaller one in the sys tray menu
- fixed bug with losing the visibility of toolbars if at first startup the user tries to change something in the Preferences before doing a first save of Preferences
- changed a bit the splash PNG file
- moved all the GUI Preferences classes into it's own file flatcamGUI.PreferencesUI.py
- changed the default method for Paint Tool to 'all'
18.09.2019
- added more functionality to the Extension registration with FLatCAM and added to the GUI in Edit -> Preferences -> Utilities
- fixed the parsing of the Manufacturing files when double clicking them and they are registered with FlatCAM
- fixed showing the GUI when some settings (maximized_GUI) are missing from QSettings
- added sys tray menu
- added possibility to edit the custom keywords used by the autocompleter (in Tcl Shell and in the Code Editor). It is done in the Edit -> Preferences -> Utilities
- added a new setting in Edit -> Preferences -> General -> GUI Settings -> Textbox Font which control the font on the Textbox GUI elements
- fixed issue with the sys tray icon not hiding after application close
- added option to run a script from the context menu of the sys tray icon. Changed the color of the sys tray icon to a green one so it will be visible on light and dark themes
17.09.2019
- added more programmers that contributed to FlatCAM over the years, in the "About FlatCAM" -> Programmers window
- fixed issue #315 where a script run with the --shellfile argument crashed the program if it contained a TclCommand New
- added messages in the Splash Screen when running FlatCAM with arguments at startup
- fixed issue #313 where TclCommand drillcncjob is spitting errors in Tcl Shell which should be ignored
- fixed an bug where the pywrapcp name from Google OR-Tools is not defined; fix issue #316
- 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
- added a new command line parameter for FlatCAM named '--shellvars' which can load a text file with variables for Tcl Shell in the format: one variable assignment per line and looking like: 'a=3' without quotes
- made --shellvars into --shellvar and make it only one list of commands passed to the Tcl. The list is separated by comma but without spaces. The variables are accessed in Tcl with the names shellvar_x where x is the index in the list of command comma separated values
- fixed an issue in the TclShell that generated an exception IndexError which crashed the software
- fixed the --shellvar and --shellfile FlatCAM arguments to work together but the --shellvar has precedence over --shellfile as it is most likely that whatever variable set by --shellvar will be used in the script file run by --shellfile
16.09.2019
- modified the TclCommand New so it will no longer close all tabs when called (it closed the Code Editor tab which may have been holding the code that run)
- fixed the App.on_view_source() method for CNCJob objects: the Gcode will now contain the Prepend and Append code from the Edit -> Preferences -> CNCJob -> CNCJob Options
- added a new parameter named 'muted' for the TclCommands: cncjob, drillcncjob and write_gcode. Setting it as -muted 1 will disable the error reporting in TCL Shell
- some GUI optimizations
- more GUI optimizations related to being part of the Advanced category or not
- added possibility to change the positive SVG exported file color in Tool Film
- fixed some issues recently introduced in the TclCommands CNCJob, DrillCNCJob and write_gcode; changed some parameters names
- fixed issue in the Laser preprocessor where the laser was turned on as soon as the GCode started creating an unwanted cut up until the job start
- added new links in Menu -> Help (Excellon, Gerber specifications and a Report Bug)
- 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
15.09.2019
- refactored GeometryObject.mtool_gen_cncjob() method
- fixed the TclCommandCncjob to work for multigeometry Geometry objects; still I had to fix the list of tools parameter, right now I am setting it to an empty list
- update the Tcl Command isolate to be able to isolate exteriors, interiors besides the full isolation, using the iso_type parameter
- fixed issue in ToolPaint that could not allow area painting of a geometry that was a list and not a Geometric element (polygon or MultiPolygon)
- fixed UI showing before the initialization of FlatCAM is finished when the last state of GUI was maximized
- finished updating the TclCommand cncjob to work for multi-geo Geometry objects with the parameters from the args
- fixed the TclCommand cncjob to use the -outname parameter
- added some more keywords in the data_model for auto-completer
- fixed isolate TclCommand to use correctly the -outname parameter
- added possibility to see the GCode when right clicking on the Project tab on a CNCJob object and then clicking View Source
- added a new TclCommand named PlotObjects which will plot a list of FlatCAM objects
- made that after opening an object in FlatCAM it is not automatically plotted. If the user wants to plot it can use the TclCommands PlotAll or PlotObjects
- modified the TclCommands so that open files do not plot the opened files automatically
- made all TclCommands not to be plotted automatically
- made sure that all TclCommands are not threaded
- added new TclCommands: NewExcellon, NewGerber
- fixed the TclCommand open_project
- added the outname parameter (and established an default name when outname not used) for the AlignDrillGrid and AlignDrill TclCommands
- fixed Scripts repeating multiple time when the Code Editor is used. This repetition was correlated with multiple openings of the Code Editor window (especially after an error)
- added the autocomplete keywords that can be changed to the defaults dictionary
14.09.2019
- more string changes
- updated translation files
- fixed a small bug
- minor changes in the Code Editor GUI
- minor changes in the 'FlatCAM About' GUI
- added a new shortcut key F5 for doing the 'Plot All'
- updated the google-translated Spanish translation strings
- fixed the layouts to include toolbars breaks where it was needed
- whenever the user changes the Excellon format values for loading files, the Export Excellon Format values will be updated
- made optional the behavior of Excellon Export values following the values in the Excellon Loading section
- updated the translations (except RU) and the POT file
- added to the NonCopperClear.clear_copper() a parameter to be able to run it non-threaded
13.09.2019
- added control for simplification when loading a Gerber file in Preferences -> Gerber -> Gerber General -> Simplify
- added some messages for the Edit -> Conversions -> Join methods() to make sure that there are at least 2 objects selected for join
- added a grid layout in on_about()
- upgraded the Script Editor to be able to run Tcl commands in batches
- added some ToolTips for the buttons in the Code Editor
- converted the big strings that hold the shortcut keys descriptions to smaller string to make translations easier
- fixed some of the strings that were left in the old way
- updated the POT file
- updated Romanian language partially
- added a new way to handle scripts with repeating Tcl commands
- added new buttons in the Tools toolbar for running, opening and adding new scripts
- finished the Romanian translation update and updated the POT file
12.09.2019
- small changes in the TclCommands: MillDrills, MillSlots, DrillCNCJob: the new parameter for tolerance is now named: diatol
- cleaned up the 'About FlatCAM' window, started to give credits for the translation team
- started to add an application splash screen
- now, Excellon and Gerber edited objects will have the source_code updated and ready to be saved
- the edited Gerber (or Excellon) object now is kept in the app after editing and the edited object is a new object
- added a message to the splash screen
- remade the splash screen to show multiple messages on app initialization
- added a new splash image
- added a control in Preferences -> General -> GUI Settings -> Splash Screen that control if the splash screen is shown at startup
11.09.2019
- 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
- made faster the Gerber parser for the case of having a not valid geometry when loading a Gerber file without buffering
- updated code in self.on_view_source() to make it more responsive
- fixed the TclCommand MillHoles
- changed the name of TclCommand MillHoles to MillDrills and added a new TclCommand named MillSlots
- modified the MillDrills and MillSlots TclCommands to accept as parameter a list of tool diameters to be milled instead of tool indexes
- fixed issue #302 where a copied object lost all the tools
- modified the TclCommand DrillCncJob to have as parameter a list of tool diameters to be drilled instead of tool indexes
- updated the Spanish translation (Google-translation)
- added a new parameter in the TclCommands: DrillCNCJob, MillDrills, MillSlots named tol (from tolerance). If the diameters of the milled (drilled) dias are within the tolerance specified of the diameters in the Excellon object than those diameters will be processed. This is to help account for rounding errors when having units conversion
10.09.2019
- made isolation threaded
- fixed a small typo in TclCommandCopperCLear
- made changing the Plot kind in CNCJob selected tab, threaded
- fixed an object used before declaring it in NCC Tool - Area option
- added progress for the generation of Isolation geometry
- added progress and possibility of graceful exit in Panel Tool
- added graceful exit possibility when creating Isolation
- changed the workers thread priority back to Normal
- 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%
9.09.2019
- changed the triangulation type in VisPyVisuals for ShapeCollectionVisual class
- 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
- 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)
- some fixes in Paint Tool when done over the Gerber objects in case that the progressive plotting is selected
- some fixes in Gerber isolation in case that the progressive plotting is selected; added a 'Buffer solid geometry' button shown only when progressive plotting for Gerber object is selected. It will buffer the entire geometry of the object and plot it, in a threaded way.
- modified FlatCAMObj.py file to the new string format that will allow easier translations
- 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
- 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
8.09.2019
- added some documentation strings for methods in FlatCAMApp.App class
- removed some @pyqtSlot() decorators as they interfere with the current way the program works
7.09.2019
- 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
- remade the handlers for the Enable/Disable Project Tree context menu so they are threaded and activity is shown in the lower right corner of the main window
- added to GUI new options for the Gerber object related to area subtraction
- added new feature in the Gerber object isolation allowing for the isolation to avoid an area defined by another object (Gerber or Geometry)
- 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
- corrected some issues and made Move Tool to show correctly when it is plotting and when it is offsetting the objects position
- made Set Origin feature, threaded
- updated German language translation files
- separated the Plotting thread from the transformations threads
6.09.2019
- remade visibility threaded
- reimplemented the thread listening for new FlatCAM process starting with args so it is no longer subclassed but using the moveToThread function
- added percentage display for work done in NCC Tool
- added percentage display for work done in Paint Tool
- some fixes and prepared the activity monitor area to receive updated texts
- added progress display in status bar for generating CNCJob from Excellon objects
- added progress display in status bar for generating CNCJob from Geometry objects
- modified all the FlatCAM tools strings to the new format in which the status is no longer included in the translated strings to make it easier for the future translations
- more customization for the progress display in case of NCC Tool, Paint Tool and for the Gcode generation
- updated POT file with the new strings
- made the objects offset (therefore the Move Tool) show progress display
5.09.2019
- 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
- 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
4.09.2019
- started to work on support for G91 in Gcode (relative coordinates)
- added support for G91 coordinates
- working in plotting the CNCjob generated with G91 coordinates
3.09.2019
- in NCC tool there is now a depth of cut parameter named 'Cut Z' which will dictate how deep the tool will enter into the PCB material
- in NCC tool added possibility to choose between the type of tools to be used and when V-shape is used then the tool diameter is calculated from the desired depth of cut and from the V-tip parameters
- small changes in NCC tool regarding the usage of the V-shape tool
- fixed the isolation distance in NCC Tool for the tools with iso_op type
- in NCC Tool now the Area adding is continuous until RMB is clicked (no key modifier is needed anymore)
- fixed German language translation
- in NCC Tool added a warning in case there are isolation tools and if those isolation's are interrupted by an area or a box
- in Paint Tool made that the area selection is repeated until RMB click
- in Paint Tool and NCC Tool fixed the RMB click detection when Area selection is used
- finished the work on file extensions registration with FlatCAM. If the file extensions are deleted in the Preferences -> File Associations then those extensions are unregistered with FlatCAM
- fixed bug in NCC Tools and in SolderPaste Tool if in Edit -> Preferences only one tool is entered
- 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
2.09.2019
- fixed issue in NCC Tool when using area option
- added formatting for some strings in the app strings, making the future translations easier
- made changes in the Excellon Tools Table to make it more clear that the tools are selected in the # column and not in the Plot column
- in Excellon and Gerber Selected tab made the Plot (mark) columns not selectable
- some ToolTips were modified
- in Properties Tool made threaded the calculation of convex_hull area and also made it to work for multi-geo objects
- in NCC tool the type of tool that is used is transferred to the Geometry object
- in NCC tool the type of isolation done with the tools selected as isolation tools can now be selected and it has also an Edit -> Preferences entry
- in Properties Tool fixed the dimensions calculations (length, width, area) to work for multi-geo objects
1.09.2019
- fixed open handlers
- fixed issue in NCC Tool where the tool table context menu could be installed multiple times
- added new ability to create simple isolation's in the NCC Tool
- fixed an issue when multi depth step is larger than the depth of cut
27.08.2019
- made FlatCAM so that whenever an associated file is double clicked, if there is an opened instance of FlatCAM, the file will be opened in the first instance without launching a new instance of FlatCAM. If FlatCAM is launched again it will spawn a new process (hopefully it will work when freezed).
26.08.2019
- added support for file associations with FlatCAM, for Windows
25.08.2019
- initial add of a new Tcl Command named CopperClear
- remade the NCC Tool in preparation for the newly added TclCommand CopperClear
- finished adding the TclCommandCopperClear that can be called with alias: 'ncc'
- added new capability in NCC Tool when the reference object is of Gerber type and fixed some newly introduced errors
- fixed issue #298. The changes in preprocessors done in Preferences dis not update the object UI layout as it was supposed to. The selection of Marlin postproc. did not unhidden the Feedrate Rapids entry.
- fixed minor issues
- fixed Tcl Command AddPolygon, AddPolyline
- 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
24.08.2019
- modified CutOut Tool so now the manual gaps adding will continue until the user is clicking the RMB
- added ability to turn on/off the grid snapping and to jump to a location while in CutOut Tool manual gap adding action
- made PlotCanvas class inherit from VisPy Canvas instead of creating an instance of it (work of JP)
- fixed selection by dragging a selection shape in Geometry Editor
- modified the Paint Tool. Now the Single Polygon and Area/Reference Object painting works with multiple tools too. The tools have to be selected in the Tool Table.
- remade the TclCommand Paint to work in the new configuration of the the app (the painting functions are now in their own tool, Paint Tool)
- fixed a bug in the Properties Tool
- added a new TcL Command named Nregions who generate non-copper regions
- added a new TclCommand named Bbox who generate a bounding box.
23.08.2019
- in Tool Cutout for the manual gaps, right mouse button click will exit from the action of adding gaps
- in Tool Cutout tool I've added the possibility to create a cutout without bridge gaps; added the 'None' option in the Gaps combobox
- in NCC Tool added ability to add multiple zones to clear when Area option is checked and the modifier key is pressed (either CTRL or SHIFT as set in Preferences). Right click of the mouse is an additional way to finish the job.
- fixed a bug in Excellon Editor that made that the selection of drills is always cumulative
- in Paint Tool added ability to add multiple zones to paint when Area option is checked and the modifier key is pressed (either CTRL or SHIFT as set in Preferences). Right click of the mouse is an additional way to finish the job.
- in Paint Tool and NCC Tool, for the Area option, now mouse panning is allowed while adding areas to process
- for all the FlatCAM tools launched from toolbar the behavior is modified: first click it will launch the tool; second click: if the Tool tab has focus it will close the tool but if another tab is selected, the tool will have focus
- modified the NCC Tool and Paint Tool to work multiple times after first launch
- fixed the issue with GUI entries content being deselected on right click in the box in order to copy the value
- some changes in GUI tooltips
- modified the way key modifiers are detected in Gerber Editor Selection class and in Excellon Editor Selection class
- updated the translations
- fixed aperture move in Gerber Editor
- fixed drills/slots move in Excellon Editor
- RELEASE 8.96
22.08.2019
- added ability to turn ON/OFF the detachable capability of the tabs in Notebook through a context menu activated by right mouse button click on the Notebook header
- added ability to turn ON/OFF the detachable capability of the tabs in Plot Tab Area through a context menu activated by right mouse button click on the Notebook header
- added possibility to turn application portable from the Edit -> Preferences -> General -> App. Preferences -> Portable checkbox
- moved the canvas setup into it's own function and called it in the init() function
- fixed the Buffer Tool in Geometry Editor; made the Buffer entry field a QDoubleSpinner and set the lower limit to zero.
- fixed Tool Cutout so when the target Gerber is a single Polygon then the created manual geometry will follow the shape if shape is freeform
- fixed TclCommandFollow command; an older function name was used who yielded wrong results
- in Tool Cutout for the manual gaps, now the moving geometry that cuts gaps will orient itself to fit the angle of the cutout geometry
21.08.2019
- added feature in Paint Tool allowing the painting to be done on Gerber objects
- added feature in Paint Tool to set how (and if) the tools are sorted
- added Edit -> Preferences GUI entries for the above just added features
- added new entry in Properties Tool which is the calculated Convex Hull Area (should give a more precise area for the irregular shapes than the box area)
- added some more strings in Properties Tool for the translation
- in NCC Tool added area selection feature
- 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)
- fixed some issues introduced in NCC Tool
20.08.2019
- added ability to do copper clearing through NCC Tool on Geometry objects
- replaced the layout from Grid to Form for the Reference objects comboboxes in Paint Tool and in NCC Tool
19.08.2019
- updated the Edit -> Preferences to include also the Gerber Editor complete Preferences
- started to update the app strings to make it easier for future translations
- fixed the POT file and the German translation
- some mods in the Tool Sub
- fixed bug in Tool Sub that created issues when toggling visibility of the plots
- fixed the Spanish, Brazilian Portuguese and Romanian translations
18.08.2019
- made the exported preferences formatted therefore more easily read
- projects at startup don't work in another thread so there is no multithreading if I want to double click an project and to load it
- added messages in the application window title which show the progress in loading a project (which is not thread-safe therefore keeping the app from fully initialize until finished)
- in NCC Tool added a new parameter (radio button) that offer the choice on the order of the tools both in tools table and in execution of engraving; added as a parameter also in Edit -> Preferences -> Tools -> NCC Tool
- added possibility to drag & drop FlatCAM config files (*.FlatConfig) into the canvas to be opened into the application
- added GUI in Paint tool in beginning to add Paint by external reference object
- finished adding in Paint Tool the usage of an external object to set the extent of th area painted. For simple shapes (single Polygon) the shape can be anything, for the rest will be a convex hull of the reference object
- modified NCC tool so for simple objects (single Polygon) the external object used as reference can have any shape, for the other types of objects the copper cleared area will be the convex hull of the reference object
- modified the strings of the app wherever they contained the char seq so it is not included in the translated string
- updated the translation files for the modified strings (and for the newly added strings)
- added ability to lock toolbars within the context menu that is popped up on any toolbars right mouse click. The value is saved in QSettings and it is persistent between application startup's.
17.08.2019
- added estimated time of routing for the CNCJob and added travelled distance parameter for geometry, too
- 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
- coded a more accurate way to estimate the job time in CNCJob, taking into consideration if there is a usage of multi depth which generate more passes
- another fix (final one) for the Exception generated by the annotations set not to show in Preferences
- updated translations and changed version
- fixed installer issue for the x64 version due of the used CX_FREEZE python package which was in unofficial version (obviously not ready to be used)
- fixed bug in Geometry Editor, in disconnect_canvas_event_handlers() where I left some part of code without adding a try - except block which was required
- 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
- RELEASE 8.95
17.08.2019
- updated the translations for the new strings
- RELEASE 8.94
16.08.2019
- working in Excellon Editor to Tool Resize to consider the slots, too
- fixed a weird error that created a crash in the following scenario: create a new excellon, edit it, add some drills/slots, delete it without saving, create a new excellon, try to edit and a crash is issued due of a wrapped C++ error
- fixed bug selection in Excellon editor that caused not to select the corresponding row (tool dia) in the tool table when a selection rectangle selected an even number of geometric elements
- updated the default values to more convenient ones
- remade the enable/disable plots functions to work only where it needs to (no sense in disabling a plot already disabled)
- 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)
- each CNCJob object has now it's own text_collection for the annotations which allow for the individual enabling and disabling of the annotations
- added new menu category in File -> Backup with two menu entries that duplicate the functions of the export/import preferences buttons from the bottom of the Preferences window
- in Excellon Editor fixed the display of the number of slots in the Tool Table after the resize done with the Resize tool
- in Excellon Editor -> Resize tool, made sure that when the slot is resized, it's length remain the same, because the tool should influence only the 'thickness' of the slot. Since I don't know anything but the geometry and tool diameters (old and new), this is only an approximation and computationally intensive
- in Excellon Editor -> remade the Tool edit made by editing the diameter values in the Tools Table to work for slots too
- In Excellon Editor -> fixed bug that caused incorrect display of the relative coordinates in the status bar
15.08.2019
- added Edit -> Preferences GUI and storage for the Excellon Editor Add Slots
- added a confirmation message for objects delete and a setting to activate it in Edit -> Preferences -> Global
- merged pull request from Mike Smith which fix an application crash when attempting to open a not-a-FlatCAM-project file as project
- merged pull request from Mike Smith that add support for a new SVG element: