Three-dimensional CAD system

The 3D CAD system addresses integration issues by using a differential polyhedron model and CSG representation to efficiently convert and display shapes with curved surfaces, enhancing data compatibility and display speed.

JP2025135023APending Publication Date: 2025-09-17CORE CONCEPT TECH INC +1
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2025116799
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-07-10
Publication Date
2025-09-17

AI Technical Summary

Technical Problem

Existing 3D CAD systems face challenges in smoothly integrating and converting data due to differences in modeling accuracy, particularly when representing shapes with curved surfaces, which are handled differently by B-Rep and CSG methods, leading to inefficiencies in data conversion and display.

Method used

A 3D CAD system utilizing a differential polyhedron model and CSG representation, which generates primitives from connected edges of differential polyhedrons, forms closed surfaces without considering modeling errors, and uses a tree structure for CSG data storage, enabling efficient set operations and real-time display.

Benefits of technology

Enables easy representation of shapes with curved surfaces without modeling errors, facilitating seamless data conversion and rapid display of solid models across different systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025135023000001_ABST
    Figure 2025135023000001_ABST
Patent Text Reader

Abstract

To provide a three-dimensional CAD system that is capable of easily representing a shape including a curved surface.SOLUTION: A three-dimensional CAD system is provided with: a primitive generation unit (11) that generates a primitive by joining the edges of differential polyhedrons to configure curved surfaces and joining the curved surfaces via curved surface boundaries to configure a closed curved surface, the primitive being a set of points belonging to the inside of the closed curved surface, by using a differential polyhedron model, which is a set of differential polyhedrons including coordinate values of vertices of triangles, normal vectors of the vertices of triangles, and curved line elements constituted of initial points and terminal points, as well as tangential vectors of the initial points and the terminal points, the initial points and the terminal points being constituted of the vertices of triangles; and a storage unit (2) that stores CSG data representing a solid model in the form of a CSG representation by using a tree structure of set operations for the primitive.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This technology relates to a 3D CAD system that uses solid models. [Background technology]

[0002] The basic idea behind Digital Transformation (DX) is to perform existing work virtually and significantly improve productivity by increasing the portion of the work that is transferred to reliable, high-speed processing using algorithms. Numbers and text are easy to virtualize, but the manufacturing world deals with "physical objects," so to represent "physical objects" virtually, they must be created as 3D models and expressed in the virtual world.

[0003] Traditionally, 3D CAD (3D Computer Aided Design) systems have been used to create 3D models of "things," but problems often arise when converting data between 3D CAD systems. This has hindered smooth integration between systems, and is the reason why digital transformation in the manufacturing industry has not progressed.

[0004] Standards and mechanisms for converting 3D models between 3D CAD systems have been established, such as the ANSI (American National Standard Institute) standard IGES (Initial Graphics Exchange Specification) and the ISO (International Organization for Standardization) standard STEP (Standard for the Exchange of Product model data), but data conversion does not work well with standards alone. The main reason for this is that the mechanisms for processing calculation errors, known as modeling accuracy, differ between 3D CAD systems. The reason modeling accuracy is necessary is due to the method used to represent the 3D model.

[0005] Shapes that can be expressed in 3D models include wireframe models, surface models, and solid models, but most 3D CAD systems use solid models.Two methods have been considered for expressing solid models: B-Rep (Boundary Representation) and CSG (Constructive Solid Geometry).

[0006] B-Rep is a representation method in which the surface of a 3D model is covered with multiple curved surfaces, which are glued together at the boundaries to form a closed surface, and the interior of this closed surface is the target 3D model. On the other hand, CSG is a method of constructing a 3D model by set operations on basic shapes called primitives (see, for example, Non-Patent Document 1).

[0007] The B-Rep representation method is more convenient for handling free-form surfaces and as an interface for 3DCAM (3D Computer Aided Manufacturing) that uses 3D models. For this reason, most current 3D CAD systems use B-Rep, with CSG only used in a supporting role. B-Rep is also used in STEP, a 3D data conversion standard.

[0008] However, B-Rep requires the introduction of curved surfaces in a 3D model, which means that modeling errors must be introduced. Current 3D CAD systems mainly use parametric surfaces such as B-spline surfaces. A parametric surface is a surface created by projecting a rectangle in (u,v) space onto xyz space using a two-variable function F(u,v). For this reason, four transformations are the basic form.

[0009] Fig. 31 is a diagram showing an example of a surface trimmed with boundaries in B-Rep. As shown in Fig. 31, in B-Rep, trimming is performed with boundaries and a trimmed surface is used. Since the method of representing the surface boundary is also a parametric curve expressed with parameters, the surface boundary does not lie exactly on the surface; it is merely determined that the surface boundary is on the surface if the gap between the surface boundary and the surface is equal to or less than the modeling precision.

[0010] FIG. 32 is a diagram showing an example of a surface boundary line connecting surfaces in B-Rep. As shown in FIG. 32, B-Rep connects surfaces using information on the first and second surfaces of the boundary line, and recognizes the inside of the surfaces as a solid model as a whole. As a result, gaps inevitably appear between surfaces. This modeling accuracy differs depending on the 3D CAD system, and is a major cause of problems when converting 3D models.

[0011] On the other hand, the CSG representation method is currently used to supplement B-Rep representation. Representing solid models using CSG has the advantage of eliminating the need to consider modeling errors, which are the main cause of data conversion problems. The reasons why 3D CAD systems using CSG representation have not become mainstream include slow display speeds and the difficulty of representing shapes that include curved surfaces due to the limited number of primitive types, which are the basic elements of 3D models. [Prior art documents] [Patent documents]

[0012] [Non-Patent Document 1] Introduction to Solid Modeling, Martti Mantyla, 1988 Summary of the Invention [Problem to be solved by the invention]

[0013] This technology was proposed in light of the current situation, and provides a 3D CAD system that can easily represent shapes including curved surfaces. [Means for solving the problem]

