summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README88
-rw-r--r--README.md139
-rw-r--r--doc/TODO.txt3
-rwxr-xr-xscripts/macosx-build-dependencies.sh5
-rw-r--r--src/glview.cc3
5 files changed, 148 insertions, 90 deletions
diff --git a/README b/README
deleted file mode 100644
index c00ecb0..0000000
--- a/README
+++ /dev/null
@@ -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;
contact: Jan Huwald // Impressum