3D Printing – Daniel Shapiro, Mark Gosselin, Matthew Sarnoff, Glowforge Inc

Abstract for “Controlled deceleration in a numerically controlled computer of moving components”

“A method of altering a rate of executing a motion plan by a computer-numerically-controlled machine can include: receiving, at a control unit of a computer-numerically-controlled machine and from a general purpose computer that is housed separately from the computer-numerically-controlled machine, a motion plan defining operations for causing movement of a moveable component of the computer-numerically-controlled machine; and altering, in response to a command received at the computer-numerically-controlled machine, a first execution rate of the operations to a second execution rate of the operations to change a rate of movement of the movable component. There are also articles and systems of manufacture, which include computer program products.

Background for “Controlled deceleration in a numerically controlled computer of moving components”

“Computer-numerically-controlled (CNC) machines operate by moving a tool, such as a laser, drill bit, or the like, over a material to be machined. In response to control system commands, the tool is moved using motors, belts or other actuators. The speed of a tool may be affected by machine inertia and the specific commands, as well as the size of the motion step or similar factors.

“In one aspect, a control unit of a computer-numerically-controlled (CNC) machine receives, from a general purpose computer that is housed separately from a computer-numerically-controlled machine, a motion plan defining operations for causing movement of a moveable component of the computer-numerically-controlled machine. In response to a command received at the computer-numerically-controlled machine, a first execution rate of the operations is altered to a second execution rate of the operations to change a rate of movement of the movable component.”