[0014] The 3D CAD system according to the present technology uses a differential polyhedron model, which is a collection of differential polyhedrons including coordinate values ​​of triangle vertices, normal vectors of the triangle vertices, and curve elements each consisting of a start point and an end point formed by the triangle vertices and a tangent vector of the start point and the end point, and is equipped with a primitive generation unit that connects the edges of the differential polyhedrons to form a curved surface, connects the curved surfaces with surface boundaries to form a closed surface, and generates primitives that are a set of points belonging to the interior of the closed surface, and a storage unit that stores CSG data that represents a solid model in CSG using a tree structure of set operations of the primitives.

[0015] In addition, the 3D CAD method according to the present technology includes a primitive generation step of using a differential polyhedron model, which is a set of differential polyhedrons including coordinate values ​​of triangle vertices, normal vectors of the triangle vertices, and curve elements each consisting of a start point and an end point formed by the triangle vertices and a tangent vector of the start point and the end point, forming a surface by connecting the edges of the differential polyhedrons, forming a closed surface by connecting the surfaces with surface boundaries, and generating primitives which are a set of points belonging to the interior of the closed surface; and a storage step of storing CSG data in a storage unit, which is a CSG representation of a solid model using a tree structure of set operations of the primitives.

[0016] In addition, the 3D CAD program according to the present technology uses a differential polyhedron model, which is a set of differential polyhedrons including coordinate values ​​of triangle vertices, normal vectors of the triangle vertices, and curve elements each consisting of a start point and an end point formed by the triangle vertices and a tangent vector of the start point and the end point, to construct a surface by connecting the edges of the differential polyhedron, construct a closed surface by connecting the curved surfaces with surface boundaries, and generate primitives which are sets of points belonging to the interior of the closed surface; and causes a computer to execute a storage step of storing CSG data, which is a CSG representation of a solid model, in a storage unit using a tree structure of set operations of the primitives. [Effects of the Invention]

[0017] According to the present technology, it is possible to easily represent shapes including curved surfaces without taking into account modeling errors. [Brief explanation of the drawings]

[0018] [Figure 1] FIG. 1 is a block diagram showing an example of the configuration of a three-dimensional CAD system according to this embodiment. [Figure 2] FIG. 2 is a block diagram showing an example of the configuration of a computer device that realizes the three-dimensional CAD system according to this embodiment. [Figure 3] FIG. 3 is a diagram for explaining the subdivision process of a differential polyhedron, where FIG. 3(A) shows a triangular model, FIG. 3(B) shows a boundary line based on spatial geodesics, FIG. 3(C) shows a 1-differential polyhedron, and FIG. 3(D) shows a 2-differential polyhedron. [Figure 4] Figure 4 is a diagram for explaining the subdivision process of a differential polyhedron containing curve elements, where Figure 4(A) shows a triangular model containing curve elements, Figure 4(B) shows a boundary line formed by curve elements, and Figure 4(C) shows a differential polyhedron. [Figure 5] FIG. 5(A) is a diagram for explaining a differential polyhedron, and FIG. 5(B) is a diagram for explaining curve element information. [Figure 6] FIG. 6 is a diagram for explaining the data structure of a primitive and the data structure of the primitive in a CSG representation. [Figure 7] FIG. 7 is a diagram illustrating an example of a curved surface and a curved surface boundary line. [Figure 8] FIG. 8 is a diagram showing an example of a curved surface without a boundary line. [Figure 9] FIG. 9 is a diagram showing a cube as an example of a closed surface. [Figure 10] FIG. 10 is a diagram showing a cylinder as an example of a closed surface. [Figure 11] FIG. 11 is a diagram showing a free-form surface as an example of a closed surface. [Figure 12] FIG. 12 is a diagram showing an example of a tree structure having unions and intersections of primitives. [Figure 13] Fig. 13 is a diagram schematically showing an example of a set operation result of primitives. Fig. 13(A) is a diagram schematically showing an example of a cube primitive A and a cylinder primitive B, Fig. 13(B) is a diagram schematically showing an example of a sum A∪B of the cube primitive A and the cylinder primitive B, Fig. 13(C) is a diagram schematically showing an example of a product A∩B~ of the cube primitive A and the cylinder primitive B, and Fig. 13(D) is a diagram schematically showing an example of a product A∩B of the cube primitive A and the cylinder primitive B. [Figure 14] FIG. 14 is a diagram showing an example of a tree structure in the case where the operation symbols are omitted from the tree structure shown in FIG. [Figure 15] FIG. 15 is a diagram illustrating an example of a tree structure of features. [Figure 16] FIG. 16 is a diagram showing an example of a tree structure of parts. [Figure 17] FIG. 17 is a diagram for explaining shading, FIG. 15(A) is a diagram for explaining flat shading, and FIG. 15(B) is a diagram for explaining Phong shading. [Figure 18] FIG. 18 is a flowchart illustrating the real-time ray tracing process. [Figure 19]FIG. 19 is a diagram for explaining a method for calculating a tentative bit string, where FIG. 19(A) shows tentative bit calculation of a union, and FIG. 19(B) shows tentative bit calculation of a product. [Figure 20] FIG. 20 is a diagram showing a schematic diagram of a situation in which rays 1 to 3 pass through a solid model expressed in CSG. [Figure 21] FIG. 21 is a diagram showing an example of a tree structure of the solid model in the CSG representation shown in FIG. [Figure 22] FIG. 22 is a diagram showing a schematic diagram of a situation in which a ray 1 passes through a solid model expressed in CSG. [Figure 23] FIG. 23 is a diagram for explaining intersection information where ray 1 passes through a feature. [Figure 24] FIG. 24 is a diagram showing a schematic diagram of a situation in which a ray 2 passes through a solid model expressed in CSG. [Figure 25] FIG. 24 is a diagram for explaining intersection information where ray 2 passes through a feature. [Figure 26] FIG. 26 is a diagram showing a schematic diagram of a situation in which a ray 3 passes through a solid model expressed in CSG. [Figure 27] FIG. 27 is a diagram for explaining intersection information where the ray 3 passes through a feature. [Figure 28] FIG. 28 is a diagram showing a display example of feature 1 shown in FIG. 15. [Figure 29] FIG. 29 is a diagram showing an example of display of the parts shown in FIG. [Figure 30] FIG. 30 shows an example of a part that is the result of a union operation between feature 1 and a cylinder. [Figure 31] FIG. 31 is a diagram showing an example of a surface trimmed by a surface boundary line in B-Rep. [Figure 32] FIG. 32 is a diagram showing an example of a boundary line connecting surfaces in B-Rep. DETAILED DESCRIPTION OF THE INVENTION

