Method, apparatus and system for part construction

By introducing a part construction system, the problems of long processing time and low efficiency in existing 3D printing technology are solved, and a more efficient and consistent part construction process is achieved, and traceability is maintained.

CN120180734APending Publication Date: 2025-06-20HEXAGON INNOVATION CENTER LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510303771.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2017-06-02
Filing Date
2018-06-01
Publication Date
2025-06-20

AI Technical Summary

Technical Problem

Existing additive manufacturing (3D printing) technologies require multiple hours to several days when building parts, which are long and laborious to process, and have problems with repeated inputs and data calculations, resulting in inefficiency.

Method used

By introducing a part construction system, which includes a processor and addressable memory, can receive computer-aided design (CAD) files, generate relevant directional data, support data, feature data and slice data, and generate part construction files, and finally output the job file to the 3D printer, optimizing the model construction process.

Benefits of technology

The system significantly improves the efficiency and accuracy of 3D printing by eliminating the need to repeatedly define manufacturing information, saving processing time, improving consistency in part construction, and maintaining traceability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120180734A_ABST
    Figure CN120180734A_ABST
Patent Text Reader

Abstract

The invention relates to a method, equipment and a system for part construction. Methods, apparatus, and systems for determining a job file (870, 990,10105) for a three-dimensional printer (880) based on part build data (840, 910). Embodiments include determining part build data (840, 910) based on determining part data (815) from a received computer-aided design (CAD) file (1010), generating orientation data (810, 102 1), generating support data (811, 102 2), generating feature data (812, 102 3), and generating slice data (813, 102 4). In some embodiments, determining the job file (870, 990,10105) may also be based on generating a nested matrix (852, 970, 104) associated with the part build data (840, 910).
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the application with the filing date of June 1, 2018, application number 201880036530.8, and invention title "Methods, Devices, and Systems for Part Building". Cross - reference to related applications

[0002] This application claims the benefit of priority and the benefit of the filing date of U.S. Provisional Patent Application No. 62 / 514,730, filed on June 2, 2017, the content of which is hereby incorporated by reference in its entirety for all purposes. Field of endeavor

[0003] The field of the present invention relates to additive manufacturing and 3D printing and their systems, and more particularly to methods, devices, and systems for providing more efficient model construction for 3D printing while eliminating repetitive input and data calculations from the user. Background

[0004] Additive manufacturing (AM) (also known as 3D printing) refers to a variety of manufacturing processes in which parts are made by adding material to a smaller substrate, as opposed to traditional subtractive manufacturing in which material is removed from a larger stock and machined. In powder - bed additive manufacturing, a heat source melts the powder layer by layer, and in direct metal deposition, material is typically added in solid or powder form to a melt pool created by a heat source. AM parts are first described as 3D CAD models to which manufacturing instructions must be added, and then all data is converted into a job file for driving an AM machine.

[0005] Depending on the AM method used and the size and complexity of the model, building a part through the AM process can take from several hours to several days. Thus, the processing time remains very long and laborious, leaving room for much inefficiency. Overview

[0006] Additive manufacturing (also known as 3D printing) builds parts defined by 3D computer - aided design (CAD) files. One or more 3D CAD files can be combined, prepared with the manufacturing information needed to build them, and converted into a job file for use by a 3D printer to build the part. The job file can include all the information needed to build the part in a particular 3D printer.

[0007] In one embodiment, a system includes a part-to-build component that includes a processor and an addressable memory. The processor is configured to receive at least one computer-aided design (CAD) file, determine part data from the at least one CAD file based on received user input, generate orientation data associated with the determined part data via an orientation component, generate support data related to the determined part data via a support generation component, generate feature data associated with the determined part data via a feature type component, generate slice data associated with the determined part data via a slicing component, and generate a part build file that includes at least one CAD file and at least one of part data, orientation data, support data, feature data, and slice data. The system also includes a job generation component that includes a processor and an addressable memory. The processor is configured to receive the generated part build file, determine a nesting matrix associated with the received part build file via a nesting component, generate a job file, and output the job file to a 3D printer. The job file includes data for operating the 3D printer.

[0008] In another embodiment, the processor of the part-to-build component is further configured to receive user input from a user interface.

[0009] In yet another embodiment, the part data includes data related to at least one part included in a computer-aided design (CAD) file.

[0010] In still another embodiment, the generation of the support data is also based on the generated orientation data.

[0011] In still another embodiment, the processor of the part-to-build component is further configured to receive surface identification data related to the determined part data from an external surface identification component.

