From 2549e9925ecbe994320e7478f5a6debc8f7b1f10 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Tue, 28 Apr 2020 09:48:49 +0300 Subject: [PATCH] - handled a possible situation in App.load_defaults() method - fixed some issues in FlatCAMDB that may appear in certain scenarios --- CHANGELOG.md | 6 ++++++ FlatCAMApp.py | 2 +- FlatCAMDB.py | 28 ++++++++++++++-------------- README.md | 40 +++++++++++++++++++++++++++++++--------- 4 files changed, 52 insertions(+), 24 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d816b22a..b9900abf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ CHANGELOG for FlatCAM beta ================================================= +28.04.2020 + +- handled a possible situation in App.load_defaults() method +- fixed some issues in FlatCAMDB that may appear in certain scenarios + 27.04.2020 - finished the moving of all Tcl Shell stuff out of the FlatCAAMApp class to flatcamTools.ToolShell class @@ -24,6 +29,7 @@ CHANGELOG for FlatCAM beta - added support for Hungarian language - no translation for now - minor changes - moved the ObjectCollection class to the flatcamObjects folder where it belongs +- Linux Makefile 25.04.2020 diff --git a/FlatCAMApp.py b/FlatCAMApp.py index 936b11cf..99d45118 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -3840,7 +3840,7 @@ class App(QtCore.QObject): # may be stored as strings we check their types. try: target = eval(self.defaults[k]) - except NameError: + except (NameError, TypeError): # it's an unknown string leave it as it is target = deepcopy(self.defaults[k]) diff --git a/FlatCAMDB.py b/FlatCAMDB.py index 3d7b35a8..c0e85cc3 100644 --- a/FlatCAMDB.py +++ b/FlatCAMDB.py @@ -916,19 +916,19 @@ class ToolsDB(QtWidgets.QWidget): self.app.ui.plot_tab_area.removeTab(idx) self.app.inform.emit('%s' % _("Cancelled adding tool from DB.")) - def resize_new_tool_table_widget(self, min_size, max_size): - """ - Resize the table widget responsible for adding new tool in the Tool Database - - :param min_size: passed by rangeChanged signal or the self.new_tool_table_widget.horizontalScrollBar() - :param max_size: passed by rangeChanged signal or the self.new_tool_table_widget.horizontalScrollBar() - :return: - """ - t_height = self.t_height - if max_size > min_size: - t_height = self.t_height + self.new_tool_table_widget.verticalScrollBar().height() - - self.new_tool_table_widget.setMaximumHeight(t_height) + # def resize_new_tool_table_widget(self, min_size, max_size): + # """ + # Resize the table widget responsible for adding new tool in the Tool Database + # + # :param min_size: passed by rangeChanged signal or the self.new_tool_table_widget.horizontalScrollBar() + # :param max_size: passed by rangeChanged signal or the self.new_tool_table_widget.horizontalScrollBar() + # :return: + # """ + # t_height = self.t_height + # if max_size > min_size: + # t_height = self.t_height + self.new_tool_table_widget.verticalScrollBar().height() + # + # self.new_tool_table_widget.setMaximumHeight(t_height) def closeEvent(self, QCloseEvent): super().closeEvent(QCloseEvent) @@ -2120,7 +2120,7 @@ class ToolsDB2(QtWidgets.QWidget): json.dump(self.db_tool_dict, f, default=to_dict, indent=2) except Exception as e: self.app.log.debug("App.on_save_tools_db() --> %s" % str(e)) - self.inform.emit('[ERROR_NOTCL] %s' % _("Failed to write Tools DB to file.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % _("Failed to write Tools DB to file.")) return except Exception: self.app.inform.emit('[ERROR_NOTCL] %s' % _("Failed to write Tools DB to file.")) diff --git a/README.md b/README.md index ec3f77a1..f0362d90 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,19 @@ FlatCAM BETA (c) 2019 - by Marius Stanciu Based on FlatCAM: 2D Computer-Aided PCB Manufacturing by (c) 2014-2016 Juan Pablo Caram -================================================= +===================================================================== FlatCAM is a program for preparing CNC jobs for making PCBs on a CNC router. Among other things, it can take a Gerber file generated by your favorite PCB CAD program, and create G-Code for Isolation routing. -================================================= +===================================================================== ------------- Installation instructions ---------- +-------------------------- Installation instructions ---------------- Works with Python version 3.5 or greater and PyQt5. More on the YouTube channel: https://www.youtube.com/playlist?list=PLVvP2SYRpx-AQgNlfoxw93tXUXon7G94_ + You can contact me on my email address found in the app in: Menu -> Help -> About FlatCAM -> Programmers -> Marius Stanciu @@ -20,7 +21,7 @@ Menu -> Help -> About FlatCAM -> Programmers -> Marius Stanciu - Download sources from: https://bitbucket.org/jpcgt/flatcam/downloads/ - Unzip them on a HDD location that your user has permissions for. -1. Windows +1.Windows - download the provided installer (for your OS flavor 64bit or 32bit) from: https://bitbucket.org/jpcgt/flatcam/downloads/ - execute the installer and install the program. It is recommended to install as a Local User. @@ -33,7 +34,10 @@ Use one of the versions (64bit or 32it) that are compatible with your OS. To save space use one of the versions that have the smaller size (they offer 2 versions: one with size of few hundred MB and one smaller with size of few tens of MB) - add Python folder and Python\Scripts folder to your Windows Path (https://docs.microsoft.com/en-us/previous-versions/office/developer/sharepoint-2010/ee537574(v%3Doffice.14)) -- verify that the pip package can be run by opening Command Prompt(Admin) and running the command: pip -V +- verify that the pip package can be run by opening Command Prompt(Admin) and running the command: +``` +pip -V +``` - look in the requirements.txt file (found in the sources folder) and install all the dependencies using the pip package. The required wheels can be downloaded either from: @@ -42,23 +46,40 @@ or https://pypi.org/ You can download all the required wheels files into a folder (e.g D:\my_folder) and install them from Command Prompt like this: + +``` cd D:\my_folder +``` + and for each wheel file (*.whl) run: +``` D:\my_folder\> pip install --upgrade package_from_requirements.whl +``` Run FlatCAM beta from the installation folder (e.g D:\FlatCAM_beta) in the Command Prompt with the following command: cd D:\FlatCAM_beta python FlatCAM.py -2. Linux +2.Linux - make sure that Python 3.8 is installed on your OS and that the command: python3 -V confirm it -- verify that the pip package is installed for your Python installation (e.g 3.8) by running the command pip3 -V. +- verify that the pip package is installed for your Python installation (e.g 3.8) by running the command: +``` +pip3 -V +``` + If it is not installed, install it. In Ubuntu-like OS's it is done like this: +``` sudo apt-get install python3-pip +``` or: +``` sudo apt-get install python3.8-pip +``` - verify that the file setup_ubuntu.sh has Linux line-endings (LF) and that it is executable (chmod +x setup_ubuntu.sh) -- run the file setup_ubuntu.sh and install all the dependencies with the command: ./setup_ubuntu.sh +- run the file setup_ubuntu.sh and install all the dependencies with the command: +``` +./setup_ubuntu.sh +``` - if the previous command is successful and has no errors, run FlatCAM with the command: python3 FlatCAM.py - Alternatively you can install it on Ubuntu with: @@ -73,7 +94,8 @@ make install sudo make install ``` -3. MacOS +3.MacOS + Instructions from here: https://gist.github.com/natevw/3e6fc929aff358b38c0a#gistcomment-3111878 - create a folder to hold the sources somewhere on your HDD: