Method for feature surface identification, electronic device, and computer readable storage medium

EP4771599A1Pending Publication Date: 2026-07-08ABB (SCHWEIZ) AG

Patent Information

Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
ABB (SCHWEIZ) AG
Filing Date
2023-08-31
Publication Date
2026-07-08

AI Technical Summary

Technical Problem

Conventional 3D modeling web applications struggle to identify local features in 3D model files built by triangular plane connections, limiting their ability to perform machining operations effectively.

Method used

A method for feature surface identification that groups polygons in a 3D model based on inclined angles, allowing for the determination of feature surfaces and edges even without explicit local feature information, and enabling processing path determination for machining operations.

Benefits of technology

Enables accurate identification of feature surfaces and edges within 3D models, facilitating subsequent machining operations and enhancing the capabilities of 3D modeling web applications.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2023116280_06032025_PF_FP_ABST
    Figure CN2023116280_06032025_PF_FP_ABST
Patent Text Reader

Abstract

A method for feature face identification, the method comprises obtaining first three dimension (3D) model data of a 3D object model, the first 3D object model data including a plurality of polygons. The method further comprises grouping the two adjacent polygons into a set of polygons in response to determining that an inclined angle of two adjacent polygons are smaller than an angle threshold. The method further comprises determining feature faces of the 3D object model for processing based on the set of polygons. In this way, the polygons in one feature, which cannot be directly determined by the 3D modeling web application from the structural information included in the 3D model data, can be grouped out and identified for subsequent processing design.
Need to check novelty before this filing date? Find Prior Art

Description

METHOD FOR FEATURE SURFACE IDENTIFICATION, ELECTRONIC DEVICE, AND COMPUTER READABLE STORAGE MEDIUMFIELD

[0001] Embodiments of the present disclosure generally relate to the field of three-dimension modelling, and more particularly, to a method for feature surface identification, an electronic device, and a computer readable storage medium.BACKGROUND

[0002] With the growing demand for flexible machining, the use of robots in machining scenarios and projects has increased in recent years. The robots are heavily used in industrial applications such as polishing, grinding and milling. The processing path may be determined by means of computer aided manufacture tools.

[0003] As the popularity of mobile devices and the improvement of computing power increases, there are more and more scenes where users use phablet devices to intervene in machining production processes. Further, the web application is a cross-platform and fast solution. Using touch screens to access web application applications provide users with more convenient interactive experience which makes the web application becoming a trend in the machining industry.SUMMARY

[0004] In view of the foregoing problems, example embodiments of the present disclosure propose solutions for feature surface identification at web side.

[0005] In a first aspect of the present disclosure, example embodiments of the present disclosure provide a method for feature surface identification. The method comprises: obtaining first three dimension (3D) model data of a 3D object model, the first 3D object model data including a plurality of polygons; in response to determining that an inclined angle of two adjacent polygons are smaller than an angle threshold, grouping the two adjacent polygons into a set of polygons; and determining a feature surface of the 3D object model based at least partially on the set of polygons.

[0006] With these embodiments, the polygons included by the 3D model data can be grouped into different sets of polygons such that an inclined angle between two adjacent  polygons in one set of polygons is smaller than a predefined angle threshold. In this way, the polygons in one feature, which cannot be directly determined by the 3D modelling web application from the structural information included in the 3D model data, can be grouped out and identified for subsequent processing design.

[0007] In some example embodiments, grouping the two adjacent polygons comprises: identifying a periphery polygon sharing a polygon edge with an interior polygon in the set of polygons; determining an inclined angle between the periphery polygon and the interior polygon; in response to determining that an inclined angle between the periphery polygon and the interior polygon is smaller than the angle threshold, determining the periphery polygon as an interior polygon; and adding the periphery polygon into the set of polygons. With these embodiments, by checking the inclined angle between every periphery polygon outside but adjacent to the set of polygons of a feature, all the polygons associated by the feature can be identified.

[0008] In some example embodiments, determining the inclined angle between the periphery polygon and the interior polygon comprises: determining a first normal vector of the periphery polygon and a second normal vector of the interior polygon; and determining an inclined angle between the first normal vector and the second normal vector as the inclined angle between the periphery polygon and the interior polygon. With these embodiments, the normal vector of a polygon can be directly extracted from the 3D model data or calculated based on the vertex information. In this way, the inclined angle between two adjacent polygon surfaces can be converted to the inclined angle between the normal vectors of the two adjacent polygon surfaces.

[0009] In some example embodiments, grouping the two adjacent polygons further comprises: in response to determining that an inclined angle between the periphery polygon and the interior polygon is greater than the angle threshold, determining the periphery polygon as an exterior polygon; and discarding the exterior polygon. With these embodiments, if the inclined angle between the periphery polygon and the interior polygon is greater than a predefined angle threshold, the periphery polygon will be viewed as in a different plane than the interior polygon. Therefore, this periphery polygon will be determined as an exterior polygon and will not be grouped in the current set of polygons.

[0010] In some example embodiments, the method further comprises: determining individual edges from polygon edges of the set of polygons, each individual edge belonging  to a single one of the set of polygons; and forming at least one feature edge of the feature by connecting the individual edges. With these embodiments, some of the edges of polygons at the outermost side of the feature are connected with polygons with other features and only belong to a single polygon of a feature. These edge are individual edge and can form the edge of the feature.

[0011] In some example embodiments, determining individual edges comprises: determining polygon edges of each polygon of the set of polygons; determining a number of polygons to which a polygon edge belongs; and in response to determining that the number associated with the polygon edge is one, determining the polygon edge as an individual edge. With these embodiments, the number of a polygon edge appearing in the polygons can indicate whether this polygon edge is an individual edge and forms a part of the feature edge.

