Software
Replimat is developed using the git version control system, on the github hosting service, in the replimat git repository as well as in the repositories of the upstream software projects themselves.
Follow these instructions to install and use the software portions of the Replimat project and to equip yourself to make modifications to them. Much of this software is intended to work with the replimat controller.
Setting up prerequisites
Linux
Fedora
Open a terminal and type the following:
sudo dnf install git openscad rust cargo rabbitvcs-nautilus rabbitvcs-gedit rabbitvcs-cli kicad arduino keepassxc yosys gimp inkscape vim
Some distributions, such as 64 bit Fedora, put 64 bit libraries in the /usr/lib64 directory, whereas nautilus-python (the program that lets us extend nautilus) assumes all libraries are in the /usr/lib directory. This is a nautilus-python bug. The current workaround is to create a symlink:
ln -s /usr/lib64/libpython2.6.so /usr/lib/libpython2.6.so
cd /usr/share/openscad/libraries/ sudo git clone https://github.com/nophead/NopSCADlib.git
NopSCADlib requires some setup:
sudo sh -c 'echo "export OPENSCADPATH=$HOME/openscad/libraries" >>/etc/profile'
Pop! OS
sudo apt install meld git openscad rustc cargo rabbitvcs-nautilus rabbitvcs-gedit rabbitvcs-cli kicad arduino gnome-tweak-tool obs-studio obs-plugins fritzing subversion keepassxc yosys openscad freecad gimp inkscape cura exfat-fuse python3-markdown codespell peek autokey filelight yagv vim
cd /usr/share/openscad/libraries/ sudo git clone https://github.com/nophead/NopSCADlib.git
To get the latest IceStudio, download the appimage from icestudio.io
NopSCADlib requires some setup:
sudo sh -c 'echo "export OPENSCADPATH=$HOME/openscad/libraries" >>/etc/profile'
Add the following to /etc/profile as well
if [ -d "$HOME/openscad/libraries/NopSCADlib/scripts/" ] ; then PATH="$PATH:$HOME/openscad/libraries/NopSCADlib/scripts/" fi
Ubuntu
sudo apt install meld git openscad rustc cargo rabbitvcs-nautilus rabbitvcs-gedit rabbitvcs-cli kicad arduino gnome-tweak-tool obs-studio obs-plugins fritzing subversion keepassxc yosys openscad freecad gimp inkscape cura exfat-fuse python3-markdown codespell ubuntu-gnome-default-settings vanilla-gnome-default-settings vanilla-gnome-desktop ubuntu-gnome-desktop peek autokey filelight yagv vim
cd /usr/share/openscad/libraries/ sudo git clone https://github.com/nophead/NopSCADlib.git
NopSCADlib requires some setup:
sudo sh -c 'echo "export OPENSCADPATH=$HOME/openscad/libraries" >>/etc/profile'
Ubuntu 20.10 requires a symlink in /usr/bin for the ImageMagick command line utility
ln -s /usr/bin/convert /usr/bin/magick
Meikian Live
Meikian Live (formely named CWLive) is a GNU/Linux live distribution initially focused on Clone Wars community, but intended to all the RepRap users and developers. Based on Debian GNU/Linux, it includes most of the Software, Firmware, useful links and other related stuff you can use on a day to day as a reprapper.
Redox
Redox OS is an operating system written in the Rust programming language, and a high-value build target for Replimat. Expanding the instructions here, for installing the software necessary for building and modifying Replimat to work on Redox OS would be an excellent way to contribute to the project.
Windows
- Install chocolatey
- openscad, openspaces, github desktop, freecad, inkscape
Cloning the git repository
- If you haven't already, install git.
- Join Github
- Using the command line client:
- git --config global user.name "User Name"
- git --config global user.email "user@email.com"
- git clone https://github.com/timschmidt/replimat.git
- Using the Github Desktop:
Rust
- https://arewegameyet.rs/
- https://crates.io/crates/scad
- https://github.com/I3ck/rust-3d
- https://docs.rs/rust-3d/0.27.0/rust_3d/
- https://github.com/carlmartus/rscsg
- https://docs.rs/implicit3d/0.13.1/implicit3d/
- https://crates.io/crates/implicit3d
- http://implicitcad.org/editor
- https://github.com/hmeyer/truescad
CAD
play.replimat.org
- play.gridbeam.xyz CAD
- play.gridbeam.com github
- apt install npm
- npm install gatsby-cli
- git clone https://github.com/timschmidt/play.gridbeam.xyz
- npm install --force
- gatsby build
- To do
- bind delete key to delete action
- correct initial frame lengths
- address loss-of-focus on menu close
- correct axes
- begin populating part catalog
LeoCAD / LDraw
The term "LDraw" can be used to refer to the original DOS based LDraw program, the LDraw parts library, the LDraw file format or the LDraw System Of Tools.
- Bitbeam parts for LDraw
- LDraw Parts Library: Parts library
- LDview: Viewer
- MLCad: Editor
- LeoCAD: Editor
- LDCad: Editor
- LPub3D: Publishing tool
- LICreator: Publishing tool
- LSynth: Add-On
- LDGlite: Viewer
- POV-Ray: Renderer
- LGEO Parts Library: POV-Ray parts library
- MPDCenter: Utility
- LDFind: Utility
- LSulpt: Converter
- Offline Parts Catalog: Catalog
OpenSCAD
Replimat parts are modeled with important features oriented toward the X axis origin, and centered on the grid location closest to the origin or with a mounting hole centered at that location.
A set of CAD functions are available as part of the MCAD library for the free and open source OpenSCAD constructive solid geometry software, mostly within gridbeam.scad. It contains functions for solid and hollow beams of configurable size and orientation, flat surfaces with and without notched corners, and easy hole-aligned translation:
// zFrame(segments) - create a vertical frame 'segments' long // xFrame(segments) - create a horizontal frame along the X axis // yFrame(segments) - create a horizontal frame along the Y axis // topPlate(width, depth, corners) - create a plate width and depth in 'segments', corners == 1 notches corners // bottomPlate(width, depth, corners) - like topPlate, but aligns plate to underside of frames // backPlate(width, height, corners) - like topPlate but aligns plate to back side of frames // frontPlate(width, height, corners) - like topPlate, but aligns plate to front side of frames // translateFrame([x, y, z]) - translate frames or plates in X, Y, or Z axes in units 'segments'
There's also an M-Bitbeam OpenSCAD library and another Gridbeam and Bitbeam OpenSCAD and OpenJSCAD library.
Additional information can be found in the OpenSCAD User Manual
- Inkscape to OpenSCAD converter
- OpenSCAD Runner - A Python library to interface with and run the OpenSCAD interpreter
- OpenSCAD Documentation Generator - This package generates wiki-ready GitHub flavored markdown documentation pages from in-line source code comments. This is similar to Doxygen or JavaDoc, but designed for use with OpenSCAD code. Example images can be generated automatically from short example scripts
- Parts and projects in the Replimat github repository are implemented using NopSCADlib
FreeCAD
A FreeCAD Replimat library is currently under development. BOLTS and FreeCAD Library serve as useful starting points.
OpenJSCAD
- OpenJSCAD 2.0
- https://openjscad.org/
- OpenJSCAD utils
- OpenJSCAD Wiki Integration Test
- OpenJSCAD gallery
- Gridbeam and Bitbeam OpenSCAD and OpenJSCAD library
- OpenSCAD to OpenJSCAD translator
Inkscape
CGAL
DXF2Papercraft
Thingiverse
https://www.thingiverse.com/tag:openstructures
Solvespace
Finite element analysis
Voxel
CADQuery
VR
OpenSpace3D
-
OpenSpaces VR PlugIT assessment
Unity
Garry's mod
Bills of material
3D Scanning
CAM
- F-Engrave
- https://github.com/grotius-cnc/QT_CadCam_rev0
- http://jscut.org/
- https://github.com/cncjs/cncjs
- https://camotics.org/
- https://wiki.freecadweb.org/Path_Workbench
- KrabzCAM
Images
Nesting
Electronics
Firmware
Database
Category:Parts, Category:Techniques, and Category:Projects are organized and labeled consistently with Flourish ORM naming conventions to facilitate easy ingestion and complex manipulation of project data. Using PHP allows for easy interoperation with Wordpress and MediaWiki.
References
- Automatic 5-axis NC toolpath generation
- How to Run a Live Coding Stream on Twitch using OBS
- Knuthcam
- PID without a PhD
- The Rust Programming Language
- Patterns Of Software
- Useful software packages
- https://wiki.shapeoko.com/index.php/CAM
- RepRap Options
- How to convert from cartesian to polar coordinates
- An Exact Algorithm for Finding Minimum Oriented Bounding Boxes
- OpenVDB
Computer vision
To Be Sorted
- Snowtrack version control for graphic designers and 3D artists
- https://librecad.org/
- https://github.com/Qucs
- http://www.geda-project.org/
- http://www.clifford.at/yosys/
- https://symbiflow.github.io/
- https://www.chisel-lang.org/
- https://theopenroadproject.org/
- https://github.com/verilog-to-routing/vtr-verilog-to-routing
- https://www.coursera.org/learn/vlsi-cad-logic
- https://www.coursera.org/learn/vlsi-cad-layout
- http://www.kicad-pcb.org/
- https://en.wikipedia.org/wiki/TopoR
- https://cnc.js.org/
- https://wiki.shapeoko.com/index.php/CAM
- https://www.allpcb.com/
- https://jlcpcb.com/
- https://www.pcbway.com/
- https://efabless.com/
- https://github.com/jbuckmccready/CavalierContours
- https://github.com/fdarling/inkscape-laser-cutter-extension