[0012] In yet another embodiment, the generation of the feature data is based on the received surface identification data and defines the characterizing features of the determined part data.

[0013] In one embodiment, the processor of the job generation component is further configured to generate slice data based on the generated nesting matrix, which is associated with the received and determined part build component file.

[0014] In yet another embodiment, the generation of the slice data is also related to the orientation data, support data, and feature data.

[0015] In another embodiment, the part build file includes at least one CAD file, part data, orientation data, support data, feature data, and slice data.

[0016] In an additional embodiment, the processor of the job generation component is further configured to receive user input from a user interface.

[0017] In yet another embodiment, the determination of the nesting matrix is also based on the received user input.

[0018] In another additional embodiment, the job file can direct a three-dimensional printer to process the data included in the job file.

[0019] In another embodiment, a method includes: transmitting a request for machine-specific data to a three-dimensional (3D) printer based on receiving job input data including data related to a desired build; receiving a part build file that includes geometric data related to at least one three-dimensional computer-aided design (CAD) file and a set of manufacturing information data including at least one of part orientation data, support structure data, feature data, and slice data; determining feature type data; generating exposure strategy data; determining nesting matrix data; and generating a machine job file based on the generated exposure strategy data and the determined nesting matrix data.

[0020] In another embodiment, the manufacturing information data includes part orientation data, support structure data, feature data, and slice data.

[0021] Furthermore, in another embodiment, the determination of the feature type data is based on the feature data extracted from the received part build file.

[0022] Furthermore, in an additional embodiment, the generation of the exposure strategy data is based on at least one of the determined feature type data and the machine-specific data.

[0023] In yet another embodiment, the determination of the nesting matrix data is based on the received job input data.

[0024] In another additional embodiment, the generation of the machine job file is further based on geometric data related to at least one three-dimensional CAD file of slice data, support structure data, feature data, and machine-specific data.

[0025] In yet another additional embodiment, a device for generating a job file includes a processor and an addressable memory. The processor is configured to receive at least one computer-aided design (CAD) file, determine part data from the at least one CAD file, generate orientation data related to the determined part data, generate support data related to the determined part data, generate feature data related to the determined part data, generate slice data related to the determined part data, and generate a part build file. Based on the part build file, generate exposure strategy data, determine nested part data, and generate a job file. The part build file includes geometric data related to the at least one CAD file and at least one of part data, orientation data, support data, feature data, and slice data.

[0026] In yet another additional embodiment, the generation of the support data is based on the generated orientation data. In yet another embodiment, the generation of the slice data is also related to the orientation data, support data, and feature data.

[0027] In yet another embodiment, the generation of the part build file includes geometric data, part data, orientation data, support data, feature data, and slice data related to the at least one CAD file.

[0028] Again, in another embodiment, the determination of the nested part data is related to the received part build file. In yet another additional embodiment, the generation of the job file is related to the received data in the part build file, exposure strategy data, and nested part data. Brief Description of the Drawings

[0029] Embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings, and in which: Figure 1A A current 3D printing system is depicted; Figure 1B A functional block diagram of a current 3D printing process is depicted; Figure 2 A functional block diagram of a part build 3D printing process according to various aspects of the present embodiment is depicted; Figure 3 Is a flowchart of a top-level functional process of a part build embodiment; Figure 4 Is a flowchart of a top-level functional process of a 3D machining process embodiment using part build; Figure 5 Is a functional block diagram of a part build system according to various aspects of the present embodiment; Figure 6 A flowchart depicting an optimization workflow in a part build system according to various aspects of the present embodiment is depicted; Figure 7Depicts a functional block diagram of a part building system according to various aspects of the present embodiment; Figure 8 Depicts another functional block diagram of a part building system according to various aspects of the present embodiment; Figure 9 Depicts a data workflow for generating a machine job file using part building data according to various aspects of the present embodiment; and Figure 10 Depicts a workflow of a part building system according to various aspects of the present embodiment. Detailed description

[0030] Figure 1A Depicts an example functional block diagram of a typical 3D printing process 100, in which a 3D printing design can be stored in a file format, such as a stereolithography (STL) file 115. The STL file 115 can describe the surface geometry of a three-dimensional object as an original, unstructured triangulated surface. Once the STL file 115 is created, the file may need to be processed by a slicer component 120. The slicer component 120 can convert the model stored in the physical file (STL file, 115) into a series of thin layers and generate a job file 125, i.e., a printer instruction file, which contains instructions customized for a specific type of 3D printer. The job file 125 can then be printed using a 3D printing client component 180, which itself can load the job file 125 and use it to direct the 3D printer during the 3D printing process. The 3D printing process can then create a printed object 190.