[0019] Hereinafter, embodiments of the present technology will be described in detail in the following order with reference to the drawings. 1. 3D CAD system 2. Surfaces based on differential polyhedra 3. Set operations on primitives 4. Displaying 3D models

[0020] <1. 3D CAD system> Fig. 1 is a block diagram showing an example of the configuration of a 3D CAD system according to this embodiment. As shown in Fig. 1, the 3D CAD system includes a shape processing unit 1 that processes primitive shapes, a storage unit 2 that stores CSG (Constructive Solid Geometry) data, a display processing unit 3 that displays a CSG-represented solid model, and a data conversion unit 4 that converts data in other formats into CSG-represented data and converts CSG-represented data into data in other formats. Shape processing unit 1 also includes a primitive generation unit 11, a set operation processing unit 12, and a construction line generation unit 13.

[0021] The primitive generation unit 11 uses a differential polyhedron model, which is a set of differential polyhedra including coordinate values ​​of triangle vertices, normal vectors of the triangle vertices, start and end points of the triangle vertices, and curve elements each consisting of a tangent vector of the start and end points. The primitive generation unit 11 then connects the edges of the differential polyhedrons to form a curved surface, forms a closed surface by connecting the curved surfaces with surface boundaries, and generates a primitive, which is a set of points belonging to the interior of the closed surface. This makes it easy to represent shapes including curved surfaces. Here, a closed surface means a surface that separates a three-dimensional space into two regions.

[0022] Furthermore, the primitive generation unit 11 generates a differential polyhedron by adding curve elements each consisting of a start point, an end point, and a tangent vector of the start point and the end point, based on the coordinate values ​​of the triangle vertices and the normal vectors of the triangle vertices. This makes it possible to generate a differential polyhedron using triangles whose vertices have normal vector information, for example.

[0023] Furthermore, the primitive generation unit 11 generates spatial geodesic curves using the coordinate values ​​of the vertices of triangles shared by the adjacent first and second differential polyhedrons and the normal vectors of the vertices of the triangles, and constructs a surface by sharing the spatial geodesic curves. That is, the primitive generation unit 11 constructs a connection relationship by sharing the spatial geodesic curves between the adjacent first and second differential polyhedrons, and constructs a surface by using the connection relationship.

[0024] Furthermore, the primitive generation unit 11 constructs a connection relationship between the surfaces using the curved elements shared between the surfaces, and constructs a closed surface connecting the surfaces. When the connection relationship between the surfaces is constructed using the curved elements shared between the surfaces and the surfaces are connected, the connection relationship between the curved elements between the surfaces becomes the boundary line between the surfaces, which becomes the surface boundary line. This makes it possible to connect the surfaces with the surface boundary line formed by the connection of the curved elements without taking into account modeling errors.

[0025] The curve element is preferably expressed by a third-order polynomial curve shown in the following formula (1).

[0026]

number

[0027] Here, a curve element includes a start point and an end point, which are triangle vertices, and tangent vectors to the start point and the end point, and the length of the curve element can be expressed by the following formula (2).

[0028]

number

[0029] In equation (2), the length of the curve appears in the upper limit of the integral, so by repeatedly calculating so that the length of the curve = equation (2), coefficient A → , B → , C → , D → The following is established.

[0030] The set operation processor 12 performs set operations between primitives and realizes set operations by performing only symbolic operations. By performing set operations using only symbolic operations, it is possible to achieve a simple data structure and stable set operations. In the tree structure of set operations of primitives, the set operation processor 12 omits set operation symbols when the same set operation symbol exists above or below in the hierarchy. This reduces the amount of calculations.

[0031] The drawing generation unit 13 generates the intersection line of the two primitives as a construction line, which allows the primitive generation unit 11 to generate a new primitive based on the construction line.

[0032] The storage unit 2 stores CSG data that represents a solid model in CSG using a tree structure of set operations on primitives. The storage unit 2 is a storage such as a RAM (Random Access Memory) or a hard disk that stores the CSG data that the shape processing unit 1 processes. As will be described later, the CSG data has a tree structure that allows primitives to be configured using a set model of triangles and that enables set operations between primitives. This CSG data allows a solid model to be represented using a tree structure based on set operations between primitives.

[0033] The display processing unit 3 obtains the intersection of the ray with the solid model from the intersection of the ray with the closed surface of the primitive by a set operation based on the CSG data, and calculates the reflection position and reflection direction of the ray on the solid model.

[0034] When the same set operation symbol exists above or below the hierarchy in the tree structure of primitive set operations, the display processing unit 3 omits the set operation symbol and finds the intersection point between the solid model and the ray. This reduces the amount of calculation and enables the solid model in CSG representation to be displayed more quickly.

[0035] The display processing unit 3 is, for example, a GPU (Graphics Processing Unit), has a ray tracing API (Application Programming Interface) written based on CUDA (Compute Unified Device Architecture), and uses real-time ray tracing to find the intersection of a solid model with a ray. This allows the hardware to quickly calculate the intersection of the ray with the closed surface of the primitive and the normal vector of the closed surface at the intersection, and display it in real time.

[0036] The data conversion unit 4 converts files such as STEP (Standard for the Exchange of Product model data) and IGES (Initial Graphics Exchange Specification) into CSG representation data, and converts CSG representation data into STEP, IGES, or other files.

