WO2014193311A1 - 3d printer architecture - Google Patents

3d printer architecture Download PDF

Info

Publication number
WO2014193311A1
WO2014193311A1 PCT/SG2014/000250 SG2014000250W WO2014193311A1 WO 2014193311 A1 WO2014193311 A1 WO 2014193311A1 SG 2014000250 W SG2014000250 W SG 2014000250W WO 2014193311 A1 WO2014193311 A1 WO 2014193311A1
Authority
WO
WIPO (PCT)
Prior art keywords
printer
dimensional
server
user
fabricator
Prior art date
Application number
PCT/SG2014/000250
Other languages
French (fr)
Inventor
Kok Beng Neo
Bertrand Charles Henri BRASSELET
You Jun TSANG
Francis Regan FRANCIS XAVIER JELASTINMARY
Ashish Krishnarao AWAGHAD
Wye Mun CHIN
Kheng Leng Brendan GOH
Original Assignee
Pirate3Dp Pte. 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 Pirate3Dp Pte. Ltd. filed Critical Pirate3Dp Pte. Ltd.
Publication of WO2014193311A1 publication Critical patent/WO2014193311A1/en

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4097Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by using design data to control NC machines, e.g. CAD/CAM
    • G05B19/4099Surface or curve machining, making 3D objects, e.g. desktop manufacturing
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0621Item configuration or customization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33225Interface nc machine to data server
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Definitions

  • the present invention relates to a system for printing three dimensional (hereinafter referred to as 3D) objects. More particularly, the system for printing 3D objects uses a remote architecture for the printer to access the designs for further printing or fabrication.
  • 3D three dimensional
  • Three-dimensional printing is known in the art.
  • an image of a three-dimensional structure for example, on a computer screen, can be printed in three-dimensions using a specially engineered composite material that starts out as a powder.
  • a binding material can be added to the powder to solidify the powder particles together for creating the three-dimensional structure.
  • the present invention seeks to provide a system that alleviates the above mentioned drawbacks at least in part.
  • a first advantage of the system and method in accordance with this invention is that users are able to instruct a 3D printer to print a three dimensional design remotely. This ensures that designs selected are printed accurately without the need for further calibration.
  • a second advantage of the system and method in accordance with this invention is that the instructions are encrypted, encoded and/or authenticated for security and easy identification. This allows a high level of security and peace of mind.
  • a third advantage of the system and method in accordance with this invention is that the library of objects is easily available for selection and printing. This allows for a user to have easy access to complex designs and even upload designs for other people to use.
  • a fourth advantage of the system and method is the ease of use, as a user that is registered is able to select, purchase and issue print commands for a three dimensional design through a single action, like a mouse click.
  • a system suitable for fabricating three dimensional objects which comprises a computing device configured to access an online database of three dimensional objects and allows the selection of a three dimensional object to be fabricated, a server arranged to receive the information based on the selected three dimensional object, and arranged to use the information to retrieve additional information for preparing a print job, a three dimensional fabricator arranged to receive the print job from said server, whereby the three dimensional fabricator would carry out fabrication of the three dimensional object based on the print job received.
  • the conversion to machine readable code done is by the three dimensional fabricator.
  • the print job includes code that is machine readable.
  • the conversion to machine readable code is done by the server.
  • An alternate embodiment of the invention is that the print job is converted to machine readable code by the computing device.
  • the server is a virtualized server cloud.
  • the database can be based on the server.
  • the instruction to prepare the print job is issued by the server to the three dimensional fabricator. Also, the instruction to prepare the print job can be accompanied by the additional information.
  • the instruction to prepare the print job is issued by the application to the three dimensional fabricator. Also, upon receiving the print job, the three dimensional fabricator retrieves additional information from the server.
  • the additional information includes data files relating to the selected three dimensional object to be fabricated.
  • the data files can be in STL format.
  • the additional information includes user account information based on the registration and log in of a user.
  • the system can allow for multiple three dimensional objects to be selected at the same time for fabrication.
  • the server would manage multiple print jobs and prioritise them accordingly. Alternatively, the server would manage the multiple print jobs and fabricate the objects concurrently.
  • the computing device can be one of a personal computer, a mobile computing device with an application or a mobile phone with an application.
  • the computing device may be any device capable of accessing the printer and/or server for selection of a 3D object for printing.
  • a computer implemented method for fabricating three dimensional objects which comprises allowing a user to access a database of objects, selecting an item to be fabricated from the database, and in response to a single action being performed, sending a request to fabricate the item with information relating to the user to a server, the server upon receiving the request, carries out the steps of retrieving additional information, generating an order for the item, and sending fabrication instructions a three dimensional fabricator, whereby the item is ordered and fabricated without using a shopping cart ordering model.
  • the fabrication instructions includes machine readable code that the three dimensional fabricator uses to fabricate the item. Also, the three dimensional fabricator converts the fabrication instructions to machine readable code and fabricates the item according to the machine readable code.
  • the single action is the clicking a button.
  • the additional information includes account information relating to the user. Also, the account information includes payment details that allows the user to purchase items from the database.
  • the database is hosted on the server. Also, the user can access the database through a website. In yet a further embodiment, the user can access the database through an application on a computing device and instruct the three dimensional fabricator accordingly.
  • an apparatus for fabricating three dimensional objects comprising a processor arranged to receive instructions to fabricate at least one three dimensional object, an electronic storage to store the instructions and a three dimensional fabricator, whereby the processor is arranged to process the instructions and instruct the three dimensional fabricator to carry out the fabrication.
  • the processor is arranged to covert the instructions to machine readable code for the three dimensional fabricator.
  • Fig. 1 is a view of an embodiment of the invention showing the system and its components.
  • Fig. 2 is a view of an embodiment of the invention showing the system flowchart.
  • Fig. 3 is a view of an embodiment of the invention showing the application flowchart.
  • Fig 4 is of an embodiment of the invention showing the system flow in the view of a user downloading and printing an object.
  • Fig 5 is of an embodiment of the invention showing the system flow in the view of a user creating an object.
  • a system comprising a server 1 10. preferably (but not limited to) a cloud (i.e. a cloud server), an application residing on a device 120, and a 3D printer 130 (as shown in Figure 1 ).
  • the system is particularly suited, but not limited to 3D printers coupled with cloud architectures for 3D printing or rapid prototyping and will be described in this context.
  • the server comprises a relay server to relay communications via the Internet remotely and library server for the management of the library object database.
  • the device 120 can be any electronic device that can connect wirelessly to a wireless fidelity (Wi-Fi) networks or conventional phone networks, such as mobile devices like smartphones, personal digital assistant (PDA) phones and tablets, including mobile devices such as the iPhone or the iPad or any other iOS devices, as well as Android-based devices.
  • Wi-Fi wireless fidelity
  • PDA personal digital assistant
  • the 3D printer is a 3D printer 30 that connects to the cloud server 1 10 either wirelessly or through a wired (e.g. cable) connection 150.
  • the dedicated software application comprises user interface and necessary executable software instructions installed on the user device 120 for achieving the following:- i. allow a user to access the server 1 10 (which may involve creation of an account); and/or
  • each user is associated with an account in the server and then each account is paired 140 with the identification number of at least one 3D printer 130. It is to be appreciated that each account may be paired 140 with more than one 3D printers 130.
  • the pairing and account data are recorded by the cloud server 1 10 and is later used to mediate the interaction between the user and the paired 3D printer 130.
  • This pairing between the 3D printer 130 and a user's account is achieved through a communication protocol setup between the application running on the device 120 and the 3D printer 130, and has 2 purposes: to associate the 3D printer 130 with the user's account; to transfer network connection data to the firmware on the 3D printer 130. Additional information on the user settings such as specify the 3D printer 130 to connect wirelessly via Wi-Fi to the nearest available hotspot, instead of using the Ethernet cable connection can be communicated and stored.
  • the communication protocol may be audio or comprises any other forms of communication setup, whether wired or wireless, such as Wi-Fi, LAN, etc.
  • the communication connections 140, 150, 160 can be Transmission Control Protcol (TCP) connections that is end-to- end authenticated, encrypted and/or encoded.
  • TCP Transmission Control Protcol
  • the user may then begin issuing instructions to the 3D printer 130 from his mobile device 120, remotely 140.
  • the mode of communication between the 3D printer and the server or mobile device can either be on demand or polling.
  • the user may associate more than one 3D printer 130 with his account, and the PirateCove app will allow him to choose which 3D printer 130 to print from if there is more than one 3D printer 130 associated.
  • the system can function either via a polling based type communication such as "Restful API" or using open communication channel including other forms of TCP/IP, which can mean that no direct connections are established between the mobile device 120 and 3D printer 130.
  • the 3D printer 130 periodically or at a specified user defined time "checks-in” with the cloud server 1 10 to see if any instructions were left there by the user's mobile device 120.
  • the time interval for performance of such "checks-in” may be every 30 to 60 seconds or at any other time interval as predefined. If no instructions are detected, the 3D printer 130 remains idle, and only a status update is delivered. Check-in may also occur even when using an open communication channel, especially when the printer requests for it (predefined) in order for a more responsive system.
  • the application is also able to check if a 3D printer 130 is locally accessible within the same network, either through a cable connection or wirelessly.
  • the user is then able to easily select a three dimensional object via the application, adjust the printing options such as scale, quality, adhesion, enable support etc, and start the print job.
  • the application would then issue the print instruction with a file format, such as an STL file which is a file format native to the stereolithography CAD or AutoCAD software for use in generation of a 3D object.
  • the printer 130 is accessible locally, the printer would receive the instructions and fabricate the three dimensional object accordingly.
  • the STL file and printing request is sent to the cloud server 10 where is it stored temporarily while waiting for a printer 130 to be available.
  • the 3D printers 130 would poll the cloud server 0 and start a new task upon detecting that there is an outstanding print instruction from an associated user in the queue.
  • the cloud server 1 10 may be configured or arranged to push print instructions to the printer 130.
  • the 3D printer 130 would queue the requests that can be sent from various sources and prints files based on priority. This can be a first-come-first serve priority or any other priority system.
  • the 3D printer 130 would have a processor that allows the 3D printer 130 to communicate with the cloud server 1 10 and the mobile device 120 via the application. Upon receiving a print instruction, the processor would save the instructions locally and convert the STL file to machine instructions for the fabrication of the three dimensional object.
  • each user's account has a print-queue, which is a list of 3D objects that a user wants the 3D printer 130 to create.
  • the 3D printer 130 may check-in with the cloud server 1 10 to discover if any objects are present in the queue. If an object is present, the 3D printer 130 will first check to see if sufficient raw material is available, and then if the previous object has been cleared from the build platform. If both prior conditions are met, the printer will initialise itself and begin printing the object in the print queue. During printing, the 3D printer 130 continues to deliver a status update about its progress to the cloud server 1 10 at regular intervals (for example 60 seconds) via connection 150. The user can set up the 3D printer such that if multiple print jobs are received, the 3D printer 130 would evaluate whether it is possible to print multiple print jobs in a single run, so as to minimise time require to fabricate.
  • a status update may be pushed 160 from the cloud server 1 10 to the mobile device 120 in the event that an important message sent by the 3D printer 130 needs to be reviewed by the user in a time sensitive manner, for example: insufficient material present, mechanical jamming or network connection failure.
  • This communication stream can be either via TCP or web socket, depending on the application platform being used.
  • a network connection failure can occur if a 3D printer 130 fails to check into the cloud server 1 10 at the next stipulated time, hence the issuance of a network error message.
  • Other status updates can contain information such as the remaining print- time, remaining material, and other feedback information about the printer's mechanical state such as extrusion temperature, power consumption and settings.
  • the Restful API functions in an activity-based manner, thus if there was command or communication received from a mobile-device 120 within the last 60 seconds, the printer will check in on a frequency of every 1 second. If no further activity is detected within the next 120 seconds, the printer will revert to checking in every 60 seconds. Thus if a user is actively managing his 3D printer 130, for example, cancelling a print, and then starting a new one right- away, the 3D printer 130 will remain responsive. In addition, for slow connections, a user can force the Application to communicate with the 3D printer 130 directly over a local-area-network (LAN), assuming that both the mobile device 120 and 3D printer 130 are on the same network.
  • LAN local-area-network
  • Status updates are the slowest form of system communication, employed when the 3D printer 130 checks-in with the cloud server 10 either during idle- time or printing-time.
  • Each update is a compressed message containing the printer's mechanical status, platform-state, up-time, connection-ping, and other error messages pertaining to its operation.
  • a real-time messaging protocol is used instead of a default compressed status-update.
  • the real-time messaging protocol functions in a synchronize-acknowledge-synchronize manner.
  • the 3D printer 130 will send a very quick acknowledgement 150 to the cloud server 10 that the filament has been ejected from the feeding assembly.
  • the user may be utilising the Application to manually evaluate the 3D printer's status, in the real-time monitoring mode, messages such as temperature and mechanical position will be sent to the mobile device via the messaging protocol. Messages such as cancel print or reset will also be sent via the messaging protocol.
  • the 3D printer 130 will expect a data-transmission (data packet) in the form of a object file format, for example a STL file format or G-code which is specific to the 3D printer 130 for controlling the 3D printer 130.
  • the G-code comprises data on how to move the nozzle (coordinate control) and control the extrusion rate (filament flow control).
  • G-code data is transmitted in between messages sent by the messaging protocol. This G-code is then stored in the printer's memory. Only one object is stored at any one time. If a print is cancelled, the object is erased, and the printer reverts to idle-mode after 60 seconds.
  • G- code may be cached for a user to re-print a 3D object he has recently printed. In such cases, the re-printing process may be considerably sped up as there is no further need to download the data packet again.
  • G-codes are specific to the make and model of the 3D printer, it can be more efficient to convert the G-code at the 3D printer end rather than at the server in a process also known as 'slicing'.
  • Protecting the device relationship between the user's account and 3D printer 130 is very important to ensure that the cloud-architecture does not become confused when the messaging system grows in volume.
  • the setup procedure relies on a communication protocol, which could produce confusion if the message-bursts are not signed with each 3D printer's signature (for example two 3D printers could hear the same message and act on it, when only one 3D printer is supposed to hear the message)
  • encryption is necessary to guard against man-in-the-middle attacks and other forms of user-account and 3D printer hijacking or subversion attempts. This can be avoided by having a set up phase.
  • the QR-Code can be used to quickly set up the 3D printer to be used.
  • the user utilises his smart-phone to scan the QR-code of the 3D printer, this code is actually the public key, and is used to sign all audible messages sent back and forth. This prevents a second 3D printer from becoming confused by messages intended for the first 3D printer.
  • the QR code typically contains information such as the printer name, Wi-Fi information (like the SSID), and the serial number of the printer.
  • the user may choose to set a password on the 3D printer as he or she may do this in a shared space to prevent other users from taking ownership of the 3D printer (resetting the 3D printer as their own device). In the event that the user-password is lost, they may reset the printer or call tech-support for assistance.
  • G-codes or 3D-object-data that are sent from server to printer are encrypted using the printer's identification number.
  • the printer and only the printer can decrypt the data. That way nobody can intercept/interfere the object on the network to save the G-code and put it on a file sharing web resource for example, and nobody can publish on a blog all the objects that a user is 3D-printing with the 3D printer.
  • encryption of the communication protocol prevents hackers from hijacking the 3D printer's network connection, and ensures the integrity of all communication between the user's account and 3D printer. This is done by using the following encryption process.
  • the printer 130 is pre-programmed at manufacturing time with a public-private encryption key pair, along with 4 random passwords.
  • the public and private keys and the 4 passwords are stored on both the printer and a central storage facility.
  • the public key is known to the online or cloud servers while the public key is used as the printer identification number, and as the printer's default password. It is printed as both text and a QRCode on a sticker on the printer.
  • the 4 passwords are used as backup passwords -explained as follows.
  • Direct communication between user and printer is made via audible sound or cable connection and is secured by the password.
  • Messages from the user's phone or computer to the printer are sent unencrypted with a signature.
  • the signature is a hash of the concatenation of the message, the printer identification number and the printer password.
  • the printer Upon receiving a message, the printer recomputes the signature and compares it with the provided signature. If the signature doesn't match, the message is ignored. This happening most often when the message contains errors during transmission, when the password is wrong, or when the printer intercepts a message sent via sound to another printer nearby.
  • the printer password can be changed by sending the appropriate message. Messages from the printer to the user work the same way, signed with the same identification number and password. If the password is lost, the user can contact Tech support to request one of the 4 backup passwords. A message signed with one of those passwords is also considered valid by the printer. Alternatively, a reset button located inside the printer can be pressed to reset the password to the original
  • Communication between the printer and the server is either done via Restful API calls by the printer to the server or via open communication channels setup like TCP/IP between the printer and server.
  • Each call contains the printer's identification number and the server uses it to retrieve data related to the printer, and to encrypt that data.
  • data is sent from the server to the printer, it is encrypted using the public key. Only the printer can decrypt the data -using the private key.
  • the mediating device between the mobile device and the 3D printer is the server 1 10, which can be a virtual server based on the internet, or a cloud server. It also remembers which 3D printers belong to which user's accounts, and monitors the state of all the 3D printers connected to the network. In most situations, the cloud server's main role is to relay messages between mobile devices and 3D printers.
  • the server system itself is based on a scaleable grid cluster, in which load is balanced between multiple server clusters.
  • the cloud server 1 10 stores additional information such as user's account, user's data, 3D printer identification numbers, associations between user's account and 3D printers, printer queue, status of each network 3D printer, library of smart objects and static objects, associations between user's account and the libraries, associations of smart objects, user's account and object-data.
  • smart objects are defined as dynamic objects editable by a user for the creation of a customized 3D object according to the user preference. Such smart objects comprise minimal object data for a user's modification so as to create a desired 3D object design.
  • the smart object may be java-script based or based on other script- based (including graphical-based) programming languages and the library database of smart objects can be created (hereinafter interchangeably used with the term 'Treasure Island')
  • the cloud server 1 10 also mediates real time messages between the mobile device and the 3D printer, as well as manages and advises on the network ping, which may cause the Application to revert to using LAN if possible.
  • the cloud server 10 enforces digital rights management on all objects in the library and also controls access to the object library based on each user's account.
  • the cloud server 1 10 also manages new user entries into the smart object library database, which contains uploads of new objects created.
  • the cloud server 1 10 can also manage the slicing of object data into G-code, and can be done in a "hurry up and get idle way". Alternatively, this is done at the printer end after the instruction to print is received.
  • the cloud server 1 10 would allow access to the database to view and even edit the designs.
  • the database or marketplace can also be viewed through a website.
  • the server would allow a user (once registered) to select and purchase designs to be printed from the database.
  • the payment details and options can be stored on the secure server to allow users to purchase and print designs quickly without any further inputs.
  • the design settings are optimised, the instruction to print is issued from the application and the system takes over, resulting in the fabrication of the chosen three dimensional object at the designated printer.
  • the server is set up to allow registered users to select and print a design using a single action, as the optimisation and instructions to print are handled by the application, the server and or the printer.
  • the system flow is described in detail later in Figure 2.
  • the Application is responsible for the initial setup of each user during the set up phase, pairing of each 3D printer to a user-account, and relaying all of this information to the cloud server 1 10. It also allows the user to manage the printer queue on the cloud server 1 10 or on the 3D printer 130 (local network where user interacts directly with the 3D printer 130), as well as controls and updates all the user-data.
  • the Application also provides access to the library database of smart objects and static objects, and also provides a decoder for running smart Objects. Storage on the Application may be dedicated for user's account login information, account preferences and the serial numbers of 3D printers associated to the user's account.
  • the Application manages the receipt of content from the object library database and provides an interface to control the 3D printer. It also provides an interface to retrieve and interpret status messages from the cloud server 1 10.
  • the app has a network connection to the 3D printer either via Wi-Fi or mobile telephone network and manages the initial set up phase as well as any subsequent modifications, additions or deletions of the 3D printer(s). Further, an online version is available, possibly on a dedicated website, where similar functionality to the Application is provided. More features such as an interactive API for designing new smart or static objects can be incorporated and these can then be uploaded to the library database.
  • the 3D printer architecture is unique in that it can connect to an IP network in order to receive data from the cloud server 1 10.
  • the control system of the 3D printer autonomously monitors the device state to manage faults as well as carry out print instructions sent from the cloud server 1 10.
  • the 3D printer 130 stores information like the G-code file for any object data to be printed, the network access information (SSID and password, DHCP protocol), network identification serial number as well as auto-calibration data for the print- platform.
  • the 3D printer 130 manages the state of the print platform and negotiates with the cloud server 1 10 regarding this state.
  • the amount of print material in the cartridge is also monitored and this information can be included in the status updates to the cloud server 1 10.
  • Real time messages are received from the cloud server 1 10 or the mobile device and the state of its hardware and communications are also monitored and managed.
  • the 3D printer 130 is able to communicate via various methods, including direct or adhoc Wi-Fi broadcast, which is mainly used for the initial setting up of the 3D printer 130; local network either wirelessly or through a network cable, whereby other network users can detect the 3D printer and communicate with it; and via the internet, where the 3D printer 130 can be accessed over a relay network of users or printers via relay servers, such that users are able to access the prints they give and get live status of prints from the internet.
  • direct or adhoc Wi-Fi broadcast which is mainly used for the initial setting up of the 3D printer 130
  • local network either wirelessly or through a network cable, whereby other network users can detect the 3D printer and communicate with it
  • the internet where the 3D printer 130 can be accessed over a relay network of users or printers via relay servers, such that users are able to access the prints they give and get live status of prints from the internet.
  • FIG. 2 An exemplary embodiment of the system is shown in Figure 2.
  • the application 210 resides on a computing device and once the user has selected a design to be 3D fabricated and the server has packaged the print job to be fabricated, the application would check whether there is any printer set up with the account 220 and would direct the user to a set-up process 230 that occurs with the initial use of a three dimensional fabricator. Multiple designs can also be selected at the same time for fabrication. This set-up process 230 was previously described. If there is already a printer set up with the account 220, the printer would receive the print instructions either from the application or the server 240, and the print instructions would join the print queue 250.
  • the print queue 250 can reside either on the printer itself or on the server, if required, for example when the printer is not currently connected to any network or internet.
  • the clearing of the queue typically follows a first-in-first- out priority, although other priority schemes can also be used.
  • the printer would download the files needed to carry out the print job 260, an example of the file data transmission format would be STL, which is a standard format for rapid prototyping systems.
  • STL is a standard format for rapid prototyping systems.
  • the printer would then slice the files 270, which converts the downloaded files into machine code for the printer to carry out the fabrication.
  • the next step of preparing the printer to print 280 may occur concurrently with any of the previous steps 260, 270 and consists of warming up the printer parts, ensuring calibration, heating up the nozzle or platform etc.
  • the printer has completed the print job 290, its status 295 is updated and sent to the application accordingly.
  • the status 295 can also be used by the printer to indicate various parameters, for example, the amount of print material remaining, number of jobs on queue, etc. If there are multiple print jobs in queue, the printer would queue them accordingly, or if required, be set up to process whether possible to fabricate multiple print jobs at the same and execute accordingly.
  • the library database or marketplace is presented to the user either via a website or via the application 3 0, and a design is selected 320 and the application would carry out the following steps 325.
  • the website may also call up the application (via a web browser, for example, Google ChromeTM) if required, thus reducing the number of programing steps and translations.
  • the application would download the design file from the library database 330, which is typically in STL format.
  • the user would be able to preview the STL object in three dimensions, manipulating the object or the viewpoint in order to inspect the selected design in three dimensions, with functions such as zoom and select. Editing options are also possible, although this may be restricted based on the user account as an incentive to subscribe.
  • the printer would have to be selected 340 from the list of available options, either through a locally available printer connected to the same network as the user or via the server, which would be able to show the nearest available printer (based on individual printer availability settings) that is able to carry out the job.
  • the user would be able to adjust the options for printing, including the scale of the design, quality, adhesion, etc, although a default user preferred setting can also be present for quicker printing, allowing for single action print from the time of selection to collection of fabricated design.
  • These instructions are the passed on to the printer 360, which carries on the print instructions and fabricates the design 370. The slicing of the instruction code into machine readable code can occur either at the application level 360, or at the printer itself 370.
  • the user who is more creative may wish to modify the existing 3D design objects by utilizing the smart object functions. In such a case it may be necessary for the user to modify his/her account settings so as to gain access to the 'smart objects' function.
  • the system flow that provides access to the library of smart objects can be seen in Figure 4.
  • a user is able to access the library of smart objects or marketplace 410 via an application or a website 415.
  • the website may call up the application via a web browser (for example Google ChromeTM), vice versa, the application may redirect the user to the website.
  • the smart object to be printer is then selected 420 and the user is directed to customize the object 430 in terms of scale, quality, and other definable parameters.
  • the user is then directed to a print option screen 440, which would enable the printer to be selected as well as other options such as print quality, timing delays, etc.
  • the job is then transferred to the printer for printing 450.
  • the conversion of the selected object to an STL file can occur either after the object is customised 430 or after the print options are set 440.
  • a pointer command can be passed to the printer to retrieve the STL file from the server directly.
  • Figure 5 shows the system flow in the creating and adding of smart objects to the library.
  • the user in this case can be a specially defined set of users, known as creators, who are given access to upload smart objects to the server. These rights are define by the administrator and can be allocated exclusively or concurrently with user rights.
  • a user can be automatically made a creator upon their first upload of a smart object or design.
  • These creators access the smart object editor screen 510 either via an application or a website 515.
  • the website may call up the application via a web browser (for example Google ChromeTM), vice versa, the application may redirect the user to the website.
  • a web browser for example Google ChromeTM
  • the smart object may be java-script based or based on other script-based (including graphical-based) programming languages.
  • the creator can also define the parameters of the smart object which can be customized by a user before printing. Once the smart object is previewed and confirmed to be acceptable 520, the creator is able to upload to the library or Treasure Island server 530, and the smart object is available for other users to select and print accordingly.

