Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
A METHOD FOR MASKING INSTRUCTIONS PROGRAMS FOR NUMERICAL CONTROL MACHINES FOR 3D PRINTING
Document Type and Number:
WIPO Patent Application WO/2018/122597
Kind Code:
A1
Abstract:
Method for masking instruction program for numerical control 3D printing machines, comprising the steps of generating through a remote server computer an instruction program, mixing the original instruction program, watermarking the mixed instruction program and sending the marked and mixed instruction program to a local printing agent that has a connection for sending the instruction sequence to a printing machine.

Inventors:
UCCHEDDU FRANCESCA (IT)
Application Number:
PCT/IB2017/001592
Publication Date:
July 05, 2018
Filing Date:
December 21, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
INN3D S R L (IT)
International Classes:
G06F21/10
Foreign References:
EP2453430A12012-05-16
EP1055321A12000-11-29
CN103824248A2014-05-28
Attorney, Agent or Firm:
NESTI, Antonio et al. (IT)
Download PDF:
Claims:
CLAIMS

1. A method for masking instruction programs for numerically controlled

3D printing machines, comprising the steps of:

generation, via a remote server computer (1), of an original instruction program (GC1) made up of an orderly sequence (S1-Sn) of lines of printing instructions, which, if executed by a 3D printing machine (3) determine 3D printing of a desired shape;

remote mixing of the original instruction program (GC1 ) via a mixing key (H) and obtaining of a mixed instruction program made up of a sequence of instruction lines altered with respect to the original sequence;

remote watermarking with a key (K) of the mixed instruction program, wherein the watermark contains said key (H) for correct reading of the sequence of the mixed printing lines, and obtaining of a watermarked and mixed instruction program (GC2).

2. The method according to Claim 1 , wherein said instruction program is a GCode file.

3. A computer program for masking instruction programs for numerically controlled 3D printing machines, which, if run in a computer apparatus implements the method of either Claim 1 or Claim 2.

4. A method for sending to 3D printing machines instruction programs corresponding to a 3D shape to be printed, comprising the following steps:

reception by a user, via a remote server computer (1 ), of specifications regarding a desired shape to be printed (P);

generation, via a remote server computer (1), of a 3D prototyping program corresponding to the specifications received;

remote conversion of the 3D prototyping program into an original instruction program (GC1 ) made up of an orderly sequence (S1-Sn) of lines of printing instructions, which, if executed by a 3D printing machine (3), determine

3D printing of the desired shape;

remote mixing of the original instruction program (GC1 ) via a mixing key (H) and obtaining of a mixed instruction program made up of a sequence of instruction lines altered with respect to the original sequence; remote watermarking with a key (K) of the mixed instruction program, wherein the watermark contains said key (H) for correct reading of the sequence of the mixed printing lines, and obtaining of a watermarked and mixed instruction program (GC2);

sending, via a stretch (5) of a telecommunications network (WEB), of the watermarked and mixed instruction program (GC2) to a local electronic device (2) associated to the printer loaded in which is a recomposition program, which, if run, implements recomposition of the correct sequence of the instruction lines (S1-Sn) of the original instruction program (GC1),

wherein the local electronic device (2) contains said key (K) for reading of the watermark containing the reading key (H) for recomposition of the correct sequence of the instruction lines (S1-Sn) of the original instruction program (GC1),

the local electronic device (2) being provided with a connection (4) for sending to said printing machine (3) the sequence of instructions (S1-Sn) of the original instruction program (GC1); and

sending, to said printing machine (3), of the sequence of instructions (S1-Sn) of the original instruction program (GC1).

5. The method according to Claim 4, wherein said 3D prototyping program is an STL file.

6. The method according to Claim 4 or Claim 5, wherein said instruction program is a GCode file. ^

7. A computer apparatus comprising:

a remote server computer (1 ), loaded in which is a computer program according to Claim 3;

at least one local electronic device (2) connected via a telecommunications network (WEB) to said server computer (1), the local device (2) being provided with said key (K) for reading the watermark containing the reading key (H) for recomposition of the correct sequence of the instruction lines (S1-Sn) of the original instruction program (GC1 ); and