[0012] In some example embodiments, forming the at least one feature edge comprises: determining a connection sequence of the individual edges based on vertices of the individual edges; and connecting the individual edges in the determined connection sequence to form the at least one edge line. With these embodiments, the edge line of a feature can be formed by connecting the selected individual edges in a connection sequence indicated by the vertices.

[0013] In some example embodiments, the method further comprises: associating each vertex of the feature with a unique vertex index; and determining a vertex index pair for each polygon edge, a sequence of two vertex indices in the vertex index pair indicating an orientation of the polygon edge. With these embodiments, by indexing the vertices, the edges and polygons can be well labeled with vertex indices thereby facilitating the feature surface identification.

[0014] In some example embodiments, determining the connection sequence comprises: arranging the individual edges such that a latter vertex index of a former individual edge is the same as a former vertex index of a latter individual edge to obtain the connection sequence. With these embodiments, by connecting two individual edges at a common vertex shared by the two individual edges, the edge line can be easily formed.

[0015] In some example embodiments, the polygon is triangular. With these embodiments, any type of a polygon can be divided into as least one triangles. In this way, the method can be adapted for every type of polygon.

[0016] In some example embodiments, obtaining the first 3D model data comprises: obtaining second 3D model data with feature information of the 3D object model; and extracting vertices information, polygons information and orientation information of the polygons from the second 3D model data to obtain the first 3D model data. The feature information, which may define which polygons belong to a particular feature, of the second 3D model may not be able to be parsed by a 3D modelling web application. With these embodiments, the information essential for implementation the feature surface identification method can be obtained such that the method can be implemented at the web side.

[0017] In some example embodiments, the method further comprises: in response to receiving instructions of a processing operation on the feature of the 3D model data, determining whether the processing operation is performed on a surface of the feature or an edge of the feature; in response to determining the processing operation is performed on the surface of the feature, emitting regular rays onto the set of polygons to obtain intersection points between the regular rays and the set of polygons; and connecting the intersection points to obtain a processing path.

[0018] In some alternative embodiments, the method further comprises: in response to determining the processing operation is performed on the edge of the feature, emitting regular rays onto the at least one feature edge to obtain intersection points between the regular rays and the at least one feature edge; and connecting the intersection points to obtain a processing path. With these embodiments, the work piece represented by the 3D model may be processed on a feature edge line or on a feature surface. Both the feature edge line and the feature surface can be determined. In this way, the availability of the method is significantly increased.

[0019] In a second aspect, example embodiments of the present disclosure provide an electronic device. The electronic device comprises: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the device to perform the method in accordance with the first aspect of the present disclosure.

[0020] In a third aspect, example embodiments of the present disclosure provide a computer readable storage medium storing instructions which, when executed by a computer, cause the computer to perform the method in accordance with the first aspect of the present disclosure.BRIEF DESCRIPTION OF THE DRAWINGS

[0021] Through the following detailed descriptions with reference to the accompanying drawings, the above and other objectives, features and advantages of the example embodiments disclosed herein will become more comprehensible. In the drawings, several example embodiments disclosed herein will be illustrated in an exemplary and in a non-limiting manner, wherein:

[0022] Fig. 1 schematically illustrates a block diagram of an example 3D modelling system in which example embodiments of the present disclosure can be implemented;

[0023] Fig. 2A schematically illustrates a flowchart of a method for feature surface identification in accordance with embodiments of the present disclosure;

[0024] Fig. 2B schematically illustrates a flowchart of a method for grouping polygons in accordance with embodiments of the present disclosure;

[0025] Fig. 3 schematically illustrates a flowchart of a method for edge exaction in accordance with embodiments of the present disclosure;

[0026] Fig. 4A schematically illustrates a schematic diagram of an example procedure for grouping the polygons in accordance with some embodiments of the present disclosure;

[0027] Fig. 4B schematically illustrates a schematic diagram of an example procedure for indexing the vertices in accordance with some embodiments of the present disclosure;

[0028] Fig. 4C schematically illustrates a schematic diagram of an example procedure for edge extraction in accordance with some embodiments of the present disclosure;

[0029] Fig. 4D schematically illustrates a schematic diagram of an example procedure for determining a processing path in accordance with some embodiments of the present disclosure;

[0030] Fig. 5 schematically illustrates a schematic diagram of an example procedure for grouping polygons in accordance with some further embodiments of the present disclosure; and

[0031] Fig. 6 schematically illustrates a schematic diagram of an electronic device for implementing a method in accordance with embodiments of the present disclosure.

[0032] Throughout the drawings, the same or similar reference numerals represent the  same or similar element.DETAILED DESCRIPTION

[0033] Principle of the present disclosure will now be described with reference to some example embodiments. It is to be understood that these embodiments are described only for the purpose of illustration and help those skilled in the art to understand and implement the present disclosure, without suggesting any limitation as to the scope of the disclosure. The disclosure described herein can be implemented in various manners other than the ones described below.

[0034] In the following description and claims, unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skills in the art to which this disclosure belongs.

[0035] References in the present disclosure to “one embodiment, ” “an embodiment, ” “an example embodiment, ” and the like indicate that the embodiment described may include a particular feature, structure, or characteristic, but it is not necessary that every embodiment includes the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the know circle of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.

[0036] It shall be understood that although the terms “first” and “second” etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and similarly, a second element could be termed a first element, without departing from the scope of example embodiments. As used herein, the term “and / or” includes any and all combinations of one or more of the listed terms.

[0037] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of example embodiments. As used herein, the singular forms “a” , “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” , “comprising” , “has” , “having” , “includes” and / or “including” , when  used herein, specify the presence of stated features, elements, and / or components etc., but do not preclude the presence or addition of one or more other features, elements, components and / or combinations thereof.

