- handled a possible situation in App.load_defaults() method

- fixed some issues in FlatCAMDB that may appear in certain scenarios
This commit is contained in:
Marius Stanciu 2020-04-28 09:48:49 +03:00 committed by Marius
parent e36ed05a36
commit 2549e9925e
4 changed files with 52 additions and 24 deletions

View File

@ -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 27.04.2020
- finished the moving of all Tcl Shell stuff out of the FlatCAAMApp class to flatcamTools.ToolShell class - 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 - added support for Hungarian language - no translation for now
- minor changes - minor changes
- moved the ObjectCollection class to the flatcamObjects folder where it belongs - moved the ObjectCollection class to the flatcamObjects folder where it belongs
- Linux Makefile
25.04.2020 25.04.2020

View File

@ -3840,7 +3840,7 @@ class App(QtCore.QObject):
# may be stored as strings we check their types. # may be stored as strings we check their types.
try: try:
target = eval(self.defaults[k]) target = eval(self.defaults[k])
except NameError: except (NameError, TypeError):
# it's an unknown string leave it as it is # it's an unknown string leave it as it is
target = deepcopy(self.defaults[k]) target = deepcopy(self.defaults[k])

View File

@ -916,19 +916,19 @@ class ToolsDB(QtWidgets.QWidget):
self.app.ui.plot_tab_area.removeTab(idx) self.app.ui.plot_tab_area.removeTab(idx)
self.app.inform.emit('%s' % _("Cancelled adding tool from DB.")) self.app.inform.emit('%s' % _("Cancelled adding tool from DB."))
def resize_new_tool_table_widget(self, min_size, max_size): # def resize_new_tool_table_widget(self, min_size, max_size):
""" # """
Resize the table widget responsible for adding new tool in the Tool Database # 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 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() # :param max_size: passed by rangeChanged signal or the self.new_tool_table_widget.horizontalScrollBar()
:return: # :return:
""" # """
t_height = self.t_height # t_height = self.t_height
if max_size > min_size: # if max_size > min_size:
t_height = self.t_height + self.new_tool_table_widget.verticalScrollBar().height() # t_height = self.t_height + self.new_tool_table_widget.verticalScrollBar().height()
#
self.new_tool_table_widget.setMaximumHeight(t_height) # self.new_tool_table_widget.setMaximumHeight(t_height)
def closeEvent(self, QCloseEvent): def closeEvent(self, QCloseEvent):
super().closeEvent(QCloseEvent) super().closeEvent(QCloseEvent)
@ -2120,7 +2120,7 @@ class ToolsDB2(QtWidgets.QWidget):
json.dump(self.db_tool_dict, f, default=to_dict, indent=2) json.dump(self.db_tool_dict, f, default=to_dict, indent=2)
except Exception as e: except Exception as e:
self.app.log.debug("App.on_save_tools_db() --> %s" % str(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 return
except Exception: except Exception:
self.app.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."))

View File

@ -1,18 +1,19 @@
FlatCAM BETA (c) 2019 - by Marius Stanciu FlatCAM BETA (c) 2019 - by Marius Stanciu
Based on FlatCAM: Based on FlatCAM:
2D Computer-Aided PCB Manufacturing by (c) 2014-2016 Juan Pablo Caram 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. 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 Among other things, it can take a Gerber file generated by your favorite PCB
CAD program, and create G-Code for Isolation routing. CAD program, and create G-Code for Isolation routing.
================================================= =====================================================================
------------ Installation instructions ---------- -------------------------- Installation instructions ----------------
Works with Python version 3.5 or greater and PyQt5. Works with Python version 3.5 or greater and PyQt5.
More on the YouTube channel: https://www.youtube.com/playlist?list=PLVvP2SYRpx-AQgNlfoxw93tXUXon7G94_ 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: You can contact me on my email address found in the app in:
Menu -> Help -> About FlatCAM -> Programmers -> Marius Stanciu 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/ - Download sources from: https://bitbucket.org/jpcgt/flatcam/downloads/
- Unzip them on a HDD location that your user has permissions for. - 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: - download the provided installer (for your OS flavor 64bit or 32bit) from:
https://bitbucket.org/jpcgt/flatcam/downloads/ https://bitbucket.org/jpcgt/flatcam/downloads/
- execute the installer and install the program. It is recommended to install as a Local User. - 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) 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)) - 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. - 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: The required wheels can be downloaded either from:
@ -42,23 +46,40 @@ or
https://pypi.org/ 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: 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 cd D:\my_folder
```
and for each wheel file (*.whl) run: and for each wheel file (*.whl) run:
```
D:\my_folder\> pip install --upgrade package_from_requirements.whl 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: Run FlatCAM beta from the installation folder (e.g D:\FlatCAM_beta) in the Command Prompt with the following command:
cd D:\FlatCAM_beta cd D:\FlatCAM_beta
python FlatCAM.py 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 - 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: If it is not installed, install it. In Ubuntu-like OS's it is done like this:
```
sudo apt-get install python3-pip sudo apt-get install python3-pip
```
or: or:
```
sudo apt-get install python3.8-pip 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) - 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 - 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: - Alternatively you can install it on Ubuntu with:
@ -73,7 +94,8 @@ make install
sudo make install sudo make install
``` ```
3. MacOS 3.MacOS
Instructions from here: https://gist.github.com/natevw/3e6fc929aff358b38c0a#gistcomment-3111878 Instructions from here: https://gist.github.com/natevw/3e6fc929aff358b38c0a#gistcomment-3111878
- create a folder to hold the sources somewhere on your HDD: - create a folder to hold the sources somewhere on your HDD: