The Team
About the Slicer Project
This project is an effort to create an easy to use graphical user interface for the MACFAM 3d slicer system. The GUI and the 3d Slicer source code is developed using Python.
The MACFAM 3d slicer is robotic printing arm used to perform curvilinear print jobs to create parts and part reinforcements for the aerospace and prosthetics industries.
The slicer application allows a user to load component files and combine them into parts. The parts can then be manipulated through various means to translate and rotate them in space, as well as changing various settings like the nozzle orientation for the robot arm. When these manipulations are done, the parts can be visualized and then output to gcode, krl and csv files, which contain instructions for the print.
Getting Started
In order to run the GUI.py the user is expected to have python 3.6 installed (see https://realpython.com/installing-python/ for some good examples on various operating systems). Then the user can set up a project specific environment using pipenv which will install all of the dependencies for the user.
*NOTE: some of the dependencies (VTK), require a 64-bit OS environment.
Installation
All the user needs to install is pipenv:
pip install pipenv
Running the Application
To run the current working application, download or clone the repository, then:
First setup the project environment:
pipenv install
Next enter the environment and run the application as a script
pipenv shell
python GUI.py
Alternatively, after the environment is set up the user can run without entering the environment shell by running:
pipenv run python GUI.py
Slicer Demo
Click the video for a demonstration of the slicer application
Application Screenshots
File Select Tab
Geometry Settings Tab
Part Visualization
Print Settings Tab with Part Selected
Export File Tab
Export File Tab with Part Filament Information Displayed
Testing
-
The Behavior and Unit Tests are contained inside the slicer\test folder
-
The sections below explain how to run each of the kinds of tests, Unit and Behavior
Unit Testing
Running Unit Tests:
-
Be in pipenv shell
-
Navigate to slicer directory where GUI file is located
-
enter the following command in the terminal:
python -m unittest -v test/unitTests.py
Behavior Testing
Requirements:
-
Latest distribution of Java
-
Latest working version of GUI.py
-
Latest version of Jython (optional but recommended)
To run initial behavior testing:
-
Open the GUI application
-
Open a terminal and navigate to where the behavior test .jar files and sikulixapi.jar are stored
-
enter the following command in the terminal and minimize terminal window:
java -jar <File Name>.jar
- Verify that the GUI application runs successfully