Abstract: The invention relates to method (200) and system for selecting an optimal set of tools for machining. The method (200) includes receiving (201) information (101) related to a target part (101a) to be manufactured, a stock (101b) to be machined, and a plurality of available tools (101c) for machining; determining (202) a total machinable volume based on the target part (101a) and the stock (101b) to be machined; creating (203) a hierarchical voxel grid representation for the total machinable volume; estimating (204) a non-linear accessible machinable volume for each of the plurality of available tools (101c); generating (205) one or more tool clusters based on the non-linear accessible machinable volume for each of the plurality of available tools (101c); and selecting (206) a set of tools from the one or more tool clusters based on tool sizes.
Generally, the invention relates to manufacturing processes. More specifically, the invention relates to a method and system for selecting an optimal set of tools for machining.
BACKGROUND
A typical machine shop has a variety of tools. Further, tools required for machining may be selected based on geometry of the part, finish required, type of a Computer Numerical Control (CNC) machine and availability of tools. Usually, only a small subset of the available tools is required for machining the part. For example, a machinist usually chooses two tools including a larger tool for roughing to remove most of material quickly and another tool for finishing to achieve a required finish. In addition to these tools, some special tools may also be used for drilling holes and cutting slots. In case of a complicated part with multiple pockets and other features, it may be difficult to determine an appropriate set of tools.
Moreover, selecting an optimal set of tools is important for machining of a given part. There may be several different criteria (for example, a total machining time that directly affects cost) that may be considered for optimizing machining processes. Further, a strategy of selecting two tools for roughing and finishing may be rarely optimal. The machinist typically may choose the tools conservatively such as a tool smaller than an optimal one. Additionally, it may often be optimal to machine a feature with more than two tools, especially for larger features. However, it may be difficult to manually or intuitively determine the optimal set of tools, especially when there are multiple features in the part to be machined.
By way of an example, for a set of ‘M’ different tools, there may be 2M possible tool combinations. Even for a small number of 24 tools, a number of combinations is 224 (i.e., 16,777,216). This is a prohibitively large set of alternatives to explore for searching an optimal combination. It would be impractical to check the machining time or cost for even a small subset of all possible combinations.
There are various heuristics and combinatorial optimization algorithms to significantly reduce the number of tool combinations to be tested. However, in all modern CAM systems, even today, the cutter selection is left to the user. The solutions proposed are either not general enough, are unable to incorporate user choices, or are computationally expensive. Additionally, some of existing systems require computation of tool paths for each combination of the tools to estimate the machining time. Time for tool path computation may be significantly large and may overshadow the time taken by the optimization algorithm. The computation becomes further expensive as computing left-over area or volume is also computationally expensive.
SUMMARY
In one embodiment, a method for selecting an optimal set of tools for machining is disclosed. The method may include receiving information related to a target part to be manufactured, a stock to be machined, and a plurality of available tools for machining. The method may further include determining a total machinable volume based on the target part and the stock to be machined. The method may further include creating a hierarchical voxel grid representation for the total machinable volume, using a hierarchical voxelization technique. The voxel grid representation may include a plurality of voxels. The method may further include. estimating a non-linear accessible machinable volume for each of the plurality of available tools, based on the number of voxels accessible to each of the plurality of available tools. The method may further include generating one or more tool clusters based on the non-linear accessible machinable volume for each of the plurality of available tools. It should be noted that each tool cluster from the one or more tool clusters may include one or more tools having similar non-linear machinable volumes. The method may further include selecting a set of tools from the one or more tool clusters based on tool sizes. The set of tools may include at least one tool from each of the one or more tool clusters.
In another embodiment, a system for selecting an optimal set of tools for machining is disclosed. The system may include a processor and a memory communicatively coupled to the processor. The memory may store processor-executable instructions, which, on execution, may cause the processor to receive information related to a target part to be manufactured, a stock to be machined, and a plurality of available tools for machining. The processor-executable instructions, on execution, may further cause the processor to determine a total machinable volume based on the target part and the stock to be machined. The processor-executable instructions, on execution, may further cause the processor to create a hierarchical voxel grid representation for the total machinable volume, using a hierarchical voxelization technique. The voxel grid representation may include a plurality of voxels. The processor-executable instructions, on execution, may further cause the processor to estimate a non-linear accessible machinable volume for each of the plurality of available tools, based on the number of voxels accessible to each of the plurality of available tools. The processor-executable instructions, on execution, may further cause the processor to generate one or more tool clusters based on the non-linear accessible machinable volume for each of the plurality of available tools. It should be noted that each tool cluster from the one or more tool clusters may include one or more tools having similar non-linear machinable volumes. The processor-executable instructions, on execution, may further cause the processor to select a set of tools from the one or more tool clusters based on tool sizes. The set of tools may include at least one tool from each of the one or more tool clusters.
In yet another embodiment, a non-transitory computer-readable medium storing computer-executable instruction for selecting an optimal set of tools for machining is disclosed. The stored instructions, when executed by a processor, may cause the processor to perform operations including receiving information related to a target part to be manufactured, a stock to be machined, and a plurality of available tools for machining. The operations may further include determining a total machinable volume based on the target part and the stock to be machined. The operations may further include creating a hierarchical voxel grid representation for the total machinable volume, using a hierarchical voxelization technique. The voxel grid representation may include a plurality of voxels. The operations may further include estimating a non-linear accessible machinable volume for each of the plurality of available tools, based on the number of voxels accessible to each of the plurality of available tools. The operations may further include generating one or more tool clusters based on the non-linear accessible machinable volume for each of the plurality of available tools. It should be noted that each tool cluster from the one or more tool clusters may include one or more tools having similar non-linear machinable volumes selecting a set of tools from the one or more tool clusters based on tool sizes. The set of tools may include at least one tool from each of the one or more tool clusters.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed.
BRIEF DESCRIPTION OF THE DRAWINGS
The present application can be best understood by reference to the following description taken in conjunction with the accompanying drawing figures, in which like parts may be referred to by like numerals
FIG. 1 illustrates a functional block diagram of a selection device configured to select an optimal set of tools for machining, in accordance with some embodiments of the present disclosure.
FIG. 2 illustrates a flow diagram of an exemplary process for selecting an optimal set of tools for machining, in accordance with some embodiments of the present disclosure.
FIGS. 3A and 3B illustrate exemplary representations of a target part with computed machinable volumes using two different flat-end mill tools, in accordance with some embodiments of the present disclosure.
FIGS. 4A, 4B, 4C, and 4D illustrate an exemplary scenario of generating tool clusters for a target part, in accordance with some embodiments of the present disclosure.
FIGS. 5 illustrates an exemplary scenario for non-linear calculation of machinable volumes for two different tools, in accordance with some embodiments of the present disclosure.
FIGS. 6 illustrates determination of an optimal tool sequence from six tools, in accordance with some embodiments of the present disclosure.
FIGS. 7A, 7B, 7C, and 7D illustrate a set of four tools, accessible machinable volumes for the set of four tools, and top and side views of a target part with an atypical pocket respectively, in accordance with some embodiments of the present disclosure.
FIGS. 8 illustrate an exemplary scenario of machinable volume clustering for a set of eight tools, in accordance with some embodiments of the present disclosure.
FIGS. 9 illustrates an exemplary scenario of machinable volume clustering for a set of five tools, in accordance with some embodiments of the present disclosure.
FIGS. 10 illustrates a block diagram of an exemplary computer system for implementing embodiments consistent with the present disclosure.
DETAILED DESCRIPTION OF THE DRAWINGS
The following description is presented to enable a person of ordinary skill in the art to make and use the invention and is provided in the context of particular applications and their requirements. Various modifications to the embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the invention. Moreover, in the following description, numerous details are set forth for the purpose of explanation. However, one of ordinary skill in the art will realize that the invention might be practiced without the use of these specific details. In other instances, well-known structures and devices are shown in block diagram form in order not to obscure the description of the invention with unnecessary detail. Thus, the present invention is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
While the invention is described in terms of particular examples and illustrative figures, those of ordinary skill in the art will recognize that the invention is not limited to the examples or figures described. Those skilled in the art will recognize that the operations of the various embodiments may be implemented using hardware, software, firmware, or combinations thereof, as appropriate. For example, some processes can be carried out using processors or other digital circuitry under the control of software, firmware, or hard-wired logic. (The term “logic” herein refers to fixed hardware, programmable logic and/or an appropriate combination thereof, as would be recognized by one skilled in the art to carry out the recited functions). Software and firmware can be stored on computer-readable storage media. Some other processes can be implemented using analog circuitry, as is well known to one of ordinary skill in the art. Additionally, memory or other storage, as well as communication components, may be employed in embodiments of the invention.
Referring now to FIG. 1, a functional block of a selection device 100 configured to select an optimal set of tools for machining is illustrated, in accordance with some embodiments of the present disclosure. It should be noted that the selection device 100 may be a part of any processor-based system or may take the form a processor-based system. In order to select the optimal set of tools, the selection device 100 may receive information 101 related to a target part 101a to be manufactured, a stock 101b to be machined, and a plurality of available tools 101c for machining. Further, for selecting the optimal set of tools, the selection device100 may include a total machinable volume determination module 102, a voxel grid creation module 103, an accessible machinable volume estimation module104, a cluster generation module 105, and a tool selection module 106. The selection device100 may also include a data store (not shown in FIG. 1) in order to store intermediate results generated by the modules 102-106.
The total machinable volume determination module 102 may be configured to determine a total machinable volume. It should be noted that the total machinable volume may be determined based on the target part and the stock to be machined. The target part may include a plurality of machinable features. Further, the total machinable volume determination module 102 may be communicatively coupled to the voxel grid creation module 103.
The voxel grid creation module 103 may be configured to create a hierarchical voxel grid representation for the total machinable volume. The accessible machinable volume estimation module 104 may use a hierarchical voxelization technique for creating the hierarchical voxel grid representation. The voxel grid representation may include a plurality of voxels. Further, the hierarchical voxel grid representation may be at least one of an octree representation, a K-dimensional tree representation, or a uniform spatial grid representation. As illustrated in FIG. 1, the voxel grid creation module 103 may be operatively coupled to the accessible machinable volume estimation module104.
The accessible machinable volume estimation module 104 may estimate a non-linear accessible machinable volume for each of the plurality of available tools. The estimation may be performed based on the number of voxels accessible to each of the plurality of available tools. In particular, in some embodiments, a tool may be placed at each of a first set of voxels of the plurality of voxels based on the hierarchical voxel grid representation. Here, the voxel size of each of the first set of voxels is larger than a tool size. Further, the accessibility of the tool at each of the first set of voxels may be analyzed, based on the placing. The analyzation may further include checking whether the tool is be placed without gouge or collision at the particular location within the allowable tool orientations.
Moreover, when a tool size is smaller than the voxel size of each of the first set of voxels, the accessible machinable volume estimation module 104 may analyze the accessibility of the tool at each of a plurality of child voxels. It should be noted that the hierarchical voxel grid representation may include the plurality of child voxels. In some embodiments, the accessibility of a tool may be analyzed at each of a second set of voxels of the plurality of voxels in the hierarchical voxel grid representation. In this case, the voxel size of each of the second set of voxels is greater than the tool size. Further, in some embodiments, a weight may be assigned to each of the plurality of voxels and the plurality of child voxels. The weight may be assigned based on their hierarchical locations in the voxel grid representation. The accessible machinable volume estimation module 104 may be communicatively coupled to the cluster generation module 105.
The cluster generation module 105 may be configured to generate one or more tool clusters based on the non-linear accessible machinable volume for each of the plurality of available tools. It should be noted that each tool cluster from the one or more tool clusters may include one or more tools having similar non-linear machinable volumes. The cluster generation module 105 may be further communicatively coupled to the tool selection module 106.
The tool selection module 106 may be configured to select a set of tools 107 from the one or more tool clusters. The set of tools may be selected based on tool sizes. The set of tools may include at least one tool from each of the one or more tool clusters. In particular, tools within a tool cluster may be compared based on their sizes. The comparison may be performed for each of the one or more tool clusters. Further, in some embodiments, the largest tool in each of the one or more tool clusters may be identified and selected based on the comparison.
The selection device 100 estimates machinable volume instead of computing tool path. The machinable volume is potentially removable volume of material for a tool. Further, the selection device 100 may not require re-computation of the machinable volume for the tool in each of multiple sequences. The selection device 100 requires only a simple and intuitive heuristic algorithm to select the optimal set of tools and their sequence rather than a combinatorial optimization algorithm.
In other words, the selection device 100 estimates potential machinable volume (i.e., volume accessible by a given tool) by placing the tool at discrete locations on a volume. In some embodiments, the selection device 100 may also check if the tool has accessing capability without penetrating the target part around the location. Estimating the machinable volume instead of the tool path provides various benefits when accurate cost estimation is not a factor of consideration. The benefits may include eliminating possible modulations in some of tool parameters like the depth of cut and the stepover (i.e., the depth of engagement in a radial direction). The machinable volume remains same irrespective of the depth and stepover. Therefore, added complexity of including these parameters may be reduced.
Another benefit of using the machinable volume as a proxy for the toolpath is that the machinable volume may be quickly estimated. This is essential since the machinable volume needs to be estimated once for each tool. The selection device 100 estimates the machinable volume by first discretizing the target part, the stock, and the tool (or a tool-holder assembly) into the voxel grid representation.
The discretized tool may be then placed on each voxel of the stock and checked for intersection with the part. Further, intersection check with the voxels may be parallelized and accelerated using a Graphical Processing Unit (GPU). Even in the absence of a GPU, the intersection check may be performed in O(log?n ) time by representing input shapes using a hierarchical spatial data structure such as an octree or a K-dimensional tree. In some embodiments, the selection device 100 only need an approximate estimation of the machinable volumes. Thus, even a coarse voxelization is sufficient, as long as the voxel size is comparable with the size of the smallest tool.
Yet another benefit of using the machinable volume as the proxy of tool path is that the selection device may not be limited to 2.5D machining. Other axes along which the tool may move and/or rotate (such as a 3-axis or a 5-axis machine), or if multiple machining directions are specified for the target part, the total machinable volume may be computed. The machinable volumes may be computed as a Boolean union of the machinable volumes in the allowed range of tool orientations discretized with some angular resolution.
It should be noted that the selection device 100 may be implemented in programmable hardware devices such as programmable gate arrays, programmable array logic, programmable logic devices, or the like. Alternatively, the selection device 100 may be implemented in software for execution by various types of processors. An identified engine/module of executable code may, for instance, include one or more physical or logical blocks of computer instructions which may, for instance, be organized as a component, module, procedure, function, or other construct. Nevertheless, the executables of an identified engine/module need not be physically located together but may include disparate instructions stored in different locations which, when joined logically together, comprise the identified engine/module and achieve the stated purpose of the identified engine/module. Indeed, an engine or a module of executable code may be a single instruction, or many instructions, and may even be distributed over several different code segments, among different applications, and across several memory devices.
As will be appreciated by one skilled in the art, a variety of processes may be employed for selecting an optimal set of tools for machining. For example, the exemplary selection device 100 may automatically select an optimal set of tools for machining, by the process discussed herein. In particular, as will be appreciated by those of ordinary skill in the art, control logic and/or automated routines for performing the techniques and steps described herein may be implemented by the exemplary selection device 100 either by hardware, software, or combinations of hardware and software. For example, suitable code may be accessed and executed by the one or more processors on the exemplary selection device 100 to perform some or all of the techniques described herein. Similarly, application specific integrated circuits (ASICs) configured to perform some or all the processes described herein may be included in the one or more processors of the exemplary selection device 100.
Referring now to FIG. 2, an exemplary process 200 for selecting an optimal set of tools for machining is depicted, in accordance with some embodiments of the present disclosure. Each step of the process 200 may be performed by various modules 102-106 of the selection device100. FIG. 2 is explained in conjunction with FIG. 1.
At step 201, information related to a target part to be manufactured, a stock to be machined, and a plurality of available tools for machining may be received. The target part may include a plurality of machinable features. At step 202, a total machinable volume may be determined based on the target part and the stock to be machined, using the total machinable volume determination module 102.
At step 203, a hierarchical voxel grid representation may be created for the total machinable volume using the voxel grid creation module 103. A hierarchical voxelization technique may be used to create the hierarchical voxel grid representation. The voxel grid representation may include a plurality of voxels. The hierarchical voxel grid representation may include at least one of an octree representation, a K-dimensional tree representation, or a uniform spatial grid representation.
Thereafter, at step 204, a non-linear accessible machinable volume may be estimated for each of the plurality of available tools. This step may be executed using the accessible machinable volume estimation module 104. The number of voxels accessible to each of the plurality of available tools may be considered for the estimation. In some embodiments, a tool at each of a first set of voxels of the plurality of voxels may be placed based on the hierarchical voxel grid representation. Here, the voxel size of each of the first set of voxels is larger than a tool size. Further, the accessibility of the tool at each of the first set of voxels may be analyzed, based on the placing. The accessibility of the tool at a voxel may be analyzed by checking whether the tool is placed without gouge or collision at the particular location within the allowable tool orientations.
Additionally in some embodiments, the accessibility of the tool at each of a plurality of child voxels may be analyzed when a tool size is smaller than the voxel size of each of the first set of voxels. It should be noted that the hierarchical voxel grid representation further comprises the plurality of child voxels. Moreover, the accessibility of a tool at each of a second set of voxels of the plurality of voxels in the hierarchical voxel grid representation may be analyzed. Here, the voxel size of each of the second set of voxels may be greater than the tool size. In some embodiments, a weight may be assigned to each of the plurality of voxels and the plurality of child voxels based on their hierarchical locations in the voxel grid representation.
At step 205, one or more tool clusters may be generated based on the non-linear accessible machinable volume for each of the plurality of available tools. The cluster generation module 105 may be responsible to perform this step. It should be noted that each tool cluster from the one or more tool clusters may include one or more tools having similar non-linear machinable volumes.
At step 206, a set of tools may be selected based on tool sizes, using the tool selection module 106. The set of tools may include at least one tool from each of the one or more tool clusters. In particular, tools within a tool cluster may be compared based on their sizes. The comparison may be performed for each of the one or more tool clusters. Further, for selecting the set of tools, the largest tool in each of the one or more tool clusters may be identified and selected based on the comparison.
Referring now to FIGS. 3A and 3B, exemplary representations of a target part 300 with computed machinable volumes using two different flat-end mill tools is illustrated, in accordance with some embodiments of the present disclosure. FIGS. 3A and 3B are illustrated in conjunction with FIGS. 1-2. FIG. 3A illustrates an exemplary representation of the target part 300 with a computed machinable volume 301a for a flat-end mill tool of a diameter of 8 millimeters. It should be noted that highlighted part in the FIG. 3A represents the machinable volume 301a. and FIG. 3B illustrates another exemplary representation of the target part 300 with a computed machinable volume 301b for a flat-end mill tool of a 10 millimeters diameter. It should be noted that the highlighted part in FIG. 3B represents the machinable volume 301b.
Referring now to FIGS. 4A, 4B, 4C, and 4D, an exemplary scenario 400 for generating tool clusters for a target part 401 is illustrated, in accordance with some embodiments of the present disclosure. FIG. 4 is explained in conjunction with FIGS. 1-3. With regards to tool clustering, considering the machinable volumes for tool clustering may result in tool clusters that depend on shapes and types of features in the target part 401 to be manufactured. Thus, all the available tools over a period may be used uniformly which may lead to extended tool life.
In some embodiments, the tool clusters may be formed based on the machinable volumes as long as number of tools is greater than the number of differently sized machinable features in the target part 401. When the number of the tools is greater, there may be multiple tools which may be able to machine the features in the target part 401 leading to similar machinable volumes.
A top view and a sectional view of the target part 401 are illustrated in FIGS. 4A and 4B, respectively. The target part 401 may include two pocket feature 401a and 401b. Further, FIG. 4C illustrates a set 402 of five tools (i.e., T1 to T5) available for machining. It should be noted that there may be multiple tools from the set 402 of five tools which may access a particular level in a pocket (for example, the pocket 401a and 401b). By way of an example, tools T4 and T5 may access a top level the pocket 401a, and tools T1, T2, T3 may additionally access the nested pocket 401b. As illustrated in FIG. 4D, this may naturally lead corresponding machinable volumes 403a (for the tools T4 and T5), and 403b (for the tools T1, T2, T3) of these groups of tools to tool clusters. Machinable volumes within the tool cluster may not be exactly same due to leftover material (i.e., slightly differing in corners under different tool radii). However, the machinable volumes may be similar and near to each other.
The tool clusters may be unlikely to have a same number of tools or a similar variance. Additionally, the machinable volumes may tend to get very close to each other as the tools get smaller. There may be only a few large machinable features and relatively more features that are smaller in size. However, aggregate machinable volume of the smaller features may still fail to match machinable volume of the larger features. This is because the machinable volumes of the features fall exponentially following a power law distribution, whereas their count increases linearly. The machinable volumes accessible by increasingly smaller tools increases marginally over a previous tool in the sequence. It may therefore be difficult to automatically separate the clusters. This may be seen even in a trivial example in FIG 4D, where the machinable volumes for all the tools (i.e., tools T1 to T5) are very close to each other. Although the two clusters of the tools T4, T5 and the tools T1, T2, T3 corresponding to the pocket 401a and the pocket 401b may be visually discerned. Further, it may be difficult to separate different clusters if the number of clusters is not already known. Therefore, in the present disclosure, a non-linear measure of the machinable volume may be computed for clustering. This may result in a more uniform variance across clusters and provides better separated clusters. This may be further explained in detail in conjunction with FIG. 5.
Referring now to FIG 5, an exemplary scenario 500 for non-linear calculation of machinable volumes for two different tools 501 and 502 is illustrated, in accordance with some embodiments of the present disclosure. FIG. 5 is explained in conjunction with FIGS.1-4. In some embodiments, an octree decomposition of the total machinable surface may be used for non-linear measure of the machinable volume. The octree may be created up to a depth ‘n’, as given below in equation (1):
n = log2 (D/T1) equation (1)
Where ‘D’ is the largest dimension of the target part and T1 is a diameter of the smallest tool in a set of tools. This ensures that leaf nodes in the octree may be of a size similar to the diameter of the smallest tool.
An algorithm for computing the non-linear measure of the machinable volume for a particular tool is given below:
Input: Octree of the target part and a given tool ‘T’ with diameter dT
Output: A non-linear measure of the tool accessible volume VT
set machinable volume VT ? 0;
set stack S ? {(n, l) | n ? octree nodes at level l = 1};
while S ? Ø do
pop node (?n, lk) from stack S;
if tool does not collide with part when placed at ?n, then
VT ? VT + lk;
if size of ?n > dT, then
if children of ?n ? Ø, then
S ? S ? {(c, lk + 1) | c ? child nodes of ?n};
end
end
end
end
return VT;
The algorithm increments the machinable volume measure ‘VT’ by a depth ‘lk’ at which a particular machinable node ‘?n’ may be found. A step in the algorithm includes descending to child nodes ‘c’ of a given node ‘?n’ only if size of the node ‘?n’ is greater than the tool diameter ‘dT’ and the node further has child nodes. This allows to non-linearly weigh the machinable volume newly found by a smaller tool.
FIG. 5 includes the tool 501, the tool 502, and octree representations 503a and 503b of a target part with two pockets 504 and 505. The octree representation 503b corresponds to the octree representation 503a descended one level down. The larger tool 501 may access only the larger pocket 504 in both the octree representations 503a and 503b. The pocket 504 may have 12 nodes (i.e., nodes 504a to 504n) accessible by the tool 501, in both the octree representations 503a and 503b. Further, the pocket 505 may have four nodes in the octree representations 503a and 503b. The Accessible machinable volume for the tool 501 may be C + (12 × n), where ‘n’ is depth of the pocket 504 and ‘C’ is the machinable volume already computed at the ‘n-1’ level. In Fig.5, for the smaller tool 502, the octree 503a may be descended one level down since the tool size of the tool 502 is smaller than size of the nodes in the pocket 505. Therefore, the octree representation 503b has child nodes in a region of the smaller pocket 505 of which 4 nodes are accessible by the smaller tool 502. The measure of the accessible machinable volume for the smaller tool 502 then may be C + (12 × n) + (4 × (n + 1)) where newly accessible nodes are weighed more based on depth of the octree at which they are found.
A variety of methods may be used efficiently to perform tool clustering of the one-dimensional (1D) machinable volume data. One parameter needed for the tool clustering includes number of anticipated clusters. The number of anticipated clusters may be determined by a user and modified interactively. In absence of user input, the number of clusters may also be determined automatically.
Referring now to FIG 6, determination of an optimal set of tools sequence from six tools 601 (i.e., T1 to T6) is illustrated, in accordance with some embodiments of the present disclosure. FIG. 6 is explained in conjunction with FIGS. 1-5. The optimal tool sequence may be obtained directly from clustered machinable volumes 602. The largest appropriate tool from each cluster may be selected for determining the optimal set of tools sequence. It should be noted that the larger tools may remove material more quickly. The larger tool may leave slightly more material which may be removed by smaller tools selected from other clusters.
As illustrated in the FIG. 6, a cluster with the smallest machinable volumes has tools T5 and T6. By way of an example, from the cluster, a tool T6 may be selected. Though both the tools T5 and T6 may remove approximately same volume. The tool T6 is the larger tool. Further, the tool T6 may have a larger cutting depth and diameter while supporting a higher feed rate, resulting in a higher overall Material Removal Rate (MRR). Other tools from other two clusters of tools may be selected in a similar way. However, for the cluster with the largest volumes including the tools T1 and T2, the smaller tool T1 may be chosen if a better surface finish is required.
It should be noted that clustering based on the machinable volumes 602 also allows to develop a flexible system where other parameters of the tools, operation and machinist’s preferences, and knowledge may be incorporated.
Referring now to FIGS. 7A, 7B, 7C, and 7D, a set of four tools 701, accessible machinable volumes 702 for the set of four tools, and top view 703 and side view 704 of a target part with an atypical pocket respectively are illustrated, in accordance with some embodiments of the present disclosure. FIG. 7 is explained in conjunction with FIGS. 1-6. The tools T1, T2, T3 and T4 may have accessible machinable volumes approximately decreasing linearly from the tool T1 to T4. Further, the target part may have four pockets that may form a staircase-like structure with a stair depth increasing along depth of the pockets. For such a structure, the largest tool may access only the highest level. The tools with order of decreasing size may access an additional level in the pocket, thus, the tools may have linearly increasing order of corresponding machinable volume.
Referring now to FIG. 8 an exemplary scenario 800 of machinable volume clustering 802 for a set 801 of eight tools is illustrated, in accordance with some embodiments of the present disclosure. FIG. 8 is explained in conjunction with FIG. 1-7. By way of an example, consider an atypical pocket 803 (same as the pocket of FIG. 7). Now, there are eight available tools T1 to T8 (in a same size range) instead of four tools. Sizes of the tools linearly increases from T1 to T8. In case of the set 801 of eight tools or more tools, there may be more than one tool that may access each level. This may result in nearly equal machinable volumes for the adjacent tools.
Referring now to FIG. 9, an exemplary scenario 900 of machinable volume clustering for a set 901 of five tools is illustrated, in accordance with some embodiments of the present disclosure. The FIG. 9 includes a top view 903 of the target part and a side view 904 of the target part. Further, FIG. 9 includes a more typical pocket feature (an albeit simplified pocket). In this case, there is also a staircase like structure, but the steps have even length and typically decreasing depth. Here, in the set 901 of the five tools T1 to T5, there are multiple tools which may access a particular level in the pocket. For example, both the tools T4 and T5 may access a top level, and T2 and T3 may access a level below. This naturally leads the corresponding machinable volumes 902 of these pairs of tools to tool clusters.
The disclosed methods and systems may be implemented on a conventional or a general-purpose computer system, such as a personal computer (PC) or server computer. Referring now to FIG. 10, an exemplary computing system 1000 that may be employed to implement processing functionality for various embodiments (e.g., as selection device 100, client device, server device, one or more processors, or the like) is illustrated. Those skilled in the relevant art will also recognize how to implement the invention using other computer systems or architectures. The computing system 1000 may represent, for example, a user device such as a desktop, a laptop, a mobile phone, personal entertainment device, DVR, and so on, or any other type of special or general-purpose computing device as may be desirable or appropriate for a given application or environment. The computing system 1000 may include one or more processors, such as a processor 1001 that may be implemented using a general or special purpose processing engine such as, for example, a microprocessor, microcontroller or other control logic. In this example, the processor 1001 is connected to a bus 1002 or other communication medium. In some embodiments, the processor 1001 may be an AI processor, which may be implemented as a Tensor Processing Unit (TPU), or a graphical processor unit, or a custom programmable solution Field-Programmable Gate Array (FPGA).
The computing system 1000 may also include a memory 1003 (main memory), for example, Random Access Memory (RAM) or other dynamic memory, for storing information and instructions to be executed by the processor 1001. The memory 1003 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by the processor 1001. The computing system 1000 may likewise include a read only memory (“ROM”) or other static storage device coupled to bus 1002 for storing static information and instructions for the processor 1001.
The computing system 1000 may also include a storage device 1004, which may include, for example, a media drives 1005 and a removable storage interface. The media drive 1005 may include a drive or other mechanism to support fixed or removable storage media, such as a hard disk drive, a floppy disk drive, a magnetic tape drive, an SD card port, a USB port, a micro USB, an optical disk drive, a CD or DVD drive (R or RW), or other removable or fixed media drive. A storage media 1006 may include, for example, a hard disk, magnetic tape, flash drive, or other fixed or removable medium that is read by and written to by the media drive 1005. As these examples illustrate, the storage media 1006 may include a computer-readable storage medium having stored there in particular computer software or data.
In alternative embodiments, the storage devices 1004 may include other similar instrumentalities for allowing computer programs or other instructions or data to be loaded into the computing system 1000. Such instrumentalities may include, for example, a removable storage unit 1007 and a storage unit interface 1008, such as a program cartridge and cartridge interface, a removable memory (for example, a flash memory or other removable memory module) and memory slot, and other removable storage units and interfaces that allow software and data to be transferred from the removable storage unit 1007 to the computing system 1000.
The computing system 1000 may also include a communications interface 1009. The communications interface 1009 may be used to allow software and data to be transferred between the computing system 1000 and external devices. Examples of the communications interface 1009 may include a network interface (such as an Ethernet or other NIC card), a communications port (such as for example, a USB port, a micro USB port), Near field Communication (NFC), etc. Software and data transferred via the communications interface 1009 are in the form of signals which may be electronic, electromagnetic, optical, or other signals capable of being received by the communications interface 1009. These signals are provided to the communications interface 1009 via a channel 1010. The channel 1010 may carry signals and may be implemented using a wireless medium, wire or cable, fiber optics, or other communications medium. Some examples of the channel 1010 may include a phone line, a cellular phone link, an RF link, a Bluetooth link, a network interface, a local or wide area network, and other communications channels.
The computing system 1000 may further include Input/Output (I/O) devices 1011. Examples may include, but are not limited to a display, keypad, microphone, audio speakers, vibrating motor, LED lights, etc. The I/O devices 1011 may receive input from a user and also display an output of the computation performed by the processor 1001. In this document, the terms “computer program product” and “computer-readable medium” may be used generally to refer to media such as, for example, the memory 1003, the storage devices 1004, the removable storage unit 1007, or signal(s) on the channel 1010. These and other forms of computer-readable media may be involved in providing one or more sequences of one or more instructions to the processor 1001 for execution. Such instructions, generally referred to as “computer program code” (which may be grouped in the form of computer programs or other groupings), when executed, enable the computing system 1000 to perform features or functions of embodiments of the present invention.
In an embodiment where the elements are implemented using software, the software may be stored in a computer-readable medium and loaded into the computing system 1000 using, for example, the removable storage unit 1007, the media drive 1005 or the communications interface 1009. The control logic (in this example, software instructions or computer program code), when executed by the processor 1001, causes the processor 1001 to perform the functions of the invention as described herein.
Thus, the present disclosure may overcome drawbacks of traditional systems discussed before. The disclosed method and system in the present disclosure may provide rapid computation of an optimal tool sequence which is feasible to integrate the disclosed selection device 100 into commercial CAM systems. The techniques described in traditional systems are all computationally expensive and difficult to implement. The selection device 100 only requires geometry of the tool-holder assembly and the target part to be machined for performing computations. Further, the disclosure provides flexibility for an experienced machinist to choose intelligent alternatives considering a wide variety of other practical constraints which may be specific to the machine shop or the target part.
The present disclosure computes the machinable volume for each tool exactly once, irrespective of a tool’s position in a sequence or presence/absence of a tool in the sequence (i.e., the machinable volume is not computed again). Moreover, the machinable volume computations may be done over a coarse voxel grid. Therefore, the computations may be very fast even for a large number of tools.
The disclosure may support a variety of tools like flat end, ball nose, barrel tools, conical tools, lens shaped tools, and their corresponding holders. Additionally, traditional systems that compute tool path may additionally need to perform a simulation to check for gouge and collision, which are naturally handled by the selection device 100.
It will be appreciated that, for clarity purposes, the above description has described embodiments of the invention with reference to different functional units and processors. However, it will be apparent that any suitable distribution of functionality between different functional units, processors or domains may be used without detracting from the invention. For example, functionality illustrated to be performed by separate processors or controllers may be performed by the same processor or controller. Hence, references to specific functional units are only to be seen as references to suitable means for providing the described functionality, rather than indicative of a strict logical or physical structure or organization.
Although the present invention has been described in connection with some embodiments, it is not intended to be limited to the specific form set forth herein. Rather, the scope of the present invention is limited only by the claims. Additionally, although a feature may appear to be described in connection with particular embodiments, one skilled in the art would recognize that various features of the described embodiments may be combined in accordance with the invention.
Furthermore, although individually listed, a plurality of means, elements or process steps may be implemented by, for example, a single unit or processor. Additionally, although individual features may be included in different claims, these may possibly be advantageously combined, and the inclusion in different claims does not imply that a combination of features is not feasible and/or advantageous. Also, the inclusion of a feature in one category of claims does not imply a limitation to this category, but rather the feature may be equally applicable to other claim categories, as appropriate.
CLAIMS
What is claimed is:
1. A system for selecting an optimal set of tools for machining, the system comprising:
a processor (1001); and
a memory (1003) communicatively coupled to the processor (1001), wherein the memory (1003) stores processor-executable instructions, which, on execution, cause the processor (1001) to:
receive (201) information (101) related to a target part (101a) to be manufactured, a stock (101b) to be machined, and a plurality of available tools (101c) for machining;
determine (202) a total machinable volume based on the target part (101a) and the stock to be machined (101b);
create (203) a hierarchical voxel grid representation for the total machinable volume, using a hierarchical voxelization technique, wherein the voxel grid representation comprises a plurality of voxels;
estimate (204) a non-linear accessible machinable volume for each of the plurality of available tools (101c), based on a number of voxels accessible to each of the plurality of available tools (101c);
generate (205) one or more tool clusters based on the non-linear accessible machinable volume for each of the plurality of available tools (101c), wherein each tool cluster from the one or more tool clusters comprises one or more tools having similar non-linear machinable volumes; and
select (206) a set of tools from the one or more tool clusters based on tool sizes, wherein the set of tools comprises at least one tool from each of the one or more tool clusters.
2. The system of claim 1, wherein the target part (101a) comprises a plurality of machinable features.
3. The system of claim 1, wherein the hierarchical voxel grid representation comprises at least one of an octree representation, a K-dimensional tree representation, or a uniform spatial grid representation.
4. The system of claim 1, wherein the processor-executable instructions further cause the processor (1001) to estimate (204) the non-linear accessible machinable volume for each of the plurality of available tools (101c) by:
based on the hierarchical voxel grid representation, placing a tool at each of a first set of voxels of the plurality of voxels, wherein a voxel size of each of the first set of voxels is larger than a tool size; and
analysing the accessibility of the tool at each of the first set of voxels, based on the placing.
5. The system of claim 4, wherein the processor-executable instructions further cause the processor (1001) to analyse the accessibility of the tool at a voxel by checking whether the tool is placed without gouge or collision at the particular location within the allowable tool orientations.
6. The system of claim 4, wherein the processor-executable instructions further cause the processor (1001) to:
analyse the accessibility of the tool at each of a plurality of child voxels, when a tool size is smaller than the voxel size of each of the first set of voxels, wherein the hierarchical voxel grid representation further comprises the plurality of child voxels.
7. The system of claim 5, wherein the processor-executable instructions further cause the processor (1001) to analyse the accessibility of a tool at each of a second set of voxels of the plurality of voxels in the hierarchical voxel grid representation, wherein the voxel size of each of the second set of voxels is greater than the tool size.
8. The system of claim 6, wherein the processor-executable instructions further cause the processor (1001) to assign a weight to each of the plurality of voxels and the plurality of child voxels based on their hierarchical locations in the voxel grid representation.
9. The system of claim 1, wherein the processor-executable instructions further cause the processor (1001) to select (206) the set of tools by:
for each of the one or more tool clusters, comparing tools within a tool cluster based on their sizes; and
identifying and selecting the largest tool in each of the one or more tool clusters based on the comparison.
10. A method (200) of selecting an optimal set of tools for machining, the method (200) comprising:
receiving (201), by a selection device (100), information (101) related to a target part (101a) to be manufactured, a stock (101b) to be machined, and a plurality of available tools (101c) for machining;
determining (202), by the selection device (100), a total machinable volume based on the target part (101a) and the stock (101b) to be machined;
creating (203), by the selection device (100), a hierarchical voxel grid representation for the total machinable volume, using a hierarchical voxelization technique, wherein the voxel grid representation comprises a plurality of voxels;
estimating (204), by the selection device (100), a non-linear accessible machinable volume for each of the plurality of available tools (101c), based on a number of voxels accessible to each of the plurality of available tools (101c);
generating (205), by the selection device (100), one or more tool clusters based on the non-linear accessible machinable volume for each of the plurality of available tools (101c), wherein each tool cluster from the one or more tool clusters comprises one or more tools having similar non-linear machinable volumes; and
selecting (206), by the selection device (100), a set of tools from the one or more tool clusters based on tool sizes, wherein the set of tools comprises at least one tool from each of the one or more tool clusters.
11. The method (200) of claim 10, wherein estimating (204) the non-linear accessible machinable volume for each of the plurality of available tools (101c) further comprises:
based on the hierarchical voxel grid representation, placing a tool at each of a first set of voxels of the plurality of voxels, wherein a voxel size of each of the first set of voxels is larger than a tool size; and
analysing the accessibility of the tool at each of the first set of voxels, based on the placing.
12. The method (200) of claim 11, wherein analysing the accessibility of the tool at a voxel further comprises checking whether the tool is placed without gouge or collision at the particular location within the allowable tool orientations.
13. The method (200) of claim 11, further comprising:
analysing the accessibility of the tool at each of a plurality of child voxels, when a tool size is smaller than the voxel size of each of the first set of voxels, wherein the hierarchical voxel grid representation further comprises the plurality of child voxels.
14. The method (200) of claim 12, further comprising:
analysing the accessibility of a tool at each of a second set of voxels of the plurality of voxels in the hierarchical voxel grid representation, wherein the voxel size of each of the second set of voxels is greater than the tool size.
15. The method (200) of claim 13, further comprising assigning a weight to each of the plurality of voxels and the plurality of child voxels based on their hierarchical locations in the voxel grid representation.
16. The method (200) of claim 10, wherein selecting (206) the set of tools further comprises:
for each of the one or more tool clusters, comparing tools within a tool cluster based on their sizes; and
identifying and selecting the largest tool in each of the one or more tool clusters based on the comparison.
| # | Name | Date |
|---|---|---|
| 1 | 202211018243-CLAIMS [15-02-2023(online)].pdf | 2023-02-15 |
| 1 | 202211018243-STATEMENT OF UNDERTAKING (FORM 3) [29-03-2022(online)].pdf | 2022-03-29 |
| 1 | 202211018243-Written submissions and relevant documents [11-03-2025(online)].pdf | 2025-03-11 |
| 2 | 202211018243-COMPLETE SPECIFICATION [15-02-2023(online)].pdf | 2023-02-15 |
| 2 | 202211018243-Correspondence to notify the Controller [20-02-2025(online)].pdf | 2025-02-20 |
| 2 | 202211018243-REQUEST FOR EXAMINATION (FORM-18) [29-03-2022(online)].pdf | 2022-03-29 |
| 3 | 202211018243-CORRESPONDENCE [15-02-2023(online)].pdf | 2023-02-15 |
| 3 | 202211018243-FORM-26 [20-02-2025(online)].pdf | 2025-02-20 |
| 3 | 202211018243-REQUEST FOR EARLY PUBLICATION(FORM-9) [29-03-2022(online)].pdf | 2022-03-29 |
| 4 | 202211018243-US(14)-HearingNotice-(HearingDate-24-02-2025).pdf | 2025-01-31 |
| 4 | 202211018243-PROOF OF RIGHT [29-03-2022(online)].pdf | 2022-03-29 |
| 4 | 202211018243-FER_SER_REPLY [15-02-2023(online)].pdf | 2023-02-15 |
| 5 | 202211018243-POWER OF AUTHORITY [29-03-2022(online)].pdf | 2022-03-29 |
| 5 | 202211018243-OTHERS [15-02-2023(online)].pdf | 2023-02-15 |
| 5 | 202211018243-CLAIMS [15-02-2023(online)].pdf | 2023-02-15 |
| 6 | 202211018243-FORM-9 [29-03-2022(online)].pdf | 2022-03-29 |
| 6 | 202211018243-FER.pdf | 2022-08-22 |
| 6 | 202211018243-COMPLETE SPECIFICATION [15-02-2023(online)].pdf | 2023-02-15 |
| 7 | 202211018243-FORM 18 [29-03-2022(online)].pdf | 2022-03-29 |
| 7 | 202211018243-CORRESPONDENCE [15-02-2023(online)].pdf | 2023-02-15 |
| 7 | 202211018243-COMPLETE SPECIFICATION [29-03-2022(online)].pdf | 2022-03-29 |
| 8 | 202211018243-DECLARATION OF INVENTORSHIP (FORM 5) [29-03-2022(online)].pdf | 2022-03-29 |
| 8 | 202211018243-FER_SER_REPLY [15-02-2023(online)].pdf | 2023-02-15 |
| 8 | 202211018243-FORM 1 [29-03-2022(online)].pdf | 2022-03-29 |
| 9 | 202211018243-DRAWINGS [29-03-2022(online)].pdf | 2022-03-29 |
| 9 | 202211018243-FIGURE OF ABSTRACT [29-03-2022(online)].jpg | 2022-03-29 |
| 9 | 202211018243-OTHERS [15-02-2023(online)].pdf | 2023-02-15 |
| 10 | 202211018243-DRAWINGS [29-03-2022(online)].pdf | 2022-03-29 |
| 10 | 202211018243-FER.pdf | 2022-08-22 |
| 10 | 202211018243-FIGURE OF ABSTRACT [29-03-2022(online)].jpg | 2022-03-29 |
| 11 | 202211018243-COMPLETE SPECIFICATION [29-03-2022(online)].pdf | 2022-03-29 |
| 11 | 202211018243-DECLARATION OF INVENTORSHIP (FORM 5) [29-03-2022(online)].pdf | 2022-03-29 |
| 11 | 202211018243-FORM 1 [29-03-2022(online)].pdf | 2022-03-29 |
| 12 | 202211018243-COMPLETE SPECIFICATION [29-03-2022(online)].pdf | 2022-03-29 |
| 12 | 202211018243-DECLARATION OF INVENTORSHIP (FORM 5) [29-03-2022(online)].pdf | 2022-03-29 |
| 12 | 202211018243-FORM 18 [29-03-2022(online)].pdf | 2022-03-29 |
| 13 | 202211018243-FORM-9 [29-03-2022(online)].pdf | 2022-03-29 |
| 13 | 202211018243-FER.pdf | 2022-08-22 |
| 13 | 202211018243-DRAWINGS [29-03-2022(online)].pdf | 2022-03-29 |
| 14 | 202211018243-FIGURE OF ABSTRACT [29-03-2022(online)].jpg | 2022-03-29 |
| 14 | 202211018243-OTHERS [15-02-2023(online)].pdf | 2023-02-15 |
| 14 | 202211018243-POWER OF AUTHORITY [29-03-2022(online)].pdf | 2022-03-29 |
| 15 | 202211018243-FER_SER_REPLY [15-02-2023(online)].pdf | 2023-02-15 |
| 15 | 202211018243-FORM 1 [29-03-2022(online)].pdf | 2022-03-29 |
| 15 | 202211018243-PROOF OF RIGHT [29-03-2022(online)].pdf | 2022-03-29 |
| 16 | 202211018243-CORRESPONDENCE [15-02-2023(online)].pdf | 2023-02-15 |
| 16 | 202211018243-FORM 18 [29-03-2022(online)].pdf | 2022-03-29 |
| 16 | 202211018243-REQUEST FOR EARLY PUBLICATION(FORM-9) [29-03-2022(online)].pdf | 2022-03-29 |
| 17 | 202211018243-REQUEST FOR EXAMINATION (FORM-18) [29-03-2022(online)].pdf | 2022-03-29 |
| 17 | 202211018243-FORM-9 [29-03-2022(online)].pdf | 2022-03-29 |
| 17 | 202211018243-COMPLETE SPECIFICATION [15-02-2023(online)].pdf | 2023-02-15 |
| 18 | 202211018243-CLAIMS [15-02-2023(online)].pdf | 2023-02-15 |
| 18 | 202211018243-POWER OF AUTHORITY [29-03-2022(online)].pdf | 2022-03-29 |
| 18 | 202211018243-STATEMENT OF UNDERTAKING (FORM 3) [29-03-2022(online)].pdf | 2022-03-29 |
| 19 | 202211018243-US(14)-HearingNotice-(HearingDate-24-02-2025).pdf | 2025-01-31 |
| 19 | 202211018243-PROOF OF RIGHT [29-03-2022(online)].pdf | 2022-03-29 |
| 20 | 202211018243-FORM-26 [20-02-2025(online)].pdf | 2025-02-20 |
| 20 | 202211018243-REQUEST FOR EARLY PUBLICATION(FORM-9) [29-03-2022(online)].pdf | 2022-03-29 |
| 21 | 202211018243-Correspondence to notify the Controller [20-02-2025(online)].pdf | 2025-02-20 |
| 21 | 202211018243-REQUEST FOR EXAMINATION (FORM-18) [29-03-2022(online)].pdf | 2022-03-29 |
| 22 | 202211018243-STATEMENT OF UNDERTAKING (FORM 3) [29-03-2022(online)].pdf | 2022-03-29 |
| 22 | 202211018243-Written submissions and relevant documents [11-03-2025(online)].pdf | 2025-03-11 |
| 1 | SS202211018243E_18-08-2022.pdf |