[0037] Such a 3D CAD system uses differential polyhedra as basic elements, constructs surfaces by connecting the edges of the differential polyhedra, and uses closed surfaces by connecting the surfaces with surface boundaries. This makes it possible to represent shapes including curved surfaces in CSG format without taking modeling errors into consideration, and to display solid models quickly.

[0038] Fig. 2 is a block diagram showing an example of the configuration of a computer device that realizes a 3D CAD system according to this embodiment. As shown in Fig. 2, the computer device includes a CPU (Central Processing Unit) 21 that executes programs, a GPU (Graphics Processing Unit) 22 that performs arithmetic processing, a ROM (Read Only Memory) 23 that stores the programs executed by the CPU 21, a RAM (Random Access Memory) 24 that loads the programs and data, an operation input unit 25 that receives various input operations from a user, a storage 26 that permanently stores programs and data, and an input / output interface 27 that inputs and outputs data.

[0039] CPU 21 is capable of processing, for example, the aforementioned primitive generation unit 11, set operation processing unit 12, and construction line generation unit 13. CPU 21 also controls the operation of each block by, for example, reading a 3D CAD program recorded in storage 26, expanding it in RAM 24, and executing it.

[0040] The GPU 22 has a video memory (VRAM) and is capable of performing drawing processing and calculation processing in response to requests from the CPU 21. The GPU 22 also has a ray tracing API (Application Programming Interface) written based on, for example, CUDA (Compute Unified Device Architecture).

[0041] The ROM 23 is, for example, a read-only non-volatile memory that stores information such as constants required for the operation of each block of the computer device. The RAM 24 is a volatile memory that is used not only as an area for loading the operating program but also as a storage area for temporarily storing intermediate data output during the operation of each block of the computer device.

[0042] The operation input unit 25 is a user interface used when performing input operations on the computer device 1. The operation input unit 25 outputs commands to the CPU 21 to execute or stop the above-mentioned information processing in response to the user's input operations.

[0043] The storage 26 stores the information processing program and the like that are expanded in the RAM 24. Note that a hard disk drive (HDD), a solid state drive (SSD), an optical drive, etc. may be used as the storage 26. The input / output interface 27 is capable of outputting images generated by the GPU 22 to a display device.

[0044] In such a hardware configuration, the above-mentioned 3D CAD system can be realized by cooperation of the CPU 21, GPU 22, ROM 23, RAM 24, and software executed by the CPU 21, etc. Furthermore, the software program may be distributed by being stored on a recording medium such as an optical disk or semiconductor memory, or may be downloaded via the Internet, etc.

[0045] <2. Surfaces based on differential polyhedra> [Differential Polyhedron Model] A differential polyhedron model is a set of differential polyhedra, which are basic elements, and also a set of points generated by repeatedly subdividing a differential polyhedron. The subdivision of a differential polyhedron can use the midpoint of the boundary line connecting two points of a triangle. The boundary line can be a spatial geodesic or a curve element, and in either case it is called a differential polyhedron. Here, the vertices of a differential polyhedron are defined as points, and the sides are defined as edges.

[0046] FIG. 3 illustrates the subdivision process of a differential polyhedron. FIG. 3(A) shows a triangular model, FIG. 3(B) shows a boundary line based on spatial geodesics, FIG. 3(C) shows a 1-dimensional differential polyhedron, and FIG. 3(D) shows a 2-dimensional differential polyhedron. In a differential polyhedron model, when edges coincide with each other, they are considered to be the same line, which is defined as a ridge, and the endpoints of the ridge are defined as vertices. Subdivision of a differential polyhedron involves generating a spatial geodesic using the normal vectors of the vertices at both ends of the ridge of the differential polyhedron model, and then generating two ridges by adding a vertex and normal vector to the midpoint of the spatial geodesic. Because computer processing must be completed in a finite number of iterations, the polyhedron is approximated by a tiny triangle consisting of three points after the finite number of subdivisions. A polyhedron that has been subdivision n times is called an n-dimensional differential polyhedron.

[0047] 4A and 4B are diagrams for explaining the subdivision process of a differential polyhedron containing curve elements, where FIG. 4A shows a triangular model containing curve elements, FIG. 4B shows a boundary line formed by the curve elements, and FIG. 4C shows a differential polyhedron. A curve element is composed of two vertices of a triangle and tangent vectors at the vertices. As shown in FIG. 4C, when the boundary line is a curve element, subdivision uses the midpoint of the curve element, and the average of the normal vectors at both ends of the curve element can be used as the midpoint vector.

[0048] FIG. 5(A) is a diagram for explaining a differential polyhedron, and FIG. 5(B) is a diagram for explaining curve element information. A differential polyhedron model is a collection of differential polyhedrons, which are basic elements, and has point information of the vertices (α, β, γ) of triangles, curve element information of the sides (αβ, βγ, γα) of triangles, and triangle information including point IDs of the point information and curve element IDs of the curve element information. The point information includes the three-dimensional coordinate values ​​of the points and the normal vectors (u) of the points for each point ID. α ,u β ,u γThe curve element information has a curve element table that includes, for each curve element ID, a point ID of the edge start point, a point ID of the edge end point, a tangent vector of the edge start point, and a tangent vector of the edge end point. The triangle information has a triangle table that includes, for each triangle ID, a point ID, a curve element ID, the direction of the curve element (forward or backward), and a normal vector of the triangle. Here, the normal vector and the tangent vector are normalized vectors.

[0049] That is, the differential polyhedron model is a set of coordinate values ​​of the triangle vertices (α, β, γ) and the normal vectors (u α ,u β ,u γ ), the starting point and the end point consisting of the triangle vertices (α, β, γ), and the tangent vectors (v1 αβ ,v2 αβ ,v1 βγ ,v2 βγ ,v1 γα ,v2 γα ) is a set model of triangles including

[0050] The tangent vector of the start point and the tangent vector of the end point are normalized vectors, and can be expressed by a third-order polynomial curve as shown in equation (1), for example.

[0051]

number

[0052] Here, a curve element includes a start point and an end point, which are triangle vertices, and tangent vectors to the start point and the end point, and the length of the curve element can be expressed by the following formula (2).

