diff options
-rw-r--r-- | README | 88 | ||||
-rw-r--r-- | README.md | 139 | ||||
-rw-r--r-- | doc/TODO.txt | 3 | ||||
-rwxr-xr-x | scripts/macosx-build-dependencies.sh | 5 | ||||
-rw-r--r-- | src/glview.cc | 3 |
5 files changed, 148 insertions, 90 deletions
@@ -1,88 +0,0 @@ - -WHAT IS IT? -=========== - -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 -application Blender) it does not focus on the artistic aspects of 3D modelling -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. - -OpenSCAD is not an interactive modeller. 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 -designer) full control over the modelling process and enables you to easily -change any step in the modelling process or make designs that are defined by -configurable parameters. - -OpenSCAD provides two main modelling 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 -addition to 2D paths for extrusion it is also possible to read design parametes -from DXF files. Besides DXF files OpenSCAD can read and create 3D models in the -STL and OFF file formats. - - -PREREQUISITES -============= - -To build OpenSCAD, you need some libraries and tools. The version -numbers in brackets specify the versions which have been used for -development. Other versions may or may not work as well.. - -* Qt4 (4.4 - 4.7): - http://www.qt.nokia.com/ - -* CGAL (3.6 - 3.9): - http://www.cgal.org/ - -* GMP (5.0.x): - http://www.gmplib.org/ - -* MPFR (3.x): - http://www.mpfr.org/ - -* boost (1.35 - 1.47) - http://www.boost.org/ - -* cmake (2.6 - 2.8, required by CGAL and the test framework) - http://www.cmake.org/ - -* OpenCSG (1.3.2): - http://www.opencsg.org/ - -* GLEW (1.6 ->) - http://glew.sourceforge.net/ - -* Eigen2 (2.0.13->) - http://eigen.tuxfamily.org/ - -* 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/ - - -BUILDING OPENSCAD -================ - -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. - - -DOCUMENTATION -============= - -Have a look at the OpenSCAD Homepage (http://openscad.org/) for documentation. - diff --git a/README.md b/README.md new file mode 100644 index 0000000..13fba4d --- /dev/null +++ b/README.md @@ -0,0 +1,139 @@ +# What is OpenSCAD? + +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 +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. + +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 +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. + +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 +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 + +You can download the latest binaries of OpenSCAD at +<http://www.openscad.org>. Install binaries as you would any other +software. + +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); + +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); + } + +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); + } + +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). + +# Documentation + +Have a look at the OpenSCAD Homepage (http://openscad.org/) for documentation. + +## Building OpenSCAD + +To build OpenSCAD from source, follow the instructions for the +platform applicable to you below. + +### Prerequisites + +To build OpenSCAD, you need some libraries and tools. The version +numbers in brackets specify the versions which have been used for +development. Other versions may or may not work as well. + +If you're using Ubuntu, you can install these libraries from +aptitude. If you're using Mac, there is a build script that compiles +the libraries from source. Follow the instructions for the platform +you're compiling on below. + +* [Qt4 (4.4 - 4.7)](http://www.qt.nokia.com/) +* [CGAL (3.6 - 3.9)](http://www.cgal.org/) + * [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/) +* [OpenCSG (1.3.2)](http://www.opencsg.org/) +* [GLEW (1.6 ->)](http://glew.sourceforge.net/) +* [Eigen2 (2.0.13->)](http://eigen.tuxfamily.org/) +* [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/) + +### Building for Mac OS X + +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. + + source setenv_mjau.sh + +Then run the script to compile all the prerequisite libraries above: + + ./scripts/macosx-build-dependencies.sh + +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. + +After that, follow the Compilation instructions below. + +### Building for Ubuntu + +If you have done this and want to contribute, fork the repo and +contribute docs on how to build for windows! + +### Building for Windows + +If you have done this and want to contribute, fork the repo and +contribute docs on how to build for windows! + +### 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. + +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). + diff --git a/doc/TODO.txt b/doc/TODO.txt index 8fc9be8..7f8378d 100644 --- a/doc/TODO.txt +++ b/doc/TODO.txt @@ -73,6 +73,7 @@ o 3D View - 2D objects are rendered at z = -0.1 - why? - Rewrite to use VBOs or smth. - avoid inline calculations - Rewrite to a higher-level library (e.g. OSG)? + - Make navigation (e.g. zoom) available through menu entries (requested by disabled user) o Editor wishlist - More infrastructure for external editor (allow communication from the outside) - Preferences GUI for the features below @@ -93,12 +94,14 @@ o Editor wishlist - Auto-indent on enter and on tab o Error reporting/debugging - Provide better error messages when polygon ordering causes CGAL errors: + o Detect common error: self-intersecting polyhedron() o Supply syntax highlighting of the exact polygon indices which are reported to be wrong o Provide some interaction for debug walk-through? - Provide visual highlighting of geometry corresponding to code -> could aid debugging a lot - Optionally output console log to a file + - Common error: detect and report (and ignore?) duplicate line segments in DXF o Computation - Multi-threaded computation (mostly important for CGAL) - Progress: Call progresswidget more often to improve feedback diff --git a/scripts/macosx-build-dependencies.sh b/scripts/macosx-build-dependencies.sh index 48f907e..405f7aa 100755 --- a/scripts/macosx-build-dependencies.sh +++ b/scripts/macosx-build-dependencies.sh @@ -133,7 +133,8 @@ build_mpfr() fi tar xjf mpfr-$version.tar.bz2 cd mpfr-$version - + curl -O http://www.mpfr.org/mpfr-current/allpatches + patch -N -Z -p1 < allpatches if $OPTION_32BIT; then mkdir build-i386 cd build-i386 @@ -296,7 +297,7 @@ done echo "Using basedir:" $BASEDIR mkdir -p $SRCDIR $DEPLOYDIR build_eigen 2.0.17 -build_gmp 5.0.4 +build_gmp 5.0.5 build_mpfr 3.1.0 build_boost 1.47.0 # NB! For CGAL, also update the actual download URL in the function diff --git a/src/glview.cc b/src/glview.cc index 12657b8..aa2e746 100644 --- a/src/glview.cc +++ b/src/glview.cc @@ -603,6 +603,9 @@ void GLView::mouseMoveEvent(QMouseEvent *event) if (event->buttons() & Qt::MiddleButton) { my = mz; mz = 0; + // actually lock the x-position + // (turns out to be easier to use than xy panning) + mx = 0; } Matrix3d aax, aay, aaz, tm3; |