[0038] As described above, conventionally, the processing design is implemented by means of the client applications deployed on the engineer’s computing device. These client applications may be referred to as computer aided manufacture software. In order to keep up with the trend to carry out the CAM design with web applications, a variety of 3D modelling web application have been developed.

[0039] However, the conventional web applications can only identify model files with structural information such. As to model files built by triangular plane connection, local features cannot be identified. In the case of local features being lost, most of functions of conventional machining software cannot be realized on the web applications.

[0040] In view of the above, a feature identification mechanism implemented by web applications is provided. In the feature identification mechanism, the polygons included by the 3D model data can group into different sets of polygons such that an inclined angle between two adjacent polygons in one set of polygons is smaller than a predefined angle threshold. In this way, the polygons in one feature, which cannot be directly determined by the 3D modelling web application from the structural information included in the 3D model data, can be grouped out and identified for subsequent processing design.

[0041] A framework in accordance with embodiments of the present disclosure will be described with reference to Figs. 1 to 6. Fig. 1 schematically illustrates a block diagram of an example 3D modelling system 100 in which example embodiments of the present disclosure can be implemented.

[0042] As illustrated in Fig. 1, the 3D modelling system 100 includes a terminal device 110, and a network device 130 connected with the terminal device 110. On the terminal device 110, a web application is executed on a web application 111. The web application may be a 3D modeling application for industrial manufacture. A 3D model data 120 is uploaded to the network device 130 via an interface in the web application 111. A 3D mesh model is a collection of vertices, edges, and surfaces (or faces) that together form a 3D object. The vertices are the coordinates in three-dimensional space, the edges each connect two adjacent vertices, and the surfaces (also called polygons) enclose the edges to form the surface of the object. The most commonly used polygons in 3D mesh models are triangles  and quadrilaterals. The 3D model data 120 includes modelling information about a work piece to be processed. The modelling information may include a 3D mesh.

[0043] When the 3D model data 120 is uploaded to the network device 130, the network device 130 may read the 3D model data 120 and perform processing design related functions. For example, the network device 130 may extract the structural information of the 3D object model 121 and render the meshed 3D object model 112 in the web application 111. A user may interact with the 3D object model 112 via input and output interface (such as the touch screen of the terminal device 110) to execute processing design functions. For example, a user may select a feature of the meshed 3D object model by clicking on a polygon on the touch screen. After a polygon is selected by the user, the feature that the polygon belongs to may be highlighted in a manner to show that the whole feature is selected. For example, when a polygon in the end face of the meshed 3D object model 112 is selected, the end face will be highlighted in a color different from the other features. Then, a processing operation may be selected to be performed on the end face. At this point, regular rays simulating a processing tool to perform machining on the end face are presented in the web application and projections of the rays on the end face will simultaneously presented on the end face. A processing path may be formed by connecting the projection points on the end face in a sequence that the processing tool can access.

[0044] Hereinafter, the feature face identification mechanism will be described in detail with reference to Figs. 2A-5. Fig. 2A schematically illustrates a flowchart of a method 200 for feature face identification in accordance with embodiments of the present disclosure. For discussion purpose, the method 200 will be described with reference to Fig. 1. For example, the method may be implemented by the network device 130 in Fig. 1.

[0045] As illustrated in Fig. 2A, at 210, the network device 130 obtains first three dimension (3D) model data of a 3D object model. In this case, the first 3D object model data includes a plurality of polygons. The first 3D model data may be 3D model data in a first format which includes structural information but without local features. That is, the 3D model data in the first format may include vertices information, polygons information and orientation information of the polygons.

[0046] Usually, during the generation process of a 3D model, a 3D mesh is established to represent the physical geometric of a 3D object. The 3D mesh model may be established in a specific coordinate system and the vertices of the 3D mesh model are located in the  coordinate system and have respective coordinates. Associated vertices form respective polygons in the 3D mesh model. In this regard, the vertices information of a 3D model may indicate the coordinates of the vertices in the 3D mesh model. The polygons information may indicate the vertices that form each polygon. The orientation information may indicate the orientation of a polygon in the coordinate system. For example, the orientation information may be normal vectors for respective polygons.

[0047] Further, a conventional 3D mesh model established by a conventional client application, for example a CAM software, may also comprise local feature information which may indicate respective sets of polygons that form respective local features. Such 3D mesh model may be referred to as 3D model data in a second format or second 3D model data. However, the local feature information of the second 3D model data may not be able to be parsed by a web application. In some example embodiments, the network device 130 may receive second 3D model data uploaded from the web application. The network device 130 may extract vertices information, polygons information and orientation information of the polygons from the second 3D model data to obtain the first 3D model data.

[0048] At 220, the network device 130 determines that an inclined angle of two adjacent polygons is smaller than an angle threshold. In some embodiments, the inclined angle determination process may be initiated when a selection of polygon is received from a user who wishes to perform processing on a feature that the selected polygon belongs to. After one polygon is selected, an adjacent polygon will be selected and the inclined angle will be investigated.

[0049] At 230, the network device 130 groups the two adjacent polygons into a set of polygons. The inclined angle of two adjacent polygons being smaller than an angle threshold indicates that these two adjacent polygons may be in the same plane. In other words, these two adjacent polygons may be parts of a feature. In this way, by grouping the associated polygons into a set of polygons, the feature to which the polygons belong can be determined. The grouping of adjacent polygons will be described in details with reference to Fig. 2B.

[0050] In some example embodiments, the angle threshold may be predefined according to a geometric characteristic of the feature. For example, when the feature is expected to be a plane, the angle threshold may be defined to be small. Relatively, when the feature is  expected to be a curve surface, such as a cylindrical surface or a spherical surface, the angle threshold may be defined to be relatively large.

[0051] At 240, the network device 130 determines a feature surface of the 3D object model based partially on the set of polygons. When the associated polygons are grouped into corresponding sets of polygons, the features to which respective sets of polygons belong will be identified receptively. In this way, even if the local feature information is absent, the feature surface formed by the polygons in a particular set of polygons can be accurately selected for the subsequent CAM design procedure.