[0053]

number

[0054] In equation (2), the length of the curve appears in the upper limit of the integral, so by repeatedly calculating so that the length of the curve = equation (2), coefficient A→ , B → , C → , D → The following is established.

[0055] As shown in Figure 5(B), when the edges of a differential polyhedron are curve elements, interpolating the two points between the start and end points with curve elements including the start and end points and the tangent vectors of the start and end points makes it possible to handle curved surfaces, as described below. Furthermore, differential polyhedrons are polygon models of triangular mesh models and can be converted into the obj format, a data format for computer graphics (CG). Therefore, using a differential polyhedron model, which is a collection of differential polyhedrons, facilitates data exchange between 3D systems. Furthermore, it offers high compatibility with CG software and allows for the easy expression of smooth curved surfaces.

[0056] [CSG representation data structure] 6 is a diagram for explaining the data structure of a primitive and the data structure of a primitive in a CSG representation. The CSG tree node is the root node, and the CSG nodes and primitive nodes are child nodes of the CSG tree node.

[0057] A CSG node has set operation type nodes as child nodes, and a table containing a primitive ID, parent node ID, left child node ID, and right child node ID for each CSG node ID. A primitive node has 3D coordinate nodes, 3D vector nodes, surface element nodes, curve element nodes, surface nodes, and surface boundary nodes as child nodes.

[0058] The 3D coordinate node has a table containing the coordinate values ​​(x, y, z) of triangle vertices for each 3D coordinate ID. The 3D coordinate vector has a table containing the components (x, y, z) of normal and tangent vectors for each 3D vector ID. The surface element node has a table containing vertex coordinate IDs, vertex normal IDs, and curve element IDs for each surface element ID. Surface elements are the same as differential polyhedra. The curve element node has a table containing, for each curve element ID, start point coordinate IDs, end point coordinate IDs, tangent vector IDs at the start point, tangent vector IDs at the end point, left adjacent surface element IDs, and right adjacent surface element IDs. The surface node has a table containing surface element IDs for each surface ID. The surface boundary node has a table containing curve element IDs and the orientation of the curve element IDs for each surface boundary ID.

[0059] Here, a surface is a group of differential polyhedra bounded by surface boundaries, and the surface boundaries are composed of a series of connected curve elements. In other words, a surface has differential polyhedron information, and the surface boundaries have curve element information. With this data structure, primitives including surfaces can be represented by differential polyhedron models, and set operations can be performed on the primitives.

[0060] [Generation of differential polyhedron models] Differential polyhedron models can be converted from files such as STEP (Standard for the Exchange of Product model data), IGES (Initial Graphics Exchange Specification), and STL (Standard Triangulated Language), which is sometimes called "StereoLithography."

[0061] First, the 3D 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, and a point table including the coordinate values ​​of the triangle vertices and the normal vectors of the triangle vertices and a triangle table including point IDs are created.

[0062] This aggregate model is a model in which normal vectors are calculated from CAD data and added to the vertices of polygons when a curved surface is approximated with triangular polygons with a specified approximation error and output. The triangular polygon model with normal vectors is output with a specified accuracy from a curved surface expressed by, for example, a cubic polynomial by a program. The triangular polygon model with normal vectors is preferably output with the accuracy of double-precision floating-point numbers.

[0063] Next, using a triangle aggregate model, the edges of the triangles are extracted, and a curve element table is created that includes, for each curve element ID, the point ID of the edge start point, the point ID of the edge end point, the tangent vector of the edge start point, and the tangent vector of the edge end point.The curve element ID and the direction of the curve element (forward or reverse) are added to the triangle table.

[0064] This allows us to calculate the coordinate values ​​of the triangle vertices (α, β, γ) and the normal vector (u α ,u β ,u γ ), the starting point and the end point consisting of the triangle vertices (α, β, γ), and the tangent vectors (v1 αβ ,v2 αβ ,v1 βγ ,v2 βγ ,v1 γα ,v2 γα ) can generate a differential polyhedron model, which is a set model of triangles including

[0065] [Surfaces and surface boundaries] FIG. 7 is a diagram showing an example of a curved surface and a surface boundary, and FIG. 8 is a diagram showing an example of a curved surface without a surface boundary. As shown in FIGS. 7 and 8, a curved surface is formed by connecting differential polyhedrons at their vertices, and the edges of the surface are curve elements. Since the vertices have normal vectors, when subdivision is performed, normal vectors are assigned to the midpoints. By repeating this process, normal vectors are generated everywhere on the differential polyhedron, and the orientation of the differential polyhedron is determined by the orientation of the normal vectors. Therefore, even in curved surfaces, a surface orientation naturally exists.

[0066] A boundary is a group of smoothly connected curved line elements, such as the area indicated by the dotted double-arrowed arrow in Figure 7, and a surface is surrounded by a continuous boundary line. A boundary line has an ordered list of surface elements that make up one surface and an ordered list of surface elements that make up the other surface, and can represent the connection relationship between the surfaces. Also, as shown in Figure 8, there are curved surfaces that do not have a boundary line. Note that the definitions of surfaces and boundaries here are local definitions, different from the definitions of general surfaces and boundaries.

[0067] [Closed surface] FIG. 9 is a diagram showing a cube as an example of a closed surface, FIG. 10 is a diagram showing a cylinder as an example of a closed surface, and FIG. 11 is a diagram showing a free-form surface as an example of a closed surface. A closed surface is formed by connecting multiple curved surfaces with boundaries. However, closed surfaces are assumed not to be self-intersecting. It is also possible to reverse the orientation of a closed surface by inverting the normal vector, and it is also possible to give the closed surface a specific orientation.

[0068] <3. Set operations on primitives> A closed surface separates three-dimensional space into two regions. The set of points on the back side of the closed surface is called a primitive. A primitive also has a local coordinate system.

[0069] Since primitives are sets of points, set operations can be performed on primitives. There are some differences from the original definition of set operations, so we will clearly define them here.

