Commit Graph

367 Commits

Author SHA1 Message Date
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
Marius Stanciu 8e80ec156c - fixed Panelize Tool to do panelization for multiple passes type of geometry that comes out of the isolation done with multiple passes 2019-07-29 02:36:29 +03:00
Marius Stanciu c6e3176ac3 - in Basic mode, the tool type column is no longer hidden as it may create issues when using an painted geometry
- some PEP8 clean-up in FlatCAMGui.py
2019-07-29 00:35:59 +03:00
Marius Stanciu 338f12707d - fixed issue with not using the current units in the tool tables after unit conversion
- after unit conversion from Preferences, the default values are automatically saved by the app
2019-07-28 23:11:35 +03:00
Marius Stanciu 2797a58165 - fixed bug in FlatCAMObj.FlatCAMGeometry.ui_disconnect(); the widgets signals were not disconnected from handlers when required therefore the signals were connected in an exponential way
- some changes in the widgets used in the Selected tab for Geometry object
- some PEP8 cleanup in FlatCAMObj.py
2019-07-19 21:46:11 +03:00
Marius Stanciu 6743927eb2 - more PEP8 corrections 2019-07-16 20:51:09 +03:00
Marius Stanciu 43cb92e1d8 - fixed a possible issue in Gerber Object class
- added a new tool in Gerber Editor: Mark Area Tool. It will mark the polygons in a edited Gerber object with areas within a defined range, allowing to delete some of the not necessary  copper features
- added new menu links in the Gerber Editor menu for Eraser Tool and Mark Area Tool
- added key shortcuts for Eraser Tool (CTRL+E) and Mark Area Tool (ALT+A) and updated the shortcuts list
2019-07-13 21:40:33 +03:00
Marius Stanciu 769f92147a - fixed bug that allowed empty tool in the tools generated in Geometry object
- fixed bug in Tool Cutout that did not allow the transfer of used cutout tool diameter to the cutout geometry object
2019-07-08 20:06:41 +03:00
Marius Stanciu 259a62230e - optimized the toggle of annotations; now there is no need to replot the entire CNCJob object too on toggling of the annotations
- on toggling off the plot visibility the annotations are turned off too
- updated translations; Russian translation at 76% (using Yandex translator engine - needs verification by a native speaker of Russian)
- RELEASE 8.919
2019-06-22 21:37:18 +03:00
Marius Stanciu 21a15e73bd - fixed bug in Gerber isolation (Geometry expects now a value in string format and not float)
- fixed bug in Paint tool: now it is possible to paint geometry generated by External Isolation (or Internal isolation)
- fixed bug in editing a multigeo Geometry object if previously a tool was deleted
2019-06-22 20:17:45 +03:00
Marius Stanciu 963fbc8cbf - fixed recently introduced bug in milling drills/slots functions 2019-06-22 18:02:41 +03:00
Marius Stanciu 68bdfaf062 - some GUI layout optimizations in Edit -> Preferences
- added the possibility for multiple tool diameters in the Edit -> Preferences -> Geometry -> Geometry General -> Tool dia separated by comma
- fixed scaling for the multiple tool diameters in Edit -> Preferences -> Geometry -> Geometry General -> Tool dia, for NCC tools more than 2 and for Solderpaste nozzles more than 2
- fixed bug in CNCJob where the CNC Tools table will show always only 2 decimals for Tool diameters regardless of the current measuring units
- made the tools diameters decimals in case of INCH FlatCAM units to be 4 instead of 3
- fixed bug in updating Grid values whenever toggling the FlatCAM units and the X, Y Grid values are linked, bugs which caused the Y value to be scaled incorrectly
- set the decimals for Grid values to be set to 6 if the units of FlatCAM is INCH and to set to 4 if FlatCAM units are METRIC
- updated translations
- updated the Russian translate from 51% complete to 69% complete using the Yandex translation engine
2019-06-22 17:58:31 +03:00
Marius Stanciu fe3acc93f4 - milling an Excellon file (holes and/or slots) will now transfer the chosen milling bit diameter to the resulting Geometry object 2019-06-19 11:55:45 +03:00
Marius Stanciu ffa92524f0 - fixed bug where for Geometry objects after a successful object rename done in the Object collection view (Project tab), deselect the object and reselect it and then in the Selected tab the name is not the new one but the old one
- for Geometry objects, adding a new tool to the Tools table after a successful rename will now store the new name in the tool data
2019-06-17 17:01:27 +03:00
Marius Stanciu 0244c76605 - restored the FlatCAMObj.visible() to a non-threaded default 2019-06-16 02:34:41 +03:00
Marius Stanciu a106472900 - fixed the Edit -> Conversion -> Join ... functions (merge() functions)
- updated translations
- Russian translate by @camellan is not finished yet
- some PEP8 cleanup in camlib.py
- RELEASE 8.918
2019-06-11 23:04:31 +03:00
Marius Stanciu a5ffe475dd - fixed bug in ToolCutout where creating a cutout object geometry from another external isolation geometry failed
- fixed bug in cncjob TclCommand where the gcode could not be correctly generated due of missing bounds params in obj.options dict
- fixed a hardcoded tolerance in FlatCAMGeometry.generatecncjob() and in FlatCAMGeometry.mtool_gen_cncjob() to use the parameter from Preferences
2019-06-07 23:14:00 +03:00
Marius Stanciu f06fec12ea - added a new parameter in Edit -> Preferences -> CNCJob named Annotation Color; it controls the color of the font used for annotations
- added a new parameter in Edit -> Preferences -> CNCJob named Annotation Size; it controls the size of the font used for annotations
- made visibility change threaded in FlatCAMObj()
2019-06-03 22:59:45 +03:00
Marius Stanciu 2a30101bb0 - TclCommand Geocutout is now creating a new geometry object when working on a geometry, preserving also the origin object 2019-06-03 04:47:29 +03:00
Marius Stanciu c409df0a8e - fixed issue with geometry name not being updated immediately after change while doing geocutout TclCommand
- some changes to enable/disable project context menu entry handlers
2019-06-02 14:04:14 +03:00
Marius Stanciu 9abb9c5df2 - added the possibility to display text annotation for the CNC travel lines. The setting is both in Preferences and in the CNC object properties 2019-05-31 12:43:30 +03:00
Marius Stanciu b7023d8ef6 - more PEP8 cleanup 2019-05-30 21:15:09 +03:00