[0052] Fig. 2B schematically illustrates a flowchart of a method 220 for grouping polygons in accordance with embodiments of the present disclosure. For discussion purpose, the method 200 will be described with reference to Fig. 1. For example, the method may be implemented by the network device 130 in Fig. 1 and the method 220 may be corresponding to the step 220 as illustrated in Fig. 2A.

[0053] As illustrated in Fig. 2B, at 221, the network device 130 identifies a periphery polygon around the set of polygons sharing a polygon edge with an interior polygon in the set of polygons. The periphery polygon may be referred to as the neighbor polygons of the interior polygons at the outermost side or the innermost side of the set of polygons.

[0054] In some example embodiments, in the beginning of the grouping process, an initial polygon may be selected randomly or in response to a selection made by a user. Fig. 4A schematically illustrates a schematic diagram of an example procedure 400A for grouping the polygons in accordance with some embodiments of the present disclosure. In Fig. 4A, a part of the mesh of the 3D object model is illustrated. For example, a user may initiate the procedure for grouping the polygons into different set of polygons by selecting the polygon 410 as the initial polygon and add the initial polygon as an interior polygon into a set of polygon. At this point, the periphery polygons around the set of polygon and sharing common edges with the interior polygons include a polygon 420-1, a polygon 420-2 and a polygon 420-3.

[0055] Back to Fig. 2B, at 222, the network device 130 determines an inclined angle between the periphery polygon and the interior polygon. In some embodiments, in order to determine whether the inclined angle of two adjacent polygons is smaller than an angle threshold, the network device 130 may obtain normal vectors of the two selected adjacent polygons.

[0056] At 223, the network device 130 determines whether the inclined angle between the periphery polygon and the interior polygon is smaller than the angle threshold. If the network device 130 determines that the inclined angle between the periphery polygon and the interior polygon is smaller than the angle threshold, the method 220 proceeds to 225.

[0057] At 225, the network device 130 determines the periphery polygon as an interior polygon. As such, the periphery polygon is determined to be in the same feature associated with the current set of polygons. Then, at 226, the network device 130 adds the periphery polygon into the set of polygons.

[0058] If the network device 130 determines that the inclined angle between the periphery polygon and the interior polygon is not smaller than the angle threshold, the method 220 proceeds to 224. At 224, the network device 130 determines the periphery polygon as an exterior polygon. As such, the periphery polygon is determined to be not in the same feature associated with the current set of polygons. Then, at 227, the network device 130 discards the exterior polygon and proceeds to 228.

[0059] Further refer to Fig. 4A, after the periphery polygons, the polygon 420-1, the polygon 420-2 and the polygon 420-3, are identified, the network device 130 may determine an inclined angle between the polygon 420-1 and the interior polygon 410, an inclined angle between the polygon 420-2 and the interior polygon 410 and an inclined angle between the polygon 420-3 and the interior polygon 410. As illustrated in Fig. 4A, the inclined angles between the polygon 420-1, the polygon 420-2, the polygon 420-3 and the polygon 410 are all smaller than the angle threshold. Therefore, the polygon 420-1, the polygon 420-2, the polygon 420-3 are all determined to be interior polygons and added into the current set of polygons. After the newly-determined interior polygons are added, the interior polygons in the set of the polygons include the polygon 420-1, the polygon 420-2, the polygon 420-3 and polygon 410. The polygons at the outermost side of the set of the polygons are the polygon 420-1, the polygon 420-2, the polygon 420-3 and their neighbor polygons are identified as the periphery polygons, including a polygon 430-1, a polygon 430-2, a polygon 430-3, a polygon 430-4, a polygon 430-5, and a polygon 430-6. In a similar way, the polygon 430-1, the polygon 430-2, the polygon 430-3, the polygon 430-4, the polygon 430-5, and the polygon 430-6 are all determined to be interior polygons.

[0060] Back to Fig. 2B, after a periphery polygon is either added into the current set of polygons or discarded, at 228, the network device 130 determines whether there is a further  periphery polygon exists. If the network device 130 determines that there is a further periphery polygon exists, the method 220 proceeds back to 222. Otherwise, if the network device 130 determines that there is no further periphery polygon exists, the method 220 proceeds to 229. At 229, the network device 130 terminates the method 220.

[0061] Further refer to Fig. 4A, after the polygon 430-1, the polygon 430-2, the polygon 430-3, the polygon 430-4, the polygon 430-5, and the polygon 430-6 are added into the current set of polygons, the periphery polygons are identified to be the polygon 440-1, the polygon 450-1, the polygon 450-2, the polygon 440-2, the polygon 450-3, polygon 450-4, the polygon 440-3, the polygon 450-5, polygon 450-6. On the basis of the inclined angles between these periphery polygons and their corresponding neighbor interior polygons, it is can determined that the polygon 440-1, the polygon 440-2 and the polygon 440-3 are interior polygons and will be added into the current set of polygons. However, the polygon 450-1, polygon 450-2, the polygon 450-3, polygon 450-4, the polygon 450-5 and polygon 450-6 are determined to be exterior polygons and are discarded. In the next iteration, after the polygon 440-1, polygon 440-2 and polygon 440-3 are added, the periphery polygons are identified to be the polygon 460-1, the polygon 460-2, and the polygon 460-3 sharing common edges with the polygon 440-1, polygon 440-2 and polygon 440-3. However, respective inclined angles between these periphery polygons and the respective interior polygons are determined to be greater than the angle threshold and all these polygons are determined as exterior polygons and are discarded. At this point, there are no further periphery polygons left. The grouping process may be ended and a complete feature surface comprising the polygon 410, the polygon 420-1, the polygon 420-2, the polygon 420-3, the polygon 430-1, the polygon 430-2, the polygon 430-3, the polygon 430-4, the polygon 430-5, the polygon 430-6, the polygon 440-1, the polygon 440-2, and the polygon 440-3 is determined.