[0070] [Complementary set] The complement of a primitive is treated as the closure of a set of points other than primitives in three-dimensional space. Therefore, the complement of a primitive includes points on a closed surface. The complement of a primitive means the closure of the complement of a general set, and A ~ It is sometimes expressed as the complement (A). The complement of a primitive is also called the complement as an abbreviation.

[0071] [Union set] The union of primitives is a union in the usual sense. When performing a union operation on primitive A and primitive B to obtain a union, the primitive complement operation and coordinate transformation can be added as attributes.

[0072] The transformed primitive is T A When expressed as A, T A A ∪ T B B indicates that a union operation is performed after transforming the position with each coordinate transformation. The symbol for union is ∪. Instead of primitives, it is possible to perform a union of unions, or a union and a primitive.

[0073] Fig. 12 is a diagram showing an example of a tree structure having a union and intersection of primitives. In Fig. 12, attributes include coordinate transformation and complement operation. The parts of the tree structure that represent the union and intersection are called nodes.

[0074] [Intersection set] The intersection of primitives is also a normal intersection. As with the union, when performing the intersection operation on primitive A and primitive B to obtain the intersection, the complement operation and coordinate transformation of the primitive can be added as attributes. Also, as with the union, the coordinate-transformed primitive can be added to T A When expressed as A, T A A∩T B B shows that the intersection is taken after transforming the position with each coordinate transformation. The symbol for intersection is ∩. Instead of primitives, it is possible to perform the intersection of unions and intersections of sets, and the intersection of unions and intersections with primitives.

[0075] 13A and 13B are diagrams showing an example of a set operation result of primitives. FIG. 13A is a diagram showing an example of a cube primitive A and a cylinder primitive B. FIG. 13B is a diagram showing an example of a sum A∪B of the cube primitive A and the cylinder primitive B. FIG. 13C is a diagram showing an example of a product A∩B of the cube primitive A and the cylinder primitive B. ~ A ∩ B ~ is the difference between the set of primitives A and the set of primitives B, and this operation allows us to find the difference between primitives. ~ represents the closure of the complement of B, and B ~ is sometimes expressed as the complement (B). Fig. 13(D) is a diagram schematically showing an example of the product A∩B of a cube primitive A and a cylinder primitive B.

[0076] Compress Hierarchy FIG. 14 is a diagram showing an example of a tree structure in which operation symbols are omitted from the tree structure shown in FIG. 12. In a tree structure of set operations of primitives, if the same operation symbol exists at higher and lower levels of the hierarchy, the operation symbol can be omitted. This process is called hierarchical compression. For example, the tree structure shown in FIG. 12 can be changed to the tree structure shown in FIG. 14. In the tree structure shown in FIG. 14, attribute A' is an attribute obtained by combining attribute A and attribute AB, and similarly, attribute B' is an attribute obtained by combining attribute B and attribute AB. Hierarchical compression is important when calculating the intersection of a ray and a solid model represented by CSG in real-time ray tracing processing, which will be described later.

[0077] [Set calculation operations] Fig. 15 is a diagram showing an example of a feature tree structure, and Fig. 16 is a diagram showing an example of a part tree structure. As shown in Fig. 15, a set generated by the union and intersection operations corresponding to a node is called a feature. Also, as shown in Fig. 16, a set generated at the highest node is called a part. A solid model expressed using CSG representation can be represented in a computer using primitive definitions and a tree structure.

[0078] Feature 1 is created by performing separate transformations to scale and translate cube primitives and then performing a union operation on these primitives. Parts are created by drilling holes in a set of feature 1 using cylinders, and are created by scaling and positioning the cylinder primitives, then performing a complement operation and a set intersection with feature 1. Such computations in a computer can be performed using only coordinate transformations and symbolic manipulation.

[0079] <4. Displaying 3D models> 17A and 17B are diagrams for explaining shading, where FIG. 17A is a diagram for explaining flat shading and FIG. 17B is a diagram for explaining Phong shading. Flat shading displays a three-dimensional model using light reflected in the direction of the normal vectors of triangles in a differential polyhedron model. Phong shading interpolates normal vectors within a triangle using the vertex normal vectors of the triangles in a differential polyhedron model, and displays a three-dimensional model using light reflected in the normal vectors.

[0080] In this way, by using a differential polyhedron model, which is a collection of triangles, to quickly calculate the reflected light when light is shone on the triangles, it is possible to quickly display the shading of the 3D model.

[0081] Additionally, 3D models expressed using CSG can use real-time ray tracing. Ray tracing is a method of simulating the physical phenomena that occur when a person sees an object, by tracking the reflection, scattering, and attenuation of each ray of light on the object and its environment, thereby determining the ray of light that ultimately enters the visual field. In recent years, NVIDIA has released GeForce RTX (trademark), making real-time ray tracing a reality. Customizing this hardware makes it possible to directly display solid models expressed using CSG in real time.

[0082] For real-time ray tracing processing, for example, Nvidia OptiX (trademark) can be used. Nvidia OptiX (trademark) is a ray tracing API (Application Programming Interface) written based on CUDA (Compute Unified Device Architecture). A feature of Nvidia OptiX (trademark) is that it allows users to program various ray tracing processes, such as ray collision detection, behavior upon collision, and behavior upon non-collision. Users can write programs to perform efficient ray tracing even for models to which existing shaders cannot be applied.

[0083] 18 is a flowchart for explaining real-time ray tracing processing. First, in step S11, a ray (light beam) is generated, and in step S12, the ray is caused to travel to each object. Here, the object is the part at the top of the feature.

[0084] In step S13, the ray is collided with each object to find an intersection point. The shortest intersection point between the ray and the part can be found as follows.

[0085] First, for each lowest-level feature, intersection information is prepared, including a start bit string, an end bit string, a provisional bit string, and a final bit string. The length of each bit string is the number of intersections between the ray and all closed surfaces. The intersections between the ray and the closed surfaces are then arranged in order of the ray's direction of travel, and intersection numbers are assigned in order of travel, starting from 1.