a recomposition program loaded in said local electronic device (2), which, if run, implements recomposition of the correct sequence of the instruction lines (S1-Sn) of the original instruction program (GC1),

the local electronic device (2) being provided with a connection (4) for sending to said printing machine (3) the sequence of instructions (S1-Sn) of the original instruction program (GC1).

Description:
"A Method for masking instructions programs for numerical control machines for 3D printing"

******

Field of the Invention

The invention relates to a method for masking files containing instructions program for numerical control machines, in particular 3D printing machines. As a result of the massive expansion in the field of additive manufacturing (3D Printing), we are witnessing a massive diffusion of Web platforms dedicated to file sharing of 3D printing models. Designers upload their digital products (3D objects to be printed) on said platforms that act as a showcase for the general public. Once purchased/downloaded the digital asset, the user can print it out on his own 3D printer or by an external printing service.

The reality of 3D printing services is an option for all of those companies/users that do not wish to invest in printing machines, but that want to use their products (3D printed objects), anyway. These services are often available online (web-to-print) and accessible by the user by marketplaces specialised in 3D models, that complement on the one hand the 3D file sharing platform, and on the other hand the remote printing service.

In this context the sale/purchase process of a 3D object through an online sharing platform (marketplace), disengages from its actual implementation, which can in fact be done using a 3D printer owned by the user or involving a third party, precisely the print service provider.

The process that a 3D object undergoes from the moment in which it is loaded onto the platform to the moment when it is loaded on the 3D printer is shown schematically in Figure .

The 3D object resulting from the design or from a 3D scan is represented by points in the 3D space and polygons that approximate the "real" surface of the actual physical object (but also imagined), sometimes indicated as mesh, sometimes represented in the STL file format.

3D print machines operate in an additive manner, printing layer after layer the object to be formed. In order to be able to operate, the 3D printers require a series of instructions indicated as machine instructions detailing the mechanical operations (for example the movements of the heads) to be performed layer after layer. Given a 3D file in mesh format (for example STL) and given a certain 3D printer, there are program (slicing software) that calculate the machine instructions in order to print that object on that printer and represent them on a file named GCODE.

The sale acceptance of a 3D file puts in motion a series of activities which involve in succession the conversion of a STL digital file corresponding to the purchased object, in the programming format "GCODE" that may occur in the file sharing platform server and sending it through the Internet to the selected 3D printer.

The designer loads its own 3D digital products on the marketplace that are purchased by a user that simultaneously provides the Marketplace the information relating to the printer or to the print service shop to which he intends to send data. The Marketplace then sends the file ready to be printed (in GCODE format) to the printer itself.

Anyway, the presence of the sharing platforms exposes the authors of the files containing the instructions program of the 3D printer to the risk of an uncontrolled diffusion of the files in transit which might involve the violation of their intellectual property, and on the other hand the spread of counterfeit goods.

State of the art

Solutions at international level are known for a long time for the use of encrypted files.

With these solutions, the encrypted file (in this case the format GCODE 3D file) can be opened only with specific applications capable of decoding the content. This solution is in fact based on a file encryption, so it is exposed to the risk of failure in the presence of the instruments, very sophisticated nowadays, to remove the encryption keys available to potential counterfeiters capable of intercepting and reproducing the encrypted files. An example of said solution is disclosed in US2015134955.

According to a further known solution, the GCODE file is subdivided into blocks. Each individual block is decoded and sent to the printer and then overwritten by the next block. An example of said solution is disclosed in US20132354 2. However, these known solutions do not solve the problem to avoid that a subject capable of intercepting the files transfer between server and printer known as risk of the "man in the middle" could rebuild and acquire the complete file.

Protection systems indicated as mark or "watermarking" are also generally known that are incorporated in the production process between the creation of the STL file and its transformation in the GCODE instruction file, adding to the instructions to realize the printed object, the instructions for the 3D printing of a physical mark not visible to the naked eye that can then be recognized by means of special devices, and reporting information on the producing printer. The mark will be accessible after 3D scanning of the object to be part of a system designed for the reading of the hidden mark. An example of said solutions is disclosed in US2015378353.

