Skip to content

Commit bbfad8e

Browse files
committed
docs, wip
1 parent 72d0dd6 commit bbfad8e

File tree

6 files changed

+79
-32
lines changed

6 files changed

+79
-32
lines changed

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ GNU Affero GENERAL PUBLIC LICENSE
22
Version 3, 29 June 2007
33

44
Solid Node, licensed under LGPL
5-
Copyright (C) 2023 Luis Henrique Cassis Fagundes
5+
Copyright (C) 2023-2025 Luis Henrique Cassis Fagundes
66

77
This program is free software: you can redistribute it and/or modify
88
it under the terms of the GNU Affero General Public License as published by

README.rst

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,27 +20,25 @@ Solid Node
2020

2121

2222

23-
A framework to develop and manage solid projects in Python
23+
A framework to create parametrical mechanical projects with Free Software
2424

2525

2626
* Free software: GNU Affero General Public License v3
2727
* Documentation: https://solid-node.readthedocs.io.
2828

29+
Introduction
30+
============
2931

30-
Features
31-
--------
32+
There are several technologies that allow the creation of parametric solids
33+
using Free Software, namely OpenScad, CadQuery and Solid Python. When it comes
34+
to mechanical projects, each technology has a different set of libraries available,
35+
and each has its pros and cons. Whichever your choice, they all face limitations
36+
soon. Solid Node proposes an architecture to organize mechanical projects so that
37+
different technologies can be combined, relation between components can be tested,
38+
and individual pieces can be rendered for optimization.
3239

33-
* Develop using SolidPython and CadQuery combined
34-
* Filesystem monitoring triggering transpilation to openscad and stl building
35-
* Background optimization
36-
* Spatial calculations trimesh
37-
38-
This is pre-alpha, just releasing something.
39-
40-
Credits
41-
-------
42-
43-
This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.
40+
Quickstart
41+
==========
4442

45-
.. _Cookiecutter: https://github.com/audreyr/cookiecutter
46-
.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage
43+
Start by cloning `solid-seed <https://github.com/LibreSolid/solid-seed>_`.
44+
Follow instructions from the README file there.

docs/background.rst

Lines changed: 0 additions & 12 deletions
This file was deleted.

docs/index.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ Welcome to SolidNode's documentation!
55
:maxdepth: 2
66
:caption: Contents:
77

8-
background
9-
installation
10-
tutorial
8+
why-solid-node
9+
quickstart
10+
overview
1111
contributing
1212
history
1313

docs/quickstart.rst

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
2+
.. _quickstart:
3+
4+
==========
5+
Quickstart
6+
==========
7+
8+
Start by cloning solid-seed, which has a starting code for any project.
9+
10+
```bash
11+
$ git clone https://github.com/LibreSolid/solid-seed.git myproject
12+
```
13+
14+
Then create a virtual environment for your project
15+
16+
```bash
17+
$ cd myproject
18+
$ virtualenv --python=python3 myproject-env
19+
$ source myproject-env/bin/activate
20+
```
21+
22+
And install solid-node in your environment
23+
24+
```bash
25+
$ pip install solid-node
26+
```
27+
28+
Make sure you have openscad installed
29+
30+
```bash
31+
$ sudo apt-get install openscad
32+
```
33+
34+
Start the solid process. By default, the web viewer is used.
35+
36+
```bash
37+
$ solid root develop
38+
```
39+
40+
Open the link http://localhost:8000 in your browser. If you prefer
41+
using Openscad as a viewer, use the --openscad parameter
42+
43+
```bash
44+
$ solid root develop --openscad
45+
```
46+
47+
Open `root/__init__.py` file in your prefered code editor and
48+
see your model updated in the viewer.
49+
50+
Check the _build directory for the STLs of your project.
51+

docs/why-solid-node.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
Why Solid Node
2+
==============
3+
4+
When designing a mechanical project with Free Software, there are some technologies available that allow parametric design, using source code to create solid structures. There's OpenScad, which uses it's own scripting language, and on top of it there is Solid Python, which allows modelling for OpenScad using Python language. Python also has CadQuery, which is more powerful and flexible for complex designs, but has a steeper learning curve, and is specially difficult to install. When picking which technology to use, one should consider the libraries available, and a complex project might need to assemble pieces that come from different libraries. Openscad has a native animation system that allows developing projects with moving parts, but it soon gets very slow as project grows.
5+
6+
Solid Node come as a framework to join all these underlying technologies together. It's inspired by a web development culture, which uses frameworks like Django, React and Angular, that monitors filesystem for changes and shows the result automatically. Solid Node proposes an architecture that allows building of pieces as they change, being able to handle a lot of moving parts.
7+
8+
Solid Node also provides testing capabilities. Mechanical projects can generate a lot of garbage from experimentation, and this can be substantially reduced by being able to logically test connections between components before producing anything.
9+
10+
Solid Node is Free Software, released under the AGPLv3. This mean that any project using it is bound to the AGPLv3. As digital manufacturing technologies, like 3D printing, become popular, distribution of source code can greatly increase goods lifetime and reduce waste generation. Free Software modeling and source code distribution should become an industry standard, and this project is one more step towards that.

0 commit comments

Comments
 (0)