[0086] If the ray enters a closed surface of a primitive that directly belongs to the feature, a bit is set at the intersection number position in the start bit string. If the ray leaves the closed surface, a bit is set at the intersection number position in the end bit string.

[0087] Next, the start bit string and the end bit string are used to process the provisional bit string with a set operation symbol.

[0088] FIG. 19 is a diagram for explaining how to calculate a provisional bit string, with FIG. 19(A) showing the provisional bit calculation for a union and FIG. 19(B) showing the provisional bit calculation for a product. In the case of a union operation, the cumulative calculation array shown in FIG. 19(A) is used to check the start bit string and the end bit string from the beginning of the string, and if a bit is set at the position of the start bit string, 1 is added. If a bit is set at the position of the end bit string, 1 is subtracted from the next position. Processing of the provisional bit string is completed by setting a bit at a position in the string that is not 0. In addition, in the case of a product operation, as shown in FIG. 19(B), bits are set in the provisional bit string from the position with the highest intersection number where a bit is set in the start bit string to the position with the lowest intersection number where a bit is set in the end bit string.

[0089] The final bit string is processed in order, starting from the lowest-ranking feature. The lowest-ranking feature copies its provisional bit string directly to the final bit string. The next higher-ranking feature performs a set operation on its own provisional bit string and the final bit string of the feature under it, and writes the result to the final bit string.

[0090] In this way, the final bit strings of successively higher-ranking features are determined, and the final bit string of the part at the top of the feature is determined. The position of the smallest intersection point number in the final bit string of the part is the intersection point between the ray and the part, and the reflection position and reflection direction of the ray can be obtained from this intersection point and the normal vector.

[0091] In step S14, it is determined whether or not the ray has progressed through the entire scene. If it is determined that the ray has progressed through the entire scene, the process proceeds to step S15. If it is determined that the ray has not progressed through the entire scene, the process returns to step S12, and the ray is advanced to each object.

[0092] In step S15, it is determined whether the closest intersection point of the ray has been determined. If it is determined that the intersection point has been determined, the process proceeds to step S16, and if it is determined that the intersection point has not been determined, the process proceeds to step S17.

[0093] In step S16, the three-dimensional model is displayed using shading for the closest collision object, and in step S17, the three-dimensional model is displayed using shading for the uncollision object.

[0094] By performing this kind of real-time ray tracing processing using hardware, it is possible to calculate and display the position and direction of reflection of light rays on a three-dimensional model in real time.

[0095] [Specific example] Next, a specific example will be given to explain the method of finding the shortest intersection point between the ray and the solid model in CSG representation in step S13 described above.

[0096] Fig. 20 is a diagram schematically showing a situation in which rays 1 to 3 pass through a solid model expressed in CSG, and Fig. 21 is a diagram showing an example of the tree structure of the solid model expressed in CSG shown in Fig. 20. In a specific example, as shown in Fig. 20, the range through which rays 1 to 3 pass through the 3D model is found using set operation symbols starting from the lowest level of the tree structure shown in Fig. 21, and the position where the rays first hit is found. More specifically, the position through which rays 1 to 3 first pass is found within the range of the complement set ((A∩B)∪(C∩D))∩E.

[0097] Here, by compressing the hierarchy as described above, the number of features can be reduced, and the intersection information required for each feature can also be reduced. Also, since there is no change between the intersections of the rays and the closed surfaces of the primitives that make up the solid model, we can think of this as being compressed.

[0098] FIG. 22 is a diagram showing a schematic diagram of a situation where a ray 1 passes through a solid model expressed in CSG, and FIG. 23 is a diagram for explaining intersection information where the ray 1 passes through a feature. As shown in FIG. 22, the ray 1 passes through B in , C in , B out , D in , E in , C out , D out , E outIt passes through the closed surfaces of primitives A to E in the order shown.

[0099] As shown in Fig. 23, the intersection information is used to find the final bit string of (A∩B)∪(C∩D) from the final bit strings of (A∩B) and (C∩D), and the final bit string of the complement ((A∩B)∪(C∩D)) is found. Here, since the final bit string of the complement ((A∩B)∪(C∩D)) includes a point on a closed surface, it is obtained by inverting the bit string in the final bit string of (A∩B)∪(C∩D) where a bit is set from position +1, which is the position with the smallest intersection number, to position -1, which is the position with the largest intersection number. In other words, the final bit string of the complement ((A∩B)∪(C∩D)) is obtained by inverting the bit strings set at intersection numbers 2 to 5. Then, a set operation is performed on the provisional bit string of the complement ((A∩B)∪(C∩D))∩E and the final bit string of the complement ((A∩B)∪(C∩D)) to obtain the final bit string of the complement ((A∩B)∪(C∩D))∩E. The final bit string determines that the first position where ray 1 passes through the solid model in the CSG representation is C with intersection number 6. out It can be seen that it is located at

[0100] FIG. 24 is a diagram showing a schematic diagram of a situation where a ray 2 passes through a solid model expressed in CSG, and FIG. 25 is a diagram for explaining intersection information where the ray 2 passes through a feature. As shown in FIG. 24, the ray 2 passes through A in , B in , E in , A out , C in , B out , D in , C out , D out , E out It passes through the closed surfaces of primitives A to E in the order shown.

[0101] As shown in FIG. 25, using the intersection information, the final bit string of (A∩B)∪(C∩D) is found from the final bit strings of (A∩B) and (C∩D), as described above, and the final bit string of the complement ((A∩B)∪(C∩D)) is found. The final bit string of the complement ((A∩B)∪(C∩D)) is the inverse of the bit string set at intersection number 3. Then, a set operation is performed on the provisional bit string of the complement ((A∩B)∪(C∩D))∩E and the final bit string of the complement ((A∩B)∪(C∩D)) to obtain the final bit string of the complement ((A∩B)∪(C∩D))∩E. From the final bit string, the first position where ray 2 passes through the solid model in the CSG representation is determined to be A at intersection number 4. out It can be seen that it is located at

