A method for generating a unified list of executable instructions using different software packages and associated systems.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-07-30
- Publication Date
- 2026-08-14
Smart Images

Figure 2026527512000001_ABST
Abstract
Description
Technical Field
[0001] (Priority Claim) This application claims the benefit of the filing date of U.S. Patent Application No. 18 / 363,647, filed on August 1, 2023, entitled "METHODS FOR GENERATING AN INTEGRATED LIST OF EXECUTABLE INSTRUCTIONS USING DISPARATE SOFTWARE PACKAGES AND RELATED SYSTEMS", the disclosure of which is hereby incorporated by reference in its entirety.
[0002] Embodiments of the present disclosure generally relate to systems and methods for merging one or more executable instructions received from independent software packages into an integrated list of executable instructions.
Background Art
[0003] Automatically precise control of various processes can be made possible by computerized instructions. With the computerization of manufacturing, the amount of tasks that can be automatically and accurately performed by power-driven machine tools has been increasing. Numerical control (NC) can enable automatic control of machine tools used to manufacture various manufactured articles. NC instructions may be provided to a power tool or tool platform, and when executed, control the movement or positioning of the tool or platform, enabling the tool to manufacture an article. For example, NC instructions may be used when controlling the process of additive manufacturing of an article.
Summary of the Invention
[0004] Some embodiments of the present disclosure include the steps of: receiving a design input for a predetermined machine drive process; providing the design input to a first software package and a second software package, each of which is configured to generate a list of executable instructions for performing at least a portion of the predetermined machine drive process; receiving one or more first instructions from the first software package and one or more second instructions from the second software package; generating one or more third instructions based at least in part on the one or more first instructions or the one or more second instructions; providing the one or more first instructions, the one or more second instructions, and / or the one or more third instructions to the first software package and / or the second software package; receiving a first list of executable instructions and a second list of executable instructions from the first software package and the second software package, respectively; and merging the first list of executable instructions and the second list of executable instructions to generate a combined list of executable instructions.
[0005] Additional embodiments of the present disclosure may include a system including a robotic arm which may include a plurality of machine tools. The system may also include at least one processor and at least one non-temporary computer-readable storage medium for storing instructions, the instructions which, when executed by the at least one processor, provide the system with a design input for manufacturing an article; and provide the design input to a first software package and a second software package, each of which is configured to generate a list of executable instructions configured to perform at least a portion of the process of manufacturing the article; and provide one or more first instructions from the first software package and the second software package The process involves: receiving one or more second instructions from a package; generating one or more third instructions based at least partially on the one or more first instructions or the one or more second instructions; providing the one or more first instructions, the one or more second instructions, and / or the one or more third instructions to the first software package and / or the second software package; receiving a first list of executable instructions and a second list of executable instructions from the first software package and the second software package, respectively; and merging the first list of executable instructions and the second list of executable instructions to generate a unified list of executable instructions.
[0006] Further embodiments of the present disclosure may include a non-temporary computer-readable storage medium for storing instructions, the instructions, when executed by at least one processor, include the steps of: receiving design input for a predetermined machine drive process; providing the design input to a first software package and a second software package, each of which is configured to generate a list of executable instructions for performing at least a portion of the predetermined machine drive process; and providing one or more first instructions from the first software package and one or more second instructions from the second software package. The system performs an action that includes the steps of receiving; generating one or more third instructions based at least in part on the one or more first instructions or the one or more second instructions; providing the one or more first instructions, the one or more second instructions, and / or the one or more third instructions to the first software package and / or the second software package; receiving a first list of executable instructions and a second list of executable instructions from the first software package and the second software package, respectively; and merging the first list of executable instructions and the second list of executable instructions to generate a combined list of executable instructions. [Brief explanation of the drawing]
[0007] This disclosure concludes with claims that specifically point out and assert concrete examples, but various features and advantages of embodiments within the scope of this disclosure can be more readily identified from the following description in conjunction with the accompanying drawings.
[0008] [Figure 1] This is a schematic diagram illustrating an exemplary manufacturing tool system according to one or more embodiments of the present disclosure. [Figure 2A] The following are sequence diagrams that can be used by a manufacturing tool system to generate an integrated list of executable instructions, according to one or more embodiments. [Figure 2B] The following are sequence diagrams that can be used by a manufacturing tool system to generate an integrated list of executable instructions, according to one or more embodiments. [Figure 2C] The following are sequence diagrams that can be used by a manufacturing tool system to generate an integrated list of executable instructions, according to one or more embodiments. [Figure 3] This is a flowchart illustrating the operation of a manufacturing tool system for processing one or more design inputs, according to one or more embodiments of the present disclosure. [Figure 4] This is an operational flowchart of a manufacturing tool system for evaluating or manipulating data received from one or more independent software packages and for providing data to one or more independent software packages, according to one or more embodiments of the present disclosure. [Figure 5] This is an operational flowchart of a manufacturing tool system for merging a list of executable instructions, according to one or more embodiments of the present disclosure. [Figure 6] In some examples, these are block diagrams of circuits that may be used to implement the various functions, operations, acts, processes, and / or methods disclosed herein. [Modes for carrying out the invention]
[0009] Numerical control (NC) programming (sometimes called “offline programming”) may involve the process of creating a list of instructions for controlling a machine tool. For example, creating NC instructions may involve creating one or more tool paths and various movements and actions of a machine tool for manufacturing or operating a manufactured item. NC programming is often done in combination with, or through, process simulation (e.g., simulating a tool path or manufacturing process to verify that a part can be manufactured or machined as intended). NC programming may be used in a variety of manufacturing situations. For example, NC programming may be used to control processes in additive manufacturing, automated fiber placement, large pellet extrusion, or subtractive manufacturing (e.g., machining).
[0010] When programming NC instructions for a process, each distinct process may be defined using a dedicated programming software package (e.g., a computer application) for creating and organizing instructions. For example, in an additive manufacturing process, a software package may be used to generate or edit one or more instructions for executing the additive manufacturing process, such as generating instructions to deposit material layer by layer to form a predetermined geometric shape. The number of different manufacturing processes can be enormous. For example, additive manufacturing processes may include, among other processes, processes such as stereolithography, powder bed fusion (PBF) processes such as selective laser sintering (SLS), binder injection, and material extrusion (e.g., fused filament manufacturing (FFF), directed energy deposition (DED) such as laser metal deposition (LMD). Each different additive manufacturing process may also have a specialized programming software package designed to facilitate the creation of specialized NC instructions for the additive manufacturing process, depending on the different requirements of each process. Furthermore, other software packages may be used to generate a list of instructions for controlling an automated fiber placement process or a large pellet extrusion process, which in turn control various machining processes (milling, turning, laser cutting, waterjet cutting, etc.) for removing material from a given product. Each process may require a different tool to execute.
[0011] Furthermore, in some cases, the desired article may require one or more different processes (e.g., additive manufacturing, automated fiber placement, subtractive manufacturing) to complete the manufactured article. For example, one software package may generate a list of NC commands for additive manufacturing an article, and then another software package may generate a list of commands for machining or removing parts of the article manufactured by additive manufacturing. However, since each different process may require a different machine tool to perform each process, the NC commands for each process are typically developed using siloed, independent software packages. For example, an additive manufacturing process may require various tools necessary for additive manufacturing, such as extruders, feed materials, and heating equipment. Conversely, a subtractive manufacturing process may require lathes, drill presses, grinders, band saws, water jet machines, plasma cutters, etc. Therefore, multiple processes may require multiple separate tools, which may necessitate changing and removing various tools at different stages of manufacturing, thus increasing the manufacturing time for producing the article.
[0012] One method for manufacturing an item that requires multiple NC manufacturing processes using different tools may involve combining the tools into a single machine and / or motion platform. For example, a robotic arm positioned on a motion platform may include one or more tools for additive manufacturing and one or more tools for subtractive manufacturing or automated fiber placement, or any other tools for the manufacturing process. However, even when the tools required for multiple manufacturing processes are combined into a single tool such as a robotic arm, each process is typically controlled by a unique set of instructions generated by siloed offline software packages. Each of these software packages is typically configured to generate a list of executable NC instructions for completing a single manufacturing process without knowledge of other manufacturing processes that have been or need to be performed on the item. Performing each process separately can increase manufacturing time and diminish the advantages of combining tools into a single machine and / or motion platform. Some approaches that enable controlling multiple processes using a single machine may involve manually developing all the necessary software required to generate a single list of executable instructions for multiple manufacturing processes within a single software package. However, NC processes are extremely complex, and the various standard manufacturing software packages currently available for individual manufacturing processes have been developed and expanded over many years, sometimes even years. Therefore, developing a single software package to perform the same functions as multiple mature software packages can be extremely expensive and time-consuming.
[0013] Therefore, to avoid the cost and time spent developing a single software package to execute multi-format processes, integrated software can be provided to facilitate and coordinate the generation of executable instructions in independent software packages, allowing the integrated software to create a list of executable instructions configured to be merged together into a single integrated list of executable instructions for multi-format process control. For example, an integrated list of executable instructions may enable a holistic NC program to weave together executable instructions for additive manufacturing tasks, automated fiber placement tasks, or subtractive manufacturing tasks (but not limited to these) generated by independent software packages into the integrated list of executable instructions. By integrating separate lists of executable instructions generated by independent software packages, the integrated software enables the use of mature, independent software packages without the need to independently develop custom software packages to create lists of executable instructions for multi-format machine-driven processes.
[0014] According to this disclosure, a manufacturing tool system may use an integrated software package to facilitate and coordinate the creation of two or more lists of executable instructions generated by two or more independent software packages, integrate the two or more lists of executable instructions into an integrated list of executable instructions, and enable a single list of executable instructions for multi-format control of a machine including two or more manufacturing tools (e.g., additive manufacturing tools, automatic fiber placement tools, machining tools, etc.).
[0015] For example, an integrated software package may possess comprehensive knowledge of a desired composite manufacturing process and the various requirements for executing that process. This knowledge may enable the integrated software to facilitate communication of information exchanged between two or more independent software packages via the integrated software package, or information generated and provided by the integrated software, while independent software packages generate their respective lists of executable instructions (e.g., a list of executable instructions for additively manufacturing articles, a list of executable instructions for subtractively manufacturing articles, etc.). This may enable the individual lists of executable instructions to be merged together into a single integrated list of executable instructions for executing the composite manufacturing process.
[0016] For example, integrated software can provide design inputs (e.g., a three-dimensional representation of a manufactured article) to multiple independent software packages, the design inputs relating to a given machine drive process and adapted by the integrated software for use by each independent software package. Each individual software package may then begin generating one or more executable instructions, such as, but not limited to, instructions defining tool paths, material deposition, or material removal. As a specific example, a software package configured to generate NC instructions for an additive manufacturing tool may generate a list of instructions for controlling layer-by-layer deposition of material to form an article based on the design inputs. While each individual software package is developing various executable instructions, each individual software package may communicate with an integrated software package, and as a result, the integrated software package, based on the integrated software package's comprehensive knowledge of the combined manufacturing process, modifies the instructions generated within each individual software package, generates placeholder instructions, and generates additional instructions to be inserted into any of the generated lists of executable instructions, and the various lists of executable instructions generated by each of the independent software packages may be combined into a single list of executable instructions for use by a machine including multiple manufacturing tools (e.g., additive manufacturing tools, subtractive manufacturing tools, automated fiber placement tools, etc.).
[0017] Therefore, an integrated software package makes it possible to create a single list of executable instructions using multiple different independent software packages. This allows manufacturing tool systems to generate a single software package capable of creating lists of executable instructions for multiple manufacturing processes from the outset, potentially enabling the simultaneous use of multiple manufacturing processes while leveraging mature (e.g., already developed) software packages, without incurring significant costs or time. Furthermore, integrated software packages offer far greater scalability compared to traditional approaches, as new processes do not need to be hardcoded into existing software packages, and also save the time and cost required to develop such software.
[0018] While the discussion has been conducted in the context of specific types of software packages (e.g., software packages used to generate NC instructions), this disclosure is not limited to such packages. For example, the integrated software discussed herein may be used in conjunction with any type of standalone software package that generates executable instructions for a process.
[0019] Figure 1 shows a manufacturing tool system 100 according to one or more embodiments of the present disclosure. The manufacturing tool system 100 may include a client device 106 and a robotic arm 114. The client device may include a first software package 108, a second software package 110, and an integrated software package 112. The robotic arm 114 may include a first manufacturing tool 102 and a second manufacturing tool 104. The robotic arm 114 may also include a controller 116. The client device 106 may represent various types of computing devices with which a user 118 can interact. For example, the client device 106 may be a non-mobile device (e.g., a desktop or server). However, in some embodiments, the client device 106 may be a mobile device (e.g., a mobile phone, smartphone, PDA, tablet, laptop, watch, wearable device, etc.).
[0020] As shown in Figure 1, user 118 may interface with the manufacturing tool system 100 using a client device 106. For example, user 118 may generate one or more executable instructions via the client device 106 that are configured to control various movements of the robot arm 114 using the manufacturing tool system 100. User 118 may be an individual (i.e., a human user), a company, a group, or any other entity. Although Figure 1 shows only one user 118 associated with the client device 106, any number of users (e.g., one or more) may interact with the robot arm 114 using their corresponding client devices (e.g., connect and send and receive information).
[0021] The first manufacturing tool 102 and the second manufacturing tool 104 may be different tools used to manufacture an article. For example, the first manufacturing tool 102 or the second manufacturing tool 104 may be in the form of an additive manufacturing device, an automated fiber placement device, or a subtractive manufacturing device, but is not limited thereto. Although the robotic arm 114 is shown and discussed as having two manufacturing tools, the robotic arm 114 may include any number of manufacturing tools, and each manufacturing tool may be configured to perform one or more processes for manufacturing or shaping the manufactured article. Further, each manufacturing tool may be configured to perform a plurality of processes. For example, the first manufacturing tool 102 may be configured to perform both additive manufacturing and automated fiber placement.
[0022] The first software package 108, the second software package 110, and the integrated software package 112 may be configured to generate one or more lists of executable instructions. For example, the first software package 108 may be configured to generate a list of executable NC instructions for controlling various operations of the robotic arm 114 and the first manufacturing tool 102 included on the robotic arm 114. As a specific non-limiting example, the first software package 108 may be configured to generate a list of NC instructions for additive manufacturing of an article (e.g., by sequential layer deposition), and the first manufacturing tool 102 may include one or more components or tools for additive manufacturing such as a feedstock, and an extruder for depositing the feedstock. The list of NC instructions generated by the first software package 108 may control various operations of the robotic arm 114 and the first manufacturing tool 102 to perform additive manufacturing. Further, as a non-limiting example, the second software package 110 may be configured to generate a list of NC instructions for machining (e.g., removing material) from an article, and the second manufacturing tool 104 may include one or more machining components (e.g., a machining tool for milling, turning, laser cutting, or waterjet cutting, but not limited thereto). The list of NC instructions generated by the second software package 110 may control various operations of the robotic arm 114 and the second manufacturing tool 104 to perform a machining operation on the article.
[0023] In response to the integrated software package 112 merging one or more lists of executable instructions generated by the first software package 108 or the second software package 110, the user 118 may be enabled to create a list of executable instructions, and the integrated list of executable instructions may provide NC instructions for controlling the robotic arm 114, the first manufacturing tool 102, and the second manufacturing tool 104.
[0024] In some embodiments, the first software package 108, the second software package 110, and / or the integrated software package 112 may be native applications installed on the client device 106. For example, the first software package 108, the second software package 110, and / or the integrated software package 112 may be desktop applications installed and running on a desktop device. In some embodiments, the first software package 108, the second software package 110, and / or the integrated software package may be web applications that can be run via a web browser. Furthermore, in some embodiments, the integrated software package 112 may be included as an extension or add-on to the first software package 108 or the second software package 110 (e.g., as an application plugin). For example, the first software package 108 may be computer-aided design (CAD) software configured to design, simulate, and manufacture articles using additive manufacturing. Next, the integrated software package 112 may be added to the first software package 108 as a plug-in to facilitate communication between the first software package 108 and the second software package 110 (for example, automated fiber placement CAD software).
[0025] In Figure 1, the first software package 108, the second software package 110, and the integrated software package 112 are all shown to be contained within the client device 106, but other configurations are also possible. For example, one or more of the first software package 108, the second software package 110, or the integrated software package 112 may be contained within one or more other devices that communicate with the client device 106, so that the first software package 108 and the second software package 110 can each communicate with the integrated software package 112 (e.g., send and receive data).
[0026] The client device 106 may be configured to send and receive data (e.g., one or more executable instructions) to and from the robot arm 114. For example, the client device 106 and the robot arm 114 may communicate directly via a wired connection (e.g., a wired local area network (LAN)) or a wireless local network (WLAN). However, the client device 106 and the robot arm 114 may communicate using a network 120. The network 120 may include one or more networks such as the Internet, and may use one or more communication platforms or technologies suitable for transmitting data and / or communication signals. In some embodiments, the client device 106 may communicate one or more executable instructions (e.g., list NC instructions) to the robot arm 114 for execution by the controller 116, and the one or more executable instructions are configured to control one or more actions of the robot arm 114.
[0027] In Figure 1, a numerically controlled device containing multiple manufacturing tools is shown as a robot arm 114, but any numerically controlled manufacturing device may be used. For example, the numerically controlled device may be, but is not limited to, a three-axis Cartesian coordinate system machine, a five-axis Cartesian coordinate system machine, a gantry machine, or a post (horizontal) machine.
[0028] Figures 2A to 2C show sequence flow diagrams 200 that a manufacturing tool system (e.g., the manufacturing tool system 100 in Figure 1) may use to generate a list of one or more executable instructions for controlling a complex manufacturing process. The client device 106, which includes the first software package 108, the second software package 110, and the integrated software package 112 shown in Figures 2A to 2C, may be as described with reference to Figure 1.
[0029] Referring to sequence flow diagram 200, as shown in action 202, the integrated software package 112 may receive design inputs for a given machine-driven process. For example, the design inputs may include output from a CAD program such as a three-dimensional representation of the desired manufactured article, processing parameters or rules (e.g., travel speed, feed material, or temperature), a defined geometric area of the desired manufactured article and localized processing parameters, constraints or tolerance specifications, or high-level design criteria such as load or strength objectives or other performance criteria. The design inputs provided to the integrated software package 112 may include data that enables the integrated software package 112 to have complete and comprehensive knowledge of how the independent manufacturing processes function, how each provided software package (e.g., the first software package 108 and the second software package 110) functions, and how each provided software package can work together to perform a combined machine-driven manufacturing process.
[0030] As shown in Figure 2A, in action 204, the received design input may then be processed by the integrated software package 112 to prepare the design input to be provided to the first software package 108 and the second software package 110, respectively. For example, the integrated software package 112 may segment the design input based on what the integrated software knows about the composite process and provide a portion of the segmented data to the first software package 108 and the second software package 110. In a specific, non-limiting example, the first software package 108 may be configured to generate tool paths (e.g., NC instructions) for an additive manufacturing process, and the second software package 110 may generate tool paths for a machining manufacturing process. The integrated software package 112 may provide the design input to the first software package 108 to generate tool paths for manufacturing an article until machining steps need to be performed between the first software package 108 and the second software package 110 to reach the article based on the composite manufacturing process. Similarly, the integrated software package 112 may provide design inputs to a second software package 110 so that the second software package 110 can produce tool paths for machining articles manufactured by the first software package 108 based on the design inputs provided to the first software package 108. In this way, the integrated software package 112 may modify the design inputs and provide each first software package 108 with modified design inputs adapted to work with the first software package 108 or the second software package 110 (for example, the data adapted to work with the specific architecture of each software package). However, in some embodiments, the design inputs may be pre-prepared or in a form that does not require processing. Thus, the design inputs may then be provided to the first software package 108 and the second software package 110, as shown in act 206.In some embodiments, the design input may be provided by a user (e.g., user 118) in addition to, or instead of, the integrated software package 112.
[0031] Upon receiving design input provided by the integrated software package 112 (or possibly the user 118), the first software package 108 and / or the second software package 110 may each generate one or more first executable instructions and / or one or more second executable instructions, as shown in actions 208 and 210. For example, referring again to an example where the first software package 108 is configured to generate tool paths and operations for additive manufacturing, the first software package 108 may generate one or more first executable instructions (e.g., one or more tool paths and / or tool operations) for additive manufacturing an article (e.g., depositing layers of material) based on the design input provided by the integrated software package 112 until the first software package 108 reaches a step where it needs information from the integrated software package 112 on how to proceed. For example, the design input may include processing flags so that when the first software package 108 reaches a certain point in the generation of executable instructions, it may then stop generating the next executable instructions. Furthermore, in some embodiments, the first software package 108 or the second software package 110 may generate their respective executable instructions until the integrated software package 112, based on composite process knowledge, reaches a point where it knows that the first software package 108 or the second software package 110 requires additional information or data, such as processing flags included in the design input, to proceed.
[0032] Furthermore, the first software package 108 and / or the second software package 110 may generate intermediate or auxiliary data in addition to executable instructions. For example, the first software package 108 or the second software package 110 may generate or modify data in response to design inputs while the first software package 108 or the second software package 110 is generating one or more executable instructions. The intermediate or auxiliary data generated in the first software package 108 and / or the second software package 110 may include data that is useful for use by other software packages. For example, the intermediate or auxiliary data generated in the first software package 108 may include data that can help the second software package generate instructions for a separate manufacturing process. As a specific, non-limiting example, the intermediate or auxiliary data may include geometric (e.g., CAD) data, manufacturing or manufacturability analysis data, region of interest data, layer data, processing parameters, information on processing conditions, or data defining unprocessed areas.
[0033] As shown in Figure 2A, the integrated software package 112 may receive one or more first executable instructions and / or one or more second executable instructions from the first software package 108 and the second software package 110, respectively, as shown in actions 212 and 214. Upon receiving one or more first executable instructions and one or more second executable instructions, the integrated software package 112 may generate one or more third instructions based at least partially on the first and / or second instructions, as shown in action 216. For example, the integrated software package 112 may evaluate and / or manipulate one or more first executable instructions and one or more second executable instructions, and synthesize new data for use by the first software package 108 and / or the second software package 110 to generate additional instructions for executing a predetermined machine drive process, the new data may be based on the integrated software package 112's comprehensive knowledge of one or more first executable instructions, one or more second executable instructions, and / or a combination of a predetermined machine drive process. New data that has been evaluated, manipulated, or synthesized (e.g., generated) may be referred to herein as one or more third instructions.
[0034] In some embodiments, the third instruction may also include intermediate or auxiliary data generated in the first software package 108 and / or the second software package 110. The intermediate or auxiliary data may be partially represented in the final list of executable instructions generated by the first software package 108 and / or the second software package 110, but the intermediate or auxiliary data may be more complete when generated by the first software package 108 or the second software package 110 while generating one or more executable instructions, rather than being a potentially partial representation of the intermediate or auxiliary data included in the completed list of executable instructions generated by the first software package 108 or the second software package 110. In a particular non-limiting example, the integrated software package 112 may analyze the data received from the first software package 108 (e.g., data containing one or more instructions and intermediate or auxiliary data) and identify intermediate or auxiliary data that assists the second software package 110 in generating executable instructions. In some embodiments, this data may then be manipulated or adapted by the integrated software package 112 for use by the second software package 110, or used by the integrated software package 112 to synthesize or generate new data configured for use by the second software package 110.
[0035] Upon generating one or more third instructions, the integrated software package 112 may provide the first software package 108 and / or the second software package 110 with one or more first executable instructions, one or more second executable instructions, and / or one or more third instructions, as shown in act 218. For example, the integrated software package 112 may need to manipulate the first executable instructions for use by the second software package 110. As another example, upon receiving one or more first executable instructions and one or more second executable instructions from the first software package 108 and the second software package 110, respectively, the integrated software package 112 may, based on its knowledge of the composite process, identify that the manufacturing process defined by one or more first instructions will require one or more intermediate instructions from one or more second executable instructions. In response, the integrated software package 112 may generate one or more placeholder instructions or flags that mark locations in the process defined by one or more first executable instructions where one or more second executable instructions need to be placed. Placeholder instructions or flags may also include identification (ID) indicators that associate each placeholder instruction or flag with one or more second executable instructions that may need to be injected in each flag or placeholder instruction. Various flags or placeholder instructions injected into one or more first instructions and / or one or more second instructions may enable one or more first instructions and one or more second instructions to be merged together. In some embodiments, the integrated software package may provide the first or second executable instructions without a third instruction. In a particular non-limiting example, the integrated software package 112 may receive data from the first software package 108 and provide data to the second software package 110 without manipulating the data or generating or providing additional data, instructions, or flags.
[0036] The integrated software package 112 may also provide data (including intermediate or auxiliary data) generated in a different software package (e.g., a second software package 110) to a software package (e.g., a first software package 108) based on a comprehensive composite process, enabling the software package to generate instructions according to the composite process. In a specific, non-limiting example, the first software package 108 may be configured to generate one or more executable instructions for additive manufacturing, the second software package 110 may be configured to generate one or more executable instructions for machining an article (e.g., removing material from an article), and the first software package 108 may generate instructions configured to produce a partially formed manufactured article in response to design inputs. These design inputs may also be provided to the second software package 110 to generate one or more machining instructions to be executed on the partially formed article (e.g., an article formed by the execution of instructions generated by the first software package 108). Next, the second software package 110 may generate one or more instructions (e.g., tool paths) for removing material from an article formed by the instructions generated by the first software package 108. The newly simulated geometric shape resulting from the machining instructions may then be provided to the integrated software package 112, which may then communicate the simulated geometric shape to the first software package 108, so that the first software package 108 may generate additional additive manufacturing instructions (e.g., instructions for layer deposition) taking into account the newly simulated geometric shape resulting from the execution of the machining instructions generated by the second software package 110.
[0037] As another non-limiting example, the second software package 110 may be configured to perform automated fiber placement instead of machining. The second software package 110 may generate one or more executable instructions (e.g., various manufacturing tool operations such as tool paths and fiber deposition) given design inputs to produce at least a portion of an article using automated fiber placement. The resulting simulated geometric shape may then be communicated to the integrated software package 112, which may then communicate to the first software package 108. The first software package 108 may then generate one or more instructions based on the provided simulated geometric shape. For example, one or more instructions generated by the first software package 108 may be configured to perform additive manufacturing processes (e.g., tool paths and material deposition) to fill small areas that may be difficult to fill using automated fiber placement.
[0038] The first software package 108, the second software package 110, and the integrated software package may then repeat acts 208, 210, 212, 214, 216, or 218 as many times as necessary until the first software package 108 and the second software package 110 can generate a complete list of executable instructions for their respective manufacturing processes. For example, after the integrated software package 112 has provided the first software package 108 or the second software package 110 with a first executable instruction, a second executable instruction, or a third instruction, the first software package 108 or the second software package 110 may then generate additional instructions based on the instructions provided by the integrated software. These additional instructions may then be communicated to the integrated software package 112, which may evaluate or modify the additional instructions, or generate new instructions based on the additional instructions, and then provide the new instructions to the first software package 108 and the second software package 110, and so on.
[0039] Next, the first software package 108 and the second software package 110 may generate a first list of executable instructions and a second list of executable instructions, respectively, as shown in acts 220 and 222. The first list of executable instructions and the second list of executable instructions may each define a single manufacturing process (for example, the first list represents an additive manufacturing process and the second list represents a machining manufacturing process). The integrated software may then receive the first list of executable instructions and the second list of executable instructions, as shown in acts 224 and 226. Furthermore, since the integrated software package 112 coordinates the creation of the first list of executable instructions and the second list of executable instructions, each list of executable instructions may be configured to be merged together to form a single list of executable instructions.
[0040] Upon receiving a first list of executable instructions and a second list of executable instructions, the integrated software package 112 may merge the first list of executable instructions and the second list of executable instructions to generate a combined list of executable instructions, as shown in action 228. For example, the integrated software package 112 may replace placeholder instructions or flags in one or each of the first and second lists of executable instructions with corresponding instructions in each of the first or second lists of executable instructions. For example, each placeholder flag in the first list of executable instructions may have an ID indicator corresponding to an instruction in the second list of executable instructions. The integrated software package 112 may then replace each flag or placeholder instruction with its corresponding instruction in the second list of executable instructions. Furthermore, the integrated software may merge the first list of executable instructions and the second list of executable instructions so that the merged list of executable instructions has an ordering configured to execute the combined machine-driven processes according to the knowledge of the integrated software package 112 of the comprehensive combined machine-driven processes. For example, in a process involving layer deposition using additive manufacturing and automated fiber placement, the process may require multiple switches between the additive manufacturing process and the automated fiber placement process within a single deposition layer of the article. The integrated software package 112, being the sole entity possessing combined knowledge of the fiber placement and additive manufacturing processes, may order (e.g., interweave) tool path instructions from each of the first list of executable instructions and the second list of executable instructions so that layers requiring both additive manufacturing and automated fiber placement can be deposited efficiently.
[0041] For example, an additive manufacturing tool path may include continuously depositing material along the longitudinal axis of an article where a gap exists within the tool path in which an automated fiber placement section is designed. Similarly, an automated fiber placement tool path may include depositing fiber material along the same longitudinal axis within a gap. The integrated software package 112 may order tool paths from both the additive manufacturing process (e.g., the first list of executable instructions) and the automated fiber placement process (e.g., the second list of executable instructions), so that a manufacturing tool begins depositing material along the additive manufacturing tool path until it reaches a gap, then switches to an automated fiber placement tool to perform fiber placement in the same longitudinal direction, and then returns to additive manufacturing where the gap ends, continuing to the distal end of the article (e.g., the end of the longitudinal length of the article in the deposited layer).
[0042] In some embodiments, the integrated software package 112 may generate one or more additional instructions in response to the integrated list of executable instructions, as shown in action 230. For example, the integrated software package 112 may generate additional NC instructions based on its knowledge of the comprehensive composite process. The integrated software package 112 may know that, for example, one or more transition instructions need to be added between instructions from a first list of executable instructions and instructions from a second list of executable instructions in order to successfully execute the process. As a specific, non-limiting example, the integrated software package 112 may know that transition instructions for moving a tool to the correct position, or transition instructions for preparing a tool (e.g., preheating a heating element for material deposition), are necessary to execute the composite manufacturing process. The integrated software package 112 may then generate the appropriate instructions and insert them into the integrated list of executable instructions at the appropriate positions, as shown in action 232.
[0043] In some embodiments, the integrated software package 112 does not need to generate additional instructions, but rather may access a database of predefined executable instructions known to be necessary to perform various machine-driven processes, including transition instructions. The integrated software package 112 may then select appropriate predefined executable instructions and insert them into an integrated list of executable instructions.
[0044] Therefore, the ability to easily create manufacturing processes and integrate them into a single process makes it possible for an already developed, fully mature software package to generate a list of executable instructions that can be merged with other NC process lists, thereby forming a single list of executable instructions for executing a combined process using multiple different manufacturing tools, without the need to develop complex multi-process generation software. While the first software package and software packages are discussed herein, the systems, processes, and methods discussed herein may incorporate three or more software packages. For example, the various systems, methods, and processes discussed herein are extensible to accommodate any number of software packages, insofar as two or more executable instruction lists can be merged as described above by distributing design inputs to two or more software packages and receiving two or more executable instruction lists from two or more software packages.
[0045] In some embodiments, the integrated software package 112 may then run one or more simulations using the integrated list of executable instructions. For example, the integrated software package 112 may run a computer simulation that simulates the operation of a manufacturing tool that executes the integrated list of executable instructions. In some embodiments, the integrated software package 112 may then modify the integrated list of executable instructions in response to the simulation. For example, if the simulation reveals a problem in the composite manufacturing process, the integrated software package 112 may identify the problem, generate, retrieve, or modify one or more executable instructions to address the identified problem, and then run a subsequent simulation that implements the generated, retrieved, or modified instructions. This process may be repeated until the composite process is successfully simulated.
[0046] Furthermore, in some embodiments, user 118 may modify one or more instructions in the integrated list of executable instructions, or generate custom instructions and insert the custom instructions into the integrated list of executable instructions via the client device 106. For example, the integrated software package 112, the first software package 108, or the second software package 110 may generate a GUI showing the integrated list of executable instructions and present the GUI to user 118 via the display of the client device 106. User 118 may then use an input device (e.g., mouse and / or keyboard) to edit, rearrange, or add instructions in the integrated list of executable instructions.
[0047] In some embodiments, the integrated software package 112 may automatically reorder the list of executable instructions in response to a user 118 making one or more changes to the list of executable instructions. Furthermore, the integrated software package 112 may generate one or more recommendations to the user 118 to make one or more changes to the list of executable instructions based on comprehensive knowledge of the complex process. For example, the integrated software package 112 may recognize that a particular instruction is required in the generated list of instructions, but such an instruction cannot be generated or retrieved. The integrated software package 112 may then present a recommended action to modify the list of executable instructions to include the required instruction via a GUI displayed on the client device 106's display.
[0048] After the integrated list of executable instructions is generated, the integrated software package 112 may generate one or more data packages containing the integrated list of executable instructions. The integrated software package 112 may then send one or more data packages to a manufacturing tool (e.g., a robotic arm 114) via the client device 106. The manufacturing tool may then, in response to receiving one or more data packages, form an article based at least partially on the integrated list of executable instructions.
[0049] Figure 3 is a flowchart 300 illustrating exemplary operation of a manufacturing tool system (e.g., manufacturing tool system 100 in Figure 1) executed by a processor that executes instructions stored in a computer-readable storage medium. For example, Figure 3 shows one or more embodiments of sequence flowcharts that the manufacturing tool system 100 may use to process one or more design inputs for a machine drive process. In operation 302, the manufacturing tool system 100 tags, organizes, or transforms the design input data. For example, the manufacturing tool system 100 may tag, organize, or transform the data via an integrated software package 112 to make the data readable or usable for each separate software package (e.g., a first software package 108 and a second software package 110). In operation 304, the manufacturing tool system 100 may identify regions of interest in the design data (e.g., regions where transitions between different manufacturing processes may exist) and manipulate the identified regions for processing by each software package (e.g., preparing new metadata to be used in the identified transition regions). In operation 306, the manufacturing tool system 100 may create boundary regions that are not present in the design data and may modify existing boundaries (e.g., inter-process boundaries between different manufacturing processes). In operation 308, the manufacturing tool system 100 may insert flags that may be later required by any one of several independent software packages when an independent software package generates a list of executable instructions for each of the different manufacturing processes. For example, flags may be inserted at different points in the design data to indicate that a certain process or instruction needs to be executed in a manufacturing process.
[0050] Figure 4 is a flowchart 400 illustrating exemplary operation of a manufacturing tool system (e.g., manufacturing tool system 100 in Figure 1) executed by a processor that executes instructions stored in a computer-readable storage medium. For example, Figure 4 shows one or more embodiments of sequence flowcharts that the manufacturing tool system 100 may use to evaluate or manipulate data received from independent software packages (e.g., a first software package 108 and a second software package 110) while the independent software packages generate one or more executable instructions for performing a manufacturing process. In operation 402, the manufacturing tool system 100 may evaluate the manufacturing data generated by the independent software packages (e.g., a first software package 108 and a second software package 110). In operation 404, the manufacturing tool system 100 may modify tool paths and machine events (e.g., defined by one or more executable instructions) based on composite process knowledge. For example, the integrated software package 112 may be the sole entity in the manufacturing tool system 100 that has comprehensive knowledge of each of the multiple manufacturing processes used via the robotic arm 114 to manufacture articles. Based on knowledge of this combined process, the integrated software package 112 may modify tool paths generated by one independent software package, based on its knowledge that it is necessary to insert or integrate one or more tool paths from another independent software package.
[0051] In operation 406, the manufacturing tool system 100 may check whether data from independent software packages creates complex dependencies in other processes. For example, an independent software package (e.g., a software package configured to generate executable instructions for machining an article) may generate instructions that change the shape of the article being manufactured. The integrated software package 112 may identify that this change in geometric shape may require one or more other independent software packages to know about this change in geometric shape in order to accurately generate tool paths or machine events for a combined manufacturing process. If the integrated software package 112 does not identify such dependencies, the flowchart 400 may proceed to operation 410. If such dependencies are identified, the flowchart 400 may proceed to operation 408.
[0052] In operation 408, the manufacturing tool system 100 may extract the dependencies identified in operation 406 and prepare the data (e.g., operate or adapt) for use by other independent software packages. In operation 410, the manufacturing tool system 100 may insert placeholder instructions representing operations from other manufacturing processes (e.g., generated from other independent software packages).
[0053] Figure 5 is a flowchart 500 illustrating exemplary operation of a manufacturing tool system (e.g., manufacturing tool system 100 in Figure 1) executed by a processor that executes instructions stored in a computer-readable storage medium. For example, Figure 5 shows one or more embodiments of sequence flowcharts that the manufacturing tool system 100 may use to merge separate lists of executable instructions received from separate software packages (e.g., a first software package 108 and a second software package 110) into a unified list of executable instructions configured for use by a robot arm 114. In operation 502, the manufacturing tool system 100 may locate and replace placeholder events in each list of received executable instructions. For example, the manufacturing tool system 100 may identify a placeholder instruction or flag inserted into each list of executable instructions via the unified software package 112 and identify the corresponding instruction in another list of executable instructions where the placeholder needs to be replaced. For example, each placeholder instruction or flag may include an identification indicator that associates that instruction or flag with an executable instruction in a list of executable instructions received from an independent software package.
[0054] In operation 504, the manufacturing tool system 100 may merge instructions from different lists of executable instructions (for example, a first list of executable instructions received from a first software package 108 and a second list of executable instructions received from a second software package 110) to generate a unified list of executable instructions. For example, the manufacturing tool system 100 may, via the unified software package 112, replace each placeholder instruction or flag in one or more lists of executable instructions with a corresponding instruction in another of the lists of executable instructions. After each placeholder instruction or flag has been replaced, the various lists may then be combined and ordered by the unified software package 112 to generate a unified list of executable instructions configured to execute a composite manufacturing process. In operation 506, the manufacturing tool system 100 may generate one or more additional instructions in response to the unified list of executable instructions. For example, the unified software package 112 may identify executable instructions that may be required for a composite manufacturing process, even if they are not tied to any single manufacturing process, and then generate the required instructions. As a specific, non-limiting example, the integrated software package 112 may generate transition instructions for transitioning between different processes in a complex manufacturing process (e.g., positioning a tool to change from one process to another). In operation 508, the manufacturing tool system 100 may insert additional instructions into the integrated list of executable instructions via the integrated software package 112.
[0055] Those skilled in the art will understand that the example functional elements (e.g., functions, operations, actions, processes, and / or methods) disclosed herein can be implemented in any suitable hardware, software, firmware, or combination thereof. Figure 6 shows non-limiting examples of implementations of the functional elements disclosed herein. In some examples, some or all parts of the functional elements disclosed herein may be implemented by hardware specifically configured to perform the functional elements.
[0056] Figure 6 is a block diagram of a circuit 600 that may be used in some examples to implement various functions, operations, actions, processes, and / or methods disclosed herein. The circuit 600 includes one or more processors 606 (sometimes referred to herein as “processor 606”) operably coupled to one or more data storage devices 608 (sometimes referred to herein as “storage 608”). The storage 608 includes machine-executable code 610 stored thereon, and the processor 606 includes logic circuits 612. The machine-executable code 610 includes information describing functional elements that can be implemented (e.g., executed) by the logic circuits 612. The logic circuits 612 are adapted to implement (e.g., execute) the functional elements described by the machine-executable code 610. When the circuit 600 executes the functional elements described by the machine-executable code 610, it should be considered dedicated hardware configured to execute the functional elements disclosed herein. In some examples, the processor 606 may execute the functional elements described by the machine-executable code 610 sequentially, simultaneously (for example, on one or more different hardware platforms), or in one or more parallel process streams.
[0057] When implemented by the logic circuit 612 of processor 606, machine-executable code 610 is intended to adapt processor 606 to perform the operations of the examples disclosed herein. For example, machine-executable code 610 may adapt processor 606 to perform at least part or all of sequence flow diagram 200 in Figures 2A-2C. Furthermore, machine-executable code 610 may adapt processor 606 to perform at least part or all of flowchart 300 in Figure 3, flowchart 400 in Figure 4, or flowchart 500 in Figure 5.
[0058] The processor 606 may include a general-purpose processor, a dedicated processor, a central processing unit (CPU), a microcontroller, a programmable logic controller (PLC), a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, other programmable devices, or any combination thereof designed to perform the functions disclosed herein. A general-purpose computer including a processor is considered a dedicated computer, and the general-purpose computer executes functional elements corresponding to machine-executable code 610 (e.g., software code, firmware code, hardware description) related to the examples of this disclosure. The general-purpose processor (which may also be referred to herein as a host processor or simply a host) may be a microprocessor, but it should be noted that, alternatively, the processor 606 may include any conventional processor, controller, microcontroller, or state machine. The processor 606 may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors working with a DSP core, or any other such configuration.
[0059] In some examples, storage 608 includes volatile data storage (e.g., random access memory (RAM)) and non-volatile data storage (e.g., flash memory, hard disk drives, solid-state drives, erasable programmable read-only memory (EPROM), etc.). In some examples, the processor 606 and storage 608 may be implemented in a single device (e.g., a semiconductor device product, a system-on-a-chip (SOC), etc.). In some examples, the processor 606 and storage 608 may be implemented in separate devices.
[0060] In some examples, machine-executable code 610 may include computer-readable instructions (e.g., software code, firmware code). In a non-limiting example, computer-readable instructions may be stored in storage 608, directly accessed by processor 606, and executed by processor 606 using at least logic circuits 612. Also, in a non-limiting example, computer-readable instructions may be stored in storage 608, transferred to a memory device (not shown) for execution, and executed by processor 606 using at least logic circuits 612. Thus, in some examples, logic circuits 612 include electrically configurable logic circuits.
[0061] In some examples, machine-executable code 610 may describe hardware (e.g., circuits) implemented in logic circuits 612 to execute functional elements. This hardware may be described at any of the various levels of abstraction, from low-level transistor layouts to high-level description languages. At high levels of abstraction, a hardware description language (HDL), such as the IEEE standard hardware description language (HDL), may be used. In non-limiting examples, VERILOG®, SYSTEMVERILOG®, or Very Large-Scale Integrated Circuit (VLSI) hardware description language (VHDL®) may be used.
[0062] The HDL description may be converted to a description at any of many other levels of abstraction, as desired. As an unspecified example, a high-level description may be converted to a logic-level description such as Register Transfer Language (RTL), a gate-level (GL) description, a layout-level description, or a mask-level description. As an unspecified example, microoperations performed by the hardware logic circuits of logic circuit 612 (e.g., gates, flip-flops, registers, but not limited to these) may be described in RTL and then converted to a GL description by a synthesis tool, and the GL description may be converted by a placement and routing tool to a layout-level description corresponding to the physical layout of an integrated circuit of programmable logic devices, individual gates or transistor logic, individual hardware components, or combinations thereof. Thus, in some examples, machine-executable code 610 may include HDL, RTL, GL descriptions, mask-level descriptions, other hardware descriptions, or any combination thereof.
[0063] In an example where the machine-executable code 610 includes a hardware description (at any level of abstraction), the system (including storage 608, not shown) may implement the hardware description described by the machine-executable code 610. In a non-limiting example, the processor 606 may include a programmable logic device (e.g., an FPGA or PLC), and the logic circuit 612 may be electrically controlled to implement a circuit corresponding to the hardware description to the logic circuit 612. Also in a non-limiting example, the logic circuit 612 may include hardwired logic manufactured by a manufacturing system (including storage 608, not shown) according to the hardware description of the machine-executable code 610.
[0064] Regardless of whether the machine-executable code 610 includes computer-readable instructions or hardware descriptions, the logic circuit 612 is adapted to execute the functional elements described by the machine-executable code 610 when implementing the functional elements of the machine-executable code 610. Note that while hardware descriptions may not directly describe functional elements, they indirectly describe the functional elements that the hardware elements described by the hardware descriptions can execute.
[0065] Where used in this disclosure, the terms “module” or “component” may refer to a specific hardware implementation for performing the operation of a module or component, and / or a software object or software routine that is stored on and / or executed on general-purpose hardware of a computing system (e.g., computer-readable media, processing devices, etc.). In some examples, the different components, modules, engines, and services described in this disclosure may be implemented as objects or processes that run on a computing system (e.g., as separate threads). While some of the systems and methods described in this disclosure are generally described as being implemented in software (stored on and / or executed on general-purpose hardware), specific hardware implementations, or combinations of software and specific hardware implementations, are also possible and considered.
[0066] The figures presented herein are not intended to be actual diagrams of any particular method, system, device, or structure, but are merely idealized representations used to illustrate examples. In some cases, similar structures or components in different drawings may be numbered the same or similarly for the convenience of the reader. However, similarity in numbering does not necessarily mean that the structures or components are identical in size, composition, configuration, or any other characteristics.
[0067] The above description may include examples to help enable those skilled in the art to carry out the disclosed examples. The use of the terms “exemplary,” “by example,” and “for example” means that the relevant description is descriptive, and the scope of this disclosure is intended to include examples and legal equivalents, but the use of such terms is not intended to limit the scope of the examples in this disclosure to specified components, steps, features, functions, etc.
[0068] It should be readily understood that the components of the examples described in this specification and shown in the drawings can be arranged and designed in a wide variety of different configurations. Therefore, the following descriptions of various examples are not intended to limit the scope, but merely to illustrate a variety of examples. Various aspects of the examples may be presented in the drawings, but the drawings are not necessarily drawn to scale unless specifically indicated.
[0069] Furthermore, the specific implementations illustrated and described are illustrative and should not be construed as the only way to implement this disclosure unless otherwise specified herein. Elements, circuits, and functions may be shown in block diagram form to avoid obscuring the disclosure with unnecessary detail. Conversely, the specific implementations illustrated and described are illustrative and should not be construed as the only way to implement this disclosure unless otherwise specified herein. Furthermore, block definitions and the division of logic between various blocks are examples of specific implementation forms. It will be readily apparent to those skilled in the art that this disclosure can be implemented by numerous other division solutions. Details regarding timing considerations, etc., are largely omitted, but such details are not necessary for a complete understanding and are within the scope of those skilled in the art.
[0070] Those skilled in the art should understand that information and signals can be represented using any of the various different techniques and methods. Some drawings may show signals as single signals for clarity of presentation and explanation. Signals may represent a bus of signals, and the bus may have various bit widths, and those skilled in the art should understand that this disclosure may be implemented on any number of data signals, including a single data signal.
[0071] The various exemplary logics, blocks, modules, and circuits described in relation to the examples disclosed herein may be implemented or run using general-purpose processors, dedicated processors, digital signal processors (DSPs), integrated circuits (ICs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions disclosed herein. The general-purpose processor (which may also be referred to herein as the host processor or simply the host) may be a microprocessor, but alternatively, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors working with a DSP core, or any other such configuration. A general-purpose computer containing a processor is considered a dedicated computer, and the general-purpose computer is for executing computing instructions (e.g., software code) related to the examples.
[0072] The examples described herein may relate to processes shown as flowcharts, flow diagrams, structural diagrams, or block diagrams. While flowcharts may describe actions as sequential processes, many of these actions can be performed in a different order, in parallel, or substantially simultaneously. Furthermore, the order of actions may be rearranged. Processes may correspond to methods, threads, functions, procedures, subroutines, subprograms, other structures, or combinations thereof. Furthermore, methods disclosed herein may be implemented in hardware, software, or both. If implemented in software, functions may be stored or transmitted on computer-readable media as one or more instructions or codes. Computer-readable media include both computer storage media and computer communication media, including any media on which computer programs can be transferred from one location to another.
[0073] As used in this disclosure, the term “combination” relating to multiple elements may include combinations of all elements or any of several different subcombinations of some of the elements. For example, the phrase “A, B, C, D, or any combination thereof” may refer to any one of A, B, C, or D; each combination of A, B, C, and D, and any subcombination of A, B, C, or D (e.g., A, B, and C; A, B, and D; A, C, and D; B, C, and D; A and B; A and C; A and D; B and C; B and D; or C and D).
[0074] The terms used in this disclosure and in particular in the attached claims (e.g., the body of the attached claims) are generally intended to be “open” terms (for example, the term “contains” should be interpreted as “contains, but is not limited to,” the term “has” should be interpreted as “has at least,” and the term “includes” should be interpreted as “contains, but is not limited to,” etc.).
[0075] Furthermore, if an introduced claim description intends a particular number, such intention is explicitly stated in the claim, and unless such statement is present, such intention does not exist. For example, for the sake of understanding, the following attached claims may include the use of the introductory phrases “at least one” and “one or more” to introduce the claim description. However, the use of such phrases should not be interpreted as meaning that the introduction of a claim description by the indefinite article “a” or “an” limits any particular claim containing such introduced claim description to examples containing only one such description, and the same is true when the same claim includes the introductory phrase “one or more” or “at least one” and an indefinite article such as “a” or “an” (for example, “a” and / or “an” should be interpreted as meaning “at least one” or “one or more”), and the same applies to the use of the definite article used to introduce the claim description.
[0076] Furthermore, even if a specific number is explicitly stated in the description of the claim being introduced, it will be understood by those skilled in the art that such a description should be interpreted as meaning at least the number described (for example, the mere description of “two descriptions” without other modifiers means at least two descriptions, or two or more descriptions). Moreover, in cases where a similar conventional expression is used, such as “at least one of A, B, and C, etc.” or “one or more of A, B, and C, etc.”, such interpretation is generally intended to include A only, B only, C only, A and B together, A and C together, B and C together, or A, B, and C together.
[0077] Furthermore, any disjunct word or phrase that presents two or more alternative terms should be understood in the specification, claims, or drawings as contingent on the possibility of including one of the terms, either of the terms, or both terms. For example, the phrase "A or B" should be understood as including the possibility of "A" or "B" or "A and B".
[0078] When referring to elements using designations such as "first," "second," etc., as used herein, the number or order of those elements is not limited unless such limitation is explicitly stated. Rather, these designations may be used herein as a convenient way to distinguish two or more elements or instances of elements. Therefore, references to the first and second elements do not imply that only two elements may be adopted, or that the first element must precede the second element in any way. Furthermore, unless otherwise stated, a set of elements may include one or more elements.
[0079] As used herein, the term “substantially” in relation to a given parameter, characteristic, or condition means that the given parameter, characteristic, or condition is met with minimal variation, such as within acceptable manufacturing tolerances, and this is understood to the extent that a person skilled in the art would understand it. For example, depending on the specific parameter, characteristic, or condition that is substantially met, the parameter, characteristic, or condition may be met at least 90%, at least 95%, or even at least 99%.
[0080] While this disclosure has described specific illustrated examples, those skilled in the art will recognize and understand that the invention is not limited to such examples. Rather, many additions, deletions, and modifications may be made to the illustrated and described examples without departing from the scope of the invention and its legal equivalents as claimed below. Furthermore, features of one example may be combined with features of another example, insofar as they still fall within the scope of the invention as intended by the inventors.
Claims
1. A step of receiving design input for a predetermined machine drive process, A step of providing the design input to a first software package and a second software package, wherein each of the first software package and the second software package is configured to generate a list of executable instructions for performing at least a portion of the predetermined machine drive process, The steps include receiving one or more first instructions from the first software package and one or more second instructions from the second software package, The steps of generating one or more third instructions based at least partially on one or more first instructions or one or more second instructions, The steps of providing at least one of the one or more first instructions, the one or more second instructions, and the one or more third instructions to the first software package and / or the second software package, The steps include receiving a first list of executable instructions and a second list of executable instructions from the first software package and the second software package, respectively. The steps include: merging the first list of executable instructions and the second list of executable instructions to generate a unified list of executable instructions; Methods that include...
2. A step of modifying the design input for use by the first software package and / or the second software package, The steps include creating or modifying the three-dimensional domain of the three-dimensional representation of the manufactured item included in the design input, The steps include inserting a process indicator based on the predetermined machine drive process into the design input, The method according to claim 1, further comprising:
3. The steps include generating one or more additional instructions in response to the integrated list of executable instructions, The steps include inserting one or more of the aforementioned additional instructions into the integrated list of executable instructions, The method according to claim 1, further comprising:
4. The steps include generating one or more data packages that include the integrated list of executable instructions, A manufacturing tool includes the steps of receiving one or more data packages, The steps of forming an article via the manufacturing tool, at least in part, based on the integrated list of executable instructions that respond to the reception of one or more data packages, The method according to claim 1, further comprising:
5. The method according to claim 4, wherein the manufacturing tool comprises a robotic arm configured to perform one or more of additive manufacturing, automated fiber placement, or subtractive manufacturing.
6. The method according to claim 1, wherein the step of generating the one or more third instructions includes modifying the one or more first instructions and / or the one or more second instructions.
7. The method according to claim 1, wherein the design input includes a three-dimensional representation of an article.
8. The method according to claim 1, wherein the one or more third instructions include one or more placeholder instructions or one or more process indicators.
9. The method according to claim 8, wherein merging the first list of executable instructions and the second list of executable instructions includes replacing placeholder instructions included in the first list of executable instructions with one or more instructions from the second list of executable instructions.
10. The method according to claim 8, wherein merging the first list of executable instructions and the second list of executable instructions comprises replacing the one or more placeholder instructions contained in the first list of executable instructions or the second list of executable instructions with one or more instructions or one or more additional instructions from the other of the first list of executable instructions or the second list of executable instructions.
11. The method according to claim 1, further comprising the step of simulating the integrated list of executable instructions.
12. The method according to claim 1, further comprising the step of presenting the integrated list of executable instructions for display on a client device.
13. The method according to claim 1, further comprising the step of generating one or more recommended changes to the integrated list of executable instructions, at least in part, based on the predetermined mechanical drive process.
14. It is a system, Numerical control devices including multiple manufacturing tools, At least one processor, A non-temporary computer-readable storage medium for storing instructions, The system includes, and when the instruction is executed by the at least one processor, the system A step of receiving design input for manufacturing an item, A step of providing the design input to a first software package and a second software package, wherein each of the first and second software packages is configured to generate a list of executable instructions configured to perform at least a portion of the process of manufacturing the article; The steps include receiving one or more first instructions from the first software package and one or more second instructions from the second software package, The steps of generating one or more third instructions based at least partially on one or more first instructions or one or more second instructions, The steps of providing the one or more first instructions, the one or more second instructions, and / or the one or more third instructions to the first software package and / or the second software package, The steps include receiving a first list of executable instructions and a second list of executable instructions from the first software package and the second software package, respectively. The steps include: merging the first list of executable instructions and the second list of executable instructions to generate a unified list of executable instructions; A system that enables this to happen.
15. The system according to claim 14, wherein the plurality of manufacturing tools comprises an additive manufacturing tool, an automatic fiber placement tool, and a subtractive manufacturing tool.
16. The system according to claim 14, wherein the step of generating one or more third instructions includes modifying one or more tool paths generated in the first software package or the second software package.
17. The system according to claim 14, wherein the one or more third instructions include one or more placeholder instructions.
18. When the instruction stored in the at least one non-temporary computer-readable storage medium is executed by the at least one processor, it is transmitted to the system. The steps include: automatically generating one or more transition instructions in response to the integrated list of executable instructions; The steps include inserting one or more transition instructions into the integrated list of executable instructions, The system according to claim 14, which causes the following to be performed.
19. When the instruction stored in the at least one non-temporary computer-readable storage medium is executed by the at least one processor, it is transmitted to the system. Steps to rearrange the integrated list of executable instructions in response to the user editing one or more instructions in the integrated list of executable instructions. The system according to claim 14, which causes the following to be performed.
20. A non-temporary computer-readable storage medium for storing instructions, wherein, when an instruction is executed by at least one processor, the instructions are stored in the at least one processor. A step of receiving design input for a predetermined machine drive process, A step of providing the design input to a first software package and a second software package, wherein each of the first software package and the second software package is configured to generate a list of executable instructions for performing at least a portion of the predetermined machine drive process, The steps include receiving one or more first instructions from the first software package and one or more second instructions from the second software package, The steps of generating one or more third instructions based at least partially on one or more first instructions or one or more second instructions, The steps of providing the one or more first instructions, the one or more second instructions, and / or the one or more third instructions to the first software package and / or the second software package, The steps include receiving a first list of executable instructions and a second list of executable instructions from the first software package and the second software package, respectively. The steps include: merging the first list of executable instructions and the second list of executable instructions to generate a unified list of executable instructions; A non-temporary computer-readable storage medium that enables the execution of actions including [specific actions].