[0062] With this embodiment, by iteratively investigating the inclined angle between periphery polygons and its neighbor interior polygons, the complete set of polygons associated with a specific feature can be obtained.

[0063] After the feature surface is determined, the edge of the feature can also be extracted in accordance with the present disclosure. The method for determining a feature edge will be described in detail with reference to Fig. 3 in association with Figs. 4B-4C. Fig. 3 schematically illustrates a flowchart of a method 300 for edge exaction in accordance with embodiments of the present disclosure. For discussion purpose, the method 300 will  be described with reference to Fig. 1. For example, the method may be implemented by the network device 130 in Fig. 1.

[0064] As illustrated in Fig. 3, at 310, the network device 130 determines polygon edges of each polygon of the set of polygons. In some embodiments, in order to facilitate the determination of vertices, edges and polygons, the network device 130 may associate each vertex of the feature with a unique vertex index. Further, the network device 130 may determine a vertex index pair for each polygon edge. In this case, a sequence of two vertex indices in the vertex index pair indicates an orientation of the polygon edge. The indexing process will be described in details with reference to Fig. 4B.

[0065] Fig. 4B schematically illustrates a schematic diagram of an example procedure 400A for indexing the vertices in accordance with some embodiments of the present disclosure. For the sake of clarity and without loss of generality, three adjacent triangles, namely a triangle 401, a triangle 402 and a triangle 403 are illustrated in Fig. 4B. As illustrated, in the original 3D model data, the triangles are indexed with different characters. The triangle 401 includes three vertices, including a vertex A, a vertex B and a vertex C. The triangle 402 includes the vertex D, the vertex E and a vertex F. The triangle 403 includes the vertex H, the vertex I and a vertex G. All the nine vertices, the vertex A, the vertex B, the vertex C, the vertex D, the vertex E, a vertex F, the vertex H, the vertex I and a vertex G are listed and each one of them is associated with a unique numeral vertex index. That is, the vertex A is associated with a vertex index 0. The vertex B is associated with a vertex index 1. The vertex C is associated with a vertex index 2. The vertex D is associated with a vertex index 3. The vertex E is associated with a vertex index 4. The vertex F is associated with a vertex index 5. The vertex G is associated with a vertex index 6. The vertex H is associated with a vertex index 7. The vertex I is associated with a vertex index 8.

[0066] Accordingly, the triangle 401, the triangle 402 and the triangle 403 may also be indexed with the vertex indices. The triangle 401 may be indexed by the vertices that belong to the triangle 401. The triangle 401 may be indexed with “CBA” , the triangle 402 may be indexed with “DFE” and the triangle 403 may be indexed with “HIG” . In this case, the vertices may be arranged in a counter clockwise manner with reference to the triangle. With the numeral index of each vertex, the triangle 401 may also be referred to as “2-1-0” , the triangle 402 may also be referred to as “3-5-4” , and the triangle 403 may also be referred to as “7-8-6” . Accordingly, the edges of each polygon may be also indexed with  the vertex indices. For example, the triangle 401 includes an edge CB, an edge BA and an edge AC which correspond to the edge 2-1, the edge 1-0 and the edge 0-2. Similarly, the triangle 402 includes an edge DF, an edge FE and an edge ED which correspond to the edge 3-5, the edge 5-4 and the edge 4-3. At last, the triangle 403 includes an edge HI, an edge IG and an edge GH which correspond to the edge 7-8, the edge 8-6 and the edge 6-7.

[0067] In this conventional indexing scheme, the polygons of a mesh are indexed with different vertex indices. In this case, the edge BC, when it is viewed as belonging to the triangle CBA, may be indexed as “2-1” and the same edge ED, when it is viewed as belonging to the triangle DFE, may be indexed as “4-3” . As such, the same edge will be unable to be recognized.

[0068] In order to make the same edges can be uniquely identified by its index, an index mergence operation is performed. During the operation, the different indices for one vertex are replaced by a single index. As a result, the indices “B” and “D” are replaced by “Y” , the indices “C” , “G” and “E” are replaced by “X” and the indices “F” and “H” are replaced by “Z” . Now, the triangle 401 includes a vertex A, a vertex Y and a vertex X. The triangle 402 includes the vertex Y, the vertex Z and a vertex E. The triangle 403 includes the vertex Z, the vertex I and a vertex X. All the five vertices are associated with unique numeral vertex indices respectively. That is, the vertex A is associated with a vertex index 0. The vertex X is associated with a vertex index 1. The vertex Y is associated with a vertex index 2. The vertex Z is associated with a vertex index 3. The vertex I is associated with a vertex index 4.

[0069] Accordingly, the triangle 401 may be indexed with “YXA” , the triangle 402 may be indexed with “YZX” and the triangle 403 may be indexed with “ZIX” . In this case, the vertices may be arranged in a counter clockwise manner with reference to the triangle. With the numeral index of each vertex, the triangle 401 may also be referred to as “2-1-0” , the triangle 402 may also be referred to as “2-3-1” , and the triangle 403 may also be referred to as “3-4-1” . Accordingly, the edges of each triangle may be also indexed with the vertex indices. For example, the triangle 401 includes an edge YX, an edge XA and an edge AY which correspond to the edge 2-1, the edge 1-0 and the edge 0-2. Similarly, the triangle 402 includes an edge YZ, an edge ZX and an edge XY which correspond to the edge 2-3, the edge 3-1 and the edge 1-2. At last, the triangle 403 includes an edge ZI, an edge IX and an edge XZ which correspond to the edge 3-4, the edge 4-1 and the edge 1-3.