Abstract

There is a system suitable for three dimensional printing comprising a server, an application residing on a device and a 3D printer. The application and the 3D printer are able to connect to the server and a design is printed when the application choses the design and the 3D printer retrieves the design from the server.

Description

3D PRINTER ARCHITECTURE
FIELD OF THE INVENTION
The present invention relates to a system for printing three dimensional (hereinafter referred to as 3D) objects. More particularly, the system for printing 3D objects uses a remote architecture for the printer to access the designs for further printing or fabrication.
BACKGROUND ART
Three-dimensional printing is known in the art. For example, in three- dimensional printing, an image of a three-dimensional structure, for example, on a computer screen, can be printed in three-dimensions using a specially engineered composite material that starts out as a powder. A binding material can be added to the powder to solidify the powder particles together for creating the three-dimensional structure.
These structures typically require a computer generated image of the three- dimensional structure. However, the typical method of three-dimensional printing a structure can run into problems when there is a mismatch between the geometry that is used by the printer and the computer generated image. Calibration of a printer to a particular computer generated image requires a lot of time and is largely a trial and error process that is a lot more tedious than calibrating a conventional paper printer due to the extra dimension.
The present invention seeks to provide a system that alleviates the above mentioned drawbacks at least in part.
SUMMARY OF THE INVENTION
Throughout this document, unless otherwise indicated to the contrary, the terms "comprising", "consisting of, and the like, are to be construed as non- exhaustive, or in other words, as meaning "including, but not limited to".
The above and other problems are alleviated and an improvement in the art is made by a system and method in accordance with this invention. A first advantage of the system and method in accordance with this invention is that users are able to instruct a 3D printer to print a three dimensional design remotely. This ensures that designs selected are printed accurately without the need for further calibration. A second advantage of the system and method in accordance with this invention is that the instructions are encrypted, encoded and/or authenticated for security and easy identification. This allows a high level of security and peace of mind. A third advantage of the system and method in accordance with this invention is that the library of objects is easily available for selection and printing. This allows for a user to have easy access to complex designs and even upload designs for other people to use. A fourth advantage of the system and method is the ease of use, as a user that is registered is able to select, purchase and issue print commands for a three dimensional design through a single action, like a mouse click. In accordance with an aspect of the invention there is a system suitable for fabricating three dimensional objects which comprises a computing device configured to access an online database of three dimensional objects and allows the selection of a three dimensional object to be fabricated, a server arranged to receive the information based on the selected three dimensional object, and arranged to use the information to retrieve additional information for preparing a print job, a three dimensional fabricator arranged to receive the print job from said server, whereby the three dimensional fabricator would carry out fabrication of the three dimensional object based on the print job received.
In further embodiments of the invention, the conversion to machine readable code done is by the three dimensional fabricator. Alternatively, the print job includes code that is machine readable. In yet further embodiments of the invention, the conversion to machine readable code is done by the server. An alternate embodiment of the invention is that the print job is converted to machine readable code by the computing device. In another embodiment of the invention, the server is a virtualized server cloud. Also, the database can be based on the server. In yet another embodiment of the invention, the instruction to prepare the print job is issued by the server to the three dimensional fabricator. Also, the instruction to prepare the print job can be accompanied by the additional information.
In further embodiments of the invention, the instruction to prepare the print job is issued by the application to the three dimensional fabricator. Also, upon receiving the print job, the three dimensional fabricator retrieves additional information from the server.
In another embodiment of the invention, the additional information includes data files relating to the selected three dimensional object to be fabricated. Also, the data files can be in STL format.
In yet another embodiment of the invention, the additional information includes user account information based on the registration and log in of a user. Further, the system can allow for multiple three dimensional objects to be selected at the same time for fabrication. Also, the server would manage multiple print jobs and prioritise them accordingly. Alternatively, the server would manage the multiple print jobs and fabricate the objects concurrently.
In an embodiment of the invention, the computing device can be one of a personal computer, a mobile computing device with an application or a mobile phone with an application. In particular, the computing device may be any device capable of accessing the printer and/or server for selection of a 3D object for printing.
In accordance with another aspect of the invention there is a computer implemented method for fabricating three dimensional objects which comprises allowing a user to access a database of objects, selecting an item to be fabricated from the database, and in response to a single action being performed, sending a request to fabricate the item with information relating to the user to a server, the server upon receiving the request, carries out the steps of retrieving additional information, generating an order for the item, and sending fabrication instructions a three dimensional fabricator, whereby the item is ordered and fabricated without using a shopping cart ordering model.
In an embodiment of the invention, the fabrication instructions includes machine readable code that the three dimensional fabricator uses to fabricate the item. Also, the three dimensional fabricator converts the fabrication instructions to machine readable code and fabricates the item according to the machine readable code.
In yet another embodiment of the invention, the single action is the clicking a button. In a further embodiment, the additional information includes account information relating to the user. Also, the account information includes payment details that allows the user to purchase items from the database.
In a further embodiment of the invention, the database is hosted on the server. Also, the user can access the database through a website. In yet a further embodiment, the user can access the database through an application on a computing device and instruct the three dimensional fabricator accordingly.
In accordance with an aspect of the invention, there is an apparatus for fabricating three dimensional objects comprising a processor arranged to receive instructions to fabricate at least one three dimensional object, an electronic storage to store the instructions and a three dimensional fabricator, whereby the processor is arranged to process the instructions and instruct the three dimensional fabricator to carry out the fabrication. In a further embodiment of the invention, the processor is arranged to covert the instructions to machine readable code for the three dimensional fabricator. BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will now be described, by way of example only, with reference to the accompanying drawings, in which:
Fig. 1 is a view of an embodiment of the invention showing the system and its components.
Fig. 2 is a view of an embodiment of the invention showing the system flowchart.
Fig. 3 is a view of an embodiment of the invention showing the application flowchart. Fig 4 is of an embodiment of the invention showing the system flow in the view of a user downloading and printing an object.
Fig 5 is of an embodiment of the invention showing the system flow in the view of a user creating an object.
Other arrangements of the invention are possible and, consequently, the accompanying drawings are not to be understood as superseding the generality of the preceding description of the invention.
PREFERRED EMBODIMENTS OF THE INVENTION
Particular embodiments of the present invention will now be described with reference to the accompany drawings. The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the scope of the present invention. Additionally, unless defined otherwise, all technical and scientific terms used herein have the same meanings as commonly understood by one or ordinary skill in the art to which this invention belongs.
In accordance with an embodiment of the present invention there is a system comprising a server 1 10. preferably (but not limited to) a cloud (i.e. a cloud server), an application residing on a device 120, and a 3D printer 130 (as shown in Figure 1 ). The system is particularly suited, but not limited to 3D printers coupled with cloud architectures for 3D printing or rapid prototyping and will be described in this context. The server comprises a relay server to relay communications via the Internet remotely and library server for the management of the library object database.
The device 120 can be any electronic device that can connect wirelessly to a wireless fidelity (Wi-Fi) networks or conventional phone networks, such as mobile devices like smartphones, personal digital assistant (PDA) phones and tablets, including mobile devices such as the iPhone or the iPad or any other iOS devices, as well as Android-based devices. The 3D printer is a 3D printer 30 that connects to the cloud server 1 10 either wirelessly or through a wired (e.g. cable) connection 150.
At the initial set up phase, the user downloads a dedicated software application for the 3D printer (hereinafter interchangeably used with the term 'PirateCove'). The dedicated software application comprises user interface and necessary executable software instructions installed on the user device 120 for achieving the following:- i. allow a user to access the server 1 10 (which may involve creation of an account); and/or
ii. issuance of instructions to the 3D printer 130 (remotely 140 or otherwise) from the user device 120; Once the account is created, each user is associated with an account in the server and then each account is paired 140 with the identification number of at least one 3D printer 130. It is to be appreciated that each account may be paired 140 with more than one 3D printers 130. The pairing and account data are recorded by the cloud server 1 10 and is later used to mediate the interaction between the user and the paired 3D printer 130.
This pairing between the 3D printer 130 and a user's account is achieved through a communication protocol setup between the application running on the device 120 and the 3D printer 130, and has 2 purposes: to associate the 3D printer 130 with the user's account; to transfer network connection data to the firmware on the 3D printer 130. Additional information on the user settings such as specify the 3D printer 130 to connect wirelessly via Wi-Fi to the nearest available hotspot, instead of using the Ethernet cable connection can be communicated and stored. The communication protocol may be audio or comprises any other forms of communication setup, whether wired or wireless, such as Wi-Fi, LAN, etc. The communication connections 140, 150, 160 can be Transmission Control Protcol (TCP) connections that is end-to- end authenticated, encrypted and/or encoded.
Once a user's account has been associated with at least one 3D printer 130, the user may then begin issuing instructions to the 3D printer 130 from his mobile device 120, remotely 140. The mode of communication between the 3D printer and the server or mobile device can either be on demand or polling. The user may associate more than one 3D printer 130 with his account, and the PirateCove app will allow him to choose which 3D printer 130 to print from if there is more than one 3D printer 130 associated. The system can function either via a polling based type communication such as "Restful API" or using open communication channel including other forms of TCP/IP, which can mean that no direct connections are established between the mobile device 120 and 3D printer 130. The 3D printer 130 periodically or at a specified user defined time "checks-in" with the cloud server 1 10 to see if any instructions were left there by the user's mobile device 120. The time interval for performance of such "checks-in" may be every 30 to 60 seconds or at any other time interval as predefined. If no instructions are detected, the 3D printer 130 remains idle, and only a status update is delivered. Check-in may also occur even when using an open communication channel, especially when the printer requests for it (predefined) in order for a more responsive system. The application is also able to check if a 3D printer 130 is locally accessible within the same network, either through a cable connection or wirelessly. The user is then able to easily select a three dimensional object via the application, adjust the printing options such as scale, quality, adhesion, enable support etc, and start the print job. The application would then issue the print instruction with a file format, such as an STL file which is a file format native to the stereolithography CAD or AutoCAD software for use in generation of a 3D object. If the printer 130 is accessible locally, the printer would receive the instructions and fabricate the three dimensional object accordingly. If a printer is not accessible with an ongoing print instruction issued, the STL file and printing request is sent to the cloud server 10 where is it stored temporarily while waiting for a printer 130 to be available. The 3D printers 130 would poll the cloud server 0 and start a new task upon detecting that there is an outstanding print instruction from an associated user in the queue. Alternatively, the cloud server 1 10 may be configured or arranged to push print instructions to the printer 130.
The 3D printer 130 would queue the requests that can be sent from various sources and prints files based on priority. This can be a first-come-first serve priority or any other priority system. The 3D printer 130 would have a processor that allows the 3D printer 130 to communicate with the cloud server 1 10 and the mobile device 120 via the application. Upon receiving a print instruction, the processor would save the instructions locally and convert the STL file to machine instructions for the fabrication of the three dimensional object.
Within the cloud server 110, each user's account has a print-queue, which is a list of 3D objects that a user wants the 3D printer 130 to create. Depending on the communication channel, the 3D printer 130 may check-in with the cloud server 1 10 to discover if any objects are present in the queue. If an object is present, the 3D printer 130 will first check to see if sufficient raw material is available, and then if the previous object has been cleared from the build platform. If both prior conditions are met, the printer will initialise itself and begin printing the object in the print queue. During printing, the 3D printer 130 continues to deliver a status update about its progress to the cloud server 1 10 at regular intervals (for example 60 seconds) via connection 150. The user can set up the 3D printer such that if multiple print jobs are received, the 3D printer 130 would evaluate whether it is possible to print multiple print jobs in a single run, so as to minimise time require to fabricate.
As mobile devices also have the requirement on preserving battery life. Thus they can also employ a Restful API, where the Application only checks and receives a 3D printer status update when it is executed. In other cases, a status update may be pushed 160 from the cloud server 1 10 to the mobile device 120 in the event that an important message sent by the 3D printer 130 needs to be reviewed by the user in a time sensitive manner, for example: insufficient material present, mechanical jamming or network connection failure. This communication stream can be either via TCP or web socket, depending on the application platform being used. A network connection failure can occur if a 3D printer 130 fails to check into the cloud server 1 10 at the next stipulated time, hence the issuance of a network error message. Other status updates can contain information such as the remaining print- time, remaining material, and other feedback information about the printer's mechanical state such as extrusion temperature, power consumption and settings.
The Restful API functions in an activity-based manner, thus if there was command or communication received from a mobile-device 120 within the last 60 seconds, the printer will check in on a frequency of every 1 second. If no further activity is detected within the next 120 seconds, the printer will revert to checking in every 60 seconds. Thus if a user is actively managing his 3D printer 130, for example, cancelling a print, and then starting a new one right- away, the 3D printer 130 will remain responsive. In addition, for slow connections, a user can force the Application to communicate with the 3D printer 130 directly over a local-area-network (LAN), assuming that both the mobile device 120 and 3D printer 130 are on the same network.
Status updates are the slowest form of system communication, employed when the 3D printer 130 checks-in with the cloud server 10 either during idle- time or printing-time. Each update is a compressed message containing the printer's mechanical status, platform-state, up-time, connection-ping, and other error messages pertaining to its operation.
When user activity is detected, and the printer is checking-in at a frequency of 1 -second, a real-time messaging protocol is used instead of a default compressed status-update. The real-time messaging protocol functions in a synchronize-acknowledge-synchronize manner. To elaborate, if a user is changing the material cartridge, the 3D printer 130 will send a very quick acknowledgement 150 to the cloud server 10 that the filament has been ejected from the feeding assembly. In another scenario, the user may be utilising the Application to manually evaluate the 3D printer's status, in the real-time monitoring mode, messages such as temperature and mechanical position will be sent to the mobile device via the messaging protocol. Messages such as cancel print or reset will also be sent via the messaging protocol.
To receive object-data or information required by the 3D printer 130 to print, the 3D printer 130 will expect a data-transmission (data packet) in the form of a object file format, for example a STL file format or G-code which is specific to the 3D printer 130 for controlling the 3D printer 130. The G-code comprises data on how to move the nozzle (coordinate control) and control the extrusion rate (filament flow control). G-code data is transmitted in between messages sent by the messaging protocol. This G-code is then stored in the printer's memory. Only one object is stored at any one time. If a print is cancelled, the object is erased, and the printer reverts to idle-mode after 60 seconds. G- code may be cached for a user to re-print a 3D object he has recently printed. In such cases, the re-printing process may be considerably sped up as there is no further need to download the data packet again. As G-codes are specific to the make and model of the 3D printer, it can be more efficient to convert the G-code at the 3D printer end rather than at the server in a process also known as 'slicing'.
Protecting the device relationship between the user's account and 3D printer 130 is very important to ensure that the cloud-architecture does not become confused when the messaging system grows in volume. In addition, the setup procedure relies on a communication protocol, which could produce confusion if the message-bursts are not signed with each 3D printer's signature (for example two 3D printers could hear the same message and act on it, when only one 3D printer is supposed to hear the message) In addition, encryption is necessary to guard against man-in-the-middle attacks and other forms of user-account and 3D printer hijacking or subversion attempts. This can be avoided by having a set up phase.
During set up phase, if the 3D printer is setup in a shared space with other 3D printers, the QR-Code can be used to quickly set up the 3D printer to be used. Before communication starts, the user utilises his smart-phone to scan the QR-code of the 3D printer, this code is actually the public key, and is used to sign all audible messages sent back and forth. This prevents a second 3D printer from becoming confused by messages intended for the first 3D printer. The QR code typically contains information such as the printer name, Wi-Fi information (like the SSID), and the serial number of the printer.
In addition, the user may choose to set a password on the 3D printer as he or she may do this in a shared space to prevent other users from taking ownership of the 3D printer (resetting the 3D printer as their own device). In the event that the user-password is lost, they may reset the printer or call tech-support for assistance.
G-codes or 3D-object-data that are sent from server to printer are encrypted using the printer's identification number. Basically the printer and only the printer can decrypt the data. That way nobody can intercept/interfere the object on the network to save the G-code and put it on a file sharing web resource for example, and nobody can publish on a blog all the objects that a user is 3D-printing with the 3D printer. In addition, encryption of the communication protocol prevents hackers from hijacking the 3D printer's network connection, and ensures the integrity of all communication between the user's account and 3D printer. This is done by using the following encryption process.
Preferably, the printer 130 is pre-programmed at manufacturing time with a public-private encryption key pair, along with 4 random passwords. The public and private keys and the 4 passwords are stored on both the printer and a central storage facility. The public key is known to the online or cloud servers while the public key is used as the printer identification number, and as the printer's default password. It is printed as both text and a QRCode on a sticker on the printer. The 4 passwords are used as backup passwords -explained as follows.
Direct communication between user and printer is made via audible sound or cable connection and is secured by the password. Messages from the user's phone or computer to the printer are sent unencrypted with a signature. The signature is a hash of the concatenation of the message, the printer identification number and the printer password. Upon receiving a message, the printer recomputes the signature and compares it with the provided signature. If the signature doesn't match, the message is ignored. This happening most often when the message contains errors during transmission, when the password is wrong, or when the printer intercepts a message sent via sound to another printer nearby. The printer password can be changed by sending the appropriate message. Messages from the printer to the user work the same way, signed with the same identification number and password. If the password is lost, the user can contact Tech support to request one of the 4 backup passwords. A message signed with one of those passwords is also considered valid by the printer. Alternatively, a reset button located inside the printer can be pressed to reset the password to the original password.
Communication between the printer and the server is either done via Restful API calls by the printer to the server or via open communication channels setup like TCP/IP between the printer and server. Each call contains the printer's identification number and the server uses it to retrieve data related to the printer, and to encrypt that data. When data is sent from the server to the printer, it is encrypted using the public key. Only the printer can decrypt the data -using the private key.
The mediating device between the mobile device and the 3D printer is the server 1 10, which can be a virtual server based on the internet, or a cloud server. It also remembers which 3D printers belong to which user's accounts, and monitors the state of all the 3D printers connected to the network. In most situations, the cloud server's main role is to relay messages between mobile devices and 3D printers. The server system itself is based on a scaleable grid cluster, in which load is balanced between multiple server clusters.
The cloud server 1 10 stores additional information such as user's account, user's data, 3D printer identification numbers, associations between user's account and 3D printers, printer queue, status of each network 3D printer, library of smart objects and static objects, associations between user's account and the libraries, associations of smart objects, user's account and object-data. In the context of the embodiment, smart objects are defined as dynamic objects editable by a user for the creation of a customized 3D object according to the user preference. Such smart objects comprise minimal object data for a user's modification so as to create a desired 3D object design. The smart object may be java-script based or based on other script- based (including graphical-based) programming languages and the library database of smart objects can be created (hereinafter interchangeably used with the term 'Treasure Island')
The cloud server 1 10 also mediates real time messages between the mobile device and the 3D printer, as well as manages and advises on the network ping, which may cause the Application to revert to using LAN if possible. The cloud server 10 enforces digital rights management on all objects in the library and also controls access to the object library based on each user's account.
The cloud server 1 10 also manages new user entries into the smart object library database, which contains uploads of new objects created. The cloud server 1 10 can also manage the slicing of object data into G-code, and can be done in a "hurry up and get idle way". Alternatively, this is done at the printer end after the instruction to print is received.
From an application point of view, the cloud server 1 10 would allow access to the database to view and even edit the designs. The database or marketplace can also be viewed through a website. The server would allow a user (once registered) to select and purchase designs to be printed from the database. The payment details and options can be stored on the secure server to allow users to purchase and print designs quickly without any further inputs. Once the design settings are optimised, the instruction to print is issued from the application and the system takes over, resulting in the fabrication of the chosen three dimensional object at the designated printer. The server is set up to allow registered users to select and print a design using a single action, as the optimisation and instructions to print are handled by the application, the server and or the printer. The system flow is described in detail later in Figure 2.
The Application is responsible for the initial setup of each user during the set up phase, pairing of each 3D printer to a user-account, and relaying all of this information to the cloud server 1 10. It also allows the user to manage the printer queue on the cloud server 1 10 or on the 3D printer 130 (local network where user interacts directly with the 3D printer 130), as well as controls and updates all the user-data. The Application also provides access to the library database of smart objects and static objects, and also provides a decoder for running smart Objects. Storage on the Application may be dedicated for user's account login information, account preferences and the serial numbers of 3D printers associated to the user's account.
The Application manages the receipt of content from the object library database and provides an interface to control the 3D printer. It also provides an interface to retrieve and interpret status messages from the cloud server 1 10. The app has a network connection to the 3D printer either via Wi-Fi or mobile telephone network and manages the initial set up phase as well as any subsequent modifications, additions or deletions of the 3D printer(s). Further, an online version is available, possibly on a dedicated website, where similar functionality to the Application is provided. More features such as an interactive API for designing new smart or static objects can be incorporated and these can then be uploaded to the library database.
The 3D printer architecture is unique in that it can connect to an IP network in order to receive data from the cloud server 1 10. The control system of the 3D printer autonomously monitors the device state to manage faults as well as carry out print instructions sent from the cloud server 1 10. The 3D printer 130 stores information like the G-code file for any object data to be printed, the network access information (SSID and password, DHCP protocol), network identification serial number as well as auto-calibration data for the print- platform.
The 3D printer 130 manages the state of the print platform and negotiates with the cloud server 1 10 regarding this state. The amount of print material in the cartridge is also monitored and this information can be included in the status updates to the cloud server 1 10. Real time messages are received from the cloud server 1 10 or the mobile device and the state of its hardware and communications are also monitored and managed.
The 3D printer 130 is able to communicate via various methods, including direct or adhoc Wi-Fi broadcast, which is mainly used for the initial setting up of the 3D printer 130; local network either wirelessly or through a network cable, whereby other network users can detect the 3D printer and communicate with it; and via the internet, where the 3D printer 130 can be accessed over a relay network of users or printers via relay servers, such that users are able to access the prints they give and get live status of prints from the internet.
An exemplary embodiment of the system is shown in Figure 2. The application 210 resides on a computing device and once the user has selected a design to be 3D fabricated and the server has packaged the print job to be fabricated, the application would check whether there is any printer set up with the account 220 and would direct the user to a set-up process 230 that occurs with the initial use of a three dimensional fabricator. Multiple designs can also be selected at the same time for fabrication. This set-up process 230 was previously described. If there is already a printer set up with the account 220, the printer would receive the print instructions either from the application or the server 240, and the print instructions would join the print queue 250. The print queue 250 can reside either on the printer itself or on the server, if required, for example when the printer is not currently connected to any network or internet. The clearing of the queue typically follows a first-in-first- out priority, although other priority schemes can also be used. When the print job is to be processed from the queue, the printer would download the files needed to carry out the print job 260, an example of the file data transmission format would be STL, which is a standard format for rapid prototyping systems. The printer would then slice the files 270, which converts the downloaded files into machine code for the printer to carry out the fabrication. The next step of preparing the printer to print 280 may occur concurrently with any of the previous steps 260, 270 and consists of warming up the printer parts, ensuring calibration, heating up the nozzle or platform etc. Once the printer has completed the print job 290, its status 295 is updated and sent to the application accordingly. The status 295 can also be used by the printer to indicate various parameters, for example, the amount of print material remaining, number of jobs on queue, etc. If there are multiple print jobs in queue, the printer would queue them accordingly, or if required, be set up to process whether possible to fabricate multiple print jobs at the same and execute accordingly.
The system flow from the application point of view will be described using Figure 3. The library database or marketplace is presented to the user either via a website or via the application 3 0, and a design is selected 320 and the application would carry out the following steps 325. The website may also call up the application (via a web browser, for example, Google Chrome™) if required, thus reducing the number of programing steps and translations. Based on the selected design 320, the application would download the design file from the library database 330, which is typically in STL format. The user would be able to preview the STL object in three dimensions, manipulating the object or the viewpoint in order to inspect the selected design in three dimensions, with functions such as zoom and select. Editing options are also possible, although this may be restricted based on the user account as an incentive to subscribe. If a printer has not been associated with the user account, the printer would have to be selected 340 from the list of available options, either through a locally available printer connected to the same network as the user or via the server, which would be able to show the nearest available printer (based on individual printer availability settings) that is able to carry out the job. Based on the selected printer, the user would be able to adjust the options for printing, including the scale of the design, quality, adhesion, etc, although a default user preferred setting can also be present for quicker printing, allowing for single action print from the time of selection to collection of fabricated design. These instructions are the passed on to the printer 360, which carries on the print instructions and fabricates the design 370. The slicing of the instruction code into machine readable code can occur either at the application level 360, or at the printer itself 370.
In another embodiment, wherein like numerals reference like parts, the user who is more creative may wish to modify the existing 3D design objects by utilizing the smart object functions. In such a case it may be necessary for the user to modify his/her account settings so as to gain access to the 'smart objects' function.
The system flow that provides access to the library of smart objects (or Treasure Island) can be seen in Figure 4. A user is able to access the library of smart objects or marketplace 410 via an application or a website 415. Alternatively, to reduce the number of programming steps and translations, the website may call up the application via a web browser (for example Google Chrome™), vice versa, the application may redirect the user to the website. The smart object to be printer is then selected 420 and the user is directed to customize the object 430 in terms of scale, quality, and other definable parameters. The user is then directed to a print option screen 440, which would enable the printer to be selected as well as other options such as print quality, timing delays, etc. The job is then transferred to the printer for printing 450. The conversion of the selected object to an STL file can occur either after the object is customised 430 or after the print options are set 440. Alternatively, a pointer command can be passed to the printer to retrieve the STL file from the server directly.
In terms of creating the smart objects, Figure 5 shows the system flow in the creating and adding of smart objects to the library. The user in this case can be a specially defined set of users, known as creators, who are given access to upload smart objects to the server. These rights are define by the administrator and can be allocated exclusively or concurrently with user rights. A user can be automatically made a creator upon their first upload of a smart object or design. These creators access the smart object editor screen 510 either via an application or a website 515. Alternatively, to reduce the number of programming steps and translations, the website may call up the application via a web browser (for example Google Chrome™), vice versa, the application may redirect the user to the website. The smart object may be java-script based or based on other script-based (including graphical-based) programming languages. The creator can also define the parameters of the smart object which can be customized by a user before printing. Once the smart object is previewed and confirmed to be acceptable 520, the creator is able to upload to the library or Treasure Island server 530, and the smart object is available for other users to select and print accordingly.
The above is a description of various embodiments of a 3D printer architecture in accordance with this invention. It is envisioned that those skilled in the art may design alternative embodiment(s) without departing from the scope of the invention as set forth in the followings claims. It should be further appreciated by the person skilled in the art that features and modifications as discussed in the embodiments above, not being alternatives or substitutes unless expressly stated, may be combined to form yet other embodiments that fall within the scope of the invention.

