This code implements a sequence generation algorithm for robotic spatial printing, which is addressed in the following paper:
Yijiang Huang, Juyong Zhang, Xin Hu, Guoxian Song, Zhongyuan Liu, Lei Yu, Ligang Liu. FrameFab: Robotic Fabrication of Frame Shapes. ACM Trans. Graph. 35, 6, 2016.
This code has been tested in Windows (built with VS2013) and Ubuntu 14.04-LTS.
🚧 Fix In Progress
- Clone Framefab from github
$ git clone https://github.com/yijiangh/FrameFab
- Install git, cmake, Eigen, BLAS, LAPACK using your package manager. In Ubuntu, that's:
$ sudo apt-get install libeigen3-dev libblas-dev liblapack-dev
-
Mosek
- download and install Mosek from https://mosek.com/. You'll need to request a license. It's free for academic use.
- set the
PATH
environment variable to full path by addingexport PATH=<MSKHOME>/mosek/8/tools/platform/linux64x86/bin:$PATH
, e.g. in~/.bashrc
in Ubuntu machine (MSKHOME
denote the directory in which MOSEK is unpacked and installed. Version number8
is the the current mosek version). Refer to official Installation doc.
-
Qt5, OpenGL and GLUT
- Follow the official Qt instruction and Glut installation guide on Ubuntu:
$ wget http://download.qt.io/official_releases/qt/5.7/5.7.0/qt-opensource-linux-x64-5.7.0.run
$ chmod +x qt-opensource-linux-x64-5.7.0.run
$ ./qt-opensource-linux-x64-5.7.0.run
- Install OpenGL and Glut librarues
$ sudo apt-get install mesa-common-dev
$ sudo apt-get install libglu1-mesa-dev
$ sudo apt-get install freeglut3-dev
- Follow the official Qt instruction and Glut installation guide on Ubuntu:
-
update and change CXX compiler
- add following line to the end of
~\.bashrc
:
CC=/usr/bin/gcc export CC CXX=/usr/bin/g++ export CXX
- update and specify new g++ compilation
$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test $ sudo apt-get update $ sudo apt-get install gcc-5 g++-5 $ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 1
- add following line to the end of
-
Follow the usual CMake procedure:
$ cd Framefab $ mkdir build $ cd build $ cmake .. (/path/to/FrameFab) $ make -j4
- Read a .obj file into FrameFab.
- Click Choose ceiling, choose the edges that you want them to be ceiling. Click again or press ESC to finish.
- Click Choose base, choose the vertexes that you want them to be base. Click again or press ESC to finish.
- Click Project to project base vertexes to a flat plane which is below the lowest position of all the vertexes. The vertexes projected on the plane are fixed vertexes and the edges connecting base vertexes and fixed vertexes are pillars.
- Click FiberPrint to run the whole process.
- When it is done, you can turn on Heat under the Edge mode to see the result of layer-decomposition.
-
The CXX compiler identification is unknown, no C++ compiler is found in cmake process. Make sure you have c++ compiler on your system. Run
sudo apt-get install build-essential
, refer to this post. -
Everything seems properly configured to fix previous cmake bugs, but why I still get the same error in Cmake? After an unsuccessful build, we must remove CMakeCache.txt (or simply clear the build directory); otherwise cmake will report the same error even if the needed package has been installed. (refer)
-
c++: error: unrecognized command line option ‘-std=c++14’ This happens when your current compiler (C++ in this case, or g++ version under 5.2) doesn't support -std=c++14. Look at this post for solution. You can specify another compiler using technique addressed in this post. Please remember don't set compiler in CMakeLists file but set your environment variables
CC
andCXX
. In the test machine (Ubuntu), we add following lines in ~.bashrcCC=/usr/bin/gcc export CC CXX=/usr/bin/g++ export CXX
By doing this, we change default CXX compiler from
c++
tog++
, but default g++ compiler (version 4.8) doe not support -std=c++14. Thus, we have to install g++-5.4 (>5.2) and tell the system to refer to this new version whenever we rung++
. Refer to this post, we can upgrade and set new g++ by:$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test $ sudo apt-get update $ sudo apt-get install gcc-5 g++-5 $ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 1
You can check the update result by
$ g++ --version
. -
-std=c++14
is needed for GTEngine's successful compilation.