[0031] Figure 1BDepicts an example functional block diagram of a conventional 3D printing process 101 based on received computer-aided design (CAD) data files. CAD file 1 103 and CAD file 2 104 can go through the following stages: First, prepare the part 105, then prepare the build 106, 107, and output the converted build as build 1 108 and build 2 109. Generally, process 101 starts with CAD files 103, 104, and then prepares 105 each part before the build. Preparing the part 105 for the build can include determining, based on each CAD file, which parts will be included in a particular build, as one CAD file can include multiple parts, and only a subset of these parts is desired by the user to be printed. Build preparation 106, 107 can include, for example, converting CAD files 103, 104 into STL files, sending the STL files to a slicer component, and translating the data into a local printer job file, where then the job file can be sent to a 3D printer for printing. In this method, during build preparation 106, 107, all parts are prepared and formatted for printing. For example, given part 1 and part 2 selected from CAD files 103, 104, both are sliced and formatted for printing during build preparation 106, 107. In this example, if ten (10) units of part 1 and twenty (20) units of part 2 are needed to be 3D printed, they will be sliced at the end of build preparation 106. That is, the part 1 portion will need to be sliced 10 times, while the part 2 portion will need to be sliced 20 times. This method is obvious, as multiple parts are typically required for each CAD file and build. As described, multiple part preparations, slice calculations, and data format handling may be necessary to achieve the desired build.

[0032] In aspects of this embodiment, an embodiment of a part build system can divide the process of preparing a job file into two steps and create a reusable intermediate file: a part build data file. Any given part build file can be used to generate one or more job files without redefining or recalculating the manufacturing information required for a 3D printing build. By way of example and not limitation, some advantages of a part build system can be: saving processing time by eliminating the need for repetitive definition of manufacturing information; improving the consistency of part builds each time a part is built, regardless of the job file; and maintaining traceability, as each build can be traced back to the original 3D CAD file and associated manufacturing information. In one example, the ability to trace the build of each produced part can allow identification of the corresponding job and corresponding part build. That is, the parts built according to a given part build data file can be identified, and thus any differences between parts produced from the same part build data can be traced.

[0033] In one embodiment, a part build file may include an original 3D CAD file and manufacturing information required to build the file. That is, the following manufacturing information may be included: • Orientation data of the part to be built in 3D space; • Support structure data to be added to the oriented part; • Feature data defining the characterizing features of the original part for printing; and • Slicing performed to save time in generating subsequent job files.

[0034] As Figure 2 shown, according to aspects of this embodiment, 3D printing (or additive manufacturing) builds parts defined by CAD files 203, 204, where CAD files 203, 204 may be 3D CAD files. For example, system 200 may receive the same CAD files as in Figure 1B CAD file 1 203 and CAD file 2 204. In part build system 200, one or more 3D CAD files 203, 204 may be selected, combined, prepared 213, 214 for building by adding the manufacturing information required to build them, and converted into part build files 223, 224. In many embodiments, part build files 223, 224 may be XML-type tabular files. In many embodiments, part build files 223, 224 include at least one 3D CAD file and associated manufacturing information related to the 3D printing of the 3D CAD file. In various embodiments, part build files may be used for build preparation 233, 234. In certain embodiments, 3D printing builds 243, 244 may be prepared 233, 234 using multiple part build files 223, 224. In more embodiments, build preparation 233, 234 generates a job file that the machine uses to build 243, 244 parts. The job file may include all the information required to build the part in a particular machine. The job file in part build system 200 may include: Manufacturing information data obtained from one or more part build files; Nesting and repeating matrix data required for building; Exposure strategies corresponding to each feature; and Process data formatted in a machine-specific input format.

[0035] In this embodiment, slicing can be performed based on the original CAD files 203, 204. That is to say, the part slicer can directly calculate the build layers (i.e., slices) based on the original 3D CAD model to obtain the highest level of performance and accuracy. The part build system 200 can then perform part preparation 213, 214 and introduce the intermediate steps generated by the part build files 223, 224. The part build data generation process can determine the slices that can be stored together with the part build files 223, 224 along with the feature information and support structure generation that can then be reused in multiple jobs, thus saving time and providing consistency between builds.