Claims

1. A system for fabricating three dimensional objects comprising:
a computing device configured to access an online database of three dimensional objects and allows the selection of a three dimensional object to be fabricated,
a server arranged to receive the information based on the selected three dimensional object;
said server arranged to use the information to retrieve additional information for preparing a print job;
a three dimensional fabricator arranged to receive the print job from said server;
wherein said three dimensional fabricator would carry out fabrication of the three dimensional object based on the print job received.
2. A system according to claim 1 , wherein the print job is converted to machine readable code by the three dimensional fabricator.
3. A system according to claim 1 , wherein the print job includes code that is machine readable.
4. A system according to claim 3, wherein the conversion to machine readable code is done by the server.
5. A system according to claim 3, wherein the print job is converted to machine readable code by the computing device.
6. A system according to any one of claim 1 -5, wherein the server is a virtualized server cloud.
7. A system according to any one of claims 1-6, wherein said database is based on said server.
8. A system according to claim 1 , wherein the instruction to prepare the print job is issued by the server to the three dimensional fabricator.
9. A system according to claim 8, wherein said instruction to prepare the print job is accompanied by the additional information.
10. A system according to claim 1 , wherein the instruction to prepare the print job is issued by the application to the three dimensional fabricator.
1 1 . A system according to claim 10, wherein upon receiving the print job, the three dimensional fabricator retrieves additional information from the server.
12. A system according to claim 1 wherein the additional information includes data files relating to the selected three dimensional object to be fabricated.
13. A system according to claim 12, wherein the data files are in STL format.
14. A system according to claim 1 , wherein the additional information includes user account information based on the registration and log in of a user.
15. A system according to claim 1 , wherein the system allows for multiple three dimensional objects to be selected at the same time for fabrication.
16. A system according to claim 14, wherein the server would manage multiple print jobs and prioritise them accordingly.
1 7. A system according to claim 14, wherein the three dimensional fabricator would manage multiple print jobs and fabricate the objects concurrently.
18. A system according to claim 1 , wherein said computing device can be one of a personal computer, a mobile computing device with an application or a mobile phone with an application.
19. A computer implemented method for fabricating three dimensional objects comprising:
allowing a user to access a database of objects;
selecting an item to be fabricated from the database; and
in response to a single action being performed, sending a request to fabricate the item with information relating to the user to a server;
said server upon receiving the request, carries out the steps of
retrieving additional information;
generating an order for the item; and
sending fabrication instructions a three dimensional fabricator, wherein said item is ordered and fabricated without using a shopping cart ordering model.
20. The method according to claim 19, wherein said fabrication instructions includes machine readable code that the three dimensional fabricator uses to fabricate the item.
21 . The method according to claim 19, wherein the three dimensional fabricator converts said fabrication instructions to machine readable code and fabricates the item according to the machine readable code.
22. The method according to claim 19, wherein said single action is clicking of a button.
23. The method according to claim 19, wherein the additional information includes account information relating to the user.
24. The method according to claim 23, wherein said account information includes payment details that allows the user to purchase items from the database.
25. The method according to claim 19, wherein said database is hosted on the server.
26. The method according to claim 19, wherein the user can access the database through a website.
27. The method according to claim 19, wherein the user can access the database through an application on a computing device and instruct the three dimensional fabricator to fabricate an item.
28. An apparatus for fabricating three dimensional objects comprising: a processor arranged to receive instructions to fabricate at least one three dimensional object;
an electronic storage to store the instructions;
a three dimensional fabricator
wherein said processor is arranged to process the instructions and instruct said three dimensional fabricator to carry out the fabrication.
29. An apparatus according to claim 28, wherein said processor is arranged to covert said instructions to machine readable code for the three dimensional fabricator.
PCT/SG2014/000250 2013-05-30 2014-05-30 3d printer architecture WO2014193311A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SG2013041835 2013-05-30
SG201304183 2013-05-30

