Commit Graph

388 Commits

Author SHA1 Message Date
Marius Stanciu 168f4a7646 - 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
2019-10-13 06:53:16 +03:00
Marius Stanciu 53338a2186 - fixed the Gerber Parser convert units unnecessary usage. The only units conversion should be done when creating the new object, after the parsing 2019-10-12 04:49:50 +03:00
Marius Stanciu 2ea45c5d58 - 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
2019-10-11 17:43:04 +03:00
Marius Stanciu e6a5e32002 - wip; Tool Move problem: it tries to select all objects, even those that are disabled. 2019-10-10 13:00:44 +03:00
Marius Stanciu d815ae8a6a - made sure that is the text in the source file of a FlatCAMDocument is HTML is loaded as such 2019-10-07 13:34:22 +03:00
Marius Stanciu 8762b115c9 - made FlatCAMExcellon and FlatCAMGerber into their own files in the flatcamParser folder 2019-10-06 07:14:10 +03:00
Marius Stanciu ce9c15a2ed - made the Rules Check Tool document window Read Only 2019-10-06 04:46:25 +03:00
Marius Stanciu fa7511e129 - added display of the results for the Rules Check Tool in a formatted way 2019-10-06 04:13:19 +03:00
Marius Stanciu 01a9763ad6 - 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
2019-10-04 20:43:22 +03:00
Marius Stanciu 6d2ed26e0e - small GUI changes in Optimal Tool and in Film Tool
- some PEP8 corrections
- some code annotations to make it easier to navigate in the FlatCAMGUI.py
- fixed exit FullScreen with Escape key
2019-10-04 15:24:38 +03:00
Marius Stanciu fb0edc6c18 - added more editing features in the Selected Tab for the FlatCAMDocument object 2019-10-03 21:44:37 +03:00
Marius Stanciu 1d2c046ecc - changes for the Document object 2019-10-03 17:15:21 +03:00
Marius Stanciu 5143cafc59 - fixed the FlatCMAScript object when loading it from a project 2019-10-02 22:59:50 +03:00
Marius Stanciu b9b0c8fee8 - fixed the FlatCMAScript object saving when project is saved (loading a project with this script object is not working yet) 2019-10-02 18:11:06 +03:00
Marius Stanciu a75bdfb29d - changed the name of the new object FlatCAMNotes to a more general one FlatCAMDocument
- changed the way a new FlatCAMScript object is made, the method that is processing the Tcl commands when the Run button is clicked is moved to the FlatCAMObj.FlatCAMScript() 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 FlatCAM script object is deleted, it's associated Tab is closed
2019-10-02 17:58:48 +03:00
Marius Stanciu 83f229ed9e - 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 TextEditor class; now all the Code Editor tabs are being kept alive, before only one could be in an open state
2019-10-02 05:47:18 +03:00
Marius Stanciu ee0742db7a - added two new FlatCAM objects: FlatCAMScript and FlatCAMNotes 2019-10-01 18:24:15 +03:00
Marius Stanciu c685f41db0 - 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
2019-10-01 17:07:27 +03:00
Marius Stanciu b444e1e552 - 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 2019-10-01 15:32:31 +03:00
Marius Stanciu 6d3770ee3f - when in Gerber UI is selectd the V-Shape tool, all those parameters (tip dia, dip angle, tool_type = 'V' and cut Z) are transferred to the generated Geometry and prefilled in the Geoemtry UI 2019-10-01 02:23:44 +03:00
Marius Stanciu e0e2aabf99 - 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
2019-10-01 01:38:18 +03:00
Marius Stanciu f47d9cf3d2 - fixed issue #319 where generating a CNCJob from a geometry made with NCC Tool made the app crash
- replaced in FlatCAM Tools and in FLatCAMObj.py  and in Editors all references to hardcoded decimals in string formats for tools with a variable declared in the __init__()
2019-09-28 23:58:23 +03:00
Marius Stanciu 0f91d4dff0 - 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%
2019-09-26 17:46:25 +03:00
Marius Stanciu 61e2792047 - 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 2019-09-25 03:26:34 +03:00
Marius Stanciu 0fe502d068 - 26% in Google-translated French translation and updated some strings too 2019-09-23 20:17:34 +03:00
Marius Stanciu b5e9997713 - in legacy graphic engine, fixed issue with Delete shortcut key trying to delete twice 2019-09-23 17:52:34 +03:00
Marius Stanciu ae7fec6dd1 - 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
2019-09-23 17:08:46 +03:00
Marius Stanciu edbb690d1b - in legacy graphic engine, fixed a bug that when deleting an object all objects where deleted
- added a new TclCommand named set_origin which will set the origin for all loaded objects to zero if the -auto True argument is used and to a certain x,y location if the format is: set_origin 5,7
2019-09-23 03:35:32 +03:00
Marius Stanciu c17d05600b - 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
2019-09-23 01:25:06 +03:00
Marius Stanciu 6238b07826 - 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
- updated the translation files
2019-09-22 17:59:01 +03:00
Marius Stanciu 961c4bca2f - fixed the MultiColor plot option Gerber selected tab to work in legacy graphic engine
- documented some methods in the ShapeCollectionLegacy class
2019-09-22 14:03:20 +03:00
Marius Stanciu f00559bf6a - 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
2019-09-22 13:12:21 +03:00
Marius Stanciu 5a4f5dbe2f - 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
2019-09-22 02:38:56 +03:00
Marius Stanciu bc6dc3decf - fixed CNCJob and Excellon plotting in legacy graphic engine
- in legacy graphic engine fixed the travel vs cut lines in CNCJob objects
- final fix for key shortcuts with modifier in legacy graphic engine
- refactored some of the code in the legacy graphic engine
2019-09-21 18:26:03 +03:00
Marius Stanciu 9aef293a26 - fixed Measuring Tool in legacy graphic engine
- fixed Gerber plotting
- fixed Geometry plotting
2019-09-21 13:07:30 +03:00
Marius Stanciu 01e2755676 - fixed mouse cursor to work for all objects
- fixed event signals to work in both graphic engines: 2D and 3D
2019-09-21 01:10:32 +03:00
Marius Stanciu 14bc9f2dfc - work on ShapeCollectionLegacy 2019-09-20 18:45:36 +03:00
Marius Stanciu 011e80c0ce - legacy graphic engine - made the mouse events work (click, release, doubleclick, dragging)
- legacy graphic engine - made the key events work (simple or with modifiers)
- legacy graphic engine - made the mouse cursor work (enabled/disabled, position report); snapping is not moving the cursor yet
2019-09-20 17:25:32 +03:00
Marius Stanciu 727cee7aec - fixed some issues recently introduced in the TclCommands CNCJob, DrillCNCJob adn write_gcode; changed some parameters names 2019-09-16 17:20:56 +03:00
Marius Stanciu be4d4387f4 - 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
2019-09-16 16:04:47 +03:00
Marius Stanciu 8cba74647f - made all TclCommands not to be plotted automatically
- made sure that all TclCommands are not threaded
2019-09-16 01:39:11 +03:00
Marius Stanciu c06317374e - added possibility to see the GCode when right clicking on the Project tab on a CNCJob object and then clicking View Source 2019-09-15 22:46:51 +03:00
Marius Stanciu b0d545eb03 - fixed isolate TclCommand to use correctly the -outname parameter 2019-09-15 17:21:15 +03:00
Marius Stanciu 8b3e1b5a77 - fixed the TclCommand cncjob to use the -outname parameter
- added some more keywords in the data_model for auto-completer
2019-09-15 16:46:48 +03:00
Marius Stanciu 30f00abce8 - 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
2019-09-15 13:37:06 +03:00
Marius Stanciu a25a70c0e1 - refactored FlatCAMGeometry.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
2019-09-15 05:00:20 +03:00
Marius Stanciu 57f4762261 - added to the NonCopperClear.clear_copper() a parameter to be able to run it non-threaded 2019-09-14 18:27:08 +03:00
Marius Stanciu f6cd63021e - fixed some of the strings that were left in the old way
- updated the POT file
- updated Romanian language partially
2019-09-13 18:27:00 +03:00
Marius Stanciu 4440298327 - fixed the TclCommand MillHoles 2019-09-11 07:06:32 +03:00
Marius Stanciu 91cad9c57d - added the Gerber code as source for the panelized object in Panelize Tool
- whenever a Gerber file is deleted, the mark_shapes objects are deleted also
2019-09-11 04:54:30 +03:00
Marius Stanciu a348bc8738 - made sure that all the progress counters count to 100%; updated this all over 2019-09-10 16:16:27 +03:00
Marius Stanciu 5838bd0554 - added progress for the generation of Isolation geometry 2019-09-10 13:45:12 +03:00
Marius Stanciu 02be0b8510 - made changing the Plot kind in CNCJob selected tab, threaded 2019-09-10 04:44:18 +03:00
Marius Stanciu c66c841d37 - made isolation threaded 2019-09-10 04:29:06 +03:00
Marius Stanciu 59704a6e01 - fixed issue when loading unbuffered a Gerber file that has negative regions
- fixed Panelize Tool to save the aperture geometries into the panel apertures. Also made the tool faster by removing the buffering at the end of the job
- modified FlatCAMEditor's files to the new string format that will allow easier translations
- updated POT file and the Romanian translation
2019-09-10 03:20:14 +03:00
Marius Stanciu ffbb47dde5 - modified FlatCAMObj.py file to the new string format that will allow easier translations 2019-09-09 17:24:54 +03:00
Marius Stanciu 2bd730ceeb - 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.
2019-09-09 14:32:30 +03:00
Marius Stanciu 28a86aa661 - updated German language translation files
- separated the Plotting thread from the transformations threads
2019-09-07 23:16:20 +03:00
Marius Stanciu 97024ed643 - corrected some issues and made Move Tool to show correctly when it is moving and when it is offsetting the objects position 2019-09-07 18:41:48 +03:00
Marius Stanciu 4cbb5846e3 - all transformation functions show now the progress (rotate, mirror, scale, offset, skew)
- made threaded the Offset and Scale operations found in the Selected tab of the object
2019-09-07 17:08:25 +03:00
Marius Stanciu f164dae7a9 - 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)
2019-09-07 15:13:40 +03:00
Marius Stanciu 2c2bdf5002 - 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 2019-09-07 10:55:45 +03:00
Marius Stanciu 124abf78b4 - made the objects offset (therefore the Move Tool) show progress display 2019-09-06 23:05:41 +03:00
Marius Stanciu 053ceb3c24 - added progress display in status bar for generating CNCJob from Geometry objects 2019-09-06 16:27:23 +03:00
Marius Stanciu c1ce72e9fb - some fixes and prepared the activity monitor area to receive updated texts 2019-09-06 15:20:19 +03:00
Marius Stanciu a138c539e4 - 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
2019-09-06 00:16:33 +03:00
Marius Stanciu 67f0c657c6 - more messages 2019-09-05 17:53:59 +03:00
Marius Stanciu 76138986bf - fixed issue with loading files at start-up
- fixed issue with generating bounding box geometry for CNCJob objects
- added some more infobar messages and log.debug
- increased the priority for the worker tasks
2019-09-05 17:38:45 +03:00
Marius Stanciu 4dbf6b2fa9 - small changes in NCC tool regarding the usage of the V-shape tool 2019-09-03 01:32:10 +03:00
Marius Stanciu 7ff8d893c0 - 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
2019-09-03 01:13:03 +03:00
Marius Stanciu b84fe4e901 - in Excellon and Gerber Seleted tab made the Plot (mark) columns not selectable
- some ToolTips were modified
2019-09-02 16:46:38 +03:00
Marius Stanciu 625559555c - 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 2019-09-02 13:52:15 +03:00
Marius Stanciu ba1e0bc94b - fixed Tcl Command CncJob
- fixed crash due of Properties Tool trying to have a convex hull area on FlatCAMCNCJob objects which is not possible due of their nature
- modified Tcl Command SubtractRectangle
- fixed and modernized the Tcl Command Scale to be able to scale on X axis or on Y axis or on both and having as scale reference either the (0, 0) point or the minimum point of the bounding box or the center of the bounding box.
- fixed and modernized the Tcl Command Skew
2019-08-26 00:40:35 +03:00
Marius Stanciu eedfb56bf5 - fixed minor issues 2019-08-25 21:19:03 +03:00
Marius Stanciu d35343881f - fixed issue #298. The changes in postprocessors 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. 2019-08-25 20:48:44 +03:00
Marius Stanciu 0e96be7d9a - made PlotCanvas class inherit from VisPy Canvas instead of creating an instance of it (work of JP) 2019-08-24 04:45:25 +03:00
Marius Stanciu 017d495a41 - fixed TclCommandFollow command; an older function name was used who yielded wrong results 2019-08-22 23:09:41 +03:00
Marius Stanciu 97e262e47c - changed some debug messages in camlib.py and in FlatCAMObj.py 2019-08-21 15:05:50 +03:00
Marius Stanciu 07c31bba22 - fixed bug in Tool Sub that created issues when toggling visibility of the plots 2019-08-19 23:34:37 +03:00
Marius Stanciu b20203eace - moved the initialization of the FlatCAM editors after a read of the default values. If I don't do this then only at the first start of the application the Editors are not functional as the Editor objects are most likely destroyed
- fixed bug in FlatCAM editors that caused the shapes to be drawn without resolution when the app units where INCH
- modified the transformation functions in all classes in camlib.py and FlatCAMObj.py to work with empty geometries
2019-08-17 18:47:41 +03:00
Marius Stanciu 9205dd61f8 - fixed error when creating CNCJob due of having the annotations disabled from preferences but the plot2() function from camlib.CNCJob class still performed operations who yielded TypeError exceptions 2019-08-17 15:11:50 +03:00
Marius Stanciu bc6b2666cd - added estimated time of routing for the CNCJob and added travelled distance parameter for geometry, too 2019-08-17 06:02:20 +03:00
Marius Stanciu e061c4364a - each CNCJob object has now it's own text_collection for the annotations which allow the individual enabling and disabling of the annotations 2019-08-16 17:21:31 +03:00
Marius Stanciu c886e3300c - added the Slot Type parameter for exporting Excellon in Edit -> Preferences -> Excellon -> Export Excellon. Now the Excellon object can be exported also with drilled slot command G85
- fixed bug in Excellon export when there are no zero suppression (coordinates with decimals)
2019-08-16 00:44:04 +03:00
Marius Stanciu cac92f75f2 - improved the FlatCAMGerber.isolate() function to work for geometry in the form of list and also in case that the elements of the list are LinearRings (like when doing the Exterior Isolation)
- in NCC Tool made sure that at each run the old objects are deleted
2019-08-12 22:39:38 +03:00
Marius Stanciu fd104eee55 - done regression to solve the bug with multiple passes cutting from the copper features (I should remember not to make mods here)
- if 'combine' is checked in Gerber isolation but there is only one pass, the resulting geometry will still be single geo
- the 'passes' entry was changed to a IntSpinner so it will allow passes to be entered only in range (1, 999) - it will not allow entry of 0 which may create some issues
2019-08-12 00:28:46 +03:00
Marius Stanciu a4728e966e - fixed issue where the annotations for all the CNCJob objects are toggled together whenever the ones for an single object are toggled 2019-08-11 03:15:04 +03:00
Marius Stanciu cf8a277825 - trying to fix reported bugs 2019-08-11 02:18:32 +03:00
Marius Stanciu eea66c0311 - added new feature in NCC Tool: now another object can be used as reference for the area extent to be cleared of copper 2019-08-10 14:59:29 +03:00
Marius Stanciu 89717642ed - fixed bug that created a choppy geometry for CNCJob when working in INCH
- fixed bug that did not asked the user to save the preferences after importing a new set of preferences, after the user is trying to close the Preferences tab window
2019-08-10 11:46:23 +03:00
Marius Stanciu 6f526acb4d - added Exception handing for the case when the user is trying to save & overwrite a file already opened in another file 2019-08-09 22:39:13 +03:00
Marius Stanciu a87e596f56 - strings added and translations updated 2019-08-06 10:43:48 +03:00
Marius Stanciu 2d448b68ad - wip 2019-08-06 03:40:46 +03:00
Marius Stanciu 5a141ad115 - fixed issue in the isolation function, if the isolation can't be done there will be generated no Geometry object 2019-08-06 03:29:43 +03:00
Marius Stanciu 59b4defa0b - fixed bug that crashed the app after creating a new geometry, if a new object is loaded and the new geometry is deleted and then trying to select the just loaded new object
- made some GUI elements in Edit -> Preferences to have a minimum width as opposed to the previous fixed one
2019-08-06 02:31:09 +03:00
Marius Stanciu afdff59aff - made sure that if using an negative Gerber isolation diameter, the resulting Geometry object will use a tool with positive diameter
- fixed bug that when isolating a Gerber file made out of a single polygon, an Recurrsion Exception was issued together with inability to create tbe isolation
2019-08-05 01:02:19 +03:00
Marius Stanciu cd803266a6 - fulfilled request: When saving a CNC file, if the file name is changed in the OS window, the new name does appear in the “Selected” (in name) and “Project” tabs (in cnc_job) 2019-08-03 03:48:20 +03:00
Marius Stanciu 8cadcb3837 - fixed another bug that when selecting an Excellon object after disabling it it crashed the app
- RELEASE 8.92
2019-08-01 00:37:11 +03:00
Marius Stanciu 7bca0678ea - fixed bug that crashed the app when trying to add a tool without a tool diameter value 2019-07-30 13:00:17 +03:00
Marius Stanciu 02c8cfb085 - fixed bug that crashed the software when trying to edit a GUI value in Geometry selected tab without having a tool in the Tools Table 2019-07-30 12:35:18 +03:00