Commit Graph

339 Commits

Author SHA1 Message Date
Marius Stanciu 209683b2db - added new feature: user can delete apertures in Advanced mode and then create a new FlatCAM Gerber object 2019-03-27 12:26:19 +02:00
Marius Stanciu 1aabb1c084 - added CNCJob geometry for the holes created by the drills from Excellon objects 2019-03-27 01:21:01 +02:00
Marius Stanciu a7e6914584 - fixed an issue where the Geometry plot function protested that it does not have an parameter that is used by the CNCJob plot function. But both inherit from FaltCAMObj plot function which does not have that parameter so something may need to be changed. Until then I provided a phony keyboard parameter to make that function 'shut up' 2019-03-26 15:53:07 +02:00
Marius Stanciu 789dcc5da5 - fixed the Gerber.merge() function. When some of the Gerber files have apertures with same id, create a new aperture id for the object that is fused because each aperture id may hold different geometries. 2019-03-22 20:28:43 +02:00
Marius Stanciu 0eb3ea0283 - fixed the Gerber.merge() to work for the case when one of the merged Gerber objects solid_geometry type is Polygon and not a list 2019-03-20 03:08:07 +02:00
Marius Stanciu bebb827bd2 - added autocomplete for Code editor; TODO: needs to be enabled only when doing Scripts, right now is available for everyone. 2019-03-19 03:05:00 +02:00
Marius Stanciu 6e465d97cd - the Code Editor tab name is changed according to the task; 'save' and 'open' buttons will have filters installed for the QOpenDialog fit to the task 2019-03-19 01:05:25 +02:00
Marius Stanciu abfa78d898 - remade the layout in 2Sided Tool
- work in progress for translation in Romanian - 91%
2019-03-17 15:47:17 +02:00
Marius Stanciu 46da2dfd1e - made the layout combobox current item from Preferences -> General window to reflect the current layout
- remade the POT translate file
- work in progress in translation for Romanian language 44%
- fix for showing tools by activating them from the Menu - final fix.
2019-03-16 00:59:59 +02:00
Marius Stanciu c0d21ee4e0 - made the layout combobox current item from Preferences -> General window to reflect the current layout
- remade the POT translate file
- work in progress in translation for Romanian language 44%
- fix for showing tools by activating them from the Menu - final fix.
2019-03-14 01:09:06 +02:00
Marius Stanciu 255254a292 - some strings were left outside the translation formatting - fixed
- finished the replacement of '_' symbols throughout the app which conflicted with the _() function used by the i18n
2019-03-11 20:00:07 +02:00
Marius Stanciu 9d33e08ecf - added a visual cue in Menu -> Edit about the entries to enter the Editor and to Save & Exit Editor. When one is enabled the other is disabled.
- grouped all the UI files in flatcamGUI folder
2019-03-11 12:23:26 +02:00
Marius Stanciu a6e23b28a7 - fix app crash for the case that there are no translation files
- fixed some forgotten strings to be prepared for internationalization in ToolCalculators
- fixed Tools menu no longer working due of changes
- added some test translation for the ToolCalculators (in Romanian)
- fixed bug in ToolCutOut where for each tool invocation the signals were reconnected
2019-03-10 17:12:58 +02:00
Marius Stanciu 53627b566c - added a fix in the Gerber parser when adding the geometry in the self.apertures dict for the case that the current aperture is None (Allegro does that)
- finished support for internationalization by adding a set of .po/.mo files for the English language. Unfortunately the final action can be done only when Beta will be out of Beta (no more changes) or when I will decide to stop working on this app.
- changed the tooltip for 'feedrate_rapids' parameter to point out that this parameter is useful only for the Marlin postprocessor
2019-03-10 14:34:13 +02:00
Marius Stanciu bfb04d5bee - finished preparing for internationalization for the files: FlatCAMObj, ObjectUI 2019-03-09 00:12:38 +02:00
Marius Stanciu 6ba037fd83 - fixed issue when doing th CTRL (or SHIFT) + LMB, the focus is automatically moved to Project Tab
- further work in internationalization, added a fallback to English language in case there is no translation for a string
2019-03-08 14:10:23 +02:00
Marius Stanciu 574184f44c - fixed Measuring Tool - after doing a measurement the Notebook was switching to Project Tab without letting the user see the results
- more work on the translation engine; the app now restarts after a language is applied
- added protection against using Travel Z parameter with negative or zero value (in Geometry).
2019-03-08 01:32:18 +02:00
Marius Stanciu b20a6a1a85 - modified the way the FlatCAM Tools are run from toolbar as opposed of running them from other sources
- some Gerber UI changes
2019-03-06 15:22:35 +02:00
Marius Stanciu 85ff3805ae - finished work on object hovering 2019-03-04 03:52:12 +02:00
Marius Stanciu 06fb48eb6a - minor UI changes for Gerber UI
- ~~after an object move, the apertures plotted shapes are deleted from canvas and the 'mark all' button is deselected~~
- after move tool action or any other transform (rotate, skew, scale, mirror, offset), the plotted apertures are kept plotted.
- changing units now will convert all the default values from one unit type to another
- prettified the selection shape and the moving shape
- initial work in object hovering shape
2019-03-04 03:47:19 +02:00
Marius Stanciu d79d6cf2bc - minor UI changes for Gerber UI
- after an object move, the apertures plotted shapes are deleted from canvas and the mark all button is deselected
- fixed offset, rotate, scale, skew for follow_geometry. Fixed the move tool also.
- fixed offset, rotate, scale, skew for 'solid_geometry' inside the self.apertures.
2019-03-03 16:35:15 +02:00
Marius Stanciu 9f60df850e - progress in ToolChange Custom commands replacement and rename 2019-02-28 18:02:29 +02:00
Marius Stanciu 1839843fad - added toggle effect for the tools in the toolbar.
- enhanced the toggle effect for the tools in the Tools Toolbar and also for Notebook Tab selection: if the current tool is activated it will toggle the notebook side but only if the installed widget is itself. If coming from another tool, the notebook will stay visible
2019-02-27 17:32:52 +02:00
Marius Stanciu fb6edfc394 - made the Custom ToolChange Text area in CNCJob Selected Tab depend on the status of the ToolChange Enable Checkbox even in the init stage.
- added some parameters throughout camlib gcode generation functions; handled some possible errors (e.g like when attempting to use an empty Custom GCode Toolchange)
2019-02-27 01:45:32 +02:00
Marius Stanciu 18132eab4c - made the polygon fusing in modified Gerber creation, a list comprehension in an attempt for optimization
- when right clicking the files in Project tab, the Save option for Excellon no longer export it but really save the original.
2019-02-27 00:14:53 +02:00
Marius Stanciu 7b4ea1dfa9 - added a Mark All button in the Gerber aperture table.
- because adding shapes to the shapes collection (when doing Mark or Mark All) is time consuming I made the plot_apertures() threaded.
2019-02-26 23:12:15 +02:00
Marius Stanciu 874ce11d84 - work in progress to Toolchange_Custom code replacememnt -> finished the parse and replace function 2019-02-26 17:03:57 +02:00
Marius Stanciu 74ecbabf1f - added a function to read the parameters from ToolChange macro Text Box (I need to move it from CNCJob to Excellon and Geometry) 2019-02-26 02:24:56 +02:00
Marius Stanciu 386c3408ca - added in Preferences a new Category: Gerber Advanced Options. For now it controls the display of Gerber Aperture Table and the "follow" attribute4
- fixed FlatCAMGerber.merge() to merge the self.apertures[ap]['solid_geometry'] too
- started to work on a new feature that allow adding a ToolChange GCode macro - GUI added both in CNCJob Selected tab and in CNCJob Preferences
- added a limited 'sort-of' Gerber Editor: it allows buffering and scaling of apertures
2019-02-26 00:33:31 +02:00
Marius Stanciu 11ef818f0d - more modifications for the Gerber UI layout; made 'follow' an advanced Gerber option 2019-02-25 19:42:56 +02:00
Marius Stanciu d43de2ea77 - fixed the Gerber object UI layout
- added ability to mark individual apertures in Gerber file using the Gerber Aperture Table
2019-02-25 16:28:32 +02:00
Marius Stanciu 4d8eefb92d - fixed the Set To Origin function when Escape was clicked 2019-02-24 01:57:47 +02:00
Marius Stanciu 3bad47b3be - updated the Properties Tool to include more information's, also details if a Geometry is of type MultiGeo or SingleGeo
- remade the Preferences GUI to include the Advanced Options in a separate way so it is obvious which are displayed when App Level is Advanced.
2019-02-23 16:02:45 +02:00
Marius Stanciu 2843810ab3 - some GUI elements changes 2019-02-23 06:11:42 +02:00
Marius Stanciu 7272b46dd9 - added Repetier postprocessor file
- removed "added ability to regenerate objects (it's actually deletion followed by recreation)" because of the way Python pass parameters to functions by reference instead of copy
2019-02-22 16:54:58 +02:00
Marius Stanciu 45b5cba68a - fixed issue with not updating correctly the plot kind (all, cut, travel) when clicking in the CNC Tools Table plot buttons
- made the GCode Editor for ToolSolderPaste clear the text before updating the Code Editor tab
- all the Tabs in Plot Area are closed (except Plot Area itself) on New Project creation
2019-02-22 00:37:57 +02:00
Marius Stanciu d453c31bf5 - finished work in ToolSolderPaste 2019-02-21 23:48:13 +02:00
Marius Stanciu 48e54a0655 - added protection against trying to create a CNCJob from a solder_paste dispenser geometry. This one is different than the default Geometry and can be handled only by SolderPaste Tool.
- ToolSoderPaste tools (nozzles) now have each it's own settings
2019-02-21 14:23:34 +02:00
Marius Stanciu 9557e1af60 - added protection against creating CNCJob from an empty Geometry object (with no geometry inside)
- changed the shortcut key for YouTube channel from F2 to key F4
- changed the way APP LEVEL is showed both in Edit -> Preferences -> General tab and in each Selected Tab. Changed the ToolTips content for this.
- added the functions for GCode View and GCode Save in Tool SolderPaste
2019-02-21 03:04:38 +02:00
Marius Stanciu 4ab2374903 - added protection against creating CNCJob from an empty Geometry object (with no geometry inside)
- changed the shortcut key for YOuTube channel from F2 to key F4
2019-02-21 01:14:55 +02:00
Marius Stanciu 9d0bcf477a - removed the Open Gerber with 'follow' menu entry and also the open_gerber Tcl Command attribute 'follow'. This is no longer required because now the follow_geometry is stored by default in a Gerber object attribute gerber_obj.follow_geometry
- added a new parameter for the Tcl CommandIsolate, named: 'follow'. When follow = 1 (True) the resulting geometry will follow the Gerber paths.
2019-02-19 14:53:55 +02:00
Marius Stanciu d998b87601 - fixed issue with not loading old projects that do not have certain information's required by the new versions of FlatCAM
- compacted a bit more the GUI for Gerber Object
2019-02-19 13:00:38 +02:00
Marius Stanciu 88a0be7cf1 - modified the GUI in Objects Selected Tab to accommodate 2 different modes: basic and Advanced. In Basic mode, some of the functionality's are hidden from the user. 2019-02-18 21:19:57 +02:00
Marius Stanciu 941cec30ae - Serialized the source_file of the Objects so it is saved in the FlatCAM project and restored.
- if there is a single tool in the tool list (Geometry , Excellon) and the user click the Generate GCode, use that tool even if it is not selected
2019-02-16 21:03:27 +02:00
Marius Stanciu 326599e4a3 - changed some status bar messages
- New feature: added the capability to view the source code of the Gerber/Excellon file that was loaded into the app. The file is also stored as an object attribute for later use. THe view option is in the project context menu and in Menu -> Options -> View Source
2019-02-16 19:47:50 +02:00
Marius Stanciu 679b33fa72 - updated the Excellon plot function so it can plot the Excellon's from old projects
- removed the message boxes that popup on Excellon Export errors and replaced them with status bar messages
2019-02-16 01:52:20 +02:00
Marius Stanciu e717cb8f15 - remade the Excellon export function to work with parameters entered in Edit -> Preferences -> Excellon Export
- added a new entry in the Project Context Menu named 'Save'. It will actually work for Geometry and it will do Export DXF and for Excellon and it will do Export Excellon
2019-02-15 23:35:23 +02:00
Marius Stanciu aea67a4a1d - rearranged the FIle and Edit menu's and added some explanatory tooltips on certain menu items that could be seen as cryptic
- added Excellon Export Options in Edit -> Preferences
- started to work in using the Excellon Export parameters
2019-02-15 16:41:42 +02:00
Marius Stanciu a978b5621d - the notebook is automatically collapsed when there are no objects in the collection and it is showed when adding an object
- added new options in Edit -> Preferences -> General -> App Preferences to control if the Notebook is showed at startup and if the notebook is closed when there are no objects in the collection and showed when the collection has objects.
2019-02-15 01:48:34 +02:00
Marius Stanciu fffdd6db97 - small changes 2019-02-14 23:55:43 +02:00
Marius Stanciu fa0ee40e90 - in Gerber aperture table now the values are displayed in the current units set in FlatCAM 2019-02-14 23:21:20 +02:00
Marius Stanciu cda10998e8 - updated the function for the project context menu 'Generate CNC' menu entry (Action) to use the modernized function FlatCAMObj.FlatCAMGeometry.on_generatecnc_button_click() 2019-02-14 21:33:42 +02:00
Marius Stanciu 3a05ebaffb - added total travel distance for CNCJob object created from Excellon Object in the CNCJob Selected tab 2019-02-14 01:21:24 +02:00
Marius Stanciu e091fd232d - added (and commented) an experimental FlatCAMObj.FlatCAMGerber.plot_apertures() 2019-02-14 00:09:48 +02:00
Marius Stanciu 15b533f25e - made the Gerber aperture table not visibile as default and added a checkbox that can toggle the visibility
- fixed issue with plotting in CNCJob; with Plot kind set to something else than 'all' when toggling Plot, it was defaulting to kind = 'all'
2019-02-13 23:48:43 +02:00
Marius Stanciu 53e8e4d486 - made the Gerber aperture table hidden by default and added a checkbox to show it 2019-02-13 22:34:56 +02:00
Marius Stanciu f3b1b45968 - changed the layout in the Selected Tab UI
- started to add apertures table support
- finished Gerber aperture table display
2019-02-13 17:26:21 +02:00
Marius Stanciu c94679919d - stored solid_geometry of Excellon object in the self.tools dictionary
- finished the solid_geometry restore after edit in Excellon Editor
- finished plotting selection for each tool in the Excellon Tool Table
- fixed the camlib.Excellon.bounds() function for the new type of Excellon geometry therefore fixed the canvas selection, too
2019-02-13 01:22:09 +02:00
Marius Stanciu 02793f7ae2 - starting to work on storing the solid_geometry for each tool in part in Excellon Object 2019-02-12 16:55:43 +02:00
Marius Stanciu 9b61e4cc37 - finished work on Offset parameter in Excellon Object (Excellon Editor, camlib, FlatCAMObj updated to take this param in consideration)
- fixed a bug where in Excellon editor when editing a file, a tool was automatically added. That is supposed to happen only for empty newly created Excellon Objects.
2019-02-12 15:12:12 +02:00
Marius Stanciu d0641458e4 - whenever a FlatCAM tool is activated, if the notebook side is hidden it will be unhidden
- reactivated the Voronoi classed
- added a new parameter named Offset in the Excellon tool table - work in progress
2019-02-12 04:00:11 +02:00
Marius Stanciu 258f877865 - changed some log messages 2019-02-10 14:02:53 +02:00
Marius Stanciu f35994a712 - repurposed shortcut key 'Delete' to delete tools in tooltable when the mouse is over the Seleted tab (with Geometry inside) or in Tools tab (when NCC Tool or Paint Tool is inside). Or in Excellon Editor when mouse is hovering the Selected tab selecting a tool, 'Delete' key will delete that tool, if on canvas 'Delete' key will delete a selected shape (drill). In rest, will delete selected objects. 2019-02-10 02:09:05 +02:00
Marius Stanciu 8b0a9a429a - fixed some errors 2019-02-09 01:47:59 +02:00
Marius Stanciu 8f000c0a18 - in Excellon Editor added a protection for Tool_dia field in case numbers using comma as decimal separator are used. Also added a QDoubleValidator forcing a number with max 4 decimals and from 0.0000 to 9.9999
- in Excellon Editor added a shortcut key 'T' that popup a window allowing to enter a new Tool with the set diameter
- in App added a shortcut key 'T' that popup a windows allowing to enter a new Tool with set diameter only when the Selected tab is on focus and only if a Geometry object is selected
- changed the shortcut key for Transform Tool from 'T' to 'ALT+T'
- fixed bug in Geometry Selected tab that generated error when used tool offset was less than half of either total length or half of total width. Now the app signal the issue with a status bar message
- added Double Validator for the Offset value so only float numbers can be entered.
- in App added a shortcut key 'T' that popup a windows allowing to enter a new Tool with set diameter only when the Tool tab is on focus and only if a NCC Tool or Paint Area Tool object is installed in the Tool Tab
2019-02-09 00:08:54 +02:00
Marius Stanciu 2ee80990e5 - added a new function (and shortcut key Escape) that when triggered it deselects all selected objects and delete the selection box(es)
- fixed bug in Excellon Gcode generation that made the toolchange X,Y always none regardless of the value in Preferences
2019-02-06 21:37:50 +02:00
Marius Stanciu 9dfbae7515 - added plot kind for CNC Job in the App Preferences 2019-02-06 20:29:53 +02:00
Marius Stanciu dedf8c09de - fixed the name self-insert in save dialog file for GCode; added protection in case the save path is None
- fixed FlatCAM crash when trying to make drills GCode out of a file that have only slots.
- made the shell toggle shortcut key work when focused on Selected Tab; toggle units shortcut also
- changed the messages for Units COnversion
2019-02-06 14:03:59 +02:00
Marius Stanciu b589292c0f - fixed bug in Excellon Slots milling: a value of a dict key was a string instead to be an int. A cast to integer solved it. 2019-02-06 02:17:29 +02:00
Marius Stanciu 299a6585a7 - done a regression on Tool Tab default text. It somehow delete Tools in certain scenarios so I got rid of it
- fixed bug in multigeometry geometry not having the bounds in self.options and crashing the GCode generation
- fixed bug that crashed whole application in case that the GCode editor is activated on a Tool gcode that is defective.
2019-02-06 00:16:14 +02:00
Marius Stanciu 3b8b7d470a - added a new parameter to set the feedrate of the probing in case the used postprocessor does probing (has toolchange_probe in it's name)
- fixed bug in Marlin postprocessor for the Excellon files; the header and toolchange event always used the parenthesis witch is not compatible with GCode for Marlin
- fixed a issue with a move to Z_move before any toolchange
2019-02-05 19:40:46 +02:00
Marius Stanciu 822800e7f5 - added a way to set the Probe depth if Toolchange_Probe postprocessors are selected
- finished the postprocessor file for MACH3 tool probing on toolchange event
2019-02-05 16:43:12 +02:00
Marius Stanciu e1888b1647 - added an automatic name on each save operation based on the object name and/or the current date
- added more information's for the statistics
2019-02-03 23:08:09 +02:00
Marius Stanciu 6ea3499d39 - updated the new shortcut list with the shortcuts added lately
- now the special messages in the Shell are color coded according to the level. Before they all were RED. Now the WARNINGS are yellow, ERRORS are red and SUCCESS is a dark green. Also the level is in CAPS LOCK to make them more obvious
- some more changes to GUI interface (solved issues)
- added some status bar messages in the Geometry Editor to guide the user when using the Geometry Tools
- now the '`' shortcut key that shows the 'shortcut key list' in Editors points to the same window which is created in a tab no longer as a pop-up window. This tab can be detached if needed.
2019-02-03 15:13:09 +02:00
Marius Stanciu 12b78cf2f3 - fixed the snap magnet button in Geometry Editor, restored the checkable property to True
- some more changes in the Editors GUI in deactivate() function
- a fix for saving again empt an edited new and empty Excellon Object
2019-02-03 00:52:57 +02:00
Marius Stanciu 7607aad8d8 - added protection against entering float numbers with comma separator instead of decimal dot separator in key points of FlatCAM (not everywhere)
- added a choice of plotting the kind of geometry for the CNC plot (all, travel and cut kind of geometries) in CNCJob Selected Tab
2019-02-02 23:56:08 +02:00
Marius Stanciu de7e41991d - fixed a source of possible errors in DetachableTab Widget.
- fixed gcode conversion/scale (on units change) when multiple values are found on each line
- replaced the pop-up window for the shortcut list with a new detachable tab
- removed the pop-up messages from the rotate, skew, flip commands
2019-02-02 03:27:34 +02:00
Marius Stanciu d45d2c05ec - added the bounds coordinates to the GCODE header; modified the postprocessor files to show them. 2019-02-01 00:23:20 +02:00
Marius Stanciu d5853722c3 - updated the camlib.CNCJob.scale() function so now the GCode is scaled also (quite a HACK :( it will need to be replaced at some point)). Units change work now on the GCODE also. 2019-01-31 23:07:53 +02:00
Marius Stanciu 60614e4b45 - more fixes (didn't get it right before) 2019-01-31 02:50:03 +02:00
Marius Stanciu 4441e40042 - fixed postprocessor files to work with toolchange_xy parameter value = None (no values in Edit - Preferences fields) - actual fix
- fixed Tcl commands CncJob and DrillCncJob to work with toolchange
2019-01-31 01:45:14 +02:00
Marius Stanciu 7bc806f1dc - fixed unit conversion functions in case the toolchange_xy parameter is None
- more fixes in camlib.CNCJob regarding usage of toolchange (in case it is None)
- fixed postprocessor files to work with toolchange_xy parameter value = None (no values in Edit - Preferences fields)
2019-01-31 00:36:32 +02:00
Marius Stanciu 7e5ce009d8 - added a traceback report in the TCL Shell for the errors that don't allow creation of an object; useful to trace exceptions/errors
- in case that the Toolchange X,Y parameter in Selected (or in Preferences) are deleted then the app will still do the job using the current coordinates for toolchange
- fixed an issue in camlib.CNCJob where tha variable self.toolchange_xy was used for 2 different purposes which created loss of information.
2019-01-30 23:17:27 +02:00
Marius Stanciu 97c5c3fe1c - optimized the FlatCAMCNCJob.on_plot_cb_click_table() plot function and solved a bug regarding having tools numbers not in sync with the cnc tool table 2019-01-29 23:01:41 +02:00
Marius Stanciu 5a0390f2a4 - fixed the scale, mirror, rotate, skew functions to work with Geometry Objects of multi-geometry type. 2019-01-29 15:56:49 +02:00
Marius Stanciu f6271033b3 - fixed issue in Tool Calculators when a float value was entered starting only with the dot.
- added protection for entering incorrect values in Offset and Scale fields for Gerber and Geometry objects (in Selected Tab)
2019-01-29 01:03:21 +02:00
Marius Stanciu c80271935e - minor changes 2019-01-28 16:31:06 +02:00
Marius Stanciu 8145ff9aac - fixed the FlatCAMGerber.merge() function
- added a new menu entry for the Gerber Join function: Edit -> Conversions -> "Join Gerber(s) to Gerber" allowing joining Gerber objects into a final Gerber object
2019-01-28 02:01:53 +02:00
Marius Stanciu 4f7b2bbb34 - added options for trace segmentation that can be useful for auto-levelling (code snippet from Lei Zheng from a rejected pull request on FlatCAM https://bitbucket.org/realthunder/ ) 2019-01-27 05:03:23 +02:00
Marius Stanciu c4a9c8bd77 - added more key shortcuts into the application; they are now displayed in the GUI menu's
- reorganized the Edit -> Preferences -> Global
- redesigned the messagebox that is showed when quiting ot creating a New Project: now it has an option ('Cancel') to abort the process returning to the app
2019-01-27 03:32:09 +02:00
Marius Stanciu c0031235cd - fixed grbl_laser postprocessor file
- updated function for copy of an Excellon object for the case when the object has slots
- updated FlatCAMExcellon.merge() function to work in case some (or all) of the merged objects have slots
2019-01-26 09:08:41 +02:00
Marius Stanciu d88d334867 - make sure to copy the options attribute to the final object in the case of: FlatCAMGeometry.merge(), FlatCAMGerber.merge() and for the Panelize Tool 2019-01-25 15:27:46 +02:00
Marius Stanciu 766e15ae38 - changed some tooltips
- added tooltips in Excellon tool table headers
- in Excellon Tool Table the columns are now only selectable by clicking on the header (sorting is done automatically)
- if CNCJob from Excellon then hide the CNC tools table in CNCJob Object
2019-01-21 23:44:22 +02:00
Marius Stanciu b9a062a84e - when saving HPGL code it will be saved as a file with extension .plt
- the units mentioned in HPGL format are only METRIC therefore if FlatCAM units are in INCH they will be transform to METRIC
- the minimum unit in HPGL is 0.025mm therefore the coordinates are rounded to a multiple of 0.025mm
2019-01-20 04:11:34 +02:00
Marius Stanciu 7ea6ee4a85 - fixed the HPGL code geometry rendering when travel
- fixed the message box layout when asking to save the current work
- made sure that whenever the HPGL postprocessor is selected the Toolchange is always ON and the MultiDepth is OFF
- the HPGL postprocessor entry is not allowed in Excellon Object postprocessor selection combobox as it is only applicable for Geometry
2019-01-20 02:46:42 +02:00
Marius Stanciu 4b6df74c2e - added initial implementation of HPGL postprocessor 2019-01-19 02:31:47 +02:00
Marius Stanciu 5b7fe5ef11 - modified the first line in the Gcode header to show the FlatCAM version and version_date 2019-01-09 21:55:09 +02:00
Marius Stanciu ddf4884051 - fixed cutting from copper features when doing Gerber isolation with multiple passes 2019-01-07 21:38:34 +02:00
Marius Stanciu c7db9aa566 - fixed the Marlin postprocessor detection in GCode header
- the version date in GCode header is now the one set in FlatCAMApp.App.version_date
- fixed bug in postprocessor files: number of drills is now calculated only for the Excellon objects in toolchange function (only Excellon objects have drills)
2019-01-07 02:56:55 +02:00
Marius Stanciu 954bd9097a - fixed the Join function to work on Gerber and Excellon, Gerber and Gerber, Excellon and Excelon combination of objects. The merged property is the solid_geometry and the result is a FlatCAMGeometry object. 2019-01-07 01:23:04 +02:00
Marius Stanciu 3ea1f4e62c - fixed cncjob TclCommand - it used the default values for parameters
- fixed the layout in ToolTransform
- fixed the initial text in the ToolShell
2019-01-06 20:40:05 +02:00
Marius Stanciu e48d2d2f49 -clean-up before merge 2019-01-03 21:25:08 +02:00
Marius Stanciu 421e9766ea -clean-up before merge 2019-01-03 21:20:54 +02:00
Idechix 665060a185 Merged in idechix/flatcam (pull request #79)
adding GUI interface for mirror and auto offset functions
2018-05-31 15:37:04 +00:00
Marius Stanciu 9e79843026 Merged in marius_stanciu/flatcam_mpl/Port_to_Python3k (pull request #84)
Conversion from Python2 code to Python3 code
2018-05-31 13:15:50 +00:00
Marius Stanciu d8ea4a268c - hopefully this will solve the conflict 2018-05-31 01:19:11 +03:00
Marius Stanciu 0b49a061be - hopefully this will solve the conflict 2018-05-31 01:14:04 +03:00
Marius Stanciu 969eb933fb - hopefully this will solve the conflict 2018-05-31 01:11:17 +03:00
Marius Stanciu 8a9c4b4648 Merged in marius_stanciu/flatcam_mpl/fix_calls_to_info() (pull request #96)
Fix issue #254
2018-05-30 20:04:27 +00:00
Marius Stanciu c85a142759 - fixing issue #254
- replaced (as per advice from @jpcgt) the lines with app.info call
to using a signal which is safe to use in a threaded environment,
app.inform.emit()
2018-05-30 22:52:50 +03:00
Marius Stanciu a6a26de0d3 Merge https://bitbucket.org/jpcgt/flatcam/src/master into Port_to_Python3k
# Conflicts:
#	ObjectCollection.py
2018-05-30 20:38:43 +03:00
Marius Stanciu 4cf06b71e8 - for whatever reason, using directly the name of the object in a
QtGui.QStadardItem is creating issues in the tests. Converting it to a
string solve this. After solving the conflict in the pull request this
modification was lost so I am doing it again.
- the FlatCAMObj.FlatCAMGerber.isolate() method is having the line
app.obj.info() which randomly create issues due of using QPixMaps outside
of the GUI thread.
2018-05-30 18:39:04 +03:00
Marius Stanciu 41dffe44d4 Merge https://bitbucket.org/marius_stanciu/flatcam_mpl/src/master into Port_to_Python3k 2018-05-30 17:54:34 +03:00
Marius Stanciu 3b9767cc6f - I've finally run the tests with OK result (56 tests in 102.937 sec)
- I had to play with module imports as they created a lot of error in
the tests although in reality the program worked OK.
- I've fixed some mistakes in TcL commands (they were testing isinstance
against the like of Geometry instead of FlatCAMGeometry)
- I've had to add some fixes in ObjectCollections.py (error on
create_index() method but Marco already fixed this in the checkbox
in project tab pull request and knew about this.
- Although at some point the tests run fine, I've made some checkings
on my own over the Tcl commands and discovered errors which I fixed as
mentioned above.
- conclusion is that tests are just a must and do not cover everything
(like saving projects which at some point by juggling with imports I
braked and tests were 100% OK)
2018-05-30 02:17:34 +03:00
Marius Stanciu 1242382002 Merged in marius_stanciu/flatcam_mpl/table_tool_new_column (pull request #88)
Table tool new column show number of drills for each tool
2018-05-29 15:55:25 +00:00
Marius Stanciu 4c0884e16d - when using .keys method (in Python3 is no longer atomic operation) to
make it more resilient to multithreading I've added the more costing
operation of copy().
2018-05-29 03:42:35 +03:00
Marius Stanciu 5c6b68d7cb - forgot to make the changes to sorted_tools in generate_milling method
from FlatCAMObj.py
2018-05-28 13:55:20 +03:00
Marius Stanciu bc4411d566 - added a new column in the TableTool where I show the number of drill
holes for each tool.
2018-05-27 12:07:57 +03:00
Marius Stanciu a4bbb98bf1 - converted from Python2 code to Python3 code
- in camlib.py, CNCJob class -> generate_from_excellon_by_tool() was
failing in the line to sort the tools due of been unable to compare
between dict's. I replaced that section.
2018-05-26 04:43:40 +03:00
Jakob Staudt c34c59f870 Changed Indentation to Spaces 2018-05-24 10:16:48 +00:00
Jakob Staudt 20bc6b4da5 Fixed Indentation Error in line 1077 2018-05-24 10:04:47 +00:00
Jakob Staudt 6877d0cd9b Added postprocessing GUI and Code 2018-05-24 11:57:42 +02:00
Jakob Staudt bdc2d8cc59 Added postprocessing GUI and Code 2018-05-24 11:52:02 +02:00
Idechix 2a2d8d75cc adding GUI interface for mirror and auto offset functions 2018-05-19 12:21:27 +02:00
mquezada e971372d7c Incorporating comments and functionality frpm JP. Removed need to use tab_change signal, removed inheritance dependency on QAbstractItemModel, implemented option_changed property. 2018-05-04 19:41:20 -04:00
Juan Pablo Caram 62f0662083 Support to mill all holes from the command line. Fixes #218. 2017-05-05 16:20:14 -04:00
Matthieu Berthomé 231a37274c convert values given by save file dialog to unicode 2017-03-24 14:29:30 +01:00
Juan Pablo Caram fb6e1135e9 Added comments. 2016-11-01 00:34:46 -04:00
Juan Pablo Caram f6d9901365 Added "connect" option for painting polygons. 2016-10-27 17:34:41 -04:00
Juan Pablo Caram 0b26a90175 Support for parallel-line painting. 2016-10-27 16:57:36 -04:00
Juan Pablo Caram 38c44749f1 Multiple polygon painting functional and with unittests. 2016-09-25 13:11:03 -04:00
Juan Pablo Caram 8afb0704fd Functional select-all for painting (#210). 2016-09-23 14:04:31 -04:00
Juan Pablo Caram 9f4ee91b0e Comments at top of files. Also fixes #214. 2016-09-22 10:17:51 -04:00
Juan Pablo Caram dbe0105f9b Fixes SVG parser to produce polygons. Fixes #212. 2016-09-21 13:01:51 -04:00
Juan Pablo Caram 7474609776 Added feature: Select all polygons for painting and shell support with "paint" command. 2016-09-19 16:44:29 -04:00
Juan Pablo Caram a9b4ff767b Some cleanup to shell tests. 2016-07-03 15:59:25 -04:00
Juan Pablo Caram b4017cfec2 Update instead of setting options when reading project. Fixes #204. 2016-07-02 17:36:19 -04:00
Juan Pablo Caram d1442a4900 Cleaned up G-code parser. Fixed dwell command. Fixes #184. 2016-06-04 16:45:52 -04:00
Juan Pablo Caram 6136afe84c Added dwell (G4) post processing option to gcode. 2016-06-03 22:19:47 -04:00
Juan Pablo Caram 36d0a2e029 Cleaned up tests for shell. Added test steps for gerber flow. 2016-06-03 17:15:35 -04:00
Kamil Sopko 980638630d cleanups
implement TclCommand.TclCommandSignaled as proof of concept (not usefull)
bypass using threads  within obj.generatecncjob(use_thread = False, **args)
reimplement some more shell commands  to  OOP style
2016-03-19 15:13:07 +01:00
Juan Pablo Caram 0cc60576ab Reverted changes to read_form_item(). See #193. 2016-02-29 13:59:20 -05:00
Kamil Sopko c3e544ac6c FlatCAMObj - to_form,read_form,read_form_item cleanups for better debuging and cleanup Excellon merge method
FlatCAMApp - fix  accidentall delete issue, change  calling  to  understand FlatCAMObj changes
2016-02-23 12:21:57 +01:00
Kamil Sopko 62816a614e OK python does not allow overloading for methods 2016-02-21 17:17:05 +01:00
Kamil Sopko 84322882e9 fix FlatCamObj.offset - offset does not work on joined geometries, if tree was not flat it send list into affinity.translate.
implement FlatCAMExcellon.merge - to be able join more excellons  into  one job
2016-02-21 17:03:59 +01:00
Marius Stanciu a7b29065df Solved issue #188: Order of the drill bits in Gcode generation from Excellon file
The tools are ordered by diameter as I found that the tools order in the Excellon file is not always diameter based. There is also a plated / no-plated holes criteria.
The tools in the GUI tool-list are selected all by default.
If the user wants to select only some tools, he should be carefull when selecting the tools as the order of the selection will be the actual order of the tools in G-code.
2016-02-14 07:40:32 +02:00
Juan Pablo Caram af46cae5c7 Default value for depth/cut now positive. Added note to tooltip. 2015-11-01 18:11:17 -05:00
Juan Pablo Caram 051b82009d Multiple depth cut functional. 2015-11-01 18:06:20 -05:00
Juan Pablo Caram b52863a6af Added comments. 2015-10-31 18:58:46 -04:00
Juan Pablo Caram 8f5cc7a02d Option to override user's defaults. Needed for unit testing. 2015-10-28 12:00:56 -04:00
Juan Pablo Caram a2ac2b12be Support for milling holes from the shell, command "millholes". 2015-10-03 20:03:53 -04:00
Juan Pablo Caram f503dabc7e Spindle speed for G-code from geometry and excellon. Solves #124. 2015-09-05 17:41:00 -04:00
Juan Pablo Caram 0077aaea14 Started solution to #145. 2015-08-30 18:22:54 -04:00
Jørn Sandvik Nilsson 44f5da3326 Added parameter "spindlespeed" to cncjob and drillcncjob. Will generate gcode "M03 S4000" (4000 rpm), or "M03" if omitted. 2015-07-17 09:49:24 +02:00
phdussud f5e481d1fa Best effort to generate isolation path cutting on the conventional side 2015-06-20 17:50:02 -07:00
phdussud bc524684ab Implemented issue #137 2015-05-28 16:07:06 -07:00
jpcaram b89a04d1e2 Prepend to gcode. Impements issue #115. 2015-02-13 14:47:00 -05:00
jpcaram 9dec4ff32f Activity shown for CNC Job generation via context manager. 2015-02-13 14:37:54 -05:00
jpcaram 41e63c4390 Added paint_connect to standard paint algorithm. Resolves issue #103. 2015-02-07 18:41:29 -05:00
jpcaram 6e8f82c487 Tool change support fixes. 2015-02-07 13:41:56 -05:00
jpcaram bba4f3a8bb Tool change support for gcode from excellon. Untested. 2015-02-07 13:32:58 -05:00
jpcaram a34ca26a24 Introduce activity monitor FlatCAMProcess.py. 2015-02-01 20:03:03 -05:00
jpcaram f92255b8f9 Fixed bug introduced to clear_poly() in previous commit. 2015-01-30 15:17:57 -05:00
jpcaram c2c7a83855 Seed painting algorithm working with optimizations. 2015-01-29 17:02:06 -05:00
jpcaram 6b51f03db2 "Paint connect" functional. Added to seed-based painting and unit-tested. "Path connect" still pending. Disabled. "Path connect" unit test added. 2015-01-25 16:55:22 -05:00
Juan Pablo Caram d002b6c5c6 Hid offset and scale tools from CNCJob GUI. Such features are not implemented for CNCJob objects. 2015-01-19 11:53:28 -05:00
Juan Pablo Caram 34a6b60053 Fixed Geometry merging. Solves issue #99. 2015-01-18 20:23:37 -05:00
jpcaram 4c234fcd55 Fixes polygon finding for painting. Function find_polygon made a method of Geometry. Solves Issue #96. 2015-01-14 20:24:37 -05:00
Juan Pablo Caram d0eff0f25d Cleanup. 2015-01-07 09:38:46 -05:00
jpcaram 55bf206060 Cleanup. 2015-01-01 17:32:56 -05:00
jpcaram 97a1e17b0d Fixed bug preventing from saving G-Code. 2014-12-19 13:40:14 -05:00
Juan Pablo Caram f68cffcfb2 Hole milling is functional. Solves issue #74. 2014-12-09 21:30:01 -05:00
Juan Pablo Caram fe2b4c7478 Added Feed Method for clearing polygon. Some minor correction to Geometry.plot() 2014-12-07 14:53:33 -05:00
Juan Pablo Caram cea41c827e Merge Geometry. Excellon coordinate parse fix. New GCode generation algorithm. Improved status bar. 2014-11-16 18:32:15 -05:00
Juan Pablo Caram 5659c3e7bd Fixed Gerber parser: Now buffers current path with previous tool on tool change. 2014-11-13 15:06:43 -05:00
Juan Pablo Caram 73aa0c38a0 Basic geometry editor for goemetry objects started. 2014-10-28 17:39:38 -04:00
Juan Pablo Caram 63a97bb15b Functioning shell. Version check from flatcam.org. Usage report on version check. 2014-10-13 18:16:43 -04:00
Juan Pablo Caram b2cc2f3fdb Major work on the command line tool. Version check on the new website. 2014-09-21 21:51:50 -04:00
Juan Pablo Caram 8cb509d6f3 Initial implementation of console. 2014-09-13 17:29:07 -04:00
Juan Pablo Caram 16734f5d1a Convertion to Qt. Major refactoring. 2014-06-13 15:21:11 -04:00
Juan Pablo Caram 74a1331a7a Typo fix in ObjectCollection.py 2014-05-05 10:15:57 -04:00
Juan Pablo Caram 582e472e12 Use of logging instead of print statements. 2014-05-02 22:10:04 -04:00
Juan Pablo Caram 0bdc3b19f0 Major modifications to data/gui interactions. In progress. 2014-04-25 01:24:03 -04:00
Juan Pablo Caram e0d2daca6c Optimized Gerber parser. Some minor improvements to Excellon parser. 2014-04-18 20:20:17 -04:00
Juan Pablo Caram 2ed0f73f87 Support for LPD and LPC in Gerber. Major changes in Gerber parser. 2014-04-12 02:16:39 -04:00
Juan Pablo Caram 6c13b7dc59 Warning before overwriting. More flexible Excellon parser (tool numbers). Other small fixes. 2014-04-05 00:36:23 -04:00
Juan Pablo Caram 9740739f05 FlatCAMObjs now stored in ListStore. Expected to solve several issues. Some updates to the new architecture still pending. 2014-04-04 11:41:03 -04:00
Juan Pablo Caram 609561f7a3 Created class ObjectCollection to manage the list of objects in the program. Converted the program to use it. Not fully functional yet. 2014-04-02 19:53:00 -04:00
Juan Pablo Caram 23ba2105c1 Bug fix in Excellon parser. Was not supporting a '+' in from of numbers. 2014-03-28 18:14:21 -04:00