Compare commits
7 Commits
build123d-
...
v4.4.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
bbe1ab25d7
|
|||
|
cb82933e50
|
|||
|
a1fc85c069
|
|||
|
850bbdf5b9
|
|||
|
7e42129594
|
|||
|
66719f84c6
|
|||
|
184664cceb
|
5
.gitignore
vendored
5
.gitignore
vendored
@@ -1,8 +1,3 @@
|
|||||||
build/
|
build/
|
||||||
venv/
|
|
||||||
*.egg-info/
|
|
||||||
.tox/
|
|
||||||
|
|
||||||
*.pyc
|
|
||||||
*.sw*
|
*.sw*
|
||||||
.coverage
|
|
||||||
|
|||||||
21
CHANGELOG.md
21
CHANGELOG.md
@@ -2,6 +2,27 @@
|
|||||||
|
|
||||||
Included is a summary of changes to the project, by version. Details can be found in the commit history.
|
Included is a summary of changes to the project, by version. Details can be found in the commit history.
|
||||||
|
|
||||||
|
## v4.4.1
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* A new lever + Sega 2P 6 button panel has been added. The overhang version hadn't been updated in forever, but the
|
||||||
|
inset panel moved stuff around in a way that allowed a couple aux buttons to fit in, so those have been added to the
|
||||||
|
overhang panel as well.
|
||||||
|
* A horizontal stripe frame windowed piece has been added. YMMV may vary a bit on this vs. an empty window --- you can
|
||||||
|
see less of the inner object with the stripes, but it's a bit more stable.
|
||||||
|
|
||||||
|
### Improvements
|
||||||
|
|
||||||
|
* The frame wall slashes have been made a bit more reusable.
|
||||||
|
* The area around button holes for screw-ins has been tweaked to be a bit smaller for 30mm buttons and a bit larger for
|
||||||
|
24mm buttons.
|
||||||
|
|
||||||
|
### Miscellaneous
|
||||||
|
|
||||||
|
* A bottom overhang panel was positioned incorrectly in the demo file; this has been fixed.
|
||||||
|
* Added a demo of the one-panel overhang lever + 6 button stick.
|
||||||
|
|
||||||
## v4.4.0
|
## v4.4.0
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|||||||
3
Makefile
3
Makefile
@@ -1,7 +1,8 @@
|
|||||||
all:
|
all:
|
||||||
python build.py
|
python build.py
|
||||||
mkdir -p ./build/docs
|
mkdir -p ./build/docs
|
||||||
cp ./docs/README-objects.md ./build/README.md
|
cp ./README.md ./build/README.md
|
||||||
|
cp ./docs/README-objects.md ./build/README-objects.md
|
||||||
cp ./docs/assembly-and-tips.md ./build/docs/assembly-and-tips.md
|
cp ./docs/assembly-and-tips.md ./build/docs/assembly-and-tips.md
|
||||||
cp ./docs/printing-and-materials.md ./build/docs/printing-and-materials.md
|
cp ./docs/printing-and-materials.md ./build/docs/printing-and-materials.md
|
||||||
cp ./LICENSE ./build/LICENSE
|
cp ./LICENSE ./build/LICENSE
|
||||||
|
|||||||
14
README.md
14
README.md
@@ -67,6 +67,9 @@ about what the types of parts are and how to use them:
|
|||||||
* Various experiments and things not directly related to making an arcade stick. At time of writing, there's a
|
* Various experiments and things not directly related to making an arcade stick. At time of writing, there's a
|
||||||
couple pieces for a little stand for the stick, solely for vanity purposes.
|
couple pieces for a little stand for the stick, solely for vanity purposes.
|
||||||
|
|
||||||
|
Feel free to request or contribute to more objects. Additional documentation regarding assembling the stick is available
|
||||||
|
in `docs/assembly-and-tips.md`.
|
||||||
|
|
||||||
## Printing
|
## Printing
|
||||||
|
|
||||||
These items all fit on a 256mm^2 print bed; I use a Bambu Lab P1P based on what I've learned from the
|
These items all fit on a 256mm^2 print bed; I use a Bambu Lab P1P based on what I've learned from the
|
||||||
@@ -161,12 +164,13 @@ to hang out and discuss issues and features and whatnot.
|
|||||||
|
|
||||||
Written by and copyright Brian S. Stephan (<bss@incorporeal.org>).
|
Written by and copyright Brian S. Stephan (<bss@incorporeal.org>).
|
||||||
|
|
||||||
The Buildable Stick System is free software: you can redistribute it and/or modify it under the terms of the GNU General Public
|
The Buildable Stick System is free software: you can redistribute it and/or modify it under the terms of the GNU General
|
||||||
License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
|
Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any
|
||||||
version.
|
later version.
|
||||||
|
|
||||||
The Buildable Stick System is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
The Buildable Stick System is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||||
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
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 the Buildable Stick System. If not, see
|
You should have received a copy of the GNU General Public License along with the Buildable Stick System. If not, see
|
||||||
<https://www.gnu.org/licenses/>.
|
<https://www.gnu.org/licenses/>.
|
||||||
|
|||||||
4
TODO.md
4
TODO.md
@@ -5,3 +5,7 @@ Notes for "next time".
|
|||||||
## v4.x
|
## v4.x
|
||||||
|
|
||||||
* Engraving some cosmetic stuff? Or maybe a place to mount other plates on the top?
|
* Engraving some cosmetic stuff? Or maybe a place to mount other plates on the top?
|
||||||
|
|
||||||
|
## v5
|
||||||
|
|
||||||
|
* Finishing the build123d rewrite?
|
||||||
|
|||||||
28
demo/all-together-demo-solo.scad
Normal file
28
demo/all-together-demo-solo.scad
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
include <parameters.scad>
|
||||||
|
include <components.scad>
|
||||||
|
use <frames/pieces/extended/front-or-back.scad>
|
||||||
|
use <frames/pieces/extended/side-extended-to-bottom.scad>
|
||||||
|
use <frames/pieces/extended/front-or-back-clean-for-extended-side-aux-and-neutrik.scad>
|
||||||
|
use <panels/inset/lever-and-dir_arc-plus-w-30mm-panel.scad>
|
||||||
|
use <panels/inset/lever-and-sega-2p-6-button-panel-with-aux-with-mount.scad>
|
||||||
|
use <misc/dustwasher-jlf.scad>
|
||||||
|
|
||||||
|
top_panel_color = "#5B6579";
|
||||||
|
bottom_panel_color = "#8E9089";
|
||||||
|
frame_top_bottom_color = "#8E9089";
|
||||||
|
frame_side_color = "#8E9089";
|
||||||
|
top_deco_color = "#000000";
|
||||||
|
|
||||||
|
color(top_panel_color) translate([0, 0, frame_z/2-panel_z+0.01]) lever_and_sega_2p_6_button_panel_with_aux_with_mount();
|
||||||
|
color(frame_side_color) translate([0, 0, -2.5]) extra_extended_left_or_right_frame_piece();
|
||||||
|
color(frame_side_color) translate([0, 0, -2.5]) mirror([1, 0, 0]) extra_extended_left_or_right_frame_piece();
|
||||||
|
color(frame_top_bottom_color) translate([0, 0, -2.5]) extended_front_or_back_frame_piece();
|
||||||
|
color(frame_top_bottom_color) translate([0, 0, -2.5]) rotate([180, 0, 0]) front_or_back_aux_and_neutrik_box_frame_piece_for_extended_side();
|
||||||
|
color(bottom_panel_color) translate([0, 0, -5-frame_z/2+5]) panel();
|
||||||
|
|
||||||
|
color(top_deco_color) translate([-65, 5, 3+frame_z/2-panel_z]) jlf_dustwasher();
|
||||||
@@ -1,54 +1,11 @@
|
|||||||
# The Buildable Stick System
|
# The Buildable Stick System
|
||||||
|
|
||||||
Files for 3D printing an arcade stick.
|
Files for 3D printing an arcade stick. See `README.md` for the core documentation, this file is specific to distributed
|
||||||
|
objects.
|
||||||
|
|
||||||
## Objects
|
## Attribution
|
||||||
|
|
||||||
The following notes document the objects in the Buildable Stick System and how you can use them:
|
### Author and Licensing
|
||||||
|
|
||||||
* `frames/`
|
|
||||||
* `complete/` --- these are the four walls of the frame as one piece, in a couple variations for combining into
|
|
||||||
larger arcade sticks. They are simple to assemble, but you have fewer modularity/customization options, and they
|
|
||||||
are harder to print because the physics of the material cooling will probably pull the corners up. They also need
|
|
||||||
supports, since the top and bottom of the frame both have trays for panels to go into. Use at your own risk.
|
|
||||||
* `pieces/`
|
|
||||||
* `box/` --- these are the same four walls (generally speaking) as in the complete frames above, broken out into
|
|
||||||
modular pieces to print separately. Because they are separate pieces, you can mix and match colors, and you
|
|
||||||
can lay them all face down on the print surface for better adhesion and surface patterns. There are also
|
|
||||||
variants here, the "windowed" pieces, for doing two-tone variants and that kind of thing.
|
|
||||||
* `extended/` --- the frame walls are pulled out to create MCZ TE-style extended sides. Rather than getting a
|
|
||||||
box look, you get a longer slab with nice bevels. These look nice, but slightly fiddily to print (and of
|
|
||||||
course need more material) --- watch your surface adhesion.
|
|
||||||
* `interconnect` --- complete frames are bolted to one another, but for frame pieces, there is an interconnect
|
|
||||||
that stands in for the joined inner wall. You need this if you are combining multiple sets of walls, e.g. for
|
|
||||||
a two-panel-long stick.
|
|
||||||
* `panels/`
|
|
||||||
* `inset/` --- various panels, all of the same size, that fit into and flush with the frame, making the arcade stick
|
|
||||||
top or bottom. These work equally well with box or extended frames, and aside from using up a bit of the space
|
|
||||||
inside the frame, come with no downsides --- they print easily and are a pretty simple shape to tweak and remix.
|
|
||||||
* `overhang/` --- overhang panels have their plane extending over the edge of the frame, creating a bit of a
|
|
||||||
sandwich look. This is mostly an aesthetic choice, but they sit higher in the frame as well, the main panel being
|
|
||||||
over/under the frame rather than within it. This extra space is useful for taller levers. The only downside to
|
|
||||||
these is that they aren't as reusable as the inset panels, since the inset panels can go anywhere, but the
|
|
||||||
overhang panels must be designed to not overlap with other overhang panels, so you might have to make more custom
|
|
||||||
variants depending on where you put things.
|
|
||||||
* `misc/`
|
|
||||||
* Pieces that I haven't organized better (yet) --- there are decorative plates for top buttons and similar to give
|
|
||||||
more color variance and some layers to the arcade stick, some very simple dustwashers, plates that fit rocker
|
|
||||||
switches and the like in Neutrik D or 20mm holes, and a lever mount spacer for getting your lever shaft at the
|
|
||||||
desired height. You don't *need* any of these, but you'll probably use a few.
|
|
||||||
* `extras/`
|
|
||||||
* Various experiments and things not directly related to making an arcade stick. At time of writing, there's a
|
|
||||||
couple pieces for a little stand for the stick, solely for vanity purposes.
|
|
||||||
|
|
||||||
Feel free to request or contribute to more objects, see the links to Git repos below.
|
|
||||||
|
|
||||||
## Printing and Assembling
|
|
||||||
|
|
||||||
Additional documentation regarding printing the objects and assembling the stick are available in
|
|
||||||
`docs/printing-and-materials.md` and `docs/assembly-and-tips.md`, respectively.
|
|
||||||
|
|
||||||
## Author and Licensing
|
|
||||||
|
|
||||||
Written by and copyright Brian S. Stephan (<bss@incorporeal.org>).
|
Written by and copyright Brian S. Stephan (<bss@incorporeal.org>).
|
||||||
|
|
||||||
@@ -71,9 +28,13 @@ details.
|
|||||||
You should have received a copy of the GNU General Public License along with the Buildable Stick System. If not, see
|
You should have received a copy of the GNU General Public License along with the Buildable Stick System. If not, see
|
||||||
<https://www.gnu.org/licenses/>.
|
<https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
## Lineage
|
### Distributing BSS Sticks
|
||||||
|
|
||||||
Inspired by the incredible work of [TheTrain](https://github.com/TheTrainGoes) on the [OpenStickCommunity Fightstick
|
Under the terms of the GPLv3, you must inform the receiver of the "object code" of their rights under the GPLv3. This is
|
||||||
Case](https://github.com/OpenStickCommunity/Hardware/tree/main/Fightstick%20Case), itself based on the incredible work
|
a bit of a gray area for physical objects, but likely applies to distribution of modified or unmodified STL, STEP, etc.
|
||||||
by [Dash n'Mash](https://twitter.com/Dash_xx_Mash?s=20). Original work Copyright 2023 TheTrain, [licensed under CC BY
|
files at a minimum. The easiest way to satisfy the GPLv3 in either situation is to provide a link to the source code
|
||||||
4.0](https://creativecommons.org/licenses/by/4.0/).
|
(either the unmodified mainline project, or your copy, with modifications listed in a "prominent notice"); something
|
||||||
|
like the below should suffice in either electronic or printed form:
|
||||||
|
|
||||||
|
> This arcade stick is part of the Buildable Stick System, version X.Y.Z; the source code to this program is available
|
||||||
|
> under the terms of the GNU General Public License, at [LINK].
|
||||||
|
|||||||
@@ -1,53 +0,0 @@
|
|||||||
[build-system]
|
|
||||||
requires = ["setuptools>=61.0", "setuptools_scm[toml]>=6.2"]
|
|
||||||
build-backend = "setuptools.build_meta"
|
|
||||||
|
|
||||||
[project]
|
|
||||||
name = "buildable-stick-system"
|
|
||||||
description = "Files for 3D printing an arcade stick."
|
|
||||||
readme = "README.md"
|
|
||||||
license = {text = "GPL-3.0-or-later"}
|
|
||||||
authors = [
|
|
||||||
{name = "Brian S. Stephan", email = "bss@incorporeal.org"},
|
|
||||||
]
|
|
||||||
requires-python = "<3.12,>=3.9"
|
|
||||||
dependencies = ["build123d"]
|
|
||||||
dynamic = ["version"]
|
|
||||||
classifiers = [
|
|
||||||
# TODO
|
|
||||||
]
|
|
||||||
|
|
||||||
[project.urls]
|
|
||||||
# TODO
|
|
||||||
|
|
||||||
[project.optional-dependencies]
|
|
||||||
dev = ["bandit", "flake8", "flake8-blind-except", "flake8-builtins", "flake8-docstrings",
|
|
||||||
"flake8-executable", "flake8-fixme", "flake8-isort", "flake8-logging-format", "flake8-mutable",
|
|
||||||
"flake8-pyproject", "mypy", "pip-tools", "pytest", "pytest-asyncio", "pytest-cov", "reuse",
|
|
||||||
"setuptools-scm", "tox", "twine"]
|
|
||||||
gui = ["cadquery>=2.2", "CQ-Editor@git+https://github.com/jdegenstein/jmwright-CQ-Editor"]
|
|
||||||
|
|
||||||
[project.scripts]
|
|
||||||
# TODO
|
|
||||||
|
|
||||||
[tool.flake8]
|
|
||||||
enable-extensions = "G,M"
|
|
||||||
exclude = [".tox/", "venv/", "_version.py", "tests/test-files/"]
|
|
||||||
extend-ignore = "T101"
|
|
||||||
max-complexity = 10
|
|
||||||
max-line-length = 120
|
|
||||||
|
|
||||||
[tool.isort]
|
|
||||||
line_length = 120
|
|
||||||
|
|
||||||
[tool.mypy]
|
|
||||||
ignore_missing_imports = true
|
|
||||||
|
|
||||||
[tool.pytest]
|
|
||||||
python_files = ["*_tests.py", "tests.py", "test_*.py"]
|
|
||||||
|
|
||||||
[tool.setuptools]
|
|
||||||
# TODO
|
|
||||||
|
|
||||||
[tool.setuptools_scm]
|
|
||||||
# TODO
|
|
||||||
@@ -1,644 +0,0 @@
|
|||||||
#
|
|
||||||
# This file is autogenerated by pip-compile with Python 3.11
|
|
||||||
# by the following command:
|
|
||||||
#
|
|
||||||
# pip-compile --extra=dev --extra=gui --output-file=requirements/requirements-dev-and-gui.txt
|
|
||||||
#
|
|
||||||
alabaster==0.7.16
|
|
||||||
# via sphinx
|
|
||||||
anytree==2.12.1
|
|
||||||
# via build123d
|
|
||||||
arrow==1.3.0
|
|
||||||
# via cookiecutter
|
|
||||||
astroid==3.2.2
|
|
||||||
# via pylint
|
|
||||||
asttokens==2.4.1
|
|
||||||
# via stack-data
|
|
||||||
atomicwrites==1.4.1
|
|
||||||
# via spyder
|
|
||||||
attrs==23.2.0
|
|
||||||
# via
|
|
||||||
# jsonschema
|
|
||||||
# referencing
|
|
||||||
autopep8==2.0.4
|
|
||||||
# via python-lsp-server
|
|
||||||
babel==2.15.0
|
|
||||||
# via sphinx
|
|
||||||
backports-tarfile==1.2.0
|
|
||||||
# via jaraco-context
|
|
||||||
bandit==1.7.9
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
beautifulsoup4==4.12.3
|
|
||||||
# via nbconvert
|
|
||||||
binaryornot==0.4.4
|
|
||||||
# via
|
|
||||||
# cookiecutter
|
|
||||||
# reuse
|
|
||||||
black==24.4.2
|
|
||||||
# via python-lsp-black
|
|
||||||
bleach==6.1.0
|
|
||||||
# via nbconvert
|
|
||||||
boolean-py==4.0
|
|
||||||
# via
|
|
||||||
# license-expression
|
|
||||||
# reuse
|
|
||||||
build==1.2.1
|
|
||||||
# via pip-tools
|
|
||||||
build123d==0.4.0
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
cachetools==5.3.3
|
|
||||||
# via tox
|
|
||||||
cadquery==2.4.0
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
cadquery-ocp==7.7.2
|
|
||||||
# via
|
|
||||||
# build123d
|
|
||||||
# cadquery
|
|
||||||
# ocpsvg
|
|
||||||
casadi==3.6.5
|
|
||||||
# via cadquery
|
|
||||||
certifi==2024.6.2
|
|
||||||
# via requests
|
|
||||||
cffi==1.16.0
|
|
||||||
# via cryptography
|
|
||||||
chardet==5.2.0
|
|
||||||
# via
|
|
||||||
# binaryornot
|
|
||||||
# python-debian
|
|
||||||
# spyder
|
|
||||||
# tox
|
|
||||||
charset-normalizer==3.3.2
|
|
||||||
# via requests
|
|
||||||
click==8.1.7
|
|
||||||
# via
|
|
||||||
# black
|
|
||||||
# cookiecutter
|
|
||||||
# pip-tools
|
|
||||||
cloudpickle==3.0.0
|
|
||||||
# via
|
|
||||||
# spyder
|
|
||||||
# spyder-kernels
|
|
||||||
colorama==0.4.6
|
|
||||||
# via tox
|
|
||||||
comm==0.2.2
|
|
||||||
# via ipykernel
|
|
||||||
cookiecutter==2.6.0
|
|
||||||
# via spyder
|
|
||||||
coverage[toml]==7.5.4
|
|
||||||
# via pytest-cov
|
|
||||||
cq-editor @ git+https://github.com/jdegenstein/jmwright-CQ-Editor
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
cryptography==42.0.8
|
|
||||||
# via secretstorage
|
|
||||||
debugpy==1.8.2
|
|
||||||
# via ipykernel
|
|
||||||
decorator==5.1.1
|
|
||||||
# via ipython
|
|
||||||
defusedxml==0.7.1
|
|
||||||
# via nbconvert
|
|
||||||
diff-match-patch==20230430
|
|
||||||
# via
|
|
||||||
# spyder
|
|
||||||
# three-merge
|
|
||||||
dill==0.3.8
|
|
||||||
# via pylint
|
|
||||||
distlib==0.3.8
|
|
||||||
# via virtualenv
|
|
||||||
docstring-to-markdown==0.15
|
|
||||||
# via python-lsp-server
|
|
||||||
docutils==0.21.2
|
|
||||||
# via
|
|
||||||
# readme-renderer
|
|
||||||
# sphinx
|
|
||||||
executing==2.0.1
|
|
||||||
# via stack-data
|
|
||||||
ezdxf==1.3.1
|
|
||||||
# via
|
|
||||||
# build123d
|
|
||||||
# cadquery
|
|
||||||
fastjsonschema==2.20.0
|
|
||||||
# via nbformat
|
|
||||||
filelock==3.15.4
|
|
||||||
# via
|
|
||||||
# tox
|
|
||||||
# virtualenv
|
|
||||||
flake8==7.0.0
|
|
||||||
# via
|
|
||||||
# buildable-stick-system (pyproject.toml)
|
|
||||||
# flake8-builtins
|
|
||||||
# flake8-docstrings
|
|
||||||
# flake8-executable
|
|
||||||
# flake8-isort
|
|
||||||
# flake8-mutable
|
|
||||||
# flake8-pyproject
|
|
||||||
# python-lsp-server
|
|
||||||
flake8-blind-except==0.2.1
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
flake8-builtins==2.5.0
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
flake8-docstrings==1.7.0
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
flake8-executable==2.1.3
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
flake8-fixme==1.1.1
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
flake8-isort==6.1.1
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
flake8-logging-format==2024.24.12
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
flake8-mutable==1.2.0
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
flake8-pyproject==1.2.3
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
fonttools==4.53.0
|
|
||||||
# via ezdxf
|
|
||||||
idna==3.7
|
|
||||||
# via requests
|
|
||||||
imagesize==1.4.1
|
|
||||||
# via sphinx
|
|
||||||
importlib-metadata==8.0.0
|
|
||||||
# via
|
|
||||||
# keyring
|
|
||||||
# twine
|
|
||||||
# yapf
|
|
||||||
inflection==0.5.1
|
|
||||||
# via qstylizer
|
|
||||||
iniconfig==2.0.0
|
|
||||||
# via pytest
|
|
||||||
intervaltree==3.1.0
|
|
||||||
# via spyder
|
|
||||||
ipykernel==6.29.5
|
|
||||||
# via
|
|
||||||
# qtconsole
|
|
||||||
# spyder-kernels
|
|
||||||
ipython==8.26.0
|
|
||||||
# via
|
|
||||||
# build123d
|
|
||||||
# cq-editor
|
|
||||||
# ipykernel
|
|
||||||
# spyder
|
|
||||||
# spyder-kernels
|
|
||||||
isort==5.13.2
|
|
||||||
# via
|
|
||||||
# flake8-isort
|
|
||||||
# pylint
|
|
||||||
jaraco-classes==3.4.0
|
|
||||||
# via keyring
|
|
||||||
jaraco-context==5.3.0
|
|
||||||
# via keyring
|
|
||||||
jaraco-functools==4.0.1
|
|
||||||
# via keyring
|
|
||||||
jedi==0.19.1
|
|
||||||
# via
|
|
||||||
# ipython
|
|
||||||
# python-lsp-server
|
|
||||||
# spyder
|
|
||||||
jeepney==0.8.0
|
|
||||||
# via
|
|
||||||
# keyring
|
|
||||||
# secretstorage
|
|
||||||
jellyfish==1.0.4
|
|
||||||
# via spyder
|
|
||||||
jinja2==3.1.4
|
|
||||||
# via
|
|
||||||
# cookiecutter
|
|
||||||
# nbconvert
|
|
||||||
# reuse
|
|
||||||
# sphinx
|
|
||||||
jsonschema==4.22.0
|
|
||||||
# via
|
|
||||||
# nbformat
|
|
||||||
# spyder
|
|
||||||
jsonschema-specifications==2023.12.1
|
|
||||||
# via jsonschema
|
|
||||||
jupyter-client==8.6.2
|
|
||||||
# via
|
|
||||||
# ipykernel
|
|
||||||
# nbclient
|
|
||||||
# qtconsole
|
|
||||||
# spyder-kernels
|
|
||||||
jupyter-core==5.7.2
|
|
||||||
# via
|
|
||||||
# ipykernel
|
|
||||||
# jupyter-client
|
|
||||||
# nbclient
|
|
||||||
# nbconvert
|
|
||||||
# nbformat
|
|
||||||
# qtconsole
|
|
||||||
jupyterlab-pygments==0.3.0
|
|
||||||
# via nbconvert
|
|
||||||
keyring==25.2.1
|
|
||||||
# via
|
|
||||||
# spyder
|
|
||||||
# twine
|
|
||||||
license-expression==30.3.0
|
|
||||||
# via reuse
|
|
||||||
logbook==1.7.0.post0
|
|
||||||
# via cq-editor
|
|
||||||
markdown-it-py==3.0.0
|
|
||||||
# via rich
|
|
||||||
markupsafe==2.1.5
|
|
||||||
# via
|
|
||||||
# jinja2
|
|
||||||
# nbconvert
|
|
||||||
matplotlib-inline==0.1.7
|
|
||||||
# via
|
|
||||||
# ipykernel
|
|
||||||
# ipython
|
|
||||||
mccabe==0.7.0
|
|
||||||
# via
|
|
||||||
# flake8
|
|
||||||
# pylint
|
|
||||||
# python-lsp-server
|
|
||||||
mdurl==0.1.2
|
|
||||||
# via markdown-it-py
|
|
||||||
mistune==3.0.2
|
|
||||||
# via nbconvert
|
|
||||||
more-itertools==10.3.0
|
|
||||||
# via
|
|
||||||
# jaraco-classes
|
|
||||||
# jaraco-functools
|
|
||||||
multimethod==1.9.1
|
|
||||||
# via cadquery
|
|
||||||
mypy==1.10.1
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
mypy-extensions==1.0.0
|
|
||||||
# via
|
|
||||||
# black
|
|
||||||
# mypy
|
|
||||||
nbclient==0.10.0
|
|
||||||
# via nbconvert
|
|
||||||
nbconvert==7.16.4
|
|
||||||
# via spyder
|
|
||||||
nbformat==5.10.4
|
|
||||||
# via
|
|
||||||
# nbclient
|
|
||||||
# nbconvert
|
|
||||||
nest-asyncio==1.6.0
|
|
||||||
# via ipykernel
|
|
||||||
nh3==0.2.17
|
|
||||||
# via readme-renderer
|
|
||||||
nlopt==2.7.1
|
|
||||||
# via cadquery
|
|
||||||
nptyping==2.0.1
|
|
||||||
# via cadquery
|
|
||||||
numpy==1.26.4
|
|
||||||
# via
|
|
||||||
# build123d
|
|
||||||
# casadi
|
|
||||||
# ezdxf
|
|
||||||
# nlopt
|
|
||||||
# nptyping
|
|
||||||
# numpy-stl
|
|
||||||
# pyqtgraph
|
|
||||||
# scipy
|
|
||||||
# svgpathtools
|
|
||||||
numpy-stl==3.1.1
|
|
||||||
# via build123d
|
|
||||||
numpydoc==1.7.0
|
|
||||||
# via spyder
|
|
||||||
ocpsvg==0.2.1
|
|
||||||
# via build123d
|
|
||||||
packaging==24.1
|
|
||||||
# via
|
|
||||||
# black
|
|
||||||
# build
|
|
||||||
# ipykernel
|
|
||||||
# nbconvert
|
|
||||||
# pyproject-api
|
|
||||||
# pytest
|
|
||||||
# pytoolconfig
|
|
||||||
# qtconsole
|
|
||||||
# qtpy
|
|
||||||
# setuptools-scm
|
|
||||||
# sphinx
|
|
||||||
# tox
|
|
||||||
pandocfilters==1.5.1
|
|
||||||
# via nbconvert
|
|
||||||
parso==0.8.4
|
|
||||||
# via
|
|
||||||
# jedi
|
|
||||||
# spyder
|
|
||||||
path==16.14.0
|
|
||||||
# via
|
|
||||||
# cadquery
|
|
||||||
# cq-editor
|
|
||||||
pathspec==0.12.1
|
|
||||||
# via black
|
|
||||||
pbr==6.0.0
|
|
||||||
# via stevedore
|
|
||||||
pexpect==4.9.0
|
|
||||||
# via
|
|
||||||
# ipython
|
|
||||||
# spyder
|
|
||||||
pickleshare==0.7.5
|
|
||||||
# via spyder
|
|
||||||
pip-tools==7.4.1
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
pkginfo==1.10.0
|
|
||||||
# via twine
|
|
||||||
platformdirs==4.2.2
|
|
||||||
# via
|
|
||||||
# black
|
|
||||||
# jupyter-core
|
|
||||||
# pylint
|
|
||||||
# pytoolconfig
|
|
||||||
# tox
|
|
||||||
# virtualenv
|
|
||||||
# yapf
|
|
||||||
pluggy==1.5.0
|
|
||||||
# via
|
|
||||||
# pytest
|
|
||||||
# python-lsp-server
|
|
||||||
# tox
|
|
||||||
prompt-toolkit==3.0.47
|
|
||||||
# via ipython
|
|
||||||
psutil==6.0.0
|
|
||||||
# via
|
|
||||||
# ipykernel
|
|
||||||
# spyder
|
|
||||||
ptyprocess==0.7.0
|
|
||||||
# via pexpect
|
|
||||||
pure-eval==0.2.2
|
|
||||||
# via stack-data
|
|
||||||
py-lib3mf==2.3.1
|
|
||||||
# via build123d
|
|
||||||
pycodestyle==2.11.1
|
|
||||||
# via
|
|
||||||
# autopep8
|
|
||||||
# flake8
|
|
||||||
# python-lsp-server
|
|
||||||
pycparser==2.22
|
|
||||||
# via cffi
|
|
||||||
pydocstyle==6.3.0
|
|
||||||
# via
|
|
||||||
# flake8-docstrings
|
|
||||||
# python-lsp-server
|
|
||||||
pyflakes==3.2.0
|
|
||||||
# via
|
|
||||||
# flake8
|
|
||||||
# python-lsp-server
|
|
||||||
pygments==2.18.0
|
|
||||||
# via
|
|
||||||
# ipython
|
|
||||||
# nbconvert
|
|
||||||
# qtconsole
|
|
||||||
# readme-renderer
|
|
||||||
# rich
|
|
||||||
# sphinx
|
|
||||||
# spyder
|
|
||||||
pylint==3.2.5
|
|
||||||
# via
|
|
||||||
# python-lsp-server
|
|
||||||
# spyder
|
|
||||||
pylint-venv==3.0.3
|
|
||||||
# via spyder
|
|
||||||
pyls-spyder==0.4.0
|
|
||||||
# via spyder
|
|
||||||
pyparsing==3.1.2
|
|
||||||
# via ezdxf
|
|
||||||
pyproject-api==1.7.1
|
|
||||||
# via tox
|
|
||||||
pyproject-hooks==1.1.0
|
|
||||||
# via
|
|
||||||
# build
|
|
||||||
# pip-tools
|
|
||||||
pyqt5==5.15.10
|
|
||||||
# via
|
|
||||||
# cq-editor
|
|
||||||
# pyqtwebengine
|
|
||||||
# spyder
|
|
||||||
pyqt5-qt5==5.15.14
|
|
||||||
# via pyqt5
|
|
||||||
pyqt5-sip==12.13.0
|
|
||||||
# via
|
|
||||||
# pyqt5
|
|
||||||
# pyqtwebengine
|
|
||||||
pyqtgraph==0.13.7
|
|
||||||
# via cq-editor
|
|
||||||
pyqtwebengine==5.15.6
|
|
||||||
# via spyder
|
|
||||||
pyqtwebengine-qt5==5.15.14
|
|
||||||
# via pyqtwebengine
|
|
||||||
pytest==8.2.2
|
|
||||||
# via
|
|
||||||
# buildable-stick-system (pyproject.toml)
|
|
||||||
# pytest-asyncio
|
|
||||||
# pytest-cov
|
|
||||||
pytest-asyncio==0.23.7
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
pytest-cov==5.0.0
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
python-dateutil==2.9.0.post0
|
|
||||||
# via
|
|
||||||
# arrow
|
|
||||||
# jupyter-client
|
|
||||||
python-debian==0.1.49
|
|
||||||
# via reuse
|
|
||||||
python-lsp-black==2.0.0
|
|
||||||
# via spyder
|
|
||||||
python-lsp-jsonrpc==1.1.2
|
|
||||||
# via python-lsp-server
|
|
||||||
python-lsp-server[all]==1.11.0
|
|
||||||
# via
|
|
||||||
# pyls-spyder
|
|
||||||
# python-lsp-black
|
|
||||||
# spyder
|
|
||||||
python-slugify==8.0.4
|
|
||||||
# via cookiecutter
|
|
||||||
python-utils==3.8.2
|
|
||||||
# via numpy-stl
|
|
||||||
pytoolconfig[global]==1.3.1
|
|
||||||
# via rope
|
|
||||||
pyxdg==0.28
|
|
||||||
# via spyder
|
|
||||||
pyyaml==6.0.1
|
|
||||||
# via
|
|
||||||
# bandit
|
|
||||||
# cookiecutter
|
|
||||||
pyzmq==26.0.3
|
|
||||||
# via
|
|
||||||
# ipykernel
|
|
||||||
# jupyter-client
|
|
||||||
# qtconsole
|
|
||||||
# spyder
|
|
||||||
# spyder-kernels
|
|
||||||
qdarkstyle==3.2.3
|
|
||||||
# via spyder
|
|
||||||
qstylizer==0.2.3
|
|
||||||
# via spyder
|
|
||||||
qtawesome==1.3.1
|
|
||||||
# via spyder
|
|
||||||
qtconsole==5.5.2
|
|
||||||
# via spyder
|
|
||||||
qtpy==2.4.1
|
|
||||||
# via
|
|
||||||
# qdarkstyle
|
|
||||||
# qtawesome
|
|
||||||
# qtconsole
|
|
||||||
# spyder
|
|
||||||
readme-renderer==43.0
|
|
||||||
# via twine
|
|
||||||
referencing==0.35.1
|
|
||||||
# via
|
|
||||||
# jsonschema
|
|
||||||
# jsonschema-specifications
|
|
||||||
requests==2.32.3
|
|
||||||
# via
|
|
||||||
# cookiecutter
|
|
||||||
# cq-editor
|
|
||||||
# requests-toolbelt
|
|
||||||
# sphinx
|
|
||||||
# twine
|
|
||||||
requests-toolbelt==1.0.0
|
|
||||||
# via twine
|
|
||||||
reuse==3.0.2
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
rfc3986==2.0.0
|
|
||||||
# via twine
|
|
||||||
rich==13.7.1
|
|
||||||
# via
|
|
||||||
# bandit
|
|
||||||
# cookiecutter
|
|
||||||
# twine
|
|
||||||
rope==1.13.0
|
|
||||||
# via python-lsp-server
|
|
||||||
rpds-py==0.18.1
|
|
||||||
# via
|
|
||||||
# jsonschema
|
|
||||||
# referencing
|
|
||||||
rtree==1.2.0
|
|
||||||
# via spyder
|
|
||||||
scipy==1.14.0
|
|
||||||
# via svgpathtools
|
|
||||||
secretstorage==3.3.3
|
|
||||||
# via keyring
|
|
||||||
setuptools-scm==8.1.0
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
six==1.16.0
|
|
||||||
# via
|
|
||||||
# anytree
|
|
||||||
# asttokens
|
|
||||||
# bleach
|
|
||||||
# python-dateutil
|
|
||||||
snowballstemmer==2.2.0
|
|
||||||
# via
|
|
||||||
# pydocstyle
|
|
||||||
# sphinx
|
|
||||||
sortedcontainers==2.4.0
|
|
||||||
# via intervaltree
|
|
||||||
soupsieve==2.5
|
|
||||||
# via beautifulsoup4
|
|
||||||
sphinx==7.3.7
|
|
||||||
# via
|
|
||||||
# numpydoc
|
|
||||||
# spyder
|
|
||||||
sphinxcontrib-applehelp==1.0.8
|
|
||||||
# via sphinx
|
|
||||||
sphinxcontrib-devhelp==1.0.6
|
|
||||||
# via sphinx
|
|
||||||
sphinxcontrib-htmlhelp==2.0.5
|
|
||||||
# via sphinx
|
|
||||||
sphinxcontrib-jsmath==1.0.1
|
|
||||||
# via sphinx
|
|
||||||
sphinxcontrib-qthelp==1.0.7
|
|
||||||
# via sphinx
|
|
||||||
sphinxcontrib-serializinghtml==1.1.10
|
|
||||||
# via sphinx
|
|
||||||
spyder==5.5.5
|
|
||||||
# via cq-editor
|
|
||||||
spyder-kernels==2.5.2
|
|
||||||
# via spyder
|
|
||||||
stack-data==0.6.3
|
|
||||||
# via ipython
|
|
||||||
stevedore==5.2.0
|
|
||||||
# via bandit
|
|
||||||
svgelements==1.9.6
|
|
||||||
# via ocpsvg
|
|
||||||
svgpathtools==1.6.1
|
|
||||||
# via
|
|
||||||
# build123d
|
|
||||||
# ocpsvg
|
|
||||||
svgwrite==1.4.3
|
|
||||||
# via svgpathtools
|
|
||||||
tabulate==0.9.0
|
|
||||||
# via numpydoc
|
|
||||||
text-unidecode==1.3
|
|
||||||
# via python-slugify
|
|
||||||
textdistance==4.6.2
|
|
||||||
# via spyder
|
|
||||||
three-merge==0.1.1
|
|
||||||
# via spyder
|
|
||||||
tinycss2==1.3.0
|
|
||||||
# via
|
|
||||||
# nbconvert
|
|
||||||
# qstylizer
|
|
||||||
tomli==2.0.1
|
|
||||||
# via yapf
|
|
||||||
tomlkit==0.12.5
|
|
||||||
# via pylint
|
|
||||||
tornado==6.4.1
|
|
||||||
# via
|
|
||||||
# ipykernel
|
|
||||||
# jupyter-client
|
|
||||||
tox==4.15.1
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
traitlets==5.14.3
|
|
||||||
# via
|
|
||||||
# comm
|
|
||||||
# ipykernel
|
|
||||||
# ipython
|
|
||||||
# jupyter-client
|
|
||||||
# jupyter-core
|
|
||||||
# matplotlib-inline
|
|
||||||
# nbclient
|
|
||||||
# nbconvert
|
|
||||||
# nbformat
|
|
||||||
# qtconsole
|
|
||||||
trianglesolver==1.2
|
|
||||||
# via build123d
|
|
||||||
twine==5.1.1
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
types-python-dateutil==2.9.0.20240316
|
|
||||||
# via arrow
|
|
||||||
typing-extensions==4.12.2
|
|
||||||
# via
|
|
||||||
# build123d
|
|
||||||
# ezdxf
|
|
||||||
# ipython
|
|
||||||
# mypy
|
|
||||||
# python-utils
|
|
||||||
typish==1.9.3
|
|
||||||
# via cadquery
|
|
||||||
ujson==5.10.0
|
|
||||||
# via
|
|
||||||
# python-lsp-jsonrpc
|
|
||||||
# python-lsp-server
|
|
||||||
urllib3==2.2.2
|
|
||||||
# via
|
|
||||||
# requests
|
|
||||||
# twine
|
|
||||||
virtualenv==20.26.3
|
|
||||||
# via tox
|
|
||||||
watchdog==4.0.1
|
|
||||||
# via spyder
|
|
||||||
wcwidth==0.2.13
|
|
||||||
# via prompt-toolkit
|
|
||||||
webencodings==0.5.1
|
|
||||||
# via
|
|
||||||
# bleach
|
|
||||||
# tinycss2
|
|
||||||
whatthepatch==1.0.5
|
|
||||||
# via python-lsp-server
|
|
||||||
wheel==0.43.0
|
|
||||||
# via pip-tools
|
|
||||||
wurlitzer==3.1.1
|
|
||||||
# via spyder-kernels
|
|
||||||
yapf==0.40.2
|
|
||||||
# via python-lsp-server
|
|
||||||
zipp==3.19.2
|
|
||||||
# via importlib-metadata
|
|
||||||
|
|
||||||
# The following packages are considered to be unsafe in a requirements file:
|
|
||||||
# pip
|
|
||||||
# setuptools
|
|
||||||
@@ -1,295 +0,0 @@
|
|||||||
#
|
|
||||||
# This file is autogenerated by pip-compile with Python 3.11
|
|
||||||
# by the following command:
|
|
||||||
#
|
|
||||||
# pip-compile --extra=dev --output-file=requirements/requirements-dev.txt
|
|
||||||
#
|
|
||||||
anytree==2.12.1
|
|
||||||
# via build123d
|
|
||||||
asttokens==2.4.1
|
|
||||||
# via stack-data
|
|
||||||
backports-tarfile==1.2.0
|
|
||||||
# via jaraco-context
|
|
||||||
bandit==1.7.9
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
binaryornot==0.4.4
|
|
||||||
# via reuse
|
|
||||||
boolean-py==4.0
|
|
||||||
# via
|
|
||||||
# license-expression
|
|
||||||
# reuse
|
|
||||||
build==1.2.1
|
|
||||||
# via pip-tools
|
|
||||||
build123d==0.5.0
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
cachetools==5.3.3
|
|
||||||
# via tox
|
|
||||||
cadquery-ocp==7.7.2
|
|
||||||
# via
|
|
||||||
# build123d
|
|
||||||
# ocpsvg
|
|
||||||
certifi==2024.6.2
|
|
||||||
# via requests
|
|
||||||
cffi==1.16.0
|
|
||||||
# via cryptography
|
|
||||||
chardet==5.2.0
|
|
||||||
# via
|
|
||||||
# binaryornot
|
|
||||||
# python-debian
|
|
||||||
# tox
|
|
||||||
charset-normalizer==3.3.2
|
|
||||||
# via requests
|
|
||||||
click==8.1.7
|
|
||||||
# via pip-tools
|
|
||||||
colorama==0.4.6
|
|
||||||
# via tox
|
|
||||||
coverage[toml]==7.5.4
|
|
||||||
# via pytest-cov
|
|
||||||
cryptography==42.0.8
|
|
||||||
# via secretstorage
|
|
||||||
decorator==5.1.1
|
|
||||||
# via ipython
|
|
||||||
distlib==0.3.8
|
|
||||||
# via virtualenv
|
|
||||||
docutils==0.21.2
|
|
||||||
# via readme-renderer
|
|
||||||
executing==2.0.1
|
|
||||||
# via stack-data
|
|
||||||
ezdxf==1.3.1
|
|
||||||
# via build123d
|
|
||||||
filelock==3.15.4
|
|
||||||
# via
|
|
||||||
# tox
|
|
||||||
# virtualenv
|
|
||||||
flake8==7.1.0
|
|
||||||
# via
|
|
||||||
# buildable-stick-system (pyproject.toml)
|
|
||||||
# flake8-builtins
|
|
||||||
# flake8-docstrings
|
|
||||||
# flake8-executable
|
|
||||||
# flake8-isort
|
|
||||||
# flake8-mutable
|
|
||||||
# flake8-pyproject
|
|
||||||
flake8-blind-except==0.2.1
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
flake8-builtins==2.5.0
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
flake8-docstrings==1.7.0
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
flake8-executable==2.1.3
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
flake8-fixme==1.1.1
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
flake8-isort==6.1.1
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
flake8-logging-format==2024.24.12
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
flake8-mutable==1.2.0
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
flake8-pyproject==1.2.3
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
fonttools==4.53.0
|
|
||||||
# via ezdxf
|
|
||||||
idna==3.7
|
|
||||||
# via requests
|
|
||||||
importlib-metadata==8.0.0
|
|
||||||
# via
|
|
||||||
# keyring
|
|
||||||
# twine
|
|
||||||
iniconfig==2.0.0
|
|
||||||
# via pytest
|
|
||||||
ipython==8.26.0
|
|
||||||
# via build123d
|
|
||||||
isort==5.13.2
|
|
||||||
# via flake8-isort
|
|
||||||
jaraco-classes==3.4.0
|
|
||||||
# via keyring
|
|
||||||
jaraco-context==5.3.0
|
|
||||||
# via keyring
|
|
||||||
jaraco-functools==4.0.1
|
|
||||||
# via keyring
|
|
||||||
jedi==0.19.1
|
|
||||||
# via ipython
|
|
||||||
jeepney==0.8.0
|
|
||||||
# via
|
|
||||||
# keyring
|
|
||||||
# secretstorage
|
|
||||||
jinja2==3.1.4
|
|
||||||
# via reuse
|
|
||||||
keyring==25.2.1
|
|
||||||
# via twine
|
|
||||||
license-expression==30.3.0
|
|
||||||
# via reuse
|
|
||||||
markdown-it-py==3.0.0
|
|
||||||
# via rich
|
|
||||||
markupsafe==2.1.5
|
|
||||||
# via jinja2
|
|
||||||
matplotlib-inline==0.1.7
|
|
||||||
# via ipython
|
|
||||||
mccabe==0.7.0
|
|
||||||
# via flake8
|
|
||||||
mdurl==0.1.2
|
|
||||||
# via markdown-it-py
|
|
||||||
more-itertools==10.3.0
|
|
||||||
# via
|
|
||||||
# jaraco-classes
|
|
||||||
# jaraco-functools
|
|
||||||
mypy==1.10.1
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
mypy-extensions==1.0.0
|
|
||||||
# via mypy
|
|
||||||
nh3==0.2.17
|
|
||||||
# via readme-renderer
|
|
||||||
numpy==1.26.4
|
|
||||||
# via
|
|
||||||
# build123d
|
|
||||||
# ezdxf
|
|
||||||
# numpy-stl
|
|
||||||
# scipy
|
|
||||||
# svgpathtools
|
|
||||||
numpy-stl==3.1.1
|
|
||||||
# via build123d
|
|
||||||
ocpsvg==0.2.1
|
|
||||||
# via build123d
|
|
||||||
packaging==24.1
|
|
||||||
# via
|
|
||||||
# build
|
|
||||||
# pyproject-api
|
|
||||||
# pytest
|
|
||||||
# setuptools-scm
|
|
||||||
# tox
|
|
||||||
parso==0.8.4
|
|
||||||
# via jedi
|
|
||||||
pbr==6.0.0
|
|
||||||
# via stevedore
|
|
||||||
pexpect==4.9.0
|
|
||||||
# via ipython
|
|
||||||
pip-tools==7.4.1
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
pkginfo==1.10.0
|
|
||||||
# via twine
|
|
||||||
platformdirs==4.2.2
|
|
||||||
# via
|
|
||||||
# tox
|
|
||||||
# virtualenv
|
|
||||||
pluggy==1.5.0
|
|
||||||
# via
|
|
||||||
# pytest
|
|
||||||
# tox
|
|
||||||
prompt-toolkit==3.0.47
|
|
||||||
# via ipython
|
|
||||||
ptyprocess==0.7.0
|
|
||||||
# via pexpect
|
|
||||||
pure-eval==0.2.2
|
|
||||||
# via stack-data
|
|
||||||
py-lib3mf==2.3.1
|
|
||||||
# via build123d
|
|
||||||
pycodestyle==2.12.0
|
|
||||||
# via flake8
|
|
||||||
pycparser==2.22
|
|
||||||
# via cffi
|
|
||||||
pydocstyle==6.3.0
|
|
||||||
# via flake8-docstrings
|
|
||||||
pyflakes==3.2.0
|
|
||||||
# via flake8
|
|
||||||
pygments==2.18.0
|
|
||||||
# via
|
|
||||||
# ipython
|
|
||||||
# readme-renderer
|
|
||||||
# rich
|
|
||||||
pyparsing==3.1.2
|
|
||||||
# via ezdxf
|
|
||||||
pyproject-api==1.7.1
|
|
||||||
# via tox
|
|
||||||
pyproject-hooks==1.1.0
|
|
||||||
# via
|
|
||||||
# build
|
|
||||||
# pip-tools
|
|
||||||
pytest==8.2.2
|
|
||||||
# via
|
|
||||||
# buildable-stick-system (pyproject.toml)
|
|
||||||
# pytest-asyncio
|
|
||||||
# pytest-cov
|
|
||||||
pytest-asyncio==0.23.7
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
pytest-cov==5.0.0
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
python-debian==0.1.49
|
|
||||||
# via reuse
|
|
||||||
python-utils==3.8.2
|
|
||||||
# via numpy-stl
|
|
||||||
pyyaml==6.0.1
|
|
||||||
# via bandit
|
|
||||||
readme-renderer==43.0
|
|
||||||
# via twine
|
|
||||||
requests==2.32.3
|
|
||||||
# via
|
|
||||||
# requests-toolbelt
|
|
||||||
# twine
|
|
||||||
requests-toolbelt==1.0.0
|
|
||||||
# via twine
|
|
||||||
reuse==3.0.2
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
rfc3986==2.0.0
|
|
||||||
# via twine
|
|
||||||
rich==13.7.1
|
|
||||||
# via
|
|
||||||
# bandit
|
|
||||||
# twine
|
|
||||||
scipy==1.14.0
|
|
||||||
# via svgpathtools
|
|
||||||
secretstorage==3.3.3
|
|
||||||
# via keyring
|
|
||||||
setuptools-scm==8.1.0
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
six==1.16.0
|
|
||||||
# via
|
|
||||||
# anytree
|
|
||||||
# asttokens
|
|
||||||
snowballstemmer==2.2.0
|
|
||||||
# via pydocstyle
|
|
||||||
stack-data==0.6.3
|
|
||||||
# via ipython
|
|
||||||
stevedore==5.2.0
|
|
||||||
# via bandit
|
|
||||||
svgelements==1.9.6
|
|
||||||
# via ocpsvg
|
|
||||||
svgpathtools==1.6.1
|
|
||||||
# via
|
|
||||||
# build123d
|
|
||||||
# ocpsvg
|
|
||||||
svgwrite==1.4.3
|
|
||||||
# via svgpathtools
|
|
||||||
tox==4.15.1
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
traitlets==5.14.3
|
|
||||||
# via
|
|
||||||
# ipython
|
|
||||||
# matplotlib-inline
|
|
||||||
trianglesolver==1.2
|
|
||||||
# via build123d
|
|
||||||
twine==5.1.1
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
typing-extensions==4.12.2
|
|
||||||
# via
|
|
||||||
# build123d
|
|
||||||
# ezdxf
|
|
||||||
# ipython
|
|
||||||
# mypy
|
|
||||||
# python-utils
|
|
||||||
urllib3==2.2.2
|
|
||||||
# via
|
|
||||||
# requests
|
|
||||||
# twine
|
|
||||||
virtualenv==20.26.3
|
|
||||||
# via tox
|
|
||||||
wcwidth==0.2.13
|
|
||||||
# via prompt-toolkit
|
|
||||||
wheel==0.43.0
|
|
||||||
# via pip-tools
|
|
||||||
zipp==3.19.2
|
|
||||||
# via importlib-metadata
|
|
||||||
|
|
||||||
# The following packages are considered to be unsafe in a requirements file:
|
|
||||||
# pip
|
|
||||||
# setuptools
|
|
||||||
@@ -1,508 +0,0 @@
|
|||||||
#
|
|
||||||
# This file is autogenerated by pip-compile with Python 3.11
|
|
||||||
# by the following command:
|
|
||||||
#
|
|
||||||
# pip-compile --extra=gui --output-file=requirements/requirements-gui.txt
|
|
||||||
#
|
|
||||||
alabaster==0.7.16
|
|
||||||
# via sphinx
|
|
||||||
anytree==2.12.1
|
|
||||||
# via build123d
|
|
||||||
arrow==1.3.0
|
|
||||||
# via cookiecutter
|
|
||||||
astroid==3.2.2
|
|
||||||
# via pylint
|
|
||||||
asttokens==2.4.1
|
|
||||||
# via stack-data
|
|
||||||
atomicwrites==1.4.1
|
|
||||||
# via spyder
|
|
||||||
attrs==23.2.0
|
|
||||||
# via
|
|
||||||
# jsonschema
|
|
||||||
# referencing
|
|
||||||
autopep8==2.0.4
|
|
||||||
# via python-lsp-server
|
|
||||||
babel==2.15.0
|
|
||||||
# via sphinx
|
|
||||||
backports-tarfile==1.2.0
|
|
||||||
# via jaraco-context
|
|
||||||
beautifulsoup4==4.12.3
|
|
||||||
# via nbconvert
|
|
||||||
binaryornot==0.4.4
|
|
||||||
# via cookiecutter
|
|
||||||
black==24.4.2
|
|
||||||
# via python-lsp-black
|
|
||||||
bleach==6.1.0
|
|
||||||
# via nbconvert
|
|
||||||
build123d==0.5.0
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
cadquery==2.4.0
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
cadquery-ocp==7.7.2
|
|
||||||
# via
|
|
||||||
# build123d
|
|
||||||
# cadquery
|
|
||||||
# ocpsvg
|
|
||||||
casadi==3.6.5
|
|
||||||
# via cadquery
|
|
||||||
certifi==2024.6.2
|
|
||||||
# via requests
|
|
||||||
cffi==1.16.0
|
|
||||||
# via cryptography
|
|
||||||
chardet==5.2.0
|
|
||||||
# via
|
|
||||||
# binaryornot
|
|
||||||
# spyder
|
|
||||||
charset-normalizer==3.3.2
|
|
||||||
# via requests
|
|
||||||
click==8.1.7
|
|
||||||
# via
|
|
||||||
# black
|
|
||||||
# cookiecutter
|
|
||||||
cloudpickle==3.0.0
|
|
||||||
# via
|
|
||||||
# spyder
|
|
||||||
# spyder-kernels
|
|
||||||
comm==0.2.2
|
|
||||||
# via ipykernel
|
|
||||||
cookiecutter==2.6.0
|
|
||||||
# via spyder
|
|
||||||
cq-editor @ git+https://github.com/jdegenstein/jmwright-CQ-Editor
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
cryptography==42.0.8
|
|
||||||
# via secretstorage
|
|
||||||
debugpy==1.8.2
|
|
||||||
# via ipykernel
|
|
||||||
decorator==5.1.1
|
|
||||||
# via ipython
|
|
||||||
defusedxml==0.7.1
|
|
||||||
# via nbconvert
|
|
||||||
diff-match-patch==20230430
|
|
||||||
# via
|
|
||||||
# spyder
|
|
||||||
# three-merge
|
|
||||||
dill==0.3.8
|
|
||||||
# via pylint
|
|
||||||
docstring-to-markdown==0.15
|
|
||||||
# via python-lsp-server
|
|
||||||
docutils==0.21.2
|
|
||||||
# via sphinx
|
|
||||||
executing==2.0.1
|
|
||||||
# via stack-data
|
|
||||||
ezdxf==1.3.1
|
|
||||||
# via
|
|
||||||
# build123d
|
|
||||||
# cadquery
|
|
||||||
fastjsonschema==2.20.0
|
|
||||||
# via nbformat
|
|
||||||
flake8==7.0.0
|
|
||||||
# via python-lsp-server
|
|
||||||
fonttools==4.53.0
|
|
||||||
# via ezdxf
|
|
||||||
idna==3.7
|
|
||||||
# via requests
|
|
||||||
imagesize==1.4.1
|
|
||||||
# via sphinx
|
|
||||||
importlib-metadata==8.0.0
|
|
||||||
# via
|
|
||||||
# keyring
|
|
||||||
# yapf
|
|
||||||
inflection==0.5.1
|
|
||||||
# via qstylizer
|
|
||||||
intervaltree==3.1.0
|
|
||||||
# via spyder
|
|
||||||
ipykernel==6.29.5
|
|
||||||
# via
|
|
||||||
# qtconsole
|
|
||||||
# spyder-kernels
|
|
||||||
ipython==8.26.0
|
|
||||||
# via
|
|
||||||
# build123d
|
|
||||||
# cq-editor
|
|
||||||
# ipykernel
|
|
||||||
# spyder
|
|
||||||
# spyder-kernels
|
|
||||||
isort==5.13.2
|
|
||||||
# via pylint
|
|
||||||
jaraco-classes==3.4.0
|
|
||||||
# via keyring
|
|
||||||
jaraco-context==5.3.0
|
|
||||||
# via keyring
|
|
||||||
jaraco-functools==4.0.1
|
|
||||||
# via keyring
|
|
||||||
jedi==0.19.1
|
|
||||||
# via
|
|
||||||
# ipython
|
|
||||||
# python-lsp-server
|
|
||||||
# spyder
|
|
||||||
jeepney==0.8.0
|
|
||||||
# via
|
|
||||||
# keyring
|
|
||||||
# secretstorage
|
|
||||||
jellyfish==1.0.4
|
|
||||||
# via spyder
|
|
||||||
jinja2==3.1.4
|
|
||||||
# via
|
|
||||||
# cookiecutter
|
|
||||||
# nbconvert
|
|
||||||
# sphinx
|
|
||||||
jsonschema==4.22.0
|
|
||||||
# via
|
|
||||||
# nbformat
|
|
||||||
# spyder
|
|
||||||
jsonschema-specifications==2023.12.1
|
|
||||||
# via jsonschema
|
|
||||||
jupyter-client==8.6.2
|
|
||||||
# via
|
|
||||||
# ipykernel
|
|
||||||
# nbclient
|
|
||||||
# qtconsole
|
|
||||||
# spyder-kernels
|
|
||||||
jupyter-core==5.7.2
|
|
||||||
# via
|
|
||||||
# ipykernel
|
|
||||||
# jupyter-client
|
|
||||||
# nbclient
|
|
||||||
# nbconvert
|
|
||||||
# nbformat
|
|
||||||
# qtconsole
|
|
||||||
jupyterlab-pygments==0.3.0
|
|
||||||
# via nbconvert
|
|
||||||
keyring==25.2.1
|
|
||||||
# via spyder
|
|
||||||
logbook==1.7.0.post0
|
|
||||||
# via cq-editor
|
|
||||||
markdown-it-py==3.0.0
|
|
||||||
# via rich
|
|
||||||
markupsafe==2.1.5
|
|
||||||
# via
|
|
||||||
# jinja2
|
|
||||||
# nbconvert
|
|
||||||
matplotlib-inline==0.1.7
|
|
||||||
# via
|
|
||||||
# ipykernel
|
|
||||||
# ipython
|
|
||||||
mccabe==0.7.0
|
|
||||||
# via
|
|
||||||
# flake8
|
|
||||||
# pylint
|
|
||||||
# python-lsp-server
|
|
||||||
mdurl==0.1.2
|
|
||||||
# via markdown-it-py
|
|
||||||
mistune==3.0.2
|
|
||||||
# via nbconvert
|
|
||||||
more-itertools==10.3.0
|
|
||||||
# via
|
|
||||||
# jaraco-classes
|
|
||||||
# jaraco-functools
|
|
||||||
multimethod==1.9.1
|
|
||||||
# via cadquery
|
|
||||||
mypy-extensions==1.0.0
|
|
||||||
# via black
|
|
||||||
nbclient==0.10.0
|
|
||||||
# via nbconvert
|
|
||||||
nbconvert==7.16.4
|
|
||||||
# via spyder
|
|
||||||
nbformat==5.10.4
|
|
||||||
# via
|
|
||||||
# nbclient
|
|
||||||
# nbconvert
|
|
||||||
nest-asyncio==1.6.0
|
|
||||||
# via ipykernel
|
|
||||||
nlopt==2.7.1
|
|
||||||
# via cadquery
|
|
||||||
nptyping==2.0.1
|
|
||||||
# via cadquery
|
|
||||||
numpy==1.26.4
|
|
||||||
# via
|
|
||||||
# build123d
|
|
||||||
# casadi
|
|
||||||
# ezdxf
|
|
||||||
# nlopt
|
|
||||||
# nptyping
|
|
||||||
# numpy-stl
|
|
||||||
# pyqtgraph
|
|
||||||
# scipy
|
|
||||||
# svgpathtools
|
|
||||||
numpy-stl==3.1.1
|
|
||||||
# via build123d
|
|
||||||
numpydoc==1.7.0
|
|
||||||
# via spyder
|
|
||||||
ocpsvg==0.2.1
|
|
||||||
# via build123d
|
|
||||||
packaging==24.1
|
|
||||||
# via
|
|
||||||
# black
|
|
||||||
# ipykernel
|
|
||||||
# nbconvert
|
|
||||||
# pytoolconfig
|
|
||||||
# qtconsole
|
|
||||||
# qtpy
|
|
||||||
# sphinx
|
|
||||||
pandocfilters==1.5.1
|
|
||||||
# via nbconvert
|
|
||||||
parso==0.8.4
|
|
||||||
# via
|
|
||||||
# jedi
|
|
||||||
# spyder
|
|
||||||
path==16.14.0
|
|
||||||
# via
|
|
||||||
# cadquery
|
|
||||||
# cq-editor
|
|
||||||
pathspec==0.12.1
|
|
||||||
# via black
|
|
||||||
pexpect==4.9.0
|
|
||||||
# via
|
|
||||||
# ipython
|
|
||||||
# spyder
|
|
||||||
pickleshare==0.7.5
|
|
||||||
# via spyder
|
|
||||||
platformdirs==4.2.2
|
|
||||||
# via
|
|
||||||
# black
|
|
||||||
# jupyter-core
|
|
||||||
# pylint
|
|
||||||
# pytoolconfig
|
|
||||||
# yapf
|
|
||||||
pluggy==1.5.0
|
|
||||||
# via python-lsp-server
|
|
||||||
prompt-toolkit==3.0.47
|
|
||||||
# via ipython
|
|
||||||
psutil==6.0.0
|
|
||||||
# via
|
|
||||||
# ipykernel
|
|
||||||
# spyder
|
|
||||||
ptyprocess==0.7.0
|
|
||||||
# via pexpect
|
|
||||||
pure-eval==0.2.2
|
|
||||||
# via stack-data
|
|
||||||
py-lib3mf==2.3.1
|
|
||||||
# via build123d
|
|
||||||
pycodestyle==2.11.1
|
|
||||||
# via
|
|
||||||
# autopep8
|
|
||||||
# flake8
|
|
||||||
# python-lsp-server
|
|
||||||
pycparser==2.22
|
|
||||||
# via cffi
|
|
||||||
pydocstyle==6.3.0
|
|
||||||
# via python-lsp-server
|
|
||||||
pyflakes==3.2.0
|
|
||||||
# via
|
|
||||||
# flake8
|
|
||||||
# python-lsp-server
|
|
||||||
pygments==2.18.0
|
|
||||||
# via
|
|
||||||
# ipython
|
|
||||||
# nbconvert
|
|
||||||
# qtconsole
|
|
||||||
# rich
|
|
||||||
# sphinx
|
|
||||||
# spyder
|
|
||||||
pylint==3.2.5
|
|
||||||
# via
|
|
||||||
# python-lsp-server
|
|
||||||
# spyder
|
|
||||||
pylint-venv==3.0.3
|
|
||||||
# via spyder
|
|
||||||
pyls-spyder==0.4.0
|
|
||||||
# via spyder
|
|
||||||
pyparsing==3.1.2
|
|
||||||
# via ezdxf
|
|
||||||
pyqt5==5.15.10
|
|
||||||
# via
|
|
||||||
# cq-editor
|
|
||||||
# pyqtwebengine
|
|
||||||
# spyder
|
|
||||||
pyqt5-qt5==5.15.14
|
|
||||||
# via pyqt5
|
|
||||||
pyqt5-sip==12.13.0
|
|
||||||
# via
|
|
||||||
# pyqt5
|
|
||||||
# pyqtwebengine
|
|
||||||
pyqtgraph==0.13.7
|
|
||||||
# via cq-editor
|
|
||||||
pyqtwebengine==5.15.6
|
|
||||||
# via spyder
|
|
||||||
pyqtwebengine-qt5==5.15.14
|
|
||||||
# via pyqtwebengine
|
|
||||||
python-dateutil==2.9.0.post0
|
|
||||||
# via
|
|
||||||
# arrow
|
|
||||||
# jupyter-client
|
|
||||||
python-lsp-black==2.0.0
|
|
||||||
# via spyder
|
|
||||||
python-lsp-jsonrpc==1.1.2
|
|
||||||
# via python-lsp-server
|
|
||||||
python-lsp-server[all]==1.11.0
|
|
||||||
# via
|
|
||||||
# pyls-spyder
|
|
||||||
# python-lsp-black
|
|
||||||
# spyder
|
|
||||||
python-slugify==8.0.4
|
|
||||||
# via cookiecutter
|
|
||||||
python-utils==3.8.2
|
|
||||||
# via numpy-stl
|
|
||||||
pytoolconfig[global]==1.3.1
|
|
||||||
# via rope
|
|
||||||
pyxdg==0.28
|
|
||||||
# via spyder
|
|
||||||
pyyaml==6.0.1
|
|
||||||
# via cookiecutter
|
|
||||||
pyzmq==26.0.3
|
|
||||||
# via
|
|
||||||
# ipykernel
|
|
||||||
# jupyter-client
|
|
||||||
# qtconsole
|
|
||||||
# spyder
|
|
||||||
# spyder-kernels
|
|
||||||
qdarkstyle==3.2.3
|
|
||||||
# via spyder
|
|
||||||
qstylizer==0.2.3
|
|
||||||
# via spyder
|
|
||||||
qtawesome==1.3.1
|
|
||||||
# via spyder
|
|
||||||
qtconsole==5.5.2
|
|
||||||
# via spyder
|
|
||||||
qtpy==2.4.1
|
|
||||||
# via
|
|
||||||
# qdarkstyle
|
|
||||||
# qtawesome
|
|
||||||
# qtconsole
|
|
||||||
# spyder
|
|
||||||
referencing==0.35.1
|
|
||||||
# via
|
|
||||||
# jsonschema
|
|
||||||
# jsonschema-specifications
|
|
||||||
requests==2.32.3
|
|
||||||
# via
|
|
||||||
# cookiecutter
|
|
||||||
# cq-editor
|
|
||||||
# sphinx
|
|
||||||
rich==13.7.1
|
|
||||||
# via cookiecutter
|
|
||||||
rope==1.13.0
|
|
||||||
# via python-lsp-server
|
|
||||||
rpds-py==0.18.1
|
|
||||||
# via
|
|
||||||
# jsonschema
|
|
||||||
# referencing
|
|
||||||
rtree==1.2.0
|
|
||||||
# via spyder
|
|
||||||
scipy==1.14.0
|
|
||||||
# via svgpathtools
|
|
||||||
secretstorage==3.3.3
|
|
||||||
# via keyring
|
|
||||||
six==1.16.0
|
|
||||||
# via
|
|
||||||
# anytree
|
|
||||||
# asttokens
|
|
||||||
# bleach
|
|
||||||
# python-dateutil
|
|
||||||
snowballstemmer==2.2.0
|
|
||||||
# via
|
|
||||||
# pydocstyle
|
|
||||||
# sphinx
|
|
||||||
sortedcontainers==2.4.0
|
|
||||||
# via intervaltree
|
|
||||||
soupsieve==2.5
|
|
||||||
# via beautifulsoup4
|
|
||||||
sphinx==7.3.7
|
|
||||||
# via
|
|
||||||
# numpydoc
|
|
||||||
# spyder
|
|
||||||
sphinxcontrib-applehelp==1.0.8
|
|
||||||
# via sphinx
|
|
||||||
sphinxcontrib-devhelp==1.0.6
|
|
||||||
# via sphinx
|
|
||||||
sphinxcontrib-htmlhelp==2.0.5
|
|
||||||
# via sphinx
|
|
||||||
sphinxcontrib-jsmath==1.0.1
|
|
||||||
# via sphinx
|
|
||||||
sphinxcontrib-qthelp==1.0.7
|
|
||||||
# via sphinx
|
|
||||||
sphinxcontrib-serializinghtml==1.1.10
|
|
||||||
# via sphinx
|
|
||||||
spyder==5.5.5
|
|
||||||
# via cq-editor
|
|
||||||
spyder-kernels==2.5.2
|
|
||||||
# via spyder
|
|
||||||
stack-data==0.6.3
|
|
||||||
# via ipython
|
|
||||||
svgelements==1.9.6
|
|
||||||
# via ocpsvg
|
|
||||||
svgpathtools==1.6.1
|
|
||||||
# via
|
|
||||||
# build123d
|
|
||||||
# ocpsvg
|
|
||||||
svgwrite==1.4.3
|
|
||||||
# via svgpathtools
|
|
||||||
tabulate==0.9.0
|
|
||||||
# via numpydoc
|
|
||||||
text-unidecode==1.3
|
|
||||||
# via python-slugify
|
|
||||||
textdistance==4.6.2
|
|
||||||
# via spyder
|
|
||||||
three-merge==0.1.1
|
|
||||||
# via spyder
|
|
||||||
tinycss2==1.3.0
|
|
||||||
# via
|
|
||||||
# nbconvert
|
|
||||||
# qstylizer
|
|
||||||
tomli==2.0.1
|
|
||||||
# via yapf
|
|
||||||
tomlkit==0.12.5
|
|
||||||
# via pylint
|
|
||||||
tornado==6.4.1
|
|
||||||
# via
|
|
||||||
# ipykernel
|
|
||||||
# jupyter-client
|
|
||||||
traitlets==5.14.3
|
|
||||||
# via
|
|
||||||
# comm
|
|
||||||
# ipykernel
|
|
||||||
# ipython
|
|
||||||
# jupyter-client
|
|
||||||
# jupyter-core
|
|
||||||
# matplotlib-inline
|
|
||||||
# nbclient
|
|
||||||
# nbconvert
|
|
||||||
# nbformat
|
|
||||||
# qtconsole
|
|
||||||
trianglesolver==1.2
|
|
||||||
# via build123d
|
|
||||||
types-python-dateutil==2.9.0.20240316
|
|
||||||
# via arrow
|
|
||||||
typing-extensions==4.12.2
|
|
||||||
# via
|
|
||||||
# build123d
|
|
||||||
# ezdxf
|
|
||||||
# ipython
|
|
||||||
# python-utils
|
|
||||||
typish==1.9.3
|
|
||||||
# via cadquery
|
|
||||||
ujson==5.10.0
|
|
||||||
# via
|
|
||||||
# python-lsp-jsonrpc
|
|
||||||
# python-lsp-server
|
|
||||||
urllib3==2.2.2
|
|
||||||
# via requests
|
|
||||||
watchdog==4.0.1
|
|
||||||
# via spyder
|
|
||||||
wcwidth==0.2.13
|
|
||||||
# via prompt-toolkit
|
|
||||||
webencodings==0.5.1
|
|
||||||
# via
|
|
||||||
# bleach
|
|
||||||
# tinycss2
|
|
||||||
whatthepatch==1.0.5
|
|
||||||
# via python-lsp-server
|
|
||||||
wurlitzer==3.1.1
|
|
||||||
# via spyder-kernels
|
|
||||||
yapf==0.40.2
|
|
||||||
# via python-lsp-server
|
|
||||||
zipp==3.19.2
|
|
||||||
# via importlib-metadata
|
|
||||||
|
|
||||||
# The following packages are considered to be unsafe in a requirements file:
|
|
||||||
# setuptools
|
|
||||||
@@ -1,89 +0,0 @@
|
|||||||
#
|
|
||||||
# This file is autogenerated by pip-compile with Python 3.11
|
|
||||||
# by the following command:
|
|
||||||
#
|
|
||||||
# pip-compile --output-file=requirements/requirements.txt
|
|
||||||
#
|
|
||||||
anytree==2.12.1
|
|
||||||
# via build123d
|
|
||||||
asttokens==2.4.1
|
|
||||||
# via stack-data
|
|
||||||
build123d==0.5.0
|
|
||||||
# via buildable-stick-system (pyproject.toml)
|
|
||||||
cadquery-ocp==7.7.2
|
|
||||||
# via
|
|
||||||
# build123d
|
|
||||||
# ocpsvg
|
|
||||||
decorator==5.1.1
|
|
||||||
# via ipython
|
|
||||||
executing==2.0.1
|
|
||||||
# via stack-data
|
|
||||||
ezdxf==1.3.1
|
|
||||||
# via build123d
|
|
||||||
fonttools==4.53.0
|
|
||||||
# via ezdxf
|
|
||||||
ipython==8.26.0
|
|
||||||
# via build123d
|
|
||||||
jedi==0.19.1
|
|
||||||
# via ipython
|
|
||||||
matplotlib-inline==0.1.7
|
|
||||||
# via ipython
|
|
||||||
numpy==1.26.4
|
|
||||||
# via
|
|
||||||
# build123d
|
|
||||||
# ezdxf
|
|
||||||
# numpy-stl
|
|
||||||
# scipy
|
|
||||||
# svgpathtools
|
|
||||||
numpy-stl==3.1.1
|
|
||||||
# via build123d
|
|
||||||
ocpsvg==0.2.1
|
|
||||||
# via build123d
|
|
||||||
parso==0.8.4
|
|
||||||
# via jedi
|
|
||||||
pexpect==4.9.0
|
|
||||||
# via ipython
|
|
||||||
prompt-toolkit==3.0.47
|
|
||||||
# via ipython
|
|
||||||
ptyprocess==0.7.0
|
|
||||||
# via pexpect
|
|
||||||
pure-eval==0.2.2
|
|
||||||
# via stack-data
|
|
||||||
py-lib3mf==2.3.1
|
|
||||||
# via build123d
|
|
||||||
pygments==2.18.0
|
|
||||||
# via ipython
|
|
||||||
pyparsing==3.1.2
|
|
||||||
# via ezdxf
|
|
||||||
python-utils==3.8.2
|
|
||||||
# via numpy-stl
|
|
||||||
scipy==1.14.0
|
|
||||||
# via svgpathtools
|
|
||||||
six==1.16.0
|
|
||||||
# via
|
|
||||||
# anytree
|
|
||||||
# asttokens
|
|
||||||
stack-data==0.6.3
|
|
||||||
# via ipython
|
|
||||||
svgelements==1.9.6
|
|
||||||
# via ocpsvg
|
|
||||||
svgpathtools==1.6.1
|
|
||||||
# via
|
|
||||||
# build123d
|
|
||||||
# ocpsvg
|
|
||||||
svgwrite==1.4.3
|
|
||||||
# via svgpathtools
|
|
||||||
traitlets==5.14.3
|
|
||||||
# via
|
|
||||||
# ipython
|
|
||||||
# matplotlib-inline
|
|
||||||
trianglesolver==1.2
|
|
||||||
# via build123d
|
|
||||||
typing-extensions==4.12.2
|
|
||||||
# via
|
|
||||||
# build123d
|
|
||||||
# ezdxf
|
|
||||||
# ipython
|
|
||||||
# python-utils
|
|
||||||
wcwidth==0.2.13
|
|
||||||
# via prompt-toolkit
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
"""The Buildable Stick System, code to generate arcade stick components."""
|
|
||||||
@@ -1,68 +0,0 @@
|
|||||||
"""Shared parameters and foundational objects.
|
|
||||||
|
|
||||||
Reminder that the default unit is millimeters.
|
|
||||||
|
|
||||||
SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
"""
|
|
||||||
import build123d as bd
|
|
||||||
|
|
||||||
####################
|
|
||||||
# measurements for holes and connectors
|
|
||||||
####################
|
|
||||||
HOLE_TOLERANCE = 0.15
|
|
||||||
|
|
||||||
M4_BOLT_RADIUS = 2 + HOLE_TOLERANCE
|
|
||||||
M4_BOLT_COUNTERSINK_RADIUS = M4_BOLT_RADIUS + 2
|
|
||||||
|
|
||||||
####################
|
|
||||||
# basic dimensions necessary for proper object composition
|
|
||||||
####################
|
|
||||||
|
|
||||||
# these are for ONE frame box, not the overall case, which may be composed
|
|
||||||
# of multiple frames
|
|
||||||
FRAME_X = 233
|
|
||||||
FRAME_Y = 208
|
|
||||||
FRAME_Z = 57
|
|
||||||
|
|
||||||
# the "wall" is the space inside the frame that is reserved to make a lip for panels
|
|
||||||
FRAME_WALL = 4
|
|
||||||
|
|
||||||
# panel dimensions for either an inset panel or the inner tray of an overhang panel
|
|
||||||
PANEL_X = FRAME_X - (FRAME_WALL * 2)
|
|
||||||
PANEL_Y = FRAME_Y - (FRAME_WALL * 2)
|
|
||||||
PANEL_Z = 5
|
|
||||||
|
|
||||||
# the center point of where the standoff and bolts connecting a panel to a frame go,
|
|
||||||
# relative to a centered object
|
|
||||||
PANEL_TO_FRAME_POINT_OFFSET = 10
|
|
||||||
PANEL_TO_FRAME_POINT_X = (PANEL_X/2) - PANEL_TO_FRAME_POINT_OFFSET
|
|
||||||
PANEL_TO_FRAME_POINT_Y = (PANEL_Y/2) - PANEL_TO_FRAME_POINT_OFFSET
|
|
||||||
|
|
||||||
####################
|
|
||||||
# commonly used button dimensions
|
|
||||||
####################
|
|
||||||
|
|
||||||
BUTTON_30MM_RADIUS = 15 + HOLE_TOLERANCE
|
|
||||||
BUTTON_24MM_RADIUS = 12 + HOLE_TOLERANCE
|
|
||||||
|
|
||||||
# carve out space for snap-ins
|
|
||||||
# judgng by https://www.slagcoin.com/joystick/attributes_brands.html 2.5mm is good for everything
|
|
||||||
BUTTON_SNAP_IN_THICKNESS = 2.5
|
|
||||||
|
|
||||||
# make sure the carve out space is also enough for screw-in nuts
|
|
||||||
# slagcoin has screw-in nut diameter at 36mm for 30mm buttons, 29.5 for 24mm buttons
|
|
||||||
# radius + value below should leave space for the nut and for fingers to grab the nut
|
|
||||||
BUTTON_30MM_RADIUS_CONNECTOR_SPACE = 6
|
|
||||||
|
|
||||||
####################
|
|
||||||
# arcade stick parts that are relevant in a number of contexts
|
|
||||||
####################
|
|
||||||
|
|
||||||
|
|
||||||
class CutoutButtonHole(bd.CounterBoreHole):
|
|
||||||
"""Use an inverted counter bore hole as the button hole with the extra thin space for snap-ins."""
|
|
||||||
|
|
||||||
def __init__(self, radius, **kwargs):
|
|
||||||
"""Initialize the inverted counter bore hole with the right thinness for e.g. a panel to take snap-ins."""
|
|
||||||
super().__init__(radius, radius+BUTTON_30MM_RADIUS_CONNECTOR_SPACE, BUTTON_SNAP_IN_THICKNESS, **kwargs)
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
"""Button and other component layouts for use in panels.
|
|
||||||
|
|
||||||
SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
"""
|
|
||||||
import build123d as bd
|
|
||||||
|
|
||||||
from bss import core
|
|
||||||
|
|
||||||
####################
|
|
||||||
# collected points and related data, to be used to construct a layout
|
|
||||||
####################
|
|
||||||
|
|
||||||
# 3x3, centered on top left (P1) button
|
|
||||||
SEGA_2P_SIX_BUTTON = {'radius': core.BUTTON_30MM_RADIUS,
|
|
||||||
'positions': [(0, 0), (30.5, 11 + 9), (30.5 + 36, 11 + 9),
|
|
||||||
(0, -19 - 9 - 11), (30.5, -19), (30.5 + 36, -19)]}
|
|
||||||
|
|
||||||
####################
|
|
||||||
# Layouts are Locations with extra stuff to document what it is
|
|
||||||
####################
|
|
||||||
|
|
||||||
|
|
||||||
class Layout(bd.Locations):
|
|
||||||
"""A set of button positions that can be adjusted relative to some parameters."""
|
|
||||||
|
|
||||||
def __init__(self, layout, *args, distance_scale=1.00, **kwargs):
|
|
||||||
"""Lay out the points for the buttons, etc. but can be scaled."""
|
|
||||||
self.points = list(map(lambda x: (x[0] * distance_scale, x[1] * distance_scale), layout['positions']))
|
|
||||||
self.button_radius = layout['radius']
|
|
||||||
super().__init__(self.points, *args, **kwargs)
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
"""The base panel from which all other panels inherit.
|
|
||||||
|
|
||||||
SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
"""
|
|
||||||
import logging
|
|
||||||
|
|
||||||
import build123d as bd
|
|
||||||
|
|
||||||
from bss import core, layouts
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
|
||||||
|
|
||||||
|
|
||||||
class Panel(bd.BasePartObject):
|
|
||||||
"""A panel meant to be secured to the top or bottom of a base.
|
|
||||||
|
|
||||||
This is a hard box by default as an inset panel will be flush with the frame.
|
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
|
||||||
"""Create our part."""
|
|
||||||
with bd.BuildPart() as panel:
|
|
||||||
bd.Box(core.PANEL_X, core.PANEL_Y, core.PANEL_Z)
|
|
||||||
logger.info(panel.faces().sort_by(bd.Axis.Z))
|
|
||||||
with bd.Locations(panel.faces().sort_by(bd.Axis.Z)[-1]):
|
|
||||||
with bd.Locations((core.PANEL_TO_FRAME_POINT_X, core.PANEL_TO_FRAME_POINT_Y),
|
|
||||||
(-core.PANEL_TO_FRAME_POINT_X, core.PANEL_TO_FRAME_POINT_Y),
|
|
||||||
(-core.PANEL_TO_FRAME_POINT_X, -core.PANEL_TO_FRAME_POINT_Y),
|
|
||||||
(core.PANEL_TO_FRAME_POINT_X, -core.PANEL_TO_FRAME_POINT_Y)):
|
|
||||||
bd.CounterSinkHole(core.M4_BOLT_RADIUS, core.M4_BOLT_COUNTERSINK_RADIUS)
|
|
||||||
super().__init__(panel.part, *args, **kwargs)
|
|
||||||
|
|
||||||
|
|
||||||
with bd.BuildPart() as sega_2p_panel:
|
|
||||||
panel = Panel()
|
|
||||||
with layouts.Layout(layouts.SEGA_2P_SIX_BUTTON):
|
|
||||||
with bd.Locations((5, 45)):
|
|
||||||
with bd.Locations(panel.faces().sort_by(bd.Axis.Z)[0]):
|
|
||||||
core.CutoutButtonHole(layouts.SEGA_2P_SIX_BUTTON['radius'])
|
|
||||||
|
|
||||||
try:
|
|
||||||
show_object(sega_2p_panel)
|
|
||||||
except NameError:
|
|
||||||
pass
|
|
||||||
@@ -28,10 +28,9 @@ module panel_holes() {
|
|||||||
// for snap-ins, etc.
|
// for snap-ins, etc.
|
||||||
module button_24mm_hole() {
|
module button_24mm_hole() {
|
||||||
cylinder(r=small_button_radius, h=100, $fn=50, center=true);
|
cylinder(r=small_button_radius, h=100, $fn=50, center=true);
|
||||||
// carve out space for snap-ins, leave 3mm
|
// carve out space for snap-ins and screw-in nuts
|
||||||
// slagcoin has screw-in nut diameter at 29.5mm, so radius+3 to leave some space
|
|
||||||
// translation is to leave 3mm thickness in the plate without recentering anything
|
// translation is to leave 3mm thickness in the plate without recentering anything
|
||||||
translate([0, 0, -25]) cylinder(r=small_button_radius+3, h=49, $fn=50, center=true);
|
translate([0, 0, -25]) cylinder(r=small_button_radius+button_radius_connector_space, h=49, $fn=50, center=true);
|
||||||
// space for decorative button surround stuff
|
// space for decorative button surround stuff
|
||||||
translate([0, 0, 50]) cylinder(r=small_button_radius*decorative_radius_scale, h=20, $fn=50, center=true);
|
translate([0, 0, 50]) cylinder(r=small_button_radius*decorative_radius_scale, h=20, $fn=50, center=true);
|
||||||
translate([0, 0, 70]) cylinder(r=small_button_radius*jumbo_decorative_radius_scale, h=20, $fn=50, center=true);
|
translate([0, 0, 70]) cylinder(r=small_button_radius*jumbo_decorative_radius_scale, h=20, $fn=50, center=true);
|
||||||
@@ -41,10 +40,9 @@ module button_24mm_hole() {
|
|||||||
// for snap-ins, etc.
|
// for snap-ins, etc.
|
||||||
module button_30mm_hole() {
|
module button_30mm_hole() {
|
||||||
cylinder(r=big_button_radius, h=100, $fn=50, center=true);
|
cylinder(r=big_button_radius, h=100, $fn=50, center=true);
|
||||||
// carve out space for snap-ins, leave 3mm
|
// carve out space for snap-ins and screw-in nuts
|
||||||
// slagcoin has screw-in nut diameter at 36mm, so radius+6 to leave some space
|
|
||||||
// translation is to leave 3mm thickness in the plate without recentering anything
|
// translation is to leave 3mm thickness in the plate without recentering anything
|
||||||
translate([0, 0, -25]) cylinder(r=big_button_radius+6, h=49, $fn=50, center=true);
|
translate([0, 0, -25]) cylinder(r=big_button_radius+button_radius_connector_space, h=49, $fn=50, center=true);
|
||||||
// space for decorative button surround stuff
|
// space for decorative button surround stuff
|
||||||
translate([0, 0, 50]) cylinder(r=big_button_radius*decorative_radius_scale, h=20, $fn=50, center=true);
|
translate([0, 0, 50]) cylinder(r=big_button_radius*decorative_radius_scale, h=20, $fn=50, center=true);
|
||||||
translate([0, 0, 70]) cylinder(r=big_button_radius*jumbo_decorative_radius_scale, h=20, $fn=50, center=true);
|
translate([0, 0, 70]) cylinder(r=big_button_radius*jumbo_decorative_radius_scale, h=20, $fn=50, center=true);
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
include <parameters.scad>
|
||||||
|
include <components.scad>
|
||||||
|
|
||||||
|
module lever_and_sega_2p_6_button_panel_with_aux_with_mount() {
|
||||||
|
difference() {
|
||||||
|
union() {
|
||||||
|
panel();
|
||||||
|
translate([45, -58, -panel_z/2]) rotate([0, 0, 13]) pcb_mount();
|
||||||
|
}
|
||||||
|
translate([90, -25, 0]) sega_2p_6_button();
|
||||||
|
translate([-65, 5, 0]) union() {
|
||||||
|
levermountholes();
|
||||||
|
levermountcountersinks();
|
||||||
|
}
|
||||||
|
translate([17, 70, 0]) button_24mm_hole();
|
||||||
|
translate([-17, 70, 0]) button_24mm_hole();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
lever_and_sega_2p_6_button_panel_with_aux_with_mount();
|
||||||
@@ -8,13 +8,17 @@ include <components.scad>
|
|||||||
|
|
||||||
module lever_and_sega_2p_6_button_solo_overhang_panel() {
|
module lever_and_sega_2p_6_button_solo_overhang_panel() {
|
||||||
difference() {
|
difference() {
|
||||||
// base plate
|
|
||||||
union() {
|
union() {
|
||||||
panel_with_raised_overhang();
|
panel_with_raised_overhang();
|
||||||
translate([-60, 18, -((panel_z/2)+(lever_mount_z/2))]) levermountbase();
|
translate([45, -58, -panel_z/2]) rotate([0, 0, 13]) pcb_mount();
|
||||||
}
|
}
|
||||||
translate([95, -20, 0]) sega_2p_6_button();
|
translate([90, -25, 0]) sega_2p_6_button();
|
||||||
translate([-60, 18, 0]) levermountholes();
|
translate([-65, 5, 0]) union() {
|
||||||
|
levermountholes();
|
||||||
|
levermountcountersinks();
|
||||||
|
}
|
||||||
|
translate([17, 70, 0]) button_24mm_hole();
|
||||||
|
translate([-17, 70, 0]) button_24mm_hole();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -23,6 +23,11 @@ small_button_radius = 12 + hole_tolerance;
|
|||||||
// 30mm button
|
// 30mm button
|
||||||
big_button_radius = 15 + hole_tolerance;
|
big_button_radius = 15 + hole_tolerance;
|
||||||
|
|
||||||
|
// carve out space around buttons for screw-in nuts
|
||||||
|
// slagcoin has screw-in nut diameter at 36mm for 30mm buttons, 29.5 for 24mm buttons
|
||||||
|
// radius + value below should leave space for the nut and for fingers to grab the nut
|
||||||
|
button_radius_connector_space = 5;
|
||||||
|
|
||||||
// JLF mount dimensions
|
// JLF mount dimensions
|
||||||
lever_mount_x = 53;
|
lever_mount_x = 53;
|
||||||
lever_mount_y = 95;
|
lever_mount_y = 95;
|
||||||
|
|||||||
58
tox.ini
58
tox.ini
@@ -1,58 +0,0 @@
|
|||||||
# tox (https://tox.readthedocs.io/) is a tool for running tests
|
|
||||||
# in multiple virtualenvs. This configuration file will run the
|
|
||||||
# test suite on all supported python versions. To use it, "pip install tox"
|
|
||||||
# and then run "tox" from this directory.
|
|
||||||
|
|
||||||
[tox]
|
|
||||||
isolated_build = true
|
|
||||||
envlist = begin,py311,coverage,bandit,lint,reuse
|
|
||||||
|
|
||||||
[testenv]
|
|
||||||
allow_externals = pytest, coverage
|
|
||||||
|
|
||||||
deps =
|
|
||||||
-rrequirements/requirements-dev.txt
|
|
||||||
|
|
||||||
[testenv:begin]
|
|
||||||
# clean up potential previous coverage runs
|
|
||||||
skip_install = true
|
|
||||||
commands = coverage erase
|
|
||||||
|
|
||||||
[testenv:py311]
|
|
||||||
# run pytest with coverage
|
|
||||||
commands =
|
|
||||||
pytest --cov-append --cov={envsitepackagesdir}/bss/ --cov-branch
|
|
||||||
|
|
||||||
[testenv:coverage]
|
|
||||||
# report on coverage runs from above
|
|
||||||
skip_install = true
|
|
||||||
commands =
|
|
||||||
coverage report --fail-under=90 --show-missing
|
|
||||||
|
|
||||||
[testenv:bandit]
|
|
||||||
commands =
|
|
||||||
bandit ./src/bss/ -r
|
|
||||||
|
|
||||||
[testenv:lint]
|
|
||||||
# run style checks
|
|
||||||
commands =
|
|
||||||
flake8
|
|
||||||
mypy src/bss
|
|
||||||
- flake8 --disable-noqa --ignore= --select=E,W,F,C,D,A,G,B,I,T,M,DUO
|
|
||||||
|
|
||||||
[testenv:reuse]
|
|
||||||
# check license documentation
|
|
||||||
commands =
|
|
||||||
reuse lint
|
|
||||||
|
|
||||||
[coverage:paths]
|
|
||||||
source =
|
|
||||||
./
|
|
||||||
.tox/**/site-packages/
|
|
||||||
|
|
||||||
[coverage:run]
|
|
||||||
branch = True
|
|
||||||
|
|
||||||
omit =
|
|
||||||
**/_version.py
|
|
||||||
**/proto_snapshot/*
|
|
||||||
Reference in New Issue
Block a user