[0036] By way of example and not limitation, when using the part build system 200, compared with the Figure 1B previously used method shown without the intermediate part build files 223, 224, computational efficiency can be achieved. Similar to the process outlined in the Figure 1B discussion, part 1 can be prepared once and only needs to be sliced once at the end of the preparation steps 213, 214; subsequently, part 2 can be prepared once and only needs to be sliced once at the end of the preparation steps 213, 214. That is to say, compared with a total of thirty (30) slices according to the Figure 1B example, during build preparation 223, 224, ten (10) units of part 1 and twenty (20) units of part 2 are placed in the build chamber, where only two slice calculations are performed. Therefore, in order to generate and export the build files, the slice data is repeated (and the placement and orientation corresponding to the parts in the chamber are transformed), so that only two (2) slice calculations need to be generated to produce 30 parts (as opposed to slicing 30 times to produce 30 parts). In subsequent jobs for manufacturing parts, the previously prepared part build files 223, 224 and / or job files can be used for 3D printing of part 1 and part 2. Thus, if a subsequent job requires a different number of parts, for example, ten (10) units of part 1 and ten (10) units of part 2, then through nesting, the subsequent job file can be based on the parts previously prepared in the part build files 223, 224 (with the 3D CAD model and manufacturing information including slice data). In one embodiment, based on the slicing method, slicing can be performed differently for subsequent jobs, and similarly, the manufacturing information can be updated or modified in subsequent jobs. However, the data related to each previously prepared part can be utilized during the build preparation process, potentially reducing the processing time.

[0037] Figure 3A flowchart showing the part building system workflow is presented, where the part build file 314 includes the original 3D CAD file imported 302 from a 3D CAD model. Once imported 302, the system 300 can orient 304 the part by placing the part in an appropriate orientation space and generating orientation data. After orienting 304 the part, the system 300 can detect regions to support and create appropriate support 305 structure data that will be added to the oriented part data. Then, the system 300 can automatically determine which features will be included in the generation of feature data by identifying any features 306 (i.e., volumes). In some embodiments, a toolpath determination step can then be performed, where the exposure 307 strategy data 307 for the original part and the creation of its associated support structure data are determined. In other embodiments, the build part file 314 is generated without exposure strategy data 307. Then the slicing 308 step can be performed to determine the slice data related to the internal slices of the model, thus saving time in preparing any subsequent job files. At this point, the part build step has imported 302 the CAD file and prepared the CAD file for print production; and the part build file 314 has been saved for future job file generation 310. Once the part build file 314 is created, job 316 selection can be performed to set up the job 316 using the part build file 314 and optimize the work envelope and handling of the part. The job 316 can be executed by nesting 309 and automatically placing and orienting different parts within the job. A job file is created and / or generated 310, and then this job file can be executed. Finally, the actual additive manufacturing can be performed to build 312 the part based on the previously generated part build file 314.

[0038] By storing the manufacturing information required to build the part in the part build file 314, the file 314 can then be used in one or more job files without redefining the manufacturing information. This manufacturing information provides information on how the part is to be oriented in space for building (i.e., rotation and translation), and is used to create a job file that can itself include one or more part build files 314, be nested and repeated as needed, and be formatted in a machine-specific format.

[0039] Figure 4Depicts a functional block diagram of a part building system 400, where the system 400 can use a database 410, and all of the following intermediate objects can be stored in the central database 410: CAD part 420, part building file 440, job file 460, log file 480, and all links between these files. The database 410 can act as a central node linking different objects. Thus, the CAD part 420 can be an input to the part building component 430, where the part building file is determined and stored in the database 410. Once the part building file 440 is determined, it can be used in the job module 450 to create the job file 460, which can also be stored in the database 410. The job file 460 is then used as an input to the 3D printer 470, which can then create the log file 480, which is also stored in the database 410.

[0040] Figure 5 Depicts a functional block diagram of a part building system 500, where the system 500 includes a user interface 550 that allows the input or import of 3D CAD files 551, 552 from a 3D CAD model database 541. A planning component 510 can be executed by the system to generate manufacturing information and orient parts, determine supports, identify features, and (optionally) determine an exposure strategy, i.e., a tool path. The planning component 510 can then determine a part building file and store the file in a part building database 542. In some embodiments, a slicing component 520 can read one or more part building files stored in the part building database 542 from the planning module 510 as inputs and use them for slicing. In other embodiments, the slicing component 520 is used by the planning component 510 to generate manufacturing data and slice the 3D CAD files 551, 552 before generating and storing the part building files. The slicing component 520 can divide the 3D models stored in one or more part building files or in the 3D CAD files 551, 552 into multiple horizontal layers for job preparation. In additional embodiments, a job generation component 530 can then receive all data 521 necessary for job file creation and associated with the parts used for job file creation from the slicing component 520. In additional embodiments, the job generation component 530 can receive the data 521 necessary for job file creation from the planning component 510 or a part building device 502. The job generation component 530 can then create a nest 543 for setting up the job using the part building file by automatically placing and orienting different parts in the job and process the part for building 544.