[0070] In this indexing scheme, as it can be seen, the edge YX is shared by the triangle 401 and the triangle 402. Under this indexing system, the edge YX belongs to two triangles and can be counted twice, namely once counted as the edge 2-1 (edge YX in triangle YXA) and once counted as the edge 1-2 (edge XY in triangle YZX) .

[0071] Comparatively, under the indexing system in accordance with the present disclosure, although the common edges may be indexed with a same vertex index pair but in different index sequences, the common edges can be recognized by the same vertex index pair. This indexing system is a basis for feature edge extraction scheme. In this way, this indexing system allows the common edges to distinguish from the individual edges. In the meantime, the redundant vertex indices are discarded thereby reducing the amount of the redundant data.

[0072] Back to Fig. 3, at 320, the network device 130 determines a number of polygons to which a polygon edge belongs. As discussed above, a polygon edge may belong to one or two polygons. When the polygon edges of each polygon are determined, a polygon edge that belongs to two polygons will be counted twice. For example, the edge BC of Fig. 4B belongs to two triangles and will be counted twice. Since the vertex index pair 2-1 and 1-2 both comprise the vertex index 1 and vertex index 2, these vertex index pairs can indicate a common edge BC. In this way, it can be easily determined that the edge BC belongs to two polygons. The indexing system as illustrated in Fig. 4B facilitates determination of the number of polygons to which a polygon edge belongs.

[0073] At 330, the network device 130 determines whether the number associated with the polygon edge is one. If the network device 130 determines that the number associated with the polygon edge is not equal to one, the method 300 proceeds to 340. At 340, the network device 130 determines the polygon edge as a common edge and at 350, the network device 130 discards the common edge. When the number is equal to one, it indicates that the edge belongs to a polygon in the edge area of the feature and is part of the feature edge.

[0074] If the network device 130 determines that the number associated with the polygon edge is equal to one, the method 300 proceeds to 360. At 360, the network device 130 determines the polygon edge as an individual edge. At 370, the network device 130 determines a connection sequence of the individual edges based on vertices of the individual edges. At 380, the network device 130 connects the individual edges in the  determined connection sequence to form the at least one edge line.

[0075] With these embodiments, by determining the number of polygons that an edge belongs to, it can be determined whether the edge is an individual edge or a common edge. The procedure for forming the edge line will be described in details with reference to Fig. 4C.

[0076] Fig. 4C schematically illustrates a schematic diagram of an example procedure for edge extraction in accordance with some embodiments of the present disclosure. As illustrated in Fig. 4C, the vertices of the feature as illustrated in Fig. 4A that comprises the polygon 410, the polygon 420-1, the polygon 420-2, the polygon 420-3, the polygon 430-1, the polygon 430-2, the polygon 430-3, the polygon 430-4, the polygon 430-5, the polygon 430-6, the polygon 440-1, the polygon 440-2, and the polygon 440-3 are index with characters “A” , “B” , “C” , “D” , “E” , “F” , “G” , “H” , “I” , “J” , “K” , ” L” . These characters may be indexed according to the procedure as illustrated in Fig. 4B. For examples, characters “A” , “B” , “C” , “D” , “E” , “F” , “G” , “H” , “I” , “J” , “K” , “L” may correspond to “0” , “1” , “2” , “3” , “4” , “5” , “6” , “7” , “8” , “9” , “10” , “11” . In this way, the polygon 410 including vertices “CDB” may be index with “2-3-1” and therefore includes an edge “2-3” , an edge “3-1” and an edge “1-2” . The polygon 420-1 including vertices “CBA” may be index with “2-1-0” and therefore includes an edge “2-1” , an edge “1-0” and an edge “0-2” . The polygon 420-2 including vertices “DEB” may be index with “3-4-2” and therefore includes an edge “3-4” , an edge “4-2” and an edge “2-3” . The polygon 420-3 including vertices “FDC” may be index with “5-3-2” and therefore includes an edge “5-3” , an edge “3-2” and an edge “2-5” . The polygon 430-1 including vertices “ABL” may be index with “0-1-11” and therefore includes an edge “0-1” , an edge “1-11” and an edge “11-0” . The polygon 430-2 including vertices “BEK” may be index with “1-4-10” and therefore includes an edge “1-4” , an edge “4-10” and an edge “10-1” . The polygon 430-3 including vertices “DJE” may be index with “3-9-4” and therefore includes an edge “3-9” , an edge “9-4” and an edge “4-3” . The polygon 430-4 including vertices “FID” may be index with “5-8-3” and therefore includes an edge “5-8” , an edge “8-3” and an edge “3-5” . The polygon 430-5 including vertices “GFC” may be index with “6-5-2” and therefore includes an edge “6-5” , an edge “5-2” and an edge “2-6” . The polygon 430-6 including vertices “HCA” may be index with “7-2-0” and therefore includes an edge “7-2” , an edge “2-0” and an edge “0-7” . The polygon 440-1 including vertices “BKL” may be index with “1-10-11” and therefore includes an edge “1-10” , an edge “10-11” and an edge “11-1” . The polygon  440-2 including vertices “IJD” may be index with “8-9-3” and therefore includes an edge “8-9” , an edge “9-3” and an edge “3-8” . The polygon 440-3 including vertices “GCH” may be index with “6-2-7” and therefore includes an edge “6-2” , an edge “2-7” and an edge “7-6” .

