The present specification relates to 3D printing machines and methods for printing 3D objects. In a preferred arrangement the specification relates to methods for preventing or controlling the 3D printing of objects which are pre-defined as controlled or prohibited objects in a particular 3D printing environment or setting.
Rapid prototyping is defined as computer-controlled additive fabrication, in that an object can be fabricated by the addition of material rather than conventional machining methods that rely on removal or the subtraction of material. The term “rapid” is, it will be appreciated, a relative term but one that has specific meaning within the art, in that construction of finished three-dimensional articles can take from several hours to several days, depending on the method used and the size and complexity of the model, but considerably less time than it would take to make a similar part using conventional methods, (moulds, for example).
3D printing techniques involves the use of a three-dimensional (3D) computer aided design (CAD) of an object/part to be made, from which a stereo-lithography (STL) file, or other suitable format file is generated within a CAD package. It has been highlighted in recent years in the media, that attempts have been made to create controlled or otherwise licenced or prohibited devices, such as for example, firearms or other weapons, or other items subject to control (e.g. copyright control), by 3D printing. Therefore, there is a growing need to develop methods and systems to prevent the printing of such controlled or prohibited devices on a 3D printer.
In one previous approach to restrict the printing of weapons a digital certificate rights management system was used which was external to the 3D printers themselves. However, such encryptions can be bypassed.
The present specification is directed to providing methods and systems to control 3D printing of weapons or other prohibited devices or of other objects for example subject to copyright control.
In a first arrangement there is provided a 3D printing method which provides for interrogation of the actual 3D file which has been sent to the printer for printing, before enabling printing.
The 3D printing file is interrogated to search for pre-defined known geometries which point to features of a device which has been indicated as controlled or prohibited.
In another arrangement of the present specification, the name of a received input file to be printed is checked against the names of controlled or prohibited files (the names of the controlled or prohibited files may be stored in a central repository and for downloading for example via the internet), and in the event of a match or close match, printing of the object specified by the file is stopped or paused pending receipt of permissions from a supervisor.
It is anticipated that 3D printing will find many applications in schools and offices and the ability to prevent the printing of objects pre-defined as subject to print control, for example, weapons in such environments is a major objective of the method and system of this specification.
The present specification provides system and methods for controlling printing of received 3D digital print files otherwise referred to as 3D printing files—which are received at the printer for use by the printer to generate a 3D object. In the specification, files which are subject to a print control have been variously described as prohibited files, as files relating to prohibited objects (the printing of the object is subject to a control by the printer user), as files subject to print control, and as predefined objects which have been indicated as prohibited or controlled for printing or objects subject to control etc. The print control in effect provides a file, or representations of an object to be printed, will be reviewed so that printing of an object pre-defined as controlled can be prevented. If a file or representation is flagged for review by a supervisor because some possibly suspicious features have been identified during analysis of the file, then printing may be interrupted so that the file or representation can be further analysed and printing controlled in so far as approval would be required to allow printing to proceed. Examples of the objects include weapons or objects subject to copyright or other protection. In the present specification it has been described that data relating to files subject to control is stored—for example—there is provided a store of names of files that have been indicated as being subject to a print control—the store may be remote, local or cloud based and while described as a store may be one or more of the above. Similarly, there may be provided details of features of objects subject to control accessible by the printer or controller. In each case, the printer performs a comparison of features of a received input file with details of files or objects that have been indicated as subject to print control.
In an exemplary method of the specification, and with reference to the drawings and initially
The 3D printer 400 of the present specification further includes a 3D object analyser (3D object interrogation module) 450. 3D printing techniques involve the use of a three-dimensional (3D) computer aided design (CAD) of an object/part to be made, from which a stereo-lithography (STL) file, or, other suitable format file is generated within a CAD package. In the exemplary method the 3D input digital print file (3D printing file) F is provided 150 to the 3D printer 400.
The 3D digital print file F 150 is processed 200 in the printer 400. The 3D printing file F provides in effect details of the object to be printed virtually sliced in the Z-axis at a thickness matching the thickness of the substrate material used. This creates a series of cross sections of the part and at any particular height each one has a simple two-dimensional (2D) profile. In more detail, the processing 200 includes in the controller/processor 430 taking the file type for example STL (or Wavefront Technologies' OBJ, Virtual Reality Modelling Language (WRL), 3D Manufacturing Format (3MF), etc.) and rebuilding the part to be 3D printed in the software.
There now exists a 3D representation of the part to be 3D printed in the file preparation software. This part can now be manipulated, scaled, moved, coloured etc. Before the part is printed, the geometry may be sliced into layers which is sent to the 3D printer. After the layers are sliced, the geometry is represented by a series of Two Dimensional (2D) profiles.
The method 250 and system (3D object analyser 450) of the present application provide an interrogation means for analysing the 2D profiles to establish and measure the characteristics of all lines to verify if they represent the geometries of a pre-defined prohibited object.
In an alternative approach, the interrogation means 250/450 may be configured to interrogate the 3D model before it is sliced.
The 3D printer 400 includes details and/or has access to 160/165 details of predefined objects which are indicated as prohibited or controlled for printing.
A local supervisor may indicate objects as prohibited or controlled for printing to the system. In addition, or alternatively, the printer may be configured to communicate with a remote database having details of objects indicated as prohibited or controlled for printing. Details of characteristics, typical features or attributes of objects that are prohibited or subject to control, are provided to the system.
The method 250 provides for the interrogation of the STL file (or file of suitable alternative format). The file is interrogated to search for predefined geometries and features. If a first suspicious feature is indicated, the method may provide for further interrogations of the suspicious feature. In some cases, it is determined 260 by the 3D object analyser 450 in the course of performing a feature analysis that a possible match for a prohibited object has been made. The possible match may indicate a feature that is considered suspicious and requires further consideration. Such a feature may be evaluated to see if printing should be finally prevented or if printing can be allowed to proceed. Printing may be interrupted 270.
The system may indicate 300 the results of the determination. The results may be displayed on display 455. The results may be presented 310 for review by a supervisor.
If the supervisor review determines 315 that the object is not prohibited or controlled, it is possible to enter permission 316 to indicate that the printing is allowed and for the printing of the 3D object to proceed 350. Alternatively, if the supervisor review determines 320 that the object is prohibited, the printing may be prevented 360.
In an exemplary arrangement the 3D printing module or build module 410 may include an adhesive dispensing means for dispensing controlled amounts of adhesive to each layer of the object, bonding means for bonding the plurality of layers, and cutting means for cutting the profile of each layer. The 3D printer 400 comprises a controller or processor 430 for controlling the 3D printer. The 3D printer 400 of the present specification further includes a 3D object analyser (3D object interrogation module) 450. The system may further include a display 455 and a user input means 456.
However, it will be appreciated that the current method and system, which provides for analysis of a representation of the object to be printed, identification of features that may indicate that the object has been predefined as a controlled object, may be used with any suitable 3D printing device.
For example, with reference to
The received 3D print file F 150 is opened up in the 3D file preparation software or controller 430 prior to 3D printing the object. The controller 430 or the file preparation software takes the various known file types (STL, OBJ, WRL, 3MF, etc.) and rebuilds the part to be 3D printed in the software in digital representation.
There now exists a 3D representation of the part to be 3D printed. The controller may provide display of the object. This part or object can now be manipulated, scaled, moved, coloured, etc. Before the part or object is printed, the geometry may be sliced into layers which are sent to the 3D printer. After the layers are sliced, the geometry is represented by a series of Two Dimensional (2D) profiles.
The 3D object analyser 450 then analyses and interrogates these 2D profiles to establish and measure the characteristics of all lines to verify if they represent the geometries of a weapon, for example a handgun or a knife.
In another approach, the 3D object analyser 450 would interrogate the 3D model before it is sliced.
However, in the present exemplary method of the case of the received 3D print file F relating to an object predefined as prohibited and being a gun barrel, the diameter is one feature to be considered in the 3D object analysis. Another further consideration could be to determine whether the object to be printed is also straight or has a straight portion of dimensions suitable for application in the example of the pre-defined prohibited object. If the further analysis was to find that the object indicated as suspicious in the first analysis due to the presence of a cylinder having a diameter of 0.3 in (7.62 mm) was found in the second analysis to be curved to an extent that would negate its value as a gun barrel, then printing of the object would be allowed to proceed.
The above example relates to the identification and control of printing in relation to guns or firearms, which as noted would subject to the methods and systems of the present specification be identifiable by the presence of a barrel with defined internal diameter.
In a further aspect and with reference to the exemplary arrangement of
In one approach, it is provided that names of files, indicated as being subject to a print control may be added to a store or repository 700, stored locally or remotely or in the cloud, and accessible by the printer directly or via a communication networks.
For example, the files may relate to printing of an object subject to copyright. When a new 3D digital print file F 150 is received for printing at a 3D printer 400, the exemplary method provides in a first determination step—comparing the name of the file to be printed with names of files in the store (indicated as subject to a print control) and if the name of the file to be printed matches the name of a file in the store, (indicated as being subject to control), then the printer would refuse to print the object described by the file name.
However, noting a potential weakness of this approach is that a file name control might be circumvented by renaming the file before inputting to the printer for printing, the present specification provides a method and system to address this issue with reference to
The method includes performing a hash of a 3D digital print file, which has been indicated as being subject to print control data and storing the hash in the file store or repository. Hash functions are generally designed to produce a unique hash even for large files differing by as little as one bit, their main purpose being to determine if a file has been modified. The hashes may be stored in an external database, external memory, or in printer memory.
In this exemplary method it is provided that the algorithms for generating the hash functions are provided to the printing system or the controller 430 of the 3D printing system. When the printer is subsequently instructed to print a first input file, the method provides performing an identical hash on the first input file data and comparing that hash to the database of hashes of files which have been indicated as subject to a print control. If a match is found, printing may be interrupted pending supervisor instruction, or may be simply prohibited.
Noting a further issue that a user wishing to circumvent the above control on printing might arrange to make a small change to the file that might make no functional difference to the printed object, but which would cause the printer to calculate a different hash value. The method of the specification further provides utilising a “fuzzy” hashing algorithm, also known as a fuzzy extractor.
The fuzzy hashing algorithm produces the same hash value for data sets that may be significantly different, but which would nevertheless command the printer to build objects that are in at least some important respects identical to the original protected object.
The method therefore provides means to identify a file which would cause a 3D printer to print an inconsequential variation of a prohibited or restricted object, by utilising a hashing function that produces the same hash value for a file that would cause a 3D printer to build an object similar to or the same as the original protected object.
In one application of this concept, the 3D printer manufacturer might generate a database of these fuzzy hashes representing prohibited objects, and arrange to download these hashes on a regular basis to 3D printers or databases in the possession of its customers. The print controller 430 performing the method to compare the name and hash and/or fuzzy hash of a received digital print file with a repository of those of files subject to print control, may also be configured to access the repository via communication networks to access the data to allow for a comparison.
Advantageously, the methods and systems of the exemplary arrangement of the present specification are that each 3D printer stores both the names of—and the fuzzy hashes of—prohibited files. The hashes may be provided from an external source, which may be the 3D printer manufacturer or even an entity wishing to protect its designs from being copied on 3D printers.
The information or data relating to name of files and fuzzy hashes of files indicated as being subject to a print control could be stored for access by the printer (for example in the cloud or other store) or could be available for download and storing in the printer or a local database.
According to an exemplary method when a printer is asked to print an object, it would first generate a hash of that object's file and then compare that hash with all hashes stored in its memory or the relevant connected memory, and on finding a match, would interrupt or prohibit printing.
The method provides the printer owner the option of preventing the printing of certain files of interest to them locally—therefore the arrangements of the specification includes providing the printer owner with the appropriate algorithms to allow them to generate the hashes of those files and input them to the printer.
The 3D printer 400 of an exemplary arrangement comprises printing apparatus for 3-D printing an object comprising:
An exemplary method of the present specification provides a method for printing a 3D object:
In a further aspect, there is provided a method identifying print requests and digital print file pertaining to objects predefined as subject to print control but which do not include identifiable object features or dimensions.
An exemplary method of the present specification provides a method for printing a 3D object:
The interrupting printing may include prompting for review from a supervisor.
The supervisor may enter approval to allow printing to proceed.
If no approval is provided printing may be prevented.
In the method, the hash function may be used to determine if the file received in a print request from a user has been modified.
The method may provide a fuzzy hashing algorithm or fuzzy extractor such that the fuzzy hashing algorithm is configured to produce the same hash value for data sets or digital print files that may be significantly different, but which are directed to command the printer to build objects that are in at least some important respects identical to the original protected object/the object pre-defined as subject to a print control.
The method provides means to identify a file which is directed to printing a prohibited or restricted object on the basis that the algorithm produces the same hash value for a data file directed to build an object similar to or the same as the original protected object. The method therefore allows control of printing based on the object.
The present specification provides a system and methods for implementing a control of 3D printing at the point of printing.
It will be appreciated that the methods described are complementary and may be combined and used together in a method that includes interrogating the image files, and for the comparison of file name data and comparison of hash data.
The control is an intelligent control that provides for interrogation of the data of the object to be printed to determine whether there are present therein “suspicious features” or features that indicate a possible match to an object that has been predefined as subject to print control.
The level of control to be implemented by the system can be selected by a supervisor with authority and means to decide what may be printed by the printers under his supervision. The system can be set to determine the possible match for a combination of features of an object predefined as subject to control, as set out in the example of
If a possible match is indicated, such can be displayed to a supervisor user while printing is interrupted. The supervisor may be prompted to input a confirmation that printing is prevented or that printing can resume.
The object analyser can be provided in software form and can be implemented in a variety of 3D printing systems. The name and hash and fuzzy hash generator and analyser can be provided in software form and can be implemented in a variety of 3D printing systems. It will be appreciated that the systems and methods may include both the object analyser and name and hash and fuzzy hash analyser.
The system and method provide for further safety and security while reducing requirements on the user or printer operator. The system and method can interrogate beyond the final appearance of an object to determine whether a final printed object could be modified after printing to arrive at an object predefined as subject to print control. By providing for interrogation of the print file, the method is more thorough and provides a higher level of control than prior methods.
It will be appreciated that the systems and methods of the present specification may be applied to any 3D printing arrangement, such as for example 3D printers as made by CleanGreen3d.
This application claims priority to U.S. Provisional Application No. 62/805,733 filed Feb. 14, 2019 by John Ryan entitled, “Methods and Systems for Control of 3D Printing”, which is incorporated by reference herein as if reproduced in its entirety.
| Number | Date | Country | |
|---|---|---|---|
| 62805733 | Feb 2019 | US |