From US7720249 is also known, by way of example, an algorithm of watermarking to be read.

This type of solutions however while making the counterfeit object recognizable by the producer, by appropriate verification, does not prevent its diffusion nor its realisation by unauthorized individuals who decide to not use the devices of the proposed circuit.

From EP2453430 is also known a system of 3D data protection that uses a technique of mixing or permutation of the coordinates of the 3D points of a file. In this type of solution, the original 3D file (and not the corresponding instructions file) is uploaded in the network not in a clear form but precisely "mixed" and to be re-assembled only by those in possession of the appropriate keys for further processing the file.

A second known solution that uses the mixing technique is EP2757736, however in this case the printing instructions are the ones being mixed, in a way such as to prevent their use by devices not provided with the reordering key. In this solution an authorized printing service deals with the reordering of the file that therefore results as complete and clear before being sent to the printer and then subject to attacks of the "man in the middle" type. The need for a more robust masking technique of the files that enhances the GCODE instruction files protection, transiting between the service server and the 3D printer still remains.

Object of the invention

A first object of the present invention is therefore the proposal of a security method capable to effectively protect the instruction files sent by remote to a printing agent, and therefore prevent the uncontrolled printing of said files. In the present disclosure, the term "printing agent" indicates a software program loaded on a dedicated hardware device supporting the printer, that has the task of mediate the communication between the printer and the online platform.

A second object of the invention is to facilitate the use of online platforms (Marketplace) for the sale of printable 3D files.

A third object is to ensure the protection of the file during its entire life cycle from the time of its purchase to its physical embodiment preventing the access to the clear data for the "man-in-the-middle".

Summary of the Invention

These and further objects have been achieved with a method and masking apparatus according to one or more of the appended claims.

A first advantage of the invention is that the content of the instruction file transmitted to the printing agent is effectively protected, exactly in the intermediate network portion between Marketplace and printing agent which constitutes the highest vulnerability point of a 3D printing service based on remote order. Whether the user owns a printing device or relies on a third party for the process, it will be necessary to send the file directly to the printing agent that will provide for the elaboration and embodiment, ensuring that the file to be protected is never circulating in clear form in the network.

A second advantage consists in delivering the protected information without changing the format of the file already used in the current unprotected diffusion systems.

A third advantage consists in enabling all of the 3D printers belonging to the circuit connected to the marketplace to print the files purchased by the user in a controlled manner by excluding the possibility to print the same object more times than those purchased or to sell the printable files to unauthorized third parties.

List of the drawings

These and other advantages will be better understood by anyone skilled in the art from the description below and the accompanying drawings, given as a non- limiting example, wherein:

Figure 1 schematically shows the operating steps of the processing procedure that the 3D object undergoes from the moment in which it is loaded onto the platform to the one when it is loaded on the 3D printer;

- Figure 1a schematically depicts the scenario of application of the invention, from sale acceptance of a 3D file, the conversion of a digital STL file corresponding to the purchased object in the programming format "GCODE" that can occur in the sharing platform server, and the delivery through the Internet to the selected 3D printer;

- Figure 2 schematically shows the configuration of a remote 3D printing service that performs the printing process of Figure 1 ;

Figure 3 schematically shows a first step of the masking method of the invention;

Figure 4 schematically shows the configuration of a remote 3D printing service that performs the method of the invention;

Figure 4a schematically shows the projection of all the original gcode layers on the plane of projection;

Figure 4b shows the 2D image obtained with the projection of fig.4a; Figure 5 shows an example of watermarking map created with the method of the invention;

Figure 6 shows an example of a projection grid of the image of Figure 4b, created on the basis of the map of fig.5;

Figure 7a, 7b respectively depict, in a schematic way, the steps of encoding and decoding of the mark;

Detailed description

With reference to the drawings, it is now described a method for masking instruction program for numerical control 3D printing machines according to the invention.

