A four-axis rough machining method for columnar parts based on discrete subdivision slices
By using a discrete subdivision slicing method and leveraging interval trees and the OpenCascade library to generate tooling trajectories, the problem of efficient machining of complex cylindrical workpieces was solved, improving computational efficiency and accuracy.
Patent Information
- Application Number
- CN202510085650.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-01-20
- Publication Date
- 2025-11-18
- Estimated Expiration
- 2045-01-20
AI Technical Summary
Existing technologies for machining complex cylindrical workpieces involve large computational loads, long processing times, and unsatisfactory accuracy, lacking a universal and efficient four-axis roughing method.
A discrete subdivision slicing method is adopted, which uses interval trees to gradually subdivide the slicing space. The OpenCascade library is used to perform bias and Boolean difference operations to calculate the slicing results of the workpiece and blank, and generate the tool machining trajectory.
It enables efficient calculation of the machining area of cylindrical workpieces, reduces the amount of calculation, and improves machining efficiency and accuracy, making it suitable for machining complex impeller-like parts.
Smart Images

Figure CN119937464B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The application belongs to the technical field of computer aided manufacturing (CAM), and particularly relates to a four-axis rough machining method for columnar parts based on discrete subdivision slicing. BACKGROUND
[0002] Cylinder blank type workpieces are widely used in the field of mechanical manufacturing, such as molecular pump rotors, aero-engine impellers, and air vacuum pump impellers. Such parts often have high surface precision requirements and dynamic balance requirements, and the curved surface modeling is complex, so it is difficult to process and needs to be milled by a four-axis or more numerical control machining center.
[0003] The processing characteristics of these workpieces are that the processing flow channel is narrow, the cutting depth is deep, and the bottom of the processing flow channel is the outer cylindrical surface of the hub, so the material needs to be removed layer by layer along the radial direction of the workpiece when rough machining is performed along a direction close to the vertical direction of the axial direction. How to quickly and efficiently calculate the processing area of each layer is a crucial problem in processing such parts.
[0004] In the currently disclosed patents of part milling rough machining methods, most of them are only rough machining methods for a certain specific workpiece. There are very few discussions on general rough machining methods for cylindrical workpieces. For complex workpieces, the generation of the machining track is usually obtained by solving the intersection line of the offset surface, which has the problems of large calculation amount, long time consumption, and unsatisfactory calculation precision. These factors limit the processing and manufacturing of complex impeller type parts. SUMMARY
[0005] To solve the existing problems, a four-axis rough machining method for columnar parts based on discrete subdivision slicing is proposed. The method realizes the step-by-step subdivision of the slicing space based on the interval tree, realizes the rapid division of the triangular facet, and obtains the planar slicing result of the model. The slicing results of the workpiece and the blank are respectively offset outward and inward based on the offset function of OpenCascade, and the processing area in the slicing plane is obtained. A set of coaxial cylindrical surfaces is constructed, and a plurality of tool machining tracks are calculated by intersecting the planar machining area. The intersection results of the same cylindrical surface and the planar machining area are organized, and the tool machining track of a certain cutting layer is planned.
[0006] A four-axis rough machining method for columnar parts based on discrete subdivision slicing includes: constructing a slicing plane with a tool path interval as an interval, slicing the blank and the workpiece by using a discrete subdivision slicing method to obtain the processing area on different slicing surfaces; constructing a cylindrical surface with a cutting depth as an interval, and performing intersection calculation with the processing area on different slicing layers to obtain a tool machining track line; and connecting the machining tracks of the same cutting layer at the head and tail, respectively, to obtain a tool path.
[0007] A kind of columnar part four-axis rough machining method based on discrete subdivision slice, comprising the following steps:
[0008] (1) in the height direction of workpiece, construct slice plane, utilize slice plane to separate and slice blank and workpiece, obtain the slice result of all slice planes;
[0009] (2) for any slice plane, respectively bias the slice result of blank and workpiece inwards and outwards, obtain the machining area of all slice planes;
[0010] (3) with the axis of workpiece as the axle, construct a group of coaxial cylindrical surfaces, for any cylindrical surface, traverse the machining area of each slice plane, calculate the intersection line of cylindrical surface and machining area, obtain each row cutter track line on the cutting layer;
[0011] (4) connect the head and tail of each row track line on all cylindrical surfaces respectively, obtain the cutter track of all cutting layers.
[0012] In step (1), the slice thickness of separating and slicing blank and workpiece is tool machining row distance. More specifically, blank and workpiece are separated and sliced in the height direction of workpiece. In actual processing, generally cylindrical end mill is used for processing, according to the processing workpiece, appropriate tool diameter d is selected artificially, tool feed row distance h is determined according to the percentage a of tool diameter, h=da. Adjust the model pose angle, so that the XOY plane in the model bottom surface space coordinate system is attached. Traverse all triangular facet vertices of the model, determine the maximum height H of the model max , construct a group of slice planes parallel to XOY plane with height range of 0~H max , the distance between adjacent planes can be selected equidistant.
[0013] The specific steps in step (1) are as follows:
[0014] (1-1) according to the height value of slice plane, construct multiple slice intervals;
[0015] (1-2) according to the height range of triangular facet and the constructed slice interval, interval division is carried out on all triangular facets in tree structure;
[0016] (1-3) for any slice plane, the intersection calculation is carried out on the triangular facets in its corresponding adjacent slice interval, the obtained contour is the slice result of this layer, and finally the slice result of all slice planes is obtained.
[0017] Further, the height values of two slice planes with adjacent height in step (1-1) constitute a single interval;In step (1-2), the maximum height value point in triangular facet is used for interval division.
[0018] Furthermore, in steps (1-3), the intersection of the sliced plane slice and the triangular facet yields a set of scattered line segments. By finding line segments with common endpoints, the line segments are spliced together to obtain one or more contours. If there are multiple contours, the inner contour and outer contour are determined.
[0019] More specifically, the method for slicing blanks or workpieces employs a rapid slicing method using discrete subdivision of the slicing plane. The specific steps are as follows:
[0020] 1) Based on the height values h0, h1, h2, ..., h of the slice plane N Construct a set of intervals: {[h0,h1],[h1,h2],……[h N-1 ,h N ]};
[0021] 2) Store the slice intervals in a tree structure. First, create an initial root node root representing [h0, h... N ], range, add all triangular faces of the model to be sliced to the root node range;
[0022] 3) Create child node intervals. Traverse the triangular faces within the root node interval. If the height range occupied by a face intersects with the child node interval, add it to the current child node, thus completing the subdivision of the triangular faces within the root node interval;
[0023] 4) Continuously subdivide the triangular facets until the interval of the child node is a single interval that cannot be further divided, thus completing the interval division of all triangular facets.
[0024] 5) For a slice plane with a slice height of hi, select the triangular facets in the interval [hi-1,hi] and [hi,hi+1] (when i=0 or N, only select the single existing interval) to complete the intersection calculation. The resulting contour is the slice result of this layer.
[0025] 6) Following step 5), traverse all slicing planes to complete the discrete subdivision and fast slicing of the model to be sliced.
[0026] Preferably, in step 2) or step (1-2), a binary interval tree structure is used, and the correspondence between nodes and triangular faces is implemented through a dictionary data structure. While creating the initial root node, a dictionary T_map is created that associates nodes with triangular faces. The key is the node index of each node, and the value is the index of the triangular face within that range.
[0027] Preferably, in step 3), based on the root node T i Create two child nodes T in the interval tree. 2i+1 and T 2i+2 The root node contains the interval T.i The .Interval binary search yields the interval T contained in the two child nodes. 2i+1 Interval and T 2i+ 2. Interval. Sort the triangles T_map[i] associated with the root node in ascending order by their maximum height value Triangle.Zmax, and find the triangle whose maximum height value is in T_map[i]. 2i+1 All triangles within the interval are added to T_map[2i+1]; the remaining triangles in T_map[i] are added to T_map[2i+2].
[0028] In step 4), a single interval that cannot be further divided refers to an interval in Intervals that is formed by the heights of two adjacent slices.
[0029] Preferably, in step 5), the intersection of the sliced plane and the triangular facet yields a set of scattered line segments. These segments are then joined together by finding segments with common endpoints to obtain one or more contours. If there are multiple contours, a ray is constructed by selecting a point on the contour, and the intersection of the ray and the line segments is calculated.
[0030] If the number of intersection points is odd, then the contour is determined to be an inner contour;
[0031] If the number of intersection points is even, then the contour is determined to be an outer contour.
[0032] Step (2): For any plane, offset the slicing results of the blank and the workpiece respectively. The processing area on each slicing plane is constructed by the contour obtained by offsetting the blank slicing result inward and the contour obtained by offsetting the workpiece slicing result outward. Traverse the slicing results of all slicing layers and offset to obtain the processing area of all slicing planes.
[0033] In step (2), the offset and Boolean difference operations of the slice contours of the blank and the workpiece are implemented based on the OpenCascade library. Specifically, the slice contours of the blank and the workpiece are offset inward and outward respectively using the contour offset function BRepOffsetAPI_MakeOffset of the OpenCascade library. The contour of the area to be processed is constructed with the contour of the blank after offset as the outer contour and the contour of the workpiece after offset as the inner contour.
[0034] As a preferred method, the specific steps for calculating the processing area on any slice plane are as follows:
[0035] (2-1) For the rough slice contour RoughPoly, based on the contour offset function BRepOffsetAPI_MakeOffset of the OpenCascade library, RoughPoly is offset inward along the contour curvature by an offset distance d. offset1 This yields the offset contour RoughOffsetPoly;
[0036] (2-2) For the workpiece slice contour WorkPoly, based on the contour offset function BRepOffsetAPI_MakeOffset of OpenCascade, WorkPoly is offset outward along the curvature by an offset distance d. offset2 The offset contour WorkOffsetPoly is obtained;
[0037] (2-3) Construct the contour of the area to be processed by using RoughOffsetPoly as the outer contour and WorkOffsetPoly as the inner contour.
[0038] Step (3): Construct a set of coaxial cylindrical surfaces with the workpiece axis as the axis. For any cylindrical surface, traverse the processing area of each planar slice and calculate the intersection line between the cylindrical surface and the processing area, which is the tool trajectory line of each row on the processing layer. In step (3), the intersection calculation between the cylindrical surface and the processing area is implemented based on the Section intersection function of the OpenCascade library.
[0039] Preferably, the intersection calculation between the cylindrical surface and the machining area is implemented based on the Section intersection function of the OpenCascade library. Using the MakeSurface function of OpenCascade to construct surfaces, a plane ToolSurface with holes and boundaries is constructed using the contour ToolPoly, and its intersection with the cylindrical surface yields the curve aToolPath in three-dimensional space.
[0040] Step (4): Connect the beginning and end of each line of trajectory to obtain the final tool path for machining. Finally, traverse all cylindrical surfaces to obtain the tool path for cutting all cutting layers. Further, in step (4), the connection method of each line of trajectory is that the trajectory starts from the starting point and ends at the ending point in a counterclockwise direction. The ending point of the current trajectory is connected to the ending point of the adjacent previous line of trajectory with a straight line segment, and the starting point is connected to the starting point of the adjacent next line of trajectory with a straight line segment.
[0041] In step (4), the steps to obtain the machining trajectory of any cutting layer are as follows:
[0042] (4-1) For each tool machining trajectory line on any cutting layer, determine whether the tool machining trajectory is a closed contour:
[0043] If the tool path is closed and the beginning and end points of the tool path are the same, select any point on the closed contour;
[0044] If the tool path is not closed, the beginning and end points of the tool path are the starting and ending points of the path line;
[0045] (4-2) The connection method of each line of trajectory is that the trajectory starts from the starting point and ends at the ending point in a counterclockwise direction. For a certain tool machining trajectory, the ending point of the current trajectory is connected to the ending point of the adjacent previous trajectory by a straight line segment, and the starting point is connected to the starting point of the adjacent next trajectory by a straight line segment.
[0046] (4-3) Traverse all machining trajectory lines to obtain the tool machining trajectory of this layer.
[0047] Compared with existing technologies, the advantages of this method are:
[0048] (1) This invention is a CNC roughing layer cutting method based on discrete subdivision slicing. It provides a general layer cutting method for cylindrical blanks. First, the workpiece and blank are sliced, and then the tool machining trajectory under different cutting depths is obtained by calculating the intersection of the machining area obtained by offsetting the cylindrical surface and the slice.
[0049] (2) The slicing method proposed in this paper is efficient. By gradually subdividing the discrete slicing space, it avoids the need to determine the intersection of the slicing face and the triangular face by enumeration and traversal, thereby reducing the amount of computation and improving the efficiency of slicing calculation. Attached Figure Description
[0050] Figure 1 This is a flowchart of a method according to an embodiment of the present invention;
[0051] Figure 2 A schematic diagram of the cutting plane for slicing the workpiece along its height direction;
[0052] Figure 3 The flowchart shows the method for discretizing and subdividing the model.
[0053] Figure 4 A schematic diagram illustrating the method for constructing the processing area;
[0054] Figure 5 This is a schematic diagram illustrating the intersection calculation between the cylindrical surface and the machining area;
[0055] Figure 6 A schematic diagram for obtaining the machining trajectory of any cutting layer;
[0056] Figure 7 To apply the STL model of the blank in Example 1;
[0057] Figure 8The STL model of the workpiece in Example 1 is used;
[0058] Figure 9 This is a visualization of the tool path generated in Application Example 1. Detailed Implementation
[0059] like Figure 1 The flowchart shown is an algorithm flowchart for a four-axis roughing method for cylindrical parts based on discrete subdivision slicing according to the present invention. The specific steps are as follows:
[0060] Step 1: Subdivide and discretize the blank and workpiece in the height direction of the workpiece.
[0061] like Figure 2 As shown, a cylindrical end mill is selected for machining. A suitable tool diameter d is manually selected based on the workpiece. The tool travel distance h is determined as a percentage 'a' of the manually selected tool diameter, where h = da. The model's orientation angle is adjusted to ensure the XOY plane in the model's bottom coordinate system aligns. All vertices of the triangular facets of the model (both the blank and the workpiece) are traversed to determine the maximum height H of the model. max The structural height range is 0 to H. max A set of slice planes parallel to the XOY plane, with a distance h between adjacent planes (equidistant slices are used in this embodiment, but non-equidistant slices can also be used).
[0062] like Figure 3 As shown, the slicing method for blanks or workpieces adopts a rapid slicing method with discrete subdivision of slicing planes. The specific steps are as follows:
[0063] (1) Based on the height values h0, h1, h2, ..., h of the slice plane i ,…,h N Construct a set of intervals: {[h0,h1],[h1,h2],…,[h...} i ,h i+1 ],…[h N-1 ,h N ]}; where h0 is the height value of the slice plane closest to the XOY plane; [h i ,h i+1 ] represents the (i+1)th single interval;
[0064] (2) Store the slice intervals in a tree structure. First, create an initial root node root representing [h0, h N Add all triangular faces of the model to be sliced to the root node interval;
[0065] (3) Create child node intervals. Traverse the triangular faces within the root node interval. If the height range of a face intersects with the child node interval, add it to the current child node, thereby completing the subdivision of the triangular faces within the root node interval;
[0066] (4) Continue to subdivide the triangular facets until the interval of the child node is a single interval that cannot be further divided, and complete the interval division of all triangular facets.
[0067] (5) For a slice with height h i The slicing plane is selected in the interval [h] i-1 ,h i ] and [h i ,h i+1 (When i = 0 or N, only select the existing single interval) to complete the intersection calculation of the triangular facets, and the resulting contour is the slicing result of the layer.
[0068] (6) According to step (5), traverse all slicing planes to complete the discrete subdivision and fast slicing of the model to be sliced.
[0069] In this embodiment, a binary interval tree structure is used, and the correspondence between nodes and triangular faces is implemented through a dictionary data structure. Simultaneously with creating the initial root node, a dictionary T_map is created that associates nodes with triangular faces. The key of T_map is the node index of each node, and the value is the index of the triangular face within that range.
[0070] The specific steps for subdividing the triangular facets of the root node interval are as follows:
[0071] ①Based on root node T i Create two child nodes T in the interval tree. 2i+1 and T 2i+2 ;
[0072] ② The interval T contained in the root node i The `.Interval` binary search returns the intervals contained in the two child nodes.
[0073] T 2i+1 Interval and T 2i+2 .Interval;
[0074] ③ Sort the triangles T_map[i] associated with the root node in ascending order by their maximum height value Triangle.Zmax.
[0075] ④ Locate the maximum height value of the facet in T. 2i+1 Add all triangular faces within the .Interval interval to T_map[2i+1];
[0076] ⑤ Add the remaining triangles in T_map[i] to T_map[2i+2].
[0077] The process involves finding the intersection of a slice of plane and a triangular facet to obtain a set of scattered line segments. These segments are then joined together by finding segments with common endpoints to form one or more contours. If there are multiple contours, a ray is constructed by selecting a point on the contour, and the intersection of the ray with the line segments is calculated.
[0078] If the number of intersection points is odd, then the contour is determined to be an inner contour;
[0079] If the number of intersection points is even, then the contour is determined to be an outer contour.
[0080] Step 2: For any plane, offset the slicing results of the blank and the workpiece respectively. The processing area on each slicing plane is constructed by the contour obtained by offsetting the blank slicing result outward and the contour obtained by offsetting the workpiece slicing result outward.
[0081] like Figure 4 As shown, the specific steps for constructing a processing area on any slice plane are as follows:
[0082] 1) For the rough slice contour RoughPoly, based on the contour offset function BRepOffsetAPI_MakeOffset of the OpenCascade library, the RoughPoly is offset inward along the contour curvature by an offset distance d. offset1 This yields the offset contour RoughOffsetPoly;
[0083] 2) For the workpiece slice contour WorkPoly, based on the OpenCascade contour offset function BRepOffsetAPI_MakeOffset, the WorkPoly is offset outward along the curvature by an offset distance d. offset2 The offset contour WorkOffsetPoly is obtained;
[0084] 3) Construct the contour of the area to be processed by using RoughOffsetPoly as the outer contour and WorkOffsetPoly as the inner contour.
[0085] Following the slicing results of all slice layers in step two, the machining area of each layer is obtained by offsetting. Step three: With the workpiece axis as the axis and the cutting depth as the interval, construct a set of coaxial cylindrical surfaces. For any cylindrical surface, traverse the machining area of each planar slice and calculate the intersection line between the cylindrical surface and the machining area, which is the tool trajectory line of each row on the machining layer.
[0086] like Figure 5As shown, the intersection calculation between the cylindrical surface and the machining area is achieved through the Section intersection function of OpenCascade. Based on the MakeSurface function of OpenCascade, a plane ToolSurface with holes and outer boundaries is constructed using the contour ToolPoly, and the intersection with the cylindrical surface is used to obtain the curve aToolPath in three-dimensional space.
[0087] Step 4: Connect the beginning and end of each line of the trajectory to obtain the final tool path for machining;
[0088] like Figure 6 As shown, the steps to obtain the machining trajectory of any cutting layer are as follows:
[0089] 1) The intersection of the cylindrical surface and all machined areas forms the tool path lines on that cutting layer. Determine whether the tool path is a closed contour:
[0090] If the toolpath is closed and the starting and ending points of the toolpath are the same, select any point on the closed contour.
[0091] If the tool path is not closed, the beginning and end points of the tool path are the beginning and end points of the path line.
[0092] 2) For a given toolpath, the starting point of the toolpath is connected to the starting point of the previous toolpath by a straight line segment, and the ending point is connected to the ending point of the next toolpath by a straight line segment.
[0093] By traversing all cylindrical surfaces according to step four, the tool path for cutting all cutting layers is obtained.
[0094] Application Example 1:
[0095] 1. Input the model of the blank, such as Figure 7 As shown, the blank dimensions are 80mm × 80mm × 55mm; the input workpiece model is as follows. Figure 8 As shown, the workpiece dimensions are 80mm × 80mm × 50mm;
[0096] 2. Set the tool radius to 5mm, machining line spacing to 5mm, tool depth of cut to 5mm, and offset distance d. offset1 The offset distance is 2.5mm, d. offset2 The value is 2.5mm. It should be noted that the above parameter settings are for illustrating the effectiveness of the algorithm and may not necessarily reflect actual process parameters.
[0097] 3. Using the above judgment method to determine, for example... Figure 8 The workpiece shown generates a machining tool path. Figure 9 This is the result of the generated toolpath.
Claims
1. A four-axis roughing method for cylindrical parts based on discrete subdivision slicing, characterized in that, include: The cutting plane is constructed with the tool row spacing as the interval, and the blank and workpiece are sliced using the discrete subdivision slicing method to obtain the processing area on different slice surfaces; Construct cylindrical surfaces with the depth of cut as the interval, and calculate the intersection with the machining areas on different slice layers to obtain the tool path; connect the beginning and end of the machining path of the same cutting layer to obtain the tool path; Specifically, the following steps are included: (1) Construct slicing planes in the height direction of the workpiece with the tool row spacing as the interval, and use the slicing planes to subdivide and discretize the blank and workpiece to obtain the slicing results of all slicing planes; (2) For any slicing plane, offset the slicing results of the blank and the workpiece inward and outward respectively to obtain the processing area of all slicing planes; (3) Construct a set of coaxial cylindrical surfaces with the workpiece axis as the axis and the cutting depth as the interval. For any cylindrical surface, traverse the processing area of each slice plane, calculate the intersection line between the cylindrical surface and the processing area, and obtain the tool trajectory lines of each row on the cutting layer. (4) Connect the beginning and end of each line of the trajectory on all cylindrical surfaces to obtain the tool trajectory of all cutting layers.
2. The four-axis roughing method for columnar parts based on discrete subdivision slices according to claim 1, characterized in that, The specific steps in step (1) are as follows: (1-1) Construct multiple slice intervals based on the height value of the slice plane; (1-2) Based on the height range of the triangular facets and the constructed slice intervals, divide all triangular facets into intervals using a tree structure; (1-3) For any slice plane, perform intersection calculations on the triangular facets in its corresponding adjacent slice intervals. The resulting contour is the slice result of that layer. Finally, the slice results of all slice planes are obtained.
3. The four-axis roughing method for columnar parts based on discrete subdivision slices according to claim 2, characterized in that, In step (1-1), the height values of two adjacent slice planes form a single interval; in step (1-2), the interval is divided using the maximum height value point in the triangular facet.
4. The four-axis roughing method for columnar parts based on discrete subdivision slices according to claim 2, characterized in that, In steps (1-3), the intersection of the sliced plane and the triangular facets yields a set of scattered line segments. By finding line segments with common endpoints, the line segments are spliced together to obtain one or more contours. If there are multiple contours, the inner contour and outer contour are determined.
5. The four-axis roughing method for columnar parts based on discrete subdivision slices according to claim 1, characterized in that, In step (2), the outlines of the blank and the workpiece are sliced and offset inward for the blank and outward for the workpiece respectively using the outline offset function of the OpenCascade library. The outline of the area to be processed is constructed with the outline of the blank after offset as the outer outline and the outline of the workpiece after offset as the inner outline.
6. The four-axis roughing method for columnar parts based on discrete subdivision slices according to claim 1, characterized in that, In step (3), the intersection calculation between the cylindrical surface and the machining area is implemented based on the Section intersection function of the OpenCascade library.
7. The four-axis roughing method for columnar parts based on discrete subdivision slices according to claim 1, characterized in that, In step (4), the steps to obtain the machining trajectory of any cutting layer are as follows: (4-1) For each tool path on any cutting layer, determine whether the tool path is a closed contour: If the tool path is closed and the beginning and end points of the tool path are the same, select any point on the closed contour; If the tool path is not closed, the beginning and end points of the tool path are the starting and ending points of the path line; (4-2) The connection method of each line of trajectory is that the trajectory starts from the starting point and ends at the ending point in a counterclockwise direction. For a certain tool machining trajectory, the ending point of the current trajectory is connected to the ending point of the adjacent previous trajectory by a straight line segment, and the starting point is connected to the starting point of the adjacent next trajectory by a straight line segment. (4-3) Traverse all machining trajectory lines to obtain the tool machining trajectory of this layer.
Citation Information
Patent Citations
Curved surface layered slicing method based on projection method intersection detection
CN119068141A