Three-dimensional printing, also known as additive manufacturing, has become common place in many industrial environments. The technology enables components with complex shapes or features to be created by iteratively printing layers of material. In some instances, three-dimensional printing enables some complex designs to be printed that otherwise would be virtually impossible to form through other methods, such as injection molding, etching, or manual assembly. Three-dimensional printing has become popular to the point that companies are looking at unconventional applications.
One application commercialized by the Applicant of this disclosure is three-dimensional printing of architectural structures. Typically in this application, one or more industrial-scale printers are placed on or around a foundation of a building, home, or other structure to be printed. The structures are formed by iteratively printing concrete layers on top of each other. Each layer has a height that is typically between ½ inch and two inches. A toolpath of the printer is specified by instructions that define, for example, wall shapes. The instructions may also define gaps in the toolpath (where printing is paused while a printing head moves through a specified location) to create windows, doors, or wall features.
Known controllers for commercial three-dimensional printers typically receive a model file that specifies three-dimensional features of the structure to be printed. The model file may be generated, for example, by a three-dimensional modeling program that permits a designer to create a three-dimensional rendering of the structure. These known controllers perform a slice method that breaks the model file into individual printer-readable instructions for each layer (e.g., G-code/M-code). Each instruction defines a toolpath for the printer head (e.g., a printer assembly) to print the respective layer of the structure. As such, each instruction specifies a height corresponding to a height of the concrete layer printed by the print head. The controllers input serially each sliced layer instruction into the three-dimensional printer to deposit the respective layer of the structure.
The known method for printing three-dimensional structures can become problematic if changes occur during the printing process. For example, changes to the structure's design have to be made by first modifying the model file. The controller of the three-dimensional printer then re-slices the model to then serially transmit the instructions to the printer. Even smaller changes have to go through this inefficient process. For instance during printing, an operator may notice that printed concrete is not being extended all the way into a corner. To get the printer head to move a little further into a corner, the operator has to update and re-slice the model file into the printer-readable instructions. The operator then has to select the next instruction for printing. Alternatively, an operator can override the printer instructions and instead manually move the printer head. However, both solutions are problematic for printing structures. Design changes, even for small structural adjustments, are time consuming and can compound to extend a building process by hours or days, thereby costing the structural printer lost time and profits. On the other hand, manual changes may not be adequately made by even skilled operators, or consistently applied for subsequently printed layers.
Improved systems, methods and apparatus are disclosed herein for three-dimensional printing of architectural structures. The example systems, methods, and apparatus are configured to enable real-time or near real-time adjustments to be made to printer-readable instructions (e.g., coded layers) without having to recompile a model file. The systems, methods, and apparatus are configured to apply adjustments to a current instruction for printing. The systems, methods, and apparatus may also apply adjustments to subsequent instructions to ensure printing consistency at increasing heights.
The example systems, methods, and apparatus make adjustments to instructions by receiving an adjustment instruction or otherwise determining that an adjustment was made to an instruction that is being printed. For example, the systems, methods, and apparatus may receive messages that are indicative of manual printer head movement while a layer is being printing. Alternatively, an operator may enter adjustments to a layer being printed via a graphical user interface. Before the next layer is printed, the systems, methods, and apparatus apply, to the next layer, the printing adjustments made to the previous layer. The adjustments include changing toolpath parameters that are defined within the instruction. The toolpath parameters may include a toolpath length, a toolpath start location, a toolpath finish location, a direction along an x and/or y axis, a concrete extrusion rate, and/or specified locations where concrete printing is paused along a toolpath. In some instances, the toolpath parameters may include common printer movement commands specified by a code identifier, such as a G-code number.
In some embodiments, the systems, methods, and apparatus disclosed herein partition a structure into different levels. Each level has a different toolpath such that all layers in one level have the same toolpath. The levels may be defined by height, where a first level may correspond to 0 inches to 24 inches in height from a foundation and a second level may correspond to 24 inches to 40 inches from the foundation. The different levels may be used to define gaps for windows, doors, beams, etc.
In these embodiments, a change to one layer in a level is applied by the systems, methods, and apparatus to remaining layers in the level. However, the systems, methods, and apparatus may be configured to not propagate the adjustments to subsequent levels. Alternatively, the adjustments may be propagated to subsequent levels. The determination to carry over adjustments to other levels may be specified by an operator and/or determined by the systems, methods, and apparatus based on whether the locations of the adjustment are present in subsequent levels. For example, the systems, methods, and apparatus may be configured to propagate an adjustment to wall corners to subsequent levels while adjustments to window or door gaps are not propagated.
In some embodiments, the systems, methods, and apparatus are configured to print a defined number of layers for each level. In other embodiments, the systems, methods, and apparatus are configured to print as many layers as needed to reach a desired end (top) height of a level. These other embodiments may provide compensation for concrete printing, where almost a half-inch of planned height is lost for each foot of printed wall.
As described herein, the systems, methods, and apparatus are configured to generate parameters for instructions that more accurately match dimensions in a model file. In one example, the systems, methods, and apparatus partition a model file into many more instructions each having a height that is a fraction of a height of a printed layer. For example, 100 printed layers (each having a height of 0.5 inches) may be necessary to form a structure. However, 1000 layer instructions (each having a height of 0.05 inches) may be generated by the systems, methods, and apparatus. At any given height, there are approximately ten to fifteen layer instructions that are available for selection. The systems, methods, and apparatus select the layer instruction that most closely matches the model file at the respective height. In this embodiment, the systems, methods, and apparatus may use adjustments made to a previous layer in selecting a closely matching layer. Additionally or alternatively, the systems, methods, and apparatus may average or perform an interpolation of the available layer instructions for determining parameters of a layer instruction for printing.
In some embodiments, the systems, methods, and apparatus are configured to automatically generate a model file for an operator. In these embodiments, the systems, methods, and apparatus provide build planning functions for printing different three-dimensional structures. The building plans may be for residential structures, commercial structures, government structures, garages, storage sheds, warehouses, utility lines, walls, tunnels, launch pads, furniture, and/or landscaping elements. Each of the build planning functions is associated with different configurations of input data and includes global build data for building the respective structure.
The example systems, methods, and apparatus prompt an operator or a designer for input parameters for customizing the building plan. The input parameters are unique for each building plan may include site/location data, code requirements, owner preferences, and builder preferences. The systems, methods, and apparatus use at least one build function of the build planning function, the global build data, and the input parameters to create a build plan (e.g., a model file) having a list of actions for a structural three-dimensional printer. The build plan may include placement once information, placement level information, a parametric build function that specifies a printing action based on pre-specified data, and/or a transform function that specifies toolpath variation based on specified coordinates. The systems, methods, and apparatus then convert the build plan to layer instructions (e.g., G-code) and transmit the instructions serially to a three-dimensional printer.
In some embodiments, the systems, methods, and apparatus disclosed herein determine where to place interior walls (and/or a thickness of interiors walls) as part of the build plan creation. This may include calculating load points for a roof or an upper floor. This may also include calculating a toolpath that enables continuous printing for each layer. This may further include identifying start and stop locations for a toolpath to hid seams. In some instances, the start and stop locations may be specified to be at a door or window, which is easier to hid using wood trim.
In light of the disclosure set forth herein, and without limiting the disclosure in any way, in a first aspect of the present disclosure, which may be combined with any other aspect, or portion thereof, described herein a three-dimensional print control apparatus includes a memory device storing a model file of a building structure to be printed. The model file specifies a three-dimensional representation of the building structure. The apparatus also includes a control processor communicatively coupled to the memory device. The control processor is configured to receive a message that the model file is to be printed by a robotic three-dimensional printer to form the building structure and partition the model file into individual layers. Each layer has a height corresponding to a height of a printed layer by the robotic three-dimensional printer. The control processor is also configured to convert the layers into computerized instructions for the robotic three-dimensional printer. Each of the computerized instructions specifies at least a height specified in a z-dimension and a toolpath having a direction and a length specified in x and y-dimensions. The control processor is further configured to transmit a first computerized instruction for a first layer to the robotic three-dimensional printer causing the robotic three-dimensional printer to print the first layer of a first print level and receive adjustment information that is indicative of an adjustment made by the robotic three-dimensional printer during the printing of the first layer of the first print level. The control processor applies the adjustment information to at least a second computerized instruction for a second layer of the first print level. The control processor is then configured to transmit the second computerized instruction to the robotic three-dimensional printer causing the robotic three-dimensional printer to print the second layer of the first print level including the adjustment made during the printing of the first layer.
In a second aspect of the present disclosure, which may be combined with any other aspect, or portion thereof, described herein, the adjustment information is received from an interface device or from the robotic three-dimensional printer and corresponds to a manual change that causes the robotic three-dimensional printer to deviate from at least some of the first computerized instructions.
In a third aspect of the present disclosure, which may be combined with any other aspect, or portion thereof, described herein, the adjustment information includes a change to at least one of the height of the first level, the toolpath of the first level, or the height of the first layer.
In a fourth aspect of the present disclosure, which may be combined with any other aspect, or portion thereof, described herein, the control processor is configured to apply the adjustment information to remaining computerized instructions for the first print level.
In a fifth aspect of the present disclosure, which may be combined with any other aspect, or portion thereof, described herein, the control processor is configured to apply the adjustment information to remaining computerized instructions for layers that are to be printed on top of the first layer.
In a sixth aspect of the present disclosure, which may be combined with any other aspect, or portion thereof, described herein, the height of each layer is between 0.5 inches and 2 inches for printing concrete and the height of the levels are between 2 inches and fifty feet.
In a seventh aspect of the present disclosure, which may be combined with any other aspect, or portion thereof, described herein, each of the printing levels includes a print start location and a print finish location for the layers of the respective printing level.
In an eighth aspect of the present disclosure, which may be combined with any other aspect, or portion thereof, described herein, at least one of the printing levels includes a print start pause location and a print finish pause location for the layers of the respective printing level.
In a ninth aspect of the present disclosure, which may be combined with any other aspect, or portion thereof, described herein, the first computerized instructions and the second computerized instructions include G-code for a toolpath of the robotic three-dimensional printer.
In a tenth aspect of the present disclosure, which may be combined with any other aspect, or portion thereof, described herein, the model file includes at least one of a two-dimensional or a three-dimensional digital representation of the building structure.
In an eleventh aspect of the present disclosure, which may be combined with any other aspect, or portion thereof, described herein, the building structure includes at least one of a residential structure, a commercial structure, a government structure, a garage, a storage shed, a warehouse, utility lines, a wall, a tunnel, a launch pad, furniture, or a landscaping element.
In a twelfth aspect of the present disclosure, which may be combined with any other aspect, or portion thereof, described herein, the control processor partitions the model file by creating two-dimensional cross-sections at different heights of the building structure.
In a thirteenth aspect of the present disclosure, which may be combined with any other aspect, or portion thereof, described herein, a model generation method for printing three-dimensional structures, includes receiving, in a build processor, a selection of a build planning function, among a plurality of build planning functions stored in a memory device, for printing a three-dimensional structure related to the selected build planning function. The method also includes determining, via the build processor, global build data associated with the selected build planning function and prompting, via the build processor on a user interface, a user to provide input parameters including site/location data, code requirements, owner preferences, and builder preferences. The method further includes using, via the build processor, at least one build function of the build planning function, the global build data, and the input parameters to create a build plan having a list of actions for a robotic three-dimensional printer and transmitting at least some of the build plan as G-code to the robotic three-dimensional printer for printing the three-dimensional structure.
In a fourteenth aspect of the present disclosure, which may be combined with any other aspect, or portion thereof, described herein, the build plan includes placement once information, placement level information, a parametric build function that specifies a printing action based on pre-specified data, or a transform function that specifies toolpath variation based on specified coordinates.
In a fifteenth aspect of the present disclosure, which may be combined with any other aspect, or portion thereof, described herein, the plurality of build planning functions includes build planning functions for at least one of a residential structure, a commercial structure, a government structure, a garage, a storage shed, a warehouse, utility lines, a wall, a tunnel, a launch pad, furniture, or a landscaping element.
In a sixteenth aspect of the present disclosure, which may be combined with any other aspect, or portion thereof, described herein, each of the plurality of build planning functions are associated with different configurations of input data.
In a seventeenth aspect of the present disclosure, which may be combined with any other aspect, or portion thereof, described herein, the global build data includes at least one of standard international building code data, climate zone data, historical weather, data, or seismic zone data.
In an eighteenth aspect of the present disclosure, which may be combined with any other aspect, or portion thereof, described herein, the prompting includes providing, via the building processor, a selection of a template from a plurality of templates, each template including a data structure having variable parameter references provided by the user to specify the respective parameter.
In a nineteenth aspect of the present disclosure, which may be combined with any other aspect, or portion thereof, described herein, the plurality of templates includes one or more templates for each of the site/location data, the code requirements, the owner preferences, and the builder preferences.
In a twentieth aspect of the present disclosure, which may be combined with any other aspect, or portion thereof, described herein, the build plan includes a transfer function that changes a toolpath based on at least one of a timestamp when the printing is performed, live data from an Internet feed, or a locally-connected sensor.
In a twenty-first aspect, any of the features, functionality and alternatives described in connection with any one or more of
In light of the present disclosure and the above aspects, it is therefore an advantage of the present disclosure to provide a three-dimensional printing system in which printing adjustments are applied directly to printer readable instructions (e.g., G-code) rather than updating a build model.
It is another advantage of the present disclosure to use build planning functions to automatically create a model and/or printer instructions using input from a builder or an owner.
Additional features and advantages are described in, and will be apparent from, the following Detailed Description and the Figures. The features and advantages described herein are not all-inclusive and, in particular, many additional features and advantages will be apparent to one of ordinary skill in the art in view of the figures and description. Also, any particular embodiment does not have to have all of the advantages listed herein and it is expressly contemplated to claim individual advantageous embodiments separately. Moreover, it should be noted that the language used in the specification has been selected principally for readability and instructional purposes, and not to limit the scope of the inventive subject matter.
An example system, method, and apparatus for printing three-dimensional architectural structures are disclosed herein. The example system, method, and apparatus are configured to receive real-time or near real-time adjustments made during printing. The adjustments are applied by the system, method, and apparatus directly to printer-readable instructions (e.g., G-code or M-code) without having to recompile a source model file. By applying the adjustments directly to layer instructions, the example system, method, and apparatus make the printing of architectural structures more efficient.
Known three-dimensional printers operate based off of a three-dimensional model file. As disclosed herein, the three-dimensional model file defines dimensions of a structure to enable rendering in a modeling program. During printing, the three-dimensional model file is sliced into individual layer instructions specified by G-code, M-code, or similar printer-readable instructions. The slicing converts a three-dimensional structure into an array of two-dimensional slices at different heights, similar to individual slices of a computed tomography (“CT”) scan. In some instances, the three-dimensional structure is first sliced into an array of two-dimensional structures, which are then converted into printer-readable instructions, such as G-code. Each of the layers has a height between 0.25 and 2 inches, preferably around 0.5 inches. The height of each layer corresponds to a concrete height deposited by a print head or nozzle during the printing of a single line or thread. Typically, this slicing process is time intensive because 50 to 250 different layers have to be generated from the three-dimensional model file. Common slicing times can range between five minutes to thirty minutes.
As one can appreciate, printing an architectural structure is an inexact science. Oftentimes, wet concrete properties slightly change the dimensions of the printed structure. Further, small gaps in a model may yield noticeable gaps in a structure. Regardless of the deviations, operators of industrial three-dimensional printers oftentime make manual correcting adjustments during the printing process. Anytime a correction is made, the changed dimensions of the structure have to be updated in the original three-dimensional model file. This requires an operator to open the three-dimensional model file in a modeling program, make the changes, and then cause the amended three-dimensional model file to be re-sliced into the layer instructions. While time consuming, this process ensures that manual printing changes are reflected in subsequently printed layers. A drawback to this process, however, is that the time to print a structure could be extended by hours to days if a significant number of manual adjustments are made.
The system, method, and apparatus solve the above-issue with known three-dimensional printing systems by instead applying adjustments directly to subsequent layer instructions. The system, method, and apparatus are configured to receive from an operator an indication of the adjustments, such as changes to linear interpolation, circular interpolation, dwell, plane selection, extrusion rate, etc. Alternatively, the system, method, and apparatus detect manual adjustments made to the printer, which are then applied to the subsequent layers.
Reference is made herein to layer instructions and toolpath parameters. As disclosed herein, layer instructions refer to printer-readable code that specifies how a printer is to deposit a thread of concrete. A layer instruction may be specified in G-code, M-code, or another other machine language for commanding three-dimensional printers. The layer instructions (e.g., coded layers) are defined by parameters, which includes codes and variables. The parameters define, for example, the operations to be performed by a three-dimensional printer. As disclosed above, the parameters may define linear interpolation, circular interpolation, dwell, plane selection, deposition rate, a toolpath length, a toolpath start location, a toolpath finish location, a, direction along an x and/or y axis, and/or specified locations where concrete printing is paused along a toolpath. Parameters may also be specified by functions. For example, curvature of a wall may be defined, in part, by a random function. During printing, a printer controller generates a random value from the function, which is then applied to a parameter of a layer instruction. A single layer may include many different printer operations, such as to define wall curvature, door/window openings, etc. In some embodiments, a layer instruction may include a series of coded instructions and parameters for continuously printing a single layer through the different structural features.
Reference is also made herein to architectural structures and concrete. An architectural structure may include any building or building feature that can be three-dimensionally printed. For example, an architectural structure can include a residential structure, a commercial structure, a government structure, a garage, a storage shed, or a warehouse. An architectural structure may also include utility lines, walls, tunnels, launch pads, furniture, or landscaping elements.
As disclosed herein, concrete is printed to form the architectural structures. However, it should be appreciated that other substances could be printed including nylon, thermoplastic, copper, bronze, stainless steel, rubber, cement, mortar, etc. In some embodiments, the system, method, and apparatus disclosed herein are configured to print an architectural structure using two or more materials, where separate layers may be printed using different materials. For example, a metal or thermoplastic may be printed as a top layer on a concrete wall.
As shown in
Referring
Referring again to
Also, as shown in
During operation, the driver 42 of each lateral actuation assembly 40 is selectively actuated to rotate a corresponding shaft. Due to the engagement between the shafts and the rail assemblies 20, the rotation of shafts 41 about corresponding axes causes traversal of each vertical support assembly 60 axially along the corresponding rail assembly 20 with respect to the axis 12. Accordingly, the actuation of the drivers 42 causes movement or translation of the gantry 50 along the axis 12 relative to the foundation 4.
As shown in
Referring still to
In an embodiment, a driver 87 for the trolley bridge assembly 80 includes an electric motor (e.g., a servo motor) that is configured to rotate a threaded rod in either a clockwise or counterclockwise direction about a central or longitudinal axis. During operations, the driver 87 selectively rotates the threaded rod so that the threaded rod causes the girders 82′, 82″ to translate axially between ends of the assembly 80 (and the axis 16). Accordingly, the actuation of the driver 87 is configured to translate the trolley bridge assembly 80 and printing assembly 100 along the axis 16 during operations. The threaded rods may include a lower end mounted to the lower girder 62 via a mounting plate, and a second or upper end cooperatively engaged within the driver 87 that is mounted to the upper girder 64 via a mounting plate 89.
As shown in
The printing assembly 100 (e.g., a print head or nozzle) includes a supply conduit, a hopper, a pump assembly, and an outflow conduit. The supply conduit is configured to deliver an extrudable building material (e.g., a cement mixture) from a source, which may comprise any suitable tank or vessel that is configured to contain a volume of extrudable building material therein. For example, in some embodiments, the source may comprise a tank, a cement mixer (e.g., such as that found on a stand-alone cement mixer or on a cement truck), or other suitable container. The source may be disposed immediately adjacent the foundation 4 and the gantry 50, or may be relatively remote from the foundation 4 and the gantry 50.
The conduit comprises a hose and an outlet that is disposed above the hopper so that cement emitted from outlet is provided into hopper during operations. The hopper includes a plurality of converging walls that converge toward one another from an upper end to an extrusion end. As a result, extrudable building materials that is emitted into to hopper (e.g., from the outlet of the supply conduit) is funneled or channeled toward the lower end by the converging walls under the force of gravity.
A pump assembly is coupled to a lower end of the hopper and includes a pump housing 104 and a driver. While not specifically shown, the driver may comprise any suitable driver or prime mover. In this embodiment, the driver comprises an electric motor that is configured to rotate a screw within the pump housing to advance extrudable building material within the housing into the outflow conduit of the printing assembly 100. In an example, the driver rotates the screw such that the helical blades (not specifically shown) engage with and advance a building material within the pump housing toward the outflow conduit. Thereafter, the extrudable building material flows through the outflow conduit and out of an outlet of the printing assembly 100 so that is may be deposited at a desired location along the foundation 4 (or on previously deposited or printed building material).
Referring again to
The actuation of drivers may be monitored and controlled by a controller 209, which may comprise any suitable device or assembly that is capable of receiving an electrical or informational signal and transmitting various electrical, mechanical, or informational signals to other devices. In particular, in this example, the controller 209 includes a processor 204 and a memory 205. The processor 204 (e.g., microprocessor, central processing unit, or collection of such processor devices, etc.) executes machine readable instructions stored on the memory 205 to enable the processor 204 to perform the functionality described herein. The memory 205 may comprise volatile storage (e.g., random access memory), non-volatile storage (e.g., flash storage, read only memory, etc.), or combinations of both volatile and non-volatile storage. Data consumed or produced by the machine readable instructions can also be stored on the memory 205. A suitable power source may also be included within or coupled to the controller 209 to provide electrical power to the components within controller 209 (e.g., the processor 204, the memory 205, etc.). The power source may comprise any suitable source of electrical power such as, for example, a battery, capacitor, a converter or a local power grid, etc.
The controller 209 may be coupled to each of the drivers via a plurality of communication paths, which may comprise any suitable wired (e.g., conductive wires, fiber optic cables, etc.) or wireless connection (e.g., Wi-Fi, Bluetooth®, near field communication, radio frequency communication, infrared communication, etc.). In this embodiment, communications paths comprise conductive wires that are configured to transmit power and/or communication signals during operations.
During operation, the controller 209 selectively actuates drivers to controllably maneuver the printing assembly 100 along each of the axes 12, 14, 16, as previously described. Additionally, the controller 209 also actuates a pump assembly and pump to controllably emit extrudable building material from the outlet of an outflow conduit, as previously described. Specifically, the controller 209 selectively maneuvers the printing assembly 100 along the axes 12, 14, 16 and emits building material from an outlet per machine readable instructions (e.g., software or G-code) that is stored on the memory 205 and executed by the processor 204. It should be appreciated that by executing the machine readable instructions, layers of cement are deposited on the foundation 4 such that a structure (e.g., the structure 5) is formed or printed vertically from the foundation upward via the three-dimensional printing system 10. As shown in
As disclosed above in connection with
In the illustrated example, the controller 209 causes the three-dimensional printing system 10 to extrude concrete along a toolpath 255 that is defined by the printer-readable instructions (e.g., a coded layer). Bolded areas shown along the toolpath 255 represent areas 256 where concrete has already been extruded for the present layer. Point 258 represents a start of the toolpath 255.
As shown in
The interface device 260 may include a software application 262 that is configured to provide a graphical interface for controlling the three-dimensional printing system 10. The graphical interface may accept manual adjustments for printing the structure 5. The graphical interface may also display a status of the three-dimensional printing system 10 and/or a rendering of the structure 5 to be formed.
The graphical interface 300 further includes a control section 306. As shown in
In this example, adjustments entered by an operator into the graphical interface 300 are transmitted to the controller 209, which converts the adjustments into printer-readable instructions, such as G-code. The example controller 209 is also configured to store the adjustments to the memory 205. As described herein, the processor 204 of the controller 209 applies the adjustments to one or more subsequent layers (specified by the corresponding instructions 253) so that the manual adjustments are automatically propagated instead of having to regenerate and re-slice the model file 252.
In instances where the gantry 50 and/or the printer assembly 100 are manually moved (via hand controls on the three-dimensional printing system 10), the controller 209 receives position feedback from the motor drivers. The processor 204 of the controller 209 determines how the position feedback corresponds to deviations in the current print instructions, and stores to the memory 205 the deviations as adjustments. The processor 204 then applies the adjustments to subsequent layer instructions.
As shown in
It should be appreciated that the fields are only exemplary and the instructions 253 may include fewer or additional fields. For example, fields for a radius of curvature may be specified in instances where curved walls or other features are to be printed. In other embodiments, each instruction 253 may include sub-instructions or code for each significant movement of the printer assembly 100 in the gantry 50.
The example instructions 253 are stored in a serial manner, where a first instruction 253a1 is executed first by the processor 204 of the controller 209. After a layer corresponding to the first instruction 253a1 has been printed, the processor 204 executes a second, next instruction 253a2. Before printing of the second layer begins, the second instruction 253a2 instructs the gantry 50 to be raised to a subsequent height, such as by ½ inch, and returned to the start location. The processor 204 continues until the last instruction 253mn has been executed.
As discussed above, the controller 209 is configured to apply adjustments to subsequent layers. In an example, the processor 204 may be executing instruction 253b1, which corresponds to a mid-height level of a structure. The processor 204 receives information indicative that a manual adjustment of the gantry 50 has occurred. In this example, the manual adjustment may include moving the gantry 50 an extra three inches along the axis 14 starting at coordinate (a60, b17) before making a right turn. The processor 204 adds to the next instruction (i.e., instruction 253b2) the three inches to the toolpath at the identified location before a sub-instruction to turn right. Accordingly, when the instruction 253b2 (with the adjustment) is executed, the processor 204 causes the three-dimensional printing system 10 to automatically incorporate the adjustment.
In some embodiments, the processor 204 is configured to apply the adjustment to all subsequent layers corresponding to instructions 253b2 to 253mn. In other examples, the adjustment may be applied only to the next layer or to all layers of the same level. An operator may provide an input, via the interface device 260 as to how the adjustment is to be applied. In other instances, the processor 204 applies the adjustment to all subsequent layers unless a subsequent level or layer has a different structural feature at a location at or adjacent to where the adjustment occurred.
As shown in
In some embodiments, the processor 204 is configured to generate significantly more instructions 253 than layers to be printed. The instructions 253 may specify a height of 0.10 or 0.05 of an inch rather than a more typical 0.5 or 1 inch. In other words, the instructions 253 are provided at a higher resolution than is capable of being extruded by the printer assembly 100. During printing, the processor 204 may have five to fifteen instructions 253 available to select for a subsequent layer. The processor 204 may select an instruction 253 that most closely matches the previous instruction. The match may be made by comparing, for example toolpath distances and locations of turns. If adjustments are made to the subsequent instruction, the processor 204 may be configured to perform the comparison taking into account the adjustment.
Additionally or alternatively, the processor 204 is configured to perform a transformation and/or interpolation between layers. For example, to print certain wall features, such as a curve, the processor 204 may perform an interpolation between instructions 253 to ensure a curvature between layers is smooth and/or consistent. In another example, the instructions 253 may specify the printer assembly 100 movement based on a randomization function or other transformation. The processor 204 is configured to smooth, with a filter or via comparison, the randomization to provide a more flowing or less abrupt changes between layers (as specified by the corresponding instructions 253) to achieve a desired aesthetic appearance.
The example procedure 300 begins when the processor 204 of the controller 209 receives a model file 252 for a building or other architectural structure (block 302). The model file 252 may be received from a CAD program and/or input via the interface device 260. The processor 204 next receives a message 303 to print a structure specified by the model file (block 304). The message 303 may be received via the application 262 of the interface device 260.
After receiving the message 303, the processor 204 partitions or slices the three-dimensional model specified by the model file 252 into two-dimensional cross sections (e.g., layers) at different heights (block 306). In some embodiments, each cross-section may have a height between 0.25 inches and 2 inches based on a thread height of the concrete to be printed. In some embodiments, the processor 204 may slice the three-dimensional model into many different cross-sections to provide greater resolution.
In embodiments where levels are used, the processor 204 arranges or groups the two-dimensional cross-sections by level (block 308). As discussed above in connection with
To convert two-dimensional cross-sections into printer instructions, the processor 204 is configured to operate an optimization routine that determines a toolpath that provides for a continuous or near-continuous extrusion of concrete. The routine identifies a start point and an end point that are located at window headers, door headers, or other locations where seams can be hidden. The routine also identifies movement of the gantry 50 along the axes 12 and 14 such that all identified structural features are traced without any backtracking or thread bridging. The routine may also determine wall infill dimensions to provide appropriate structural support. The processor 204 converts the determined toolpath and the related printing parameters into printer-readable instructions (e.g., G-code).
The example procedure 300 of
However, if there is a next layer or level, the processor 204 determines if information 315 indicative of an adjustment to the previous layer has been received (block 316). As discussed above, in connection with
If there is no information 315 indicative of an adjustment, the processor 204 returns to block 312 and selects the next printer instruction 253 (or driver signal 254) for transmitting to the three-dimensional printing system 10. If there is information 315 indicative of an adjustment, the processor 204 applies the adjustment to at least the next instruction 253 (block 318). The processor 204 applies the adjustment by identifying a location in a specified toolpath where the adjustment occurred. The processor 204 then adjusts toolpath direction and/or distance based on the adjustment. For example, the processor 204 may extend a toolpath and/or change a direction along the axes 12 and 14 in which the gantry 50 is to be moved. After the adjustment is applied, the processor 204 returns to block 312 and selects the next printer instruction 253 (or driver signal 254) for transmitting to the three-dimensional printing system 10.
In this embodiment, the processor 204 receives information 315 indicative that the toolpath did not fully extend into the corner but stopped four inches short. Before a next layer 348 is printed, the processor 204 adjusts an instruction 253 for the next layer 348 by shortening the toolpath in a similar manner. Accordingly, the adjusted instruction 253 will cause the printer assembly 100 to stop four inches shorter at the location 344 to accommodate the extension of the wall or structure 346. The processor 204 may apply the adjustment to subsequent layers that are part of the same level or for all subsequent levels that include layers that are to be printed into the same corner of the structure 5. As one can appreciate, the example processor 204 applies manual changes to the three-dimensional printing of the structure 5 in real-time without having to edit the original model file 252 or re-slice two-dimensional cross sections, thereby saving construction time.
Returning to
As discussed above, a model file 252 may be used for creating printer instructions to enable three-dimensional printing of a structure. Alternatively, as discussed below, the printer instructions may be generated from a build plan. The model file 252 is a relatively complex three-dimensional rendering of a structure that specifies in detail where certain structure features are to be located including walls, windows, doors, wall recessed sections, ceiling support sections, etc. The model file 252 also defines room dimensions, wall curvature, and other building aesthetic features that can be printed using concrete.
Typically, most model files are relatively time consuming to create. Typically, an architect or a construction project manager has to create a model file based on discussions with the owner of the structure to be created. Oftentimes, model files are not created for smaller residential and commercial structures because the effort is not worth it to a builder. However, model files are still required for three-dimensional printing, even for smaller structures. As a result, the time to manually create a model file may significantly impact the cost for printing smaller residential and commercial structures.
The systems, methods, and apparatus disclosed herein overcome at least some of the issues regarding model file creation by automatically generating model files from structural templates (e.g., build planning functions) that are configured to receive modifications from an owner or a builder. Potential design choices are designed into the build planning functions, which enable an owner or builder to customize a structure by, for example, adding rooms, modifying door and window openings, changing a scale of various structural features, etc. The build planning functions are also configured to accept different site/location requirements and/or code requirements. This design flexibility enables model files to be created and reused across multiple jurisdictional locations and climatic zones. The example systems, methods, and apparatus, are configured to use algorithms or routines that generate a build plan from a build planning function, which takes into consideration local building codes, structural loads, and thermal attributes of the building environment. The systems, methods, and apparatus disclosed herein generate a model file based on the build plan to enable three-dimensional printing of the structure.
It should be appreciated that with the generative framework, thousands of unique building plans can be created from just a few dozen abstract architectural models (e.g., build planning functions). The generated model file not only provides instructions for printing. The model file may also include building requirements and directions for use by operators and construction personnel at a build site. The disclosed process provides a full audit trail of actions taken during the model file creation process and the build process.
As shown in
The user interface 490 also includes a variable (parameter) section 493, which shows variables of the rectangle plan function that may be edited by a user. The variable section 493 includes variables for x, y, and z coordinates of the rectangle, an angle of rotation, a printing height, a length, a width, and cite details. In some instances, the cite details may include inputs for global build data including climatic information, seismic information, building code information, etc. For example, selection of a cold weather input may increase a minimum wall thickness to accommodate the inclusion of insulation in an infill region.
The example user interface 490 provides a graphical representation of the build planning functions, which enable relatively easy modification by a builder or an owner. The user interface 490 also enables a builder or other user to enter site specific information that impacts certain minimum (or maximum) thresholds for the structure. Returning to
The example procedure 600 begins when the processor 204 and/or the interface device 260 display a prompt for a user to select a build planning function 404 (block 602). The device 260 or the controller 209 may provide a prompt that lists all available build planning functions 404 (e.g., templates) for selection. In the example, the interface device 260 or the controller 209 receives a message 603 that is indicative of a selection of a build planning function 404 from among a plurality of build planning functions stored in the memory device 402 (block 604). The processor 204 and/or the interface device 260 then determine global build data that corresponds to the selected build planning function 404 (block 606). Further, the processor 204 and/or the interface device 260 prompt or otherwise receive input parameter values 607 that are related to the build planning function 404 and/or the global build data (block 608).
As shown in
In some embodiments, the build planning functions 404 comprise dynamic template parameters that include a data structure of acceptable parameter value ranges with a specification or template-specific parameters. The dynamic template parameters may be part of a data structure that complies with an interface required by one or more build planning functions 404, where some of the data in the interface is represented as a variable reference instead of an actual value. To generate the actual desired input data in the specified interface of the processor 204 and/or the interface device 260, the build planning function 404 may first apply a set of template parameters to the template, replacing variable references with the parameter data supplied by a user or via user selection of other variable parameters. Template specification types can exist independently of the build planning functions 404. Specifications could be defined for residential homes, dome-based abstract structures, types of furniture (e.g. a picnic table, a chair, etc.), launch pads, archways, etc. The specifications can then be used by one or more build planning functions 404, thereby enabling a shared library of a specific type of template (e.g., floor plans) to be provided as a pool of available choices for more than one build planning function 404.
In an example for a residential home, there may exist one or more build planning functions 404 designed to output build plans for residential homes. One way those build planning functions 404 could accommodate multiple floor plans would be to specify one or more “floor plans” for one-story residential homes and two-story homes, which may require a “floor plan” dynamic template parameter. Valid inputs to satisfy this requirement may include a floor plan template with optional variable references for parameters needed, and a set of parameter data required to replace those variable references. The floor plan templates could exist in a library of available floor plans in the memory device 402. In this manner, a build plan 420 for a home could be generated by supplying one of the build planning functions 404 that is configured to output a build plan 420 from a floor plan template with the selected floor plan template and the parameter selections required to populate the template.
As shown in
Returning to
A build plan 420 includes a list of actions, each of which has a placement specification. Placements of type “once” corresponds to actions that need to happen one time, at a specified height (with allowed tolerance for placing above/below a specified height), with optional XY coordinates or a vector path on the XY plane where the action is to occur. Placements of type “level” correspond to actions that occur continuously from one height to another. The level information is described in more detail in connection to
Build actions may further include a transform function to enable variation based on X, Y, and Z coordinates along the axes 12, 14, and 16 of
As disclosed above, a build plan 420 and/or a model file 252 may be used to generate printer instructions 253.
Referring to
Referring to
Additionally in this embodiment, the structure 500 includes a plurality of curved walls (e.g., such as two of the exterior walls 502 on the structure 500). To represent these curved walls within the line diagram 510, the straight portions of the walls 502 are drawn as straight line segments that end in points 514 situated at the start of the curved section or portion. Next, a focal point 518 is fixed to thereby define the radius of curvature for the curved section of the wall 502, and a curved line segment 519 is drawn along that defined curvature between the two points 514 of the adjoining straight wall portions (which are represented by line segments 512 as previously described). As a result, the line diagram 510 represents a curved wall segment as a discrete curved line segment 519 (with a designated focal point or center of curvature 518) that joins or intersects with two adjoining straight line segments 512 at a pair of points 514, which thereby simplifies the geometric representation of the relatively complex curved portions of the exterior walls 502 of the structure 500.
Without being limited to this or any other embodiment, by first defining a line diagram 510 to define the wall segments, window, doors, etc. of the structure 500, the nominal placement (e.g., the centerline placement) and length of each of the walls, windows, doors, etc. of the structure 500 may be defined. In some embodiments, the line diagram 510 is derived (e.g., wholly or partially) by the controller 209 and/or the interface device 260. As a result, the variables, including the length of walls, the starting and ending points of walls, the curvature (for curved wall portions) of the walls, the wall centerline location, the points of intersection between walls, etc. that are determined from the line diagram 510 may be captured and stored by the controller 209 and/or the interface device 260 in the memory 402 of
Referring now to
Referring still to
As a result of the shell diagram 520, the foot print and perimeter of the structure 500 is defined. In addition, the width of the windows 506 and door frames 508 is also defined along with the internal area (e.g., square footage) of the structure 500 and any rooms defined therein. In some embodiments, the shell diagram 520 may be derived (e.g., wholly or partially) by the controller 209 and/or the interface device 260. In addition, a multi-story structure may be represented by a plurality of shell diagrams (e.g., like the shell diagram 520), where each story or level of the structure may have its own corresponding shell diagram. In addition, in some embodiments, multiple shell diagrams 520 may be generated for a given story of a structure (e.g., so as to represent different vertical sections or levels of the given story).
Referring now to
The infill 531 generated within the infill diagram 530 may comprise a plurality of ribs 532 that extend perpendicularly between opposing sides (or walls) of the border 522, and a plurality of lattice lines 534 (or more simply lattice 534) extending within the borders 522 along the walls (e.g., along the directions of the line segments from line diagram 510) between ribs 532 and/or end cap ribs 533. While end-cap ribs 533 are formed as portions of the border 522 as previously described, the end cap ribs 533 are represented in the infill diagram of
The cores 540 (which are defined by the ribs 532 and portions of the border 522, including the end-cap ribs 533 as previously described) may be substantially hollow regions within the walls 502, 504 that are formed by a plurality of vertically aligned ribs 532, and the borders 522 (including the end cap ribs 533) during the construction of the structure 500. In some embodiments, following the construction (e.g., printing) of the structure 500, the completed cores 540 are filled with a plurality of elongate steel members (e.g., rebar), insulation, and/or a cement mixture. Without being limited to this or any other embodiment, the filled cores 540 may serve as vertical support columns within the structure 500, thereby enhancing the structural integrity of the structure 500.
In this embodiment, if two or more cores 540 are immediately adjacent one another within a wall or combined wall border 522, as depicted within the shell diagram 520, the two or more cores 540 may be merged into a single core 540. In some embodiments, if two or more cores 540 would be disposed within a certain distance X, which may be 1-10 inches along a given wall (e.g., the wall 502, 504) in some embodiments, the two or more cores 540 are merged into a single core 540. For example, the cores 540 that would be disposed at the intersection of multiple walls 502, 504 are merged into a single core 540. As another example, the cores 540 that are to be disposed at the ends of a relative short wall segment may be merged (e.g., if the distance between the two cores 540 is within distance X, as previously described).
In this embodiment, the cores 540 are generally polygonal in shape. However, other non-polygonal shapes may be utilized in other embodiments. More specifically, many of the cores 540 within the structure 500 may be rectangular and thus are defined by two ribs (e.g., either the ribs 532 or a combination of the ribs 532 and the end cap ribs 533) and some portion of the corresponding border 522 (e.g., other than end-cap ribs 533). Additionally, some of the cores 540, such as merged cores 540 at the intersection of multiple walls 502, 504 may be formed by more than two ribs 532, 533 in addition to the portions of the corresponding border 522 (again other than end-cap ribs 533).
Referring still to
Referring again to
As shown in
Without being limited to this or any other embodiment, by defining the infill 531 within the infill diagram 530, including the variable infill 536 and the fixed infill 538, the positioning of the infill 531 throughout the structure 500 may be determined. As a result, as layers of extrudable building material are deposited via a printing operation to form the structure 500, the infill 531 from the various layers may be properly aligned throughout the vertical height of the structure 500. In some embodiments, the infill diagram 530 may be derived (e.g., wholly or partially) by the controller 209 and/or the interface device 260.
Referring now to
Referring briefly to
Referring now to
Referring now to
Thus, the construction of each level 551, 553, 555, 557 via a three-dimensional printing operation may be described or represented as a repeatable set of lateral printing assembly movements (e.g., via printing assembly 100) relative to the foundation 4 that are separated by an incrementally increasing vertical height (e.g., the height of each extruded layer of building material). Accordingly, the construction of the structure 500 may then be described or represented as a finite set of lateral printing assembly movements that are each repeated a predetermined number of times, with an incrementally increasing vertical height at each repetition, where each specific lateral printing assembly movement is associated with one of the levels 551, 553, 555, 557. The specific lateral printing movement associated with a given level 551, 553, 555, 557 may also be represented as a set of instructions (e.g., printer-readable instructions) that are executed by a processor (e.g., processor 204) of a controller (e.g., controller 209 or other computing device) associated with the system 10 used to construct the structure 500. Each of the specific levels 551, 553, 555, 557 of the structure 500 is described with more specificity below with reference to
Specifically, referring first to
Referring now to
Referring now to
In this embodiment, the headers 554 comprise elongate members that are inserted immediately above a window 506 or door frame 508 to distribute weight around the edges or sides of the windows 506 and door frames 508. During construction of the structure 500, the headers 554 are manually inserted (e.g., by a worker) before, during, or after the printing or forming of the second level 553 by the corresponding three-dimensional printing system 10 disclosed herein. The headers 554 may comprise any suitable material, such as, for example steel, wood, concrete (e.g., such as a concrete plank or board). As shown in
Finally referring to
Referring again to
Next, the three-dimensional printing system 10 may be directed by the instructions 253 to print a predetermined number of vertically stacked layers 552 of the third level 555 atop the previously printed layers of second level 553. The third level 555 includes the headers 554, as previously described above. In some embodiments, the headers 554 may be placed in their positions atop the second level 553 prior to initiating construction (e.g., printing) operations of the third level 555. In other embodiments, the headers 554 may be placed simultaneously or concurrently with printing the third level 555. In still other embodiments, the headers 554 may be placed in their respective positions after the layers 552 of the third level 555 have been printed.
Regardless of the precise order or method used to place headers 554 within the third level 555, once the third level 555 (including the headers 554) is printed, the three-dimensional printing system 10 is directed by instructions to print a predetermined number of vertically stacked layers 552 of the fourth level 557 atop the third level 553 and the headers 554. Following the printing of fourth level 557, a roof or other top covering (not shown) may be constructed atop the fourth level 557 to complete the structure 500. In some embodiments, the roof may be constructed atop the fourth level 557 after all of the levels 551, 553, 555, 557 have fully dried and cured (which may take one or several days or possibly weeks). In other embodiments, the roof may be constructed or installed atop the fourth level 557 once levels 551, 553, 555, 557 are partially (but not completely) dried and/or cured.
Accordingly, the structure 500 is constructed via a three-dimensional printing operation, by reducing the structure down to finite sets of repeatable printing instructions 253 or plans. These sets of instructions 253 may be executed by the controller 209 to print or build the structure 500 layer by layer 552, and level by level (e.g., levels 551, 553, 555, 557). It should be appreciated that during the printing operations described above, no forms or molds are included to contain or channel the deposited or printed extrudable building material. The extruable building material may be configured to stiffen relatively quickly after being deposited by the printing assembly 100 either on the top surface 4a of the foundation 4 or on a previously printed layer 552. However, in some embodiments, the building material does not stiffen so quickly so as not to adequately bind to the next adjacent vertical layers 552 that are subsequently deposited thereon.
Referring still to
Referring now to
Referring first to
The first toolpath 572 of the printing assembly 570 may include a plurality of movements. For example, in this embodiment, toolpath 572 defines movement of the printing assembly 570 along the borders 522 of the walls 502. In particular, the printing assembly 570 is traversed across the foundation 4 from a starting position 573 along a continuous path while the printing assembly 570 deposits a line of extrudable building material (e.g., a cement mixture) that forms the connected borders 522 of the walls 502. In this embodiment, because the structure 560 only includes the exterior walls 502, all of the walls 502 are interconnected such that one single continuous movement of the printing assembly 570 that starts and ends at the starting point 573 may be performed to print an enclosed border 522. In other embodiments (e.g., such as when printing the levels 551, 553, 555, 557 of the structure 500), the printing assembly 570 may be traversed along a plurality of loops or routes to form a continuous enclosed border 522 about each connected set of walls 502, 504 (see e.g., the separate enclosed borders 522 of the shell diagram 520 in
Referring specifically to
In some embodiments, the final toolpaths for the printing assembly 570 (e.g., the toolpaths 572, 574) when printing a layer of a level of a structure (e.g., the structures 560, 500, etc.) may be determined by first calculating or otherwise determining some or all of the possible toolpaths that may be taken to form the borders 522, the ribs 532, and/or the lattice 534 of a given level. Thereafter, the most efficient of the plurality of calculated toolpaths may be chosen as the final path(s) for the printing assembly 570.
It should be understood that various changes and modifications to the presently preferred embodiments described herein will be apparent to those skilled in the art. Such changes and modifications can be made without departing from the spirit and scope of the present subject matter and without diminishing its intended advantages. It is therefore intended that such changes and modifications be covered by the appended claims.
This application claims priority to and the benefit as a non-provisional application of U.S. Provisional Patent Application No. 63/152,569, filed Feb. 23, 2021, the entire contents of which are hereby incorporated by reference and relied upon.
Number | Date | Country | |
---|---|---|---|
63152569 | Feb 2021 | US |