GB2597926A - Apparatus and method - Google Patents

Apparatus and method Download PDF

Info

Publication number
GB2597926A
GB2597926A GB2012099.4A GB202012099A GB2597926A GB 2597926 A GB2597926 A GB 2597926A GB 202012099 A GB202012099 A GB 202012099A GB 2597926 A GB2597926 A GB 2597926A
Authority
GB
United Kingdom
Prior art keywords
printing machine
objects
dimensional
server
printable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
GB2012099.4A
Other versions
GB202012099D0 (en
Inventor
Alali Ethar
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Axelisys Ltd
Original Assignee
Axelisys Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Axelisys Ltd filed Critical Axelisys Ltd
Priority to GB2012099.4A priority Critical patent/GB2597926A/en
Publication of GB202012099D0 publication Critical patent/GB202012099D0/en
Publication of GB2597926A publication Critical patent/GB2597926A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B29WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
    • B29CSHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
    • B29C64/00Additive manufacturing, i.e. manufacturing of three-dimensional [3D] objects by additive deposition, additive agglomeration or additive layering, e.g. by 3D printing, stereolithography or selective laser sintering
    • B29C64/30Auxiliary operations or equipment
    • B29C64/386Data acquisition or data processing for additive manufacturing
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B33ADDITIVE MANUFACTURING TECHNOLOGY
    • B33YADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3-D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3-D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
    • B33Y50/00Data acquisition or data processing for additive manufacturing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • G06F21/608Secure printing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1222Increasing security of the print job
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1238Secure printing, e.g. user identification, user rights for device usage, unallowed content, blanking portions or fields of a page, releasing held jobs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server

Abstract

A fleet of three-dimensional printers wherein a server provides access to a printable object selected from a database or catalogue based on a unique hardware identifier (e.g. MAC address, media access control address) of a printer (printing machine). The printer identifier may also be: a barcode, a QR code or NFC. The server controls access to a catalogue of printable objects by obtaining the hardware identifier (301) and a public key of the 3D printer (303) and comparing the public key with a private key (305) , determining a catalogue of printable objects (307) and providing a unique link to the printer (309). The user may pay a subscription; in this way the user may be authorised to print a 3D object stored in a server catalogue or database. A further invention concerns a method of building a catalogue and printing 3D printable objects by obtaining a plurality of photographs, performing photogrammetry, building a database of models, creating a density plot of the models belonging to the same class, creating a baseline 3D model for the class and creating a set of instructions for printing.

Description

Apparatus and Method
Field of Invention
The present invention relates to the field of three-dimensional printing.
Background
Typical three-dimensional printing machines are configured to print printable objects based on an instruction set. The three dimensional printing machines obtain an instruction set and subsequently follow the instruction set to print the printable object.
Designing an object for three-dimensional printing may be difficult and/or time consuming. Generating an instruction set for a three-dimensional printing machine may be difficult and/or time consuming in comparison to generating a physical three-dimensional object.
Unauthorised proliferation and/or unauthorised access to instruction sets for printing a three-dimensional object may adversely affect people who design objects for three-dimensional printing and/or people who generate instruction sets for a three-dimensional printing machines.
Summary
Aspects of the invention are set out in the independent claims and optional features are set out in the dependent claims. Aspects of the disclosure may be provided in conjunction with each other, and features of one aspect may be applied to other aspects.
Aspects of the disclosure provide a fleet of three-dimensional printing machines, comprising: a plurality of three-dimensional printing machines; and a server configured to communicate with each of the plurality of three-dimensional 30 printing machines; wherein each of the plurality of printing machines comprises a communications interface operable to communicate with the server, and a unique hardware identifier; wherein each of the plurality of printing machines is configured to: 10 15 20 -2 -be operable to communicate with the server via the communications interface to print a printable object from a selected catalogue of printable objects selected from a database of three-dimensional printable objects,; and, wherein the server is configured to control access to the selected catalogue of printable objects each printing machine is operable to print based on the unique hardware identifier of the corresponding printing machine.
Providing a system for managing access to a database of three-dimensional printable objects addresses at least some of the problems set out in the background section.
Providing a system for managing access to a database of three-dimensional printable objects allows three-dimensional printable objects to be provided anywhere in the world without the need to ship the objects to various locations.
Advantageously, the present invention may reduce the carbon footprint of providing the objects. Accordingly the present disclosure has a clear environmental benefit.
Advantageously, the present invention may reduce carbon footprint of providing the objects by removing logistics (e.g. shipping etc).
Advantageously, the printing machines of the present invention may use recycled PLA and PET plastics. The PLA and PET plastics may comprise between 50% and 100% of the and making them into filament/raw materials.
Recycling services may be provided to operators of the printing machines. Waste three-dimensional printable objects may be collected, segregated, and recycled appropriately (e.g. printable objects which were used for medical purposes may be subject to mechanical and/or chemical recycling were appropriate).
Providing aspects of the disclosure and a recycling service may create a circular economy around the fleet of three-dimensional printing machines. Circular economies of this nature may be desired in the EU and UK e.g. a number of regulations and action plans exist at Union level (such as the EU Action Plan for Circular Economy). -3 -
Advantageously, the present invention may reduce the time required to provide the objects.
The database of three-dimensional printable objects may comprise a plurality of catalogues of printable objects. The server may be configured to provide access to a selected catalogue or selected catalogues. The server may determine whether a given printing machine is permitted to access the selected catalogues based whether the printing machine is on a whitelist for a given catalogue (e.g. a unique hardware identifier of the given printing machine is listed on the whitelist with, for example, an appropriate secure key). The server may determine whether a given printing machine is permitted to access the selected catalogue(s) based whether the user of the given printing machine is on a whitelist for a given catalogue (e.g. a user identifier of the user is listed on the whitelist) or on a whitelist.
An operator of a given three-dimensional printing machine may pay a subscription fee for the machine and/or to enable the unique hardware identifier of the given three-dimensional printing machine to be added to a selected whitelist e.g. a subscription fee may be paid by an operator of a given three-dimensional printing machine so that the given three-dimensional printing machine has access to a selected catalogue of printable objects.
An operator of a three-dimensional printing machine may pay a deposit for the three-dimensional printing machine.
Different three-dimensional printing machines in the fleet may have access to different catalogues of printable objects.
For example the hardware identifier may comprise a MAC address.
The catalogue of printable objects may comprise a plurality of instruction sets. Each instruction set corresponds to a printable object. The printing machines may be operable to print a printable object, selected from a catalogue of printable objects selected from a -4 -database of three-dimensional printable objects, based on the instruction set which corresponds to the printable object.
Each instruction set may be executable by a three-dimensional printing machine e.g. a printing machine may be configured to execute an instruction set. For example, the printing machine may comprise software and hardware suitable for executing the instruction set. When an instruction set is executed by a three-dimensional printing machine, then the three-dimensional printing machine is operable to print the printable object which corresponds to the instruction set.
For example, the catalogue of printable objects may comprise: an instruction set A; an instruction set B; and, an instruction set C. Instruction set A corresponds to printable object A. Instruction set B corresponds to printable object B. Instruction set C corresponds to printable object C. When a three-dimensional printing machine executes instruction set A, then the three-dimensional printing machine may operate to print printable object A. In examples, printing machines in the fleet may differ in type e.g. the fleet may comprise more than one printing machine type. For example, a portion of the printing machines in the fleet may be of a first type (e.g. type 1 printing machines), and another portion of the printing machines in the fleet may be of a second type (e.g. type 2 printing machines). The first type of printing machines may comprise any of: a first type of hardware (e.g. type 1 hardware); and, a first type of software (e.g. type 1 software). The second type of printing machine may comprise any of: a second type of hardware (type 2 hardware); and, a second type of software (e.g. type 2 software).
Each printable object may have a plurality of corresponding instruction sets type wherein each of the instruction set types is executable by a different printing machine type. In such examples, the catalogue of printable objects may comprise: an instruction set Al; and, an instruction set A2. Instruction set Al corresponds to printable object A. Instruction set A2 corresponds to printable object A. Instruction set Al is executable by the first type of printing machines. Instruction set A2 is executable by the second type of printing machines. The server may be configured to provide an instruction set type which -5 -is executable by a printing machine based on the unique hardware identifier of the printing machine.
Each of the plurality of printing machines may be configured to be operable to communicate with the server via the communications interface to obtain an instruction set from the selected catalogue of printable objects selected from a database of three-dimensional printable objects and subsequently, each of the plurality of printing machines may be configured to print a printable object based on the instruction set.
The server may be configured to communicate with each of the plurality of printing machines via a communications network. Each of the plurality of printing machines comprises a communications interface configured to communicate with the server via the communications network.
The server may be configured to obtain a unique hardware identifier from each of the plurality of printing machines, for example as part of a registration process with the printing machine, and wherein the server is configured to provide access to the selected catalogue of objects based on the received hardware identifier.
The server may be configured to send server notifications to each of the plurality of printing machines via a communications network. The printing machines may be configured to receive server notifications from the server e.g. via the communications network. Server notifications may be sent using and of MQTT; WebSockets; and, HTTPS.
A server notification may comprise a request for the unique hardware identifier from each of the plurality of printing machines. The server notification may comprise a set of instructions.
Each of the plurality of printing machines may be configured to communicate to the server via a communications network. Each of the plurality of printing machines may be configured to send printing machine notifications to the server via a communications network. -6 -
Each of the respective printing machines comprises a communications interface configured to send printing machine notifications to the server e.g. via the communications network. For example, the server may be configured to receive printing machine notifications from each of the printing machines. Printing machine notifications may be sent using MQTT.
The printing machine notifications sent from a given printing machine may comprise a unique hardware identifier of the given printing machine. The printing machine notifications sent from a given printing machine may comprise a unique hardware identifier. Printing machine notifications comprising a unique hardware identifier may inform the server of the presence of a particular printing machine in the fleet.
Each of the printing machines may be configured to receive a server notification from the 15 server and to send a printing machine notification based on the server notification to the server.
The server may be configured to receive a printing machine notification from a given printing machine and to send a server notification based on the printing machine 20 notification.
Each of the printing machines may be configured to receive a request from the server. For example, the request may be received via the communications interface of each respective printing machine.
Each of the plurality of printing machines may be configured to send a notification to the server. For example, each of the plurality of printing machines may be configured to send a notification to the server in response to a request, received by each respective printing machine, from the server. In examples, each of the plurality of printing machines may be configured to send a notification wherein the notification comprises a unique hardware identifier to the server.
In examples, the communications network may comprise a wireless communications -7 -network. The wireless communications network may comprise any of: W-Fi 0; LoRaWAN; and, Cellular networks Each of the plurality of printing machines may store a public key, and the server may store a corresponding private key for the public key, and wherein each of the plurality of printing machines may be configured to provide the public key as part of the registration process, and wherein the server may be configured to compare the public key with the private key to determine whether the corresponding printing machine is authorised to have access to the selected catalogue of printable objects.
As part of the registration process, if the server determines that a printing machine is to have access to a selected catalogue of printable objects, the server may send a unique link to the selected printing machine that provides a unique link for the selected printing machine to have access to resources including the selected catalogue of printable objects.
The unique link may comprise a Uniform Resource Locator (URL). The unique link may be specific to a particular printing machine type.
The unique link may be time limited e.g. the unique link may be valid for a predetermined period of time. For example, the predetermined period of time may be 24 hours. Providing unique links which are time limited may advantageously prevent unauthorised access to the catalogue of printable objects. For example, the unique link may not be used to access to the catalogue of printable objects once a subscription of a particular printing machine has expired.
The resources may comprise any of: the catalogue of printable objects; updates for the printing machine (e.g. software updates); support materials (e.g. instructions; troubleshooting guides; Frequently Asked Questions and Answers (FAQs).
The server may be configured to perform an action in the event that the server determines that the corresponding printing machine is not authorised to have access to the selected catalogue of printable objects. -8 -
The action may comprise at least one of (i) sending a message to the corresponding printing machine to perform a factory reset, (ii) sending a message to the corresponding printing machine to perform a memory wipe, and (iii) blocking access to the selected 5 catalogue of printable objects for the corresponding printing machine.
Blocking access to the selected catalogue of printable objects for the corresponding printing machine may comprise adding the unique hardware identifier of the printing machine to a blacklist. When a printing machine with a unique hardware identifier which is on the blacklist attempts to access the selected catalogue of printable objects e.g. by sending an access request to the server. Blocking access to the selected catalogue of printable objects for the corresponding printing machine may comprise removing the unique hardware identifier of the printing machine from a whitelist (e.g. a whitelist for a selection of the catalogues or all of the catalogues of the database).
Blocking access to the selected catalogue of printable objects for the corresponding printing machine may comprise wiping a local memory of the corresponding printing machine e.g. removing one or more instruction sets from the printing machine. For example, the server may send a server notification to the corresponding printing machine. The server notification may comprise a request for the printing machine to remove one or more instruction sets from the printing machine.
Printing machine notifications may comprise an access request to the server.
A printing machine may be configured to send an access request to the server. The access request may be sent via a communications network. The printing machine may be configured to send an access request to the server from the communications interface of the printing machine.
A valid access request may be an access request sent by a printing machine which is allowed access to the catalogue of printable objects. An invalid access request may be an access request sent by a printing machine which is not allowed access to the selected catalogue of printable objects. For example, the access request may comprise a request -9 -to access a particular instruction set of the selected catalogue. The access request sent from a particular printing machine may further comprise the unique hardware identifier of the particular printing machine.
The server may be further configured to obtain a user identifier from a user operating each printing machine, and wherein the server is configured to provide access to a subset of the selected catalogue of printable objects based on the user identifier.
The subset of the selected catalogue of printable objects may include the whole of the 10 selected catalogue (e.g. a trivial subset).
The server may determine whether the printing machine operated by the user is permitted to access the selected catalogue (from which the user requests access to a subset) based whether the printing machine is on a whitelist for a given catalogue (e.g. a unique hardware identifier of the given printing machine is listed on the whitelist). The server may determine whether a user is permitted to access the subset of the selected catalogue based whether the user is on a whitelist for the given subset of the catalogue (e.g. a user identifier of the user is listed on a whitelist for the particular subset).
A user of three-dimensional printing machines in the fleet may pay a subscription fee to enable a user identifier of the user added to a selected whitelist e.g. a subscription fee may be paid by a user so that the user has access to a subset of a selected catalogue of printable objects.
Types of printable objects may comprise: face masks; oxygen masks; face visors; syringe bodies; syringe plungers; swabs (e.g. buccal; nasal); flexible fluid tubes (e.g. for intravenous drips); dental retainers; gear wheels; screws; rigid pipes; rapid pipe joints.
Classes of printable objects may comprise: medical; engineering; plumbing; dental; 30 pharmacy.
Printable objects having a medical class may comprise: face masks; oxygen masks; face visors; syringe bodies; syringe plungers; swabs (e.g. buccal; nasal); flexible fluid tubes -10 - (e.g. for intravenous drips); dental retainers.
Printable objects having an engineering class may comprise: gear wheels; and, screws.
Printable objects having a plumbing class may comprise: rigid pipes; and, rapid pipe joints.
Printable objects having a dental class may comprise: custom denture containers, face visors, ear savers.
Printable objects having a pharmacy class may comprise: pill punchers, pill splitters, pill organisers, tweezers In examples, a given three-dimensional printing machine in the fleet may be configured to download the selected catalogue of printable objects and store the selected catalogue locally. If the given three-dimensional fails to register with the server (e.g. the server does not receive a valid access request from the given printing machine), then the server may be configured to request the three-dimensional printing machine to delete the locally stored selected catalogue (e.g. the server may send a server notification comprising a request for the printing machine to delete the locally stored selected catalogue). For example, the subscription of the printing machine may not be updated resulting in removal from the unique hardware identifier of the printing machine from the whitelist.
An aspect of the disclosure provides a method of controlling access to a catalogue of printable objects for a three-dimensional printing machine, the method comprising: obtaining a hardware identifier identifying the three-dimensional printing machine; obtaining a public key from the three-dimensional printing machine; comparing the public key to a private key to determine whether the printing machine is authorised; determining the catalogue of printable objects that the printing machine is to have 30 access to, selected from a database of printable objects, based on the hardware identifier; in the event that the printing machine is determined to be authorised, providing a unique link to the printing machine for the printing machine to access the catalogue of printable objects from the database of printable objects that the printing machine is determined to have access to.
Obtaining the hardware identifier and/or the public key may comprise sending a printing 5 machine notification from the printing machine to the server, wherein the printing machine notification comprises a request for the hardware identifier and/or the public key.
Obtaining the hardware identifier and/or the public key may comprise sending a server 10 notification from the server to the printing machine, wherein the server notification comprises a request for the hardware identifier and/or the public key.
The unique link may be time limited e.g. the unique link may be valid for a predetermined period of time. For example, the predetermined period of time may be 24 hours.
Providing unique links which are time limited may advantageously prevent unauthorised access to the catalogue of printable objects. For example, the unique link may not be used to access to the catalogue of printable objects once a subscription of a particular printing machine has expired.
The method may be repeated at a selected time interval to determine (i) whether the machine is authorised and (ii) the catalogue of printable objects that the printing machine is to have access to.
The method may be repeated after a selected time interval of inactivity of the printing 25 machine to determine (i) whether the machine is authorised and (ii) the catalogue of printable objects that the printing machine is to have access to.
The method may be repeated when a new user signs onto the system to determine (i) whether the machine is authorised and (ii) the catalogue of printable objects that the 30 printing machine is to have access to.
The hardware identifier may comprise the MAC address of the printing machine, and wherein the method may comprise determining the catalogue of printable objects that the -12 -printing machine is to have access to, selected from a database of printable objects, by looking up the MAC address in a look up table of MAC addresses and access rights.
The method may further comprise logging and keeping a record of every time the printing 5 machine accesses a printable object from the catalogue of printable objects, the record comprising information identifying the printing machine and the printable object accessed from the catalogue.
The record may further comprise information identifying the time the printable object was 10 accessed from the catalogue.
For example, the system may be configured to determine each time the unique link is used. If the system determines that the unique link has been used, the record is updated with information identifying the printing machine and the printable object accessed from 15 the catalogue and optionally the time the printable object was access from the catalogue.
The method may further comprise logging and keeping a record of every time the printing machine accesses a printable object from the catalogue of printable objects on a distributed ledger.
The distributed ledger may comprise a blockchain.
An aspect of the disclosure provides the fleet as described herein, wherein the server is configured to perform the method described herein.
The server may be configured to perform the method described herein on a periodic basis.
For example, the server may be configured to perform the method described herein on 30 every 24 hours.
An aspect of the disclosure provides a three-dimensional printing machine operable to print a three-dimensional object based on a catalogue of printable objects, the printing -13 -machine comprising a communications interface and a processor, wherein the processor is configured to: send a hardware identifier identifying the three-dimensional printing machine, via the communications interface, to a remote server; send a public key, via the communications interface, to the remote server; obtain a unique link, via the communications interface, providing access to a selected catalogue of printable objects that the printing machine is to have access to, selected from a database of printable objects, based on the hardware identifier; use the unique link to obtain instructions from the selected catalogue of printable objects for use in printing a three-dimensional object.
The processor may be further configured to send a user identifier identifying a user of the printing machine, via the communications server, to the remote server.
The processor may be configured to execute an action in response to receiving an action message from the remote server, the action comprising at least one of: (i) performing a factory reset, (ii) performing a memory wipe, and (iii) blocking access, by a user, to the printing machine.
An aspect of the disclosure provides a method of printing a three-dimensional object, the method comprising: obtaining a plurality of photographs of the object to be printed, and a printing machine identifier identifying a selected three-dimensional printing machine; performing photogrammetry on the plurality of photographs of the object to create 25 a real-time three-dimensional model of the object; creating a set of instructions for printing the object based on the real-time three-dimensional model of the object; sending the instructions to the printing machine identified by the printing machine identifier for printing the three-dimensional object.
The printing machine identifier may comprise any of: a unique hardware identifier; a barcode; a QR code; and NFC.
-14 -The instructions may be added to a database.
The method may further comprise: obtaining an object identifier indicating the type of object being photographed; building a database comprising a plurality of models of three-dimensional objects belonging to the same type of objects as identified by the object identifier; creating a density plot of the plurality of models of the three-dimensional objects belonging to the same type of objects as identified by the object identifier; creating a baseline three-dimensional model of the object based on the density 10 plot of the plurality of models of the three-dimensional objects; and creating the set of instructions based on the baseline three-dimensional model and the real-time three-dimensional model of the object.
The method may further comprise creating the set of instructions based on the baseline 15 three-dimensional model and the real-time three-dimensional model of the object when the database comprises at least a selected threshold number of models of three-dimensional objects belonging to the same type.
The method of building a database comprising a plurality of models of three-dimensional 20 objects belonging to the same type of objects as identified by the object identifier comprises: obtaining a plurality of photographs of an object to be printed, belonging to the same type of objects, from a plurality of sources; and performing photogrammetry on the plurality of photographs from the plurality of 25 sources to create a plurality of three-dimensional models of the objects belonging to the same type in the catalogue of printable objects each printing machine is operable to print based on the unique hardware identifier of the corresponding printing machine.
An aspect of the disclosure provides a method of building a catalogue of three-30 dimensional printable objects, the method comprising: (a) obtaining a plurality of photographs of an object to be printed, and an object identifier identifying the type of the object to be printed; (b) performing photogrammetry on the plurality of photographs of the object to -15 -create a real-time three-dimensional model of the object; (c) repeating steps (a) and (b) a plurality of times; (d) building a database comprising a plurality of models of three-dimensional objects belonging to the same type of objects as identified by the object identifier; (e) creating a density plot of the plurality of models of the three-dimensional objects belonging to the same type of objects as identified by the object identifier; (f) creating a baseline three-dimensional model for the type of object based on the density plot of the plurality of models of the three-dimensional objects; and (g) creating a set of instructions for printing the object based on the baseline 10 three-dimensional model.
The object identifier may be indicative of the type of object to be printed e.g. a face mask. The object identifier may be indicative of the class of the object to be printed e.g. a medical device. The object identifier may be a label for the object. The object identifier may be an alphanumeric string with any of the following formats: "classOfObject"; "typeOf Object"; "classOfObject; typeOfObject".
The method may further comprise creating the baseline three-dimensional model for the type of object based on the density plot of the plurality of models of the three-20 dimensional objects when the database comprises at least a selected threshold number of models of three-dimensional objects belonging to the same type.
The step (a) may further comprise obtaining a printing machine identifier identifying a selected three-dimensional printing machine that is to print the object, and wherein (g) 25 may comprise creating the set of instructions based on the identifier identifying a selected three-dimensional printing machine that is to print the object.
The printing machine identifier may comprise any of: a unique hardware identifier; a barcode; a OR code; and NFC.
The method may further comprise determining a set of printing machines that is to have access to the type of printable objects; and sending the set of instructions to the determined set of printing machines based -16 -on the object identifier identifying the type of the object to be printed.
For example, the set of printing machines may be determined based on the hardware identifier of the corresponding printing machine.
The method may further comprise determining a set of printing machines that may find printable objects having a given object identifier appropriate; and sending a server notification to the determined set of printing machines based on the object identifier, wherein the server notification comprises an alert for informing users 10 of the set of printing machines that the catalogue of printable objects comprises printable objects having a given object identifier.
The server may compare the received unique hardware identifiers with a current list of authorised printing machines. For example, the current list of authorised printing machines may comprise a list of printing machines (and their respective unique hardware identifiers) for which a subscription fee has been received by the operator of the server 150 The server notification may comprise a subscription update link. The link may direct a 20 user to a webpage where the user can manage their subscription preferences. For example, the webpage may allow the user to add the printable objects having a given object identifier to their subscription.
Aspects of the disclosure provide a computer readable non-transitory storage medium 25 comprising a program for a computer configured to cause a processor to perform any of the methods described herein.
Brief description of the figures
Embodiments of the disclosure will now be described, by way of example only, with 30 reference to the accompanying drawings, in which: Figure 1 illustrates a system comprising a fleet of three-dimensional printing machines and a server; -17 -Figure 2 illustrates a schematic view of a printing machine; Figure 3 illustrates a flowchart of a method of controlling access to a catalogue of printable objects for a three-dimensional printing machine; Figure 4 illustrates a flowchart of a method of printing a three-dimensional object; Figure 5 illustrates a flowchart of a method of building a catalogue of three-dimensional printable objects.
Specific description
Figure 1 illustrates a system comprising: a fleet of three-dimensional printing machines 100; and, a server 150. Each of the printing machines 100 comprises: a communications interface 3; and, a unique hardware identifier. Figure 2 illustrates a schematic view of a printing machine 100. The printing machine 100 comprises: a processor 1; a communications interface 3; a user interface 5; and, a printing means 7.
Each of the printing machines 100 communicates with the server 150. The server 150 communicates with each of the printing machines 100. The fleet shown has three three-dimensional printing machines 100 but there may be any number of three-dimensional printing machines in the fleet. The three-dimensional printing machines in the fleet may be located anywhere in the world provided the three-dimensional printing machines are in communication with the server 150 via a communications network (e.g. a wireless communications network comprising Wi-Fi 8..
The processor 1 is connected to the communications interface 3. The processor 1 is connected to the user interface 5. The processor 1 is connected to the printing means 7. 25 The user interface 5 is connected to the communications interface 3.
The processor 1 is configured to receive information from the user interface 5. The processor 1 is configured to send information to the user interface 5. The processor 1 is configured to receive information from the communications interface 3. The processor 1 is configured to send information to the communications interface 3. The user interface 5 is configured to receive information from the user interface 5. The user interface 5 is configured to send information to the user interface 5. The processor 1 is configured to receive information from the printing means 7. The processor 1 is configured to send -18 -information to the printing means 7. The processor 1 is configured to process information received from any of: the user interface the communications interface; and, the printing means. The processor 1 is configured to send information based on information received from any of: the user interface 5; the communications interface 3; and, the printing means 7. The processor 1 is configured to generate printing machine notifications.
The printing machine is configured to store a hardware identifier. The hardware identifier is stored in a memory of the printing machine 100. The hardware identifier comprises a MAC address.
Each of the plurality of printing machines 100 is configured to send a printing machine notification to the server 150. Each of the plurality of printing machines is configured to receive a server notification from the server 150. The server 150 is configured to send a server notification to each of the printing machines 100. The server 150 is configured to receive a printing machine notification from each of the printing machines 100. In the example shown in Figure 1, the printing machine notifications and the server notifications are sent using MOTT.
Each of the printing machines 100 is configured to be operable to communicate with the 20 server 150 via the communications interface 3 to print a printable object from a selected catalogue of printable objects.
The communications interface 3 is configured to: send printing machine notifications to the server via the communications network; and, receive server notifications from the server 150. Each communications interface 3 is configured to communicate with the server via the communications network. In the example shown in Figure 1, the communications network is a wireless communications network, wherein the wireless communications network comprises Wi-Fie. The communications interface 3 comprises a Wi-Fi 8 module. The communications interface 3 may receive a list of printable objects which may be printed by the printing machine (e.g. the subset of printable objects to which the printing machine has access).
Each of the plurality of printing machines is configured to be operable to communicate -19 -with the server via the communications interface to obtain an instruction set from the selected catalogue of printable objects selected from a database of three-dimensional printable objects. Subsequently, each of the printing machines in the fleet is operable to print a printable object from the selected catalogue of printable objects based on the instruction set which correspond to the printable object.
The user interface 5 is configured to display a plurality of options (e.g. the user interface is a screen). For example, the plurality of options may comprise a list of printable objects which may be printed by the printing machine. The user interface comprises an input (e.g. a keyboard or touch screen). A user of the printing machine is able to select from the plurality of options displayed by the user interface using the input. For example, the process 1 may be configured to generate a printing machine notification, comprising an access request (e.g. a request for a specific instruction set), based on the input received by the user interface 5.
The printing means 7 is configured to be operable to follow an instruction set sent to the printing means 7 from the processor 1, wherein the printing means prints the printable object which corresponds to the instruction set The printing means 7 may be configured to perform any of the following types of three-dimensional printing: Binder Jetting (BJ) (e.g. ZCorp Spectrum z510); Digital Light Process (DLP) (e.g. Makex M-one Desktop DLP 3d Printer); Direct Metal Laser Sintering (DMLS); Material Jetting (MJ) (e.g. ABS 3D printer); Electron Beam Melting (EBM) (e.g. Arcam 020); Fused Deposition Modelling (FDM) (e.g. PowerSpec 3D Pro); Laser Object Manufacturing (LOM) (e.g. The Mcor Matrix); Multi Jet Fusion (MJF); Stereolithography (SLA) (e.g. 3D printer Pegasus Touch SLA technology); Selective Laser Sintering (SLS) (e.g. XYZprinting Nobel 1.0 SLA 3D Printer); Selective Laser Melting (SLM) (e.g. Optomec LENS 450).
For example, the printing means may comprise a Delta, FDM. The Delta FDM may comprise a heated extruder to deposit layers one on top of the other.
For example, the printing means may comprise any of: micro FDM printer "blocks"; and, -20 - "infinite-Z" printers (e.g. which fix the X-Y printing plane at the top which comprise a lowering bed; and/or which comprise a conveyor belt bed).
The server 150 may is configured to communicate with (e.g. send server notifications to) 5 each of the plurality of printing machines via the communications network. The printing machines 100 are configured to receive server notifications from the server via the communications network.
The server 150 is configured to control access to the selected catalogue of printable objects each printing machine 100 is operable to print based on the unique hardware identifier of the corresponding printing machine 100. The server 150 comprises a database of three-dimensional printable objects. The database comprises a plurality of catalogues of printable objects. The selected catalogue of printable objects is a database comprising a plurality of instruction sets. Each instruction set corresponds to a printable object.
To provide access to a given printing machine 100, the server 150 is configured to receive printing machine notifications, wherein the printing machine notifications comprise an access request and the unique hardware identifier of the given printing machine 100. The server 150 determines if the printing machine 100 is allowed access to the selected catalogue of printable objects based on the unique hardware identifier. The unique hardware identifier is compared to a whitelist of registered printing machines, wherein the whitelist comprises a list of hardware identifiers of printing machines which are allowed access to the selected catalogue of printable objects. The whitelist is generated by a registration process (described herein).
If the server 150 determines that the given printing machine is allowed access to the selected catalogue of printable objects (e.g. the unique hardware identifier of the given printing machine is on the whitelist) then the server sends a server notification comprising an instruction set or a unique link (e.g. a URL), wherein the unique link directs to a storage location comprising the instruction set. In examples the server sends a server notification comprising resources including the selected catalogue of printable objects -21 -If the server 150 determines that the given printing machine is not allowed access to the selected catalogue of printable objects (e.g. the unique hardware identifier of the given printing machine is not on the whitelist) then the server does not send a server notification comprising an instruction set or a unique link. The server 150 may add the unique hardware identifier of the given printing machine to a blacklist.
The server is configured to obtain a unique hardware identifier from each of the plurality of printing machines as part of a registration process with the printing machine. The 10 server is configured to provide access to the selected catalogue of printable objects based on the received hardware identifier.
The server 150 sends a server notification comprising an identification request to each of the printing machines 100 in the fleet. For example, the printing machines in the fleet may comprise any printing machine in communication with the server via the communication network. The identification request may be sent after a selected period of time (e.g. 1 hour) has elapsed since a previous identification request was sent by the server. Each of the plurality of printing machines100 is configured to send a printing machine notification to the server in response to the received server notification. Each of the plurality of printing machines is configured to send a printing machine notification to the server 150 wherein the notification comprises the unique hardware identifier to the server.
The server 150 may compare the received unique hardware identifiers with a current list of authorised printing machines. For example, the current list of authorised printing machines may comprise a list of printing machines (and their respective unique hardware identifiers) for which a subscription fee has been received by the operator of the server 150.
In examples, the printing machine notifications may comprise a user identifier (e.g. which identifies a specific user of the printing machine and/or the server). The server may provide access to a subset of the selected catalogue of printable objects based on any of: the received hardware identifier; and, a user identifier.
-22 -In examples, each of the plurality of printing machines may store a public key, and the server may store a corresponding private key for the public key. Each of the plurality of printing machines may be configured to send a printing machine notification comprising the public key (e.g. to provide the public key) to the server as part of the registration process. The server is configured to compare the public key with the private key to determine whether the corresponding printing machine is authorised to have access to the selected catalogue of printable objects.
If the server determines the public key obtained from a given printing machine corresponds with the private key, then the server determines that the given printing machine is authorised to have access to the selected catalogue of printable objects. The unique hardware identifier of the printing machine may be added to a whitelist.
If the server determines the public key obtained from a given printing machine does not correspond with the private key, then the server determines that the given printing machine is not authorised to have access to the selected catalogue of printable objects. The unique hardware identifier of the printing machine may be added to a blacklist.
The server is configured to perform an action in the event that the server determines that the corresponding printing machine is not authorised to have access to the selected catalogue of printable objects. The action may comprise at least one of (i) sending a message to the corresponding printing machine to perform a factory reset, (ii) sending a message to the corresponding printing machine to perform a memory wipe, and (iii) blocking access to the selected catalogue of printable objects for the corresponding printing machine.
In use, to perform a registration process the server 150 sends a server notification to each of the printing machines 100 wherein the server notification comprises a request for the unique hardware identifier from each of the plurality of printing machines 100. Each of the printing machines 100 receives the server notification from the server 150. Each of the printing machines sends, to the server, a printing machine notification based on the received server notification. The printing machine notification sent from each printing -23 -machine comprises the unique hardware identifier of the respective printing machine. The server 150 compares the received unique hardware identifiers with a current list of authorised printing machines 100.
If the server 150 determines that the given printing machine is allowed access to the selected catalogue of printable objects (e.g. the unique hardware identifier of the given printing machine is on the whitelist) then the server sends a server notification comprising an instruction set or a unique link (e.g. a URL), wherein the unique link directs to a storage location comprising the instruction set. In examples the server sends a server notification comprising resources including the selected catalogue of printable objects.
If the server 150 determines that the given printing machine is not allowed access to the selected catalogue of printable objects (e.g. the unique hardware identifier of the given printing machine is not on the whitelist) then the server does not send a server notification comprising an instruction set or a unique link. The server 150 may add the unique hardware identifier of the given printing machine to a blacklist.
In use, a printing machine 100 obtains an instruction set from the selected catalogue of printable objects (e.g. by sending a printing machine notification) and executes the instructions to print the printable object which corresponds to the instruction set e.g. the printing means 7 of the printing machine 100 operates to print the printable objects. A given printing machine 100 sends, using the communications interface 3, a printing machine notification to the server 150. The printing machine notification comprises an access request e.g. a request to access a particular instruction set.
The server may be further configured to obtain a user identifier from a user operating each printing machine, and wherein the server is configured to provide access to a subset of the selected catalogue of printable objects based on the user identifier.
Figure 3 illustrates a flowchart of a method of controlling access to a selected catalogue of printable objects for a three-dimensional printing machine.
-24 -The method comprises the following steps.
Obtaining 301 a unique hardware identifier identifying the three-dimensional printing machine.
The server 150 is configured to send a server notification comprising a request for the unique hardware identifier from each of the plurality of printing machines. Based on the request for the unique hardware identifier, each of the printing machines 100 is configured to send, to the server 150, a printing machine notification comprising the unique hardware identifier of the printing machine. The server 150 is configured to receive the printing machine notification comprising the unique hardware identifier from each of the respective printing machines 100.
Obtaining 303 a public key from the three-dimensional printing machine.
Each of the plurality of printing machines stores a public key. The server stores a corresponding private key for the public key. Each of the plurality of printing machines is configured to send a printing machine notification comprising the public key. The server 150 is configured to send a server notification comprising a request for the public key from each of the plurality of printing machines. Based on the request for the public key, each of the printing machines 100 is configured to send, to the server 150, the public key. The server 150 is configured to receive the printing machine notification comprising the public key from each of the respective printing machines 100.
Comparing 305 the public key to a private key to determine whether the printing machine is authorised.
The server is configured to compare the public key obtained from each of the printing machines with the private key. The server is configured to determine if the public key 30 obtained from each of the printing machines corresponds with the private key.
The server either: (i) determines the public key obtained from a given printing machine -25 -corresponds with the private key; or, (ii) determines the public key obtained from a given printing machine does not correspond with the private key.
The server is configured to determine whether the corresponding printing machine is authorised to have access to the selected catalogue of printable objects based on the comparison of the private key and the public key obtained from each of the printing machines.
If the server (i) determines the public key obtained from a given printing machine corresponds with the private key, then the server determines that the given printing machine is authorised to have access to the selected catalogue of printable objects. Accordingly, the path labelled "Yes" in Figure 3 is followed.
If the server (ii) determines the public key obtained from a given printing machine does not correspond with the private key, then the server determines that the given printing machine is not authorised to have access to the selected catalogue of printable objects. Accordingly, the path labelled "No" in Figure 3 is followed. The method is terminated.
Determining 307 the selected catalogue of printable objects that the printing machine is to have access to, selected from a database of printable objects, based on the unique hardware identifier.
The server is configured to provide access to a subset of the selected catalogue of 25 printable objects based on the unique hardware identifier. For example, the server may only provide access to the subset of the selected catalogue of printable objects which comprises instruction set types which are executable by the printing machine.
Providing 309 a unique link to the printing machine for the printing machine to access the 30 selected catalogue of printable objects from the database of printable objects that the printing machine is determined to have access to.
The server is configured to send a server notification to each of the printing machines -26 -determined to have access to the selected catalogue of printable objects, wherein the server notifications comprise a unique link.
The unique link (e.g. a URL) directs to a storage location comprising the instruction set. 5 In examples the server sends a server notification comprising resources including the selected catalogue of printable objects The unique link may be time limited e.g. the unique link may be valid for a predetermined period of time. For example, the predetermined period of time may be 24 hours.
Providing unique links which are time limited may advantageously prevent unauthorised access to the selected catalogue of printable objects. For example, the unique link may not be used to access to the selected catalogue of printable objects once a subscription of a particular printing machine has expired.
Figure 4 illustrates a flowchart of a method of printing a three-dimensional object.
Obtaining 401 a plurality of photographs of the object to be printed, and a unique hardware identifier identifying a selected three-dimensional printing machine.
The plurality of photographs of the object are obtained by a camera. The plurality of photographs are sent to a server. For example, the plurality of photographs may be obtained by a smartphone camera and sent to the server via a communications network (e.g. a wireless communications network comprising Wi-Fi) to the server. The identifier is the unique hardware identifier of the printing machine. The identifier is sent to the server (e.g. the printing machine is configured to send a printing machine notification comprising the unique hardware identifier to the server).
The unique hardware identifier may comprise any of: a unique hardware identifier (e.g. alphanumeric string); a barcode; a OR code; and NFC.
In examples the unique hardware identifier may be obtained by a computing device (e.g. a smartphone; tablet computer) and sent from the mobile computing device via a communications network (e.g. a wireless communications network comprising W-Fi) to -27 -the server.
Performing 403 photogrammetry on the plurality of photographs of the object to create a real-time three-dimensional model of the object.
The plurality of photographs of the object are processed by a photogrammetry algorithm to create a real-time three-dimensional model of the object. The server stores the photogrammetry algorithm. The server executes the photogrammetry algorithm.
Creating 405 an instruction set for printing the object based on the real-time three-dimensional model of the object.
An instruction set is generated by an instruction set generation algorithm. The instruction set generation algorithm receives the real-time three-dimensional model as an input. The instruction set generation algorithm receives an indication of the printing machine type e.g. the unique hardware identifier. The instruction set generation algorithm generates an instruction set based on the inputs. The instruction set generation algorithm outputs the instruction set.
The server stores the instruction set generation algorithm. The server executes the instruction set generation algorithm.
In examples the photogrammetry algorithm and/or the instruction set generation algorithm may be stored on and executed by a mobile computing device (e.g. a smartphone). For example, the photogrammetry algorithm and/or the instruction set generation algorithm may be downloadable as a smartphone application. In such examples, the generated instruction set is sent to the server.
Sending 407 the instructions to the printing machine identified by the identifier for printing 30 the three-dimensional object.
The server 150 is configured to send a server notification comprising the instruction set to a printing machine. The printing machine 100 is configured to receive the server -28 -notification comprising instruction set (e.g. via the communications interface 3).
The printing machine is configured to execute the instruction set to print the printable object which corresponds to the set of instructions.
In examples, wherein the photogrammetry algorithm is stored on and executed by a mobile computing device, a real-time three-dimensional model of the object is generated on the mobile computing device.
In examples, wherein the real-time three-dimensional model of the object is generated on the mobile computing device, the real-time three-dimensional model of the object may be sent to the server e.g. via a communications network. The server may comprise an instruction set generation algorithm configured to generate an instruction set based on the real-time three-dimensional model of the object.
In examples, wherein the real-time three-dimensional model of the object may be generated using a three-dimensional scanner. For example, the three-dimensional scanner may be configured to perform industrial computed tomography scanning and/or structured-light three-dimensional scanning.
In examples, wherein the photogrammetry algorithm and instruction set generation algorithm is stored on and executed by a mobile computing device, the mobile computing device generates an instruction set based on the real-time three-dimensional model of the object is generated on the mobile computing device. The instruction set may be sent to the server e.g. via a communications network.
Figure 5 illustrates a flowchart of a method of building a catalogue of three-dimensional printable objects, the method comprising: (a) Obtaining 501 a plurality of photographs of an object to be printed, and an object identifier identifying the type of the object to be printed.
The plurality of photographs are obtained by a camera. The plurality of photographs are -29 -sent to a server.
The object identifier may be indicative of the type of object to be printed e.g. a face mask. In examples, the object identifier is indicative of the class of the object to be printed e.g. a medical device. The object identifier may be a label for the object. The object identifier may be an alphanumeric string with any of the following formats: "classOf Object"; "typeOf Object"; "classOfObject; typeOfObject".
For example, if the object is a medical device such as a face mask, the identifier may be: "medical class; face mask". If the object is a medical device such as a syringe body, the identifier may be: "medical class; syringe body". The identifier is sent to the server via a communications network (e.g. a wireless communications network comprising Wi-Fi) to the server.
In examples, there may be provided: a printer-end identifier which may be displayed at a printing machine which is operated by a user; and, a server-end identifier which may be used at the server. The printer-end identifier may comprise a convenient name that the user may input e.g. face mask. The server-end identifier may be different to the printer-end identifier. There may be a mapping between a given printer-end identifier and a given server-end identifier. The mapping may comprise a look-up table which may, for example, be stored at any of: the server; and, the printing machine.
(b) Performing 503 photogrammetry on the plurality of photographs of the object to create a real-time three-dimensional model of the object.
The plurality of photographs of the object are processed by a photogrammetry algorithm to create a real-time three-dimensional model of the object. The server stores the photogrammetry algorithm. The server executes the photogrammetry algorithm.
(c) Repeating 505 steps (a) and (b) a plurality of times.
(d) Building 507 a database comprising a plurality of models of three-dimensional objects belonging to the same type of objects as identified by the object identifier.
-30 -The plurality of models of three-dimensional objects belonging to the same type may share a common 'type attribute' in the database (e.g. the models of the same type are labelled with the same type attribute). In the example, of medical devices, these may 5 share the type attribute: "face mask".
The plurality of models of three-dimensional objects belonging to the same class may share a common 'class attribute' in the database (e.g. the models of the same class are labelled with the same class attribute). In the example, of medical devices, these may 10 share the class attribute: "medical".
(e) Creating 509 a density plot of the plurality of models of the three-dimensional objects belonging to the same type of objects as identified by the object identifier.
The density plot may comprise plotting a plurality of points for each of the three-dimensional objects about an origin in a three-dimensional space.
Each of the plurality of points for each of three-dimensional objects corresponds to a marker of the type of object. Each of markers defines a feature common to the type of 20 object. For example, if the type is a face mask, there is a marker for a nose peak position; there is another marker for a chin position and so on.
(f) Creating 511 a baseline three-dimensional model for the type of object based on the density plot of the plurality of models of the three-dimensional objects.
Each of the markers from the plurality of models is averaged to obtain an average marker. The average markers define the baseline three-dimensional model for the type of object.
In examples, the type of object for which the baseline three-dimensional model is created (henceforth referred to as the "first object") may be configured with use with a second object. The first object and the second object are configured to fit together in a complementary manner. For example, the first object may be a face mask and the -31 -second object may be a face of a person. In another example, the first object may be a syringe body (e.g. part of the syringe for receiving a plunger) and the second object may be a syringe plunger.
A three-dimensional model of the second object may be generated e.g. by any of the photogrammetry methods described herein. An adaptation algorithm may be configured to receive as inputs: the baseline three-dimensional model of the first object; and, the generated three-dimensional model of the second object. The adaptation algorithm may be configured to adapt the baseline three-dimensional model such that the fit (e.g. mutual conformity) of the first object and the second object is increased. The adaptation algorithm may be configured to generate an adapted three-dimensional model for the first object wherein the fit between the adapted three-dimensional model of first object and the second three-dimensional model is greater than the fit between the baseline three-dimensional model and the second three-dimensional model.
In examples wherein the first object is a face mask and the second object is a face of a person, the nose height of the face mask of the adapted three-dimensional model may be increased or decreased relative to the baseline three-dimensional model depending on a determined nose height of the face in the second three-dimensional model.
Accordingly, the fit between a face mask printed from the adapted three-dimensional model and the face may be increased in comparison to the fit between a face mask printed from the baseline three-dimensional model and the face.
In examples wherein the first object is a syringe body and the second object is a syringe plunger, a diameter of the syringe body of the adapted three-dimensional model may be increased or decreased relative to the baseline three-dimensional model depending on a determined diameter of the syringe plunger in the second three-dimensional model. Accordingly, the fit between a syringe body printed from the adapted three-dimensional model and the syringe plunger may be increased in comparison to the fit between a syringe body printed from the baseline three-dimensional model and the syringe plunger.
(g) Creating 513 a set of instructions for printing the object based on the baseline three-dimensional model.
-32 -The baseline three-dimensional model for the type is input to an instruction set generation algorithm.
In examples, the adapted three-dimensional model is input to an instruction set generation algorithm.
Herein the term "MAC address" may refer to a media access control address. A MAC address may be a unique identifier assigned to a communications interface a (e.g. a 10 network interface controller (NIC)). The MAC address may be used as a network address in communications within a network. MAC addresses may be used in IEEE 802 networking technologies, such as, for example, Ethernet, and Bluetooth.
Herein the term "MOTT" (e.g. MO Telemetry Transport or Message Queuing Telemetry Transport) may refer to an open OASIS and ISO standard (ISO/IEC 20922) lightweight, publish-subscribe network protocol for sending messages between devices. The protocol may run over TCP/IP; however, any network protocol that provides ordered, lossless, bidirectional connections can support MQTT.
Herein the term "real-time three dimensional model" may refer to a three-dimensional model is generated presently upon initiation of a photogrammetry algorithm (e.g. a three-dimensional model generated on-the-fly using a photogrammetry algorithm). For example, a three-dimensional model is generated within a few moments using a photogrammetry algorithm (e.g. less than 10 minutes) may be referred to as a "real-time three dimensional model".

Claims (25)

  1. -33 -CLAIMS: 1. A fleet of three-dimensional printing machines, comprising: a plurality of three-dimensional printing machines; and a server configured to communicate with each of the plurality of three-dimensional printing machines; wherein each of the plurality of printing machines comprises a communications interface operable to communicate with the server, and a unique hardware identifier; wherein each of the plurality of printing machines is configured to be operable to 10 communicate with the server via the communications interface to print a printable object from a selected catalogue of printable objects selected from a database of three-dimensional printable objects; and wherein the server is configured to control access to the selected catalogue of printable objects each printing machine is operable to print based on the unique 15 hardware identifier of the corresponding printing machine.
  2. 2. The fleet of claim 1 wherein the server is configured to obtain a unique hardware identifier from each of the plurality of printing machines as part of a registration process with the printing machine, and wherein the server is configured to provide access to the 20 selected catalogue of objects based on the received hardware identifier.
  3. 3. The fleet of claim 2, wherein each of the plurality of printing machines stores a public key, and the server stores a corresponding private key for the public key, and wherein each of the plurality of printing machines is configured to provide the public key as part of the registration process, and wherein the server is configured to compare the public key with the private key to determine whether the corresponding printing machine is authorised to have access to the selected catalogue of printable objects.
  4. 4. The fleet of claim 2 or 3 wherein, as part of the registration process, if the server determines that a printing machine is to have access to a selected catalogue of printable objects, the server sends a unique link to the selected printing machine that provides a unique link for the selected printing machine to have access to resources including the selected catalogue of printable objects.-34 -
  5. 5. The fleet of claim 3 or 4 as dependent thereon, wherein the server is configured to perform an action in the event that the server determines that the corresponding printing machine is not authorised to have access to the selected catalogue of printable objects 5
  6. 6. The fleet of claim 5 wherein the action comprises at least one of (i) sending a message to the corresponding printing machine to perform a factory reset, (ii) sending a message to the corresponding printing machine to perform a memory wipe, and (iii) blocking access to the selected catalogue of printable objects for the corresponding printing machine.
  7. 7. The fleet of any of the previous claims wherein the server is further configured to obtain a user identifier from a user operating each printing machine, and wherein the server is configured to provide access to a subset of the selected catalogue of printable 15 objects based on the user identifier.
  8. 8. A method of controlling access to a catalogue of printable objects for a three-dimensional printing machine, the method comprising: obtaining a hardware identifier identifying the three-dimensional printing machine; obtaining a public key from the three-dimensional printing machine; comparing the public key to a private key to determine whether the printing machine is authorised; determining the catalogue of printable objects that the printing machine is to have access to, selected from a database of printable objects, based on the hardware 25 identifier; in the event that the printing machine is determined to be authorised, providing a unique link to the printing machine for the printing machine to access the catalogue of printable objects from the database of printable objects that the printing machine is determined to have access to.
  9. 9. The method of claim 8 comprising repeating the method at a selected time interval to determine (i) whether the machine is authorised and (ii) the catalogue of printable objects that the printing machine is to have access to.-35 -
  10. 10. The method of claim 8 or 9 wherein the hardware identifier comprises the MAC address of the printing machine, and wherein the method comprises determining the catalogue of printable objects that the printing machine is to have access to, selected from a database of printable objects, by looking up the MAC address in a look up table of MAC addresses and access rights.
  11. 11. The method of claim 8, 9 or 10 further comprising logging and keeping a record of every time the printing machine accesses a printable object from the catalogue of 10 printable objects, the record comprising information identifying the printing machine and the printable object accessed from the catalogue.
  12. 12. The method of claim 11 further comprising logging and keeping a record of every time the printing machine accesses a printable object from the catalogue of printable 15 objects on a distributed ledger.
  13. 13. The fleet of any of claims 1 to 7 wherein the server is configured to perform the method of any of claims 8 to 12.
  14. 14. The fleet of claim 13 wherein the sever is configured to perform the method of any of claims 8 to 12 on a periodic basis.
  15. 15. A three-dimensional printing machine operable to print a three-dimensional object based on a catalogue of printable objects, the printing machine comprising a 25 communications interface and a processor, wherein the processor is configured to: send a hardware identifier identifying the three-dimensional printing machine, via the communications interface, to a remote server; send a public key, via the communications interface, to the remote server; obtain a unique link, via the communications interface, providing access to a 30 selected catalogue of printable objects that the printing machine is to have access to, selected from a database of printable objects, based on the hardware identifier; use the unique link to obtain instructions from the selected catalogue of printable objects for use in printing a three-dimensional object.-36 -
  16. 16. The three-dimensional printing machine of claim 15 wherein the processor is configured to execute an action in response to receiving an action message from the remote server, the action comprising at least one of: (i) performing a factory reset, 00 5 performing a memory wipe, and clip blocking access, by a user, to the printing machine.
  17. 17. A method of printing a three-dimensional object, the method comprising: obtaining a plurality of photographs of the object to be printed, and an identifier identifying a selected three-dimensional printing machine; performing photogrammetry on the plurality of photographs of the object to create a real-time three-dimensional model of the object; creating a set of instructions for printing the object based on the real-time three-dimensional model of the object; sending the instructions to the printing machine identified by the identifier for 15 printing the three-dimensional object.
  18. 18. The method of claim 17 comprising: obtaining an object identifier indicating the class of object being photographed; building a database comprising a plurality of models of three-dimensional objects 20 belonging to the same class of objects as identified by the object identifier; creating a density plot of the plurality of models of the three-dimensional objects belonging to the same class of objects as identified by the object identifier; creating a baseline three-dimensional model of the object based on the density plot of the plurality of models of the three-dimensional objects; and creating the set of instructions based on the baseline three-dimensional model and the real-time three-dimensional model of the object.
  19. 19. The method of claim 18 comprising creating the set of instructions based on the baseline three-dimensional model and the real-time three-dimensional model of the 30 object when the database comprises at least a selected threshold number of models of three-dimensional objects belonging to the same class.
  20. 20. The method of claim 18 or 19 wherein building a database comprising a plurality -37 -of models of three-dimensional objects belonging to the same class of objects as identified by the object identifier comprises: obtaining a plurality of photographs of an object to be printed, belonging to the same class of objects, from a plurality of sources; and performing photogrammetry on the plurality of photographs from the plurality of sources to create a plurality of three-dimensional models of the objects belonging to the same class, selected catalogue of printable objects each printing machine is operable to print based on the unique hardware identifier of the corresponding printing machine.
  21. 21. A method of building a catalogue of three-dimensional printable objects, the method comprising: (a) obtaining a plurality of photographs of an object to be printed, and an object identifier identifying the class of the object to be printed; (b) performing photogrammetry on the plurality of photographs of the object to 15 create a real-time three-dimensional model of the object; (c) repeating steps (a) and (b) a plurality of times; (d) building a database comprising a plurality of models of three-dimensional objects belonging to the same class of objects as identified by the object identifier; (e) creating a density plot of the plurality of models of the three-dimensional 20 objects belonging to the same class of objects as identified by the object identifier; (f) creating a baseline three-dimensional model for the class of object based on the density plot of the plurality of models of the three-dimensional objects; and (g) creating a set of instructions for printing the object based on the baseline three-dimensional model. 25
  22. 22. The method of claim 21 comprising creating the baseline three-dimensional model for the class of object based on the density plot of the plurality of models of the three-dimensional objects when the database comprises at least a selected threshold number of models of three-dimensional objects belonging to the same class.
  23. 23. The method of claim 21 or 22 wherein (a) further comprises a machine identifier identifying a selected three-dimensional printing machine that is to print the object, and wherein (g) comprises creating the set of instructions based on the identifier identifying a -38 -selected three-dimensional printing machine that is to print the object.
  24. 24. The method of any of claims 21 to 23 further comprising determining a set of printing machines that is to have access to the class of printable objects; and sending the set of instructions to the determined set of printing machines based on the object identifier identifying the class of the object to be printed.
  25. 25. A computer readable non-transitory storage medium comprising a program for a computer configured to cause a processor to perform the method of any of claims 8 to 12 10 and 17 to 24
GB2012099.4A 2020-08-04 2020-08-04 Apparatus and method Pending GB2597926A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB2012099.4A GB2597926A (en) 2020-08-04 2020-08-04 Apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB2012099.4A GB2597926A (en) 2020-08-04 2020-08-04 Apparatus and method

Publications (2)

Publication Number Publication Date
GB202012099D0 GB202012099D0 (en) 2020-09-16
GB2597926A true GB2597926A (en) 2022-02-16

Family

ID=72425254

Family Applications (1)

Application Number Title Priority Date Filing Date
GB2012099.4A Pending GB2597926A (en) 2020-08-04 2020-08-04 Apparatus and method

Country Status (1)

Country Link
GB (1) GB2597926A (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1228419A1 (en) * 1999-05-25 2002-08-07 Silverbrook Research Pty. Limited Document request via interface surface
US20160112585A1 (en) * 2013-09-30 2016-04-21 Samsung Electronics Co., Ltd. System and method for providing cloud printing service
US20160180061A1 (en) * 2014-12-23 2016-06-23 Oleg POGORELIK Technologies for enhanced user authentication using advanced sensor monitoring
US20170157859A1 (en) * 2011-04-27 2017-06-08 Grow Software Limited Three-Dimensional Design and Manufacturing Systems
US20190342344A1 (en) * 2014-06-30 2019-11-07 Vescel, Llc Controlling permissible actions a computing device can perform on a data resource based on a use policy evaluating an authorized context of the device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1228419A1 (en) * 1999-05-25 2002-08-07 Silverbrook Research Pty. Limited Document request via interface surface
US20170157859A1 (en) * 2011-04-27 2017-06-08 Grow Software Limited Three-Dimensional Design and Manufacturing Systems
US20160112585A1 (en) * 2013-09-30 2016-04-21 Samsung Electronics Co., Ltd. System and method for providing cloud printing service
US20190342344A1 (en) * 2014-06-30 2019-11-07 Vescel, Llc Controlling permissible actions a computing device can perform on a data resource based on a use policy evaluating an authorized context of the device
US20160180061A1 (en) * 2014-12-23 2016-06-23 Oleg POGORELIK Technologies for enhanced user authentication using advanced sensor monitoring

Also Published As

Publication number Publication date
GB202012099D0 (en) 2020-09-16

Similar Documents

Publication Publication Date Title
EP2899677B1 (en) Flexible three-dimensional printing
KR102230013B1 (en) Electronic device for providing information to courier and control method thereof
EP2051440B1 (en) A method for executing management operation by communication terminal and a terminal and system thereof
US20080309665A1 (en) Distributed rapid prototyping
WO2007041916A1 (en) Managing method of terminal devices
EP3340100B1 (en) Additive manufacturing system and method for validating additively manufactured components
CN1846402A (en) Specifying management nodes in a device management system
CN1653444A (en) Projector device network management system
CN104503717A (en) Network-based 3D (three-dimensional) printing control method
CN102196122A (en) Account management apparatus and method of managing account
US11080241B2 (en) Document collaboration
JP2015138297A (en) Distribution system and control method therefor
WO2014066458A1 (en) Method and system for automatic agnostic provisioning of a computing device
CA2917555A1 (en) Three-dimensional object storage, customization, and procurement system
CN104767900A (en) INFORMATION PROCESSING APPARATUS and INFORMATION PROCESSING METHOD
US20060091199A1 (en) Retrieving information on material used in solid freeform fabrication
US10666683B2 (en) User interface for low-touch security policy provisioning
GB2597926A (en) Apparatus and method
CN111553653B (en) Seal number management method based on physical seal and related equipment
CN101795280B (en) Management device and management method
CN1980304A (en) Image forming device to create a passcode and method thereof
CN113220633A (en) Unified file coding management method and system
JP2006268412A (en) File distribution system, file server, file distribution method and file distribution program
KR101506040B1 (en) Apparatus and Method for supporting multiple Device Management Authorities
CN111210902A (en) Emergency rescue intelligent scheduling method and system, server, terminal and storage medium