[0041] In one embodiment of the part build system 500, reusable intermediate files, i.e., part build files, can be identified so as to distribute the preparation of the job file to different components of the system. By dispatching the processing to different components and steps, e.g., two steps, the need to redefine any manufacturing information for each job can be eliminated. That is, a computer-aided manufacturing (CAM) component can create a job file containing all parameters for all entities, and a computer numerical control (CNC) component of the additive machine can directly generate toolpaths based on all given parameters. In this scenario, all given parameters can be grouped in one job file. Thus, in the sliced powder bed, one file is created with all the contours of each area to be melted in each layer. Optionally, in the additive CAM component of the part build system 500, after slicing, the contours are saved in the slice file. Then the parts are nested in the job module. When the job is exported, considering the position of the parts in the job, the slice file is exported as a layer file (.sli or.clf). Then, the layer file and the feature parameters are grouped into the job file. The job file can include all the information needed to create the toolpaths, but the toolpaths are directly created by the CNC. Thus, the need to export such contours in a layer file (e.g.,.sli or.cli or.clf) may be reduced because their parts have already been nested.

[0042] Figure 6 A flowchart depicting an optimized workflow in a part build system is shown. By identifying a set of part build files, where each part 610, 620, 630, 640 is saved together with all the part build information 615, 625, 635, 645 required to manufacture that part, at any time, those different parts 610, 620, 630, 640 can be easily placed into job selection 650 and build 312. That is, whether stored in a database or in an addressable memory for faster access, the part build files can provide links to all intermediate objects and allow the system to link all files, e.g., CAD parts, parts to be built, job files, log files, etc. As shown, the job selection component can use different job numbers, where the system can perform job selection 650 by introducing a large number of part build files, nesting 309 them in the appropriate configuration, generating 310 the job file, and building 312 the parts through the machining steps.

[0043] Figure 7A functional block diagram depicting an embodiment of a part building system 700 is shown. In this embodiment, a user interface 710 can be provided to receive user input data. The part building computing device 720 can include a processor and addressable memory, and synchronize different components through a linking function. In one embodiment, a set of parts to be built (part build 740) can transfer all the parts to be built to the part preparation component 750, and the part preparation component 750 can determine the different parts to be built, i.e., prepare the parts in a list for example. Then the build preparation component 760 can be executed to prepare for the build, where the build preparation component 760 does not prepare all these parts when all the parts received from the part preparation component 750 arrive, but prepares each part one at a time. Once the part preparation component 750 has prepared each part, at the end of the build preparation 760, the slicing component 770 can then slice each prepared part. In one embodiment, during the build preparation, each part can be placed in the build chamber. Subsequently, for exporting the build file, the sliced parts are repeated and transformed corresponding to the placement of the parts in the chamber. In some embodiments, the part building computing device can output data for machining 790 by a 3D printer.

[0044] Figure 8 A functional block diagram depicting an embodiment of a part building system 800 is shown. In this embodiment, the part building component 830 receives CAD data, such as a 3D CAD file, as input and determines part building data to be output, such as a part build file 840, where the part build file 840 can be sent to the job processing component 850 (which itself communicates with the user interface 851) and utilizes the nesting component 852, and the post-processor component 860 can then generate and output a job file 870 based on the input. In one embodiment, the system can select part data 815 of a specific part intended for printing from among multiple part data stored in the 3D CAD file. That is, part data and a subset of one or more parts and associated part data from the complete set in the CAD file can be extracted for processing. The system 800 can use the generated job file 870 to machine 880 the desired build of one or more parts.

