3D PRINTER
A 3D printer incorporating two angular axes as an inverted SCARA arm and a vertical, linear Z-axis, is described. A platter on which a 3D object is built is rotated around lambda axis and revolved around a lambda axis. Embodiments are described that: (i) are free of belts, pulleys, cables and other soft drive mechanisms; (ii) are free of any lead-screw compensating devices; (iii) are free of rectangular box frame; (iv) translate X-Y-Z voxel coordinates into an angular coordinate system, optionally in real-time; (v) optimize non-sinusoidal drive waveforms for stepping motors; (vi) deal with special cases at or near the lambda axis; (vii) measure and compensate for non-orthogonal platter skew. Both device and method embodiments are claimed.
This application claims priority to U.S. Provisional Application No. 62/043,293 filed Aug. 28, 2014, docket number 45-001P.
TECHNICAL FIELDThe field of the invention is manufacturing tools using three or more axes to manufacture a three dimensional object. Embodiments include additive manufacturing machines. The invention incorporates an inverted SCARA arm driving a platform on which an object is manufactured.
BACKGROUND OF INVENTIONA 3D printer is a device, and method of using the device, to create a three-dimensional object from an electronic file that defines the shape of the object. 3D printers may be additive or subtractive in that they build up the object on a platform or build plate by adding material, or create the object by subtracting material. Most 3D printers are additive. Most milling machine and lathe operations are subtractive, for comparison. A typical additive 3D printer uses a head, also called an extruder or print head, which deposits small amounts of material at a time. The material may be liquefied in the head by heat, placed on the object being built, which then hardens as it cools. An alternative system uses a material that is hardened or polymerized by the use of light, UV light, other radiation or heat. Another alternative system uses a tank of liquid or gel, which is hardened point-by-point or piece-wise by the head.
A core unit of material in the object, or the definition of that unit in a source file, is often referred to as “voxel,” which corresponds roughly to volumetric pixel. A 3D source file may include vector or face definitions, rather than, or in supplement to, voxels. A 3D printer may convert some or all of a 3D source file to voxels, or it may convert the source data to a series of vectors, which are typically in a plane.
The prior art of 3D printers are based on an X-Y-Z, 3-axis, Cartesian, orthogonal grid. The X-Y axes usually define a horizontal plane, with the Z-axis being vertical. The object is formed in one X-Y plane at a time, with the Z-axis incrementing continually in steps. For each Z-axis increment, an X-Y plane is printed. The head in the X-Y plane may move in a repetitive scanning pattern, or in a series of vector motions, or both.
A characteristic of this design is that it requires three motors, effectively one for each of the X-Y-Z axes, not including a filament drive motor in the print head. The 3D printer is typically constructed in a box frame (a six-sided or five-sided frame enclosing the mechanisms and build surface), with each motion controlled by at least one screw drive or belt, and the build plate or its support moving on two orthogonal pairs of parallel slides. Alternatively, the head may move on the two orthogonal pairs of parallel slides with the platter fixed X-Y and moving vertically in the Z-axis. Thus, a typical design requires a box frame, 3 motors, 3 or more screws or belts, and four to six slides. Maintaining true orthogonality of the axes is a challenge. For some implementations, maintaining accuracy and linearity on one or more axes is also a challenge.
Prior art includes Fuse Deposit Modeling, or FDM™; FDM™ is a trademark of Stratasys, Inc. Prior art includes fused filament fabrication (FFF) and Plastic Jet Printing (PJP).
Prior art includes SCARA (Selective Compliance Robot Arm) arms, inverted SCARA arms, and robotic SCARA arms.
Embodiments of this invention include subtractive as well as additive manufacturing machines.
SUMMARY OF INVENTIONThis invention overcomes weaknesses in the prior art.
The invention uses “angular” coordinates in place of Cartesian X-Y coordinates for the horizontal plane.
The two axes in the horizontal plane are rotation of a turntable about its center axis (the lambda axis), and rotation of the turntable around a portion of a swing axis away from the center of the turntable (the theta axis). The Z-axis is a traditional vertical axis. In one embodiment a vertical screw within a vertical column drives the head or extruder block comprising a material nozzle on the Z-axis. In one embodiment a Z-axis drive screw or linear motor drives a horizontal beam; the beam comprises an extruder head; one or more nozzles in the extruder head generate the material used to additively build an object by the device.
One embodiment uses software to translate from the X-Y linear coordinate system in the source file to lambda and theta angular values. In this embodiment, the source data may be viewed as voxels (points, lines, edges, curves, faces, surfaces, textures or volumes defined at least in part by one or more voxels) consisting of X, Y, and Z scalar coordinates; while the corresponding voxel data for the embodiment consists of lambda, theta and Z scalar coordinates. The range of the source X, Y, and Z coordinates are generally within the physical range of the machine, (unless some post-coordinate scaling or clipping is performed); while the range of the lambda and theta coordinates are necessarily within the range of [0°, 360°), although a machine may have a smaller range of these two coordinates. In one embodiment, the range of lambda is [0°, 360°) and the range of theta is smaller than [0°, 360°). Note that secondary factors regarding voxels, such as tolerances, velocity and acceleration may be similarly converted from an X-Y-Z coordinate system to the lambda-theta-Z coordinate system. We refer to all such coordinate conversions simply as, “coordinate translation.” In some embodiments there is no translation from the source Z coordinate to the target Z coordinate. In other embodiments, such as using skew correction discussed below, there is also coordinate translation from the source Z scalar to the target Z scalar.
One embodiment measures the non-orthogonality between the plane of the turntable (or build surface) and the embodiment's effective mechanical Z-axis. This measurement identifies an error that may be referred to as skew. Note that since skew is the offset of the turntable or platter plane from perfect orthogonally from the Z-axis, at least two scalars are required to define skew. This embodiment uses this measurement to offset at least one of the three coordinates: lambda, theta, and Z. Skew correction may be computationally performed at the same time as other coordinate translation, or separately before (i.e., in the X-Y-Z space) or after (i.e., in the lambda-theta-Z space).
In another embodiment, the software treats the volumes, or voxels, near the lambda axis as a special case. In particular, the speed of the lambda axis may be limited in or near these locations.
In yet another embodiment, the software treats the volumes, or voxels, at the lambda axis as a special case. In particular, the turntable may be rotated 180°.
In yet another embodiment, the invention (all three axes) is free of combinations of belts, cables, pulleys, and chains, including being free of all of these.
In yet another embodiment, the turntable is connected directly to the lambda motor shaft such that the rotational angle of the turntable is the same as the rotational angle of the lambda motor shaft. This embodiment is free of gears or other parts that move relative to each other between the lambda motor shaft and the turntable.
In yet another embodiment, the lambda motor is connected directly to the theta motor shaft via a rigid arm such that the rotational angle of the rigid arm is the same as the rotational angle of the theta motor shaft. This embodiment is free of gears or other parts that move relative to each other between the theta motor shaft and the lambda motor.
In yet another embodiment, the invention comprises a single screw, or threaded rod, used to drive the Z-axis.
In yet another embodiment, the extruder head is fixed directly or indirectly to the Z-axis drive, free of both X and Y drive mechanisms.
In yet another embodiment the extruder head is free of all mechanical drives, between the base of the printer and the extruder head, other than the Z-axis and the filament drive.
In yet another embodiment, the invention is free of a box frame. That is, free of a rectangular (or equivalent, such as cylindrical) frame that provides required mechanical support for any of the three motion axes.
In yet another embodiment, the invention comprises only a single, structural, fixed vertical component: the Z-axis rail.
In yet another embodiment, the head is a component of a single horizontal beam supported at one end, with that end being attached to the Z-axis drive column.
In yet another embodiment, the invention is free of any components to compensate for non-perfect alignment of one or more lead screws or drive screws.
In yet another embodiment, the invention comprises an angular opening between the build surface and the extruder head, around the center of the turntable, platter or build surface that is at least 350°, or 330°, or 300°, or 270° or 220°, or 180°, or 150°, or 120°. This angular opening is free of all elements of the embodiment; in particular, free of frame elements. Such an opening permits free access to the part being built. In particular, monolithic parts that are larger, in both the X-Y planes, than the sides of a volume that encloses the embodiment, may be constructed in steps.
In yet another embodiment, coordinate translation is performed in real time, during operation of the 3D printer.
In yet another embodiment, the turntable, platter or build plate is removable without tools. In yet another embodiment, the turntable is, or supports, the platter. This specification and the claims refer to a “build surface.” This is the reference surface on which a part is built, and is typically the zero reference point for Z-axis measurements. Typically, the build surface is the upper surface, either real or virtual, of a platter or build plate. It is useful to think of this surface as a reference plane or in a reference plane, rather than a physical part such as a removable platter. Note that in various embodiments there may or may not be various layers between the moving turntable and the part being built. One such later may be a removable, but permanent platter. Another such layer may be a single-use “tablecloth” that may be provided by a user, placed underneath the part. It may be necessary to think of the build surface as a physical object, such as a platter driven by a turntable. Thus, a platter may be construed to mean a build surface, and vice versa. Other names for the platter are “build surface” or “build plate.” In yet another embodiment the turntable or platter may be removed, replaced, or added with an automated mechanism. In one embodiment the platter is secured to the turntable, either vertically, horizontally, or both, with magnets. Three magnets, six magnets, or magnet pairs may be used. In one embodiment the turntable or platter is effectively secured in the horizontal plane with alignment pins, posts, recesses mating detents, screws, clips, other fasteners, and the like, and is held in place by gravity.
A working surface for a part is often called a build plate in the prior art because it does not move. In our embodiments the build plate moves: being driven by a turntable. Thus the term “platter” is more descriptive, although a build plate and a platter serve the same function, and may be construed, when appropriate, as the same or equivalent part and function.
All embodiments shown and discussed are exemplary only and non-limiting. As those trained in the art know, there are many alternative materials, configurations, structures and method steps that implement the claimed invention.
Note that the term, “rotate” describes a physical or virtual object rotating around an axis internal to the object. For example, an audio record revolves around the spindle on a common (if dated) record player. Rotation is physically implemented with rotary motion.
Whereas, the word “revolve” describes a physical or virtual object moving in an arc, without necessary rotation, around an axis that may not be within the object. For example, consider a person standing and holding a mechanical compass; the compass needle rotates around a pin (to indicate magnetic north) while, if the person moves his feet on a vertical axis to face in a different direction, the compass body revolves around vertical axis of the person. In this example, we may consider the axis of the person to be the theta axis and the axis of the compass needle to be the lambda axis.
A novel embodiment implements motion damping for the theta movement, the lambda movement, or both, by taking advantage of the slot 41 shown in
In one embodiment the one or more damping elements described above are field replaceable without the use of tools. Such replacement may be for maintenance. In another embodiment, different damping elements may be field interchangeable to achieve intentionally different damping factors.
Suitable materials for the damping elements include composites, felt, hard rubber and plastics, such as polyethylene, Teflon, PTFE, Nylon or other fluoropolymers or semi-aromatic polyamides. Specifically claimed are a monolithic damping element for the lambda motion; a monolithic damping element for the theta motion; and a monolithic damping element for both the lambda motion and theta motion with a single element. Specifically claimed are damping configurations that use the slot 41 in the base plate 01 as part of the damping element or function. Specifically claimed are damping elements and configurations as described for use in a SCARA arm. Specifically claimed are damping elements and configurations as described for use in an inverted SCARA arm. Specifically claimed are damping elements and configurations as described for use in an inverted SCARA arm in a 3D printer.
In some embodiments, the printer dynamically measures one or more damping parameters, of the above described damping elements, and then incorporates the one or more measured damping parameters into the processing of source move commands into motor control outputs. One way to measure the damping is to drive the lambda or theta axes at maximum velocity, and then instantly freeze the drive waveforms to a fixed value, effectively dropping the drive velocity to zero. Shaft position encoders provide the actual rotational positions of the motor shafts, and thus the turntable rotational positions by virtue of the stiffness and lack of backlash between the motor shafts and the turntable. The time and rotational distance traveled may then be used to compute the effective damping, for that real time configuration of the machine and any part on the build surface. In addition, resonant frequencies for both lambda and theta axes may be measured, similarly, including more than one resonant frequency on either or both axes. Knowledge of resonant frequencies may be used, for example, to reduce velocity or acceleration when motion would be at or near a resonant frequency. Such measurement(s) and use(s) may be claimed.
Dynamic damping measurement not only compensates for machine variations, such as temperature, age and wear, but also may compensate for variations in the weight of a piece being built. Thus, not only may damping vary as a part is being constructed, but also the varying damping may be measured once or more during part construction and used to alter, improve or compensate for the processing of source move commands into motor control outputs, during part construction.
Damping is generally viewed as part of a spring-mass-damping system. Typically, it is ideal to have critical damping in systems, although slight under-damping, with respect to desired part tolerance, may permit higher speed operation. In some embodiments, it is difficult to separate spring-mass-damping parameters separately for the theta and lambda axes. Thus, a single damping element that effectively damps the entire system may be the simplest implementation of damping and be suitable for applications. The use of a single damping element to damp two axes, in particular the axes of these embodiments, may be novel and so claimed. However, in other embodiments spring-mass-damping parameters may be determined separately for the theta axis and the lambda axis, either dynamically for one machine, or statically in advance of operation, including determination by modeling, theoretical calculations, or both. For example, only the theta motor may be moved and the theta motor shaft position sensor used to observe and then compute spring-mass-damping for this axis. This movement and measurement is then repeated similarly by moving only the lambda motor. If the build surface is empty, both the mass and springiness of the machine elements are then accurately measured and thus known. Thus, wear or intentionally created other variations of damping parameters may be measured by these elements and these methods. Note that acceleration or velocities, during this measurement or calibration, may be higher, even considerably higher, than the maximum acceleration or velocities normally used during operation. Note that due to the stiffness of the machine design, an object on the build surface may contribute the bulk of springiness of operational spring-mass-damping. Therefore, dynamic measurements of spring-mass-damping are desirable. Since the mass of the components in the machine is known in advance, and the mass of the object being constructed is easy to compute at any progress point during the build, and damping parameters may also be known in advance of the start of a build, it is possible to measure and then compute the springiness of an object being built during building, and then use this measurement to alter motor outputs. In particular, lower acceleration or lower peak velocities may be used, or longer dwell time, in order to permit mechanical settling to improve final object build accuracy. Such dynamic measurements, computations and use may be novel and may be so claimed. Note also that springiness and damping parameters of the spring-mass-damping system may vary substantially between rotational movement and linear movement, and may vary substantially from one linear movement to an orthogonal liner movement. For example, consider the construction of a tall, thin wall. The object, when moved in the direction of the wall axis, is stiff; while movement perpendicular to the wall axis is springy. Therefore, in some embodiments, it is desirable to measure parameters of the spring-mass-damping systems separately for some or all of these axes and to combine both known (in advance of a build) and real-time measurements of spring-mass-damping parameters, in particular, springiness. Having shaft position sensors on the motor shafts provides the ability to dynamically measure damping during object construction on a 3D printer, and this is a novel benefit of this design embodiment. Damping embodiments, including combinations discussed in this paragraph, are explicitly claimed.
Some embodiments may include automatic level detection, or automatic level adjustment (or instructions to a user how to adjust), or both.
The fourth motor, the filament driver motor, drives the filament through the extruder head and the nozzle. The rate at which this motor drives the filament is the primary way that the device sets a material feed rate, for a given filament size and structure. Note that depositing voxels at a desired rate (e.g., voxels per second) also requires adjusting the effective speed of the platter at the nozzle head. The voxel deposition rate is proportional to the material feed rate divided by the instantaneous linear speed of the platter under the nozzle.
A circuit board, not shown in Figures, comprises the electronics to run the device. Firmware or software, or both, is located on this board. In some embodiments, a boot loader on the circuit board downloads software via a cable or wireless connection, not shown. The circuit board may be located under the base plate 01, or in another location. A portion of the electronics or software to run the device may not be located on the device. For example, a portion of the software to run the device may be located in a PC, server, mobile electronic device, or the like, and communicate with the device over a wired or wireless connection, not shown.
A power button assembly may comprise an LED power button ring, a cover, and a power button shown as 30 in
A claimed embodiment provides an improvement over sine wave drive. A modified pair of sine wave drive signals, such as shown in
In
The improved sine wave drive is described in detail, below.
Step-Less Stepping Motor DrivingLet the current across each coil of a two pole stepping motor be represented by curves such as two ideal sine waves, 90° out of phase. As the phase goes from 0 to 360°, four complete basic motor steps are produced. Driving the stepper directly through this phase-curve instead of traditional stepping we achieve a kind of super-granular resolution. Any intermediate value between the full-step values is valid and the resolution of the stepper circuit is only limited by the accuracy with which we are able to control the currents (using PWM, for example), and knowledge of the nonlinearities of the given motor.
A sinusoidal drive might work for an ideal motor, but such a motor does not actually exist. Based on experimentation we have arrived at a phase curve shape that will drive most stepping motors very smoothly at low speeds given two adjustable parameters: “sinusness” and “smoothness.” Generating this curve, such as that shown in
square_sin generates a continuous derivable square-like wave with the same phase properties as a sinus curve and with adjustable edge smoothness. A smoothness of 1.0 yields an actual sine wave, while the function approaches an actual square wave as smoothness asymptotically approaches 0.
In our implementation in this embodiment the square wave has the role of “skipping” through the “dead zone” where the current in each coil is so low that little to no torque is applied. The smoothness of the wave is used to avoid introducing noise or shaking into the system as the curve transitions from one polarity to the next.
Next, this square wave is mixed with a certain amount of traditional sine wave. The sinusness parameter specifies the proportions of the mix. As sinusness approaches 1.0 the square-like wave is replaced with a sine wave. The sinusness and smoothness values are determined experimentally for each motor in the assembly. Our current setup uses motors that run well with a sinusness of 0.41 and a square wave smoothness of 0.008. Revisiting our phase-diagram, our functions now look like
Driving the stepping motors this way yields the ability of near continuous step-resolution and noiseless operation at very low speeds. Low noise is novel benefit of stepper-motor equipment designed for use in home, lab or office environments.
Details of Coordinate TranslationTwister is the name of one particular embodiment of software that performs coordinate translation, also called coordinate.
Twister works by running a simulated “shadow” Cartesian robot in X-Y-Z-space, then mimicking the motions of the Cartesian robot in the angular coordinate space of the present printer mechanism. We call the space of the embodiment the theta, lambda, Z space where theta describes the rotation angle of the inner (arm) motor while lambda describes the revolution of the outer (turntable) motor. The Z-axis of the embodiment is a conventional linear axis actuated via a lead screw.
The Cartesian shadow-robot software is essentially a slightly modified version of the ubiquitous Grbl CNC firmware that can be found here: http://github.com/grbl/grbl.
Grbl works by executing a small kernel MOTION_TICKS_PER_SECOND times per second. A typical rate would be 30 kHz, however ranges from 1 kHz to 300 kHz may be used. Typically, such rates depend at least partially on machine size. Twister piggybacks on this kernel executing the function maintain_xy_motion for every time-step. It is the task of this function to keep the theta-lambda assembly in sync with the X-Y position of the shadow robot. Sample code is shown below:
The conversion to floating-point division by PLANNER_STEPS_PER_MM has the effect of converting the shadow coordinates in stepper-motor-step-counts to a floating-point millimeter position.
The transfer function code from X-Y-coordinates to theta-lambda is shown in the code below:
-
- d(x, y)=sqrt(x*x+y*y)
- theta(x, y)=2*arcsine(d(x, y)/(2*ARM_LENGTH))
- lambda(x, y)=theta(x, y)/2−arccosine(y/d(x,
- y))*signof(x);
Where the d function yields the magnitude of the [x, y]-vector (i.e. the distance from the center of the platter to the tip of the tool in the X-Y-plane), ARM_LENGTH is the length of the arm (in the same unit of scale as x and y). Signof yields 1.0 for all values>0, −1 for all values less than 0, and 0.0 for exactly the value 0.0.
Maintain_xy_motion takes this transfer function and for performance reasons, it multiplexes the calculations across time steps completing one small unit of calculation for every motion tick. Every sixth completion of the cycle in this function updates the theta-lambda motor states completely. This is shown in the code, below:
Where motion_tick is a counter that increments for every iteration of the motion-kernel at the rate of MOTION_TICKS_PER_SECOND. Input parameters x— and y— give the desired position of the tool relative to the center of the platter and must be in the same unit of length as the constant ARM_LENGTH. TWISTER_MAINTENANCE_STAGES equals 6, but may be set higher to reduce the processor load by effectively reducing the update frequency of the assembly. THETA_STEPS_PER_REVOLUTION and LAMBDA_STEPS_PER_REVOLUTION is the steps-per-revolution for the respective motor in the machine. In the current prototype these values are both 400 because we are using motors with 0.9 degrees per step. Set_motor_position is called with the identifier of a target stepper motor, the desired current angle of this motor and the number of steps per revolution of this motor. This function is very simple, effectively just calling mo_set_phase for the given motor with the angle converted to a phase angle for the magnetic field in the given stepper motor. This is shown in the code below:
The “phase” of a motor refers to the angle of the magnetic field in the motor coils. The angle parameter above refers to the angle of a complete rotation of the motor. The expression above converts angle to a phase value for that specific angle of the motor. As long as the motor is driven relatively slow and it never looses a full step, this will always keep the motor at the actual provided angle in this function call.
Platter Tilt, or Skew CompensationThe text below describes one embodiment of measuring and correcting for turntable or platter skew.
First the position of the theta motor is established by running it clockwise until the arm trips a micro-switch or other sensor placed at the outer extreme of the arm swing area. The theta motor is retracted slowly and its angular position is zeroed when the micro-switch disengages.
The lambda motor does not need to be homed, because the orientation of the platter is arbitrary when the print starts, so the position of the lambda motor is summarily zeroed at the start of the homing cycle.
A second micro-switch is placed under the Z-axis boom such that it may be lowered and raised to probe the height of the turntable, platter or build surface perimeter at different points. The platter shaft slot is shaped so that the platter may be moved slightly out of the way of the tool. There is also an opening in the base plate that allows the tool, or extruder head, to sink below the base plate when the platter is moved aside in this fashion. This allows the micro-switch on the boom to contact the perimeter of the platter.
The measurements are taken by lowering the boom until the switch closes, then lifting the boom slowly and noting the Z-position at which the micro-switch changes switch state. In a current implementation of the homing cycle this measurement is performed three times at equal intervals along the perimeter (every 120 degrees). Sensors other than a micro-switch, operating with equivalent functionality, may be used accomplish the same task with equivalent motions.
Calculating the Tilt-PlaneThe homing cycle yields measurements at three points along the perimeter of the platter or build surface. For increased accuracy in some embodiments additional measurements are taken until a consistent plane for the build surface is established. The measurements are used to calculate the tilt plane of the platter or build surface. The angles provided to the function are the angles along the platter or build surface with respect to the tool position when lambda==0.0. The Z values may be in mm units. The radius is the distance from center to the measurement point, which are incidentally equal for all measurements because of the way the measurements are taken in one embodiment. The function init_wobble_corrector takes these parameters and sets up the constants for a plane equation as shown in the code below:
Using the data in some embodiments set up a transformation matrix to correctly rotate and transform the Cartesian coordinates of the ghost gantry robot to compensate for the tilt of the platter or build surface, which would then compensate for all three axes, but observing that the tilt is usually less than half a degree, it has proved sufficient in this embodiment to just skew the build surface (here, the platter top) by adding a displacement value to any Z-coordinate as it is accepted from the Gcode. To find the value to add to any given Z-coordinate at any given [x, y]-point one uses the planar equation as shown in the code below:
This function yields the Z-location of the platter or build surface under the tool (e.g. nozzle or extruder head) at the specific [x, y]-coordinate. This displacement is added to the Z-coordinates as they are accepted into the motion plan of the simulated gantry robot from the G-code-parser, as shown in the code below:
Dealing with the Possibility of Near Infinite Rotation Speeds
Implementing a controller for an exotic, or angular, robot geometry by transforming the output of a motion control system created for another geometry in real time is, in the context of one embodiment, a cost effective way to achieve an effective implementation, in particular, with respect to performance and cost. The results in most cases are in practice equivalent of what a native motion control algorithm would yield; however, there is one trouble spot:
When the shadow gantry robot moves close to the pivot point of the platter, it does not know that its output may require the platter to rotate at speeds approaching infinity. One simple fix for this problem is to implement a kind of “time dilation” where a subsystem monitors the actual speeds of the real robot and adjusts the time base of the simulated Cartesian robot to ensure that the velocities stay within the realm of the physically possible—especially avoiding impractical speeds.
Such measurements, computations and adjustments to operation may be novel and may be claimed.
The speeds are measured by monitoring the rate of change in the theta and lambda angle variables in the motion controller at regular intervals (such as 1 kHz, or in the range of 200 Hz to 20 kHz), as shown in the code below:
The time_warp factor is maintained with a certain hysteresis as shown in the code below:
The specifics of how the gantry robot control software is modified to allow time_warp_ing may be immaterial to this document, suffice it to say that the time_warp modifies the step generation rate proportionally such that a time_warp of 0.5 runs the shadow bot at a speed half of real time.
A very special case must be handled separately. When a movement passes through the exact center of the platter, some of the mathematics in the control software breaks down. The required speed according to its equations would be exactly infinity. At this point the shadow bot must be stopped completely for a spell while the platter is rotated 180 degrees at maximum rate. This is handled as a special case as a special case in the software.
3D source file formats include STL (stereo lithography file format), Collada, ASE, S3D, U3D, DWF, DXF, 3DS, OBJ and STL. Source file format may pass through “slicer” software, which may be a component of an embodiment, or not, to produce a file containing a sequence of G-codes or Gcodes. The file containing the Gcodes may be a source file. ISO 6983 is often considered the most appropriate Standard for G-code
Definitions“3D machine tool”—includes three axes within a 4D, 5D or 5D machine tool.
“Build area”—refers to horizontal area on which an object may be printed, typically on the platter or build surface, for a 3D additive printer.
“Controlled axis”—refers to an axis that is controllable to desired position, either a linear position or a rotary position, including a controlled velocity between positions, and excludes a continuous rotational axis, even if the rotational speed is variable, for example, a drill press or lathe rotational axis. The controllable desired position resolution should be comparable to the accuracy of desired feature size on a work piece on the machine.
“Drive screw compensating device”—a device or sensor designed to compensate for imperfections in a drive screw or its implementation, such as a drive screw backlash compensator. Such a compensating device may be mechanical, electronic, or software.
“Mechanical components of the first motion”—All mechanical components that move with the first motion.
“Open on an arc”—refers to the device being free of obstructions, such as frame element or other element, in the horizontal plane, from the lambda axis, in a circular arc, from any height of an object being printed or that might be printed.
“Part is affixed”—there are many ways a part may be affixed to a build area or tool range area. It may be affixed only by gravity. For an additive 3D printer, the stickiness of the additive material is sufficient to affix that portion, and the rest of the part as it is built. Note that in many cases an intermediate surface may be used, as one does not generally want to print directly on a portion of the machine, such as a turntable or platform. If platforms are cheap or disposable, or it is easy to remove a part completely from a platform, then the platform may be the intermediate surface. For subtractive manufacturing, clamps, vices, or other devices may be used.
“Part surface”—refers to surface on which a part is placed or secured, for either additive or subtractive machining.
“Planer tool area”—this is the area on the build surface, platter, turntable, build plate or other intermediate surface with defines the area in which the tool head is able to position, relative to the surface. This may be smaller than a platform, as it is helpful that the platform extends past every portion of a possible part.
“Platter, build plate or build surface”—generally refers to an actual element or virtual surface connected to the turntable (including attached by gravity) or an intermediate element between the turntable and the part. The part may be built directly on the build surface, or on another intermediate element. The build surface may comprise a “planer tool area.” Note that in some contexts or embodiments usage of these terms may be slightly different. For example, if discussing dimensions of part, the base of the part will be in contact with a build surface or an intermediate layer between the build surface and the actual part. Similarly, calibration and skew measurement or correction may be for a specific element or surface. Generally, the platter is touching and driven by the turntable. Thus, the order of elements from top to bottom may be: part, intermediate layer on the build surface, build surface, platter, turntable, turntable drive elements (e.g., the drive motor shaft). Not all such listed elements are used in all embodiments. The one or more intermediate layers may be part of the embodiment or provided by a user; the one or more intermediate layers may be permanent, semi-permanent, or single-use. Equivalent structures or elements operating equivalently may be used and are included in the scope of the claims, even if such equivalent structures or element provide additional benefit.
“Real Time”—actions or measurements that occur during execution. For mechanical systems, and control and measurements thereof, real-time is during relevant motion of the mechanical system, as compared to computations in advance or during a simulation, or predetermined parameters.
“Tool range area”—the area on or over a part surface that is available for machining, either additive or subtractive. For part surfaces that are not horizontal, or on which the machining volume is below the part surface, the meaning of the term, “over” is adjusted accordingly.
“Turntable”—generally refers to the mechanical component that is connected to and driven by the lambda and theta motion systems. On top of the turntable may be removably placed a platter or build plate. The top surface of the build plate may be the build surface or comprise a planer tool area on which a part is fabricated; and it is this surface that is generally the reference surface for part and machine measurements. The build plate and build surface may alternatively be integral with the turntable.
Ideal, Ideally, Optimum and Preferred—Use of the words, “ideal,” “ideally,” “optimum,” “should” and “preferred,” when used in the context of describing this invention, refer specifically a best mode for one or more embodiments for one or more applications of this invention. Such best modes are non-limiting, and may not be the best mode for all embodiments, applications, or implementation technologies, as one trained in the art will appreciate.
May, Could, Option, Mode, Alternative and Feature—Use of the words, “may,” “could,” “option,” “optional,” “mode,” “alternative,” and “feature,” when used in the context of describing this invention, refer specifically to various embodiments of this invention. Examples, explanations and figures using the words “shown” or “code” refer to non-limiting embodiments. All figures are non-limiting embodiments. All descriptions herein are non-limiting, as one trained in the art will appreciate.
Claims of this invention explicitly include all combinations and sub-combinations of all features, elements, examples, claims, embodiments, tables, values, ranges, and drawings in the specification, drawings, claims and abstract. Claims of this invention explicitly include devices and systems to implement any combination of all methods described in the claims, specification and drawings. Claims of this invention explicitly include methods using devices and systems described in the claims, specification and drawings, in any combination.
Embodiments include a method of manufacturing a part using a 3D printer as described in the claims. Embodiments include a method of scanning a part using a 3D printer as described in the claims. Embodiments include a method of driving stepper motors in a machine tool as described in the claims. Embodiments include a method of damping lambda and theta rotational axes as described in the claims.
Claims
1. A 3D machine tool for the purpose of manufacturing a part comprising: a minimum of two controllable motions: a first motion and a second motion; a build surface to which the part is directly or indirectly affixed; and a machine tool head; wherein the improvement comprises:
- the first motion is a rotary motion around a first axis;
- the second motion is a rotary motion around a second axis, wherein the second axis is parallel to and offset from the first axis; wherein the first axis revolves around the second axis;
- the build surface is driven in the direction of the first motion and the build surface is normal to the first axis; and
- the build surface is rotated about the axis of the second motion;
- such that, responsive to the first and second motions, the machine tool head is positionable relative to the build surface over a continuous planar tool range area of the build surface, at a machine tool head distance from the build surface wherein the machine tool head distance is measured normal to the build surface.
2. The 3D machine tool of claim 1 wherein:
- the first motion is driven by a first rotary motor, the “lambda motor;”
- the second motion is driven by a second rotary motor, the “theta motor;”
- the mechanical components of the 3D machine tool between the first and second motors and the build surface, inclusively, are free of any mechanical conversion of motor-generated rotary motion to linear motion.
3. The 3D machine tool of claim 2 wherein:
- the mechanical portions of the 3D machine tool that implement the first and second motions, including the first and second rotary motors and all mechanical interconnections between the first and second motors and the build surface, and the build surface, are free of belts, pulleys, chains, wires, gears, screw drives and hydraulics.
4. The 3D machine tool of claim 2 wherein:
- the second motion moves the mechanical components of the first motion, including the first motor.
5. The 3D machine tool of claim 2 wherein:
- the first motor connects to the build surface such that the angular position of the build surface is equal to the angular position of the first motor shaft.
6. The 3D machine tool of claim 2 wherein:
- the second motor connects to the first motor such that the angle of revolution of the first axis around the second axis is equal to the angular position of the second motor shaft.
7. The 3D machine tool of claim 6 further comprising:
- a first rotational angle sensor and a second rotational angle sensor wherein the two angle sensors measure, in real time, the rotational angle of the first and second motors, respectively;
- wherein a machine tool controller is configured to provide motor control outputs to the first and second motors such that the planar tool range area may be moved relative to the tool head; and
- the motor control outputs for at least the first and second motors are responsive to the real time angular measurements of the two rotational angle sensors.
8. The 3D machine tool of claim 7 wherein:
- the first and second rotational angle sensors are mounted on the motor shafts of the first and second motors, respectively.
9. The 3D machine tool of claim 2 additionally comprising:
- a third motion driven by a third motor wherein the third motion is linear.
10. The 3D machine tool of claim 9 wherein:
- the third motion drives the machine tool head in a linear motion on a Z-axis that is normal to the planar tool range area.
11. The 3D machine tool of claim 10 additionally comprising:
- a base plate;
- a boom driven by the linear motion of the Z-axis, wherein the boom comprises the machine tool head;
- a personal electronic device mount on a mechanical element of the invention, and wherein the mount is adapted to accept a personal electronic device that comprises a wireless data interface and a camera; and
- a machine tool controller with a wireless data interface configured to communicate with the personal electronic device;
- wherein the controller is adapted to drive at least the first and second motions and configured to provide commands over its wireless interface to the personal electronic device, timed such that consecutive camera images, taken responsively to the commands and used as input to a 3D model reconstruction program, will generate from the 3D model reconstruction program a complete, accurate 3D model of a part on the planar tool range area; and
- wherein the 3D machine tool is free of any additional controllable motions;
12. The 3D machine tool of claim 11 wherein:
- the controller comprises the 3D model reconstruction program.
13. The 3D machine tool of claim 10 wherein:
- the third motor connects to the machine tool head at least in part via a threaded rod functioning as a drive screw; and
- the 3D machine tool is free of any drive screw-compensating device.
14. The 3D machine tool of claim 10 wherein:
- the 3D machine tool is an additive-material manufacturing tool, and the machine tool head provides the additive material used to manufacture the part.
15. The 3D machine tool of claim 10 additionally comprising:
- a build surface skew measuring sensor configured such that an offset of the plane of the planar tool range area from the plane normal to the Z-axis is measurable by the sensor; and
- wherein the build surface skew measuring sensor is functional for this purpose during the manufacturing of the part.
16. The 3D machine tool of claim 15 additionally comprising:
- a machine tool controller configured to accept input source data comprising a set of voxels described in an X-Y-Z Cartesian coordinate system;
- wherein the controller is configured to provide coordinate translation from the X-Y-Z Cartesian coordinate system to the coordinate system of the 3D machine tool comprising: two rotational axes corresponding to the first and second motions, and the third, linear motion;
- wherein the controller is configured to provide motor control outputs to the first, second and third motors such that the tool head may be moved, relative to the build surface, within a continuous cylindrical manufacturing volume with one planar end of the cylindrical manufacturing volume coincident with the planar tool range area;
- wherein the controller's motor control outputs are responsive to the measurements provided by the build surface skew measuring sensor; and
- wherein the measurement of the build surface skew measuring sensor may change during the manufacture of a part.
17. The 3D machine tool of claim 9 wherein:
- the 3D machine tool is free of a rectangular box frame, encompassing the planar tool range area and extending upwards along the direction of the third motion, wherein the rectangular box frame provides required mechanical support for any 3D machine tool components that provide any of the three motions.
18. The 3D machine tool of claim 1 additionally comprising:
- a base plate comprising a curved base plate slot through which the rotary motion of the lambda motor connects directly or indirectly to the build surface; and
- a first friction element configured to provide damping of the first motion; and
- wherein the first friction element is located, at least in part, inside the base plate slot.
19. The 3D machine tool of claim 1 additionally comprising:
- a base plate comprising a curved base plate slot through which the first rotary motion connects directly or indirectly to the build surface; and
- a second element configured to provide damping of the second motion;
- wherein the second element is located, at least in part, inside the base plate slot.
20. The 3D machine tool of claim 1 additionally comprising:
- a base plate comprising a curved base plate slot through which the rotary motion of the lambda motor connects directly or indirectly to the build surface;
- a first friction element configured to provide damping of the first motion; and
- a first second element configured to provide damping of the second motion;
- wherein the first and second friction elements share at least one common element and wherein the common element is located within the slot.
21. The 3D machine tool of claim 1 additionally comprising:
- a base plate comprising a curved base plate slot through which the rotary motion of the lambda motor connects directly or indirectly to the build surface;
- a first friction element configured to provide damping of the first motion; and
- a first second element configured to provide damping of the second motion;
- wherein either or both of the first and second friction elements are monolithic and wherein the first and second friction elements may be the same element.
22. The 3D machine tool of claim 1 additionally comprising:
- a mount, on a mechanical element of the 3D machine tool, for a personal electronic device wherein the personal electronic devices comprises a wireless data interface and a camera; and
- a machine tool controller with a wireless data interface configured to communicate with the personal electronic device;
- wherein the machine tool controller is configured to provide commands over its wireless interface to the personal electronic device, timed so that consecutive camera images taken by the personal electronic device responsive to the commands, when presented as a time-series of images, show the part being manufactured with a fixed part orientation relative to the personal electronic device;
- and wherein the 3D machine tool, when providing such commands via the machine tool controller, is adapted to manufacture a part in at least 90% of the time it would take the 3D machine tool to manufacture the part if it were not providing such commands.
23. The 3D machine tool of claim 1 additionally comprising:
- a machine tool controller configured to drive the first and second motors with motor drive signals;
- wherein the first and second motors are stepper motors; and
- wherein the drive signals for the first and second motors are each dual phase waveforms with each phase comprising additively both a square wave component and a sine wave component.
24. A method of manufacturing a part using the 3D machine tool of claim 1.
25. A method of manufacturing a part using the 3D machine tool of claim 8.
Type: Application
Filed: Aug 27, 2015
Publication Date: Aug 17, 2017
Inventors: Simen Svale Skogsrud (Oslo), Thomas Boe-Wiegaard (Easton), Even Westvang (Oslo), Alexandre Chappel (Oslo), Hans Fosker (Oslo)
Application Number: 15/504,585