Three-dimensional (3D) objects generated by an additive manufacturing process may be formed in a layer-by-layer manner and, in one example, an object may be generated by solidifying portions of layers of build material. In other examples, 3D objects may be generated using extruded plastics or sprayed materials as build materials, which solidify to form an object.
Additive manufacturing systems may generate objects based on design data. This may involve a designer generating a 3D digital model of an object to be generated, for example using a computer aided design (CAD) application.
In the following detailed description, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration specific examples in which the disclosure may be practiced. It is to be understood that other examples may be utilized and structural or logical changes may be made without departing from the scope of the present disclosure. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present disclosure is defined by the appended claims. It is to be understood that features of the various examples described herein may be combined, in part or whole, with each other, unless specifically noted otherwise.
In an example of the disclosure, a process of producing a 3D-printed object to a particular specification may include: (i) part and build preparation; (ii) 3D printing; and (iii) post-processing. During the part and build preparation, a digital model of an object to be printed, comprising object model data representing the object, may be prepared by a designer using an editing or object generation application such as a CAD application. The object model data can define one or multiple 3D geometry models and/or 3D transform matrices which can position an object to be printed in a 3D printer's printable area. The object model data is in a format that can be read and interpreted by a 3D printer which can carry out a 3D printing build operation.
The object model data may be received by the 3D printer. The 3D printer may comprise a controller to generate printer control data comprising build data based at least in part on the received object model data relating to the object. The printer control data may further comprise instructions to cause the 3D printer to print the build. data.
An object model of an object may, for example, represent a new and/or experimental prototype of a future product, and maintaining confidentiality may protect a competitive edge of the product owner. This may be the case when the object model is to be 3D printed by a printer that is not under the control of the object model designer— e.g. when using a third party 3D printing service provider that owns the printer to print the object model. In another example, a model could contain private (e.g. personal, or patient) data, such that confidentiality should be maintained. In a further example, a model could be a high value part which is to be protected under rights management for manufacturing. However, in order to complete the manufacturing of an object that is to be based on object model data, the data may be exposed to various parties during a design and manufacturing workflow of a 3D object. For example, an object model data owner may offer the design for purchase, may wish to request a cost estimate or manufacturing schedule for generating an object, or may provide an object model to a party that is to pack the object with other object models of objects to be printed. In this way, object model data may be exposable to at least one third party. The object model of the object to be printed may have a number of portions including at least one sensitive portion and one non-sensitive portion. There may be a plurality of sensitive portions. A sensitive portion can represent data that is to be protected, for example, against unwarranted disclosure or exposure to a party using a first pre-processing application which does not have permission to access the sensitive portion. The non-sensitive portion may be exposed in the first pre-processing application.
In one example, when visually representing the object model in the first pre-processing application, the model may show an obfuscated portion that masks or conceals the sensitive portions of the object model. An example of obfuscation is replacing the portion with a geometrical shape bounding the region within which the portion is located such that the sensitive portions are concealed. Another example of obfuscation is applying a filter to the sensitive portion so as to obscure the region when visually represented on a display screen. The sensitive portions are capable of being concealed from view in the first pre-processing application. However, a 3D printer will be able to print the complete detailed object represented by the 3D model so will have access to any sensitive and non-sensitive portions of the 3D model. This may allow processing of the model that is sufficient to enable a party using the first pre-processing application to complete a task as part of the design and manufacturing workflow of a 3D object.
In order to visually represent the object model in the first pre-processing application with an obfuscated portion, the object model data of the model may be modified so as to generate modified object model data including a first version of the model that exposes non-sensitive portions of the model but not sensitive portions which are not to be exposed in the first pre-processing application. A number of versions of the 3D model may be created and each specific model version may be assigned, in the editing application for example, to each of a plurality of pre-processing applications. Each pre-processing application may have access to different sensitive portions of the 3D model by having access rights to a particular model version from the number of versions of the 3D model. Therefore, different pre-processing applications can have access to different obfuscated models with a pre-processing application being able to access to a particular model if it has access to the model version within which the particular model is contained. Each different pre-processing application may have access to sufficient content of the model which may be a subset of the content that can be accessed by another pre-processing application such that each pre-processing application can perform its task within the design and manufacturing workflow of the object.
The object model data and/or the modified object model data may be digitally secured to prevent unauthorised access. This may be achieved by encryption, for example. Each version of the model may be encrypted using a first encryption method that can be decrypted using a first decryption method such that access to a particular version is possible if a pre-processing application has access to the first decryption method. In an example, the first encryption method may comprise a first public encryption key and the first decryption method may comprise a first private decryption key.
The object model data and modified object model data may for example be stored using a 3MF (3D manufacturing) format or other file format capable of representing a 3D object.
With reference to
The controller 110 of the system 100 may comprise a data input/output interface unit 111 to receive input data from external components, for example, user input devices (not shown) to allow a user to interact with the system 100. The unit 111 may also output data from the controller 110 to other external components, for example, a display unit (not shown).
The controller 110 may further comprise a processor 112 to manage all the components within the controller 110, and process all data flow between the components within the controller 110. The processor may be any of a central processing unit, a semiconductor-based microprocessor, an application specific integrated circuit (ASIC), and/or other device suitable for retrieval and execution of instructions.
The controller 110 may further comprise a storage or memory unit 120 to store any data or instructions which may need to be accessed by, for example, the processor 112. The memory unit 120 may be any form of storage device capable of storing executable instructions, such as a non-transient computer readable medium, for example Random Access Memory (RAM), Electrically-Erasable Programmable Read-Only Memory (EEPROM), a storage drive, an optical disc, or the like.
In one example, the memory unit 120 includes instructions such as instructions to obtain 121 object model data defining a three dimensional model be generated by a three-dimensional printer, obtain 122 data relating to a first sensitive portion of the model, the first sensitive portion representing a portion of the model to be concealed, generate 123 modified object model data that includes a first version of the three dimensional model that is represented in a first pre-processing application without exposing the first sensitive portion, and includes the first object model data defining the three dimensional model for printing by a three-dimensional printer. The modified object model data may be stored for use by a 3D printer which can print the complete three dimensional model including any sensitive portions that were concealed in the first pre-processing application.
At 303, a second version of the three dimensional model is generated that is to be visually represented to expose one other non-sensitive portion without exposing one other sensitive portion of the model. The at least one other sensitive portion may be different to and/or a subset of the at least one sensitive portion. Access rights can then be applied to the second version such that a second pre-processing application can access the second version. This may be achieved, for example, by encrypting 304 the second version using a second encryption key. The second encrypted version can be decrypted by a second decryption key and the second decryption key is made available to a second pre-processing application. The second encryption key may be a public key of the second pre-processing application and the second decryption key may be private key of the second pre-processing application. The original object model including all data needed to represent the complete model may be encrypted such that an application with the appropriate access rights to original model can access the complete model. The modified object model data is generated 305 to include the first and second encrypted versions and appropriate access rights to enable the complete object model including any modifications that have been made to the model during the design and manufacturing workflow to be printed by the printer.
In some examples, there may be multiple printers that can print a complete object model and each printer may provide its own public key to an editing application to encrypt a complete model and each printer with its own private key can decrypt the complete object model when it arrives at the printer.
In an example, the first pre-processing application may be a packing application that may need to approximate the actual shape of an object to provide efficient packing but would not need other attributes such as detailed shapes or colours relating to the object to be packed and printed. The second pre-processing application may be a pre-flight application that uses a model of the object to approximate the actual consumption so that a printer from a plurality of printers can be selected for printing the object model. For such an application, the shape of the model does not need to match the exact model shape and the model to be used by the pre-flight application can be obfuscated accordingly. Respective versions of the model can therefore be prepared that conceal or obfuscate any data in the model that does not relate to the task to which the pre-processing application relates and which may not be needed to perform the task. Where appropriate, multiple pre-processing applications may have access to the same obfuscated version of the model. Multiple versions of the same original object model may be provided and an editing application can assign a specific model version to a pre-processing application. The multiple versions may be provided in the same electronic file such as the same 3MF file.
In addition to the examples described in detail above, the skilled person will recognize that various features described herein can be modified and/or combined with additional features, and the resulting additional examples can be implemented without departing from the scope of the system of the present disclosure, as this specification merely sets forth some of the many possible example configurations and implementations for the claimed solution.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2019/058514 | 10/29/2019 | WO |