openscad/README.md

197 lines
7.5 KiB
Markdown
Raw Normal View History

2012-05-08 02:00:31 +04:00
# What is OpenSCAD?
2012-07-01 00:42:51 +04:00
[![Flattr this git repo](http://api.flattr.com/button/flattr-badge-large.png)](https://flattr.com/submit/auto?user_id=openscad&url=http://openscad.org&title=OpenSCAD&language=&tags=github&category=software)
OpenSCAD is a software for creating solid 3D CAD objects. It is free software
and available for Linux/UNIX, MS Windows and Mac OS X.
Unlike most free software for creating 3D models (such as the famous
2012-05-07 22:27:45 +04:00
application Blender) it does not focus on the artistic aspects of 3D modeling
but instead on the CAD aspects. Thus it might be the application you are
looking for when you are planning to create 3D models of machine parts but
pretty sure is not what you are looking for when you are more interested in
creating computer-animated movies.
2012-05-07 22:27:45 +04:00
OpenSCAD is not an interactive modeler. Instead it is something like a
3D-compiler that reads in a script file that describes the object and renders
the 3D model from this script file (see examples below). This gives you (the
2012-05-07 22:27:45 +04:00
designer) full control over the modeling process and enables you to easily
change any step in the modeling process or make designs that are defined by
configurable parameters.
2012-05-07 22:27:45 +04:00
OpenSCAD provides two main modeling techniques: First there is constructive
solid geometry (aka CSG) and second there is extrusion of 2D outlines. As data
exchange format format for this 2D outlines Autocad DXF files are used. In
2012-05-07 22:27:45 +04:00
addition to 2D paths for extrusion it is also possible to read design parameters
from DXF files. Besides DXF files OpenSCAD can read and create 3D models in the
STL and OFF file formats.
# Getting started
2012-05-08 05:21:01 +04:00
You can download the latest binaries of OpenSCAD at
<http://www.openscad.org>. Install binaries as you would any other
software.
2012-05-08 05:21:01 +04:00
When you open OpenSCAD, you'll see three frames within the window. The
left frame is where you'll write code to model 3D objects. The right
frame is where you'll see the 3D rendering of your model.
Let's make a tree! Type the following code into the left frame:
cylinder(h = 30, r = 8);
2012-05-08 05:21:01 +04:00
Then render the 3D model by hitting F5. Now you can see a cylinder for
the trunk in our tree. Now let's add the bushy/leafy part of the tree
represented by a sphere. To do so, we will union a cylinder and a
sphere.
union() {
cylinder(h = 30, r = 8);
sphere(20);
}
2012-05-08 05:21:01 +04:00
But, it's not quite right! The bushy/leafy are around the base of the
tree. We need to move the sphere up the z-axis.
union() {
cylinder(h = 30, r = 8);
translate([0, 0, 40]) sphere(20);
}
2012-05-08 05:21:01 +04:00
And that's it! You made your first 3D model! There are other primitive
shapes that you can combine with other set operations (union,
intersection, difference) and transformations (rotate, scale,
translate) to make complex models! Check out all the other language
features in the [OpenSCAD
Manual](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual).
2012-05-08 02:00:31 +04:00
# Documentation
2012-05-08 02:00:31 +04:00
Have a look at the OpenSCAD Homepage (http://openscad.org/) for documentation.
## Building OpenSCAD
2012-05-08 05:21:01 +04:00
To build OpenSCAD from source, follow the instructions for the
platform applicable to you below.
2012-05-08 02:00:31 +04:00
### Prerequisites
To build OpenSCAD, you need some libraries and tools. The version
numbers in brackets specify the versions which have been used for
2012-05-08 02:00:31 +04:00
development. Other versions may or may not work as well.
If you're using a newer version of Ubuntu, you can install these
2012-12-21 02:12:49 +04:00
libraries from aptitude. If you're using Mac, or an older Linux/BSD, there
are build scripts that download and compile the libraries from source.
Follow the instructions for the platform you're compiling on below.
2012-05-08 01:15:43 +04:00
* [Qt4 (4.4 - 4.7)](http://www.qt.nokia.com/)
* [CGAL (3.6 - 4.0.2)](http://www.cgal.org/)
2012-05-08 02:00:31 +04:00
* [GMP (5.0.x)](http://www.gmplib.org/)
* [cmake (2.6 - 2.8, required by CGAL and the test framework)](http://www.cmake.org/)
* [MPFR (3.x)](http://www.mpfr.org/)
* [boost (1.35 - 1.47)](http://www.boost.org/)
2012-05-08 01:15:43 +04:00
* [OpenCSG (1.3.2)](http://www.opencsg.org/)
* [GLEW (1.6 ->)](http://glew.sourceforge.net/)
* [Eigen (2.0.13->3.1.1)](http://eigen.tuxfamily.org/)
2012-05-08 01:15:43 +04:00
* [GCC C++ Compiler (4.2 ->)](http://gcc.gnu.org/)
* [Bison (2.4)](http://www.gnu.org/software/bison/)
* [Flex (2.5.35)](http://flex.sourceforge.net/)
### Getting the source code
Install git (http://git-scm.com/) onto your system. Then run a clone:
git clone git://github.com/openscad/openscad.git
This will download the latest sources into a directory named 'openscad'.
To pull the MCAD library (http://reprap.org/wiki/MCAD), do the following:
cd openscad
git submodule init
git submodule update
2012-05-08 05:21:01 +04:00
### Building for Mac OS X
2012-05-08 02:00:31 +04:00
2012-05-08 05:21:01 +04:00
First, make sure that you have XCode installed to get GCC. Then after
you've cloned this git repository, run the script that sets up the
environment variables.
2012-05-08 02:00:31 +04:00
2012-05-08 05:21:01 +04:00
source setenv_mjau.sh
2012-05-08 02:00:31 +04:00
Then run the script to compile all the prerequisite libraries above:
./scripts/macosx-build-dependencies.sh
2012-05-08 05:21:01 +04:00
We currently don't use [MacPorts](http://www.macports.org) or
[brew](http://mxcl.github.com/homebrew/) to install the prerequisite
libraries because CGAL doesn't exist on brew and opencsg doesn't exist
on ports. And more importantly, there are some patches to GMP in the
compilation process.
2012-05-08 02:00:31 +04:00
After that, follow the Compilation instructions below.
### Building for Linux/BSD
2012-12-20 21:03:04 +04:00
First, make sure that you have git installed (git-core in debian). Once you've
cloned this git repository, run the script that attempts to download the
dependency packages for your system:
./scripts/uni-get-dependencies.sh
2012-12-20 21:03:04 +04:00
If this fails then you have to download and install the dependency packages
on your own using your system's package manager. After installing
dependencies, check their versions. You can run this script to help you:
./scripts/check-dependencies.sh
2012-05-08 02:00:31 +04:00
2012-12-20 21:03:04 +04:00
If all dependencies are present and of a high enough version, skip ahead
to the Compilation instructions. If some are missing or old, then you
2012-12-21 02:12:49 +04:00
can download and build dependencies into $HOME/openscad_deps as follows:
2012-12-20 21:03:04 +04:00
source ./scripts/setenv-unibuild.sh
./scripts/uni-build-dependencies.sh
2012-12-21 03:35:16 +04:00
This may take an hour or two. Note it will not build huge deps like gcc
or qt, only the main ones (boost, CGAL, opencsg, etc). After completion,
again check dependencies
2012-12-20 21:03:04 +04:00
source ./scripts/setenv-unibuild.sh
./scripts/check-dependencies.sh
2012-12-20 21:03:04 +04:00
Then follow the Compilation instructions below.
2012-05-08 02:00:31 +04:00
### Building for Windows
OpenSCAD for Windows is usually cross-compiled from Linux. If you wish to
attempt an MSVC build on Windows, please see this site:
http://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Building_on_Windows
2012-05-08 02:00:31 +04:00
To cross-build, first make sure that you have development tools
installed to get GCC. Then after you've cloned this git repository, run
the script that sets up the environment variables.
source ./scripts/setenv-mingw-xbuild.sh
Then run the script to download & compile all the dependency libraries:
./scripts/mingw-x-build-dependencies.sh
Then, build OpenSCAD and package it to an installer:
2012-08-02 08:14:34 +04:00
./scripts/release-common.sh mingw32
2012-05-08 02:00:31 +04:00
### Compilation
First, run 'qmake' from Qt4 to generate a Makefile. On some systems you need to
run 'qmake4', 'qmake-qt4' or something alike to run the qt4 version of the tool.
Then run make. Finally you might run 'make install' as root or simply copy the
'openscad' binary (OpenSCAD.app on Mac OS X) to the bin directory of your choice.
2012-05-08 05:21:01 +04:00
If you had problems compiling from source, raise a new issue in the
[issue tracker on the github page](https://github.com/openscad/openscad/issues).
This site and it's subpages can also be helpful:
http://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Building_OpenSCAD_from_Sources