The method includes generating via a remote server 1 an original instruction software GC1 , for example of a GCODE file, composed of an ordered sequence (S1-Sn) of rows of printing instructions, that if performed by a 3D printing machine 3 determine the 3D print of a desired shape P, on a specific user request.

Preferably, the GCODE file is obtained starting from a 3D polygonal mesh type file, for example an STL file, and from the knowledge of the 3D printer type and model chosen for printing the file. The GCODE file expresses by machine language the movements sequence to communicate to the printer in order to produce a given object.

According to the method, the original GCODE GC1 is subjected remotely to a watermarking process. To this purpose the procedure is to bring on a same plane XY (for example with the coordinate z equal to zero) all the coordinates of the GCODE file (fig.4a) obtaining a 2D projection (image) (fig.4b) on which it is inserted a mark, with a K key, obtaining a branded GCODE file of instructions GC1. It should be noted that a possible mixing of the layers of the GCODE file does not alter the projection of the 2D image.

Starting from the key K supplied by the printer agent of the printer selected for the process, a map of Wmap watermarking is generated (fig.5).

The key K is used as "seed" (seed value) for generating a pseudo-random sequence of offset values D = {di, d/y

This sequence is stored on a matrix with n rows and m columns. The 2D image obtained by projecting the gcode on a single layer (e.g. z = 0) is itself "projected" on a grid (fig.6) with n rows and m columns (with the same number of elements of the watermarking map).

Each point of the projected GCODE falls in an item of the grid, the corresponding element of the watermarking matrix determines the value of the mark (d,) to be allocated to that point according to any one of the reading watermarking algorithms, if of a known type.

The insertion/reading procedure of the mark is such that the mark itself will contain the key H to reorder the mixed coordinates before sending the file, and will then allow the printing agent to read the correct order of machine instructions.

The second step consists in remotely subjecting the GCODE , preferably at the same server 1 , to a mixing processing: taking into account the specific structure of a GCODE, wherein for each level (coordinate Z) are listed movements on XY of the printhead, the process of mixing the blocks of instructions on XY between different levels using a mixing key H is conducted, thus obtaining a marked and mixed GCODE composed of a sequence of instructions rows altered with respect to the original sequence.

The method therefore allows the mixing and watermarking steps to be independent: the 2D image watermarking, obtained by projecting the coordinates on the plane with z=0, is not affected by the subsequent mixing of the coordinates that occurs while maintaining consistency in the XY plane.

The image obtained in the projection on Z=0 is therefore used to know how watermark data on each layer, the final structure being a three-dimensional structure with the z values sorted in ascending order but with the corresponding layers XY mixed and marked.

The GC2 file marked and mixed is then sent, by means of a segment 5 accessible to third parties of a telecommunications network (WEB), to a local printing agent 2, i.e. to a hardware device supporting the printer in which a software program is loaded that has the task of mediating the communication between the printer and the online platform.

Advantageously, the file that is transferred and that in segment 5 is potentially "visible", even if it was illegally downloaded cannot be neither used nor recomposed, thus obtaining a particularly effective protection from counterfeiting the contents.

According to the invention in fact, the mark contains the key H for the correct reading of the sequence of the mixed printing lines, but only the local printing agent contains the key K for the reading of the mark (which is not transferred between Marketplace and printing agent).

Being able to read the correct order of instructions, the printing agent can then read and send via an interface 4 to the printing machine 3 the correct sequence of instructions (S1-Sn) of the original instruction software GC1 to accomplish 3D printing of the desired shape P. The instructions can be read and processed without the need to ever trace the entire file in a clear form, avoiding the risk of "man in the middle" type. The method also provides for the repetition of the above disclosed procedure, with different keys, also for each copy of the same purchased 3D file, so as to ensure the protection for each copy, and so that it is not possible to print the same file multiple times without being authorized.

An alternative implementation of the invention provides that the procedure is applied to an online file sharing that could be not mediated by services of "webstore", so as to secure the 3D printing for a user that "draws" its object and requires printing services for the embodiment.

The present invention has been described according to preferred embodiments, however equivalent variants can be conceived without departing from the scope of the present invention.