LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org

Showing revision 32


Vismach is a simulator to show 3D previews of a physical machine. Vismach.py is a python library to draw objects in the simulation window. It is located in /usr/share/pyshare (can't find it on git - was it removed?). The simultion itself needs a script, which is based on vismach.py. The scripts are located in /usr/bin. They are included in the .hal file of your machine with "loadusr". Following things are described in the script:

At the moment, these simulations are available:

Classes defined in vismach.py

Details about functions can be found from vismach.py itself and the already existing examples like 5axisgui or scaragui; a short summary follows:

Transform/place Objects:

Example for object "ram":

ram = Translate([ram], 0,0,150)

Create Geometry

table = Collection([

	crotary,    # relation to previous object
	Box(-150,-50, 81, 150, 50, 100),
	Box(-150,-40, 75, 150, 40, 81),

further classes

The use of the classes can be seen in the scaragui script located in /usr/bin. For first experiments one might just have a look at 5axisgui, where geometry ist generated with simple boxes.

Set up your own Simulation

  1. Use a CAD and export .obj or .stl files for each axis consisting the geometry. The files can be produced using [FreeCAD]: Model the solid for each axis, create a mesh an [export] it as .obj or .stl.
  2. Create a *gui file for your machine in /usr/bin. Have a look at the existing scripts like scaragui.
  3. Read the geometry files with your script using the class AsciiOBJ or AsciiSTL
  4. Connect the script to your machine



upload:hbm-vismach-ss1.png ' upload:hbm-vismach-ss2.png



vismach can be used to verify motions that don't show up in AXIS preview, such as custom kinematics or m-codes

this screenshot shows a "virtual rotary table" using the C-axis


Another example on what one can do with LinuxCNC (ex Enhanced Machine Controller) and Vismach help.


LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org
This page is read-only. Follow the BasicSteps to edit pages. | View other revisions | View current revision
Edited December 23, 2013 12:05 pm by Felix (diff)
Published under a Creative Commons License