Transformed Axes
Transformed axes take one Machine Axis as input and transform the coordinate into a new one. We are discussing these transformations as forward transformations here, in the sense as they are happening mechanically, from the raw actuator (motor) coordinate to the target coordinate for the machine component that is moved.
But of course, OpenPnP will internally also derive the reverse transformations, from the desired target coordinate for the machine component to be moved, back to the raw coordinate of the actuator (motor). However, you need not concern yourself with those (sometimes difficult) reverse transformations.
The ReferenceMappedAxis can take two coordinate points A and B on the input axis and map those to two corresponding output coordinate points. Any input coordinate is then proportionally interpolated/extrapolated using these two map points.
Using the ReferenceMappedAxis, you can scale, offset, negate or reverse any axis (and more).
Create an axis in the Machine Setup tab.
Type and Name are the same as in the ReferenceControllerAxis.
The Type will restrict the input axes to the same Type i.e. only the coordinates are mapped, the geometric axis itself (dimension in space) remains the same.
Input Axis denotes the axis where the raw input coordinate is taken from.
Map Point A and Map Point B define the two mapped coordinate points. To explain let's make a few examples:
The zero point (origin) of the axis remains the same, but the unit 1 is mapped to unit -1, so proportionally any coordinate is mapped to its negative value.
This mapping can be used for a Rack&Pinion shared Z axis a.k.a. "Peter's Head". If one Nozzle goes up (+Z), the other goes down (-Z).
Image: Pick and place head dual nozzle by Betz Technik.
If for some reason you have an axis that goes the wrong way, you can reverse it by mapping the axis coordinate maximum to the coordinate minimum and vice versa. The coordinates stay positive.
The following example adds 100mm to all the raw axis coordinates:
As a fantasy example, assume you have salvaged a controller from a printer that works in Twips. We therefore need to map 1440 twips to one inch but in the Driver's length unit Millimeters (25.4mm):
The ReferenceCamCounterClockwiseAxis is used to transform shared Z axis that work in a seesaw or rocker configuration.
Type and Name are the same as in the ReferenceControllerAxis.
The Type will restrict the input axes to the same Type i.e. only the coordinates are mapped, the geometric axis itself (dimension in space) remains the same.
Input Axis denotes the axis where the raw input coordinate is taken from.
Cam Radius is the important parameter of this transformation. It defines the leverage with which the angular motion of the motor translates into the linear motion of the two nozzles that are typically attached to precision linear rails. One nozzle is pressed down, while the other is typically pulled up using a spring.
Cam Arms Angle defines the angle between the two arms. Normally, a 180° angle is used for straight-across arms. If the angle is 0°, it describes a one-armed design that always only pushes one side i.e nozzle at a time. Other "V-shaped" arms angles could be used to describe designs, that eliminate dead-time, that the 0° one-armed design has.
Cam Wheel Radius and Cam Wheel Gap (
The ReferenceCamCounterClockwiseAxis is really easy. It just takes its sibling ReferenceCamCounterClockwiseAxis as input, the actual transformation is already parametrized there.
The created axis can now be used like a physical axis when it comes to Mapping Axes.