[0077] The polygon edges are all determined according to the indexing system. It can be determined that the edge AH indexed as “0-7” , the edge HG indexed as “7-6” , the edge GF indexed as “6-5” , the edge FI indexed as “5-8” , the edge IJ indexed as “8-9” , the edge JE indexed as “9-4” , the edge EK indexed as “4-10” , the edge KL indexed as “10-11” , the edge LA indexed as “11-0” . At this point the vertices may be arranged such that a latter vertex index of a former individual edge is the same as a former vertex index of a latter individual edge to obtain the connection sequence. As a result, the connection sequence may be “0-7” , “7-6” , “6-5” , “5-8” , “8-9” , “9-4” , “4-10” , “10-11” , “11-0” . By connecting the edges in the determined connection sequence to form a feature edge line “0-7-7-6-6-5-5-8-8-9-9-4-4-10-10-11-11-0” and the feature edge line is closed.

[0078] Fig. 4D schematically illustrates a schematic diagram of an example procedure 400C for determining a processing path in accordance with some embodiments of the present disclosure. As illustrated in Fig. 4D, in order to perform a surface processing operation on the feature surface, regular rays simulating actual processing tools are projected onto the feature surface 450. The feature surface 450 corresponds to the feature determined in the embodiment as illustrated in Fig. 4A. A total of 9 regular rays are emitted, including a regular ray 460-1, a regular ray 460-2, a regular ray 460-3, a regular ray 460-4, a regular ray 460-5, a regular ray 460-6, a regular ray 460-7, a regular ray 460-8 and a regular ray 460-9. The projected regular rays intersect with the feature surface at a plurality of processing points. A processing path 470 can be determined by connecting the processing points in a sequence that the actual tool can implement.

[0079] Fig. 5 schematically illustrates a schematic diagram of an example procedure 500 for grouping polygons in accordance with some further embodiments of the present disclosure. A mesh 3D model about a flange is illustrated in Fig. 5. The meh 3D model includes an end face feature 510, a chamfer ring feature 520, a central through hole feature 530 and a periphery through hole feature 540. Further, an initial polygon 511-1 is selected.

[0080] A part of the mesh is illustrated in an enlarged manner. The initial polygon 511-1 is added as an interior polygon into a set of polygons associated with the end face feature  510. At this point, the periphery polygons around the set of polygon and sharing common edges with the interior polygons include a polygon 511-2, a polygon 511-3 and a polygon 511-4.

[0081] After the periphery polygons, the polygon 511-2, the polygon 511-3 and the polygon 511-4, are identified, the network device 130 may determine an inclined angle between the polygon 511-2 and the interior polygon 511-1, an inclined angle between the polygon 511-3 and the interior polygon 511-1 and an inclined angle between the polygon 511-4 and the interior polygon 511-1. As illustrated in Fig. 5, the inclined angles between the polygon 511-2, the polygon 511-3 and the polygon 511-4 and the polygon 511-1 are all smaller than the angle threshold. Therefore, the polygon 511-2, the polygon 511-3 and the polygon 511-4 are all determined to be interior polygons and added into the current set of polygons. After the newly-determined interior polygons are added, the interior polygons in the set of the polygons include the polygon 511-2, the polygon 511-3, the polygon 511-4 and the polygon 511-1. The polygons at the outermost side of the set of the polygons are the polygon 511-2, the polygon 511-3, the polygon 511-4 and their neighbor polygons are identified as the periphery polygons, including a polygon 511-5, a polygon 541-1, and a polygon 511-6. In a similar way, the polygon 511-5 and the polygon 511-6 are determined to be interior polygons while the polygon 541-1 belongs to the set of polygons associated with the feature 540 is determined to be exterior polygons. The polygon 541-1 is discarded.

[0082] After the polygon 511-5 and the polygon 511-6 are added to the current set of polygons, the example periphery polygons are identified to be a polygon 521-1, a polygon 531. However, respective inclined angles between these periphery polygons and the respective interior polygons are determined to be greater than the angle threshold and both of these polygons are discarded.

[0083] With this embodiments, the end face feature 510 is clearly distinguished from the chamfer ring feature 520, a central through hole feature 530 and a periphery through hole feature 540. The inclined angle between the adjacent polygons from different features is significantly large. In this way, different feature can be identified according to the feature face identification mechanism in accordance with the present disclosure.

[0084] In some embodiments of the present disclosure, a computing device is provided for implementing the above methods 200, 220 and 300. Fig. 6 illustrates a schematic diagram of an electronic device 600 for implementing a method in accordance with embodiments of  the present disclosure. The electronic device 600 may be corresponding to the network device 130 in Fig. 1. The electronic device 600 comprises: at least one processor 610 and at least one memory 620. The at least one processor 610 may be coupled to the at least one memory 620. The at least one memory 620 comprises instructions 622 that when executed by the at least one processor 610 implements the methods 200, 220 or 300.

[0085] In some embodiments of the present disclosure, a computer readable medium for adjusting robot path is provided. The computer readable medium has instructions stored thereon, and the instructions, when executed on at least one processor, may cause at least one processor to perform the method for managing a camera system as described in the preceding paragraphs, and details will be omitted hereinafter.

[0086] Generally, various embodiments of the present disclosure may be implemented in hardware or special purpose circuits, software, logic or any combination thereof. Some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software which may be executed by a controller, microprocessor or other computing device. While various aspects of embodiments of the present disclosure are illustrated and described as block diagrams, flowcharts, or using some other pictorial representation, it will be appreciated that the blocks, apparatus, systems, techniques or methods described herein may be implemented in, as non-limiting examples, hardware, software, firmware, special purpose circuits or logic, general purpose hardware or controller or other computing devices, or some combination thereof.

[0087] The present disclosure also provides at least one computer program product tangibly stored on a non-transitory computer readable storage medium. The computer program product includes computer-executable instructions, such as those included in program modules, being executed in a device on a target real or virtual processor, to carry out the process or method as described above with reference to Figs. 2A-3. Generally, program modules include routines, programs, libraries, objects, classes, components, data structures, or the like that perform particular tasks or implement particular abstract data types. The functionality of the program modules may be combined or split between program modules as ideal in various embodiments. Machine-executable instructions for program modules may be executed within a local or distributed device. In a distributed device, program modules may be located in both local and remote storage media.

