mirror of
https://github.com/DJSundog/NopSCADlib.git
synced 2024-11-27 09:10:02 -05:00
Added documentation for the Python scripts.
This commit is contained in:
parent
419cadb7ec
commit
405c8e00b8
@ -1,22 +1,26 @@
|
|||||||
# A gallery of projects made with NopSCADlib
|
# A gallery of projects made with NopSCADlib
|
||||||
|
<a name="TOP"></a>
|
||||||
## ArduinoThermostat
|
## ArduinoThermostat
|
||||||
Arduino thermostat to control a beer fridge to use it as an environmental chamber.
|
Arduino thermostat to control a beer fridge to use it as an environmental chamber.
|
||||||
|
|
||||||
![](ArduinoThermostat.png)
|
![](ArduinoThermostat.png)
|
||||||
|
|
||||||
|
|
||||||
|
<a name="TOP"></a>
|
||||||
## HydraBot
|
## HydraBot
|
||||||
Current state of HydraRaptor after being modified for laser engraving.
|
Current state of HydraRaptor after being modified for laser engraving.
|
||||||
|
|
||||||
![](HydraBot.png)
|
![](HydraBot.png)
|
||||||
|
|
||||||
|
|
||||||
|
<a name="TOP"></a>
|
||||||
## IOT 50V PSU
|
## IOT 50V PSU
|
||||||
WiFi controllable PSU
|
WiFi controllable PSU
|
||||||
|
|
||||||
![](IOT_50V_PSU.png)
|
![](IOT_50V_PSU.png)
|
||||||
|
|
||||||
|
|
||||||
|
<a name="TOP"></a>
|
||||||
## Lab ATX PSU
|
## Lab ATX PSU
|
||||||
Bench power supply built around an ATX PSU.
|
Bench power supply built around an ATX PSU.
|
||||||
|
|
||||||
@ -37,12 +41,14 @@ Bench power supply built around an ATX PSU.
|
|||||||
![](Laser_load.png)
|
![](Laser_load.png)
|
||||||
|
|
||||||
|
|
||||||
|
<a name="TOP"></a>
|
||||||
## MainsBreakOutBox
|
## MainsBreakOutBox
|
||||||
13A socket break out box with 4mm jacks to measure voltage and / or load current and earth leakage current.
|
13A socket break out box with 4mm jacks to measure voltage and / or load current and earth leakage current.
|
||||||
|
|
||||||
![](MainsBreakOutBox.png)
|
![](MainsBreakOutBox.png)
|
||||||
|
|
||||||
|
|
||||||
|
<a name="TOP"></a>
|
||||||
## Mains Box
|
## Mains Box
|
||||||
Mains isolated and variable supply with metering.
|
Mains isolated and variable supply with metering.
|
||||||
|
|
||||||
@ -58,6 +64,7 @@ WiFi enabled remote control turntable for photography
|
|||||||
![](Turntable.png)
|
![](Turntable.png)
|
||||||
|
|
||||||
|
|
||||||
|
<a name="TOP"></a>
|
||||||
## Variac
|
## Variac
|
||||||
Motorised variac with WiFi control, see [hydraraptor.blogspot.com/2018/04/esp8266-spi-spy](https://hydraraptor.blogspot.com/2018/04/esp8266-spi-spy.html)
|
Motorised variac with WiFi control, see [hydraraptor.blogspot.com/2018/04/esp8266-spi-spy](https://hydraraptor.blogspot.com/2018/04/esp8266-spi-spy.html)
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ An ever expanding library of parts modelled in OpenSCAD useful for 3D printers a
|
|||||||
It contains lots of vitamins (the RepRap term for non-printed parts), some general purpose printed parts and
|
It contains lots of vitamins (the RepRap term for non-printed parts), some general purpose printed parts and
|
||||||
some utilities. There are also Python scripts to generate Bills of Materials (BOMs),
|
some utilities. There are also Python scripts to generate Bills of Materials (BOMs),
|
||||||
STL files for all the printed parts, DXF files for CNC routed parts in a project and a manual containing assembly
|
STL files for all the printed parts, DXF files for CNC routed parts in a project and a manual containing assembly
|
||||||
instructions and exploded views by scraping markdown embedded in OpenSCAD comments. A simple example project can be found [here](examples/MainsBreakOutBox/readme.md).
|
instructions and exploded views by scraping markdown embedded in OpenSCAD comments, [see scripts](scripts/readme.md). A simple example project can be found [here](examples/MainsBreakOutBox/readme.md).
|
||||||
|
|
||||||
For more examples of what it can make see the [gallery](gallery/readme.md).
|
For more examples of what it can make see the [gallery](gallery/readme.md).
|
||||||
|
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
# If not, see <https://www.gnu.org/licenses/>.
|
# If not, see <https://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
#! Generates BOM files for the project.
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
@ -19,6 +19,8 @@
|
|||||||
# If not, see <https://www.gnu.org/licenses/>.
|
# If not, see <https://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
#! OpenSCAD produces randomly ordered STL files. This script re-orders them consistently so that GIT can tell if they have changed or not.
|
||||||
#
|
#
|
||||||
# OpenSCAD produces randomly ordered STL files so source control like GIT can't tell if they have changed or not.
|
# OpenSCAD produces randomly ordered STL files so source control like GIT can't tell if they have changed or not.
|
||||||
# This scrip orders each triangle to start with the lowest vertex first (comparing x, then y, then z)
|
# This scrip orders each triangle to start with the lowest vertex first (comparing x, then y, then z)
|
||||||
|
72
scripts/doc_scripts.py
Normal file
72
scripts/doc_scripts.py
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
#
|
||||||
|
# NopSCADlib Copyright Chris Palmer 2018
|
||||||
|
# nop.head@gmail.com
|
||||||
|
# hydraraptor.blogspot.com
|
||||||
|
#
|
||||||
|
# This file is part of NopSCADlib.
|
||||||
|
#
|
||||||
|
# NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the
|
||||||
|
# GNU General Public License as published by the Free Software Foundation, either version 3 of
|
||||||
|
# the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||||
|
# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along with NopSCADlib.
|
||||||
|
# If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
#! Makes this document.
|
||||||
|
#
|
||||||
|
from __future__ import print_function
|
||||||
|
|
||||||
|
import os
|
||||||
|
from tests import do_cmd
|
||||||
|
|
||||||
|
dir = 'scripts'
|
||||||
|
|
||||||
|
def doc_scripts():
|
||||||
|
doc_name = dir + '/readme.md'
|
||||||
|
with open(doc_name, 'wt') as doc_file:
|
||||||
|
print(
|
||||||
|
'''
|
||||||
|
# Python scripts
|
||||||
|
These are located in the scripts subdirectory, which needs to be added to the program search path.
|
||||||
|
|
||||||
|
They should work with both Python 2 and Python 3.
|
||||||
|
|
||||||
|
| | |
|
||||||
|
|:--|:--|''', file = doc_file)
|
||||||
|
for file in os.listdir('scripts'):
|
||||||
|
if file.endswith('.py'):
|
||||||
|
blurb = ''
|
||||||
|
with open(dir + '/' + file, 'rt') as f:
|
||||||
|
lines = f.readlines()
|
||||||
|
for line in lines:
|
||||||
|
if line == "if __name__ == '__main__':\n":
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
continue
|
||||||
|
for line in lines[1:]:
|
||||||
|
if line.startswith('#! '):
|
||||||
|
line = line.replace('~\n', ' \n')
|
||||||
|
blurb = blurb + line[3 : -1]
|
||||||
|
if line.startswith("def "):
|
||||||
|
break
|
||||||
|
if not blurb:
|
||||||
|
print("Missing description for", file)
|
||||||
|
print("| ```%s``` | %s |" % (file, blurb), file = doc_file)
|
||||||
|
|
||||||
|
with open(dir + "/readme.html", "wt") as html_file:
|
||||||
|
do_cmd(("python -m markdown -x tables " + doc_name).split(), html_file)
|
||||||
|
#
|
||||||
|
# Spell check
|
||||||
|
#
|
||||||
|
do_cmd(('codespell -L od ' + doc_name).split())
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
doc_scripts()
|
@ -18,7 +18,8 @@
|
|||||||
# You should have received a copy of the GNU General Public License along with NopSCADlib.
|
# You should have received a copy of the GNU General Public License along with NopSCADlib.
|
||||||
# If not, see <https://www.gnu.org/licenses/>.
|
# If not, see <https://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
#! Generates DXF files for all the routed parts listed on the BOM or a specified list.
|
||||||
|
#
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
#
|
#
|
||||||
# Find projects and add them to the gallery
|
#! Finds projects and adds them to the gallery.
|
||||||
#
|
#
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
import os
|
import os
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
# You should have received a copy of the GNU General Public License along with NopSCADlib.
|
# You should have received a copy of the GNU General Public License along with NopSCADlib.
|
||||||
# If not, see <https://www.gnu.org/licenses/>.
|
# If not, see <https://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
#! Generates all the files for a project by running ```bom.py```, ```stls.py```, ```dxfs.py```, ```render.py``` and ```views.py```.
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
20
scripts/readme.md
Normal file
20
scripts/readme.md
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
|
||||||
|
# Python scripts
|
||||||
|
These are located in the scripts subdirectory, which needs to be added to the program search path.
|
||||||
|
|
||||||
|
They should work with both Python 2 and Python 3.
|
||||||
|
|
||||||
|
| | |
|
||||||
|
|:--|:--|
|
||||||
|
| ```bom.py``` | Generates BOM files for the project. |
|
||||||
|
| ```c14n_stl.py``` | OpenSCAD produces randomly ordered STL files. This script re-orders them consistently so that GIT can tell if they have changed or not. |
|
||||||
|
| ```doc_scripts.py``` | Makes this document. |
|
||||||
|
| ```dxfs.py``` | Generates DXF files for all the routed parts listed on the BOM or a specified list. |
|
||||||
|
| ```gallery.py``` | Finds projects and adds them to the gallery. |
|
||||||
|
| ```make_all.py``` | Generates all the files for a project by running ```bom.py```, ```stls.py```, ```dxfs.py```, ```render.py``` and ```views.py```. |
|
||||||
|
| ```render.py``` | Renders STL and DXF files to PNG for inclusion in the build instructions. |
|
||||||
|
| ```set_config.py``` | Sets the target configuration for multi-target projects that have variable configurations. |
|
||||||
|
| ```stls.py``` | Generates STL files for all the printed parts listed on the BOM or a specified list. |
|
||||||
|
| ```svgs.py``` | Generates SVG files for all the routed parts listed on the BOM or a specified list. |
|
||||||
|
| ```tests.py``` | Runs all the tests in the tests directory and makes the readme file with a catalog of the results. |
|
||||||
|
| ```views.py``` | Generates exploded and unexploded assembly views and scrapes build instructions to make readme.md, readme.html and printme.html files for the project. |
|
@ -19,6 +19,8 @@
|
|||||||
# If not, see <https://www.gnu.org/licenses/>.
|
# If not, see <https://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
#! Renders STL and DXF files to PNG for inclusion in the build instructions.
|
||||||
|
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
from set_config import *
|
from set_config import *
|
||||||
from exports import bom_to_parts
|
from exports import bom_to_parts
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
#
|
#
|
||||||
# Set target configuration for multi-target projects that have variable configurations.
|
#! Sets the target configuration for multi-target projects that have variable configurations.
|
||||||
#
|
#
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
|
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
# You should have received a copy of the GNU General Public License along with NopSCADlib.
|
# You should have received a copy of the GNU General Public License along with NopSCADlib.
|
||||||
# If not, see <https://www.gnu.org/licenses/>.
|
# If not, see <https://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
#! Generates STL files for all the printed parts listed on the BOM or a specified list.
|
||||||
|
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
import sys
|
import sys
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
# You should have received a copy of the GNU General Public License along with NopSCADlib.
|
# You should have received a copy of the GNU General Public License along with NopSCADlib.
|
||||||
# If not, see <https://www.gnu.org/licenses/>.
|
# If not, see <https://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
#! Generates SVG files for all the routed parts listed on the BOM or a specified list.
|
||||||
|
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
import sys
|
import sys
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
# You should have received a copy of the GNU General Public License along with NopSCADlib.
|
# You should have received a copy of the GNU General Public License along with NopSCADlib.
|
||||||
# If not, see <https://www.gnu.org/licenses/>.
|
# If not, see <https://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
#! Runs all the tests in the tests directory and makes the readme file with a catalog of the results.
|
||||||
|
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
import os
|
import os
|
||||||
@ -232,7 +233,7 @@ An ever expanding library of parts modelled in OpenSCAD useful for 3D printers a
|
|||||||
It contains lots of vitamins (the RepRap term for non-printed parts), some general purpose printed parts and
|
It contains lots of vitamins (the RepRap term for non-printed parts), some general purpose printed parts and
|
||||||
some utilities. There are also Python scripts to generate Bills of Materials (BOMs),
|
some utilities. There are also Python scripts to generate Bills of Materials (BOMs),
|
||||||
STL files for all the printed parts, DXF files for CNC routed parts in a project and a manual containing assembly
|
STL files for all the printed parts, DXF files for CNC routed parts in a project and a manual containing assembly
|
||||||
instructions and exploded views by scraping markdown embedded in OpenSCAD comments. A simple example project can be found [here](examples/MainsBreakOutBox/readme.md).
|
instructions and exploded views by scraping markdown embedded in OpenSCAD comments, [see scripts](scripts/readme.md). A simple example project can be found [here](examples/MainsBreakOutBox/readme.md).
|
||||||
|
|
||||||
For more examples of what it can make see the [gallery](gallery/readme.md).
|
For more examples of what it can make see the [gallery](gallery/readme.md).
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
#
|
#
|
||||||
#: Generate assembly views and intructions
|
#! Generates exploded and unexploded assembly views and scrapes build instructions to make readme.md, readme.html and printme.html files for the project.
|
||||||
#
|
#
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
from set_config import *
|
from set_config import *
|
||||||
|
Loading…
Reference in New Issue
Block a user