[0045] The part building component 830 can communicate with, for example, a user interface 820 for receiving and / or outputting user data and a surface recognition component 825. The part building component 830 can include a feature type component 812, a support generation component 811, an orientation component 810, and a slicing component 813. In one aspect of an embodiment, the orientation component can generate orientation data based on a selected orientation of an input CAD file. In some embodiments, the user interface 820 can provide input from the user regarding which parts 815 in the 3D model contained in the 3D CAD file will be selected and included in the build process. In some embodiments, the selected oriented parts from the 3D model within the 3D CAD file can be used as an input for the support generation component 811 to generate support data. In other embodiments, the supported and oriented parts generated according to the 3D model can be used as an input for the feature type component 812, which can analyze the oriented 3D model and the associated supported features. In one embodiment, a feature can be a model describing the part to be printed and can be divided into several features. Each feature (e.g., a solid or a volume) can have a unique manufacturing strategy associated therewith. Additionally, the feature type can be a general feature characterization, such as rough, thin-walled, mesh, support, etc.

[0046] In some embodiments, the surface recognition component 825 can be used to provide additional data necessary for analyzing and determining the feature type. In one embodiment, the user interface 820 can provide feedback to the user regarding the determined features and allow input of selection and / or solution data that can be used by the part building component 830 to modify and / or select the generated data. In some embodiments, a 3D model with associated orientation data, support data, and feature type data can be used as an input for the slicing component 813, which can generate slicing data for a part build file 840. In an alternative embodiment, the analyzed feature data based on the oriented 3D model and the associated support generation data can be used to determine the part build file 840 and then be transmitted to a job processing component 850 as input data for processing. In certain embodiments, the part building component 830 has an input to an optional component 828, which can allow for the inclusion of optional data types in future part build file 840 generation.

[0047] In some embodiments, the part build system 800 may include a job processing component 850 that may generate a job file 870 for use by a 3D printer to direct machining 880. In one embodiment, a user interface 851 may communicate with the job processing component 850. In some embodiments, the user interface 851 may enable a user to input job file creation parameters based in part on the transmitted part build file 840. In one embodiment, the job processing component 850 includes a nesting component 852 and a post-processor 860. In some embodiments, the nesting component 852 may utilize input from the user interface 851 to generate a nesting matrix that may permit nesting of various parts within a desired build. In one embodiment, the nesting matrix data is output to the post-processor 860, which may utilize all available data to generate a job file 870 for use by the 3D printer. In some embodiments, the job file 870 may contain all necessary instructions to permit machining 880 of the desired build.

[0048] Figure 9 A data workflow 900 is depicted that generates a machine job file 990 utilizing part build data 910 in accordance with aspects of the present embodiment. In many embodiments, the workflow 900 obtains part build data 910 from external and / or internal sources, such as part build files. In certain embodiments, the source may be from a 3D printer. In additional embodiments, the external source may be a remote user terminal that permits a user to submit parts to be built at a third-party print station. In some embodiments, the external source may be a computing device attached to the machine job file generation component in some form (physical or wireless). In Figure 9In an embodiment, when a user selects a machine job file 990 as job 940, the machine job file 990 can be determined based on the selected part(s) included in the machine job file 990. Job 940 can be sent to machine 930 to determine machine-specific information data 932, including but not limited to machine brand and build chamber size. The machine-specific data 932 can then be sent to pre-processor component 925. In some embodiments, at block 920, data representing feature type 922 can be determined based on part build data 910. In some embodiments, the generated feature type data can be used as input data to pre-processor component 925. In some embodiments, the feature type data can represent the enclosed volume or geometry of the part build data 910, which can be divided into multiple features, each feature having topological specificities that may require specific manufacturing strategies. By way of example and not limitation, a part build file including supports, large areas, and mesh areas can be divided into three different features because each feature (support, large area, and mesh) can have different associated manufacturing strategies. In yet other embodiments, pre-processor component 925 can generate an exposure strategy 960 based on feature type data 922 and machine-specific data 932, and the exposure strategy 960 can be output as a set of data associated with each feature type for post-processor component 955. In one embodiment, an exposure strategy 960 can be determined for a job based on associating the exposure strategy with feature type data 922 and machine-specific data 932.

[0049] In one embodiment, the exposure strategy data 960 can be used, for example, for the use and guidance of ultraviolet light to cure and solidify the pattern depicted on the resin and bond it to the underlying printed layer. In one embodiment, the part build data can include geometric data extracted from a CAD file and / or all data stored in the CAD file. In some embodiments, part build data 910 is fed into slicer component 915 for slice data determination. In certain embodiments, the part build data 910 may already include slice data based on previous slice calculations made during the preparation of the part build file (see Figure 8, reference numeral 813). In these cases, the slicer component 915 can simply pass the slice data without further slicing calculations. In other embodiments, when the relevant slice data does not exist in the part build data 910, the slicer component 915 can generate the slice data required for passing to the post-processor component 955. That is, the slicer component performs a check to determine whether the part build data 910 includes slice data (which can be done via a flag), and if the slice data has been included, filters the data and passes the data to the post-processor component 955. If the slice data has not been previously determined and included in the part build data 910, then the slicer component 915 can perform slicing and determine the general slice data 950 for passing to the post-processor component 955. Thus, the slicer component 915 passes the general slice data 950 to the post-processor component 955.