[0088] Program code for carrying out methods of the present disclosure may be written in  any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general purpose computer, special purpose computer, or other programmable data processing apparatus, such that the program codes, when executed by the processor or controller, cause the functions / operations specified in the flowcharts and / or block diagrams to be implemented. The program code may execute entirely on a machine, partly on the machine, as a stand-alone software package, partly on the machine and partly on a remote machine or entirely on the remote machine or server.

[0089] The above program code may be embodied on a machine readable medium, which may be any tangible medium that may contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. The machine readable medium may be a machine readable signal medium or a machine readable storage medium. A machine readable medium may include but not limited to an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of the machine readable storage medium would include an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM) , a read-only memory (ROM) , an erasable programmable read-only memory (EPROM or Flash memory) , an optical fiber, a portable compact disc read-only memory (CD-ROM) , an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0090] Further, while operations are depicted in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Likewise, while several specific implementation details are contained in the above discussions, these should not be construed as limitations on the scope of the present disclosure, but rather as descriptions of features that may be specific to particular embodiments. Certain features that are described in the context of separate embodiments may also be implemented in combination in a single embodiment. On the other hand, various features that are described in the context of a single embodiment may also be implemented in multiple embodiments separately or in any suitable sub-combination.

[0091] Although the subject matter has been described in language specific to structural features and / or methodological acts, it is to be understood that the subject matter defined in  the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.

[0092] It should be appreciated that the above detailed embodiments of the present disclosure are only to exemplify or explain principles of the present disclosure and not to limit the present disclosure. Therefore, any modifications, equivalent alternatives and improvement, etc. without departing from the spirit and scope of the present disclosure shall be included in the scope of protection of the present disclosure. Meanwhile, appended claims of the present disclosure aim to cover all the variations and modifications falling under the scope and boundary of the claims or equivalents of the scope and boundary.

[0093] It is to be understood that the summary section is not intended to identify key or essential features of embodiments of the present disclosure, nor is it intended to be used to limit the scope of the present disclosure. Other features of the present disclosure will become easily comprehensible through the following description.

Claims

1.A method for feature identification, comprising:obtaining first three dimension (3D) model data of a 3D object model, the first 3D object model data including a plurality of polygons;in response to determining that an inclined angle of two adjacent polygons are smaller than an angle threshold, grouping the two adjacent polygons into a set of polygons; andidentifying a feature face of the 3D object model based at least partially on the set of polygons.2.The method of claim 1, wherein grouping the two adjacent polygons comprises:identifying a periphery polygon sharing a polygon edge with an interior polygon in the set of polygons;determining an inclined angle between the periphery polygon and the interior polygon;in response to determining that an inclined angle between the periphery polygon and the interior polygon is smaller than the angle threshold, determining the periphery polygon as an interior polygon; andadding the periphery polygon into the set of polygons.3.The method of claim 2, wherein determining the inclined angle between the periphery polygon and the interior polygon comprises:determining a first normal vector of the periphery polygon and a second normal vector of the interior polygon; anddetermining an inclined angle between the first normal vector and the second normal vector as the inclined angle between the periphery polygon and the interior polygon.4.The method of claim 2, wherein grouping the two adjacent polygons further comprises:in response to determining that an inclined angle between the periphery polygon and the interior polygon is greater than the angle threshold, determining the periphery polygon as an exterior polygon; anddiscarding the exterior polygon.5.The method of claim 1, further comprising:determining individual edges from polygon edges of the set of polygons, each individual edge belonging to a single one of the set of polygons; andforming at least one feature edge of the feature by connecting the individual edges.6.The method of claim 5, wherein determining individual edges comprises:determining polygon edges of each polygon of the set of polygons;determining a number of polygons to which a polygon edge belongs; andin response to determining that the number associated with the polygon edge is equal to one, determining the polygon edge as an individual edge.7.The method of claim 6, wherein forming the at least one feature edge comprises:determining a connection sequence of the individual edges based on vertices of the individual edges; andconnecting the individual edges in the determined connection sequence to form the at least one edge line.8.The method of claim 7, further comprising:associating each vertex of the feature with a unique vertex index; anddetermining a vertex index pair for each polygon edge, a sequence of two vertex indices in the vertex index pair indicating an orientation of the polygon edge.9.The method of claim 8, wherein determining the connection sequence comprises:arranging the individual edges such that a latter vertex index of a former individual edge is the same as a former vertex index of a latter individual edge to obtain the connection sequence.10.The method of claim 1, wherein the polygon is triangular.11.The method of claim 1, wherein obtaining the first 3D model data comprises:obtaining second 3D model data with local feature information of the 3D object model; andextracting vertices information, polygons information and orientation information of the polygons from the second 3D model data to obtain the first 3D model data.12.The method of claim 5, further comprising:in response to receiving instructions of a processing operation on the feature of the 3D model data, determining whether the processing operation is performed on a surface of the feature or an edge of the feature;in response to determining the processing operation is performed on the surface of the feature, emitting regular rays onto the set of polygons to obtain intersection points between the regular rays and the set of polygons; andconnecting the intersection points to obtain a processing path.13.The method of claim 12, further comprising:in response to determining the processing operation is performed on the edge of the feature, emitting regular rays onto the at least one feature edge to obtain intersection points between the regular rays and the at least one feature edge; andconnecting the intersection points to obtain a processing path.14.An electronic device (00) comprising:at least one processor (710) ; andat least one memory (720) storing instructions (721) that, when executed by the at least one processor (710) , cause the device (700) to perform the method of any of claims 1-13.15.A computer readable storage medium storing instructions which, when executed by a computer, cause the computer to perform the method of any of claims 1-13.