Publications (1)

Publication Number Publication Date
WO2014193311A1 true WO2014193311A1 (en) 2014-12-04

Family

ID=51989201

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/SG2014/000250 WO2014193311A1 (en) 2013-05-30 2014-05-30 3d printer architecture

Country Status (1)

Country Link
WO (1) WO2014193311A1 (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105107210A (en) * 2015-09-01 2015-12-02 冯圣冰 Fixed wing model airplane manufacturing system based on cloud platform and implementation method thereof
NL2013141B1 (en) * 2014-07-07 2016-09-20 Dingify B V 3D printer, system comprising such 3D printer and method for operating both.
WO2016153738A1 (en) * 2015-03-26 2016-09-29 The Procter & Gamble Company Method for distributed manufacturing
DE102015006512A1 (en) * 2015-05-26 2016-12-01 Focke & Co. (Gmbh & Co. Kg) Method of manufacturing spare parts for packaging machines
US10006225B2 (en) 2016-01-29 2018-06-26 Y Soft Corporation, A.S. Secure 3D printer and 3D printer management network
US10216171B2 (en) 2015-10-16 2019-02-26 Accenture Global Services Limited 3-D printing protected by digital rights management
US10328686B2 (en) 2016-10-10 2019-06-25 Microsoft Technology Licensing, Llc Determining print-time for generation of 3D objects based on 3D printing parameters
US10414149B2 (en) 2016-10-21 2019-09-17 Microsoft Technology Licensing, Llc Material estimate for fabrication of three-dimensional object
US20200285718A1 (en) * 2016-12-14 2020-09-10 Kaboodl, LLC 3D Printer and Inventory Control and Distribution System for 3D Designs
US11097489B2 (en) * 2019-07-12 2021-08-24 Krzysztof Wilk Methods of controlling 3D printing processes
US11235531B2 (en) 2016-05-12 2022-02-01 Hewlett-Packard Development Company, L.P. Selecting a task in additive manufacturing
US11440260B2 (en) 2016-07-19 2022-09-13 Hewlett-Packard Development Company, L.P. 3D printer fresh and recycled powder supply management
EP4249217A3 (en) * 2022-03-24 2023-12-20 Krones Ag Method for operating or monitoring an additive manufacturing device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110313878A1 (en) * 2006-05-18 2011-12-22 Norman Bryan C Made-to-order direct digital manufacturing enterprise
US20120281013A1 (en) * 2009-11-04 2012-11-08 Digital Forming Ltd User interfaces for designing objects
WO2013036942A1 (en) * 2011-09-09 2013-03-14 Pell Barney D System and method for electronic commerce and fabrication of 3d parts

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110313878A1 (en) * 2006-05-18 2011-12-22 Norman Bryan C Made-to-order direct digital manufacturing enterprise
US20120281013A1 (en) * 2009-11-04 2012-11-08 Digital Forming Ltd User interfaces for designing objects
WO2013036942A1 (en) * 2011-09-09 2013-03-14 Pell Barney D System and method for electronic commerce and fabrication of 3d parts

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL2013141B1 (en) * 2014-07-07 2016-09-20 Dingify B V 3D printer, system comprising such 3D printer and method for operating both.
WO2016153738A1 (en) * 2015-03-26 2016-09-29 The Procter & Gamble Company Method for distributed manufacturing
CN107466383A (en) * 2015-03-26 2017-12-12 宝洁公司 Method for distributive knowledge network
DE102015006512A1 (en) * 2015-05-26 2016-12-01 Focke & Co. (Gmbh & Co. Kg) Method of manufacturing spare parts for packaging machines
CN105107210A (en) * 2015-09-01 2015-12-02 冯圣冰 Fixed wing model airplane manufacturing system based on cloud platform and implementation method thereof
US10216171B2 (en) 2015-10-16 2019-02-26 Accenture Global Services Limited 3-D printing protected by digital rights management
US10006225B2 (en) 2016-01-29 2018-06-26 Y Soft Corporation, A.S. Secure 3D printer and 3D printer management network
US11235531B2 (en) 2016-05-12 2022-02-01 Hewlett-Packard Development Company, L.P. Selecting a task in additive manufacturing
US11440260B2 (en) 2016-07-19 2022-09-13 Hewlett-Packard Development Company, L.P. 3D printer fresh and recycled powder supply management
US10328686B2 (en) 2016-10-10 2019-06-25 Microsoft Technology Licensing, Llc Determining print-time for generation of 3D objects based on 3D printing parameters
US10414149B2 (en) 2016-10-21 2019-09-17 Microsoft Technology Licensing, Llc Material estimate for fabrication of three-dimensional object
US20200285718A1 (en) * 2016-12-14 2020-09-10 Kaboodl, LLC 3D Printer and Inventory Control and Distribution System for 3D Designs
US11693933B2 (en) * 2016-12-14 2023-07-04 KaBOODL, INC. 3D printer and inventory control and distribution system for 3D designs
US11097489B2 (en) * 2019-07-12 2021-08-24 Krzysztof Wilk Methods of controlling 3D printing processes
EP4249217A3 (en) * 2022-03-24 2023-12-20 Krones Ag Method for operating or monitoring an additive manufacturing device

Similar Documents

Publication Publication Date Title
WO2014193311A1 (en) 3d printer architecture
AU2019202425B2 (en) Systems and methods for controlling access to content distributed over a network
US11122103B2 (en) Method of sharing contents by using personal cloud device, and electronic device and personal cloud system using the same
US11082355B2 (en) Controllng distribution of resources in a network
EP3360292B1 (en) Cloud-synchronized architecture for a home automation system
US9853928B2 (en) Systems and methods for controlling email access
JP6289642B2 (en) Method and apparatus for document sharing between user groups
US9164710B2 (en) Service providing system and service providing method
JP6275201B2 (en) Character transmission method, computer program, and character transmission system
JP6346443B2 (en) Information processing apparatus, control method therefor, and program
US11716244B2 (en) Data driven user interface for configuring device settings
CN104995616A (en) Cloud based virtual mobile device
US20170109110A1 (en) Printer list generator, mobile terminal, and printer list generation method
CN104081374A (en) Hierarchical display-server system and method
US20150327064A1 (en) Message transmission system and method for a structure of a plurality of organizations
US10666683B2 (en) User interface for low-touch security policy provisioning
JP6197286B2 (en) Communication device, information processing system, and information processing system control method
JP2015141473A (en) Server system, method for controlling server system, and program
JP6413686B2 (en) Information processing system, information processing apparatus, and information processing method
US11461352B2 (en) Information processing apparatus for performing batch processing and non-transitory computer readable medium storing program
JP2017170885A (en) Information processor, system, control method, and program
TW201511507A (en) 3D printer architecture
US20180107531A1 (en) Service server, user terminal and method of 3d collaborative printing
JP6378567B2 (en) Apparatus, method, program
JP6914519B2 (en) Information processing equipment, information processing methods, and programs

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14804716

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 14.03.2016)

122 Ep: pct application non-entry in european phase

Ref document number: 14804716

Country of ref document: EP

Kind code of ref document: A1