[0050] The user-selected job 940 can require parts to be nested in order to improve build efficiency. In some embodiments, the job 940 can be passed to the nesting component 935 for determining the nesting matrix 970 and / or the nested parts, which can be fed into the post-processor component 955 for use. In additional embodiments, the post-processor component 955 can utilize the nesting matrix data 970 to transform the general slice data 950 for a nested print job. In one embodiment, the job 940 can provide data to the 3D printer 980, where the machine 980 can determine data related to machine-specific attributes and send it to the post-processor component 955. In some embodiments, the post-processor component 955 can utilize the machine-specific data to better determine the data that needs to be generated in the machine job file 990. In some embodiments, the post-processor component 955 utilizes all available input data, including but not limited to the general slice data 950, the exposure strategy data 960, the nesting matrix and / or nested part data 970, and / or the machine-specific data, to generate the machine job file 990, which guides the 3D printer to build and print the user-selected job as needed.

[0051] Figure 10Depicts the functional workflow of the part build system 1000. In one embodiment, the workflow 1000 takes the CAD file 1010 fed into the part build block 1020 as the initial input. In the part build block 1020, the CAD file data can be passed through the orientation component 1021 to generate orientation data, and then the support data is generated by the support generation component 1022. In some embodiments, the feature classification component 1023 can utilize the CAD file 1010, the orientation data, and the support data to generate feature data. In certain embodiments, the slicing is not completed by the part build block 1020, and the part build file 1030 (including part build data) can be generated based on the 3D CAD file 1010 and the manufacturing information including the orientation data, the support data, and the feature data. In other embodiments, the part build block 1020 generates slicing data through the slicing component 1024 and incorporates the slicing data as manufacturing data into the generated part build file 1030. In one embodiment, once the generated part build file 1030 is created, it may not be modified or is not intended to be modified. That is, the generated part build file 1030 can be verified at the time of generation to reduce the likelihood of future changes and / or tampering with the file structure. Thus, the part build file can be used for traceability. The verification of the part build file can be carried out by setting a flag, which can indicate the status of the part build data generated based on the CAD file. The flag can be used to prevent any modification and to repair and / or save the data in the current state to ensure the traceability of the data through the job generation process and to further allow the association of the part with the part build data file.

[0052] In additional embodiments, the job generation block 1040 can take the part build data file 1030 as input and proceed to generate exposure strategy data in the preprocessor component 1041. In embodiments with nested parts, the nesting process 1042 can generate nested part data 1043. In various embodiments, the part build data file 1030 may not have the slicing data embedded for use by the job generation block 1040, which would require the job generation block 1040 to pass the nested part data 1043 to the slicing component 1044 to generate slicing data. In many embodiments, the post-processing component 1045 within the job generation block 1040 can obtain the slicing data from the slicing component 1044 or from the pre-sliced nested part data 1043 and generate the final job data file 1050 for use by the 3D printer to facilitate the selected build. In some embodiments, the final job data file 1050 can include machine-specific positioning data and exposure strategies associated with each slice in the print job.

[0053] Embodiments have been described with reference to the flowchart illustrations and / or block diagrams of methods, apparatuses (systems), and computer program products according to embodiments. Each block of these illustrations and / or combinations thereof can be implemented by computer program instructions. When the computer program instructions are provided to a processor, they produce a machine such that the instructions executed via the processor create an apparatus for implementing the functions / operations specified in the flowchart and / or block diagram. Each block in the flowchart / block diagram may represent a hardware and / or software module or logic for implementing an embodiment. In alternative implementations, the functions noted in the blocks may not occur in the order noted in the figures.

[0054] A computer program (i.e., computer control logic) is stored in the main memory and / or auxiliary memory. The computer program can also be received via a communication interface. When such a computer program is executed, it enables the computer system to perform the features of the embodiments discussed herein. In particular, when the computer program is executed, it enables the processor and / or multi-core processor to perform the features of the computer system. Such a computer program represents the controller of the computer system.

