Commit Graph

195 Commits

Author SHA1 Message Date
Marius Stanciu e658b61e53 - 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
2020-08-26 03:38:47 +03:00
Marius Stanciu 86ec32b821 - fix for issue nr 2 in case of Drilling Tool. Need to check Isolation Tool, Paint Tool, NCC Tool
- Drilling Tool - UI changes
2020-08-26 01:01:27 +03:00
Marius Stanciu c3b99c3e33 - for Tools: Calculators, Calibration, Copper Thieving, Corners, Fiducials - moved the Tool UI in its own class 2020-08-25 18:23:38 +03:00
Marius Stanciu 0d15130b40 - Tool Align Objects - moved the Tool Ui into its own class 2020-08-25 15:52:50 +03:00
Marius Stanciu 08750a575c - 2Sided Tool - finished the feature that allows picking an Excellon drill hole center as a Point mirror reference 2020-08-25 15:40:53 +03:00
Marius Stanciu c1c819276f - 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
2020-08-25 03:06:09 +03:00
Marius Stanciu 48660a0fd6 - in Doublesided Tool cleaned up the UI 2020-08-18 16:18:13 +03:00
Marius Stanciu d1733f1e1d - in Doublesided Tool added some UI for Excellon hole snapping 2020-08-18 15:30:33 +03:00
Marius Stanciu 776034d1b1 - Tool Cutout - some work in gaps thickness control for the free form cutout 2020-08-13 22:38:39 +03:00
Marius Stanciu 6af295358d - Tool Cutout - some work in gaps thickness control for the free form cutout 2020-08-12 00:11:39 +03:00
Marius Stanciu 9b6c65cdcb - 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
2020-08-07 13:55:32 +03:00
Marius Stanciu 06bb17f255 - Tool Cutout - some work in gaps thickness control for the free form cutout 2020-08-06 00:07:56 +03:00
Marius Stanciu 14a9710a43 - 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 2020-08-05 17:37:24 +03:00
Marius Stanciu b5f77eac1b - Tool Cutout - more work in gaps thickness control feature
- Tool Cutout - added some icons to buttons
2020-08-05 11:46:56 +03:00
Marius Stanciu b26062c68a - small string change 2020-08-04 17:58:23 +03:00
Marius Stanciu f86193a5c0 - Tool Cutout - working in adding gaps suppression feature; added the UI in the Tool 2020-08-04 17:57:28 +03:00
Marius Stanciu 44411cdc82 - 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
2020-08-02 16:27:30 +03:00
Marius Stanciu 840db915f1 - GCode Editor - work in the UI 2020-08-02 02:31:06 +03:00
Marius Stanciu cf78211a6f - wip in the GCode Editor 2020-07-22 17:08:40 +03:00
Marius Stanciu 8a95580f15 - fixed issues with detecting older Preferences files 2020-07-21 14:17:58 +03:00
Marius Stanciu 8409c74e23 - 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
2020-07-18 00:26:03 +03:00
Marius Stanciu 144a89f686 - 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
2020-07-16 04:55:58 +03:00
Marius Stanciu 6c3774be7a - a new icon for Search in DB 2020-07-15 21:27:01 +03:00
Marius Stanciu 0fc6f41177 - added some icons to more push buttons inside the app
- a change of layout in Tools Database
2020-07-15 21:11:47 +03:00
Marius Stanciu 5b80760ba7 - 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
- modfied 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
2020-07-15 20:16:57 +03:00
Marius Stanciu 7b891900be - added Editor Push buttons in Geometry and CNCJob UI's 2020-07-15 03:31:39 +03:00
Marius Stanciu 5badd7a26b - Gerber UI - optimized the mark shapes to use only on ShapeCollection 2020-07-14 14:20:19 +03:00
Marius Stanciu c6baa8ca60 - Multiple Tools fix - fixed issue with converting slots to drills selection being cleared when togglinh 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
2020-07-13 15:49:11 +03:00
Marius Stanciu 1c77e3cc2a - 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
2020-07-13 15:19:24 +03:00
Marius Stanciu ed96f97d9a - deleting some prints 2020-07-13 03:06:29 +03:00
Marius Stanciu 22d05935e8 - 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
2020-07-13 03:04:44 +03:00
Marius Stanciu 0d886955f8 - 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
2020-07-12 18:30:24 +03:00
Marius Stanciu eee56a8f2f - Geometry UI - moved the UI for polishing from Isolation Tool to Geometry UI (actually in the future Milling Tool) where it belongs 2020-07-11 03:51:25 +03:00
Marius Stanciu ddfc8cf6dc - 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
2020-07-11 03:27:28 +03:00
Marius Stanciu 9c928e7ce8 - Drilling Tool - changes in UI 2020-07-11 02:57:19 +03:00
Marius Stanciu 8a4de3b44e - Drilling Tool - minor fixes 2020-07-11 01:50:41 +03:00
Marius Stanciu 13bcc036df - moved all Excellon Advanced Prefeences 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
2020-07-11 01:42:44 +03:00
Marius Stanciu f53ffe54d9 - 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
2020-07-10 17:05:32 +03:00
Marius Stanciu 0dee41e03c - 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
2020-07-10 04:39:25 +03:00
Marius Stanciu 391a28282e - Tool Drilling - added new feature to drill the slots 2020-07-09 16:54:15 +03:00
Marius Stanciu 4216333645 - 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
2020-07-09 03:53:41 +03:00
Marius Stanciu a0fea17aed - working on Tool Drilling 2020-07-08 21:35:24 +03:00
Marius Stanciu 45472f6193 - working on Tool Drilling - remaking the way that the GCode is stored, each tool will store it's own GCode 2020-07-08 17:39:33 +03:00
Marius Stanciu 5e9455991f - added as ToolTip for the the Preprocessor combobox items, the actual name of the items 2020-07-08 16:20:48 +03:00
Marius Stanciu 6edd7f051a - Tool Drilling - working on the UI
- Tool Drilling - added more tool parameters; laying the ground for adding "Drilling Slots" feature
2020-07-08 15:51:03 +03:00
Marius Stanciu f0fba5ccd1 - 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 2020-07-07 16:23:22 +03:00
Marius Stanciu e7c369ab8e - 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
2020-07-07 15:52:58 +03:00
Marius Stanciu 34c545ced5 - wip Tool Drilling 2020-07-02 06:10:31 +03:00
Marius Stanciu ce5ad816c5 - 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 2020-06-27 01:06:10 +03:00
Marius Stanciu 315ab77ebe - wip for Tool Drilling 2020-06-25 17:25:40 +03:00
Marius Stanciu 6db9aa041f - working on Tool Drilling 2020-06-23 01:17:40 +03:00
Marius Stanciu a833b3e3d4 - wip 2020-06-21 08:00:36 +03:00
Marius Stanciu c1a6bcc9f0 - put the bases for a new Tool: Milling Holes Tool 2020-06-18 23:43:54 +03:00
Marius Stanciu 755aa48490 - Panelize Tool - fixed to work for panelizing Excellon objects with the new data structure storing drills and tools in the obj.tools dictionary 2020-06-18 20:24:02 +03:00
Marius Stanciu 8dc4eecbf4 - Panelize Tool - add a new option for the panels of type Geometry named Path Optimiztion. 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. 2020-06-18 18:50:02 +03:00
Marius Stanciu 7be4d98172 - 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 onle line therefore reducing unnecessary Z moves 2020-06-18 14:44:29 +03:00
Marius Stanciu 79fec61934 - 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 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
2020-06-18 14:26:24 +03:00
Marius Stanciu c9d66381bf - 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 2020-06-17 10:36:02 +03:00
Marius Stanciu 0a64b02397 - 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
2020-06-16 23:25:02 +03:00
Marius Stanciu 651b3137e9 - minor fix in App Tools that were updated to have UI in a separate class 2020-06-16 15:14:34 +03:00
Marius Stanciu 6ec57391f4 - fixed Extract Drills Tool to work with the new Excellon data format 2020-06-16 12:40:11 +03:00
Marius Stanciu 949c265378 - 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 Exellon objects
2020-06-16 03:47:26 +03:00
Marius Stanciu bb24a45f5a - working on the Drilling Tool - started to create a new data structure that will hold the Excellon object data 2020-06-15 19:33:35 +03:00
Marius Stanciu 30d5400da1 - created a new App Tool named Drilling Tool where I will move the drilling out of the Excellon UI 2020-06-15 19:14:50 +03:00
Marius Stanciu 87524bcfc9 - Tool Isolation - fixed a UI minor issue: 'forced rest' checkbox state at startup was always enabled 2020-06-15 07:27:41 +03:00
Marius Stanciu 5757d856d5 - Isolation Tool - fixed to work with selection of tools in the Tool Table (previously it always used all the tools in the Tool Table) 2020-06-15 06:56:06 +03:00
Marius Stanciu 4891cde1f9 - Paint Tool - refurbished the 'rest machining' for the entire tool 2020-06-15 06:37:20 +03:00
Marius Stanciu 9968fd14f2 - 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
2020-06-15 03:34:34 +03:00
Marius Stanciu 5dcc31ef8b - 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 2020-06-14 21:24:23 +03:00
Marius Stanciu 14425d1b25 - modified the Isolation Tool UI: now the tools can be reordered (if the order UI radio is set to 'no') 2020-06-14 16:51:44 +03:00
Marius Stanciu c0a4e2f3cc - 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
2020-06-14 15:59:06 +03:00
Marius Stanciu 1fb1b1cdbe - 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
2020-06-14 14:29:57 +03:00
Marius Stanciu e24b148e3a - 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 2020-06-14 04:13:37 +03:00
Marius Stanciu 881d461b58 - NCC Tool - remade and optimized the copper clearing with rest machining: now it works as expected with a reasonable performance 2020-06-14 03:59:27 +03:00
Marius Stanciu 4823b198bb - 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 2020-06-13 20:17:58 +03:00
Marius Stanciu c44f395625 - 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 2020-06-13 19:50:55 +03:00
Marius Stanciu 1ea168fd4b - 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 2020-06-12 22:26:17 +03:00
Marius Stanciu 0a125ea75f - NCC Tool - optimized tool reset code 2020-06-12 11:15:49 +03:00
Marius Stanciu 5cf363a8db - NCC Tool - allow no tool at NCC Tool start (the Preferences have no tool) 2020-06-12 05:53:31 +03:00
Marius Stanciu 1f9b0a2747 - NCC Tool optimization - moved the UI in its own class
- NCC Tool optimization - optimized the Tool edit method
2020-06-12 05:47:50 +03:00
Marius Stanciu a3fd6e9f87 - 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 2020-06-10 03:27:53 +03:00
Marius Stanciu 850b80bb41 - more refactoring in the app Editors 2020-06-08 19:53:31 +03:00
Marius 05df0a61c2 - 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
2020-06-08 19:46:18 +03:00
Marius Stanciu d97d3eabd2 - minor changes in the way that the tools are installed and connected 2020-06-08 19:28:39 +03:00
Marius Stanciu c915ea8f6d - optimized GUI in Alignment Tool 2020-06-07 23:34:33 +03:00
Marius Stanciu 9c81991d3d - optimized the GUI in Film Tool 2020-06-07 23:21:22 +03:00
Marius Stanciu 039500b43f - fixed issue with trying to access GUI from different threads by adding a new signal for printing to shell messages 2020-06-07 15:30:46 +03:00
Marius Stanciu ea1b47bf89 - 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" 2020-06-07 00:19:33 +03:00
Marius Stanciu fc60677cb8 - 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
2020-06-05 20:38:13 +03:00
Marius Stanciu 2107a4766f - 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.
2020-06-05 07:10:18 +03:00
Marius Stanciu fb602d6f9b - fixed a small issue in the Panelization Tool that blocked the usage of a Geometry object as panelization reference 2020-06-05 04:09:29 +03:00
Marius Stanciu bfdaa73798 - fixed a small issue in the Panelization Tool that blocked the usage of a Geometry object as panelization reference 2020-06-05 03:37:01 +03:00
Marius Stanciu dc8a34bc16 - 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 2020-06-04 11:56:08 +03:00
Marius Stanciu bbf878bebb - updated the language translation strings (and Google_Translated some of them) 2020-06-03 21:08:06 +03:00
Marius Stanciu 2eecb20e95 - remade file names in the app
- fixed the issue with factory_defaults being saved every time the app start
- fixed the preferences not being saved to a file when the Save button is pressed in Edit -> Preferences
- fixed and updated the Transform Tools in the Editors
2020-06-03 20:35:59 +03:00