“Implementations can be made of the current subject matter, including, but not limited to, methods consistent the descriptions herein, as well articles that contain a tangible embodied machine-readable media operable to cause one (e.g. computers, etc.). It may result in operations that implement one or more of these features. Computer systems can also be described, which may include one or several processors and one (or more) memories that are coupled to one or both of the processors. A memory can contain a computer-readable storage medium that may store, encode, store, and the like one or several programs that allow one or many processors to perform any of the operations described. One or more processors can implement computer-implemented methods that are consistent with the various implementations of current subject matter. Multiple computing systems can be connected to exchange data, commands and other instructions via one or more connections. This includes a connection over a network (e.g. The Internet, a wireless wide-area network, an area network, and a large network can all be connected to each other via direct connections.

“Implementations can offer one or more benefits. Controlled deceleration, for example, can allow smooth halting of CNC machine operations and resume them. This allows materials to be worked with a minimal amount of unwanted effects, which can sometimes occur when a CNC machine operation is stopped. There are many ways to control the deceleration and re-acceleration of CNC components. However, the present subject matter may include a “clock stretching” technique. This technique allows for deceleration, and subsequent re-acceleration, to take place in a controlled fashion so that material being worked on can be processed even if there is a stoppage.

“The accompanying drawings and description below detail one or more variants of the subject matter. The claims and the descriptions will reveal other features and benefits of the subject matter. Although certain aspects of the currently disclosed subject matter have been described only for illustration purposes with respect to methods and systems for controlled deceleration within a CNC machine, it is important to understand that these features are not meant to be restrictive. These claims are meant to limit the scope of the subject matter protected.

“DESCRIPTION of Drawings”

“The accompanying drawings are included in and form a part this specification and show certain aspects of subject matter disclosed herein. They, along with the description, help to explain some of those principles associated with the disclosed implementations. The drawings are shown.

“FIG. “FIG.

“FIG. “FIG. 1;”

“FIG. “FIG.

“FIG. “FIG.

“FIG. 3C is a diagram that illustrates the machine file corresponding with the cut path and source files, consistent in some implementations;

“FIG. “FIG.

“FIG. “FIG.

“FIG. “FIG.

“FIG. “FIG.

“FIG. “FIG.

“FIG. “FIG.7 is a diagram that illustrates a resumption in operations in a CNC-machine, consistent with some implementations;”

“FIG. “FIG.

“FIG. “FIG.

“FIG. “FIG.

“Similar reference numbers” denote, when practical, similar features, structures, or elements.

“The accompanying drawings and description below detail one or more variants of the subject matter. The claims and the drawings will also reveal other features and benefits of the subject matter. Some features of the currently disclosed subject material may be described only for illustration purposes, in relation to machine-vision used for automated manufacturing processes (e.g. While certain features of the currently disclosed subject matter may be described for illustrative purposes in relation to machine-vision for aiding automated manufacturing processes (e.g., a CNC process), it should not be understood that these features are intended to be restrictive.

“Cutting” is the term used herein. The act of altering the appearance, properties, or state of a material can be referred to as cutting. For example, cutting can be done by making a through-cut or engraving, bleaching, curing and burning. When specifically mentioned herein, engraving refers to a process where a CNC machine alters the appearance of the material but not completely penetrating it. It can be used to remove some material from the surface or alter the color of the material, such as with a laser cutter. “Using focused electromagnetic radiation to deliver electromagnetic energy, as described below.”

“Laser” is used herein. “Laser” can be defined as any electromagnetic radiation source or focused or coherent energy source, which (in the context being a cutting instrument) uses photons in order to modify or alter a substrate. Lasers can be used as diagnostics or cutting tools at any wavelength. This includes UV lasers and visible lasers.

“Also as used herein, “cameras” This includes visible light cameras, black-and-white cameras, IR sensitive cameras, IR cameras or UV sensitive cameras as well as individual brightness sensors such photodiodes and sensitive photon detectors like a photomultiplier tube and avalanche photodiodes. It also includes detectors of far infrared radiation such as microwaves, Xrays or gamma rays as well as optically filtered detectors and spectrometers.

“Also as used herein is a reference to’real-time? actions may cause some delay or latency. This could be either because the actions were programmed in or due to limitations in machine response or data transmission. ?Real-time? Actions, as they are used herein, do not represent an instantaneous or rapid response. They also do not indicate any numeric or functional limitations to the response times or machine actions that result from them.

“Also as used herein without being specifically stated, the term’material? The material on the CNC machine’s bed. If the CNC machine is a lathe, laser cutter, or milling machine, then the material is what is put in the CNC machine to cut, such as raw materials, stock, and the like. If the CNC machine has a 3-D printer, the material can be either the current layer or any previously existing layers or substrate of the object being printed. Another example is that a CNC machine can print on paper.

“Introduction”

A computer numerically controlled (CNC), machine is one that can be used to add or subtract material from a computer. One or more motors, or other actuators, can move one or several heads to perform the addition or removal of material. Heads can be equipped with nozzles to spray or release polymers, as is the case for CNC machines that add material. Some implementations include an ink source, such as a pen or cartridge. Material can be added layer by layer to create a 3D object. The CNC machine can scan the material’s surface with a laser to alter or harden it. You can also deposit new material. To build up layers, the process can be repeated. The heads can include tools for CNC machines that remove materials, such as drag knives, plasma cutters and water jets, bits to a milling machine, lasers for laser cutter/engraver etc.

“FIG. 1. An elevational view showing a CNC machine 100, with a camera that captures an image of the entire material bed 150 and another camera that captures a portion 150. This is consistent with some implementations. FIG. FIG. 2. This is a top-view of the CNC machine 100 as it is being implemented. 1.”

FIG. 1. refers to one implementation for a laser cutter. Although some features are discussed in the context of laser cutters, they are not intended to be restrictive. Many of the above features can be used with other types CNC machines. The CNC machine 100 could be used as a lathe or engraver, 3D printer, milling machine (drill press), saw, etc.

While laser cutters/engravers share many similarities with CNC machines, there are many differences between them and they present particular design challenges. Laser cutter/engraver must adhere to regulations that limit the emission of electromagnetic radiation from the unit while it is operating. This makes it difficult for light to safely enter or exit the unit, such as to view or record images of its contents. Laser cutter/engraver beam must be directed from the emitter to the area that is to be machined. This could require a number of optical elements, such as mirrors and lenses. A laser cutter/engraver’s beam can easily be misdirected. Any component that is oriented along the beam path could cause the beam to escape its intended path. This could have undesirable consequences. Uncontrolled laser beams can cause material destruction. Laser cutter/engraver can require high voltage power supplies and/or radio frequency power supply to operate the laser. Fluid flow is required in laser cutters/engravers that use liquid cooling to cool the laser. Because of the possibility of air contamination from the laser’s interaction, such as smoke, laser cutter/engraver designs require airflow. This could in turn cause damage to parts of the machine or foul optical systems. It is possible that the air that comes out of the machine could contain unwanted byproducts like smoke. This must be routed or filter. The machine may also need to be designed to stop such byproducts escaping through unintended openings, such as sealing any components that might be open. The kerf, which is the amount of material removed during an operation, is smaller than most machining tools. It varies depending on the material being used, the laser power, speed, and other factors. This makes it difficult to predict the final object size. The speed at which the laser cutter/engraver operates is also very important, something that is not the case with other machining tools. The laser’s speed of movement can be affected by a temporary (or unaccounted for) slowdown. This can cause damage to the workpiece or even complete destruction. It is easy to predict, measure and calculate operating parameters for many machining tools such as the tool rotation speed and the volume of material that has been removed. Laser cutters and engravers, however, are more sensitive to material conditions and other factors. Fluids are used in many machining tools as coolant or lubricant. The cutting mechanism in laser cutters/engravers does not require any physical contact with the material. However, air and other gases may be used to assist the cutting process in a different way, such as by facilitating combustion, clearing debris, or facilitating the removal of the material.

The housing can surround the enclosure of the CNC machine 100 or an interior area. A housing may include walls, a base, and openings that allow for access to the CNC machine 100. A material bed 150 can have a top surface, on which the material 140 is generally placed.

“In the implementation FIG. “In the implementation of FIG. 1, the CNC can include an openable barrier as a part of its housing to allow access between the exterior of the CNC and the interior space of CNC machine. An openable barrier could include one or more doors and hatches. Flaps and the like can also be included. In a closed position, the openable barrier can reduce light transmission between the interior and exterior spaces. The openable barrier may be transparent to one or several wavelengths of light, or comprise portions with varying light attenuation abilities. A lid 130 can be used to place material 140 on the enclosure’s bottom. A lid is a reference in many of the examples discussed. The term lid can be used to refer to any type of operable barrier. However, unless there are specific disclaimers about other configurations or reasons why a lid cannot simply be taken to mean any other kind of openable barrier the usage of the term lid will not be considered limiting. An example of an openable barrier is a front door, which can be opened horizontally or vertically for additional access. Vents, ducts or any other access points can be found in the interior space, as well as to the components of the CNC machine 100. These access points may be used to gain power, air, water, or data. Cameras, position sensors, switches can all be used to monitor any of these access points. The CNC machine 100 can perform actions to protect the user and system in the event that they are accessed unintentionally, such as a controlled shutdown. Other implementations allow the CNC machine 100 to be completely open (e.g. The CNC machine 100 does not need a lid 130 or walls. If necessary, any of the features listed herein may also be available in an open configuration.

“The CNC machine 100 may have one or more moving heads that can be used to alter the material 140, as described above. FIG. The head 160 can be the movable heads in some implementations, such as the one shown in FIG. Multiple movable head options exist. For example, two or more mirrors can be used to rotate or translate independently to locate a laser beam. Or multiple movable head options that work together, such as two or more mill bits that are capable of performing separate operations in a CNC machine. The head 160 of a laser-cutter CNC can contain optical components, mirrors and cameras as well as other electronic components that are used for the desired machining operations. The head 160 is typically a laser-cutting machine head but it can also be a mobile head of any type.

“The head 160 can include optics, electronics and mechanical systems. In some cases, it can also be set up to deliver a laser beam or electromagnetic radiation 140 to the material 140. A motion plan can be executed by the CNC machine 100 to cause movement of the movable heads. The movable heads can transmit electromagnetic energy to cause a change in material 140 contained within the interior space. One implementation allows for the adjustment of the orientation and position of the optical elements within the head 160 to alter the focal point, angle or position of a laser beam. Mirrors can be rotated or shifted, lenses can be translated, and so on. You can mount the head 160 on a translation rail 170 which allows you to move it around the enclosure. The motion of the head 160 can be linear in some cases, such as along an X axis or Y axis. Other implementations allow the head to combine motions in any combination of directions within a rectilinear or cylindrical coordinate system.

“The translation rail 170 may be any type of translating mechanism that allows movement of the head 160 into the X-Y direction. For example, one rail with a motor that moves the head 160 along it, or a combination two rails that move head 160, or a combination circular plates and rails with joints.

“Components of CNC machine 100 can be enclosed in a case. You can have windows, apertures and flanges in the case. You can also include a laser, the head 160 or optical turning systems, cameras and the material bed 150 in the case. An injection molding process is possible to manufacture the case or any of its components. Injection molding can be used to produce a rigid case in many designs. Materials with useful properties may be used in injection molding. These include strengthening additives that allow the injection-molded case to keep its shape even when heated or reflective elements that scatter throughout the material that reflect or dissipate laser energy. One design of the case could include a horizontal slot at the front and a matching horizontal slot at the back. These slots allow for the passage of large materials through the CNC machine 100.

“Optionally, an interlock system can interface with the lid 130, the door, or any other barrier. Many regulatory systems require such an interlock in many cases. An interlock can detect the state of an openable barrier. For example, it can determine if a lid 130 has been closed or opened. An interlock may be used to prevent the CNC machine 100 from performing certain functions. It should not be in a closed condition. It is possible to prevent certain functions from the CNC machine 100 by closing it. Interlocks can be found in series. For example, the CNC 100 won’t work if the lid 130 or the front door are closed. Some components of the CNC 100 can also be linked to other components, such as the ability to not allow the lid 130 open while the laser is on or a moving component, sensors that detect a gas, and motors running. The interlock can be used to prevent electromagnetic energy being released from the movable heads when the barrier is not closed.

“Converting Source Files into Motion Plans”

“A traditional CNC machine accepts a drawing from the user, which acts as a source file. It describes the object that the user is trying to create and the cuts that the user desires to make. Source files can be described as:

“1..STL files are used to define three-dimensional objects that can be printed with a 3D printer, or carved with an a milling machine.

“2..SVG files which define a set vector shapes that can used to cut or draw material.”

“3).JPG files which define a bitmap that can easily be engraved on a surface.

“4) CAD files and other drawings files that can be used to describe an object or operation in a similar way to the ones above.

“The machine file 343, describes the idealized motion of CNC machine 100 to achieve the desired result. For example, let’s say a 3D printer deposits a tube-shaped piece of plastic material. If the source file specifies that a rectangle is required, the machine file can tell the CNC machine to follow a serpentine path while extruding the plastic. You can also omit certain information from the machine file. The machine file may not include the height of the rectangle. Instead, it will display the height as high as the plastic tube. You can also include information in the machine file, such as instructions to move the printhead from its original position to a corner to start printing. Even though the instructions may not be directly related to the intended purpose of the user, they can still be helpful. To save material costs, a common setting in 3D printers is for solid shapes to be rendered hollow in the file.

“As illustrated by FIGS. The CNC machine can move the cutting tool from (0.0) when the source file is converted to the machine files 330 (in FIG. 3B) To the point where cutting is to start, activate the CNC machine (for example, lower a drag knife, or energize laser), trace the rectangle and deactivate it before returning to (0,0).

Once the machine file is created, you can generate a motion plan to control the CNC machine 100. The motion plan includes the data necessary to determine the actions of each component of the CNC machine 100 at various points in time. The motion plan can either be generated by the CNC machine 100 or another computing system. A motion plan is a stream that describes data, such as electrical pulses that describe how motors should turn, voltages that indicate the desired output power for a laser, pulse trains that specify the mill bit’s rotational speed, and so on. Motion plans, unlike the source files and machine files like G-code, are defined by the presence or inferred of a temporal element. This indicates the time or offset at which each action should take place. Coordinated motion is one of the most important functions of a motion planning. Multiple actuators work together to produce a single effect.

“The motion plan renders an abstract, idealized machine-file as a practical series electrical and mechanical tasks. A machine file could include instructions to “move one inch to right at a speed one inch per second while maintaining a constant number revolutions per second for a cutting instrument. You must consider that motors cannot accelerate immediately and must instead?spin up. At the beginning of motion, and at the end. at the end. The motion plan would then indicate pulses (e.g. The motion plan would then specify pulses to be sent to stepper motors, or other apparatus for moving head or other parts on a CNC machine. It will occur slowly at first, then speed up, and then slower again towards the end.

The motion controller/planner converts the machine file to the motion plan. The motion controller can be either a general purpose or special purpose computing device such as a microcontroller with high performance or a single-board computer connected to a Digital Signal Processor. The motion controller’s job is to convert the vector code into electrical signals to be used to drive the CNC machines 100. This will take into account the current state of the CNC machines 100 (e.g. The machine is still stationary so maximum torque must be applied and the change in speed will not be significant? physical limitations of the machine (e.g. Accelerate to such-and-such speed without creating forces beyond what is allowed by the machine?s design. These signals can include step and direction pulses that are fed to stepper motors and location signals that are fed to servomotors. They create the motion and actions for the CNC machine 100. This includes elements such as actuation 160, moderation heating and cooling, and many other operations. A compressed file of electrical signals can sometimes be used to decompress and then output directly to the motors. These electrical signals may include binary instructions such as 1’s or 0’s that indicate the amount of electrical power applied to each motor input over time in order to achieve the desired motion.

“The motion plan is the stage that best understands the physics of CNC machine 100 and converts it into steps. It is the most common method of implementation. A CNC machine 100 may have a heavier head and need to be accelerated more slowly. This limitation can be modeled in the motion planner, and it affects the motion plan. The motion plan can be tuned to each model of CNC machine based on its measured attributes (e.g. Motor torque) and observed behavior (e.g. When accelerating too fast, the belt will skip. The CNC machine 100 can adjust the motion plan per-machine to account for differences between CNC machines.

The motion plan can be generated in real time and sent to the output devices. You can also pre-compute the motion plan and write it to a file. The file can then be read back from the file, and sent to the CNC machine 100 later. Instructions to the CNC machine 100 can be transmitted in a variety of ways. For example, you can stream a portion of the machine file, or the motion plan, or even in batches. You can store and manage batches separately to allow pre-computations or additional optimization to only part of your motion plan. A file of electrical signals can be output directly to motors in some implementations. This may be done by compressing the files to save space. To indicate motor actuation, the electrical signals can contain binary instructions that are similar to 1’s or 0’s.

Machine vision can augment the motion plan by either precomputing in advance, or updating in real time. Machine vision can be described as the general use of sensor data. It is not limited to optical data. Other forms of input can include, for example, audio data from an on-board sound sensor such as a microphone, or position/acceleration/vibration data from an on-board sensor such as a gyroscope or accelerometer. Cameras can be used to capture images of machine vision, such as the CNC machine 100, its material, and the surrounding environment (if any smoke or debris is present). The output of these cameras can be routed to a computer for processing. The CNC machine 100 can be viewed in operation and the image data can be analyzed to determine if it is operating correctly. It can also be used to analyze the data to determine if the CNC 100 is performing optimally. The material can also be imaged. This allows users to see the CNC machine 100 in operation and can adjust the CNC machine 100 according to their instructions. Users can also be notified when the project has been completed. Or, information can be obtained from the image data about the material. You can identify errors, such as when a foreign object has been left in the CNC 100, the material is not properly secured or reacting unexpectedly during machining.

“Camera Systems”

To acquire image data, cameras can be mounted in the CNC machine 100. Image data is any data that is gathered from a camera, image sensor, or video camera. This includes still images, streams, audio, metadata, shutter speed, aperture settings, settings or information from or pertaining flashes or other auxiliary data, graphic overlays of data superimposed on the image, such as GPS coordinates. It can also include raw sensor data like a.DNG, processed data such a JPG, and data resulting in the analysis of image data processed by the camera unit, such as direction and velocity sensor. You can mount cameras so that they collect image data (also known as?view?). Cameras can be mounted so that they collect image data (also known as?view? oder?image?) An interior section of the CNC machine 100. The lid 130 can be in a closed or open position, or independent of the position of lid 130. One implementation allows for one or more cameras to view the interior of the lid 130. This can be done by mounting a camera to the inside surface of the lid 130, or anywhere else within the case. The preferred embodiments allow the cameras to image the material 140 even though the CNC machine 100 is closed. This can be useful, for example, when the CNC machine 100 is machining the material 140. Cameras can be mounted in the interior space or opposite the work area in some cases. Other implementations allow for multiple cameras to be attached to the lid 130. Cameras may also be capable motion, such as translation into a variety of positions, rotation, tilting along one or several axes, and/or translation. A number of cameras attached to a translatable structure, such as the gantry210. This can be any mechanical device that can be commanded or controlled to move the camera (movement including rotation). The translatable support’s head 160 is an exception to this rule. It is restricted by the track 220, and the translation rail 170 which limit its motion.

You can choose lenses to cover a wide area, such as extreme depth of field, so that both close and distant objects are in focus. Or, you may consider one or more other factors. You can place the cameras to capture additional information about the construction process. Or, you could position the camera so that the user can move it, such as on the underside 130 of the lid 130. This is where opening the CNC machine 100 causes camera to point at user. The single camera mentioned above can capture an image even if the lid isn’t closed. This image could include an object (e.g. a user) that is not within the CNC machine 100. Cameras can be mounted to mobile locations such as the lid 130 or head 160 with the intention to use video or multiple still photos taken while the camera moves to assemble larger images. For example, scanning the camera across material 140 to obtain an image of the entire material 140. This allows for the analysis of data to span multiple images.

“As shown at FIG. 1 can be attached to the lid 130 with a lid camera 110 or multiple lid cameras. As shown in FIG. The lid camera 110 can be attached to the 130’s underside. A lid camera 110 is a camera that has a large field of view 112, which can image the first part of the material 140. This could include a large portion of the material 140, the material bed, or all of the material 140. If the head 160 is located within the scope of the lid camera 110, the lid camera 110 can image it. The lid camera 110 can be mounted on the underside 130 of the lid 130 so that the user is visible when the lid 130 opens. For example, images can be taken of the user loading and unloading material 140 or retrieving a completed project. This allows you to combine a variety of sub-images from different locations. The lid 130 is closed and the lid 110 rotates with it 130, bringing the material 140 into focus.

“Also shown in FIG. A head camera 120 can be attached to the head 160. The lid camera 110 has a wider field of view, so the 120 head camera can take better images of the material 140. The head camera 120 can also be used to photograph the cut in the material 140. The lid camera 110 cannot locate the material 140 as precisely as the head camera 120.

Cameras can also be mounted outside the CNC machine 100 to view users or view external features. To view other users and view features of the CNC 100, cameras can be mounted outside.

Multiple cameras can be used together to view an object or material 140 at multiple angles, resolutions and locations. The lid camera 110, for example, can pinpoint the exact location of a feature on the CNC machine 100. The CNC machine 100 will then instruct the 160-degree head to move to the location to allow the 120-degree head camera to image the feature more clearly.

While the examples are intended to be used with a laser cutter, this application does not require the use of cameras for machine vision. If the CNC machine 100 was a lathe, for example, the lid camera 110 could be mounted near the rotating material 140, 160 and 120. The head camera 120 can also be located close to the cutting tool. The head camera 120 can also be mounted on top of the head 160, which deposits material 140, to form the desired piece.

An image recognition program can detect conditions within the CNC machine’s interior 100 using the image data. Below are the conditions that can be identified. They can include the properties and positions of the material 140, positions of components 100, errors in operation, and more. Instructions for the CNC machine 100 may be created or modified based in part on the image data. For example, the instructions could be used to correct or mitigate an unfavorable condition that was identified in the image data. Instructions can also include changing the output of 160. A CNC machine 100 can be used to cut lasers. The instructions can tell the laser to turn on or reduce power. The updated instructions may include new parameters for motion planning calculation or modifications to an existing motion plan. This could affect the motion of the head 160 and the gantry 220. If the image shows that a cut has been made recently and is not in the desired place, such as due to a piece moving out of alignment or a second operation, the motion plan can be calculated using an equal offset to correct the problem. The instructions for creating the motion plan can be executed by the CNC machine 100. The movable component may be the gantry, 160 or an identifiable mark on 160 in some implementations. For example, the gantry210 can be a movable component that has a fixed spatial relation to the movable heads. Software controlling CNC machine 100 can be updated with image data that shows the position of the movable heads and/or movable components, and/or their positions and/or higher order derivatives.

“Multiple cameras can be placed in the CNC machine 100 to provide required image data. This is because the type of data needed can vary and/or there may be limitations to the field view of each camera. For many uses, the placement and choice of cameras can be optimized. Cameras that are closer to 140 material can be used to capture detail, but with a wider field of view. Multiple cameras may be placed next to each other so that the images from all of them can be combined and analyzed by the computer. This will allow for higher resolution or greater coverage than would be possible for any individual image. Images can be improved and modified in many ways. This includes stitching together images to make a larger image, increasing brightness, diffencing images to isolate any changes (such as moving objects, changing lighting), multiplying and dividing images and rotating them. Scaling and sharpening images is another example. The system can also record additional data, such as ambient light sensor recordings and the location of movable parts, to aid in manipulation and improvement. Stitching is the process of taking sub-images taken from different cameras and merging them to create a larger image. The stitching process can result in some images overlapping. The stitching process may also require other images to be rotated or trimmed to create a seamless, larger image. Any of these methods can reduce or eliminate lighting artifacts like reflections, glare, and the rest. Image analysis programs can also perform noise reduction or elimination of edges on acquired images. Edge detection may include comparing different parts of an image to identify edges or objects. Noise reduction may be achieved by smoothing or averaging one or more images in order to reduce periodic, random or pseudo-random noises. This could be due to vibration fans, motors, and other CNC machines 100 operations.

“FIG. “FIG. For example, images taken by cameras can be used to enhance the brightness of an image. FIG. 4A shows a first image (410), a second 412 and a third 414. The horizontal bands in the first image 410 are shown in white against a black background. Although the horizontal bands may be adapted to brighter objects, the main point is that the backgrounds and bands are different. The second image 412 shows similar horizontal bands but is offset in the vertical direction to the one in the first image. The sum of the first image 410, second image 412 and third image 414 is shown. The bright square is filled in by the interleaved bands. This can be used to create brighter images by combining multiple frames of the camera’s image, even if they are taken in low light.

“FIG. “FIG. Image subtraction can be used to, for instance, distinguish dim laser spots from brighter images. A first image 420 shows two spots. One is a laser spot, the other an object. A second image 422 can also be taken, with the laser removed, leaving the object. To get the third image 424, subtract the second image 422 from the first image. The laser spot is the remaining spot in the 3rd image 424.

“FIG. “FIG. A circle can represent a circle in the first image 430. This is an object that could be found in the CNC machine 100. This could be, for instance, an object on the material sheet 150 of the CNC-machine 100. For example, if half of the material 150 on the CNC machine 100 was illuminated with outside lighting such as a sunbeam or a sunbeam then the second image 420 may look like the one shown. The illuminated side might be brighter than the unilluminated side. Sometimes, it can be beneficial to use internal lighting while in operation. This is to help in image diagnostics or to show the user what is going on in the CNC machine. Even if none are applicable, internal lighting can be used to reduce or eliminate external lighting (in this instance the sunbeam). The third image 434 shows this internal lighting by adding a brightness layer on the entire second image 432. The effect of internal lighting can be isolated by subtracting the second image 432 from 434 to create the fourth image 436. Fourth image 436 depicts the area and object as it would look under internal lighting. This can be used to allow image analysis even when external lighting contaminants are present.

“Machine vision processing can be done at, for instance, the CNC machine 100 on a locally connected PC or on a remote server connected over the internet. The CNC machine 100 can perform image processing in some cases, but at a slower speed. This can happen when the onboard processor can only run simple algorithms in real time, but can run more complex analysis with more time. The CNC machine 100 can pause to allow the analysis to complete or execute the data on a faster connected computer system. One example is when sophisticated recognition is done remotely, such as by an internet server. These cases allow for limited image processing locally and more advanced image processing and analysis remotely. To determine if the lid 130 has been closed, the camera could use a simple algorithm that is run on the CNC machine 100. The CNC machine 100 will detect that the lid 130 has been closed and send images to the remote server to further processing. For example, to locate the material 140 that was added. The system can use dedicated resources to analyze the images locally, pause or divert computing resources from other activities.

“Another implementation allows the tracking of the head 160 by real-time, onboard analysis. Tracking the head 160’s position, for example, is possible with either high resolution or low resolution images. High-resolution images can be converted into smaller images with a reduced memory size through cropping or resizing. Some images may need to be cropped or eliminated if they include video or a sequence. To detect any misalignment, a data processor can scan the smaller images several times per second, for example. The data processor can stop the operation of the CNC machine 100 if a misalignment has been detected. However, more precise processing will pinpoint exactly where the head 160 is using higher resolution images. The head 160 can then be adjusted to correct the location once it has been located. Images can also be uploaded to a server for further processing. You can determine the location by, for instance, looking at the lid camera 160 on the head, or looking at what image 120 is currently showing, etc. The head 160 could, for example, be directed to move towards a registration mark. The head camera 120 will then take a picture of the registration mark in order to detect any misalignment.

“Basic Camera Functionity”

The cameras could be a single wide-angle camera or multiple cameras. They can also include a moving camera that digitally combines the images. Cameras that are used to image large areas of the CNC machine 100’s interior can be distinguished from those that focus on a smaller area. One example is the head camera 160, which can image a smaller area than wide-angle cameras in certain implementations.

There are many camera configurations that can serve different purposes. A camera or cameras with a wide field of view can cover all of the interior of the machine, or just a portion. The image data from one or more cameras can cover most (meaning more than 50%) of the work area. Other embodiments allow for at least 60%, 70% or 80% of the work area to be included in the image data. These amounts do not include obstructions by material 140 or other objects. If a camera can view 90% of a working area with no material 140 and then a piece of material 140 is added to the area, it is still considered that the camera is providing image data that covers 90% of the area. Some implementations allow image data to be obtained even if the interlock is not blocking electromagnetic energy from being emitted.

In other instances, the camera can be mounted outside the machine to see the users 140 and/or material 140, record the use 100 of the CNC machine 100 for analysis or sharing, or detect safety issues such as uncontrolled fires. Other cameras offer a better view but have a smaller field of vision. Optic sensors such as those found on optical mice can provide low resolution and very few colors over a small area. They also process information quickly to detect material 140 relative to the optical sensor. This combination of lower resolution and color depth and specialized computing power allows for very fast and precise operation. If the material is being moved or the head is stationary, such as if it is bumped by the user, the approach can detect the movement and characterize the material very precisely. This allows for additional operations to continue where they left off.

“Video cameras are able to detect changes in time. For example, they can compare frames to determine the speed at which the camera moves. You can capture images with higher resolution and more detail using still cameras. Another method of optical scanning is to place a linear optical scanner (such as a flatbed scanner) on an existing rail like the sliding Gantry 210 in an laser system and scan it over the material 140. The image will then be assembled as it scans.

The laser can be turned off and back on again to isolate the light. The difference between these measurements shows the light scattered from laser and the effect of ambient light. Cameras can be set to a fixed or adjustable level of sensitivity. This allows them to work in bright or dim conditions. You can have multiple cameras that are sensitive at different wavelengths. For example, some cameras can detect wavelengths that correspond to a cutting, range-finding, scanning, or other lasers. Some cameras may be sensitive to wavelengths not specifically covered by the lasers in the CNC machine 100. The cameras can only be sensitive to visible light, but can also have an extended sensitivity into ultraviolet or infrared. This allows them to distinguish between similar materials based upon IR reflectivity and view invisible (e.g. direct infrared laser beams. One photodiode can be used to measure e.g. The flash from the laser striking the material 140 or the reaction to light emissions that seem to correlate with uncontrolled fire. Cameras can be used to photograph, for instance, a beam spot on mirrors, or light that escapes an intended beam path. Also, the cameras can detect scattered light. This is useful for cutting reflective materials. You can also use other types of cameras to detect light not of the same wavelength as the laser. For example, a thermographic camera or infrared radiation can be detected.

The cameras can be linked to the lighting sources of the CNC machine 100. The lighting sources may be placed anywhere on the CNC machine 100. They can be located on the interior of the lid 130, walls, floors, gantry 210 or the floor. An example of coordination between lighting sources and cameras is to adjust the internal LED illumination while taking images of the interior with the cameras. If the camera can only capture images in black and/or white, the LEDs within the camera can be set to illuminate in sequentially red, green and blue. This will allow for three images. These images can be combined to create an RGB full-color image. External lighting may cause shadows and other lighting problems. The internal lighting can then be turned off while you take a photo, and then switched on while you take another one. The ambient light can then be subtracted on a pixel by pixel basis to determine what the image will look like when only internal lighting is used. You can move lighting, such as the CNC machine 100’s translation arm, while taking multiple photos. Then, you can combine the images to create a more even lighting effect. To aid with illumination, the brightness of the internal lights can be adjusted just like a flash on a traditional camera. You can move the lighting to an area that better illuminates an interest. For example, it can shine straight down a cut slot so that a camera can clearly see the bottom. You can turn off the lighting while taking a picture if it is interfering with the image. The lighting can also be turned off for a short time so that the viewer doesn’t notice it (e.g. For less than one second, less that 1/60th of second, or less that 1/120th second. To capture a photograph, the internal lighting can be temporarily brightened to mimic a flash camera. Specialized lights can be used or engaged only when necessary. For example, an invisible UV-fluorescent dye might be found on the material. To illuminate any ink, it might be possible to flash the UV illumination briefly while taking a photograph when scanning for a barcode. To alter the lighting conditions, you can also toggle the range-finding or cutting lasers. This allows you to isolate the signature and/or effects of the objects when imaging. Images can be cropped and translated between acquisitions. Automatic adjustments in the cameras can be disabled or overridden to facilitate this differencing. For example, disabling autofocus, flashes, etc. Aperture, shutter speed, white balance and other features can be kept constant between images. This ensures that the differences between the images are caused only by the differences in lighting, and not by adjustments in the optical system.

Multiple cameras or one camera moving to different places in the CNC machine 100 can take images from different angles and create 3D representations 140 of the surface. 3D representations can also be used to generate 3D models. They can also be used to measure the depth of engravings or laser operations, and provide feedback to the CNC machine 100. It can also be used to scan the material 140 and build a replica of it.

The camera can be used for recording photos and videos that can be shared with others. Automated?making of? Sequences that combine still and video images can be made. A variety of optimizations can be made by having a good understanding of the motion plan or the ability to control the cameras directly via the motion program. One example is a machine that has two cameras. The lid camera is mounted in one camera and the other is mounted in another. This allows the final video to be made with the footage from the head camera. Another example is that the machines’ internal lights can be used to instruct the cameras to reduce the aperture size and decrease the light entering. Another example is when the machine is a laser cutter/engraver, and activating it causes a camera in the head to become overwhelmed and unusable, the footage may be discarded. Another example is when elements of the motion plan can be combined with the camera recording to achieve optimal visual or auditory effect. For example, the motors may be driven in coordinated fashion to sweep the material and the interior lights will be lowered before the cut. Another example is the use of sensor data from the system to select camera images. For example, an image of the user could be captured from a camera attached to the lid when the lid’s accelerometer, gyroscope or other sensor detects that it has been opened and has reached the ideal angle. Another example is when the video recording stops due to an error. For instance, if the lid is opened unintentionally during a machining operation, this could cause it to stop. To speed up or eliminate monotonous events, the video can be automatically edited with information such as the length of the cut file. For example, if the laser has to make 400 holes, that section of cut plan could be displayed at high speed. These decisions are traditionally made after reviewing the footage. There is little to no prior knowledge about what it contains. The advantage of pre-selecting footage and even coordinating its capture can be that it will produce better quality video and take less time editing. You can automatically combine video and images from the production process in many ways, such as interleaving stills with video, stop motion with images and combining photography and computer-generated imagery. A 3D or 2D model is created of the item. You can also enhance video with media from other sources such as photos taken with your camera of the final product.

“Additional features can be added individually or in combination with other features. These are the sections.”

“Real-Time Movement Planner”

“FIG. “FIG.5” is a diagram that illustrates how to determine a safe pause in a motion or execution plan for a CNC-machine consistent with certain implementations of current subject matter. The current CNC machines can be loaded with a machine file in G-code language. The CNC machine’s motion planner calculates the required motions for the actuators (such steppers or servomotors) using the machine file. This motion planner then causes the execution of these motions to occur in realtime, or very close to realtime. Execution of such a motion planning must be fast enough to generate new elements of the plan as quickly and accurately as possible. It will also make adjustments in order to present the next set output data to the actuators as required. Although there might be some buffer for an instantaneous delay in the execution of the motion plan, it is assumed that the motion planner is fast enough coupled to the CNC machine so that no loss of connection is possible between them.

An alternative approach, in which the CNC machine is separated from the motion planner, is possible. This is consistent with the implementations of current subject matter. The CNC machine and one or more processors that implement the motion planner could be connected to each other by a cable, such as a USB cable, or network connections such as the Internet or a wide-area network, or the Internet. This configuration may cause data transmission to be slower or less reliable than usual. Data packets may be lost or delayed, and/or other issues could affect the reliability and timeliness for receiving commands from the CNC machine’s motion planner.

“Use a motion planner on a separate computing device from the CNC machine can pose a number of problems, including handling a connectivity problem between the two machines (CNC) that occurs midway through fabrication operations. This is not possible with conventional methods in which the motion plan is integrated into the CNC. It is almost impossible to have this happen if the motion planner is connected via a network. An interrupted motion plan, if it is embedded in the CNC machine’s motion planner, would cause the work to stop and the immense manual effort needed to restart it. This could lead to the fabrication process not going as planned. The laser could suddenly go off, and re-aligning it to allow it to be restarted is a tedious task that can lead to noticeable flaws.

“Despite these difficulties, it is possible to have a configuration that is consistent with current subject matter and does not require the motion planner to be implemented on the same machine as the CNC machine. The motion planner must be included in CNC machines that include it. This can prove costly, especially for advanced motion plans that calculate second, third and fourth order derivatives of position or forces on the machine. The motion planner may be shared between multiple machines if it is connected to the Internet. Another improvement is possible with one or more current implementations. CNC machines that integrate the motion planer generally have a real-time requirement. They must have sufficient processing power to keep up the machine’s motion. These motion planners may require some compromise between accuracy (performing more calculations per hour) and cost (including a processor that is more expensive to complete those calculations). In another improvement that may be possible with one or more implementations of the current subject matter, using a separate motion planner can allow repurposing of a general-purpose computer, such as a high powered workstation or server in a cloud hosting provider, temporarily for the execution of the machining operation, before returning it to other, non-machining-related tasks.”

“The following describes two examples of approaches that can be used to address challenges in implementing the current subject matter, where the motion planner is separated from the CNC machine.

“In a first approach the motion planner can calculate a motion plan in motion plan segments. Each segment includes instructions for performing a series useful machining operations and instructions to place the CNC machine into a safe pause and resume state. This is also known as the safe pause point. It can optionally include a condition in which a CNC machine’s moveable head is not moving or cutting. Optionally, the safe stop point could be the end of the motion plan. An execution plan or motion segment that is consistent with the implementation of current subject matter may be restricted to the size of a CNC machine buffer. It can then be loaded into the buffer in its entirety. The entire machining operation may be contained in a segment, or a portion thereof and instructions to reach the next safe pause point.

FIG. 5 shows a simple example. 5 shows the features of a machining operation using a laser cutter/engraver in order to engrave letters?v?l 500. These are the operations that are required:

“1) Laser turn on instruction

“2) Downward-right Line 510”

“3) Upward-Right Line 520”

“4) Laser turn off instruction

“5” upward-right line 53″

“6) laser turn on”

“7) Downline 540”

“8” laser turn off

These are inputs to the motion plan. The motion plan, or the output of the motion planning program?is a set of instructions that can be used by motors and actuators to perform their functions. The motion planner would determine the electrical impulses needed to execute these commands and then send them to the machine. The material could be lost if the motion planner is suddenly disconnected from the machine during the upward-right line 522. Although it is possible to ask the machine to continue the motion planning from the downward-right 510, this would mean that the entire plan would be repeated twice. This could cause damage to the material since the laser will revisit the material. Alternately, the motion planner might be instructed to start from the downward line 554 which would result in an incomplete machining operation of 550.

“An interruption in communication between CNC machine and motion plan is unlikely, in the case of a motion planning integrated into the CNCmachine. However, it can happen if the CNC and motion planners are not integrated.”

A segmented file that is consistent with current subject matter implementations can be created by considering the maximum buffer capacity of the CNC, which might in this case hold the electrical impulses required to execute the first six commands. Instead of sending all six commands to a laser, the motion planner could identify a point or points at which execution can be halted and resumed without affecting final output. This would be the area between the line 530 at the upper-right, which is when the laser is off. Therefore, the motion planner can create a segment with all five commands and then send it to the CNC machine. The CNC machine would wait until all five commands are stored in the buffer. The CNC machine would wait until the motion plan for all five commands was stored in its buffer (e.g., until the entire segment was received), then execute the commands within the segment. Normal operation would see the motion planner prepare, and the machine receive another segment. This completes the machining operation before the first one is completed. If the motion planner is slow, such as an underpowered computer or network traffic, or if the second segments are delayed (for example, someone tripping over the cable), the CNC machine will be able to safely pause in a resumable state with the laser off and await further commands. If the entire segment is not received by the previous segment’s end, it may be possible to add more data.

Summary for “Controlled deceleration in a numerically controlled computer of moving components”

“Computer-numerically-controlled (CNC) machines operate by moving a tool, such as a laser, drill bit, or the like, over a material to be machined. In response to control system commands, the tool is moved using motors, belts or other actuators. The speed of a tool may be affected by machine inertia and the specific commands, as well as the size of the motion step or similar factors.

“In one aspect, a control unit of a computer-numerically-controlled (CNC) machine receives, from a general purpose computer that is housed separately from a computer-numerically-controlled machine, a motion plan defining operations for causing movement of a moveable component of the computer-numerically-controlled machine. In response to a command received at the computer-numerically-controlled machine, a first execution rate of the operations is altered to a second execution rate of the operations to change a rate of movement of the movable component.”

“Implementations can be made of the current subject matter, including, but not limited to, methods consistent the descriptions herein, as well articles that contain a tangible embodied machine-readable media operable to cause one (e.g. computers, etc.). It may result in operations that implement one or more of these features. Computer systems can also be described, which may include one or several processors and one (or more) memories that are coupled to one or both of the processors. A memory can contain a computer-readable storage medium that may store, encode, store, and the like one or several programs that allow one or many processors to perform any of the operations described. One or more processors can implement computer-implemented methods that are consistent with the various implementations of current subject matter. Multiple computing systems can be connected to exchange data, commands and other instructions via one or more connections. This includes a connection over a network (e.g. The Internet, a wireless wide-area network, an area network, and a large network can all be connected to each other via direct connections.

“Implementations can offer one or more benefits. Controlled deceleration, for example, can allow smooth halting of CNC machine operations and resume them. This allows materials to be worked with a minimal amount of unwanted effects, which can sometimes occur when a CNC machine operation is stopped. There are many ways to control the deceleration and re-acceleration of CNC components. However, the present subject matter may include a “clock stretching” technique. This technique allows for deceleration, and subsequent re-acceleration, to take place in a controlled fashion so that material being worked on can be processed even if there is a stoppage.

“The accompanying drawings and description below detail one or more variants of the subject matter. The claims and the descriptions will reveal other features and benefits of the subject matter. Although certain aspects of the currently disclosed subject matter have been described only for illustration purposes with respect to methods and systems for controlled deceleration within a CNC machine, it is important to understand that these features are not meant to be restrictive. These claims are meant to limit the scope of the subject matter protected.

“DESCRIPTION of Drawings”

“The accompanying drawings are included in and form a part this specification and show certain aspects of subject matter disclosed herein. They, along with the description, help to explain some of those principles associated with the disclosed implementations. The drawings are shown.

“FIG. “FIG.

“FIG. “FIG. 1;”

“FIG. “FIG.

“FIG. “FIG.

“FIG. 3C is a diagram that illustrates the machine file corresponding with the cut path and source files, consistent in some implementations;

“FIG. “FIG.

“FIG. “FIG.

“FIG. “FIG.

“FIG. “FIG.

“FIG. “FIG.

“FIG. “FIG.7 is a diagram that illustrates a resumption in operations in a CNC-machine, consistent with some implementations;”

“FIG. “FIG.

“FIG. “FIG.

“FIG. “FIG.

“Similar reference numbers” denote, when practical, similar features, structures, or elements.

“The accompanying drawings and description below detail one or more variants of the subject matter. The claims and the drawings will also reveal other features and benefits of the subject matter. Some features of the currently disclosed subject material may be described only for illustration purposes, in relation to machine-vision used for automated manufacturing processes (e.g. While certain features of the currently disclosed subject matter may be described for illustrative purposes in relation to machine-vision for aiding automated manufacturing processes (e.g., a CNC process), it should not be understood that these features are intended to be restrictive.

“Cutting” is the term used herein. The act of altering the appearance, properties, or state of a material can be referred to as cutting. For example, cutting can be done by making a through-cut or engraving, bleaching, curing and burning. When specifically mentioned herein, engraving refers to a process where a CNC machine alters the appearance of the material but not completely penetrating it. It can be used to remove some material from the surface or alter the color of the material, such as with a laser cutter. “Using focused electromagnetic radiation to deliver electromagnetic energy, as described below.”

“Laser” is used herein. “Laser” can be defined as any electromagnetic radiation source or focused or coherent energy source, which (in the context being a cutting instrument) uses photons in order to modify or alter a substrate. Lasers can be used as diagnostics or cutting tools at any wavelength. This includes UV lasers and visible lasers.

“Also as used herein, “cameras” This includes visible light cameras, black-and-white cameras, IR sensitive cameras, IR cameras or UV sensitive cameras as well as individual brightness sensors such photodiodes and sensitive photon detectors like a photomultiplier tube and avalanche photodiodes. It also includes detectors of far infrared radiation such as microwaves, Xrays or gamma rays as well as optically filtered detectors and spectrometers.

“Also as used herein is a reference to’real-time? actions may cause some delay or latency. This could be either because the actions were programmed in or due to limitations in machine response or data transmission. ?Real-time? Actions, as they are used herein, do not represent an instantaneous or rapid response. They also do not indicate any numeric or functional limitations to the response times or machine actions that result from them.

“Also as used herein without being specifically stated, the term’material? The material on the CNC machine’s bed. If the CNC machine is a lathe, laser cutter, or milling machine, then the material is what is put in the CNC machine to cut, such as raw materials, stock, and the like. If the CNC machine has a 3-D printer, the material can be either the current layer or any previously existing layers or substrate of the object being printed. Another example is that a CNC machine can print on paper.

“Introduction”

A computer numerically controlled (CNC), machine is one that can be used to add or subtract material from a computer. One or more motors, or other actuators, can move one or several heads to perform the addition or removal of material. Heads can be equipped with nozzles to spray or release polymers, as is the case for CNC machines that add material. Some implementations include an ink source, such as a pen or cartridge. Material can be added layer by layer to create a 3D object. The CNC machine can scan the material’s surface with a laser to alter or harden it. You can also deposit new material. To build up layers, the process can be repeated. The heads can include tools for CNC machines that remove materials, such as drag knives, plasma cutters and water jets, bits to a milling machine, lasers for laser cutter/engraver etc.

“FIG. 1. An elevational view showing a CNC machine 100, with a camera that captures an image of the entire material bed 150 and another camera that captures a portion 150. This is consistent with some implementations. FIG. FIG. 2. This is a top-view of the CNC machine 100 as it is being implemented. 1.”

FIG. 1. refers to one implementation for a laser cutter. Although some features are discussed in the context of laser cutters, they are not intended to be restrictive. Many of the above features can be used with other types CNC machines. The CNC machine 100 could be used as a lathe or engraver, 3D printer, milling machine (drill press), saw, etc.

While laser cutters/engravers share many similarities with CNC machines, there are many differences between them and they present particular design challenges. Laser cutter/engraver must adhere to regulations that limit the emission of electromagnetic radiation from the unit while it is operating. This makes it difficult for light to safely enter or exit the unit, such as to view or record images of its contents. Laser cutter/engraver beam must be directed from the emitter to the area that is to be machined. This could require a number of optical elements, such as mirrors and lenses. A laser cutter/engraver’s beam can easily be misdirected. Any component that is oriented along the beam path could cause the beam to escape its intended path. This could have undesirable consequences. Uncontrolled laser beams can cause material destruction. Laser cutter/engraver can require high voltage power supplies and/or radio frequency power supply to operate the laser. Fluid flow is required in laser cutters/engravers that use liquid cooling to cool the laser. Because of the possibility of air contamination from the laser’s interaction, such as smoke, laser cutter/engraver designs require airflow. This could in turn cause damage to parts of the machine or foul optical systems. It is possible that the air that comes out of the machine could contain unwanted byproducts like smoke. This must be routed or filter. The machine may also need to be designed to stop such byproducts escaping through unintended openings, such as sealing any components that might be open. The kerf, which is the amount of material removed during an operation, is smaller than most machining tools. It varies depending on the material being used, the laser power, speed, and other factors. This makes it difficult to predict the final object size. The speed at which the laser cutter/engraver operates is also very important, something that is not the case with other machining tools. The laser’s speed of movement can be affected by a temporary (or unaccounted for) slowdown. This can cause damage to the workpiece or even complete destruction. It is easy to predict, measure and calculate operating parameters for many machining tools such as the tool rotation speed and the volume of material that has been removed. Laser cutters and engravers, however, are more sensitive to material conditions and other factors. Fluids are used in many machining tools as coolant or lubricant. The cutting mechanism in laser cutters/engravers does not require any physical contact with the material. However, air and other gases may be used to assist the cutting process in a different way, such as by facilitating combustion, clearing debris, or facilitating the removal of the material.

The housing can surround the enclosure of the CNC machine 100 or an interior area. A housing may include walls, a base, and openings that allow for access to the CNC machine 100. A material bed 150 can have a top surface, on which the material 140 is generally placed.

“In the implementation FIG. “In the implementation of FIG. 1, the CNC can include an openable barrier as a part of its housing to allow access between the exterior of the CNC and the interior space of CNC machine. An openable barrier could include one or more doors and hatches. Flaps and the like can also be included. In a closed position, the openable barrier can reduce light transmission between the interior and exterior spaces. The openable barrier may be transparent to one or several wavelengths of light, or comprise portions with varying light attenuation abilities. A lid 130 can be used to place material 140 on the enclosure’s bottom. A lid is a reference in many of the examples discussed. The term lid can be used to refer to any type of operable barrier. However, unless there are specific disclaimers about other configurations or reasons why a lid cannot simply be taken to mean any other kind of openable barrier the usage of the term lid will not be considered limiting. An example of an openable barrier is a front door, which can be opened horizontally or vertically for additional access. Vents, ducts or any other access points can be found in the interior space, as well as to the components of the CNC machine 100. These access points may be used to gain power, air, water, or data. Cameras, position sensors, switches can all be used to monitor any of these access points. The CNC machine 100 can perform actions to protect the user and system in the event that they are accessed unintentionally, such as a controlled shutdown. Other implementations allow the CNC machine 100 to be completely open (e.g. The CNC machine 100 does not need a lid 130 or walls. If necessary, any of the features listed herein may also be available in an open configuration.

“The CNC machine 100 may have one or more moving heads that can be used to alter the material 140, as described above. FIG. The head 160 can be the movable heads in some implementations, such as the one shown in FIG. Multiple movable head options exist. For example, two or more mirrors can be used to rotate or translate independently to locate a laser beam. Or multiple movable head options that work together, such as two or more mill bits that are capable of performing separate operations in a CNC machine. The head 160 of a laser-cutter CNC can contain optical components, mirrors and cameras as well as other electronic components that are used for the desired machining operations. The head 160 is typically a laser-cutting machine head but it can also be a mobile head of any type.

“The head 160 can include optics, electronics and mechanical systems. In some cases, it can also be set up to deliver a laser beam or electromagnetic radiation 140 to the material 140. A motion plan can be executed by the CNC machine 100 to cause movement of the movable heads. The movable heads can transmit electromagnetic energy to cause a change in material 140 contained within the interior space. One implementation allows for the adjustment of the orientation and position of the optical elements within the head 160 to alter the focal point, angle or position of a laser beam. Mirrors can be rotated or shifted, lenses can be translated, and so on. You can mount the head 160 on a translation rail 170 which allows you to move it around the enclosure. The motion of the head 160 can be linear in some cases, such as along an X axis or Y axis. Other implementations allow the head to combine motions in any combination of directions within a rectilinear or cylindrical coordinate system.

“The translation rail 170 may be any type of translating mechanism that allows movement of the head 160 into the X-Y direction. For example, one rail with a motor that moves the head 160 along it, or a combination two rails that move head 160, or a combination circular plates and rails with joints.

“Components of CNC machine 100 can be enclosed in a case. You can have windows, apertures and flanges in the case. You can also include a laser, the head 160 or optical turning systems, cameras and the material bed 150 in the case. An injection molding process is possible to manufacture the case or any of its components. Injection molding can be used to produce a rigid case in many designs. Materials with useful properties may be used in injection molding. These include strengthening additives that allow the injection-molded case to keep its shape even when heated or reflective elements that scatter throughout the material that reflect or dissipate laser energy. One design of the case could include a horizontal slot at the front and a matching horizontal slot at the back. These slots allow for the passage of large materials through the CNC machine 100.

“Optionally, an interlock system can interface with the lid 130, the door, or any other barrier. Many regulatory systems require such an interlock in many cases. An interlock can detect the state of an openable barrier. For example, it can determine if a lid 130 has been closed or opened. An interlock may be used to prevent the CNC machine 100 from performing certain functions. It should not be in a closed condition. It is possible to prevent certain functions from the CNC machine 100 by closing it. Interlocks can be found in series. For example, the CNC 100 won’t work if the lid 130 or the front door are closed. Some components of the CNC 100 can also be linked to other components, such as the ability to not allow the lid 130 open while the laser is on or a moving component, sensors that detect a gas, and motors running. The interlock can be used to prevent electromagnetic energy being released from the movable heads when the barrier is not closed.

“Converting Source Files into Motion Plans”

“A traditional CNC machine accepts a drawing from the user, which acts as a source file. It describes the object that the user is trying to create and the cuts that the user desires to make. Source files can be described as:

“1..STL files are used to define three-dimensional objects that can be printed with a 3D printer, or carved with an a milling machine.

“2..SVG files which define a set vector shapes that can used to cut or draw material.”

“3).JPG files which define a bitmap that can easily be engraved on a surface.

“4) CAD files and other drawings files that can be used to describe an object or operation in a similar way to the ones above.

“The machine file 343, describes the idealized motion of CNC machine 100 to achieve the desired result. For example, let’s say a 3D printer deposits a tube-shaped piece of plastic material. If the source file specifies that a rectangle is required, the machine file can tell the CNC machine to follow a serpentine path while extruding the plastic. You can also omit certain information from the machine file. The machine file may not include the height of the rectangle. Instead, it will display the height as high as the plastic tube. You can also include information in the machine file, such as instructions to move the printhead from its original position to a corner to start printing. Even though the instructions may not be directly related to the intended purpose of the user, they can still be helpful. To save material costs, a common setting in 3D printers is for solid shapes to be rendered hollow in the file.

“As illustrated by FIGS. The CNC machine can move the cutting tool from (0.0) when the source file is converted to the machine files 330 (in FIG. 3B) To the point where cutting is to start, activate the CNC machine (for example, lower a drag knife, or energize laser), trace the rectangle and deactivate it before returning to (0,0).

Once the machine file is created, you can generate a motion plan to control the CNC machine 100. The motion plan includes the data necessary to determine the actions of each component of the CNC machine 100 at various points in time. The motion plan can either be generated by the CNC machine 100 or another computing system. A motion plan is a stream that describes data, such as electrical pulses that describe how motors should turn, voltages that indicate the desired output power for a laser, pulse trains that specify the mill bit’s rotational speed, and so on. Motion plans, unlike the source files and machine files like G-code, are defined by the presence or inferred of a temporal element. This indicates the time or offset at which each action should take place. Coordinated motion is one of the most important functions of a motion planning. Multiple actuators work together to produce a single effect.

“The motion plan renders an abstract, idealized machine-file as a practical series electrical and mechanical tasks. A machine file could include instructions to “move one inch to right at a speed one inch per second while maintaining a constant number revolutions per second for a cutting instrument. You must consider that motors cannot accelerate immediately and must instead?spin up. At the beginning of motion, and at the end. at the end. The motion plan would then indicate pulses (e.g. The motion plan would then specify pulses to be sent to stepper motors, or other apparatus for moving head or other parts on a CNC machine. It will occur slowly at first, then speed up, and then slower again towards the end.

The motion controller/planner converts the machine file to the motion plan. The motion controller can be either a general purpose or special purpose computing device such as a microcontroller with high performance or a single-board computer connected to a Digital Signal Processor. The motion controller’s job is to convert the vector code into electrical signals to be used to drive the CNC machines 100. This will take into account the current state of the CNC machines 100 (e.g. The machine is still stationary so maximum torque must be applied and the change in speed will not be significant? physical limitations of the machine (e.g. Accelerate to such-and-such speed without creating forces beyond what is allowed by the machine?s design. These signals can include step and direction pulses that are fed to stepper motors and location signals that are fed to servomotors. They create the motion and actions for the CNC machine 100. This includes elements such as actuation 160, moderation heating and cooling, and many other operations. A compressed file of electrical signals can sometimes be used to decompress and then output directly to the motors. These electrical signals may include binary instructions such as 1’s or 0’s that indicate the amount of electrical power applied to each motor input over time in order to achieve the desired motion.

“The motion plan is the stage that best understands the physics of CNC machine 100 and converts it into steps. It is the most common method of implementation. A CNC machine 100 may have a heavier head and need to be accelerated more slowly. This limitation can be modeled in the motion planner, and it affects the motion plan. The motion plan can be tuned to each model of CNC machine based on its measured attributes (e.g. Motor torque) and observed behavior (e.g. When accelerating too fast, the belt will skip. The CNC machine 100 can adjust the motion plan per-machine to account for differences between CNC machines.

The motion plan can be generated in real time and sent to the output devices. You can also pre-compute the motion plan and write it to a file. The file can then be read back from the file, and sent to the CNC machine 100 later. Instructions to the CNC machine 100 can be transmitted in a variety of ways. For example, you can stream a portion of the machine file, or the motion plan, or even in batches. You can store and manage batches separately to allow pre-computations or additional optimization to only part of your motion plan. A file of electrical signals can be output directly to motors in some implementations. This may be done by compressing the files to save space. To indicate motor actuation, the electrical signals can contain binary instructions that are similar to 1’s or 0’s.

Machine vision can augment the motion plan by either precomputing in advance, or updating in real time. Machine vision can be described as the general use of sensor data. It is not limited to optical data. Other forms of input can include, for example, audio data from an on-board sound sensor such as a microphone, or position/acceleration/vibration data from an on-board sensor such as a gyroscope or accelerometer. Cameras can be used to capture images of machine vision, such as the CNC machine 100, its material, and the surrounding environment (if any smoke or debris is present). The output of these cameras can be routed to a computer for processing. The CNC machine 100 can be viewed in operation and the image data can be analyzed to determine if it is operating correctly. It can also be used to analyze the data to determine if the CNC 100 is performing optimally. The material can also be imaged. This allows users to see the CNC machine 100 in operation and can adjust the CNC machine 100 according to their instructions. Users can also be notified when the project has been completed. Or, information can be obtained from the image data about the material. You can identify errors, such as when a foreign object has been left in the CNC 100, the material is not properly secured or reacting unexpectedly during machining.

“Camera Systems”

To acquire image data, cameras can be mounted in the CNC machine 100. Image data is any data that is gathered from a camera, image sensor, or video camera. This includes still images, streams, audio, metadata, shutter speed, aperture settings, settings or information from or pertaining flashes or other auxiliary data, graphic overlays of data superimposed on the image, such as GPS coordinates. It can also include raw sensor data like a.DNG, processed data such a JPG, and data resulting in the analysis of image data processed by the camera unit, such as direction and velocity sensor. You can mount cameras so that they collect image data (also known as?view?). Cameras can be mounted so that they collect image data (also known as?view? oder?image?) An interior section of the CNC machine 100. The lid 130 can be in a closed or open position, or independent of the position of lid 130. One implementation allows for one or more cameras to view the interior of the lid 130. This can be done by mounting a camera to the inside surface of the lid 130, or anywhere else within the case. The preferred embodiments allow the cameras to image the material 140 even though the CNC machine 100 is closed. This can be useful, for example, when the CNC machine 100 is machining the material 140. Cameras can be mounted in the interior space or opposite the work area in some cases. Other implementations allow for multiple cameras to be attached to the lid 130. Cameras may also be capable motion, such as translation into a variety of positions, rotation, tilting along one or several axes, and/or translation. A number of cameras attached to a translatable structure, such as the gantry210. This can be any mechanical device that can be commanded or controlled to move the camera (movement including rotation). The translatable support’s head 160 is an exception to this rule. It is restricted by the track 220, and the translation rail 170 which limit its motion.

You can choose lenses to cover a wide area, such as extreme depth of field, so that both close and distant objects are in focus. Or, you may consider one or more other factors. You can place the cameras to capture additional information about the construction process. Or, you could position the camera so that the user can move it, such as on the underside 130 of the lid 130. This is where opening the CNC machine 100 causes camera to point at user. The single camera mentioned above can capture an image even if the lid isn’t closed. This image could include an object (e.g. a user) that is not within the CNC machine 100. Cameras can be mounted to mobile locations such as the lid 130 or head 160 with the intention to use video or multiple still photos taken while the camera moves to assemble larger images. For example, scanning the camera across material 140 to obtain an image of the entire material 140. This allows for the analysis of data to span multiple images.

“As shown at FIG. 1 can be attached to the lid 130 with a lid camera 110 or multiple lid cameras. As shown in FIG. The lid camera 110 can be attached to the 130’s underside. A lid camera 110 is a camera that has a large field of view 112, which can image the first part of the material 140. This could include a large portion of the material 140, the material bed, or all of the material 140. If the head 160 is located within the scope of the lid camera 110, the lid camera 110 can image it. The lid camera 110 can be mounted on the underside 130 of the lid 130 so that the user is visible when the lid 130 opens. For example, images can be taken of the user loading and unloading material 140 or retrieving a completed project. This allows you to combine a variety of sub-images from different locations. The lid 130 is closed and the lid 110 rotates with it 130, bringing the material 140 into focus.

“Also shown in FIG. A head camera 120 can be attached to the head 160. The lid camera 110 has a wider field of view, so the 120 head camera can take better images of the material 140. The head camera 120 can also be used to photograph the cut in the material 140. The lid camera 110 cannot locate the material 140 as precisely as the head camera 120.

Cameras can also be mounted outside the CNC machine 100 to view users or view external features. To view other users and view features of the CNC 100, cameras can be mounted outside.

Multiple cameras can be used together to view an object or material 140 at multiple angles, resolutions and locations. The lid camera 110, for example, can pinpoint the exact location of a feature on the CNC machine 100. The CNC machine 100 will then instruct the 160-degree head to move to the location to allow the 120-degree head camera to image the feature more clearly.

While the examples are intended to be used with a laser cutter, this application does not require the use of cameras for machine vision. If the CNC machine 100 was a lathe, for example, the lid camera 110 could be mounted near the rotating material 140, 160 and 120. The head camera 120 can also be located close to the cutting tool. The head camera 120 can also be mounted on top of the head 160, which deposits material 140, to form the desired piece.

An image recognition program can detect conditions within the CNC machine’s interior 100 using the image data. Below are the conditions that can be identified. They can include the properties and positions of the material 140, positions of components 100, errors in operation, and more. Instructions for the CNC machine 100 may be created or modified based in part on the image data. For example, the instructions could be used to correct or mitigate an unfavorable condition that was identified in the image data. Instructions can also include changing the output of 160. A CNC machine 100 can be used to cut lasers. The instructions can tell the laser to turn on or reduce power. The updated instructions may include new parameters for motion planning calculation or modifications to an existing motion plan. This could affect the motion of the head 160 and the gantry 220. If the image shows that a cut has been made recently and is not in the desired place, such as due to a piece moving out of alignment or a second operation, the motion plan can be calculated using an equal offset to correct the problem. The instructions for creating the motion plan can be executed by the CNC machine 100. The movable component may be the gantry, 160 or an identifiable mark on 160 in some implementations. For example, the gantry210 can be a movable component that has a fixed spatial relation to the movable heads. Software controlling CNC machine 100 can be updated with image data that shows the position of the movable heads and/or movable components, and/or their positions and/or higher order derivatives.

“Multiple cameras can be placed in the CNC machine 100 to provide required image data. This is because the type of data needed can vary and/or there may be limitations to the field view of each camera. For many uses, the placement and choice of cameras can be optimized. Cameras that are closer to 140 material can be used to capture detail, but with a wider field of view. Multiple cameras may be placed next to each other so that the images from all of them can be combined and analyzed by the computer. This will allow for higher resolution or greater coverage than would be possible for any individual image. Images can be improved and modified in many ways. This includes stitching together images to make a larger image, increasing brightness, diffencing images to isolate any changes (such as moving objects, changing lighting), multiplying and dividing images and rotating them. Scaling and sharpening images is another example. The system can also record additional data, such as ambient light sensor recordings and the location of movable parts, to aid in manipulation and improvement. Stitching is the process of taking sub-images taken from different cameras and merging them to create a larger image. The stitching process can result in some images overlapping. The stitching process may also require other images to be rotated or trimmed to create a seamless, larger image. Any of these methods can reduce or eliminate lighting artifacts like reflections, glare, and the rest. Image analysis programs can also perform noise reduction or elimination of edges on acquired images. Edge detection may include comparing different parts of an image to identify edges or objects. Noise reduction may be achieved by smoothing or averaging one or more images in order to reduce periodic, random or pseudo-random noises. This could be due to vibration fans, motors, and other CNC machines 100 operations.

“FIG. “FIG. For example, images taken by cameras can be used to enhance the brightness of an image. FIG. 4A shows a first image (410), a second 412 and a third 414. The horizontal bands in the first image 410 are shown in white against a black background. Although the horizontal bands may be adapted to brighter objects, the main point is that the backgrounds and bands are different. The second image 412 shows similar horizontal bands but is offset in the vertical direction to the one in the first image. The sum of the first image 410, second image 412 and third image 414 is shown. The bright square is filled in by the interleaved bands. This can be used to create brighter images by combining multiple frames of the camera’s image, even if they are taken in low light.

“FIG. “FIG. Image subtraction can be used to, for instance, distinguish dim laser spots from brighter images. A first image 420 shows two spots. One is a laser spot, the other an object. A second image 422 can also be taken, with the laser removed, leaving the object. To get the third image 424, subtract the second image 422 from the first image. The laser spot is the remaining spot in the 3rd image 424.

“FIG. “FIG. A circle can represent a circle in the first image 430. This is an object that could be found in the CNC machine 100. This could be, for instance, an object on the material sheet 150 of the CNC-machine 100. For example, if half of the material 150 on the CNC machine 100 was illuminated with outside lighting such as a sunbeam or a sunbeam then the second image 420 may look like the one shown. The illuminated side might be brighter than the unilluminated side. Sometimes, it can be beneficial to use internal lighting while in operation. This is to help in image diagnostics or to show the user what is going on in the CNC machine. Even if none are applicable, internal lighting can be used to reduce or eliminate external lighting (in this instance the sunbeam). The third image 434 shows this internal lighting by adding a brightness layer on the entire second image 432. The effect of internal lighting can be isolated by subtracting the second image 432 from 434 to create the fourth image 436. Fourth image 436 depicts the area and object as it would look under internal lighting. This can be used to allow image analysis even when external lighting contaminants are present.

“Machine vision processing can be done at, for instance, the CNC machine 100 on a locally connected PC or on a remote server connected over the internet. The CNC machine 100 can perform image processing in some cases, but at a slower speed. This can happen when the onboard processor can only run simple algorithms in real time, but can run more complex analysis with more time. The CNC machine 100 can pause to allow the analysis to complete or execute the data on a faster connected computer system. One example is when sophisticated recognition is done remotely, such as by an internet server. These cases allow for limited image processing locally and more advanced image processing and analysis remotely. To determine if the lid 130 has been closed, the camera could use a simple algorithm that is run on the CNC machine 100. The CNC machine 100 will detect that the lid 130 has been closed and send images to the remote server to further processing. For example, to locate the material 140 that was added. The system can use dedicated resources to analyze the images locally, pause or divert computing resources from other activities.

“Another implementation allows the tracking of the head 160 by real-time, onboard analysis. Tracking the head 160’s position, for example, is possible with either high resolution or low resolution images. High-resolution images can be converted into smaller images with a reduced memory size through cropping or resizing. Some images may need to be cropped or eliminated if they include video or a sequence. To detect any misalignment, a data processor can scan the smaller images several times per second, for example. The data processor can stop the operation of the CNC machine 100 if a misalignment has been detected. However, more precise processing will pinpoint exactly where the head 160 is using higher resolution images. The head 160 can then be adjusted to correct the location once it has been located. Images can also be uploaded to a server for further processing. You can determine the location by, for instance, looking at the lid camera 160 on the head, or looking at what image 120 is currently showing, etc. The head 160 could, for example, be directed to move towards a registration mark. The head camera 120 will then take a picture of the registration mark in order to detect any misalignment.

“Basic Camera Functionity”

The cameras could be a single wide-angle camera or multiple cameras. They can also include a moving camera that digitally combines the images. Cameras that are used to image large areas of the CNC machine 100’s interior can be distinguished from those that focus on a smaller area. One example is the head camera 160, which can image a smaller area than wide-angle cameras in certain implementations.

There are many camera configurations that can serve different purposes. A camera or cameras with a wide field of view can cover all of the interior of the machine, or just a portion. The image data from one or more cameras can cover most (meaning more than 50%) of the work area. Other embodiments allow for at least 60%, 70% or 80% of the work area to be included in the image data. These amounts do not include obstructions by material 140 or other objects. If a camera can view 90% of a working area with no material 140 and then a piece of material 140 is added to the area, it is still considered that the camera is providing image data that covers 90% of the area. Some implementations allow image data to be obtained even if the interlock is not blocking electromagnetic energy from being emitted.

In other instances, the camera can be mounted outside the machine to see the users 140 and/or material 140, record the use 100 of the CNC machine 100 for analysis or sharing, or detect safety issues such as uncontrolled fires. Other cameras offer a better view but have a smaller field of vision. Optic sensors such as those found on optical mice can provide low resolution and very few colors over a small area. They also process information quickly to detect material 140 relative to the optical sensor. This combination of lower resolution and color depth and specialized computing power allows for very fast and precise operation. If the material is being moved or the head is stationary, such as if it is bumped by the user, the approach can detect the movement and characterize the material very precisely. This allows for additional operations to continue where they left off.

“Video cameras are able to detect changes in time. For example, they can compare frames to determine the speed at which the camera moves. You can capture images with higher resolution and more detail using still cameras. Another method of optical scanning is to place a linear optical scanner (such as a flatbed scanner) on an existing rail like the sliding Gantry 210 in an laser system and scan it over the material 140. The image will then be assembled as it scans.

The laser can be turned off and back on again to isolate the light. The difference between these measurements shows the light scattered from laser and the effect of ambient light. Cameras can be set to a fixed or adjustable level of sensitivity. This allows them to work in bright or dim conditions. You can have multiple cameras that are sensitive at different wavelengths. For example, some cameras can detect wavelengths that correspond to a cutting, range-finding, scanning, or other lasers. Some cameras may be sensitive to wavelengths not specifically covered by the lasers in the CNC machine 100. The cameras can only be sensitive to visible light, but can also have an extended sensitivity into ultraviolet or infrared. This allows them to distinguish between similar materials based upon IR reflectivity and view invisible (e.g. direct infrared laser beams. One photodiode can be used to measure e.g. The flash from the laser striking the material 140 or the reaction to light emissions that seem to correlate with uncontrolled fire. Cameras can be used to photograph, for instance, a beam spot on mirrors, or light that escapes an intended beam path. Also, the cameras can detect scattered light. This is useful for cutting reflective materials. You can also use other types of cameras to detect light not of the same wavelength as the laser. For example, a thermographic camera or infrared radiation can be detected.

The cameras can be linked to the lighting sources of the CNC machine 100. The lighting sources may be placed anywhere on the CNC machine 100. They can be located on the interior of the lid 130, walls, floors, gantry 210 or the floor. An example of coordination between lighting sources and cameras is to adjust the internal LED illumination while taking images of the interior with the cameras. If the camera can only capture images in black and/or white, the LEDs within the camera can be set to illuminate in sequentially red, green and blue. This will allow for three images. These images can be combined to create an RGB full-color image. External lighting may cause shadows and other lighting problems. The internal lighting can then be turned off while you take a photo, and then switched on while you take another one. The ambient light can then be subtracted on a pixel by pixel basis to determine what the image will look like when only internal lighting is used. You can move lighting, such as the CNC machine 100’s translation arm, while taking multiple photos. Then, you can combine the images to create a more even lighting effect. To aid with illumination, the brightness of the internal lights can be adjusted just like a flash on a traditional camera. You can move the lighting to an area that better illuminates an interest. For example, it can shine straight down a cut slot so that a camera can clearly see the bottom. You can turn off the lighting while taking a picture if it is interfering with the image. The lighting can also be turned off for a short time so that the viewer doesn’t notice it (e.g. For less than one second, less that 1/60th of second, or less that 1/120th second. To capture a photograph, the internal lighting can be temporarily brightened to mimic a flash camera. Specialized lights can be used or engaged only when necessary. For example, an invisible UV-fluorescent dye might be found on the material. To illuminate any ink, it might be possible to flash the UV illumination briefly while taking a photograph when scanning for a barcode. To alter the lighting conditions, you can also toggle the range-finding or cutting lasers. This allows you to isolate the signature and/or effects of the objects when imaging. Images can be cropped and translated between acquisitions. Automatic adjustments in the cameras can be disabled or overridden to facilitate this differencing. For example, disabling autofocus, flashes, etc. Aperture, shutter speed, white balance and other features can be kept constant between images. This ensures that the differences between the images are caused only by the differences in lighting, and not by adjustments in the optical system.

Multiple cameras or one camera moving to different places in the CNC machine 100 can take images from different angles and create 3D representations 140 of the surface. 3D representations can also be used to generate 3D models. They can also be used to measure the depth of engravings or laser operations, and provide feedback to the CNC machine 100. It can also be used to scan the material 140 and build a replica of it.

The camera can be used for recording photos and videos that can be shared with others. Automated?making of? Sequences that combine still and video images can be made. A variety of optimizations can be made by having a good understanding of the motion plan or the ability to control the cameras directly via the motion program. One example is a machine that has two cameras. The lid camera is mounted in one camera and the other is mounted in another. This allows the final video to be made with the footage from the head camera. Another example is that the machines’ internal lights can be used to instruct the cameras to reduce the aperture size and decrease the light entering. Another example is when the machine is a laser cutter/engraver, and activating it causes a camera in the head to become overwhelmed and unusable, the footage may be discarded. Another example is when elements of the motion plan can be combined with the camera recording to achieve optimal visual or auditory effect. For example, the motors may be driven in coordinated fashion to sweep the material and the interior lights will be lowered before the cut. Another example is the use of sensor data from the system to select camera images. For example, an image of the user could be captured from a camera attached to the lid when the lid’s accelerometer, gyroscope or other sensor detects that it has been opened and has reached the ideal angle. Another example is when the video recording stops due to an error. For instance, if the lid is opened unintentionally during a machining operation, this could cause it to stop. To speed up or eliminate monotonous events, the video can be automatically edited with information such as the length of the cut file. For example, if the laser has to make 400 holes, that section of cut plan could be displayed at high speed. These decisions are traditionally made after reviewing the footage. There is little to no prior knowledge about what it contains. The advantage of pre-selecting footage and even coordinating its capture can be that it will produce better quality video and take less time editing. You can automatically combine video and images from the production process in many ways, such as interleaving stills with video, stop motion with images and combining photography and computer-generated imagery. A 3D or 2D model is created of the item. You can also enhance video with media from other sources such as photos taken with your camera of the final product.

“Additional features can be added individually or in combination with other features. These are the sections.”

“Real-Time Movement Planner”

“FIG. “FIG.5” is a diagram that illustrates how to determine a safe pause in a motion or execution plan for a CNC-machine consistent with certain implementations of current subject matter. The current CNC machines can be loaded with a machine file in G-code language. The CNC machine’s motion planner calculates the required motions for the actuators (such steppers or servomotors) using the machine file. This motion planner then causes the execution of these motions to occur in realtime, or very close to realtime. Execution of such a motion planning must be fast enough to generate new elements of the plan as quickly and accurately as possible. It will also make adjustments in order to present the next set output data to the actuators as required. Although there might be some buffer for an instantaneous delay in the execution of the motion plan, it is assumed that the motion planner is fast enough coupled to the CNC machine so that no loss of connection is possible between them.

An alternative approach, in which the CNC machine is separated from the motion planner, is possible. This is consistent with the implementations of current subject matter. The CNC machine and one or more processors that implement the motion planner could be connected to each other by a cable, such as a USB cable, or network connections such as the Internet or a wide-area network, or the Internet. This configuration may cause data transmission to be slower or less reliable than usual. Data packets may be lost or delayed, and/or other issues could affect the reliability and timeliness for receiving commands from the CNC machine’s motion planner.

“Use a motion planner on a separate computing device from the CNC machine can pose a number of problems, including handling a connectivity problem between the two machines (CNC) that occurs midway through fabrication operations. This is not possible with conventional methods in which the motion plan is integrated into the CNC. It is almost impossible to have this happen if the motion planner is connected via a network. An interrupted motion plan, if it is embedded in the CNC machine’s motion planner, would cause the work to stop and the immense manual effort needed to restart it. This could lead to the fabrication process not going as planned. The laser could suddenly go off, and re-aligning it to allow it to be restarted is a tedious task that can lead to noticeable flaws.

“Despite these difficulties, it is possible to have a configuration that is consistent with current subject matter and does not require the motion planner to be implemented on the same machine as the CNC machine. The motion planner must be included in CNC machines that include it. This can prove costly, especially for advanced motion plans that calculate second, third and fourth order derivatives of position or forces on the machine. The motion planner may be shared between multiple machines if it is connected to the Internet. Another improvement is possible with one or more current implementations. CNC machines that integrate the motion planer generally have a real-time requirement. They must have sufficient processing power to keep up the machine’s motion. These motion planners may require some compromise between accuracy (performing more calculations per hour) and cost (including a processor that is more expensive to complete those calculations). In another improvement that may be possible with one or more implementations of the current subject matter, using a separate motion planner can allow repurposing of a general-purpose computer, such as a high powered workstation or server in a cloud hosting provider, temporarily for the execution of the machining operation, before returning it to other, non-machining-related tasks.”

“The following describes two examples of approaches that can be used to address challenges in implementing the current subject matter, where the motion planner is separated from the CNC machine.

“In a first approach the motion planner can calculate a motion plan in motion plan segments. Each segment includes instructions for performing a series useful machining operations and instructions to place the CNC machine into a safe pause and resume state. This is also known as the safe pause point. It can optionally include a condition in which a CNC machine’s moveable head is not moving or cutting. Optionally, the safe stop point could be the end of the motion plan. An execution plan or motion segment that is consistent with the implementation of current subject matter may be restricted to the size of a CNC machine buffer. It can then be loaded into the buffer in its entirety. The entire machining operation may be contained in a segment, or a portion thereof and instructions to reach the next safe pause point.

FIG. 5 shows a simple example. 5 shows the features of a machining operation using a laser cutter/engraver in order to engrave letters?v?l 500. These are the operations that are required:

“1) Laser turn on instruction

“2) Downward-right Line 510”

“3) Upward-Right Line 520”

“4) Laser turn off instruction

“5” upward-right line 53″

“6) laser turn on”

“7) Downline 540”

“8” laser turn off

These are inputs to the motion plan. The motion plan, or the output of the motion planning program?is a set of instructions that can be used by motors and actuators to perform their functions. The motion planner would determine the electrical impulses needed to execute these commands and then send them to the machine. The material could be lost if the motion planner is suddenly disconnected from the machine during the upward-right line 522. Although it is possible to ask the machine to continue the motion planning from the downward-right 510, this would mean that the entire plan would be repeated twice. This could cause damage to the material since the laser will revisit the material. Alternately, the motion planner might be instructed to start from the downward line 554 which would result in an incomplete machining operation of 550.

“An interruption in communication between CNC machine and motion plan is unlikely, in the case of a motion planning integrated into the CNCmachine. However, it can happen if the CNC and motion planners are not integrated.”

A segmented file that is consistent with current subject matter implementations can be created by considering the maximum buffer capacity of the CNC, which might in this case hold the electrical impulses required to execute the first six commands. Instead of sending all six commands to a laser, the motion planner could identify a point or points at which execution can be halted and resumed without affecting final output. This would be the area between the line 530 at the upper-right, which is when the laser is off. Therefore, the motion planner can create a segment with all five commands and then send it to the CNC machine. The CNC machine would wait until all five commands are stored in the buffer. The CNC machine would wait until the motion plan for all five commands was stored in its buffer (e.g., until the entire segment was received), then execute the commands within the segment. Normal operation would see the motion planner prepare, and the machine receive another segment. This completes the machining operation before the first one is completed. If the motion planner is slow, such as an underpowered computer or network traffic, or if the second segments are delayed (for example, someone tripping over the cable), the CNC machine will be able to safely pause in a resumable state with the laser off and await further commands. If the entire segment is not received by the previous segment’s end, it may be possible to add more data.

Click here to view the patent on Google Patents.