Information processing method and information processing device
Patent Information
- Application Number
- JP2020181457
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2020-10-29
- Publication Date
- 2025-03-14
- Estimated Expiration
- 2040-10-29
AI Technical Summary
【0014】 本技術によれば、位相情報を有する三角多面体である微分多面体モデルを用いることにより、CGソフトウェアとの高い親和性を得ることができ、3Dシステム間のデータ連携を円滑化することができる。また、微分多面体モデルにより、曲面の滑らかさを容易に表現することができ、3Dシステム間の形状の表現の違いや保証している精度の違いを補完することができる。
Smart Images

Figure 0007645484000002 
Figure 0007645484000003 
Figure 0007645484000004
Abstract
Description
[Technical field]
[0001] The present technology relates to an information processing method and an information processing device for generating data used between 3D systems. [Background technology]
[0002] Conventionally, products are manufactured through a series of processes: product design → die design → NC (numerical control) data creation → simulation → machining. Product design and die design are created using software called 3DCAD (3D Computer Aided Design), and NC (numerical control) data is created using software called 3DCAM (3D Computer Aided Manufacturing).
[0003] Simulations are also carried out using software called CAE (Computer Aided Engineering) to carry out fluid calculations, structural calculations, etc. CAE uses numerical analysis methods such as the finite element method, and handles data that is fundamentally different from the curved surfaces handled by 3DCAD and 3DCAM.
[0004] Problems can occur with data conversion between 3D CAD, 3D CAM, and CAE (hereafter collectively referred to as 3D systems) due to differences in the way data is expressed in 3D systems and differences in the guaranteed accuracy. 3D systems have become a basic tool for design and manufacturing in most fields of the manufacturing industry, and the enormous amount of work required for troubleshooting, communication, and data correction due to data conversion is a major factor that impedes productivity.
[0005] As mechanisms for data conversion between 3D systems, there are IGES of the American National Standards Institute (ANSI) and STEP of the International Organization for Standardization (ISO), and there are formal mechanisms for conversion between 3D systems. There are also approximation methods for 3D CAD models that convert them into triangular or quadrilateral polygon data, and also convert them into triangular or quadrilateral curved surfaces to reduce the amount of polygon data (see, for example, Patent Document 1).
[0006] However, the data conversion and approximation described above cannot compensate for the differences in shape representation or guaranteed accuracy between 3D systems, and therefore cannot facilitate smooth data sharing between 3D systems. [Prior art documents] [Patent documents]
[0007] [Patent Document 1] International Publication No. 2005 / 066852 Summary of the Invention [Problem to be solved by the invention]
[0008] The present technology has been proposed in view of the above-described conventional situation, and provides an information processing method and an information processing device that can facilitate data linkage between 3D systems. [Means for solving the problem]
[0009] As a result of careful investigation, the inventors of the present application have discovered that the above-mentioned problem can be solved by generating a differential polyhedron model, which is a triangular polyhedron having topological information, using a collection of triangles that includes the coordinate values of the triangle vertices and the normal vectors of the triangle vertices.
[0010] In other words, the information processing method related to the present technology uses a collection of triangles including the coordinate values of the triangle vertices and the normal vectors of the triangle vertices to extract ridges connecting the sides of the triangles, and generates a differential polyhedron model having topological information including the coordinate values of the vertices at both ends of the ridge line, the triangles on the left and right sides of the ridge line, and the normal vectors at both ends of the left and right sides of the ridge line.
[0011] In addition, the information processing device related to the present technology uses a collection of triangles including the coordinate values of the triangle vertices and the normal vectors of the triangle vertices to extract ridges connecting the sides of the triangles, and generates a differential polyhedron model having topological information including the coordinate values of the vertices at both ends of the ridge line, the triangles on the left and right sides of the ridge line, and the normal vectors at both ends of the left and right sides of the ridge line.
[0012] In addition, the program related to the present technology causes a computer to execute a process of extracting ridges connecting the sides of triangles using a collection of triangles including the coordinate values of the triangle vertices and the normal vectors of the triangle vertices, and generating a differential polyhedron model having topological information including the coordinate values of the vertices at both ends of the ridge line, triangles on the left and right sides of the ridge line, and normal vectors at both ends of the left and right sides of the ridge line.
[0013] In addition, the differential polyhedron model according to the present technology has topological information including coordinate values of vertices at both ends of the edge, triangles on the left and right sides of the edge, and normal vectors at both ends of the left and right sides of the edge. Effect of the Invention
[0014] This technology uses a differential polyhedron model, which is a triangular polyhedron with topological information, to achieve high compatibility with CG software and facilitate data sharing between 3D systems. In addition, the differential polyhedron model makes it easy to express the smoothness of curved surfaces, and can complement differences in shape expression and guaranteed accuracy between 3D systems. [Brief description of the drawings]
[0015] [Figure 1]FIG. 1 is a flowchart showing an information processing method according to the present embodiment. [Diagram 2] FIG. 2 is a diagram showing the relationship between conventional common data and CAD. [Diagram 3] FIG. 3 is a diagram showing the relationship between the differential polyhedron model and the CG. [Figure 4] FIG. 4 is a block diagram showing the configuration of a computer device that realizes the information processing method according to the present embodiment. [Diagram 5] FIG. 5 is a diagram for explaining a process of generating a differential polyhedron model in which edges of triangles are connected to form a curved surface. [Figure 6] FIG. 6 is a diagram for explaining the topological information of the differential polyhedron model. [Figure 7] FIG. 7 is a diagram showing an example of the data structure of triangle information used in the process of generating a differential polyhedral model. [Figure 8] FIG. 8 is a diagram showing an example of the data structure of edge line information used in the process of generating a differential polyhedral model. [Figure 9] FIG. 9 is a diagram illustrating an example of the data structure of vertex information used in the generation process of a differential polyhedral model. [Figure 10] FIG. 10 is a diagram illustrating an example of a data structure of point information used in the generation process of a differential polyhedral model. [Figure 11] FIG. 11 is a diagram showing an example of the data structure of edge information used in the generation process of a differential polyhedral model. [Figure 12] FIG. 12 is a flowchart showing the process of generating a differential polyhedron model. [Figure 13] FIG. 13 is a diagram for explaining the vertex combining process in the generating step (S33). [Figure 14] FIG. 14 is a diagram for explaining the process of extracting edge lines in the generating step (S33). [Figure 15] FIG. 15 is a diagram for explaining the vertex copy process in the subdivision process. [Figure 16] FIG. 16 is a diagram for explaining the division process of edge lines in the subdivision process. [Figure 17] FIG. 17 is a diagram for explaining the subdivision process of triangles in the subdivision process. [Figure 18] FIG. 18 is a diagram for explaining subdivision using normal vectors of triangle vertices. [Figure 19] FIG. 19 is a diagram for explaining a geodesic line on a parametric surface. [Figure 20] FIG. 20 is a diagram for explaining a spatial geodesic curve. [Figure 21] FIG. 21 is a diagram for explaining a method for determining the N(t) geodesic curve. [Figure 22] FIG. 22 is a diagram for explaining a method for determining a geodesic line C(t) that connects two points on an N(t) geodesic line. [Figure 23] FIG. 23 is a diagram for explaining a case where the length L of the N(t) geodesic curve is adjusted. [Figure 24] FIG. 24 is a diagram for explaining a first-order differentiable function T(t) that maps the interval [0,1]. [Diagram 25] FIG. 25 is a diagram for explaining a function whose slope is d when x=1 / 2 and y=h. [Figure 26] FIG. 26 is a diagram for explaining the range of values of (h, d). [Figure 27] FIG. 27 is a diagram showing an example of the shape of the 2-2 spline function with respect to the values of (h, d). [Figure 28] FIG. 28 is a diagram showing an example of the shape of the 2-2 spline function when P1(0,0), P2(1 / 2,1), and P3(1,0). [Figure 29] FIG. 29 is a diagram for explaining error evaluation by subdivision of a polynomial surface. [Diagram 30] FIG. 30 is a diagram for explaining a method of expressing a solid model in 3D CAD. [Diagram 31] FIG. 31 is a diagram for explaining triangulation of a curved surface. [Diagram 32] FIG. 32 is a diagram for explaining the processing of the boundary portion of a curved surface. [Diagram 33] FIG. 33 is a diagram for explaining the determination of a plane. [Diagram 34] FIG. 34 is a diagram for explaining the determination of a cylinder. [Diagram 35] FIG. 35 is a diagram for explaining the determination of a cone. [Diagram 36] FIG. 36 is a diagram for explaining a torus surface. [Figure 37] FIG. 37 is a diagram for explaining determination of a torus surface. [Figure 38] FIG. 38 is a diagram for explaining a minimum rectangle. [Figure 39] FIG. 39 is a diagram for explaining the determination of the plane of rotation, showing a group of planes parallel to the XY plane. [Diagram 40] FIG. 40 is a diagram for explaining the determination of the surface of rotation, showing a group of planes that are not parallel to the XY plane. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0016] Hereinafter, embodiments of the present technology will be described in detail with reference to the drawings in the following order. 1. Information processing method 2.Generating the differential polyhedron model 3. Adding surface attributes to differential polyhedron models 4. Subdivision of Differential Polyhedral Models
[0017] <1. Information processing method> Fig. 1 is a flowchart showing an information processing method according to the present embodiment. As shown in Fig. 1, the information processing method according to the present embodiment includes an input step (S1) of inputting a 3D CAD model, a conversion step (S2) of converting the 3D CAD model into a triangle aggregate model, and a generation step (S3) of extracting ridge lines connecting the sides of triangles using the triangle aggregate model to generate a differential polyhedron model.
[0018] In the input process (S1), a 3D CAD model, which is a three-dimensional shape with length, width, and depth, is input, which is created in a virtual three-dimensional space using software called 3D CAD. It is preferable that the 3D CAD is capable of outputting STL (Standard Triangulated Language). STL is the standard data format for 3D printers, and because the data format is simple, input and output can be made without any trouble even between 3D systems. STL is also sometimes called "StereoLithography."
[0019] In the conversion step (S2), the CAD model is converted into a triangle aggregate model including the coordinate values of the triangle vertices and the normal vectors of the triangle vertices. This aggregate model is an STL model with normal vectors in which the normal vectors of the vertices are calculated from the CAD data and added when the STL is output. The STL model with normal vectors is output with a specified accuracy from a curved surface represented by, for example, a cubic polynomial by a program. The STL model with normal vectors is preferably output with the accuracy of double-precision floating-point numbers.
[0020] In the generation step (S3), a triangle aggregate model is used to extract edges connecting the sides of triangles, and a differential polyhedron model having topological information including the coordinate values of the vertices at both ends of the edge, the triangles on the left and right sides of the edge, and the normal vectors at both ends of the left and right sides of the edge is generated. Here, topological information means information indicating the relationship between elements.
[0021] A differential polyhedron model is a simple and meaningful data representation that can represent the smoothness of a curved surface and the topological information of a solid model. A differential polyhedron model is a polygon model of a triangular mesh model, and can be converted into the obj format, a data format for CG (Computer Graphics). Therefore, the use of a differential polyhedron model can facilitate data exchange between 3D systems. It also has high compatibility with CG software and can easily represent the smoothness of a curved surface.
[0022] In addition, since the differential polyhedron model has normal vectors at each vertex of the triangular polyhedron, it is possible to introduce a differential geometry structure to each vertex using geodesics, as described below. For example, a convergent surface can be obtained by subdividing a triangle. A dense group of points can be sequentially obtained on the final surface, and differential values can be defined at the vertices.
[0023] Fig. 2 shows the relationship between conventional common data and CAD, and Fig. 3 shows the relationship between differential polyhedron models and CG. As shown in Fig. 2, there are mechanisms for data conversion between 3D systems, such as IGES from the American National Standards Institute (ANSI) and STEP from the International Organization for Standardization (ISO), but they cannot compensate for differences in the representation of shapes between 3D systems or the differences in guaranteed accuracy. In addition, STL does not include topological information that represents connection relationships, making it difficult to represent the smoothness of curved surfaces.
[0024] On the other hand, as shown in Figure 3, differential polyhedral models can be converted into the obj format, which is a data format for CG, and obj format output from CG software can also be converted into differential polyhedral models. Since the differential polyhedral model and the obj format have a high affinity with each other, it is possible to prevent problems from occurring during data conversion. Furthermore, because differential polyhedral models can express the smoothness of curved surfaces using CG software, CG software can be used for design and manufacturing instead of 3D CAD.
[0025] For differential polyhedron models, the inventor of this application can use the 3DCAM kernel (GPU-CAM) using a GPU (Graphics Processing Unit) (see, for example, Patent No. 3535442 and Patent No. 3792584). The 3DCAM kernel can read and process shapes in STL format, achieving high-speed calculation processing using the GPU, and enabling stable offset processing using the dexel data format.
[0026] [Hardware configuration] Fig. 4 is a block diagram showing the configuration of a computer device that realizes the information processing method according to the present embodiment. As shown in Fig. 4, the computer device 1 includes a CPU (Central Processing Unit) 11 that executes a program, a GPU (Graphics Processing Unit) 12 that performs arithmetic processing, a ROM (Read Only Memory) 13 that stores the program executed by the CPU 11, a RAM (Random Access Memory) 14 that expands the program and data, an operation input unit 15 that receives various input operations by a user, a storage 16 that permanently stores the program and data, and an input / output interface 17 that inputs and outputs data.
[0027] The CPU 11 is capable of the above-mentioned information processing, and uses a triangle aggregate model to extract ridges connecting the sides of triangles and generate a differential polyhedron model. The CPU 11 also reads out a computer-based numerical calculation program stored in the storage 16, for example, and loads it into the RAM 14 and executes it to control the operation of each block.
[0028] The GPU 12 has a video memory (VRAM) and is capable of drawing and calculation processing in response to requests from the CPU 11. The ROM 13 is, for example, a read-only non-volatile memory, and stores information such as constants required for the operation of each block of the computer device 1. The RAM 14 is a volatile memory, and is used not only as an area for developing operation programs, but also as a storage area for temporarily storing intermediate data output during the operation of each block of the computer device 1.
[0029] The operation input unit 15 is a user interface used when performing an input operation on the computer device 1. The operation input unit 15 outputs to the CPU 11 a command to execute or stop the above-mentioned information processing in response to an input operation by a user.
[0030] The storage 16 records the above-mentioned information processing program and the like that are expanded in the RAM 14. Note that a hard disk drive (HDD), a solid state drive (SSD), an optical drive, etc. can be used as the storage 16. The input / output interface 17 is capable of outputting images generated by the GPU 12 to a display device.
[0031] In such a hardware configuration, the above-mentioned information processing method can be realized by cooperation of software executed by the CPU 21, GPU 22, ROM 23, RAM 24, CPU 21, etc. Furthermore, the software program may be distributed by storing it on a recording medium such as an optical disk or a semiconductor memory, or may be downloaded via the Internet, etc.
[0032] <2. Generation of Differential Polyhedron Model> The generation process for generating a differential polyhedron model will be described in detail below with reference to the drawings.
[0033] Fig. 5 is a diagram for explaining the generation process of a differential polyhedron model that forms a curved surface by connecting the edges of triangles. As shown in Fig. 5, in a triangle set model, vertices are defined as points and sides are defined as edges. When edges coincide with each other, they are considered to be the same line and are defined as a ridge, and both end points of the ridge are defined as vertices.
[0034] Fig. 6 is a diagram for explaining the topological information of a differential polyhedron model. As shown in Fig. 6, a differential polyhedron model is binary data composed of triangle information (double_stl), edge information (ridge_info), and vertex information (vertex_info). The generation process of a differential polyhedron model inputs triangle information, outputs edge information and vertex information, and updates the triangle information.
[0035] FIG. 7 is a diagram showing an example of the data structure of triangle information used in the generation process of a differential polyhedron model. At the time of input, the triangle information is a triangle table including three vertex coordinate values (P1, P2, P3) and three vertex normal vectors (N1, N2, N3) for each triangle ID. When constructing the topology information, the triangle information includes three edge IDs in the edge table for each triangle ID. After constructing the topology information, the three edge IDs in the edge table are replaced with three edge IDs (R1_id, R2_id, R3_id) in the edge table. Note that after constructing the topology information, the vertex coordinate values and normal vectors do not need to be used. The edge information can be used for these.
[0036] 8 is a diagram showing an example of the data structure of edge information used in the generation process of a differential polyhedron model. The edge information is an edge table including, for each edge ID, the type of edge (type), vertex IDs (Vs_id, Ve_id) of the start and end points in the vertex table, left and right triangle IDs (Tl_id, Tr_id) in the triangle table, and normal vectors (Nsl, Nel, Nsr, Ner) at the left and right start and end points. Examples of edge types include 0: smooth edge and 1: not smooth edge. Whether an edge is smooth can be determined by whether the triangles on both sides have an angle equal to or greater than a predetermined angle, and can be determined by using the normal vectors.
[0037] 9 is a diagram showing an example of the data structure of vertex information used in the generation process of a differential polyhedron model. The vertex information is a vertex table including vertex coordinate values (V) for each vertex ID. The vertex information may also include other information such as the number of points (n) that share a vertex. When constructing the topology information, the vertex information includes, for each vertex ID, the number of start and end points of the edge (numEs, numEe) and the indexes (Es_index, Ee_index) of the edges whose start and end points are vertices.
[0038] 10 is a diagram showing an example of the data structure of point information used in the generation process of a differential polyhedron model. The point information is used when constructing topological information, and is a point table including vertex coordinate values (x, y, z) for each point ID.
[0039] 11 is a diagram showing an example of the data structure of edge information used in the generation process of a differential polyhedron model. The edge information is used when constructing topological information, and is an edge table including, for each edge ID, point IDs (Ps_id, Pe_id) of the start and end points in the point table, triangle IDs (T_id) to which the triangle table belongs, and normal vectors (Nsl, Nel, Nsr, Ner) at the start and end points.
[0040] Note that the data structure examples shown in FIGS. 7 to 11 refer to a winged-edge structure, but are not limited to this and may refer to, for example, a half-edge structure.
[0041] Fig. 12 is a flowchart showing a process for generating a differential polyhedral model. As shown in Fig. 12, the process for generating a differential polyhedral model includes a reading step (S31) for reading a triangle aggregate model, a deleting step (S32) for deleting degenerated triangles from the aggregate model, and a generating step (S33) for generating a differential polyhedral model.
[0042] In the reading step (S31), a triangle aggregate model including the coordinate values of triangle vertices and the normal vectors of the triangle vertices is read in. The triangle aggregate model is an STL model with normal vectors in which the normal vectors of the vertices are calculated from the CAD data and added when outputting the STL, and is triangle information such as that shown in FIG.
[0043] In the deletion step (S32), triangles having edge lengths less than a predetermined value are deleted from the triangle aggregate model. After deleting triangles having edge lengths less than a predetermined value from the triangle aggregate model, a differential polyhedron model is generated, thereby reducing the amount of data in the differential polyhedron model. In addition, the process can be stabilized by deleting triangles that are prone to problems.
[0044] FIG. 13 is a diagram for explaining the vertex joining process in the generating step (S33), and FIG. 14 is a diagram for explaining the edge extraction process in the generating step (S33). In the generating step (S33), first, the vertices of a triangle are treated as points, points with a distance between two points equal to or less than a predetermined distance are grouped to be treated as vertices, and the vertices are reconstructed with the average coordinate value of the points belonging to the vertices as the coordinate value of the vertex. The vertices are reconstructed by considering them as a collection of points of a triangle, and finding vertices by grouping points with a distance less than a predetermined distance. Assuming that the number of points will be huge, the space is divided into small groups of points, the distance between two points between the small groups is found, and points with a distance less than the predetermined distance are grouped to be found as vertices.
[0045] Specifically, the points of the triangle are collected and listed from the triangle information, and a point table, which is point information, as shown in Figure 10 is created. Next, the area in which the points exist is divided into small areas, the points are divided into areas, and the points existing in the area are classified into groups in which the distance between them is less than a predetermined value, and these are set as vertices. Furthermore, as shown in Figure 13, if a point belongs to multiple vertices, the vertices are joined. Then, the average value of the points belonging to the vertex is set as the coordinate value of the vertex, and vertex information is created. This makes it possible to suppress an increase in the number of vertices due to repeated subdivision.
[0046] Next, the edges of the triangle information are listed, and edge information as shown in Fig. 11 is created, and the edge information of the triangle and the edge information connected to the vertices are added to the vertex information. Then, as shown in Fig. 14, it is determined whether the start point and end point of the edge match for each vertex, and if they match, an edge ID is obtained for the edge, an area for the edge information is reserved, and each item of the edge information is set. Finally, the edge IDs of the triangle information are replaced with the edge IDs, and a differential polyhedron model is generated.
[0047] Such differential polyhedron models can be converted into the obj format, a data format for CG. By introducing differential polyhedron models into CG software, it is possible to express the smoothness of curved surfaces, making it possible to use CG software in design and manufacturing instead of 3D CAD.
[0048] <3. Subdivision of Differential Polyhedral Model> The subdivision process for subdividing a differential polyhedral model will be described in detail below with reference to the drawings. The subdivision process for a differential polyhedral model is executed in three processes: a vertex copy process, an edge division process, and a triangle division process. A spatial geodesic line is generated using the normal vectors of the vertices at both ends of the edge of the differential polyhedral model, and a vertex and a normal vector are added to the midpoint of the spatial geodesic line to generate two edges. By repeating the subdivision process, it is possible to generate a group of points that are densely present on a curved surface as a limit. In other words, a differential polyhedron is not a surface like a parametric surface or a solution of an algebraic equation, but a set of dense points and normal vectors on a certain curved surface.
[0049] Figure 15 is a diagram for explaining the vertex copy process in the subdivision process. After subdivision, vertices are added to the original data, so the original vertex table is copied and new vertices are added after it. Since new vertices are points at the midpoints of edges, the number of new vertices is "the number of original vertices + the number of edges." New vertices are added when edges are divided into two.
[0050] FIG. 16 is a diagram for explaining the division process of ridge lines in the subdivision process. For ridge lines, a spatial geodesic line is generated using the start and end points and the normal vector, and its midpoint is added to the vertex to generate two new ridge lines. When generating new ridge lines, the ID of the new triangle is unknown, and the ridge lines of the newly generated triangles are also unknown. For this reason, a ridge line division (Ridge_sub_division) structure is used, which divides the original ridge line and records the newly generated ridge lines with consecutive numbers. This ridge line division structure is generated when a ridge line is divided.
[0051] 17 is a diagram for explaining the subdivision process of triangles in the subdivision process. When generating new triangles 1 to 4, the edges of the original triangles are used to obtain new edge IDs as boundary lines using an edge division structure. Also, new edge IDs are generated for new edges 1 to 3.
[0052] FIG. 18 is a diagram for explaining subdivision using normal vectors of triangle vertices, FIG. 19 is a diagram for explaining geodesic curves on a parametric surface, and FIG. 20 is a diagram for explaining spatial geodesic curves.
[0053] A curve is generated for each side of a triangle using a spatial geodesic curve, as shown in Fig. 18. The spatial geodesic curve is a curve that is perpendicular to the added normal vector at the vertices of the triangle, and the curvature direction at each point of the curve and the vector obtained by interpolating the normal vector are parallel.
[0054] This is the same concept as the geodesic curve on a parametric surface as shown in Figure 19, but since there is no original surface, the spatial geodesic curve is obtained by first interpolating the normal vectors added to the two vertices as shown in Figure 20, instead of the normal vector of the surface.
[0055] A geodesic is originally a curved surface, and the shortest distance between two points is called a geodesic. If the surface is S(u,v) and the curve in uv space is (u(t),v(t)), the condition for a curve C(t)=S(u(t),v(t)) on the surface to be a geodesic is that the curvature at C(t) is parallel to the normal vector at S(u(t),v(t)). Given a function N(t) of the normal vector, a curve C(t) in space is a geodesic such that the curvature vector of the curve C(t) is parallel to N(t) for the same parameter t. It is called a geodesic that can be generated using the normal vector function as a guide. Hereafter, this is called an N(t) geodesic.
[0056] Find the N(t) function where N(0) = N1 and N(L) = N2, and it is said that a geodesic line connecting the two points exists when C(0) = P1 and C(L) = P2. The position of P2 relative to P1 can be selected in the X, Y, or Z axis directions, so there are three degrees of freedom. Therefore, three parameters are required to uniquely determine the spatial geodesic line. These three parameters are the direction of the geodesic line, the length of the geodesic line, and parameter h, which determines the 2-2 spline function. These three parameters are adjusted so that the geodesic line starting from P1 arrives at P2.
[0057] FIG. 21 is a diagram for explaining a method for obtaining an N(t) geodesic curve. When a vector V perpendicular to points P0 and N(0) is determined, a single N(t) geodesic curve is determined that passes through point P0 and has a tangent vector V at point P0. A method for constructing this N(t) geodesic curve is explained. When dt is fixed and N i =N(i*dt).
[0058] The point P1 is the point moved by dt in the V direction from point P0. On the plane that passes through P0 and P1 and is parallel to N1, the point P2 is the line symmetrical to P1 with respect to the line that passes through P1 and is parallel to N1. Repeat this process to get P i By setting dt->0, the desired N(t) geodesic curve can be uniquely found.
[0059] Fig. 22 is a diagram for explaining a method for obtaining a geodesic line C(t) connecting two points with a geodesic line N(t). As shown in Fig. 22, C(0) = P1, C(L) = P2, N(0) = N1, and N(L) = N2 are satisfied, and L is the length of the geodesic line between P1 and P2. The direction V of the tangent vector at P1 can be chosen in any direction over 360°, so the degree of freedom is 1. The first function that can be considered as N(t) is a function that linearly connects N1 and N2. In addition, the length L of the N(t) geodesic line can be fine-tuned, so the degree of freedom is 1.
[0060] Fig. 23 is a diagram for explaining the case where the length L of the N(t) geodesic curve is adjusted. As shown in Fig. 23, when the length L of the N(t) geodesic curve is long, it becomes like curve A, and when L is short, it becomes like curve B. Without one more degree of freedom, it is not possible to stably specify P1, P2, N1, and N2 to obtain a geodesic curve. Therefore, one degree of freedom is added by devising a linear vector interpolation function.
[0061] If the function linearly connecting N1 and N2 is α(t)N1+β(t)N2, then α(t) and β(t) can be specifically calculated using the following equations (1) and (2), respectively.
[0062]
number
[0063] where L is the length of the N(t) geodesic and θ is the angle between N1 and N2.
[0064] Fig. 24 is a diagram for explaining a first-order differentiable function T(t) that maps the [0,1] interval. Focusing on t / L in formulas (1) and (2), this value is a value in the [0,1] interval. Therefore, as shown in Fig. 24, by using a first-order differentiable function T(t) that maps the [0,1] interval, one degree of freedom can be given to the selection of this function.
[0065] 25 is a diagram for explaining a function whose slope is d when x=1 / 2 and y=h. The function in the range 0≦x≦1 / 2 is given by the following formula, and the function in the range 1 / 2≦x≦1 is given by the following formula. y=a1x 2 +b1x+c1,(0≦x≦1 / 2) y=a2x 2 +b2x+c2,(1 / 2≦x≦1)
[0066] From the conditions of the end points, c1 = 0, c2 = 1-a2-b2. Also, when x = 1 / 2 and y = h, the slope is d, so the following formulas are obtained. y=(2d-4h)x 2 +(4h-d)x,(0≦x≦1 / 2) y=(4-4h-2d)x 2 +(3d+4h-4)x+(1-d) ,(1 / 2≦x≦1)
[0067] For this function to be monotonically increasing, h ≥ 0, d ≥ 0, y'(0) ≥ 0, and y'(1) ≥ 0. Since y'(0) = 4h-d and y'(1) = 2(4-4h-2d) + (3d + 4h-4) = 4-4h-d, d ≤ 4h and d ≤ -4h+4.
[0068] Fig. 26 is a diagram for explaining the range of values of (h, d). As shown in Fig. 26, a spline function with first-order differential continuity that is determined by the values of (h, d) in the region of d≦4h, d≦-4h+4 is called a 2-2 spline function.
[0069] Fig. 27 shows examples of the shape of the 2-2 spline function for the value of (h,d). Fig. 27(A) shows the shape of the 2-2 spline function when (h,d)=(1 / 2,1), Fig. 27(B) shows the shape of the 2-2 spline function when (h,d)=(1 / 2,2), Fig. 27(C) shows the shape of the 2-2 spline function when (h,d)=(1 / 4,1), Fig. 27(D) shows the shape of the 2-2 spline function when (h,d)=(0,0), Fig. 27(E) shows the shape of the 2-2 spline function when (h,d)=(1 / 2,0), Fig. 27(F) shows the shape of the 2-2 spline function when (h,d)=(1,0), Fig. 27(G) shows the shape of the 2-2 spline function when (h,d)=(3 / 4,1), Fig. 27(H) shows the shape of the 2-2 spline function when (h,d)=(1 / 4,1 / 2), and Fig. 27(I) shows the shape of the 2-2 spline function when (h,d)=(1 / 8,1 / 2).
[0070] Figure 28 shows an example of the shape of the 2-2 spline function when P1 (0,0), P2 (1 / 2,1), and P3 (1,0). In this way, the straight line that passes through the route P1 → P2 → P3 is called the median line. When this h is determined, d on the median line is also determined. Since the 2-2 spline curve corresponding to (h,d) is determined, this is used as a mapping between [0,1].
[0071] Furthermore, when a function with a slope of d when x=1 / 2 and y=h is expanded to a length L, the function is expressed as follows. Y=(2d-4h)X 2 / L+(4h-d)x, (0≦X≦1 / 2) Y=(4-4h-2d)X 2 / L+(3d+4h-4)X+(1-d)L ,(1 / 2≦X≦1)
[0072] [Error evaluation of subdivision processing of differential polyhedral models] FIG. 29 is a diagram for explaining error evaluation by subdivision of a polynomial surface. FIG. 29(A) shows a hyperbolic quadratic surface (z=x 2 -y 2 29(b) is a diagram of polygon approximation of a polygon of 0.05 grid points in terms of x and y, and FIG. 29(b) is a diagram of the polygon of FIG. 29(a) subdivided three times using normal vectors, and FIG. 29(c) is a graph evaluating the error between the subdivided polygon and the original hyperbolic quadratic surface. From this graph, it can be seen that the error in the case of subdivision three times using normal vectors is 0.00002 or less, which is three orders of magnitude smaller than the error in the case of polygon approximation divided at 0.05 grid points. From the above, it can be seen that the approximation accuracy can be improved by approximating a curved surface in 3D CAD to triangles with a certain degree of tolerance and repeating subdivision multiple times.
[0073] <4. Adding surface attributes to differential polyhedron models> Next, a process of assigning surface attributes to a differential polyhedron model will be described. In this embodiment, the surface attributes are assigned to the differential polyhedron model by determining whether the surface is a plane, a cylindrical or conical surface, a torus or sphere, or a surface of revolution, in this order, using the vertices of triangles on the surface of the differential polyhedron model and the normal vectors of the vertices of the triangles. This makes it possible to improve the efficiency and reduce the labor required for design.
[0074] FIG. 30 is a diagram for explaining a method of expressing a solid model in 3D CAD. In the B-reps method (boundary representation method) for solid models, adjacent surfaces are adjacent with a curve. The surfaces are expressed with B-spline surfaces. B-spline surfaces are parametric surfaces expressed with uv parameters, and are basically quadrilaterals. The current method of expressing solid models in 3D CAD is to trim this with a curve on the surface to express a general curved surface. With this method, gaps occur between the surfaces that make up the solid.
[0075] Fig. 31 is a diagram for explaining triangulation of a curved surface, where Fig. 31(A) shows the curved surface of a 3D CAD model, and Fig. 31(B) shows a differential polyhedron model that approximates the curved surface of the 3D CAD model with a triangular polyhedron. As shown in Fig. 31(B), the differential polyhedron model approximates the curved surface of the 3D CAD model with a specified error, and the vertices of the triangles are accurately present on the curved surface, and the normal vectors at the vertices accurately represent the normal vectors of the curved surface of the 3D CAD model. In other words, it is guaranteed that the distance when a point on a triangle is projected onto the curved surface is within a specified error range.
[0076] Fig. 32 is a diagram for explaining the processing of the boundary portion of the curved surface, Fig. 32(A) shows the boundary portion of a 3D CAD model, and Fig. 32(B) shows a differential polyhedron model in which the boundary portion of the 3D CAD model is approximated by a triangular polyhedron. As shown in Fig. 32(A), the curve connecting the curved surfaces exists on both surfaces within the specified error.
[0077] The boundary of a surface is not projected onto the surface itself, but onto the boundary line, and the points on the boundary line are used. However, the normal vector used is the normal vector at the point where the point on the boundary line is projected onto the surface. This makes it possible to completely eliminate gaps between surfaces. Also, when dividing a surface into triangles, the points on the boundary line are used for the boundary parts. This makes it possible to accurately match the boundaries of connecting parts of surfaces.
[0078] As shown in Fig. 32(B), the differential polyhedron model approximates each surface of the 3D CAD model with a specified error. Triangles obtained by dividing a specific surface of the 3D CAD model belong to the same group. The normal vector at each vertex of the triangle uses the normal vector of the surface of the 3D CAD model. The normal vector at each vertex of the triangle within the surface is the same as the normal vector of the surface of the 3D CAD model, but the normal vector at the boundary part may be different because the normal vector of the surface different from the surface of the 3D CAD model is used.
[0079] [plane] Fig. 33 is a diagram for explaining the determination of a plane. As shown in Fig. 33, a plane is composed of a plurality of triangles, and the vertices of each triangle have a normal vector. When the directions of the normal vectors are in the same direction, the surface is determined to be a plane.
[0080] [Cylinder / Cone] Fig. 34 is a diagram for explaining the determination of a cylinder, where Fig. 34(A) shows a curved surface when the normal vector is parallel to a specified plane, and Fig. 34(B) shows the shapes of planes parallel to the specified plane and cross sections of the curved surface. As shown in Fig. 34(A), a cylinder is also made up of multiple triangles, and each triangle has a normal vector at its vertex.
[0081] A surface is determined to be a cylinder when the normal vector is parallel to a specified plane, as shown in Figure 34(A), and when the shape of the group of planes parallel to the specified plane and the group of cross sections of the curved surface is an arc, as shown in Figure 34(B).
[0082] Figure 35 is a diagram for explaining the determination of a cone, where Figure 35(A) shows a curved surface when the normal vector is at the same angle as the vector of the central axis of the conical surface, Figure 35(B) shows the angle between the normal vector and the vector of the central axis of the conical surface, and Figure 35(C) shows the shape of a group of planes perpendicular to the central axis vector and a group of cross sections of the curved surface.
[0083] As shown in Figure 35(A), a cone is also made up of multiple triangles, with each triangle's vertex having a normal vector. If the curved surface is considered to be part of a conical surface, the normal vector will have the same angle as the vector of the central axis of the conical surface. If the two normal vectors are independent (do not have the same direction), the vector that will have the same angle as the two normal vectors will be uniquely determined, except for the direction. As shown in Figure 35(B), the vector that makes the same angle with all the normal vectors is taken to be the central axis vector of the conical surface.
[0084] A surface is determined to be a cone when the normal vector is at the same angle as the vector of the central axis of the conical surface, as shown in Figure 35(A), and when the shape of the group of planes perpendicular to the central axis vector and the group of cross sections of the curved surface is an arc, and the radius of the arc is linear, as shown in Figure 34(C).
[0085] [Torus / Sphere] FIG. 36 is a diagram for explaining a torus surface. As shown in FIG. 36, a torus surface is a curved surface generated by rotating a circle around a point. The normal vector at a point on the curved surface is oriented toward a circle of radius R1 centered on the rotation center point. This property can be used to determine whether a curved surface is part of a torus surface. If a curved surface is considered to be part of a torus surface and a vertex of a triangle approximating the curved surface is moved a distance R2 in the direction of the normal vector, the point will exist on a circle of radius R1 centered on the rotation center point.
[0086] Fig. 37 is a diagram for explaining the determination of a torus surface, where Fig. 37(A) shows a surface expressed by a function V(R) of the volume of the minimum rectangle of the torus surface portion, and Fig. 37(B) shows a group of points obtained by moving the points of the surface by R with respect to R where V(R) = 0. Also, Fig. 38 is a diagram for explaining the minimum rectangle.
[0087] A surface is found by moving the torus surface portion by R in the direction of the normal vector of each vertex. A torus surface is also made up of multiple triangles, with each triangle's vertex having a normal vector. If the volume of the smallest rectangle in the torus surface portion is V, then V can be considered as a function of R. In the case of a torus surface, V(R)=0 with an appropriate R. As shown in Figure 38, the smallest rectangle is a rectangular parallelepiped that contains the shape. By setting various orthogonal coordinate systems and finding the smallest rectangular parallelepiped that can contain the object, it is possible to find the smallest rectangular parallelepiped within them.
[0088] To determine whether a surface is a torus, a group of points is found by moving the points of the surface by R with respect to R where V(R) = 0, and if the sequence of points is on the same circle, the surface is considered to be a partial surface of a torus. Similarly, to determine whether a surface is a sphere, a surface is considered to be a sphere if the sequence of points converges to a single point.
[0089] [Revolved Face] Fig. 39 is a diagram for explaining the determination of the surface of rotation, showing a group of planes parallel to the XY plane, and Fig. 40 is a diagram for explaining the determination of the surface of rotation, showing a group of planes not parallel to the XY plane.
[0090] As shown in Figures 39 and 40, cross sections are obtained by dividing a curved surface into parallel planes from various directions. A surface is determined to be a surface of revolution if the cross sections are all circular arcs. [Explanation of symbols]
[0091] 11 CPU, 12 GPU, 13 ROM, 14 RAM, 15 operation input unit, 16 storage, 17 input / output interface
Claims
1. a process of extracting an edge line connecting the sides of the triangles using a collection of triangles including the coordinate values of the triangle vertices and the normal vectors of the triangle vertices, and generating a differential polyhedron model having topological information including the coordinate values of the vertices at both ends of the edge line, triangles on the left and right sides of the edge line, and normal vectors at both ends of the left and right sides of the edge line; a process of generating a spatial geodesic curve, which is a curve perpendicular to the normal vector and parallel to a vector obtained by interpolating the curvature direction and the normal vector at each point of the curve, by using the normal vectors of the vertices at both ends of the edge line of the differential polyhedron model, and generating two edge lines by adding a vertex and a normal vector to the midpoint of the spatial geodesic curve, thereby subdividing the triangle; An information processing method implemented by a computer.
2. 2. The information processing method according to claim 1, further comprising the steps of: determining whether a surface of the differential polyhedron model is a plane, a cylindrical or conical surface, a torus or sphere, or a surface of revolution in that order using the vertices of triangles on the surface of the differential polyhedron model and normal vectors of the vertices of the triangles; and assigning surface attributes to the differential polyhedron model.
3. 3. An information processing method according to claim 1 or 2, in which, when a function N(t) of normal vectors of vertices at both ends of an edge line of the differential polyhedron model is given, a curve C(t) such that the curvature vector of the curve C(t) is parallel to the normal vector of the function N(t) for the same parameter t is taken as an N(t) geodesic line in space, the N(t) geodesic line is uniquely determined to generate a spatial geodesic line, a vertex and a normal vector are added to the midpoint of the spatial geodesic line to generate two edges, and the triangle is subdivided.
4. The information processing method according to claim 1 , further comprising the step of: generating the differential polyhedron model after deleting triangles having a side length equal to or less than a predetermined value from the triangle aggregate model.
5. 5. The information processing method according to claim 1, wherein the vertices of the triangles are defined as points, points whose inter-point distance is equal to or less than a predetermined value are grouped together to define the vertices, and the average of the coordinate values of the points belonging to the vertices is defined as the coordinate value of the vertex, and then the differential polyhedron model is generated.
6. extracting edges connecting the sides of the triangles using a collection of triangles including coordinate values of triangle vertices and normal vectors of the triangle vertices, and generating a differential polyhedron model having topological information including coordinate values of vertices at both ends of the edge line, triangles on the left and right sides of the edge line, and normal vectors at both ends of the left and right sides of the edge line; An information processing device that uses the normal vectors of the vertices at both ends of the edge of the differential polyhedron model to generate a spatial geodesic curve that is perpendicular to the normal vector and is a curve whose curvature direction at each point of the curve and a vector interpolated between the normal vector are parallel, and adds a vertex and a normal vector to the midpoint of the spatial geodesic curve to generate two edges, thereby subdividing the triangle.
7. a process of extracting an edge line connecting the sides of the triangles using a collection of triangles including the coordinate values of the triangle vertices and the normal vectors of the triangle vertices, and generating a differential polyhedron model having topological information including the coordinate values of the vertices at both ends of the edge line, triangles on the left and right sides of the edge line, and normal vectors at both ends of the left and right sides of the edge line; a process of generating a spatial geodesic curve, which is a curve perpendicular to the normal vector and parallel to a vector obtained by interpolating the curvature direction and the normal vector at each point of the curve, by using the normal vectors of the vertices at both ends of the edge line of the differential polyhedron model, and generating two edge lines by adding a vertex and a normal vector to the midpoint of the spatial geodesic curve, thereby subdividing the triangle; A program that causes a computer to execute the following.
Citation Information
Patent Citations
Point cloud based quick reconstruction STL digital model generation method
CN107767457A
Improved method for calculating vertex normal of curved surface grid in grid division
CN111243097A
Shape analyzer noticing topology
JP2004118876A
Apparatus, method and program for segmentation of analytic curved surface and recording medium
JP2007241996A
Basic unit used for compression of three-dimensional video, generation method for basic unit, and compression method for three-dimensional video using basic unit
JP2012068881A