System, apparatus and method for side milling via determined flattest line
By identifying the pseudo-directed curve subregions on the non-directed surface and matching the tool curvature, the problem of difficult processing of non-directed surfaces in CAM is solved, and efficient and accurate side milling effect is achieved.
Patent Information
- Application Number
- CN202410776853.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-10-02
- Filing Date
- 2024-06-17
- Publication Date
- 2025-04-04
AI Technical Summary
In computer-aided manufacturing (CAM), machining of non-linear surfaces is difficult because prior art is difficult to effectively apply 5-axis side milling cycles, especially in cases where tight tool target surface contact is required.
By identifying the subregions of curves with pseudo-directed texture properties and determining the direction of these curves, the absolute value of the normal curvature is minimized. Then, based on the identified subset of curves and the curvature matching of available tools, select the appropriate side milling cutting tool and determine its tool path.
Efficient and accurate side milling on non-standard surfaces is achieved, ensuring that the tool path does not collide with the surface, minimizing tolerance interference, and improving processing quality and efficiency.
Smart Images

Figure CN119747717A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates generally to the field of computer-aided manufacturing (CAM) methods and more particularly to a method for optimal side milling of non-ruled surfaces. Background Art
[0002] In the field of CAM-subtractive flank milling, the target surface is usually required to be a ruled surface, that is, it can be represented as a set of points swept by a moving straight line. This condition provides a high level of finishing quality and allows faster material removal rates, especially in 5-axis cycles. However, the CAD model may not always guarantee that the target surface (such as a common sub-section of a splitter, blades, and impellers) is ruled. When machining such surfaces, this limitation poses a challenge to CAM users because it is impossible to directly apply a 5-axis flank milling cycle. Typical methods may be inappropriate because they are limited in their ability to achieve close, mathematically rigorous tool-target surface contact, especially for surfaces that are not ruled. In addition, flank milling involving 5-axis alignment of the cutting tool with the ruled surface of the target ruled surface is possible under certain conditions (in particular, the surface is indeed ruled), which is usually not the case when an aerodynamic profile is required. Therefore, it is necessary to use surface features that can help better axially align the 5-axis barrel cutting tool with the target surface. Summary of the invention
[0003] The method may include: selecting a workpiece to be machined, wherein the workpiece has a set of one or more unruled surfaces; determining a sub-region of the set of one or more unruled surfaces having a set of curves, wherein the set of curves has pseudo-ruledness characteristics; property), wherein the pseudo-ruled property can be a set of properties associated with the surface and determined based on evaluating Gaussian curvature of the set of curves and a set of criteria; determining an orientation of each curve in the set of curves for the determined sub-area, wherein the orientation minimizes an absolute value of a normal curvature of the set of curves and corresponds to an isoline exhibiting near zero curvature on the determined sub-area; identifying a subset of curves having near zero curvature from the set of curves determined to have an orientation that minimizes an absolute value of a normal curvature, the identification being based on whether the determined orientation can be negative, zero, or positive within a threshold; selecting a side milling cutting tool from a set of available tools based on matching the curvature of the identified subset of curves with a curvature of a side milling cutting tool in the set of available tools; and determining a tool path for the side milling cutting tool based on the selected side milling cutting tool having a tool curvature and the curvature of the identified subset of curves.
[0004] In further method embodiments, the set of criteria may be based on identifying the sub-region as at least one of: a surface that may not be a true straight surface and a surface that may not be a straight surface. Additional method embodiments may also include: checking a set of one or more non-straight surfaces for pseudo-straight characteristics. Additional method embodiments may also include: validating the determined tool path for the side milling cutting tool to ensure that the tool path can be free of collisions and tolerance-exceeding interferences with the surface.
[0005] In further method embodiments, the direction may be slightly varied from point to point and determined via steps in the calculated direction, wherein at each step the curvature may again be checked to be at least one of: non-positive and positive, not exceeding a specified positive physical threshold. In further method embodiments, the threshold may be based on machining tolerances, wherein the tolerances may be based on the machining capabilities of the machine, wherein the machine may not be able to side mill beyond the threshold. In further method embodiments, the threshold may be adjusted based on a side milling stage, wherein the stage may be at least one of: during a roughing stage, during a semi-finishing stage, and during a finishing stage.
[0006] In further method embodiments, matching the curvature of the identified subset of curves to the curvature of a side milling cutting tool ensures that the selected tool effectively machines the surface while minimizing deviations from a desired curvature profile.
[0007] Additional method embodiments may also include outputting the determined tool path for the side milling cutting tool as one or more machine instructions. In further method embodiments, determining the tool path for the side milling cutting tool may be further based on following a near zero curvature contour.
[0008] An apparatus embodiment may include an apparatus for generating instructions for a five-axis machining tool, the apparatus having a processor and an addressable memory, the processor being configured to: select a workpiece to be machined, wherein the workpiece has a set of one or more unruled surfaces; determine a sub-region of the set of one or more unruled surfaces having a set of curves, wherein the set of curves has pseudo-ruled properties, wherein the pseudo-ruled properties may be a set of properties associated with the surface and determined based on an evaluation of Gaussian curvature of the set of curves and a set of criteria; determine a direction for each of the set of curves of the determined sub-region, wherein the direction minimizes the one The invention relates to a method of claim 1, wherein the method comprises: determining an absolute value of a normal curvature of a group of curves and corresponding to a contour line on the determined sub-area exhibiting a curvature close to zero; identifying a subset of curves having a curvature close to zero from the group of curves, the group of curves being determined as having a direction that minimizes the absolute value of the normal curvature and being configured to be identified based on whether the determined direction may be negative, zero or positive within a threshold; selecting a side milling cutting tool from a group of available tools based on matching the curvature of the identified subset of curves with the curvature of a side milling cutting tool in a group of available tools; and determining a tool path of the side milling cutting tool based on the selected side milling cutting tool having a tool curvature and the curvature of the identified subset of curves.
[0009] In further apparatus embodiments, the threshold value may be based on a machining tolerance, wherein the tolerance may be based on the machining capabilities of the machine, wherein the machine may not be able to side mill beyond the threshold value. In further apparatus embodiments, matching the curvature of the identified subset of curves to the curvature of the side milling cutting tool ensures that the selected tool effectively machines the surface while minimizing deviations from a desired curvature profile.
[0010] In further device embodiments, the processor may be further configured to verify the determined tool path for the side milling cutting tool to ensure that the tool path may interfere with the surface without collision and tolerance exceeding. In further device embodiments, the side milling cutting tool may be a barrel cutting tool. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] The components in the drawings are not necessarily drawn to scale, but rather emphasize the principles of the invention. The same reference numerals represent corresponding parts throughout the different views. Embodiments are shown by way of example and not limitation in the figures of the accompanying drawings, wherein:
[0012] Figure 1 A flow chart for determining pseudo-ruling is shown;
[0013] Figure 2 A flow chart for identifying contours approaching zero curvature is shown;
[0014] Figure 3 A flow chart for evaluating near zero curvature contours is shown;
[0015] Figure 4 A flow chart for determining a matching tool for a machined surface is shown;
[0016] Figure 5 A flow chart for calculating a side milling tool path is shown;
[0017] Figure 6 A flow chart showing a method of determining a machining tool path;
[0018] Figure 7 A flow chart showing an implementation of the flattest line method;
[0019] Figure 8 An exemplary method of the disclosed embodiment is shown as a top-level flowchart;
[0020] Fig. 9 A top-level functional block diagram of a computing device system in a computer-aided manufacturing (CAM) environment is shown;
[0021] Fig.10 A graphical representation of the surface flattest line CAD / CAM method is shown;
[0022] Fig.11 The flattest line CAD / CAM method is shown, with emphasis on the generalization of the concept of asymptotes;
[0023] FIG. 12A to FIG. 12B The concept and utility of the flattest line CAD / CAM approach for nearly ruled surfaces is shown;
[0024] Fig.13 The use of circular arc fitting to determine the suitability of a target surface for side milling by a cutting tool having curved side faces is shown;
[0025] Fig.14An image further illustrating application of side milling on a target surface using a barrel-shaped tool having curved sides is shown;
[0026] FIG. 15A to FIG. 15C A series of images are shown which demonstrate the results obtained by applying the flattest line calculation method to certain surfaces that are not exactly ruled surfaces;
[0027] FIG. 16A to FIG. 16B As shown previously in FIG. 15A to FIG. 15C The same surface shown in , showing a different shading relationship between the flattest line family and the surface from which it was extracted;
[0028] Fig.17 A high-level block diagram of a computing system and process for implementing embodiments of the system and process is shown;
[0029] Fig.18 Block diagrams and processes illustrating exemplary systems in which embodiments may be implemented; and
[0030] Fig.19 A cloud computing environment is shown for implementing embodiments of the systems and processes disclosed herein. DETAILED DESCRIPTION
[0031] Computer-aided design (CAD) systems can generate surfaces for various components, such as blades for impellers, where a ruled surface may be critical for an efficient side milling operation. In the context of side milling, the target surface is ideally a ruled surface, which can be described as a set of points swept by a moving straight line. One aspect is that the cutting tool axis in the milling operation is typically aligned with the ruled grain of the target surface, resulting in more efficient and accurate cutting.
[0032] In a side milling cycle, the side surface of a cylindrical or conical tool engages material, and material removal occurs along the surface of the tool rather than at its tip. This is in contrast to a point milling cycle, in which the tip of the tool is primarily responsible for material removal. The disclosed embodiments and corresponding figures serve to illustrate the concept of side milling, emphasizing how the Flattest Line method can be utilized in conjunction with such tools to optimize side milling operations on surfaces with varying curvature features.
[0033] The disclosed embodiments provide systems, apparatus, and methods for side milling via a determined flattest line for tool path trajectory planning in a computer-aided manufacturing (CAM) environment, specifically, computer-aided milling. Side milling can be more productive because it allows for greater removal rates of rough material and it more efficiently utilizes the cutting sub-area of the cutting tool. Generally, tool engagement can be divided into a radial component corresponding to tip point milling and an axial component corresponding to side milling. Increased flexibility in cutting tool position in side milling can result in shorter machining times and / or removal of rough material in a manner that more accurately and consistently reproduces a desired target shape.
[0034] The disclosed embodiments provide systems and methods for side milling of a workpiece to be machined, wherein the workpiece has a set of one or more surfaces, such as warped surfaces, wherein the surfaces have Gaussian curvatures that vary in two parametric directions and are therefore intuitively associated with complex laws of deformation and curvature variation. Furthermore, the set of one or more surfaces does not have the property of passing through every point in the surface, there being at least one straight line that also lies in the surface. Thus, via the disclosed embodiments, side milling using the determined flattest line can be used to machine specific components (typically blades and impeller sub-parts) having a target surface that represents a portion that is not a mathematically accurate ruled surface.
[0035] In addition, to allow for the machinability of surfaces that are not exactly straight in a smooth manner, embodiments of the disclosed flattest line method measure the distance of a target surface from exactly straight by combining the concepts of a line of curvature and an asymptote, since a curve minimizes the absolute value of the normal curvature. In the differential geometry of a surface, an asymptote of a surface is a curve that lies on the surface and is tangent to an asymptotic direction (i.e., a direction on the surface where the normal curvature is zero), and wherein a line of curvature is a curve that lies on the surface and is tangent to a principal direction (i.e., a direction where the normal curvature takes a maximum or minimum value). As will be described with respect to side milling of a component, the curvature of a curve is the degree to which the curve deviates from a straight line, and the curvature of a surface is the degree to which a curved surface deviates from a plane. Thus, a machine can perform machining of a component by side milling a target surface along those determined flattest lines with the aid of a side curved cutting tool (also referred to as a barrel-type tool).
[0036] Thus, the disclosed systems and methods can determine a set of flattest lines located on an unruled surface that are algorithmically generated by utilizing iterative minimization of the absolute value of the normal curvature. That is, the determined set of flattest lines can then serve as the equivalent of the ruled grains in a true ruled surface, and thus represent a mathematical representation of a ruled surface that is closest to that which can be found on that particular unruled surface. Thus, the system can use surface features to better align a barrel tool with a surface, which involves a differential match between the mild curvature of the barrel tool (circular segment) and the near zero curvature lines extracted from the target surface.
[0037] Figure 1 A flow chart for determining pseudo-ruledness 100 of a surface according to one embodiment of side milling using a determined flattest line is shown. In this embodiment, pseudo-ruledness (also referred to as an almost-ruled surface) can be identified as a surface that is not exactly ruled and / or a surface that is not a far-from-ruled surface (e.g., a sphere, ellipse, torus, etc.). That is, by determining pseudo-ruledness, the system can identify surfaces for which use of a flattest line would produce a curve that lies on a surface that is closest to a straight line.
[0038] According to the flow chart for determining the presence of pseudo-ruling 100 on a surface, in a first step, the pseudo-ruling 102 of the surface under consideration 101 is checked to ensure that the algorithm can be applied to the given surface. The exact rule of the surface can be determined using standard methods, which can include, for example, checking the flatness of the control polygon array of the intermediate points. If it is determined that there is no exact rule, the flattest line algorithm can generate a geometric entity point by point, such as a 1D manifold with a certain length but cannot have an area closest to the rule belonging to the surface 101. In this embodiment, the algorithm can combine the differential concept of the asymptotic direction and the minimum of the absolute value of the normal curvature.
[0039] As shown, a pseudo-straightness tester component 103 may be implemented to determine the characteristics of a surface in conjunction with an appropriate criterion. The applicable criterion involves evaluating the Gaussian curvature K over the entire surface 101 or one or more sub-regions of the surface 101. In one embodiment, the evaluation represents a discrete equivalent of the evaluation along the entire continuous surface. The criterion requires that the Gaussian curvature K is non-positive, or, if positive, has a corresponding radius of curvature greater than a specified value (also referred to as a threshold value determined by the system or user).
[0040] In making this determination, when K is zero over one or more regions (also referred to as sub-regions or patches) of the surface 101, the region can be considered to be developable. Developable regions or surfaces can be considered to be a special type of surface whose characteristic is that they can be equidistantly spread or unfolded onto a plane without deformation. That is, there is a straight line passing through each point S of the surface 101, and the tangent plane along the line has a constant orientation (e.g., the point-defined normal vector of the surface 101 does not change its orientation as the point under consideration moves along the line): Note that K is zero at each point of the developable surface. In the case of a developable target surface, accurate side milling can be performed using cylindrical or conically tapered tools, except when the cutting tool shank radius is greater than the maximum radius of curvature of the surface and the concave side of the target surface is machined. When K is negative, this means that there is a normal portion with zero curvature. Figure 1 The flowchart of shows the process of determining pseudo-ruling, which can be an initial step in implementing a flattest line algorithm for optimal side milling of non-ruled surfaces or nearly ruled surfaces. Therefore, the system determines the pseudo-ruling of the surface to identify whether the surface can be used for side milling via the determined flattest line, and if the surface 101 is determined by the system and the pseudo-ruling tester component to be a pseudo-ruled surface, the system can move forward to identify near zero curvature contours (or one-dimensional manifolds).
[0041] Figure 2 1 is a flow chart showing the second step of a method for side milling via a determined flattest line, wherein an input surface is used to identify a near zero curvature manifold 200. In this step, an input surface 101 may be used to identify a near zero segment 202, such as a curvature manifold. To accomplish this, a curvature calculator component 203 may be executed to calculate appropriate regions on the surface 101. The curvature calculator 203 may be executed to determine regions on the surface where the Gaussian curvature is negative, zero, or positive, but does not exceed a specified positive physical threshold, such as compared to a machining tolerance, which is a parameter set by a CAM user.
[0042] In the example of an impeller blade with complex curvature features that are machined by a tool, some areas of the blade surface may have positive Gaussian curvature with a radius of curvature greater than a threshold suitable for side milling by the machine, while other areas may have zero or negative Gaussian curvature. Identifying these areas is therefore a required step in optimizing the machining process.
[0043] In one embodiment, upon identifying a set of regions of the surface having desired curvature characteristics, the process continues by executing a direction detector component 204 on the surface 101 to minimize the absolute value of the normal curvature. Assuming the surface is smoothly defined, the direction detector component 204 can identify at least one such direction for each point on the surface. As long as the surface is smooth in the sense of differential geometry, these directions are important because they are represented by continuous functions defined on a compact set.
[0044] In one embodiment, the direction detector component 204 may operate by executing a gradient descent algorithm to iteratively find the optimal direction of minimum normal curvature. Alternatively, the direction detector component 204 may use other optimization techniques known in the art to achieve the same goal.
[0045] Subsequently, a section finder component 205 may be used to generate curves having near zero curvature based on the directions identified by the direction detector component 204. These generated curves may then be stored in a curve database 206 for future use.
[0046] In one embodiment, the section finder component 205 can generate curves by connecting points along the direction of the identified minimum absolute value of normal curvature, effectively creating a smooth path that follows the curvature of the surface 101. These curves can then be used to guide the tool path of the milling machine, ensuring that the tool remains aligned with the curvature of the surface, thereby maximizing machining efficiency and surface finish quality.
[0047] Figure 3 A flow chart for calculating near zero curvature contour lines 300 according to one embodiment is shown, which illustrates the process of calculating near zero curvature contour lines (hereinafter referred to as contour lines) on a target surface. These contour lines connect points on the surface with equal minimum values of the modulus of normal curvature (e.g., values as close to zero as possible).
[0048] The process begins at a start point 301, where the process can be implemented by a computer system executing one or more non-transitory computer-readable storage media including computer instructions that, when executed by one or more processors of the computer system, cause the computer system to perform the disclosed operations. The process receives a target surface and then proceeds to view the received target surface 302. Next, the surface is checked against a set of pseudo-ruledness criteria to determine whether the surface meets the pseudo-ruledness criteria 303. The check involves evaluating whether the surface exhibits features consistent with a pseudo-ruled surface, such as the presence of regions with negative, zero, or positive Gaussian curvature that does not exceed a specified positive threshold (also known as Figure 1In one embodiment, the positive threshold may be defined based on the machine and machining capabilities, wherein the machine is not capable of side milling beyond the threshold. The threshold may be adjusted based on the side milling phase, for example during the roughing, semi-finishing and / or finishing phases.
[0049] If the surface is determined not to be pseudo-ruled, the process follows the "NO" branch and exits the process at endpoint 304. This endpoint indicates that no further calculations are performed on the surface that does not meet the pseudo-ruled criteria.
[0050] On the other hand, if the surface is determined to be pseudo-ruled, the process follows the "yes" branch and continues to calculate the direction of the flattest line on the surface, i.e., the direction that minimizes the absolute value of the normal curvature 305. This calculation involves identifying and determining the best direction along the surface where the curvature is closest to zero.
[0051] Thereafter, and based on receiving the calculated direction of the flattest line along the viewed surface, the process checks the curvature closest to zero to determine whether it is negative, zero, or positive within a specified threshold 306. This is done by stepping in the calculated direction, where the curvature is again checked 306 to be non-positive, or alternatively, not exceeding a specified positive physical threshold when positive. At this point, the system performs another check, and if the curvature does not meet these criteria, the process follows the "no" branch and exits the process at the end 304.
[0052] If the curvature does meet the identified criteria, the process follows the "yes" branch and continues to identify curves of near zero curvature on the viewed surface 307. These identified curves of near zero curvature (also called contours) represent paths along the surface where the absolute value of the curvature is minimized, thereby providing valuable information for machining or other applications.
[0053] The identified contours (curves with near-zero absolute values of normal curvature) 307 can then be stored in a database 308 configured to store data and information related to the curves. The database can be used as a repository for contours, allowing them to be retrieved and utilized in future processes.
[0054] Finally, the algorithm reaches endpoint 309, indicating successful completion of the process and identification of near zero curvature contours for the curvature regions on the target surface that are determined to have pseudo-ruled textures.
[0055] Figure 4 is a flow chart illustrating a process of matching the curvature of an identified contour to the curvature of a machining tool 400. The process is directed to determining the size and shape of a tool that can be used to machine a target surface based on previously identified near zero curvature contours stored in a curve database.
[0056] In one embodiment, the process begins at a match curve and tool curvature step 401. This step initiates the process of finding a suitable tool for machining by matching the curvature of the contour lines with the curvature of available tools on the machine that can be used for side milling.
[0057] In this embodiment, the process proceeds to the curve / tool matcher component 402. The curve / tool matcher component 402 can be configured to perform a matching operation by comparing the curvature of the contour received from the curve database 206 with the curvature of the potential tool received from the tool database 403. The curve / tool matcher component 402 is responsible for determining an appropriate machining tool having a curvature profile that is closely aligned with the contour, wherein the curvature profile can be closely defined based on a predetermined threshold given by a user. For example, typically a tool is selected so that its radius of curvature is a threshold tolerance lower than a more restrictive radius of curvature found along the contour. In one embodiment, the determination can be based on closely aligning the curvature profile of the tool with the contour using a threshold set by the user or in another embodiment and / or a threshold determined by the system based on previous execution of a side milling tool on a similar contour. That is, in one embodiment using machine learning, the system can define close alignment based on historical data compiled by the same machine or other machines.
[0058] As input, the curve / tool matcher component 402 may be configured to receive information from the curve database 206, including the contour lines identified in the previous steps of the process. These contour lines represent paths along the target surface where the absolute value of the normal curvature is minimized.
[0059] Additionally, the curve / tool matcher component 402 may be configured to receive information from a tool database 403. The database may include information about various machining tools that may be used, including their curvature characteristics.
[0060] In one embodiment, the curve / tool matcher component 402 can be configured to identify or determine an appropriate barrel tool with a curvature slightly higher than the contour from the curve database 206. In one embodiment, the slightly higher curvature can be based on a predetermined threshold set by the user or by the system based on previous operations. This matching ensures that the selected tool effectively machines the surface while minimizing deviations from the desired curvature profile.
[0061] The identified or determined barrel tool 404 can then be used for the machining operation. Depending on the requirements of the machining operation, the process can be applied to the entire surface 101 or to individual blocks of the surface. When applied to a single block, the matching method is performed separately for each block, ensuring the best tool selection for each portion of the surface. In an embodiment where the matching method is performed separately for each block, the threshold for each block can also be adjusted based on, for example, the area of the surface and whether a specific tool can reach the area given the surrounding surface. For example, if there are multiple blocks identified as Block 1, Block 2, Block N, the threshold for a barrel tool 404 with a slightly higher curvature than the contour for Block 1 can be different from the threshold for Block 2, and so on. That is, the system can be configured to calculate a threshold for an acceptable change in curvature for each block, which is unique to the environment and geometry surrounding the block. The system can also be configured to reduce the number of tool changes based on the number of tools identified or determined to be used with the tool path determination described in further detail herein.
[0062] Figure 5 5 is a flow chart illustrating a process for calculating a side milling tool path 500, wherein the determination of the side milling tool path may be based on a curve selected from a curve database and an identified tool (i.e., a machining tool). In one embodiment, the process generates a tool path that follows a near zero curvature contour, thereby allowing efficient and accurate machining of a target surface.
[0063] In one embodiment, as an initial step, the process method selects a set of one or more curves 501 from the curve database 206, which is configured to store the contours identified in the previously described method steps. In this step, as described herein, one or more curves 502 are selected from the curve database 206, wherein the selection of the starting point of the one or more curves can be performed, for example, by a user. In some embodiments, the criteria for determining which curves to select can be determined by a series of sequentially adjacent contours of near zero curvature on the selected surface, for example, starting from a hint point that is typically located at a natural boundary of the surface to be machined. The selected one or more curves 502 can correspond to contours on the target surface or blocks on the surface that present near zero curvature. The selected curves are used as milling guides for side milling operations.
[0064] The process continues to the next step of calculating the side milling tool path 503, where the tool and surface or surface area along with the contour lines from the curve database 206 are received as input and used to calculate the side milling tool path. This step initiates the process for generating a tool path based on the selected one or more curves 502 and the selected tool 404. This step can be performed using a path calculator component 504 to generate a tool path based on the selected one or more curves 502 and the previously identified tool 404. The identified tool 404 can be a suitable barrel tool with a curvature determined to match the contour line in the previous step.
[0065] The path calculator component 504 can be configured to calculate a tool path 505, such as a side milling tool path, in a manner that ensures that the tool path closely follows the selected one or more curves 502. The calculated tool path 505 represents the optimal path that the tool 404 takes during the machining operation to achieve the desired surface profile. In one embodiment, the optimal path of the tool can be based on the path of the tool that the side milling process should follow to produce the most accurate cut of the part, where most accurate can mean that the shell swept by the cutting tool (which corresponds to the shape engraved inside the stock material) when moving matches the desired target surface up to the second-order in the language of differential geometry.
[0066] In one embodiment, at the last step, the process includes a tool path validator (collision checker) component 506. This step involves validating the received calculated tool path 505 to ensure that there are no collisions and tolerance exceeded interferences (also known as "gouges") between the tool path and the target surface. The validation process ensures that the calculated tool path 505 is safe, collision-free, and can be used for machining operations.
[0067] With the tool path verification step 506 complete, the process can end and the generated verified tool path 507 can be ready for the side milling process. By following the near zero curvature contour, the tool path ensures efficient and accurate machining of the target surface, resulting in a high quality final product.
[0068] As described herein, differential geometry is the mathematical discipline that studies the geometry of smooth shapes and smooth spaces by analyzing surfaces (also known as smooth manifolds) using the tools of calculus (function derivatives). The present embodiment uses the determined Gaussian curvature of the target surface, where the Gaussian curvature is an intrinsic measure of curvature that depends only on the distance measured "inside" or along the surface, rather than the way it is equidistantly embedded in Euclidean space.
[0069] The disclosed embodiments of side milling via determined flattest lines provide systems and methods that combine concepts of differential geometry, such as asymptotic directions and Gaussian curvature, with shape matching arguments to develop a self-organizing working framework in which, in real time, generally barrel-shaped cutting tools (also referred to as circular segment tools) can side mill generally non-straight-grained surfaces in a technologically optimal manner. In addition, embodiments determine the minimum curvature indicated by asymptotic lines and curves tangent to the asymptotic directions of the surface to mark transitions between cross sections with positive and negative curvatures.
[0070] As described in the disclosed embodiments, systems, apparatus, and methods for side milling via a determined flattest line do not modify the underlying geometry and use an alternative description of the target surface to allow for a more general approach to side milling. That is, the ruled nature of a surface (when present) can be described independently of any particular representation of the target surface by presenting a method that reparameterizes the ruled surface (as a byproduct) with the ruled directions as isoparametric, meaning with the same constant parameter values (in different coordinate systems). In one embodiment, the flattest line method can be independent of any particular representation of the target surface, and when the target surface is ruled, with non-isoparametric ruled grains, the system can determine to provide the ruled grains as an isoparametric surface representation.
[0071] In one embodiment, the flattest line method solves the specific problem of enabling a barrel-shaped tool (i.e., having curved sides) to machine an almost straight-grained surface, where "almost" can be quantified at different levels. This can be performed by differentially matching the flattest line present on the target surface to the gentle curvature of the barrel-shaped cutting tool, as described in detail herein. That is, the flattest line relies on the construction of a global continuum of points located on the target surface. In addition, the flattest line method can be based on an algorithm that generalizes the concept of asymptotes, which are defined as continuous curves that act as substitutes for straight grains on the target surface when the target surface is not exactly straight-grained. In other words, the flattest line method proposes the construction of a continuous 1-d manifold located on the target surface to indicate to the user relevant information about the most convenient geometric pattern that the cutting tool should follow to machine the target surface.
[0072] The disclosed embodiments of the flattest line method also disclose the construction of a suitable pattern to provide a network of curves that serves as a geometric framework for the primary motion of the cutting tool. Tool path determination can also be based on typical motion parameters such as feed parameters (e.g., speed, acceleration, and jerk drive limits) for a particular milling machine.
[0073] As already described, the flattest line embodiments use the tool to achieve a finishing quality, i.e., a differential-based match of the cutting tool curvature to the flattest line extracted from the target surface in regions where the Gaussian curvature is non-positive or slightly positive. In addition to the disclosed methods of providing a framework for side milling, embodiments allow for extension of the set of side milling machinable shapes.
[0074] Figure 6 An alternative embodiment of tool path generation 600 is shown, wherein the path calculator may first determine the tool path based on the selected one or more curves, then determine the tool path without considering the tool itself, and then adjust or modify the tool path based on the curvature of the tool. That is, in this embodiment, a machining tool may be selected based on the selected one or more curves and the tool path, wherein the system may be configured to select the tool based not only on matching curvature but also on the determined tool path. In an initial step, the system is configured to select a curve 601 from the curve database 206. The selected curve 602 may then be transmitted to the next step for calculating a side milling tool path 603 based on the selected curve 602. The path calculator 604 may then receive the calculated side milling tool path and the tool 404 from the available tool subset to determine the tool path 605. This embodiment provides an additional layer of validation to the system based on first determining the side milling tool path based on one or more curves, and then adjusting or modifying the tool path based on the tool selected from the tool subset according to the initially determined tool path. Once the tool is selected, the tool path may be modified or adjusted.
[0075] Figure 7A flow chart of the flattest line method as described herein and implemented by the system is shown. The system takes as input a surface 705 to be machined via a computing device having a processor and an addressable memory, and can be configured to execute a pseudo-rule evaluation component 710 to determine whether the disclosed flattest line method is applicable to the target surface. Once it is determined that there is a pseudo-rule segment (or sub-portion) on the surface, a curvature calculator component 720 can determine a direction on the surface by determining whether the curvature is negative, zero, or positive, wherein the direction minimizes the absolute value of the curvature. According to one embodiment, the near-zero curvature can then be stored in a curve database 725. In one embodiment, curves near zero curvature can be identified and stored, wherein the system can then proceed to determine a tool having a tool curvature that matches the selected near-zero curvature curve. That is, a matching component 730 can receive as input a set of curves from the curve database 725 or directly from the curvature calculator component 720 and a set of available machining tools from the tool database 735 to then match the selected curve to the tool, or vice versa, match the tool from the available tools to the selected curve. The matched tool and curvature may then be transmitted to a tool path calculator component 740, which is configured to determine a side milling tool path based on the matched tool and its cutting characteristics and the pseudo-ruled sections (or sub-sections) on the surface. Figure 7 Not shown in , a tool path validator component may be executed to validate the determined and calculated tool path and ensure that there are no collisions or other problems with the tool path during execution. The system may then output a tool path 750 for a cutting tool of a CNC machine.
[0076] The above disclosed embodiments may include embodiments of a method for determining a machining tool path, such as Figure 8As shown in the top-level flowchart of . These steps may include the following steps: (a) selecting a workpiece to be machined by a computer numerical control (CNC) machine by a computing device having a processor including an addressable memory, wherein the workpiece has a set of one or more non-straight surfaces (step 810); (b) determining a sub-region of the set of one or more non-straight surfaces having a set of curves, wherein the set of curves has pseudo-straight properties, wherein the pseudo-straight properties are a set of properties associated with the surface and are determined based on evaluating Gaussian curvature of the set of curves and a set of criteria (step 820); (c) determining a direction for each curve in the set of curves of the determined sub-region, wherein the direction minimizes a normal curve of the set of curves. (d) identifying a subset of curves having near-zero curvature from the set of curves, the subset of curves being determined as directions having the absolute value of the normal curvature minimized, the identification being based on whether the determined direction is negative, zero, or positive within a predetermined threshold (step 840); and (e) selecting a side milling cutting tool from a set of available tools based on matching the curvature of the identified subset of curves with the curvature of a side milling cutting tool in a set of available tools (step 850); and (f) determining a tool path for the side milling cutting tool based on matching the selected side milling cutting tool having a tool curvature with the curvature of the identified subset of curves (step 860). Optionally, the method may perform the following steps: (g) verifying the determined tool path for the side milling cutting tool to ensure that there is no collision and tolerance exceeding interference with the target surface (step 870).
[0077] Fig. 9A top-level functional block diagram of a computing device system 900 in a computer aided manufacturing (CAM) environment is shown. An example operating environment is shown as a computing device 920, which includes a processor 924 (such as a central processing unit (CPU)), an addressable memory 927, an external device interface 926 (e.g., an optional universal serial bus port and associated processing), and / or an Ethernet port and associated processing, and an optional user interface 929 (e.g., an array of status lights and one or more toggle switches, and / or a display, and / or a keyboard and / or a pointer-mouse system and / or a touch screen). Optionally, the addressable memory may include any type of computer-readable medium that can store data accessible by the computing device 920, such as a magnetic hard drive and floppy disk drive, an optical drive, a tape cassette, a tape drive, a flash memory card, a digital video disk (DVD), a Bernoulli cartridge, RAM, ROM, a smart card, etc. In fact, any medium for storing or transmitting computer-readable instructions and data can be used, including a connection port to a network (such as a LAN, WAN or the Internet) or a node on a network. These elements may communicate with each other via a data bus 928. In some embodiments, via an operating system 925 (such as an operating system supporting a web browser 923 and applications 922), the processor 924 may be configured to perform steps of the process of establishing communication channels and processing according to the above embodiments.
[0078] Fig.10 A graphical representation of a surface flattest line CAD / CAM method 1000 for identifying and generating a curve on an un-straightened target surface (S) that is closest to a straight line is shown. The figure includes two separate computer-generated images depicting the steps involved in the method.
[0079] In the first image, the target surface (S) is presented, and a point P on the surface is identified. For each point P on the surface, its Gaussian curvature (K_P) is calculated. If K_P is non-positive, this indicates that there is a normal segment with zero curvature. A small step (d) is taken along the corresponding tangent (t_0), such as a portion of the tolerance of the cutting strategy, to reach a new point Q, which can be expressed as Q=P+d*t_0. The tangent t_0 is calculated using the equation K1*cos^2(Phi)+K2*sin^2(Phi)=0, which has a solution of angle Phi because K1 is opposite in sign to K2 (or one of K1 and K2 is zero). When a step is taken along the tangent plane of the surface (S) at point P, the step will generally move Q away from the surface. To address this issue, Q is projected back onto the surface (S) using the surface minimum distance calculation, resulting in a new point M shown in green.
[0080] If M lies on S again, the above process can be repeated by recalculating the Gaussian curvature kM and moving again by another step size, thereby calculating the points M1, M2, etc. Such a sequential collection of points can be used to determine a piecewise linear curve (the smaller the step size d, the more accurate the curve): if all points P, M, M1, M2 of the surface S produce negative Gaussian curvature, then the method simply produces the so-called asymptotes of S, i.e., the curves joining the points on S with zero normal curvature (asymptotes do not generally need to be straight lines: they will be straight only if S is ruled).
[0081] Fig.11 A flattest line CAD / CAM method 1100 is shown that focuses on a generalization of the concept of asymptotes to accommodate surfaces having positive Gaussian curvature at some points. The method continues from point M obtained in the previous step. The Gaussian curvature (K_M) is recalculated, and a check is performed to determine if K_M is positive, indicating that the principal curvatures K1 and K2 have the same sign. In this case, the equation K1*cos^2(Phi)+K2*sin^2(Phi)=0 has no solution for Phi, which means that the tangent vector (T_0) used in the previous step must be replaced by a different vector.
[0082] The two possible replacement vectors are T1 and T2, which correspond to the principal directions associated with K1 and K2, respectively. If the absolute value of K1 is less than or equal to the absolute value of K2, the method chooses T1, otherwise it chooses T2. Essentially, the goal is to walk along a direction that is very similar to the direction of zero curvature, which would be the case if the surface was accurately ruled.
[0083] The method combines the concepts of asymptotes (curves with zero normal curvature at the points where the surface joins, which only exist if the Gaussian curvature is non-positive) and lines of curvature (curves with minimum curvature at the points where the surface joins, which always exist regardless of the sign of the Gaussian curvature if the surface is smooth). Using this method, the method calculates subsequent points M1, M2, etc., ultimately generating a curve on the surface (S) that is as close to a ruled line as possible. The smaller the step size d, the smoother the resulting curve.
[0084] Implementations of the Flattest Line CAD / CAM method allow for the identification and generation of nearly ruled curves on surfaces that may have regions of positive Gaussian curvature, thereby extending the applicability of the method to a wider range of target surfaces.
[0085] exist FIG. 12A to FIG. 12B, two images are presented to illustrate the concept and utility of the flattest line CAD / CAM method for an almost ruled surface 1200. In both images, the surface is depicted as having a series of points labeled P, M0, M1, ..., Mh. These points represent the curve generated by the flattest line method because it identifies a set of consecutive points on the surface that are closest to a straight line. Point P can serve as a "source point" for calculating the flattest line: the choice of P as the initial point is typically at the boundary of the surface S or at some reference curve located on S. In one example, P can be interactively selected by the software user.
[0086] Fig. 12A The graph of shows the curve formed by the points P, M0, M1, ..., Mh as a dashed line. This curve is a piecewise linear approximation of the flattest line starting from P; the accuracy of the approximation depends on the choice of the step size d mentioned above, which does not have to be a constant value but can be varied dynamically to achieve any desired accuracy. This curve is the result of the flattest line method, which aims to approximate the ideal straight grain of the surface.
[0087] Fig. 12B The image of presents the same curve and series of points, but with an additional line 1210 superimposed on the dashed line. Line 1210 represents a linear fit that minimizes the sum of the squared distances from the points (P, M0, M1, ..., Mh) to the fitted line. In some embodiments, this linear fit is an example of how to evaluate the quality of the flattest line.
[0088] It should be noted that the flattest line method is specifically contemplated for nearly ruled surfaces. It will not be applicable to general surfaces that are far from ruled, such as spherical, elliptical, or toroidal surfaces. However, for nearly ruled surfaces, this method produces a curve that is closest to a straight line and provides a valuable means of approximating ruled surfaces for machining purposes.
[0089] If the maximum distance from any of the points (P, M0, M1, ..., Mh) to the fitted line 1210 is less than the cyclic tolerance, the line 1210 can be considered as a valid ruled approximation of the target surface. This approximation can be used for flat milling operations, and the ruled lines generated by this method can be used as geometric input for the machining process.
[0090] In this embodiment, the steps in the iterative calculation of M, M1, M2, ..., Mh on S can be performed until a piecewise linear curve is generated on the surface S, which is called the flattest line because it connects the points on S with the minimum absolute value of curvature. That is, the flattest line is the geometric entity that is closest to the straight grain that can be found on S starting at point P, and is calculated by mixing the concepts of asymptotes and curvature lines: in the case of an exactly ruled surface, the method simply retrieves the straight grain that passes through P. The linear fit of the points P, M, M1, M2, ..., Mh (obtained by standard point fitting techniques) can quantify the distance of the flattest line from the true straight grain as the maximum value of the distances of the points P, M, M1, M2, ..., Mh from the linear fit line. Therefore, the flattest line method can be performed when generating a curve that is very close to the ideal straight grain for a nearly ruled surface, and provides a method to evaluate the quality of the generated line for machining applications.
[0091] Fig.13 The use of arc fitting 1300 to determine the suitability of a target surface for side milling by a cutting tool with curved sides (such as a barrel tool) is shown. The image depicts a surface with a series of points labeled P, M0, M1, ..., Mk. These points represent a curve generated by the flattest line method because it identifies the points on the surface that are closest to a straight line.
[0092] As shown, these points are connected by a dashed line, representing the curve formed on the surface by the flattest line method. Superimposed on this dashed line is a line 1310 representing a circular arc fit of radius R. Line 1310 serves as an approximation of the curve using a circular arc, whose radius is "R".
[0093] If the arc (line 1310) is able to fit a series of points (P, M0, M1, ..., Mk) within a tight tolerance (e.g., part of the tolerance of the cutting strategy), this indicates that the target surface is suitable for side milling using a cutting tool with curved sides (such as a barrel tool). In this case, the radius of curvature of the side of the barrel tool can be selected based on the radius "R" of the fitted arc. Ideally, the two radii should be equal for optimal contact during machining. However, in practice, it may be preferred to adjust the side radius of the barrel cutting tool to a value slightly lower than "R" to take into account various factors.
[0094] Furthermore, the concept can be generalized beyond simple circular arcs to double arcs (a pair of arcs with different radii joined with tangent continuity), multiple arcs (multiple arcs joined together), or even different fitted curves, such as clothoids. Clothoids are curves with the property that the curvature is linearly related to the arc length, making them widely used as transition curves in various applications, including railway engineering.
[0095] Thus, embodiments of the present invention demonstrate the utility of arc fitting in assessing the suitability of a surface for side milling with a curved side cutting tool and highlight the flexibility of considering various arcs and curve fits to achieve optimal machining results.
[0096] Fig.14 An example of achieving the best local curvature match between the cutting tool and the target surface when applying side milling on the target surface using a barrel-shaped tool with curved sides 1400 is shown. The target surface is the same as in the previous figures and is depicted by a series of points labeled P, M0, M1, ..., Mk. These points represent the curve generated by the flattest line method because it identifies the points on the surface that are closest to a straight line. The points are connected by dotted lines, representing the curve formed by the flattest line method on the surface.
[0097] Superimposed on this dashed line is a wireframe illustration of a barrel tool with curved sides. The curved sides of the barrel tool are shown with a radius of curvature labeled "R". The barrel tool is oriented so that its curved sides are aligned with a series of points (P, M0, M1, ..., Mk) and positioned to perform side milling operations on the surface. In this way, the system can predict the size of the barrel cutter that is best suited to machine those specific surfaces with respect to the match between the cutting tool and the target surface with respect to scallop height and curvature.
[0098] FIG. 15A to FIG. 15C An example of a series of patterns 1500 on a target surface generated by a flattest line method that can be used as a side milling pattern (as opposed to a standard geometric pattern used as a point milling pattern) to mill the target surface. The radius "R" of the curved side of the barrel tool can be selected based on the radius of the arc being fitted, such as Fig.14 Alignment of a barrel tool along a curve enables efficient and accurate machining of surfaces where the curved sides of the tool follow near zero curvature contours.
[0099] FIG. 15A to FIG. 15C An example of the actual calculation of the progressive results of the flattest line method for further side milling operations on a surface that may not be exactly ruled, but almost ruled or pseudo-ruled, is visually depicted. Each flattest line shown has a source point located on a curve forming a boundary of the target surface (i.e., at Figures 11 to 14 The point marked with “P” in the figure).
[0100] FIG. 16A to FIG. 16B are natural realizations of the flattest lines 1600 of the unfolding, as they provide insight into the evolutionary nature of the algorithm. Fig.16AThe first flattest line produced by the algorithm is shown, where the "source point" is located on the "base-curve" 1620; by comparing Fig.16A and Fig. 16B (as well as Fig.15A and Fig. 15B and Fig. 15C ), they show how source points are generated sequentially along the base arc 1620, and how the entire surface area to be machined is thus gradually filled with the flattest line generated at each source point; for the CAM user expert, this process clearly "mimics" the behavior of the ruled surface for 5-axis side milling machining; finally, Fig. 16B The entirety of the flattest lines is shown and how they represent a valuable (due to the different geometrical information each of them carries) pattern covering the surface area to be machined.
[0101] These lines represent the closest representation to a ruled surface that can be extracted from the original surface. Each line corresponds to a path that can be used for a side milling operation on the surface. In traditional machining practice, a standard warp cycle would reject that the original yellow surface is not accurately ruled; however, the flattest line calculation method enables the generation of a path for efficiently machining such a surface.
[0102] The potential applications of the flattest line method extend beyond subtractive manufacturing and include additive manufacturing processes. In the context of additive manufacturing, the flattest line algorithm can provide an alternative to extrusion directions for non-developable surfaces, providing valuable guidance for manufacturing parts with complex geometric features. In addition, the flattest line method enables the development of an automatic program that recommends the best cutting tool for a specific target part. By predicting the optimal size of the barrel cutter and optimizing factors such as stub height and curvature matching, the automatic program eliminates the need for trial and error, thereby improving machining efficiency.
[0103] In the disclosed embodiments, the slightly unruled target surface (family of flattest lines) represents a physical measure of how far the target surface is from being accurately ruled, and provides the best surrogate for ruled grains (with respect to the physical distance measure), in the sense that the flattest lines are the family of geometric entities that are closest to ruled grains that can be found on the target surface. Additionally, the disclosed methods and systems can improve the subtractive machinability of surfaces that are already accurately ruled when their parameterizations are not aligned with ruled grains. In summary, the flattest line method provides a significant advancement in subtractive and additive manufacturing, providing accurate machining results and expanding the range of machinable shapes with complex geometric features.
[0104] Fig.171700 is a high-level block diagram of a computing system including a computer system for implementing embodiments of the systems and processes disclosed herein. Embodiments of the system can be implemented in different computing environments. The computer system includes one or more processors 1702, and may also include an electronic display device 1704 (e.g., for displaying graphics, text, and other data), a main memory 1706 (e.g., a random access memory (RAM)), a storage device 1708, a removable storage device 1710 (e.g., a removable storage drive, a removable memory module, a tape drive, an optical drive, a computer-readable medium in which computer software and / or data are stored), a user interface device 1711 (e.g., a keyboard, a touch screen, a keypad, a pointing device) and a communication interface 1712 (e.g., a modem, a network interface (such as an Ethernet card), a communication port or a PCMCIA slot and card). The communication interface 1712 allows software and data to be transmitted between the computer system and external devices. The system also includes a communication infrastructure 1714 (e.g., a communication bus, a crossbar, or a network), and the above-mentioned devices / modules are connected to the communication infrastructure 1714 as shown in the figure.
[0105] Information transmitted via the communication interface 1712 may be in the form of signals, such as electronic, electromagnetic, optical, or other signals that can be received by the communication interface 1712 via a signal-carrying communication link 1716, and may be implemented using wire or cable, optical fiber, telephone line, cellular / mobile phone link, radio frequency (RF) link, and / or other communication channels. The computer program instructions representing the block diagrams and / or flow charts herein may be loaded onto a computer, programmable data processing apparatus, or processing device to cause a series of operations executed thereon to produce a computer-implemented process.
[0106] Embodiments have been described with reference to flowcharts and / or block diagrams of methods, devices (systems) and computer program products according to embodiments. Each block of such diagrams / graphs or a combination thereof may be implemented by computer program instructions. The computer program instructions produce a machine when provided to a processor so that instructions executed by the processor create a device for implementing the functions / operations specified in the flowcharts and / or block diagrams. Each block in the flowchart / block diagram may represent a hardware and / or software module or logic that implements the embodiment. In alternative implementations, the functions marked in the blocks may not occur in the order marked in the accompanying drawings, may occur simultaneously, etc.
[0107] The computer program (i.e., computer control logic) is stored in the main memory and / or the secondary memory. The computer program may also be received via the communication interface 1712. Such a computer program, when executed, enables the computer system to perform the features of the embodiments as discussed herein. In particular, the computer program, when executed, enables the processor and / or multi-core processor to perform the features of the computer system. Such a computer program represents a controller of the computer system.
[0108] Fig.18 A block diagram of an example system 1800 in which embodiments may be implemented is shown. The system 1800 includes one or more client devices 1801, such as consumer electronic devices, connected to one or more server computing systems 1830. The server 1830 includes a bus 1802 or other communication mechanism for communicating information, and a processor (CPU) 1804 coupled to the bus 1802 for processing information. The server 1830 also includes a main memory 1806, such as a random access memory (RAM) or other dynamic storage device, coupled to the bus 1802 for storing information and instructions to be executed by the processor 1804. The main memory 1806 may also be used to store temporary variables or other intermediate information during execution or instructions to be executed by the processor 1804. The server computing system 1830 also includes a read-only memory (ROM) 1808 or other static storage device coupled to the bus 1802 for storing static information and instructions for the processor 1804. A storage device 1810, such as a magnetic disk or optical disk, is provided and coupled to the bus 1802 for storing information and instructions. The bus 1802 may include, for example, thirty-two address lines for addressing video memory or main memory 1806. The bus 1802 may also include, for example, a 32-bit data bus for transferring data between and among components such as the CPU 1804, main memory 1806, video memory, and storage devices 1810. Alternatively, multiplexed data / address lines may be used in place of separate data and address lines.
[0109] The server 1830 may be coupled to a display 1812 via the bus 1802 for displaying information to a computer user. An input device 1814 including alphanumeric and other keys is coupled to the bus 1802 for communicating information and command selections to the processor 1804. Another type or user input device includes a cursor control 1816 (such as a mouse, trackball, or cursor direction keys) for communicating direction information and command selections to the processor 1804 and for controlling cursor movement on the display 1812.
[0110] According to one embodiment, the functions are performed by the processor 1804 executing one or more sequences of one or more instructions contained in the main memory 1806. Such instructions may be read into the main memory 1806 from another computer-readable medium, such as the storage device 1810. Execution of the sequences of instructions contained in the main memory 1806 causes the processor 1804 to perform the process steps described herein. One or more processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in the main memory 1806. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the embodiments. Therefore, the embodiments are not limited to any specific combination of hardware circuitry and software.
[0111] The terms "computer program medium", "computer usable medium", "computer readable medium" and "computer program product" are generally used to refer to media such as main memory, auxiliary memory, removable storage drive, hard disk installed in hard drive, and signal. These computer program products are devices for providing software to computer systems. Computer readable media allow computer systems to read data, instructions, messages or message packets and other computer readable information from computer readable media. Computer readable media can include, for example, non-volatile memory, such as floppy disks, ROMs, flash memory, disk drive memory, CD-ROMs and other permanent storage devices. For example, it is useful to transmit information such as data and computer instructions between computer systems. In addition, computer readable media can include computer readable information in transient media such as network links and / or network interfaces, including wired networks or wireless networks that allow computers to read such computer readable information. Computer programs (also called computer control logic) are stored in main memory and / or auxiliary memory. Computer programs can also be received via a communication interface. Such computer programs, when executed, enable a computer system to perform the features of the embodiments as discussed herein. In particular, the computer program, when executed, enables a processor, which may be a multi-core processor, to perform the features of the computer system. Such computer programs therefore represent controllers of the computer system.
[0112] In general, the term "computer-readable medium" as used herein refers to any medium that participates in providing instructions to processor 1804 for execution. Such media may take a variety of forms, including, but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media include, for example, optical or magnetic disks, such as storage device 1810. Volatile media include dynamic memory, such as main memory 1806. Transmission media include coaxial cables, copper wire, and optical fiber, including the wires that make up bus 1802. Transmission media may also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.
[0113] Common forms of computer readable media include, for example, a floppy disk, a flexible disk, a hard disk, magnetic tape or any other magnetic medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with a pattern of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described below, or any other medium from which a computer can read.
[0114] Various forms of computer-readable media may be involved in carrying one or more sequences of one or more instructions to the processor 1804 for execution. For example, the instructions may initially be carried on a disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. The modem local to the server 1830 can receive the data on the telephone line and convert the data into an infrared signal using an infrared transmitter. An infrared detector connected to the bus 1802 can receive the data carried in the infrared signal and place the data on the bus 1802. The bus 1802 carries the data to the main memory 1806, from which the processor 1804 retrieves and executes the instructions. The instructions received from the main memory 1806 may optionally be stored on the storage device 1810 before or after being executed by the processor 1804.
[0115] The server 1830 also includes a communication interface 1818 coupled to the bus 1802. The communication interface 1818 provides a two-way data communication connection to a network link 1820, which is connected to the global packet data communication network now commonly referred to as the Internet 1828. The Internet 1828 uses electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on the network link 1820 and through the communication interface 1818 (which carry the digital data to and from the server 1830) are exemplary forms of transporting information or carrier waves.
[0116] In another embodiment of the server 1830, the communication interface 1818 is connected to the network 1822 via the communication link 1820. For example, the communication interface 1818 can be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line, which can include a portion of the network link 1820. As another example, the communication interface 1818 can be a local area network (LAN) card to provide a data communication connection to a compatible LAN. A wireless link can also be implemented. In any such implementation, the communication interface 1818 sends and receives electrical, electromagnetic, or optical signals that carry digital data streams representing various types of information.
[0117] The network link 1820 typically provides data communication to other data devices through one or more networks. For example, the network link 1820 can provide a connection to a host computer 1824 or to a data device operated by an Internet Service Provider (ISP) through a local network 1822. The ISP in turn provides data communication services through the Internet 1828. Both the local network 1822 and the Internet 1828 use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on the network link 1820 and through the communication interface 1818 (which carry digital data to and from the server 1830) are exemplary forms or carrier waves of transmitted information.
[0118] Server 1830 can send / receive messages and data, including email, program code, through the network, network link 1820, and communication interface 1818. In addition, communication interface 1818 may include a USB / tuner, and network link 1820 may be an antenna or cable for connecting server 1830 to a cable provider, satellite provider, or other terrestrial transmission system for receiving messages, data, and program code from another source.
[0119] The example versions of the embodiments described herein may be implemented as logical operations in a distributed processing system, such as a system 1800 including a server 1830. The logical operations of the embodiments may be implemented as a series of steps performed in the server 1830 and implemented as interconnected machine modules within the system 1800. The implementation is a matter of choice and may depend on the performance of the system 1800 implementing the embodiments. Accordingly, the logical operations making up the example versions of the embodiments are referred to as, for example, operations, steps, or modules.
[0120] Similar to the server 1830 described above, the client device 1801 may include a processor, memory, storage device, display, input device, and a communication interface (e.g., an email interface) for connecting the client device to the Internet 1828, ISP or LAN 1822 to communicate with the server 1830.
[0121] The system 1800 may also include computers (eg, personal computers, computing nodes) 1805 that operate in the same manner as the client device 1801 , wherein a user may utilize one or more computers 1805 to manage data in the server 1830 .
[0122] Reference now Fig.19, depicts an exemplary cloud computing environment 50. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10, and local computing devices used by cloud consumers (e.g., personal digital assistants (PDAs), smart phones, smart watches, set-top boxes, video game systems, tablets, mobile computing devices or cellular phones 54A, desktop computers 54B, laptop computers 54C, and / or automotive computer systems 54N) can communicate with the cloud computing nodes 10. The nodes 10 can communicate with each other. They can be physically or virtually grouped (not shown) in one or more networks, such as private, community, public, or hybrid clouds, or a combination thereof, as described above. This allows the cloud computing environment 50 to provide infrastructure, platform, and / or software as a service for which cloud consumers do not need to maintain resources on local computing devices. It should be understood that Fig.19 The types of computing devices 54A-N shown in are intended to be illustrative only, and computing node 10 and cloud computing environment 50 may communicate with any type of computerized device over any type of network and / or network addressable connection (eg, using a web browser).
[0123] It is contemplated that various combinations and / or sub-combinations of the specific features and aspects of the above-described embodiments may be made and still fall within the scope of the present invention. Therefore, it should be understood that the various features and aspects of the disclosed embodiments may be combined or substituted with one another to form different modes of the disclosed invention. Furthermore, the scope of the present invention is intended to be disclosed herein by way of example and should not be limited by the above-described specific disclosed embodiments.
Claims
1. A method, comprising: selecting a workpiece to be machined, wherein the workpiece has a set of one or more non-straight-grained surfaces; determining a sub-region of the set of one or more unruled surfaces having a set of curves, wherein the set of curves has pseudo-ruled properties, wherein the pseudo-ruled properties are a set of properties associated with the surface and determined based on evaluating Gaussian curvature of the set of curves and a set of criteria; determining a direction of each curve in the set of curves of the determined sub-region, wherein the direction minimizes an absolute value of a normal curvature of the set of curves and corresponds to a contour line exhibiting a curvature close to zero on the determined sub-region; identifying a subset of curves having near zero curvature from the set of curves determined to have directions that minimize an absolute value of normal curvature, the identifying being based on whether the determined directions are negative, zero, or positive within a threshold; selecting a side milling cutting tool from a set of available tools based on matching the curvature of the identified subset of curves to a curvature of a side milling cutting tool in the set of available tools; and A tool path for the side milling cutting tool is determined based on the selected side milling cutting tool having a tool curvature and the curvature of the identified subset of curves.
2. The method according to claim 1, wherein: The set of criteria is based on identifying the sub-region as at least one of: a surface that is not an exactly ruled surface and a surface that is not a far from ruled surface.
3. The method according to claim 1, further comprising: The set of one or more unruled surfaces is examined for pseudo-ruled properties.
4. The method according to claim 1, further comprising: The determined tool path for the side milling cutting tool is verified to ensure that the tool path has no collision and tolerance exceeding interference with the surface.
5. The method according to claim 1, wherein: The direction varies slightly from point to point and is determined by stepping in the calculated direction, wherein at each step the curvature is again checked to be at least one of: non-positive and positive not exceeding a specified positive physical threshold.
6. The method according to claim 5, wherein: The threshold is based on a machining tolerance, wherein the machining tolerance is based on a machining capability of the machine, wherein the machine is incapable of side milling beyond the threshold.
7. The method according to claim 6, wherein: The threshold is adjusted based on a side milling stage, wherein the stage is at least one of: a roughing stage, a semi-finishing stage, and a finishing stage.
8. The method according to claim 1, wherein: Matching the curvature of the identified subset of curves to the curvature of the side milling cutting tool ensures that the selected tool effectively machines the surface while minimizing deviations from a desired curvature profile.
9. The method according to claim 1, further comprising: The determined tool path for the side milling cutting tool is output as one or more machine instructions.
10. The method according to claim 9, wherein: Determining a tool path for the side milling cutting tool is also based on following the near zero curvature contour.
11. An apparatus for generating instructions for a five-axis machining tool, the apparatus having a processor and an addressable memory, the processor being configured to: Select the workpiece to be processed, where: The workpiece has a set of one or more non-ruled surfaces; determining a subregion of the set of one or more unruled surfaces having a set of curves, wherein the set of curves has pseudo-ruled properties, wherein the pseudo-ruled properties are a set of properties associated with the surface and determined based on an evaluation of Gaussian curvature of the set of curves and a set of criteria; Determining the direction of each curve in the set of curves of the determined sub-region, wherein the direction minimizes the absolute value of the normal curvature of the set of curves and corresponds to a contour line exhibiting a curvature close to zero on the determined sub-region; identifying a subset of curves having near zero curvature from the set of curves determined to have directions that minimize the absolute value of normal curvature, and configured to identify based on whether the determined direction is negative, zero, or positive within a threshold; selecting a side milling cutting tool from a set of available tools based on matching the curvature of the identified subset of curves to a curvature of a side milling cutting tool in the set of available tools; and A tool path for the side milling cutting tool is determined based on the selected side milling cutting tool having a tool curvature and the curvature of the identified subset of curves.
12. The device according to claim 11, wherein The threshold is based on a machining tolerance, wherein the tolerance is based on the machining capabilities of the machine, wherein the machine is unable to side mill beyond the threshold.
13. The device according to claim 11, wherein: Matching the curvature of the identified subset of curves to the curvature of the side milling cutting tool ensures that the selected tool effectively machines the surface while minimizing deviations from a desired curvature profile.
14. The device according to claim 11, wherein: The processor is further configured to: The determined tool path for the side milling cutting tool is verified to ensure that the tool path has no collision and tolerance exceeding interference with the surface.
15. The apparatus according to claim 11, wherein: The side milling cutting tool is a barrel-shaped cutting tool.