[0102] FIG. 26 is a diagram showing a schematic diagram of a situation where a ray 3 passes through a solid model expressed in CSG, and FIG. 27 is a diagram for explaining intersection information where the ray 3 passes through a feature. As shown in FIG. 26, the ray 3 passes through E in , A in , B in , A out , C in , B out , D in , C out , D out , E out It passes through the closed surfaces of primitives A to E in the order shown.

[0103] As shown in FIG. 27, using the intersection information, the final bit string of (A∩B)∪(C∩D) is found from the final bit strings of (A∩B) and (C∩D), as described above, and the final bit string of the complement ((A∩B)∪(C∩D)) is found by inverting the bit string with no bits set. Then, a set operation is performed on the provisional bit string of the complement ((A∩B)∪(C∩D))∩E and the final bit string of the complement ((A∩B)∪(C∩D)) to obtain the final bit string of the complement ((A∩B)∪(C∩D))∩E. From the final bit string, the first position where ray 3 passes through the solid model in the CSG representation is determined to be E with intersection number 1. in It can be seen that it is located at

[0104] [Display example] Fig. 28 is a diagram showing a display example of feature 1 shown in Fig. 15. Fig. 29 is a diagram showing a display example of the part shown in Fig. 16. Fig. 30 is a display example of a part obtained by performing a union operation on feature 1 and a cylinder.

[0105] 3D CAD systems display 3D models on a 2D screen, so the viewpoint must be changed frequently to recognize the model. However, by using a differential polyhedron model, which is a collection of triangles, to represent the 3D model, and quickly calculating the reflected light when light is shone on the triangles, it is possible to quickly process the display when the viewpoint is changed. In particular, by using hardware capable of real-time ray tracing, it is possible to display solid models using CSG representation in real time. [Explanation of symbols]

[0106] 1 Shape processing unit, 2 Storage unit, 3 Display processing unit, 4 Data conversion unit, 11 Primitive generation unit, 12 Set operation processing unit, 13 Drawing line generation unit, 21 CPU, 22 GPU, 23 ROM, 24 RAM, 25 Operation input unit, 26 Storage, 27 Input / output interface

Claims

1. a primitive generation unit that uses a differential polyhedron model including a triangular mesh model, which is a set of differential polyhedrons including three-dimensional coordinate values ​​of triangle vertices, normal vectors of the triangle vertices, and curve elements each consisting of a start point and an end point of the triangle vertices and a tangent vector of the start point and the end point, to form a surface by connecting the edges of the differential polyhedrons, to form a closed surface by connecting the surfaces with surface boundaries, and to generate primitives that are a set of points belonging to the interior of the closed surface; a storage unit for storing CSG data in which a solid model is expressed in CSG using a tree structure of set operations of the primitives; A 3D CAD system comprising:

2. 2. The three-dimensional CAD system according to claim 1, wherein the primitive generation unit generates the differential polyhedron by adding curve elements each consisting of a start point and an end point of a triangle vertex and a tangent vector of the start point and the end point based on the three-dimensional coordinate values ​​of the triangle vertices and the normal vectors of the triangle vertices.

3. 3. The three-dimensional CAD system according to claim 1, wherein the primitive generation unit generates spatial geodesic curves using three-dimensional coordinate values ​​of triangle vertices shared by adjacent first and second differential polyhedrons and normal vectors of the triangle vertices, and shares the spatial geodesic curves to establish connection relationships and construct a curved surface.

4. 4. The three-dimensional CAD system according to claim 1, wherein the primitive generation unit constructs a connection relationship between the surfaces using curve elements shared between the surfaces, and constructs a closed surface connecting the surfaces.

5. 5. The three-dimensional CAD system according to claim 1, wherein a curve element formed by tangent vectors of the start point and end point is expressed by a third-order polynomial curve shown in the following formula (1). [Equation 1]

6. further comprising a construction generating unit that generates an intersection line between two primitives as a construction line; 8. The three-dimensional CAD system according to claim 1, wherein the primitive generating unit generates a new primitive based on the construction line.

7. 2. The three-dimensional CAD system according to claim 1, wherein said differential polyhedron model includes a triangular mesh model with normal vectors, in which normal vectors of triangle vertices are calculated from CAD data and added.

8. 2. The three-dimensional CAD system according to claim 1, wherein the primitive generation unit generates a spatial geodesic curve using normal vectors of vertices at both ends of an edge line of the differential polyhedron model, generates two edges by adding a vertex and a normal vector to the midpoint of the spatial geodesic curve, and subdivides the differential polyhedron.

9. a primitive generating step of using a differential polyhedron model including a triangular mesh model, which is a set of differential polyhedrons including three-dimensional coordinate values ​​of triangle vertices, normal vectors of the triangle vertices, and curve elements each consisting of a start point and an end point of the triangle vertices and a tangent vector of the start point and the end point, to form a surface by connecting the edges of the differential polyhedrons, to form a closed surface by connecting the surfaces with surface boundaries, and to generate primitives which are a set of points belonging to the interior of the closed surface; a storing step of storing CSG data in a storage unit, the CSG data being a CSG representation of a solid model using a tree structure of set operations of the primitives; A three-dimensional CAD method having the above.

10. a primitive generating step of using a differential polyhedron model including a triangular mesh model, which is a set of differential polyhedrons including three-dimensional coordinate values ​​of triangle vertices, normal vectors of the triangle vertices, and curve elements each consisting of a start point and an end point of the triangle vertices and a tangent vector of the start point and the end point, to form a surface by connecting the edges of the differential polyhedrons, to form a closed surface by connecting the surfaces with surface boundaries, and to generate primitives which are a set of points belonging to the interior of the closed surface; a storing step of storing CSG data in a storage unit, the CSG data being a CSG representation of a solid model using a tree structure of set operations of the primitives; A 3D CAD program that allows a computer to execute the above.

Citation Information

Patent Citations

  • Solid modeling system

    JP1989290080A

  • System and method for extracting tangent-plane continuous boundary in CAD mesh

    JP2013088825A

  • Generation of structured 3D model from raw mesh

    JP2020115338A