[0055] The visual display in the figures is generated by modules in local or cloud-based applications on a computing device and / or system / platform and is displayed on the electronic display of the computing device for user interaction and forms a graphical user interface for interacting with the system / platform disclosed herein.

[0056] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagram may represent a module, a segment of a program, or a portion of code that includes one or more executable instructions for implementing the specified logical function. It should also be noted that in certain alternative implementations, the functions noted in the blocks may not occur in the order noted in the figures. For example, two blocks shown in succession may in fact be executed substantially simultaneously, or the blocks may sometimes be executed in the reverse order, depending on the functions involved. It should also be noted that each block of the block diagrams and / or flowchart illustrations, and combinations of blocks in the block diagrams and / or flowchart illustrations, can be implemented by a dedicated hardware-based system for performing the specified functions or actions or by a combination of dedicated hardware and computer instructions.

[0057] It is contemplated that various combinations and / or sub-combinations of the specific features and aspects of the above embodiments can be made and still fall within the scope of the present invention. Accordingly, it should be understood that the various features and aspects of the disclosed embodiments can be combined with or substituted for one another in order to form various variations of the disclosed invention. In addition, the scope of the present invention, as disclosed herein by way of example, is not intended to be limited to the specific embodiments disclosed above.

Claims

1. A system, comprising: A part building component, wherein the part building component includes a processor and an addressable memory, and the processor of the part building component is configured to: Determine part data from at least one received computer-aided design (CAD) file; Determine a part building file based on geometric data associated with the at least one received CAD file; and A job generation component, wherein the job generation component includes a processor and an addressable memory, and the processor of the job generation component is configured to: Generate a nesting matrix associated with the received and determined part building file via a nesting component; Generate slice data based on the generated nesting matrix, the nesting matrix being associated with the received and determined part building file; and Determine a job file based on the generated nesting matrix and the generated slice data, wherein the job file includes data for operating a 3D printer.

2. The system according to claim 1, wherein, The processor of the part building component is further configured to receive user input from a user interface.

3. The system according to claim 1, wherein, The part data includes data related to geometric information of at least one part stored in the received CAD file.

4. The system according to claim 1, wherein, The processor of the part building component is further configured to: Generate orientation data associated with the determined part data via an orientation component; Generate support data associated with the determined part data via a support generation component; And Generate feature data associated with the determined part data via a feature type component.

5. The system according to claim 4, wherein, The part building file is further determined based on at least one of the following: the determined part data, the generated orientation data, the generated support data, and the generated feature data.

6. The system according to claim 1, wherein, The processor of the part building component is further configured to receive surface identification data related to the determined part data from an external surface identification component.

7. The system according to claim 1, wherein, The processor of the job generation component is further configured to receive user input from a user interface.

8. The system according to claim 7, wherein, The generation of the nesting matrix is further based on the received user input.

9. A method, comprising: Based on receiving job input data, a computing device transmits a request for machine-specific data to a three-dimensional (3D) printer, the job input data including data related to a desired build; The computing device receives part building data, wherein the part building data includes: geometric data related to at least one three-dimensional computer-aided design (CAD) file, and a set of manufacturing information data; The computing device determines nesting matrix data associated with the received part building data; The computing device determines slice data based on the determined nesting matrix data, the nesting matrix data being associated with the received part building data; and The computing device determines a machine job file based on the determined nesting matrix data and the determined slice data.

10. The method according to claim 9, wherein, The determination of the nesting matrix data is based on the received job input data.

11. The method according to claim 9, further comprising: The computing device determines feature type data and exposure strategy data.

12. The method according to claim 11, wherein, The determination of the machine job file is further based on the determined feature type data and exposure strategy data.

13. A device for generating a job file, the device comprising: A processor and an addressable memory, the processor being configured to: Receive at least one computer-aided design (CAD) file; Determine part data from the at least one CAD file; Generate a part build file, wherein the part build file includes: Geometric data associated with at least one CAD file; Determine nesting matrix data associated with the generated part build file; Determine slice data based on the determined nesting matrix data, the nesting matrix data being associated with the generated part build file; and Generate a job file based on the determined nesting matrix data and the determined slice data.

14. The device according to claim 13, wherein, The part build file further includes at least one of the following: the determined part data, orientation data, support data, and feature data.

15. The device according to claim 13, wherein, The generation of the slice data is based on data related to the determined part data, the data including at least one of the following: orientation data, support data, and feature data.

16. The device according to claim 13, wherein, The generation of the job file is related to the received data, exposure strategy data, and nested part data in the part build file.