WO2023238174A1 - 3次元cad/camシステム - Google Patents

3次元cad/camシステム Download PDF

Info

Publication number
WO2023238174A1
WO2023238174A1 PCT/JP2022/022730 JP2022022730W WO2023238174A1 WO 2023238174 A1 WO2023238174 A1 WO 2023238174A1 JP 2022022730 W JP2022022730 W JP 2022022730W WO 2023238174 A1 WO2023238174 A1 WO 2023238174A1
Authority
WO
WIPO (PCT)
Prior art keywords
tool
curved surface
primitive
differential
dexel
Prior art date
Application number
PCT/JP2022/022730
Other languages
English (en)
French (fr)
Inventor
紀成 田口
正知 乾
聡一郎 小森
昭雄 田中
克則 下村
Original Assignee
株式会社コアコンセプト・テクノロジー
国立大学法人茨城大学
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社コアコンセプト・テクノロジー, 国立大学法人茨城大学 filed Critical 株式会社コアコンセプト・テクノロジー
Priority to JP2022548714A priority Critical patent/JP7284468B1/ja
Priority to PCT/JP2022/022730 priority patent/WO2023238174A1/ja
Priority to JP2023076063A priority patent/JP2023178948A/ja
Publication of WO2023238174A1 publication Critical patent/WO2023238174A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4093Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4097Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by using design data to control NC machines, e.g. CAD/CAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD

Definitions

  • the present technology relates to a three-dimensional CAD/CAM system that uses a solid model.
  • DX Digital Transformation
  • 3D CAD Computer Aided Design
  • Examples of standards and mechanisms for 3D model conversion between 3D CAD systems include the IGES (Initial Graphics Exchange Specification) of the ANSI (American National Standard Institute) standard, and the ISO (International Organization for Standardization). ) Standards such as STEP (Standard for the Exchange of Product model data) have been established, but standards alone are not sufficient for data conversion. The biggest reason for this is that the mechanism for processing calculation errors, known as modeling accuracy, differs depending on the three-dimensional CAD system. The reason why modeling accuracy is required is due to the method of expressing the three-dimensional model.
  • Shapes expressed by three-dimensional models include wire frame models, surface models, solid models, etc., but most three-dimensional CAD systems use solid models. Two methods have been considered for representing solid models: B-Rep (Boundary Representation) and CSG (Constructive Solid Geometry).
  • B-Rep is a representation method in which the surface of a three-dimensional model is covered with a plurality of curved surfaces, pasted together at boundaries to form a closed curved surface, and the inside of the surface is the target three-dimensional model.
  • CSG is a method of constructing a three-dimensional model by performing set operations on basic shapes called primitives (see, for example, Non-Patent Document 1).
  • the B-Rep representation method is more convenient for handling free-form surfaces and as an interface for 3D CAM (3D Computer Aided Manufacturing), which applies 3D models. Therefore, most of the current three-dimensional CAD systems employ B-Rep, and CSG is only used in an auxiliary role. B-Rep is also adopted in STEP, which is a three-dimensional data conversion standard.
  • a parametric curved surface is a curved surface created by projecting a rectangle in the (u,v) space onto the xyz space using a two-variable function F(u,v). For this reason, 4 variants are the basic form.
  • FIG. 59 is a diagram showing an example of a curved surface trimmed with a boundary line in B-Rep.
  • B-Rep trimming is performed at the boundary line and a trimmed curved surface is used. Since the curved surface boundary line is expressed using parametric curves using parameters, the curved surface boundary line does not lie exactly on the curved surface, and if the gap between the curved surface boundary line and the curved surface is less than the modeling accuracy, the curved surface It simply determines that the boundary line lies on a curved surface.
  • FIG. 60 is a diagram showing an example of a curved surface boundary line connecting curved surfaces in B-Rep.
  • curved surfaces are connected using information on the first surface and the second surface with respect to the boundary line, and the inside of the curved surface is recognized as a solid model as a whole. Therefore, gaps inevitably remain between the curved surfaces.
  • This modeling accuracy varies depending on the 3D CAD system, which is the main cause of problems in converting 3D models.
  • the CSG representation method is currently used to support B-Rep representation.
  • Representation of a solid model using CSG has the advantage that there is no need to consider modeling errors, which are the main cause of data conversion troubles.
  • the reasons why 3D CAD systems using CSG expression have not become mainstream include the slow display speed and the lack of a variety of primitives, which are the basic elements of 3D models, making it difficult to express shapes including curved surfaces. can be mentioned.
  • This technology was proposed in view of these conventional circumstances, and provides a three-dimensional CAD/CAM system that can rapidly generate NC data that provides tool positions for shapes that include curved surfaces. do.
  • the three-dimensional CAD/CAM system includes coordinate values of triangular vertices, normal vectors of the triangular vertices, starting points and ending points made up of the triangle vertices, and curve elements made up of tangent vectors of the starting points and ending points.
  • a differential polyhedron model that is a set of differential polyhedra, connect the edges of the differential polyhedron to construct a curved surface, configure a closed curved surface by connecting the curved surfaces with a curved surface boundary line, and define points that belong to the interior of the closed curved surface.
  • a primitive generation unit that generates a set of primitives; a storage unit that stores CSG data that represents a solid model in CSG using a tree structure of set operations for the primitives; a dexel generation unit that calculates the intersection of the solid model and the straight line from the intersection of the curved surface and the straight line, and generates dexels that are a group of line segments included in the solid model; and an NC data generation section that generates the NC data.
  • the three-dimensional CAD/CAM calculates coordinate values of triangle vertices, normal vectors of the triangle vertices, and curve elements composed of starting points and ending points of the triangle vertices, and tangent vectors of the starting points and ending points.
  • a differential polyhedron model which is a set of differential polyhedra
  • a curved surface is constructed by connecting the edges of the differential polyhedron
  • a closed surface is constructed by connecting the curved surfaces with a curved surface boundary line
  • the curved surface belongs to the interior of the closed curved surface.
  • a primitive generation step of generating a primitive that is a point set a storage step of storing CSG data representing a CSG representation of a solid model in a storage unit using a tree structure of set operations of the primitives, and a set operation based on the CSG data.
  • the three-dimensional CAD/CAM program has a curve element composed of coordinate values of triangle vertices, normal vectors of the triangle vertices, starting points and ending points of the triangle vertices, and tangent vectors of the starting points and ending points.
  • a differential polyhedron model which is a set of differential polyhedra including A primitive generation step of generating a primitive that is a set of points to which it belongs, a storage step of storing CSG data representing a solid model in a storage unit using a tree structure of set operations of the primitives, and a set operation based on the CSG data.
  • the computer is caused to execute an NC data generation step of generating NC data giving the following.
  • NC data that provides the position of a tool can be generated at high speed for a shape including a curved surface without considering modeling errors.
  • FIG. 1 is a block diagram showing a configuration example of a three-dimensional CAD system according to this embodiment.
  • FIG. 2 is a block diagram showing an example of the configuration of a computer device that implements the three-dimensional CAD system according to the present embodiment.
  • FIG. 3 is a diagram for explaining 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
  • C) shows a 1-differential polyhedron
  • FIG. 3(D) shows a 2-differential polyhedron.
  • FIG. 4 is a diagram for explaining the subdivision process of a differential polyhedron containing curve elements.
  • FIG. 4(A) shows a triangular model including curve elements
  • FIG. 4(C) shows a 1-differential polyhedron.
  • FIG. 5(A) is a diagram for explaining a differential polyhedron
  • FIG. 5(B) is a diagram for explaining curve element information.
  • FIG. 6 is a diagram for explaining the data structure of a primitive and the data structure of a primitive within a CSG expression.
  • FIG. 7 is a diagram showing an example of a curved surface and a curved surface boundary line.
  • FIG. 8 is a diagram showing an example of a curved surface without a boundary line.
  • 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 curved surface.
  • FIG. 11 is a diagram showing a free-form surface as an example of a closed-form surface.
  • FIG. 12 is a diagram showing an example of a tree structure having a union set and an intersection set of primitives.
  • 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 the sum A ⁇ B of the cube primitive A and cylinder primitive B.
  • 13(C) is a diagram schematically showing an example of the product A ⁇ B ⁇ of the cubic primitive A and the cylinder primitive B
  • FIG. 13(D) is a diagram schematically showing an example of the product A ⁇ B ⁇ of the cubic primitive A and the cylinder primitive B.
  • 3 is a diagram schematically illustrating an example of the product A ⁇ B with primitive B.
  • FIG. FIG. 14 is a diagram showing an example of a tree structure in which operation symbols are omitted in the tree structure shown in FIG. 12.
  • FIG. 15 is a diagram showing an example of a tree structure of features.
  • FIG. 16 is a diagram showing an example of a tree structure of parts.
  • FIG. 17 is a diagram for explaining shading
  • FIG. 15(A) is a diagram for explaining flat shading
  • FIG. 15(B) is a diagram for explaining Phong shading.
  • FIG. 18 is a flowchart for explaining real-time ray tracing processing.
  • FIG. 18 is a flowchart for explaining real-time ray tracing processing.
  • FIG. 19 is a diagram for explaining a method of calculating a provisional bit string.
  • FIG. 19(A) shows provisional bit calculation of a union set
  • FIG. 19(B) shows provisional bit calculation of an intersection set.
  • FIG. 20 is a diagram schematically showing a situation in which rays 1 to 3 pass through a CSG-expressed solid model.
  • FIG. 21 is a diagram showing an example of the tree structure of the CSG-expressed solid model shown in FIG. 20.
  • FIG. 22 is a diagram schematically showing a situation in which the light ray 1 passes through a CSG-represented solid model.
  • FIG. 23 is a diagram for explaining intersection point information where light ray 1 passes through a feature.
  • FIG. 19(A) shows provisional bit calculation of a union set
  • FIG. 19(B) shows provisional bit calculation of an intersection set.
  • FIG. 20 is a diagram schematically showing a situation in which rays 1 to 3 pass through a CSG-expressed solid model.
  • FIG. 24 is a diagram schematically showing a situation in which the light ray 2 passes through a CSG-expressed solid model.
  • FIG. 24 is a diagram for explaining intersection point information where light ray 2 passes through a feature.
  • FIG. 26 is a diagram schematically showing a situation in which the ray 3 passes through a CSG-expressed solid model.
  • FIG. 27 is a diagram for explaining intersection point information where the light ray 3 passes through a feature.
  • 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 parts shown in FIG. 16.
  • FIG. 30 is a display example of parts obtained by calculating the union of feature 1 and a cylinder.
  • FIG. 31 is a diagram showing an example of a two-dimensional dexel.
  • FIG. 32 is a flowchart for explaining real-time ray tracing processing for generating dexels.
  • FIG. 33 is a diagram schematically showing a situation in which a straight line passes through a CSG-expressed solid model.
  • FIG. 34 is a diagram showing an example of the tree structure of the CSG-expressed solid model shown in FIG. 33.
  • FIG. 35 is a diagram showing an example of a complementary dexel having a mold shape.
  • FIG. 36 is a diagram for explaining complementary sets.
  • FIG. 37 is a diagram for explaining cutting of a supplementary dexel (XZ dexel) using a reverse tool.
  • XZ dexel XZ dexel
  • FIGS. 38(A) to 38(C) are diagrams showing examples of a ball tool, a flat tool, and a radius tool, respectively
  • FIGS. 38(A') to 38(C') are diagrams showing an example of a ball tool, a flat tool, and a radius tool, respectively.
  • FIG. 39 is a diagram schematically showing a state in which a tool that is oriented in the opposite direction due to its shape is moved in the Z direction by the tool radius.
  • FIG. 40 is a diagram schematically showing a state in which the surface of the reverse tool is arranged in the shape.
  • FIG. 41 is a diagram schematically showing a state in which the center of the reverse flat tool is arranged in the shape.
  • FIG. 42(A) is a diagram illustrating the case where the center of the reverse flat tool is placed in the shape
  • FIG. 42(B) is a diagram showing the AA′ cross section shown in FIG. 42(A).
  • FIG. 43(A) is a diagram showing an example of a radius tool
  • FIG. 43(B) is a diagram showing an example of a ball tool.
  • FIG. 44 is a diagram schematically showing a state in which the surface of the reverse ball tool is arranged in the shape.
  • FIG. 45 is a diagram schematically showing a state where the shape and envelope surface are cut along a plane parallel to the XY plane.
  • FIG. 46 is a diagram for explaining the correction process for correcting the tool position.
  • FIG. 46 is a diagram for explaining the correction process for correcting the tool position.
  • FIG. 47(A) is a diagram illustrating correction processing in the case of copying processing
  • FIG. 47(B) is an enlarged view of the correction processing portion
  • FIG. 48 is a diagram illustrating correction processing in the case of contour line processing
  • FIG. 48(B) is an enlarged view of the correction processing portion.
  • FIG. 49 is a diagram for explaining mirror finishing.
  • FIG. 50 is a photograph of a workpiece that has been mirror-finished.
  • FIG. 51 is a diagram showing the complementary dexel.
  • FIG. 52 is a diagram schematically showing a cut using a reverse tool of the complementary dexel.
  • FIG. 53 is a diagram showing an example of a mold cavity.
  • FIG. 54 is a diagram showing an example in which the grooves and corners of the mold cavity shown in FIG.
  • FIG. 55 is a diagram showing an example of a complementary dexel of a cavity.
  • FIG. 56 is a diagram schematically showing a state in which the supplementary dexel shown in FIG. 55 is cut with a ⁇ 5 ball tool using a reverse tool.
  • FIG. 57 is a diagram schematically showing a state in which the supplementary dexel shown in FIG. 55 is cut with a ⁇ 10 ball tool using a reverse tool.
  • FIG. 58 is a diagram showing a shape obtained by cutting and processing the complementary dexel with a reverse tool of ⁇ 10.
  • FIG. 59 is a diagram showing an example of a curved surface trimmed with a curved surface boundary line in B-Rep.
  • FIG. 60 is a diagram showing an example of a boundary line connecting curved surfaces in B-Rep.
  • FIG. 1 is a block diagram showing a configuration example of a three-dimensional CAD system according to this embodiment.
  • a three-dimensional CAD system includes a shape processing unit 1 that processes the shape of primitives, a storage unit 2 that stores CSG (Constructive Solid Geometry) data, and a display process that displays a CSG-expressed solid model. It has a data converting section 4 that converts data in other formats to data in CSG expression, and converts data in CSG expression to data in other formats.
  • the shape processing section 1 includes a primitive generation section 11 , a set calculation processing section 12 , a drawing line generation section 13 , a dexel generation section 14 , and an NC data generation section 15 .
  • the primitive generation unit 11 is a set of differential polyhedra including coordinate values of triangle vertices, normal vectors of the triangle vertices, starting points and ending points made up of the triangle vertices, and curve elements made up of tangent vectors of the starting points and ending points.
  • a differential polyhedral model is used. Then, the primitive generation unit 11 constructs a curved surface by connecting the edges of the differential polyhedron, constructs a closed curved surface by connecting the curved surfaces with curved surface boundaries, and generates primitives that are a set of points belonging to the interior of the closed curved surface. do. Thereby, shapes including curved surfaces can be easily expressed.
  • a closed surface means a surface that separates a three-dimensional space into two regions.
  • the primitive generation unit 11 adds a curve element consisting of a starting point and an ending point of the triangle vertices and tangent vectors of the starting point and the ending point, based on the coordinate values of the triangle vertices and the normal vectors of the triangle vertices, Generate a differential polyhedron.
  • a differential polyhedron can be generated using triangles having normal vector information at their vertices.
  • the primitive generation unit 11 also generates a spatial geodesic line using the coordinate values of the triangular vertices and the normal vectors of the triangular vertices shared by the adjacent first differential polyhedron and the second differential polyhedron, and generates a spatial geodesic line.
  • Build connection relationships by sharing and construct curved surfaces That is, the primitive generation unit 11 constructs a connection relationship by sharing a spatial geodesic curve between the adjacent first differential polyhedron and second differential polyhedron, and configures a curved surface based on this connection relationship.
  • the primitive generation unit 11 constructs a connection relationship between the curved surfaces using curve elements shared between the curved surfaces, and constructs a closed curved surface that connects the curved surfaces.
  • a connection relationship between curved surfaces is constructed using a curve element shared between the curved surfaces, and the curved surfaces are connected, the connection relationship between the curved elements between the curved surfaces becomes a boundary line between the curved surfaces, and this becomes a curved surface boundary line.
  • curved surfaces can be connected by curved surface boundary lines formed by connecting curve elements without considering modeling errors.
  • the curve element is preferably represented by a third-order polynomial curve shown in formula (1) below.
  • the curve element includes a starting point and an ending point made up of triangular vertices, and tangent vectors of the starting point and the ending point, and the length of the curve element can be expressed by the following formula (2).
  • the set operation processing unit 12 performs set operations between primitives and realizes set operations by performing only symbolic operations. By performing set operations using only symbolic operations, a simple data structure and stability of set operations can be achieved.
  • the set operation processing unit 12 omits the set operation symbol when the same set operation symbol exists above and below the hierarchy in the tree structure of the primitive set operation. Thereby, the amount of calculations can be reduced.
  • the drawing generation unit 13 generates an intersection line between two primitives as a drawing line. This allows the primitive generation unit 11 to generate a new primitive based on the drawing line.
  • the dexel generation unit 14 determines the intersection between the solid model and the straight line from the intersection between the closed surface of the primitive and the straight line through a set operation based on CSG data, and generates dexels that are a group of line segments included in the solid model.
  • the dexel generation unit 14 uses real-time ray tracing, which will be described later, to find the intersection between the solid model and the straight line. Thereby, dexels can be generated at high speed.
  • the NC data generation unit 15 generates NC data that provides the position of the tool based on the dexel. It is preferable that the NC data generation unit 15 generates NC data that provides the position of the tool by cutting the supplementary dexel, which is a group of line segments not included in the dexel, with a reverse tool. Thereby, for example, it is possible to use a reverse tool whose outer diameter is greater than or equal to the outer diameter of the tool, and it is possible to protect grooves and corner portions where chatter occurs in the tool.
  • the NC data generation unit 15 calculates the minimum distance between the solid model and the tool based on the CSG data, and repeats the process of moving the tool position based on the minimum distance so that the minimum distance becomes zero. , it is preferable to correct the position of the tool based on the complementary dexel. Thereby, the position of the tool that is brought into contact with the surface of the solid model can be adjusted to the nanometer level.
  • the NC data generation unit 15 generates a group of half straight lines outward from the center of the tool, calculates the intersection between the solid model and the half straight line from the intersection of the closed curved surface of the primitive and the half straight line, and calculates the intersection between the solid model and the tool. Calculate the minimum distance. It is preferable that the NC data generation unit 15 uses real-time ray tracing to find the intersection between the solid model and the half line. Thereby, the position of the tool can be corrected at high speed.
  • the storage unit 2 stores CSG data that is a CSG representation of a solid model using a tree structure of primitive set operations.
  • the storage unit 2 is a storage such as a RAM (Random Access Memory) or a hard disk, which stores CSG data subjected to shape processing by the shape processing unit 1.
  • the CSG data has a tree structure in which primitives can be configured using a triangular set model and set operations between the primitives can be performed. With this CSG data, a solid model can be expressed using a tree structure based on set operations between primitives.
  • the display processing unit 3 calculates the intersection of the solid model and the light ray from the intersection of the closed curved surface of the primitive and the light ray, and calculates the reflection position and reflection direction of the light ray in the solid model, using a set operation based on the CSG data.
  • the display processing unit 3 omits the set operation symbol and finds the intersection between the solid model and the ray. Thereby, the amount of calculation can be reduced and a CSG-expressed solid model can be displayed more quickly.
  • 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 the model and the ray. Thereby, the intersection between the light ray and the closed surface of the primitive and the normal vector of the closed surface at the intersection can be calculated at high speed using hardware, and can be displayed in real time.
  • CUDA Computer Unified Device Architecture
  • 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 expression data, and converts CSG expression data into files such as STEP and IGES. Convert to
  • a differential polyhedron is used as a basic element, a curved surface is constructed by connecting the edges of the differential polyhedron, and a closed curved surface constructed by connecting the curved surfaces with curved surface boundary lines is used.
  • a shape including a curved surface can be expressed in CSG without considering modeling errors, and NC data that gives the position of a tool can be generated at high speed for a shape including a curved surface.
  • solid models can be displayed at high speed.
  • FIG. 2 is a block diagram showing an example of the configuration of a computer device that implements the three-dimensional CAD system according to the present embodiment.
  • the computer device includes a CPU (Central Processing Unit) 21 that performs program execution processing, a GPU (Graphics Processing Unit) 22 that performs arithmetic processing, and a ROM (ROM) that stores programs executed by the CPU 21.
  • Read Only Memory) 23 RAM (Random Access Memory) 24 for expanding programs and data, operation input section 25 for receiving various input operations by the user, storage 26 for permanently storing programs and data, and data and an input/output interface 27 for inputting and outputting.
  • RAM Random Access Memory
  • the CPU 21 is capable of processing, for example, the aforementioned primitive generation section 11, set calculation processing section 12, drawing line generation section 13, etc. Further, the CPU 21 controls the operation of each block by reading, for example, a three-dimensional CAD program recorded in the storage 26, loading it onto the RAM 24, and executing it.
  • the GPU 22 has a video memory (VRAM) and can perform drawing processing and calculation processing in response to requests from the CPU 21. Further, the GPU 22 has, for example, a ray tracing API (Application Programming Interface) written based on CUDA (Compute Unified Device Architecture).
  • VRAM video memory
  • CUDA Computer Unified Device Architecture
  • the ROM 23 is, for example, a read-only nonvolatile memory, and stores information such as constants necessary for the operation of each block included in the computer device.
  • the RAM 24 is a volatile memory, and is used not only as a storage area for operating programs, but also as a storage area for temporarily storing intermediate data output during the operation of each block included in the computer device.
  • 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 a command to the CPU 21 to execute or stop the above-mentioned information processing in response to a user's input operation.
  • the storage 26 records the above-mentioned information processing program developed in the RAM 24. Note that as the storage 26, an HDD (Hard Disk Drive), an SSD (Solid State Drive), an optical drive, etc. can be used.
  • the input/output interface 27 can output the image generated by the GPU 22 to a display device.
  • the aforementioned three-dimensional CAD system can be realized by cooperation of software executed by the CPU 21, GPU 22, ROM 23, RAM 24, CPU 21, and the like. Further, the software program may be stored and distributed in a recording medium such as an optical disk or a semiconductor memory, or may be downloaded via the Internet or the like. ⁇ 2. Curved surface by differential polyhedron>
  • a differential polyhedron model is a set of differential polyhedra, which are basic elements, and is also a set of points generated by repeatedly subdividing the differential polyhedron.
  • the boundary line may be a spatial geodesic curve or a curve element, and in either case, it is called a differential polyhedron.
  • the vertices of the differential polyhedron are defined as points, and the sides are defined as edges.
  • FIG. 3 is a diagram for explaining 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
  • C) shows a 1-differential polyhedron
  • FIG. 3(D) shows a 2-differential polyhedron.
  • edges match 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.
  • n-differential polyhedron To subdivide a differential polyhedron, create a spatial geodesic line using the normal vectors of the vertices at both ends of the edge line of the differential polyhedron model, and add the vertex and normal vector to the midpoint of the spatial geodesic line to create two edges. generate. Since computer processing needs to be completed in a finite number of times, it is approximated by a minute triangle made up of three points after being subdivided a finite number of times. A polyhedron that is subdivided n times is called an n-differential polyhedron.
  • FIG. 4 is a diagram for explaining the subdivision process of a differential polyhedron containing curve elements.
  • FIG. 4(A) shows a triangular model including curve elements
  • FIG. 4(C) shows a 1-differential polyhedron.
  • a curve element consists of two vertices of a triangle and a tangent vector at the apex.
  • FIG. 4(C) when the boundary line is a curve element, subdivision can be performed using 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 intermediate vector. .
  • FIG. 5(A) is a diagram for explaining a differential polyhedron
  • FIG. 5(B) is a diagram for explaining curve element information.
  • a differential polyhedron model is a set of differential polyhedra that are basic elements, and includes point information on the vertices of a triangle ( ⁇ , ⁇ , ⁇ ), curve element information on the sides of the triangle ( ⁇ , ⁇ , ⁇ ), and point information. It has triangle information including a point ID and a curve element ID of curve element information.
  • the point information has a point table including three-dimensional coordinate values of the point and normal vectors (u ⁇ , u ⁇ , u ⁇ ) of the point for each point ID.
  • the curve element information has a curve element table including, for each curve element ID, a point ID of an edge start point, a point ID of an 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 including, for each triangle ID, a point ID, a curve element ID, a direction of the curve element (positive direction or reverse direction), and a normal vector of the triangle.
  • the normal vector and the tangent vector are normalized vectors.
  • the differential polyhedron model consists of the coordinate values of the triangle vertices ( ⁇ , ⁇ , ⁇ ), the normal vectors (u ⁇ , u ⁇ , u ⁇ ) of the triangle vertices ( ⁇ , ⁇ , ⁇ ), and the triangle vertices ( ⁇ , ⁇ , ⁇ ), and tangent vectors (v1 ⁇ , v2 ⁇ , v1 ⁇ , v2 ⁇ , v1 ⁇ , v2 ⁇ ) of the start and end points.
  • the tangent vector at the start point and the tangent vector at the end point are normalized vectors, and can be expressed, for example, by a third-order polynomial curve as shown in equation (1).
  • the curve element includes a starting point and an ending point made up of triangular vertices, and tangent vectors of the starting point and the ending point, and the length of the curve element can be expressed by the following formula (2).
  • the differential polyhedron is a polygon model of a triangular mesh model, and can be converted into an obj format, which is a data format for CG (Computer Graphics). Therefore, data coordination between 3D systems can be facilitated by using a differential polyhedron model that is a set of differential polyhedra. Furthermore, it is possible to obtain high compatibility with CG software, and it is possible to easily express the smoothness of curved surfaces.
  • FIG. 6 is a diagram for explaining the data structure of a primitive and the data structure of a primitive within a CSG expression.
  • a CSG tree node is a root node, and CSG nodes and primitive nodes are child nodes of the CSG tree node.
  • a CSG node has a set operation type node as a child node, and has a table including a primitive ID, a parent node ID, a left child node ID, and a right child node ID for each CSG node ID.
  • the primitive node has a three-dimensional coordinate node, a three-dimensional vector node, a curved element node, a curved element node, a curved surface node, and a curved surface boundary line node as child nodes.
  • the three-dimensional coordinate node has a table containing coordinate values (x, y, z) of triangle vertices for each three-dimensional coordinate ID.
  • the three-dimensional coordinate vector has a table containing normal vector and tangential vector components (x, y, z) for each three-dimensional vector ID.
  • the surface element node has a table including vertex coordinate ID, vertex normal ID, and curve element ID for each surface element ID.
  • a surface element is the same as a differential polyhedron.
  • the curve element node includes, for each curve element ID, a start point coordinate ID, an end point coordinate ID, a tangent vector ID at the start point, a tangent vector ID at the end point, a left adjacent curve element ID, and a right adjacent curve element ID.
  • the surface node has a table containing a group of surface element IDs for each surface ID.
  • the curved surface boundary node has a table containing a curve element ID group and the orientation of the curve element group
  • the curved surface is a group of differential polyhedra surrounded by curved surface boundary lines, and the curved surface boundary lines are composed of a series of continuous curve elements.
  • the curved surface has differential polyhedron information
  • the curved surface boundary line has curve element information.
  • the differential polyhedral model can be converted from, for example, STEP (Standard for the Exchange of Product model data), IGES (Initial Graphics Exchange Specification, STL (Standard Triangulated Language)) files. Note that STL is also sometimes called “StereoLithography.”
  • the 3D CAD model is converted into a triangle aggregate model containing the coordinate values of the triangle vertices and the normal vectors of the triangle vertices, and a point table containing the coordinate values of the triangle vertices and the normal vectors of the triangle vertices is created. , a triangle table containing point IDs.
  • This aggregate model is a model in which the normal vectors of the vertices are calculated from CAD data and added to the vertices of the polygons when the curved surface is approximated by triangular polygons with a specified approximation error and output.
  • a triangular polygon model with normal vectors is output by a program from a curved surface expressed by a third-order polynomial, for example, with specified precision.
  • the triangular polygon model with normal vectors is preferably output with double precision floating point precision.
  • the edges of the triangle are extracted using the triangle aggregate model, and 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 line of the edge end point.
  • a curve element table including the vector is created, and the curve element ID and the direction of the curve element (forward direction or reverse direction) are added to the triangle table.
  • FIG. 7 is a diagram showing an example of a curved surface and a curved surface boundary line
  • FIG. 8 is a diagram showing an example of a curved surface without a curved surface boundary line.
  • the curved surface is constructed by connecting differential polyhedra at vertices, and the edges of the curved surface are curve elements. Since each vertex has a normal vector, when subdivision is performed, a normal vector is given to the intermediate point. By repeating this process, normal vectors are generated everywhere on the differential polyhedron, and the direction of the differential polyhedron is determined by the direction of the normal vector. Therefore, even in a curved surface, there is a natural orientation of the curved surface.
  • a boundary line is a group of smoothly connected curve elements, like the dotted line range of the double-headed arrow shown in FIG. 7, and a curved surface is surrounded by continuous boundary lines.
  • the boundary line has an ordered list of surface elements forming one curved surface and an ordered list of surface elements forming the other curved surface, and can represent the connection relationship of the curved surfaces.
  • FIG. 9 is a diagram showing a cube as an example of a closed curved surface
  • FIG. 10 is a diagram showing a cylinder as an example of a closed curved surface
  • FIG. 11 is a diagram showing a free curved surface as an example of a closed curved surface.
  • a closed curved surface is a closed curved surface formed by connecting a plurality of curved surfaces with boundary lines. However, closed surfaces are assumed not to self-intersect. For a closed surface, the direction of the surface can be reversed by reversing the normal vector, and it is also possible to give the direction of the closed surface.
  • a closed surface separates three-dimensional space into two regions.
  • a set of points on the back side of a closed surface is called a primitive. Additionally, primitives have local coordinate systems.
  • a complementary set of primitives is treated as a closure of a set of points other than primitives in a three-dimensional space. Therefore, a complementary set of primitives includes points on a closed surface.
  • the complement of a primitive means the closure of the complement of a general set, and is represented by the symbol A ⁇ , and may also be represented as a complement (A). Also, a complementary set of primitives is called a complementary set for short.
  • T A A When a coordinate-transformed primitive is represented by T A A, T A A ⁇ T B B indicates that a union operation is performed after the position is transformed by each coordinate transformation.
  • the symbol for union is ⁇ .
  • FIG. 12 is a diagram showing an example of a tree structure having a union set and an intersection set of primitives.
  • the attributes include coordinate transformation and complement set operation.
  • the symbol portions of the union and intersection sets in the tree structure are called nodes.
  • intersection set An intersection set of primitives is also an intersection set in the usual sense. Similar to the union set, when performing an intersection set operation of primitives A and B to obtain an intersection set, the complementary set operation and coordinate transformation of the primitives can be given as attributes. Further, similarly to the union set, if the coordinate-transformed primitive is represented by T A A, T A A ⁇ T B B indicates that the intersection set is taken after the position is transformed by each coordinate transformation. The symbol ⁇ is used for the intersection set. Instead of primitives, it is possible to perform the intersection set operation between the union set and the intersection set, and the intersection set operation between the union set and the intersection set and the primitive.
  • FIG. 13 is a diagram schematically showing an example of a set operation result of primitives.
  • FIG. 13A is a diagram schematically showing an example of a cubic primitive A and a cylindrical primitive B.
  • FIG. 13(B) is a diagram schematically showing an example of the sum A ⁇ B of the cubic primitive A and the cylindrical primitive B.
  • FIG. 13(C) is a diagram schematically showing an example of the product A ⁇ B ⁇ of the cubic primitive A and the cylindrical primitive B.
  • a ⁇ B ⁇ is the difference obtained by removing the set of primitives B from the set of primitives A, and by this operation, the difference between primitives can be found.
  • B ⁇ represents the closure of the complement of B, and B ⁇ may also be expressed as a complement set (B).
  • FIG. 13(D) is a diagram schematically showing an example of the product A ⁇ B of the cubic primitive A and the cylindrical primitive B.
  • FIG. 14 is a diagram showing an example of a tree structure in which operation symbols are omitted in the tree structure shown in FIG. 12.
  • the operation symbol can be omitted.
  • This process will be referred to as layer compression.
  • the tree structure shown in FIG. 12 can be changed to a tree structure shown in FIG. 14.
  • attribute A' is an attribute obtained by combining attribute A and attribute AB
  • attribute B' is an attribute obtained by combining attribute B and attribute AB.
  • Hierarchy compression becomes important when calculating the intersection of a light ray and a solid model represented by CSG in real-time ray tracing processing, which will be described later.
  • FIG. 15 is a diagram showing an example of a tree structure of features
  • FIG. 16 is a diagram showing an example of a tree structure of parts.
  • a set generated by operating a union set and an intersection set corresponding to nodes is called a feature.
  • a set generated at the highest node is called a part.
  • a solid model expressed in CSG can be expressed in a computer using primitive definitions and a tree structure.
  • Feature 1 is obtained by separately performing a transformation to scale and move a cube primitive, and then performing a union operation on these primitives.
  • the part is created by drilling a hole in the set of Feature 1 using a cylinder, and after scaling and placing the cylinder primitive, it can be created by calculating the intersection of the complementary set operation and Feature 1. .
  • Such calculations within a computer can be performed using only coordinate transformations and symbolic operations.
  • FIG. 17 is a diagram for explaining shading
  • FIG. 17(A) is a diagram for explaining flat shading
  • FIG. 17(B) is a diagram for explaining Phong shading.
  • Flat shading is a method of displaying a three-dimensional model using light reflected in the direction of the normal vector of a triangle of a differential polyhedral model.
  • Phong shading is a method in which a normal vector within a triangle is interpolated using a normal vector of the apex of a triangle of a differential polyhedral model, and a three-dimensional model is displayed using light reflected on the normal vector.
  • real-time ray tracing can be used for a three-dimensional model expressed in CSG.
  • Ray tracing is a method of simulating the physical phenomena that occur when a person looks at an object.It is a method of tracing the reflection, scattering, and attenuation of each ray of light in the object and the environment in which it is placed. This is a method of determining the rays of light that finally enter the visual field.
  • NVIDIA has released GeForce RTX (trademark), realizing real-time ray tracing. By customizing this hardware, it becomes possible to directly display solid models expressed in CSG in real time.
  • Nvidia OptiX (trademark)
  • Nvidia OptiX is a ray tracing API (Application Programming Interface) written based on CUDA (Compute Unified Device Architecture).
  • a feature of Nvidia OptiX (trademark) is that various ray tracing processes can be programmed, such as ray collision detection, collision behavior, and non-collision behavior. Even for models to which existing shaders cannot be applied, users can efficiently perform ray tracing by writing a program.
  • FIG. 18 is a flowchart for explaining real-time ray tracing processing.
  • a ray is generated, and in step S12, the ray is made to travel to each object.
  • an object is a part at the top of a feature.
  • step S13 the ray collides with each object and the intersection points are determined.
  • the shortest point of intersection between a ray and a part can be found as follows.
  • intersection information including a start point bit string, an end point bit string, a provisional bit string, and a final bit string is prepared for each lowest feature.
  • the length of each bit string is the number of intersections between the ray and all closed surfaces. Then, the intersection points between the ray and the closed surface are arranged in the order of the traveling direction of the ray, and the intersection numbers are assigned starting from 1 in the order of the traveling direction.
  • a bit is set at the position of the intersection number of the starting point bit string. If the point departs from the closed surface, a bit is set at the position of the intersection number of the end point bit string.
  • the temporary bit string is processed by the set operation symbol.
  • FIG. 19 is a diagram for explaining a method of calculating a provisional bit string.
  • FIG. 19(A) shows provisional bit calculation of a union set
  • FIG. 19(B) shows provisional bit calculation of an intersection set.
  • the cumulative calculation array shown in FIG. 19(A) is used to check the starting point bit string and ending point bit string from the beginning of the column, and if a bit is set at the position of the starting point bit string, 1 is added. If a bit is set at the position of the end point bit string, 1 is subtracted from the next position. Processing of the temporary bit string is completed by setting a bit in a non-zero column position.
  • FIG. 19(B) from the position of the highest intersection number where the bit of the start point bit string is set to the position of the lowest intersection number where the bit of the end point bit string is set, Set a bit in the temporary bit string.
  • the final bit string is processed in order from the lowest feature. For the lowest feature, the provisional bit string is copied as is to the final bit string. The next higher feature performs a set operation on its own provisional bit string and the final bit string of the feature below it, and writes it into the final bit string.
  • the final bit strings of the top features are determined in sequence, and the final bit strings of the parts at the top of the features are determined. Then, the position of the minimum intersection number of the final bit string of the part becomes the intersection of the light ray and the part, and the reflection position and reflection direction of the light ray can be obtained from this intersection and the normal vector.
  • step S14 it is determined whether the ray of the entire scene has completed progressing. If it is determined that the ray progression for the entire scene has been completed, the process advances to step S15, and if it is determined that the ray progression for the entire scene has not been completed, the process returns to step S12 to advance the ray to each object.
  • step S15 it is determined whether the closest intersection of the rays has been determined. If it is determined that the intersection has been determined, the process proceeds to step S16, and if it is determined that the intersection has not been determined, the process proceeds to step S17.
  • step S16 the three-dimensional model is displayed using the shading for the shortest colliding object
  • step S17 the three-dimensional model is displayed using the shading for non-colliding objects.
  • FIG. 20 is a diagram schematically showing a situation in which rays 1 to 3 pass through a CSG-expressed solid model
  • FIG. 21 is a diagram illustrating an example of the tree structure of the CSG-expressed solid model shown in FIG. 20. be.
  • the range through which rays 1 to 3 pass through the three-dimensional model is determined from the lowest layer of the tree structure shown in Fig. 21 using set operation symbols, and the position where the rays first hit is determined. . More specifically, in the range of complementary set ((A ⁇ B) ⁇ (C ⁇ D)) ⁇ E, the positions through which rays 1 to 3 first pass are determined.
  • the number of features can be reduced, and the necessary intersection information for each feature can be reduced. Furthermore, since there is no change between the intersections of the rays and the closed surfaces of the primitives that make up the solid model, it can be considered that the intersections between them are compressed.
  • FIG. 22 is a diagram schematically showing a situation in which ray 1 passes through a CSG-represented solid model
  • FIG. 23 is a diagram illustrating intersection information where ray 1 passes through a feature.
  • the light ray 1 passes through the closed surfaces of the primitives A to E in the order of B in , C in , B out , D in , E in , C out , D out , and E out .
  • the final bit string of (A ⁇ B) ⁇ (C ⁇ D) is obtained from the final bit string of (A ⁇ B) and (C ⁇ D) using the intersection information, and the complement set ((A Find the final bit string of ⁇ B) ⁇ (C ⁇ D)).
  • the final bit string of the complement set ((A ⁇ B) ⁇ (C ⁇ D)) includes points on the closed surface, the bits in the final bit string of (A ⁇ B) ⁇ (C ⁇ D) This is an inverted bit string in which bits are set from the +1 position where the intersection number is the smallest to the -1 position where the intersection number is the largest.
  • the final bit string of the complement set ((A ⁇ B) ⁇ (C ⁇ D)) is the inverted bit string standing at intersection numbers 2 to 5. Then, a set operation is performed on the provisional bit string of the complement set ((A ⁇ B) ⁇ (C ⁇ D)) ⁇ E and the final bit string of the complement set ((A ⁇ B) ⁇ (C ⁇ D)), and the complementary set ( Obtain the final bit string of (A ⁇ B) ⁇ (C ⁇ D)) ⁇ E. From the final bit string, it can be seen that the first position where the ray 1 passes through the CSG-represented solid model is the position of intersection number 6, C out .
  • FIG. 24 is a diagram schematically showing a situation in which the ray 2 passes through a CSG-expressed solid model
  • FIG. 25 is a diagram illustrating intersection information where the ray 2 passes through a feature.
  • the ray 2 passes through the closed surfaces of primitives A to E in the order of A in , B in , E in , A out , C in , B out , D in , C out , D out , and E out pass through.
  • the final bit string of (A ⁇ B) ⁇ (C ⁇ D) is obtained from the final bit strings of (A ⁇ B) and (C ⁇ D) in the same manner as described above using the intersection point information, Find the final bit string of the complement set ((A ⁇ B) ⁇ (C ⁇ D)).
  • the final bit string of the complement set ((A ⁇ B) ⁇ (C ⁇ D)) is an inversion of the bit string standing at intersection number 3.
  • FIG. 26 is a diagram schematically showing a situation in which the ray 3 passes through a CSG-expressed solid model
  • FIG. 27 is a diagram illustrating intersection information where the ray 3 passes through a feature.
  • the ray 3 passes through the closed surfaces of primitives A to E in the order of E in , A in , B in , A out , C in , B out , D in , C out , D out , E out pass through.
  • the final bit string of (A ⁇ B) ⁇ (C ⁇ D) is obtained from the final bit strings of (A ⁇ B) and (C ⁇ D) in the same way as described above using the intersection information, Find the final bit string of the complement set ((A ⁇ B) ⁇ (C ⁇ D)).
  • the final bit string of the complement set ((A ⁇ B) ⁇ (C ⁇ D)) is the inverted bit string with no bits set.
  • a set operation is performed on the provisional bit string of the complement set ((A ⁇ B) ⁇ (C ⁇ D)) ⁇ E and the final bit string of the complement set ((A ⁇ B) ⁇ (C ⁇ D)), and the complementary set ( Obtain the final bit string of (A ⁇ B) ⁇ (C ⁇ D)) ⁇ E. From the final bit string, it can be seen that the first position where the ray 3 passes through the CSG-represented solid model is the position E in of the intersection number 1.
  • 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 parts shown in FIG. 16.
  • FIG. 30 is a display example of parts obtained by calculating the union of feature 1 and a cylinder.
  • a 3D CAD system displays a 3D model on a 2D screen, so the viewpoint frequently changes for model recognition. By quickly calculating the reflected light when a triangle is illuminated, it is possible to quickly process the display when the viewpoint is changed.
  • a solid model expressed in CSG can be displayed in real time.
  • the three-dimensional CAD/CAM system can display dexels by calculating a group of line segments of dexels in a solid model from set operations based on CSG data.
  • Dexel it is possible to create processing simulations of workpiece shapes and modeling information for 3D printers.
  • FIG. 31 is a diagram showing an example of two-dimensional dexel.
  • dexel is shaped by the product set of a group of fine straight lines parallel to the X-axis and at equal intervals with the shape, and the product set of the shape and a group of fine straight lines parallel to the Y-axis and at regular intervals. This is an expression method that approximates .
  • three-dimensional dexels they can be obtained by adding a group of line segments in the Z-axis direction to these.
  • a group of dexel line segments in a solid model can be calculated using real-time ray tracing, similar to a three-dimensional model.
  • a method of performing a set operation of light rays on CSG data was shown, but in the three-dimensional dexel, a set operation of dexel straight lines is performed on CSG data instead of light rays.
  • a three-dimensional dexel is constructed from a group of line segments existing in the solid model of CSG representation in a group of straight lines parallel to the X axis, a group of straight lines parallel to the Y axis, and a group of straight lines parallel to the Z axis.
  • FIG. 32 is a flowchart for explaining real-time ray tracing processing for generating dexels.
  • step S21 a straight line parallel to any one of the X-axis, Y-axis, or Z-axis is generated, and in step S22, the straight line is made to advance to each object.
  • an object is a part at the top of a feature.
  • step S23 a straight line collides with each object and an intersection point is determined.
  • the shortest point of intersection between a straight line and a part is the same as the method for finding the shortest point of intersection between a ray and a part as described above, and the position of the lowest intersection number in the final bit string of the part is the point of intersection between the straight line and the part.
  • step S24 it is determined whether the progression of the straight line group parallel to the X axis, the straight line group parallel to the Y axis, and the straight line group parallel to the Z axis of the entire scene has been completed. If it is determined that the linear progression of the entire scene has been completed, the process advances to step S25, and if it is determined that the linear progression of the entire scene has not been completed, the process returns to step S22, and a straight line is made to advance to each object.
  • FIG. 33 is a diagram schematically showing a situation in which a straight line passes through a CSG-expressed solid model
  • FIG. 34 is a diagram illustrating an example of the tree structure of the CSG-expressed solid model shown in FIG. 33.
  • the range through which a straight line passes through the solid model is determined from the lowest layer of the tree structure shown in FIG. 34 using set operation symbols. For example, as shown in FIG. 33, the straight line is connected to the primitives A to E in the order of E in , A in , B in , A out , C in , B out , D in , C out , D out , and E out .
  • NC data determines the operation of a tool for processing a shape. Since NC data is information processed by a computer, it is digital information. In order to process a shape, the position of a tool that comes into contact with the shape must be provided as NC data. In other words, the NC data specifies the tool position that contacts the shape at a precise point within a predetermined distance. In this embodiment, the concept of complementary dexel is introduced when generating NC data. This is almost the same concept as the complement set.
  • FIG. 35 is a diagram showing an example of a complementary dexel having a mold shape
  • FIG. 36 is a diagram for explaining a complementary set.
  • complementary dexels that approximate the shape of the core mold of the mold are shown by a group of line segments parallel to the X-axis and a group of line segments parallel to the Z-axis.
  • a dexel approximates a CSG-expressed solid model, but a set of line segments that are not included in the dexel that approximates the CSG is defined as a complementary dexel.
  • the supplementary dexels are calculated when the overall set U is a group of straight lines parallel to the The complement set A is ⁇ .
  • the tip of the reverse tool is placed at the end point of the line segment forming the complementary dexel and cut, thereby obtaining NC data including the path of the normal tool position.
  • NC data can be obtained using the reverse offset method described below.
  • FIG. 37 is a diagram for explaining cutting of a supplementary dexel (XZ dexel) using a reverse tool. As shown in FIG. 37, the end points of the line segments parallel to the Z axis constituting the supplementary dexel are cut using the reverse tool 31. Further, by reducing the interval between the complementary dexels and bringing them closer to 0, it is possible to make the cutting position more precise.
  • FIGS. 38(A) to 38(C) are diagrams showing examples of a ball tool, a flat tool, and a radius tool, respectively
  • FIGS. 38(A') to 38(C') are diagrams showing an example of a ball tool, a flat tool, and a radius tool, respectively.
  • the reverse tool is a normal tool reversed in the Z-axis direction.
  • the complementary dexel cut using a reverse tool can be performed not only with a ball tool but also with a radius tool or a flat tool, as will be described later.
  • FIG. 39 is a diagram schematically showing a state in which a tool facing the opposite direction from the shape is moved in the Z direction by the tool radius
  • FIG. 40 is a diagram schematically showing a state in which the surface of the tool facing backward is arranged in the shape.
  • the reverse offset method assumes an envelope generated by the reverse tool surface when the center of the tip of the reverse tool is placed at a point on the shape surface, and this envelope can be regarded as the shape offset by the tool radius. It is based on this principle.
  • the envelope surface generated by the surface of the tool 31 in the opposite direction by moving the entire tool 31 in the opposite direction in the Z direction by the tool radius is the same as the reverse offset method in which the shape is offset by the tool radius. result. Therefore, as shown in FIG. 40, if the surface of the reverse tool 31 is placed at a point on the shape to find its envelope surface, and the point on the envelope surface is also the position of the surface of the tool 32, the tool that contacts the shape 32 positions can be obtained. This principle is clear if the tip of the tool 32 is spherical, and also holds true even when scaling in the Z direction, so it also holds true even if the tip of the tool 32 is an ellipsoid.
  • FIG. 41 is a diagram schematically showing a state in which the center of the reverse flat tool is placed in the shape.
  • FIG. 42(A) is a diagram illustrating the case where the center of the reverse flat tool is arranged in the shape
  • FIG. 42(B) is a diagram showing the AA′ cross section shown in FIG. 42(A). It is.
  • FIGS. 41 and 42 when the tool 41 oriented opposite to the shape is cut along a plane parallel to the XY plane, the shape cross section two-dimensionally offset by the radius of the tool coincides with the envelope cross section. Further, when the point on the envelope cross section is set as the center of the tool 42, the tool 42 touches the shape. Therefore, even if the tip of the tool is flat, the principle of the reverse offset method holds true.
  • FIG. 43(A) is a diagram showing an example of a radius tool
  • FIG. 43(B) is a diagram showing an example of a ball tool
  • FIG. 44 is a diagram schematically showing a state in which the surface of a reverse ball tool is arranged in the shape
  • FIG. 45 is a diagram schematically showing a state in which the shape and envelope surface are cut on a plane parallel to the XY plane.
  • the radius tool will contact the shape. Since the offset line r of the envelope cross section is a line obtained by cutting the envelope surface of the reverse radius tool with a plane, the principle of the reverse offset method also holds true for the radius tool. Further, even if the side surface of the radius tool is an ellipsoid, the principle of the reverse offset method holds true in the same way.
  • FIG. 46 is a diagram for explaining the correction process for correcting the tool position.
  • the method for correcting the position of the tool 61 is to generate a group of half straight lines outward from the center of the tool at the position of the tool 61, and find the distance from the shape 62 of the solid model expressed in CSG. This method can perform processing similar to the ray tracing method.
  • the position of the tool 61 is corrected by selecting from among the half-straight lines the one whose distance to the point of intersection with the shape 62 of the solid model is the closest (including negative cases).
  • This correction method differs depending on how the tool is moved when performing finishing machining, such as copy machining or contour line machining, for example.
  • Copy processing is a method of processing along a shape by moving in the Z direction along a two-dimensionally projected line.
  • Contour line machining is a method of machining along a shape by moving a tool parallel to the XY plane.
  • FIG. 47(A) is a diagram illustrating correction processing in the case of copying processing
  • FIG. 47(B) is an enlarged view of the correction processing portion.
  • the distance of the half straight line that is the shortest distance from the shape 62 among the half straight lines extended from the center of the tool 61 is d
  • FIG. 48 is a diagram explaining the correction process in the case of contour line processing
  • FIG. 48(B) is an enlarged view of the correction process part.
  • the half straight line extending from the center of the tool 61 has the shortest distance from the shape 62.
  • a straight line is determined, and the tool 61 is moved by dsin ⁇ in the direction in which the straight line is projected onto the XY plane.
  • FIG. 49 is a diagram for explaining mirror finishing
  • FIG. 50 is a photograph of a workpiece subjected to mirror finishing.
  • a ball tool 71 a workpiece 72 measuring 26 mm in the X-axis direction, 26 mm in the Y-axis direction, and 30 mm in the Z-axis direction was mirror-finished by copying the curved surface of the upper surface.
  • processing was performed using NC data at intervals of 0.005 mm parallel to the X-axis direction.
  • FIG. 51 is a diagram showing the complementary dexel
  • FIG. 52 is a diagram schematically showing the cutting by the reverse tool of the complementary dexel.
  • a dexel that approximated a CSG-expressed solid model was found, and its complementary dexel was found as shown in FIG. 51.
  • the tip position of the ball tool 74 was determined by cutting the complementary dexel with a reverse ball tool 73 having a radius of 2 mm.
  • the ball tool 74 is almost in contact with the workpiece, but in the case of mirror finishing, the surface roughness must be about 30 nm near the measurement point. Therefore, by using the correction process in the copying process described above, the accuracy of the position from where the complementary dexel is cut to the position where it contacts the surface of the CSG-expressed solid model was increased to the nanometer level.
  • FIG. 53 is a diagram showing an example of a mold cavity
  • FIG. 54 is a diagram showing an example in which the grooves and corners of the mold cavity shown in FIG. 53 are protected with fillets.
  • the narrow groove may cause chatter of the tool during corner processing, which may damage the cavity. Therefore, as shown in FIG. 54, it is necessary to protect the grooves and corners by adding fillets to fill them. This protection process is inefficient because it requires modeling using CAD. Therefore, by using a ball tool with a diameter of 10 mm, which is larger than a ball tool with a diameter of 5 mm, as a reverse tool for cutting the auxiliary dexel, the grooves and corners are protected.
  • FIG. 55 is a diagram showing an example of a complementary dexel of a cavity
  • FIG. 56 is a diagram schematically showing a state in which the complementary dexel shown in FIG. 55 is cut with a ⁇ 5 ball tool as a reverse tool
  • FIG. 55 is a diagram schematically showing a state in which the supplementary dexel shown in FIG. 55 is cut with a ball tool of ⁇ 10 as a reverse tool.
  • FIG. 58 is a diagram showing the shape of the supplementary dexel cut and processed with a ⁇ 10 reverse tool.
  • the shape of the mold cavity shown in FIG. 58 is expressed by stretching the end points of the dexel using the Martin cube method.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Processing Or Creating Images (AREA)
  • Numerical Control (AREA)

Abstract

曲面を含む形状に対し、工具の位置を与えるNCデータを高速に生成することができる3次元CAD/CAMシステムを提供する。三角形頂点の座標値と、三角形頂点の法線ベクトルと、三角形頂点からなる始点及び終点と始点及び終点の接線ベクトルで構成される曲線素とを含む微分多面体の集合である微分多面体モデルを用い、微分多面体の辺を接続して曲面を構成し、曲面間を曲面境界線で接続した閉曲面を構成し、閉曲面の内部に属する点集合であるプリミティブを生成するプリミティブ生成部と、プリミティブの集合演算のツリー構造により、ソリッドモデルをCSG表現したCSGデータを格納する格納部と、CSGデータに基づく集合演算により、プリミティブの閉曲面と直線との交点からソリッドモデルと直線との交点を求め、ソリッドモデルに含まれる線分群であるデクセルを生成するデクセル生成部と、デクセルに基づいて工具の位置を与えるNCデータを生成するNCデータ生成部とを備える。

Description

3次元CAD/CAMシステム
 本技術は、ソリッドモデルを用いる3次元CAD/CAMシステムに関する。
 デジタルトランスフォーメーション(DX:Digital Transformation)の基本的な考え方は、既存の仕事をバーチャルで行い、アルゴリズムによる確実で高速な処理に移行する部分を増やすことで著しい生産性の向上をはかろうという考え方である。数値、文章などは、バーチャル化しやすいが、製造業の世界では“もの”を扱うため、“もの”をバーチャルで表現するには、3次元モデル化してバーチャルの世界で表現しなければならない。
 従来、3次元CAD(3D Computer Aided Design)システムを使って“もの”を3次元モデルにしているが、3次元CADシステム間のデータ変換でトラブルが発生することが多い。このため、システム間でのスムースな連携に支障がでており、製造業のDX化が進んでいない原因になっている。
 3次元CADシステム間の3次元モデル変換の規格や仕組みとして、例えば、ANSI(American National Standard Institute:米国国家規格協会)規格のIGES(Initial Graphics Exchange Specification)、ISO(International Organization for Standardization:国際標準化機構)規格としてSTEP(Standard for the Exchange of Product model data)などが制定されているが、規格だけではデータ変換がうまくいっていない。その最大の理由は、モデリング精度という計算誤差を処理する仕組みが3次元CADシステムによって異なっているためである。モデリング精度を必要とする理由は、3次元モデルを表現する方法に原因がある。
 3次元モデルで表現する形状としては、ワイヤーフレームモデル、サーフェイスモデル、ソリッドモデルなどがあるが、3次元CADシステムの多くは、ソリッドモデルである。ソリッドモデルを表現する方法は、B-Rep(Boundary Representation)とCSG(Constructive Solid Geometry)の2つの方法が従来から考察されてきた。
 B-Repは、3次元モデルの表面を複数の曲面で覆い、境界で張り合わせて閉曲面とし、その内側を目的の3次元モデルであるとする表現方法である。一方、CSGは、プリミティブといわれる基本的な形状の集合演算によって3次元モデルを構成していく方法である(例えば、非特許文献1参照。)。
 自由曲面を扱う利便性や3次元モデルを応用した3DCAM(3D Computer Aided Manufacturing)などのインターフェースとしては、B-Repによる表現方法の方が都合よい。そのため、現在の3次元CADシステムのほとんどはB-Repを採用しており、CSGは補助的な役割で使用されているに過ぎない。3次元データの変換規定であるSTEPでもB-Repが採用されている。
 しかしながら、B-Repでは、3次元モデルで曲面を導入する必要があるため、モデリング誤差を導入しなければならない。現在の3次元CADシステムでは、Bスプライン曲面などのパラメトリック曲面を用いるのが主流である。パラメトリック曲面は、二変数関数F(u,v)によって(u,v)空間の矩形をxyz空間に投影してできる曲面である。このため、4変形が基本的な形である。
 図59は、B-Repにおける境界線でトリムされた曲面の一例を示す図である。図59に示すように、B-Repにおいては、境界線でトリミングし、トリム曲面を使用する。曲面境界線を表す方法もパラメータで表現するパラメトリック曲線であるため、曲面境界線が曲面上に正確に乗っていることはなく、曲面境界線と曲面との隙間がモデリング精度以下であれば、曲面境界線が曲面に乗っていると判定しているにすぎない。
 図60は、B-Repにおける曲面間を接続する曲面境界線の一例を示す図である。図60に示すように、B-Repでは、境界線に対して第1面及び第2面の情報で曲面間を接続し、全体として、曲面の内側をソリッドモデルとして認識する。そのため、曲面間にどうしても隙間が空いてしまう。このモデリング精度が3次元CADシステムにより異なるため、3次元モデルの変換において不具合が発生する主な要因となっている。
 一方、CSGによる表現方法は、現在、B-Rep表現を補助するために使用されている。CSGによるソリッドモデルの表現は、データ変換トラブルの主原因であるモデリング誤差を考慮する必要がないなどの利点がある。CSG表現の3次元CADシステムが主流にならなかった理由として、表示速度が遅いこと、3次元モデルの基本的な要素であるプリミティブの種類が少ないので曲面を含む形状の表現が困難であることなどが挙げられる。
Introduction to Solid Modeling, Martti Mantyla, 1988
 本技術は、このような従来の実情に鑑みて提案されたものであり、曲面を含む形状に対し、工具の位置を与えるNCデータを高速に生成することができる3次元CAD/CAMシステムを提供する。
 本技術に係る3次元CAD/CAMシステムは、三角形頂点の座標値と、三角形頂点の法線ベクトルと、三角形頂点からなる始点及び終点と始点及び終点の接線ベクトルで構成される曲線素とを含む微分多面体の集合である微分多面体モデルを用い、前記微分多面体の辺を接続して曲面を構成し、前記曲面間を曲面境界線で接続した閉曲面を構成し、前記閉曲面の内部に属する点集合であるプリミティブを生成するプリミティブ生成部と、前記プリミティブの集合演算のツリー構造により、ソリッドモデルをCSG表現したCSGデータを格納する格納部と、前記CSGデータに基づく集合演算により、前記プリミティブの閉曲面と直線との交点から前記ソリッドモデルと直線との交点を求め、前記ソリッドモデルに含まれる線分群であるデクセルを生成するデクセル生成部と、前記デクセルに基づいて工具の位置を与えるNCデータを生成するNCデータ生成部とを備える。
 また、本技術に係る3次元CAD/CAMは、三角形頂点の座標値と、三角形頂点の法線ベクトルと、三角形頂点からなる始点及び終点と始点及び終点の接線ベクトルで構成される曲線素とを含む微分多面体の集合である微分多面体モデルを用い、前記微分多面体の辺を接続して曲面を構成し、前記曲面間を曲面境界線で接続した閉曲面を構成し、前記閉曲面の内部に属する点集合であるプリミティブを生成するプリミティブ生成工程と、前記プリミティブの集合演算のツリー構造により、ソリッドモデルをCSG表現したCSGデータを格納部に格納する格納工程と、前記CSGデータに基づく集合演算により、前記プリミティブの閉曲面と直線との交点から前記ソリッドモデルと直線との交点を求め、前記ソリッドモデルに含まれる線分群であるデクセルを生成するデクセル生成工程と、前記デクセルに基づいて工具の位置を与えるNCデータを生成するNCデータ生成工程とを有する。
 また、本技術に係る3次元CAD/CAMプログラムは、三角形頂点の座標値と、三角形頂点の法線ベクトルと、三角形頂点からなる始点及び終点と始点及び終点の接線ベクトルで構成される曲線素とを含む微分多面体の集合である微分多面体モデルを用い、前記微分多面体の辺を接続して曲面を構成し、前記曲面間を曲面境界線で接続した閉曲面を構成し、前記閉曲面の内部に属する点集合であるプリミティブを生成するプリミティブ生成工程と、前記プリミティブの集合演算のツリー構造により、ソリッドモデルをCSG表現したCSGデータを格納部に格納する格納工程と、前記CSGデータに基づく集合演算により、前記プリミティブの閉曲面と直線との交点から前記ソリッドモデルと直線との交点を求め、前記ソリッドモデルに含まれる線分群であるデクセルを生成するデクセル生成工程と、前記デクセルに基づいて工具の位置を与えるNCデータを生成するNCデータ生成工程とをコンピュータに実行させる。
 本技術によれば、モデリング誤差を考慮せずに、曲面を含む形状に対し、工具の位置を与えるNCデータを高速に生成することができる。
図1は、本実施の形態に係る3次元CADシステムの構成例を示すブロック図である。 図2は、本実施の形態に係る3次元CADシステムを実現するコンピュータ装置の構成例を示すブロック図である。 図3は、微分多面体の細分割処理を説明するための図であり、図3(A)は、三角形モデルを示し、図3(B)は、空間測地線による境界線を示し、図3(C)は、1微分多面体を示し、図3(D)は、2微分多面体を示す。 図4は、曲線素を含む微分多面体の細分割処理を説明するための図であり、図4(A)は、曲線素を含む三角形モデルを示し、図4(B)は、曲線素による境界線を示し、図4(C)は、1微分多面体を示す。 図5(A)は、微分多面体を説明するための図であり、図5(B)は、曲線素情報を説明するための図である。 図6は、プリミティブのデータ構造およびCSG表現内でのプリミティブのデータ構造を説明するための図である。 図7は、曲面及び曲面境界線の一例を示す図である。 図8は、境界線がない曲面の一例を示す図である。 図9は、閉曲面の一例として立方体を示す図である。 図10は、閉曲面の一例として円柱を示す図である。 図11は、閉曲面の一例として自由曲面を示す図である。 図12は、プリミティブの和集合及び積集合を有するツリー構造の一例を示す図である。 図13は、プリミティブの集合演算結果の一例を模式的に示す図である。図13(A)は、立方体プリミティブA及び円柱プリミティブBの一例を模式的に示す図であり、図13(B)は、立方体プリミティブAと円柱プリミティブBとの和A∪Bの一例を模式的に示す図であり、図13(C)は、立方体プリミティブAと円柱プリミティブBとの積A∩Bの一例を模式的に示す図であり、図13(D)は、立方体プリミティブAと円柱プリミティブBとの積A∩Bの一例を模式的に示す図である。 図14は、図12に示すツリー構造において、演算記号を省略した場合のツリー構造の一例を示す図である。 図15は、フィーチャのツリー構造の一例を示す図である。 図16は、パーツのツリー構造の一例を示す図である。 図17は、シェーディングを説明するための図であり、図15(A)は、フラットシェーディングを説明するための図であり、図15(B)は、フォンシェーディングを説明するための図である。 図18は、リアルタイムレイトレーシング処理を説明するためのフローチャートである。 図19は、暫定ビット列の計算方法を説明するための図であり、図19(A)は、和集合の暫定ビット計算を示し、19(B)は、積集合の暫定ビット計算を示す。 図20は、光線1~光線3がCSG表現のソリッドモデルを通過する状況を模式的に示す図である。 図21は、図20に示すCSG表現のソリッドモデルのツリー構造の一例を示す図である。 図22は、光線1がCSG表現のソリッドモデルを通過する状況を模式的に示す図である。 図23は、光線1がフィーチャを通過する交点情報を説明するための図である。 図24は、光線2がCSG表現のソリッドモデルを通過する状況を模式的に示す図である。 図24は、光線2がフィーチャを通過する交点情報を説明するための図である。 図26は、光線3がCSG表現のソリッドモデルを通過する状況を模式的に示す図である。 図27は、光線3がフィーチャを通過する交点情報を説明するための図である。 図28は、図15に示すフィーチャ1の表示例を示す図である 図29は、図16に示すパーツの表示例を示す図である。 図30は、フィーチャ1と円筒の和集合演算したパーツの表示例である。 図31は、2次元デクセルの一例を示す図である。 図32は、デクセルを生成するためのリアルタイムレイトレーシング処理を説明するためのフローチャートである。 図33は、直線がCSG表現のソリッドモデルを通過する状況を模式的に示す図である。 図34は、図33に示すCSG表現のソリッドモデルのツリー構造の一例を示す図である。 図35は、金型形状の補デクセルの一例を示す図である。 図36は、補集合を説明するための図である。 図37は、逆向き工具による補デクセル(XZデクセル)のカットを説明するための図である。 図38(A)~38(C)は、それぞれボール工具、フラット工具、及びラジアス工具の一例を示す図であり、図38(A’)~(C’)は、それぞれボール工具、フラット工具、及びラジアス工具に対応する逆向き工具の一例を示す図である。 図39は、形状から逆向きの工具を工具半径分Z方向に移動させた状態を模式的に示す図である。 図40は、形状に逆向き工具の表面を配置させた状態を模式的に示す図である。 図41は、形状に逆向きフラット工具の中心を配置させた状態を模式的に示す図である。 図42(A)は、形状に逆向きフラット工具の中心を配置させたときを説明する図であり、図42(B)は、図42(A)示すA-A’断面を示す図である。 図43(A)は、ラジアス工具の一例を示す図であり、図43(B)は、ボール工具の一例を示す図である。 図44は、形状に逆向きボール工具の表面を配置させた状態を模式的に示す図である。 図45は、形状及び包絡面をXY平面に平行な平面で切断させた状態を模式的に示す図である。 図46は、工具位置を補正する補正処理を説明するための図である。 図47(A)は、倣い加工の場合における補正処理を説明する図であり、図47(B)は、補正処理部分の拡大図である。 図48は、等高線加工の場合における補正処理を説明する図であり、図48(B)は、補正処理部分の拡大図である。 図49は、鏡面加工を説明するための図である。 図50は、鏡面加工を実施したワークの写真である。 図51は、補デクセルを示す図である。 図52は、補デクセルの逆向き工具によるカットを模式的に示す図である。 図53は、金型キャビティの一例を示す図である。 図54は、図53に示す金型キャビティの溝部やコーナー部をフィレットで保護した例を示す図である。 図55は、キャビティの補デクセルの一例を示す図である。 図56は、図55に示す補デクセルを逆向き工具としてφ5のボール工具でカットした状態を模式的に示す図である。 図57は、図55に示す補デクセルを逆向き工具としてφ10のボール工具でカットした状態を模式的に示す図である。 図58は、補デクセルをφ10の逆向き工具でカットして加工した形状を示す図である。 図59は、B-Repにおける曲面境界線でトリムされた曲面の一例を示す図である。 図60は、B-Repにおける曲面間を接続する境界線の一例を示す図である。
 以下、本技術の実施の形態について、図面を参照しながら下記順序にて詳細に説明する。
1.3次元CADシステム
2.微分多面体による曲面
3.プリミティブの集合演算
4.3次元モデルの表示
5.デクセルの生成
 <1.3次元CADシステム>
 図1は、本実施の形態に係る3次元CADシステムの構成例を示すブロック図である。図1に示すように、3次元CADシステムは、プリミティブの形状処理を行う形状処理部1と、CSG(Constructive Solid Geometry)データを格納する格納部2と、CSG表現のソリッドモデルを表示する表示処理部3と、他の形式のデータをCSG表現のデータに変換し、CSG表現のデータを他の形式のデータに変換するデータ変換部4とを有する。また、形状処理部1は、プリミティブ生成部11と、集合演算処理部12と、作図線生成部13と、デクセル生成部14と、NCデータ生成部15とを有する。
 プリミティブ生成部11は、三角形頂点の座標値と、三角形頂点の法線ベクトルと、三角形頂点からなる始点及び終点と、始点及び終点の接線ベクトルで構成される曲線素とを含む微分多面体の集合である微分多面体モデルを用いる。そして、プリミティブ生成部11は、微分多面体の辺を接続して曲面を構成するとともに、曲面間を曲面境界線で接続した閉曲面を構成し、閉曲面の内部に属する点集合であるプリミティブを生成する。これにより、曲面を含む形状の表現を容易に行うことができる。ここで、閉曲面は、3次元空間を2つの領域に分離する面を意味する。
 また、プリミティブ生成部11は、三角形頂点の座標値と、三角形頂点の法線ベクトルとに基づいて、三角形頂点からなる始点及び終点と始点及び終点の接線ベクトルで構成される曲線素を追加し、微分多面体を生成する。これにより、例えば、頂点に法線ベクトル情報を持つ三角形を用いて微分多面体を生成することができる。
 また、プリミティブ生成部11は、隣接する第1の微分多面体及び第2の微分多面体で共有する三角形頂点の座標値と三角形頂点の法線ベクトルとを用いて空間測地線を生成し、空間測地線を共有して接続関係を構築し、曲面を構成する。すなわち、プリミティブ生成部11は、隣接する第1の微分多面体及び第2の微分多面体で空間測地線を共有することにより接続関係を構築し、この接続関係によって曲面を構成する。
 また、プリミティブ生成部11は、曲面間で共有する曲線素を用いて曲面間の接続関係を構築し、曲面間を接続した閉曲面を構築する。曲面間で共有する曲線素で曲面間の接続関係を構築し、曲面間を接続した場合、曲面間の曲線素の接続関係は曲面間の境界線となり、これが曲面境界線となる。これにより、モデリング誤差を考慮せずに曲面間を、曲線素の接続で構成される曲面境界線で接続することができる。
 曲線素は、下記式(1)に示す3次の多項式曲線で表されることが好ましい。
Figure JPOXMLDOC01-appb-M000002
 ここで、曲線素は、三角形頂点からなる始点及び終点と、始点及び終点の接線ベクトルとを含むものであり、曲線素の長さは、下記式(2)で表すことができる。
Figure JPOXMLDOC01-appb-M000003
 式(2)において、積分の上限値に曲線の長さが出てくるため、曲線の長さ=式(2)となるように繰り返し計算することにより、係数A、B、C、Dを定める。
 集合演算処理部12は、プリミティブ間の集合演算を行い、記号操作のみを行うことで集合演算を実現する。記号操作のみで集合演算を実行することにより、簡素なデータ構造と集合演算の安定性を実現することができる。集合演算処理部12は、プリミティブの集合演算のツリー構造において、階層の上下に同じ集合演算記号がある場合、集合演算記号を省略する。これにより、演算量を削減することができる。
 作図生成部13は、2つのプリミティブの交線を作図線として生成する。これにより、プリミティブ生成部11において、作図線に基づいて新たなプリミティブを生成することができる。
 デクセル生成部14は、CSGデータに基づく集合演算により、プリミティブの閉曲面と直線との交点からソリッドモデルと直線との交点を求め、ソリッドモデルに含まれる線分群であるデクセルを生成する。デクセル生成部14は、後述するリアルタイムレイトレーシングを用いて、ソリッドモデルと直線との交点を求めることが好ましい。これにより、高速にデクセルを生成することができる。
 NCデータ生成部15は、デクセルに基づいて工具の位置を与えるNCデータを生成する。NCデータ生成部15は、デクセルに含まれない線分群である補デクセルを逆向き工具でカットすることにより、工具の位置を与えるNCデータを生成することが好ましい。これにより、例えば、逆向き工具の外径が、工具の外径以上であるものを使用することができ、工具のビビリが発生する溝部やコーナー部を保護することができる。
 また、NCデータ生成部15は、CSGデータに基づいて、ソリッドモデルと工具との最小距離を算出し、最小距離に基づいて工具の位置を移動させる処理を、最小距離がゼロとなるように繰り返し、補デクセルに基づく工具の位置を補正することが好ましい。これにより、ソリッドモデルの表面に接触させる工具の位置をnmレベルにすることができる。
 また、NCデータ生成部15は、工具の中心から外側に半直線群を発生させ、プリミティブの閉曲面と半直線との交点からソリッドモデルと半直線との交点を求め、ソリッドモデルと工具との最小距離を算出する。NCデータ生成部15は、リアルタイムレイトレーシングを用いて、ソリッドモデルと半直線との交点を求めることが好ましい。これにより、高速に工具の位置を補正することができる。
 格納部2は、プリミティブの集合演算のツリー構造により、ソリッドモデルをCSG表現したCSGデータを格納する。格納部2は、形状処理部1が形状処理するCSGデータを記憶する、例えば、RAM(Random Access Memory)や、ハードディスクなどのストレージである。CSGデータは、後述するように、三角形の集合モデルでプリミティブを構成可能であり、プリミティブ間の集合演算が可能であるツリー構造を有する。このCSGデータにより、プリミティブ間の集合演算によるツリー構造を用いて、ソリッドモデルを表現することができる。
 表示処理部3は、CSGデータに基づく集合演算により、プリミティブの閉曲面と光線との交点からソリッドモデルと光線との交点を求め、ソリッドモデルにおける光線の反射位置及び反射方向を計算する。
 表示処理部3は、プリミティブの集合演算のツリー構造において、階層の上下に同じ集合演算記号がある場合、集合演算記号を省略して、ソリッドモデルと光線との交点を求める。これにより、演算量を削減し、より高速にCSG表現のソリッドモデルを表示させることができる。
 表示処理部3は、例えば、GPU(Graphics Processing Unit)であり、CUDA(Compute Unified Device Architecture)をベースに記述されるレイトレーシングAPI(Application Programming Interface)を有し、リアルタイムレイトレーシングを用いて、ソリッドモデルと光線との交点を求める。これにより、ハードウェアで、光線とプリミティブの閉曲面との交点及び交点における閉曲面の法線ベクトルを高速に計算することができ、リアルタイムに表示することができる。
 データ変換部4は、例えば、STEP(Standard for the Exchange of Product model data)、IGES(Initial Graphics Exchange Specification)などのファイルをCSG表現のデータに変換し、CSG表現のデータをSTEP、IGESなどのファイルに変換する。
 このような3次元CADシステムによれば、微分多面体を基本要素とし、微分多面体の辺を接続して曲面を構成し、さらに曲面間を曲面境界線で接続して構成された閉曲面を使用することにより、モデリング誤差を考慮せずに、曲面を含む形状をCSG表現することができ、曲面を含む形状に対し、工具の位置を与えるNCデータを高速に生成することができる。また、ソリッドモデルを高速に表示することができる。
 図2は、本実施の形態に係る3次元CADシステムを実現するコンピュータ装置の構成例を示すブロック図である。図2に示すように、コンピュータ装置は、プログラムの実行処理を行うCPU(Central Processing Unit)21と、演算処理を行うGPU(Graphics Processing Unit)22と、CPU21により実行されるプログラムを格納するROM(Read Only Memory)23と、プログラムやデータを展開するRAM(Random Access Memory)24と、ユーザにより各種の入力操作を受ける操作入力部25と、プログラムやデータを固定的に保存するストレージ26と、データを入出力する入出力インターフェース27とを備える。
 CPU21は、例えば、前述のプリミティブ生成部11、集合演算処理部12、作図線生成部13などの処理が可能である。また、CPU21は、例えばストレージ26に記録されている3次元CADプログラムを読み出し、RAM24に展開して実行することにより、各ブロックの動作を制御する。
 GPU22は、ビデオメモリ(VRAM)を有し、CPU21から要求に応じて描画処理及び計算処理が可能である。また、GPU22は、例えば、CUDA(Compute Unified Device Architecture)をベースに記述されるレイトレーシングAPI(Application Programming Interface)を有する。
 ROM23は、例えば読み込みのみ可能な不揮発性メモリであり、コンピュータ装置が有する各ブロックの動作に必要な定数等の情報を記憶する。RAM24は、揮発性メモリであり、動作プログラムの展開領域としてだけでなく、コンピュータ装置が有する各ブロックの動作において出力された中間データ等を一時的に記憶する格納領域としても用いられる。
 操作入力部25は、コンピュータ装置1に対して入力操作を行う際に用いられるユーザインタフェースである。操作入力部25は、ユーザの入力操作に応じて前述の情報処理の実行または停止等の命令をCPU21に対して出力する。
 ストレージ26は、RAM24に展開される前述の情報処理プログラムなどを記録する。なお、ストレージ26としては、HDD(Hard disk drive)、SSD(Solid State Drive)、光学ドライブなどを用いることができる。入出力インターフェース27は、GPU22によって生成した画像を表示装置に出力することが可能である。
 このようなハードウェア構成において、前述の3次元CADシステムは、CPU21、GPU22、ROM23、RAM24、CPU21などにより実行されたソフトウェアの連携によって実現することができる。また、ソフトウェアプログラムは、光ディスクや半導体メモリなどの記録媒体に記憶させて配布する他に、インターネットなどを経由してダウンロードさせる構成としてもよい。
 <2.微分多面体による曲面>
 [微分多面体モデル]
 微分多面体モデルは、基本要素である微分多面体の集合であり、微分多面体の細分割を繰り返すことによって生成される点の集合でもある。微分多面体の細分割は、三角形の2点を結ぶ境界線の中間点を用いることができる。境界線は、空間測地線であっても、曲線素であってもよく、いずれの場合も微分多面体と呼ぶ。ここで、微分多面体の頂点を点と定義し、辺をエッジ(edge)と定義する。
 図3は、微分多面体の細分割処理を説明するための図であり、図3(A)は、三角形モデルを示し、図3(B)は、空間測地線による境界線を示し、図3(C)は、1微分多面体を示し、図3(D)は、2微分多面体を示す。微分多面体モデルにおいて、エッジ同士が一致していたときは同一の線であるとして、それを稜線(ridge)と定義し、稜線の両端点は頂点(vertex)と定義する。微分多面体の細分割は、微分多面体モデルの稜線両端の頂点の法線ベクトルを用いて空間測地線を生成し、空間測地線の中間点に頂点及び法線ベクトルを追加して2本の稜線を生成する。コンピュータでの処理は有限回で終了する必要があるため、有限回細分割した後に3点で構成される微小な三角形で近似する。細分割回数がn回のものをn微分多面体と呼ぶ。
 図4は、曲線素を含む微分多面体の細分割処理を説明するための図であり、図4(A)は、曲線素を含む三角形モデルを示し、図4(B)は、曲線素による境界線を示し、図4(C)は、1微分多面体を示す。曲線素は、三角形の2つの頂点と頂点における接線ベクトルで構成される。図4(C)に示すように、境界線が曲線素である場合の細分割は、曲線素の中間点を使用し、曲線素の両端における法線ベクトルの平均を中間ベクトルとすることができる。
 図5(A)は、微分多面体を説明するための図であり、図5(B)は、曲線素情報を説明するための図である。微分多面体モデルは、基本要素である微分多面体の集合であり、三角形の頂点(α,β,γ)の点情報と、三角形の辺(αβ,βγ,γα)の曲線素情報と、点情報の点IDと曲線素情報の曲線素IDとを含む三角形情報とを有する。点情報は、点ID毎に点の3次元の座標値と点の法線ベクトル(uα,uβ,uγ)とを含む点テーブルを有する。曲線素情報は、曲線素ID毎に、エッジ始点の点IDと、エッジ終点の点IDと、エッジ始点の接線ベクトルと、エッジ終点の接線ベクトルとを含む曲線素テーブルを有する。三角形情報は、三角形ID毎に、点IDと、曲線素IDと、曲線素の向き(正方向又は逆方向)と、三角形の法線ベクトルとを含む三角形テーブルを有する。ここで、法線ベクトル及び接線ベクトルは、正規化ベクトルである。
 すなわち、微分多面体モデルは、三角形頂点(α,β,γ)の座標値と、三角形頂点(α,β,γ)の法線ベクトル(uα,uβ,uγ)と、三角形頂点(α,β,γ)からなる始点及び終点と、始点及び終点の接線ベクトル(v1αβ,v2αβ,v1βγ,v2βγ,v1γα,v2γα)とを含む三角形の集合モデルである。
 始点の接線ベクトル及び終点の接線ベクトルは、正規化ベクトルであり、例えば、式(1)に示すような3次の多項式曲線で表すことができる。
Figure JPOXMLDOC01-appb-M000004
 ここで、曲線素は、三角形頂点からなる始点及び終点と、始点及び終点の接線ベクトルとを含むものであり、曲線素の長さは、下記式(2)で表すことができる。
Figure JPOXMLDOC01-appb-M000005
 式(2)において、積分の上限値に曲線の長さが出てくるため、曲線の長さ=式(2)となるように繰り返し計算することにより、係数A、B、C、Dを定める。
 図5(B)に示すように、微分多面体の辺が曲線素である場合、始点と終点との2点間を、始点及び終点と始点及び終点の接線ベクトルとを含む曲線素で補間することにより、後述のように、曲面を扱うことが可能となる。また、微分多面体は、三角形メッシュモデルのポリゴンモデルであり、CG(Computer Graphics)用のデータ形式であるobj形式に変換することができる。よって、微分多面体の集合である微分多面体モデルを用いることにより、3Dシステム間のデータ連携を円滑化することができる。また、CGソフトウェアとの高い親和性を得ることができ、曲面の滑らかさを容易に表現することができる。
 [CSG表現のデータ構造]
 図6は、プリミティブのデータ構造及びCSG表現内でのプリミティブのデータ構造を説明するための図である。CSGツリーノードは、根ノードであり、CSGノード及びプリミティブノードは、CSGツリーノードの子ノードである。
 CSGノードは、子ノードとして集合演算タイプノードを有し、CSGノードID毎に、プリミティブIDと、親ノードIDと、左子ノードIDと、右子ノードIDとを含むテーブルを有する。プリミティブノードは、子ノードとして、3次元座標ノードと、3次元ベクトルノードと、曲面素ノードと、曲線素ノードと、曲面ノードと、曲面境界線ノードとを有する。
 3次元座標ノードは、3次元座標ID毎に、三角形頂点の座標値(x,y,z)を含むテーブルを有する。3次元座標ベクトルは、3次元ベクトルID毎に、法線ベクトル及び接線ベクトルの成分(x,y,z)を含むテーブルを有する。曲面素ノードは、曲面素ID毎に、頂点座標IDと、頂点法線IDと、曲線素IDとを含むテーブルを有する。曲面素は、微分多面体と同じものである。曲線素ノードは、曲線素ID毎に、始点座標IDと、終点座標IDと、始点における接線ベクトルIDと、終点における接線ベクトルIDと、左隣接曲面素IDと、右隣接曲面素IDとを含むテーブルを有する。曲面ノードは、曲面ID毎に、曲面素ID群を含むテーブルを有する。曲面境界線ノードは、曲面境界線ID毎に、曲線素ID群と、曲線素群の向きとを含むテーブルを有する。
 ここで、曲面は、曲面境界線で囲まれた微分多面体群であり、曲面境界線は、連なった曲線素列で構成される。換言すれば、曲面は、微分多面体情報を有するものであり、曲面境界線は曲線素情報を有するものである。このようなデータ構造により、曲面を含むプリミティブを微分多面体モデルで表現することができ、また、プリミティブに対する集合演算を行うことができる。
 [微分多面体モデルの生成]
 微分多面体モデルは、例えば、STEP(Standard for the Exchange of Product model data)、IGES(Initial Graphics Exchange Specification、STL(Standard Triangulated Language))などのファイルから変換することができる。なお、STLは、「StereoLithography」と呼ばれることもある。
 先ず、3DCADモデルから、三角形頂点の座標値と、三角形頂点の法線ベクトルとを含む三角形の集合体モデルに変換し、三角形頂点の座標値と、三角形頂点の法線ベクトルとを含む点テーブルと、点IDを含む三角形テーブルとを作成する。
 この集合体モデルは、曲面を指定の近似誤差で三角形のポリゴンで近似して出力する際に頂点の法線ベクトルをCADデータから計算して付加した法線ベクトルをポリゴンの頂点に付加したモデルである。法線ベクトル付き三角形ポリゴンモデルは、プログラムにより、例えば3次多項式で表される曲面から指定の精度で出力される。法線ベクトル付き三角形ポリゴンモデルは、倍精度浮動小数点数の精度で出力されることが好ましい。
 次に、三角形の集合体モデルを用いて、三角形のエッジを抽出し、曲線素ID毎に、エッジ始点の点IDと、エッジ終点の点IDと、エッジ始点の接線ベクトルと、エッジ終点の接線ベクトルとを含む曲線素テーブルを作成し、三角形テーブルに、曲線素IDと、曲線素の向き(正方向又は逆方向)とを追加する。
 これにより、三角形頂点(α,β,γ)の座標値と、三角形頂点(α,β,γ)の法線ベクトル(uα,uβ,uγ)と、三角形頂点(α,β,γ)からなる始点及び終点と、始点及び終点の接線ベクトル(v1αβ,v2αβ,v1βγ,v2βγ,v1γα,v2γα)とを含む三角形の集合モデルである微分多面体モデルを生成することができる。
 [曲面及び曲面境界線]
 図7は、曲面及び曲面境界線の一例を示す図であり、図8は、曲面境界線がない曲面の一例を示す図である。図7及び図8に示すように、曲面は、微分多面体を頂点で繋ぎ合わせて構成され、曲面の端は、曲線素である。頂点には、法線ベクトルがあるため、細分割をしていくと、その中間点には法線ベクトルが与えられる。この処理を繰り返すと、微分多面体上にはいたるところで法線ベクトルが生成され、法線ベクトルの向きによって微分多面体の向きが決まる。そのため、曲面においても自然に曲面の向きが存在する。
 境界線は、図7に示す両矢印の点線範囲のように、滑らかに接続される曲線素のグループであり、曲面は、連続した境界線で囲まれる。境界線は、一方の曲面を構成する曲面素の順序リストと、他方の曲面を構成する曲面素の順序リストとを有し、曲面の接続関係を表すことができる。また、図8に示すように、境界線がない曲面も存在する。なお、ここおける曲面及び境界線の定義は、一般の曲面及び境界線の定義とは異なり、ローカルな定義である。
 [閉曲面]
 図9は、閉曲面の一例として立方体を示す図であり、図10は、閉曲面の一例として円柱を示す図であり、図11は、閉曲面の一例として自由曲面を示す図である。閉曲面は、複数の曲面を境界線で接続して閉じた曲面を構成するものである。ただし、閉曲面は、自己交差していないものとする。閉曲面は、法線ベクトルを反転して曲面の向きを反転させることも可能であり、閉曲面の向きを与えることも可能である。
 <3.プリミティブの集合演算>
 閉曲面は、3次元空間を2つの領域に分離する。閉曲面の裏面側にある点集合をプリミティブと呼ぶ。また、プリミティブは、ローカルな座標系を有する。
 プリミティブは、点の集合であるので、プリミティブに対する集合演算を行うことができる。本来の集合演算の定義と異なる部分があるので、ここで明確に定義する。
 [補集合]
 プリミティブの補集合は、3次元空間のプリミティブ以外の点の集合の閉包として扱う。このため、プリミティブの補集合は、閉曲面上の点を含むものである。プリミティブの補集合は、一般的な集合の補集合の閉包を意味していてAという記号で表し、補集合(A)と表す場合もある。また、プリミティブの補集合を略称として補集合と呼ぶ。
 [和集合]
 プリミティブの和集合は、通常の意味での和集合である。プリミティブA、プリミティブBの和集合演算を行って和集合を求める場合、属性としてプリミティブの補集合演算と座標変換を付与することができる。
 座標変換したプリミティブをTAで表すと、TA∪TBはそれぞれの座標変換で位置を変換したのちに、和集合演算を行うことを示している。和集合の記号は∪を使用する。プリミティブの代わりに、和集合同士の和集合、和集合とプリミティブの和集合演算を行うことができる。
 図12は、プリミティブの和集合及び積集合を有するツリー構造の一例を示す図である。図12において、属性は、座標変換、補集合演算を含んでいる。また、ツリー構造における和集合及び積集合の記号の部分をノードという。
 [積集合]
 プリミティブの積集合も、通常の意味での積集合である。和集合と同様に、プリミティブA、プリミティブBの積集合演算を行って積集合を求める場合、プリミティブの補集合演算と座標変換を属性として付与することができる。また、和集合と同様に、座標変換したプリミティブをTAで表すと、TA∩TBはそれぞれの座標変換で位置を変換したのちに、積集合をとることを示している。積集合の記号は∩を使用する。プリミティブの代わりに、和集合及び積集合同士の積集合、和集合及び積集合とプリミティブの積集合演算を行うことができる。
 図13は、プリミティブの集合演算結果の一例を模式的に示す図である。図13(A)は、立方体プリミティブA及び円柱プリミティブBの一例を模式的に示す図である。図13(B)は、立方体プリミティブAと円柱プリミティブBとの和A∪Bの一例を模式的に示す図である。図13(C)は、立方体プリミティブAと円柱プリミティブBとの積A∩Bの一例を模式的に示す図である。A∩Bは、プリミティブAの集合からプリミティブBの集合を取り除いた差になり、この演算によって、プリミティブ間の差分を求めることができる。BはBの補集合の閉包を表し、Bを補集合(B)と表す場合もある。図13(D)は、立方体プリミティブAと円柱プリミティブBとの積A∩Bの一例を模式的に示す図である。
 [階層の圧縮]
 図14は、図12に示すツリー構造において、演算記号を省略した場合のツリー構造の一例を示す図である。プリミティブの集合演算のツリー構造において、階層の上下で同じ演算記号がある場合、演算記号を省略することができる。この処理を階層の圧縮と呼ぶこととする。例えば、図12に示すツリー構造は、図14に示すようなツリー構造に変更することができる。図14に示すツリー構造において、属性A’は、属性Aと属性ABを合成した属性であり、同様にして、属性B’は属性Bと属性ABを合成した属性である。階層の圧縮は、後述するリアルタイムレイトレーシングの処理で光線とCSG表現によるソリッドモデルとの積集合を求めるときに重要になる。
 [集合演算操作]
 図15は、フィーチャのツリー構造の一例を示す図であり、図16は、パーツのツリー構造の一例を示す図である。図15に示すように、ノードに相当する和集合及び積集合の操作で生成される集合をフィーチャと呼ぶ。また、図16に示すように、最上位のノードで生成される集合をパーツと呼ぶ。CSG表現によるソリッドモデルは、コンピュータ内で、プリミティブの定義とツリー構造で表現することができる。
 フィーチャ1は、立方体プリミティブをスケールして移動する変換を別に実行し、これらのプリミティブの和集合演算を行ったものである。パーツは、フィーチャ1の集合に円柱を使って穴をあけて作成したものであり、円柱プリミティブをスケーリング及び配置した後、補集合演算とフィーチャ1との積集合を求めることで作成することができる。このようなコンピュータ内の演算は、座標変換と記号操作のみで行うことができる。
 <4.3次元モデルの表示>
 図17は、シェーディングを説明するための図であり、図17(A)は、フラットシェーディングを説明するための図であり、図17(B)は、フォンシェーディングを説明するための図である。フラットシェーディングは、微分多面体モデルの三角形の法線ベクトルの方向に反射する光を用いて3次元モデルを表示するものである。また、フォンシェーディングは、微分多面体モデルの三角形の頂点法線ベクトルで三角形内の法線ベクトルを補間し、その法線ベクトルに反射する光を用いて3次元モデルを表示するものである。
 このように3次元モデルを三角形の集合体モデルである微分多面体モデルを用いて、三角形に光を当てた時の反射光を高速に計算することにより、高速に3次元モデルをシェーディング表示することができる。
 また、CSG表現による3次元モデルは、リアルタイムレイトレーシングを用いることができる。レイトレーシングとは、人が物体を見るときの物理的な現象をシミュレーションする方法で、光線の一本一本について物体や物体のおかれている環境で反射・散乱・減衰を追跡する方法で、最終的に視覚に入ってくる光線を求める方法である。近年、NVIDIA社からGeForce RTX(商標)が発売されて、リアルタイムレイトレーシングが実現されている。このハードウェアをカスタマイズすることでCSG表現によるソリッドモデルを直接的にリアルタイムに表示することが可能になる。
 リアルタイムレイトレーシング処理は、例えば、Nvidia OptiX(商標)を用いることができる。Nvidia OptiX(商標)は、CUDA(Compute Unified Device Architecture)をベースに記述されるレイトレーシングAPI(Application Programming Interface)である。Nvidia OptiX(商標)の特徴は、光線の衝突判定・衝突時の挙動・非衝突時の挙動等、レイトレーシングの様々な処理をプログラムできることである。既存のシェーダーが適用できないモデルに対しても、ユーザがプログラムを記述することで効率的にレイトレーシングを行うことができる。
 図18は、リアルタイムレイトレーシング処理を説明するためのフローチャートである。先ず、ステップS11において、レイ(光線)を生成し、ステップS12において、レイを各オブジェクトに進行させる。ここで、オブジェクトは、フィーチャの最上位にあるパーツである。
 ステップS13では、レイを各オブジェクトに衝突させ、交点を求める。レイとパーツとの最短の交点は、次のように求めることができる。
 先ず、最下位の各フィーチャに、始点ビット列、終点ビット列、暫定ビット列、最終ビット列を含む交点情報を準備する。各ビット列の長さは、光線と全ての閉曲面との交点数とする。そして、光線と閉曲面との交点を光線の進行方向の順番に並べ、進行方向の順番に交点番号を1から付ける。
 光線が、フィーチャに直接所属するプリミティブの閉曲面に侵入する点があると、始点ビット列の交点番号の位置にビットを立てる。閉曲面から離脱する点である場合は、終点ビット列の交点番号の位置にビットを立てる。
 次に、始点ビット列及び終点ビット列を用い、集合演算記号により暫定ビット列を処理する。
 図19は、暫定ビット列の計算方法を説明するための図であり、図19(A)は、和集合の暫定ビット計算を示し、19(B)は、積集合の暫定ビット計算を示す。和集合演算の場合は、図19(A)に示す累積計算の配列を使い、列の先頭から始点ビット列と終点ビット列をチェックし、始点ビット列の位置にビットが立っていると1をプラスする。終点ビット列の位置にビットが立っていると次の位置に1をマイナスする。0でない列の位置にビットを立てることで暫定ビット列の処理が終了する。また、積集合演算の場合は、図19(B)に示すように、始点ビット列のビットが立っている交点番号が最大の位置から終点ビット列のビットが立っている交点番号の最小の位置まで、暫定ビット列にビットを立てる。
 最終ビット列の処理は、最下位にあるフィーチャから順番に処理を行う。最下位にあるフィーチャでは、暫定ビット列をそのまま最終ビット列にコピーする。1つ上位のフィーチャは、自分の暫定ビット列と配下にあるフィーチャの最終ビット列との集合演算を行い、最終ビット列に書き込む。
 このようにして順次上位のフィーチャの最終ビット列を確定し、フィーチャの最上位にあるパーツの最終ビット列を確定する。そして、パーツの最終ビット列の最小の交点番号の位置が、光線とパーツとの交点となり、この交点及び法線ベクトルにより、光線の反射位置と反射方向を得ることができる。
 ステップS14では、シーン全体のレイが進行完了したか否かを判断する。シーン全体のレイ進行が完了したと判断した場合はステップS15に進み、シーン全体のレイ進行が完了していないと判断した場合はステップS12に戻り、レイを各オブジェクトに進行させる。
 ステップS15では、レイの最も近い交点が確定したか否かを判断する。交点が確定したと判断した場合はステップS16に進み、交点が確定していないと判断した場合はステップS17に進む。
 ステップS16では、最短衝突オブジェクト用シェーディングを用いて、3次元モデルを表示し、ステップS17では、未衝突用シェーディングを用いて、3次元モデルを表示する。
 このようなリアルタイムレイトレーシング処理をハードウェアで行うことにより、3次元モデルにおける光線の反射位置及び反射方向をリアルタイムに計算し、表示することができる。
 [具体例]
 次に、前述したステップS13における光線とCSG表現のソリッドモデルとの最短の交点を求める方法について、具体例を挙げて説明する。
 図20は、光線1~光線3がCSG表現のソリッドモデルを通過する状況を模式的に示す図であり、図21は、図20に示すCSG表現のソリッドモデルのツリー構造の一例を示す図である。具体例では、図20に示すように、光線1~光線3が3次元モデルを通過する範囲を、図21に示すツリー構造の最下層から集合演算記号によって求め、最初に光線が当たる位置を求める。より具体的には、補集合((A∩B)∪(C∩D))∩Eの範囲で、最初に光線1~光線3が通過する位置を求める。
 ここで、前述した階層の圧縮を行うことにより、フィーチャ数を減らすことができ、フィーチャ毎に必要な交点情報を減らすことができる。また、光線とソリッドモデルを構成するプリミティブの閉曲面の交点間には変化がないため、その間は圧縮したとして考えてよい。
 図22は、光線1がCSG表現のソリッドモデルを通過する状況を模式的に示す図であり、図23は、光線1がフィーチャを通過する交点情報を説明するための図である。図22に示すように、光線1は、Bin、Cin、Bout、Din、Ein、Cout、Dout、Eoutの順番でプリミティブA~Eの閉曲面を通過する。
 図23に示すように、交点情報を用いて、(A∩B)及び(C∩D)の最終ビット列から(A∩B)∪(C∩D)の最終ビット列を求め、補集合((A∩B)∪(C∩D))の最終ビット列を求める。ここで、補集合((A∩B)∪(C∩D))の最終ビット列は、閉曲面上の点を含むため、(A∩B)∪(C∩D)の最終ビット列において、ビットが立っている交点番号が最小の位置の+1の位置から交点番号が最大の位置の-1の位置までビットが立ったビット列を反転したものである。すなわち、補集合((A∩B)∪(C∩D))の最終ビット列は、交点番号2~5に立っているビット列を反転させたものである。そして、補集合((A∩B)∪(C∩D))∩Eの暫定ビット列と補集合((A∩B)∪(C∩D))の最終ビット列とを集合演算し、補集合((A∩B)∪(C∩D))∩Eの最終ビット列を得る。最終ビット列により、光線1がCSG表現のソリッドモデルを通過する最初の位置は、交点番号6のCoutの位置であること分かる。
 図24は、光線2がCSG表現のソリッドモデルを通過する状況を模式的に示す図であり、図25は、光線2がフィーチャを通過する交点情報を説明するための図である。図24に示すように、光線2は、Ain、Bin、Ein、Aout、Cin、Bout、Din、Cout、Dout、Eoutの順番でプリミティブA~Eの閉曲面を通過する。
 図25に示すように、交点情報を用いて、前述と同様に、(A∩B)及び(C∩D)の最終ビット列から(A∩B)∪(C∩D)の最終ビット列を求め、補集合((A∩B)∪(C∩D))の最終ビット列を求める。補集合((A∩B)∪(C∩D))の最終ビット列は、交点番号3に立っているビット列を反転させたものである。そして、補集合((A∩B)∪(C∩D))∩Eの暫定ビット列と補集合((A∩B)∪(C∩D))の最終ビット列とを集合演算し、補集合((A∩B)∪(C∩D))∩Eの最終ビット列を得る。最終ビット列により、光線2がCSG表現のソリッドモデルを通過する最初の位置は、交点番号4のAoutの位置であること分かる。
 図26は、光線3がCSG表現のソリッドモデルを通過する状況を模式的に示す図であり、図27は、光線3がフィーチャを通過する交点情報を説明するための図である。図26に示すように、光線3は、Ein、Ain、Bin、Aout、Cin、Bout、Din、Cout、Dout、Eoutの順番でプリミティブA~Eの閉曲面を通過する。
 図27に示すように、交点情報を用いて、前述と同様に、(A∩B)及び(C∩D)の最終ビット列から(A∩B)∪(C∩D)の最終ビット列を求め、補集合((A∩B)∪(C∩D))の最終ビット列を求める。補集合((A∩B)∪(C∩D))の最終ビット列は、ビットが立っていないビット列を反転させたものである。そして、補集合((A∩B)∪(C∩D))∩Eの暫定ビット列と補集合((A∩B)∪(C∩D))の最終ビット列とを集合演算し、補集合((A∩B)∪(C∩D))∩Eの最終ビット列を得る。最終ビット列により、光線3がCSG表現のソリッドモデルを通過する最初の位置は、交点番号1のEinの位置であること分かる。
 [表示例]
 図28は、図15に示すフィーチャ1の表示例を示す図である。図29は、図16に示すパーツの表示例を示す図である。また、図30は、フィーチャ1と円筒の和集合演算したパーツの表示例である。
 3次元CADシステムは、2次元スクリーンの中で3次元モデルを表示するため、モデル認識のために頻繁に視点を変更するが、3次元モデルを三角形の集合体モデルである微分多面体モデルを用いて、三角形に光を当てた時の反射光を高速に計算することにより、視点変更したときの表示を高速に処理することができる。特に、リアルタイムレイトレーシングが可能なハードウェアを用いることにより、CSG表現によるソリッドモデルをリアルタイムに表示することができる。
 <5.デクセルの生成>
 また、3次元CAD/CAMシステムは、CSGデータに基づく集合演算から、ソリッドモデルにおけるデクセルの線分群を計算することにより、デクセルを表示することができる。デクセルにより、工作物形状の加工シミュレーションや3Dプリンタ用の造形情報を生成することができる。
 図31は、2次元デクセルの一例を示す図である。図31に示すように、デクセルは、X軸に平行かつ微小な等間隔の直線群と形状との積集合、及びY軸に平行かつ微小な等間隔の直線群と形状との積集合によって形状を近似する表現方法である。3次元デクセルの場合は、これらにZ軸方向の線分群を加えることで得られる。
 ソリッドモデルにおけるデクセルの線分群は、3次元モデルと同様、リアルタイムレイトレーシングを用いて計算することができる。3次元モデルでは、CSGデータに対して光線の集合演算を行う方法を示したが、3次元デクセルでは、CSGデータに対して光線の代わりにデクセルの直線の集合演算を行う。そして、X軸に平行な直線群、Y軸に平行な直線群、及びZ軸に平行な直線群において、CSG表現のソリッドモデル内に存在する線分群により3次元デクセルを構成する。
 図32は、デクセルを生成するためのリアルタイムレイトレーシング処理を説明するためのフローチャートである。先ず、ステップS21において、X軸、Y軸、又はZ軸のいずれかに平行な直線を生成し、ステップS22において、直線を各オブジェクトに進行させる。ここで、オブジェクトは、フィーチャの最上位にあるパーツである。
 ステップS23では、直線を各オブジェクトに衝突させ、交点を求める。直線とパーツとの最短の交点は、前述した光線とパーツとの最短の交点の求め方と同様であり、パーツの最終ビット列の最小の交点番号の位置が、直線とパーツとの交点となる。
 ステップS24では、シーン全体のX軸に平行な直線群、Y軸に平行な直線群、及びZ軸に平行な直線群について進行完了したか否かを判断する。シーン全体の直線進行が完了したと判断した場合はステップS25に進み、シーン全体の直線進行が完了していないと判断した場合はステップS22に戻り、直線を各オブジェクトに進行させる。
 このようなリアルタイムレイトレーシング処理をハードウェアで行うことにより、3次元デクセルの線分群をリアルタイムに計算することができる。
 図33は、直線がCSG表現のソリッドモデルを通過する状況を模式的に示す図であり、図34は、図33に示すCSG表現のソリッドモデルのツリー構造の一例を示す図である。先ず、直線がソリッドモデルを通過する範囲を、図34に示すツリー構造の最下層から集合演算記号によって求める。そして、例えば図33に示すように、直線を、Ein、Ain、Bin、Aout、Cin、Bout、Din、Cout、Dout、Eoutの順番でプリミティブA~Eの閉曲面に通過させ、補集合((A∩B)∪(C∩D))∩Eの3つの線分Einin、線分Aoutin、及び線分Coutoutのデクセルを生成する。このようにX軸に平行な直線群、Y軸に平行な直線群、及びZ軸に平行な直線群がソリッドモデルを通過する範囲について、CSG表現のツリー構造の最下層から集合演算記号によって求めることにより、CSGを線分群で近似するデクセルを求めることができる。
 <6.NCデータの生成>
 次に、デクセルを用いたNCデータの生成方法について説明する。NCデータは、形状を加工するための工具の動作を求めるものである。NCデータは、コンピュータで処理する情報であるため、デジタルの情報になっている。形状を加工するためには、形状に接触する工具の位置をNCデータとして与えることになる。換言すれば、NCデータとは、形状に所定距離以下の緻密な点で接触する工具位置を指定するものである。本実施の形態では、NCデータの生成に際し、補デクセルという概念を導入する。これは補集合の概念とほとんど同じである。
 図35は、金型形状の補デクセルの一例を示す図であり、図36は、補集合を説明するための図である。図35に示す例では、金型のコア型形状を近似する補デクセルをX軸に平行な線分群及びZ軸に平行な線分群で示している。デクセルは、CSG表現のソリッドモデルを近似するものであるが、CSGを近似するデクセルに含まれない線分の集合を補デクセルと定義する。すなわち、図36に示すように、補デクセルは、全体集合UをX軸に平行な直線群及びZ軸に平行な直線群(XZデクセル)とし、集合Aを所定形状のXZデクセルとしたときの補集合Aである。
 また、本実施の形態では、補デクセルを構成する線分の端点に逆向き工具の先端を配置してカットすることにより、通常の工具位置の経路を含むNCデータを得る。NCデータは、後述する逆オフセット法を用いて得ることができる。
 図37は、逆向き工具による補デクセル(XZデクセル)のカットを説明するための図である。図37に示すように、補デクセルを構成するZ軸に平行な線分の端点を逆向き工具31でカットする。また、補デクセルの間隔を小さくして0に近づかせることにより、カット位置を緻密にすることができる。
 図38(A)~38(C)は、それぞれボール工具、フラット工具、及びラジアス工具の一例を示す図であり、図38(A’)~(C’)は、それぞれボール工具、フラット工具、及びラジアス工具に対応する逆向き工具の一例を示す図である。図38に示すように、逆向き工具は、通常の工具をZ軸方向に反転したものである。逆向き工具による補デクセルのカットは、後述するように、ボール工具だけではなく、ラジアス工具やフラット工具でも使用することができる。
 [逆オフセット法によるNCデータの作成]
 図39は、形状から逆向きの工具を工具半径分Z方向に移動させた状態を模式的に示す図であり、図40は、形状に逆向き工具の表面を配置させた状態を模式的に示す図である。逆オフセット法は、形状表面上の点に逆向き工具の先端の中心を配置したときに逆向き工具表面が生成する包絡面を想定すると、この包絡面は形状を工具半径分オフセットしたものとみなせるという原理に基づいている。
 図39に示すように、逆向きの工具31全体を工具半径分Z方向に移動して、逆向きの工具31の表面が生成する包絡面は、形状を工具半径分オフセットした逆オフセット法と同じ結果となる。したがって、図40に示すように、逆向き工具31の表面を形状上の点に配置してその包絡面を求め、包絡面上の点を工具32の表面の位置としても、形状に接触する工具32の位置を得ることができる。この原理は、工具32の先端が球面であれば明確であり、Z方向にスケーリングしても成り立つため、工具32の先端が楕円面でも成立する。
 図41は、形状に逆向きフラット工具の中心を配置させた状態を模式的に示す図である。また、図42(A)は、形状に逆向きフラット工具の中心を配置させたときを説明する図であり、図42(B)は、図42(A)示すA-A’断面を示す図である。図41及び図42に示すように、形状と逆向き工具41をXY平面に平行な平面で切断すると、形状断面を2次元的に工具半径分オフセットしたものは包絡面断面と一致する。また、包絡面断面上の点を工具42の中心としたときには、工具42は形状に接する。したがって、工具の先端が平面であっても、逆オフセット法の原理は成立する。
 図43(A)は、ラジアス工具の一例を示す図であり、図43(B)は、ボール工具の一例を示す図である。また、図44は、形状に逆向きボール工具の表面を配置させた状態を模式的に示す図であり、図45は、形状及び包絡面をXY平面に平行な平面で切断させた状態を模式的に示す図である。
 図43(A)及び図43(B)に示すように、ラジアス工具の平坦部分rを取り除くとボール工具になる。ボール工具では、前述したように逆オフセット法の原理が成り立つ。図44に示す形状及び包絡面の断面を取ると、図45に示すように形状断面と包絡面断面を得ることができる。逆向き工具51の先端表面は、形状断面に点で接触していて、工具52の先端表面は包絡面断面に点で接触している。
 包絡面断面をラジアス工具の平坦部分のrだけオフセットし、そのオフセット線上にラジアス工具の中心に置くと、ラジアス工具は形状に接触する。包絡面断面のrのオフセット線は、逆向きラジアス工具の包絡面を平面で切断した線になるため、ラジアス工具でも逆オフセット法の原理が成立する。また、ラジアス工具の側面が楕円面であっても同様に逆オフセット法の原理が成り立つ。
 [補正処理]
 本実施の形態におけるデクセルは、CSG表現のソリッドモデルを近似するものであるため、例えば高精度を必要とする仕上げ加工を行う場合、工具位置を補正する補正処理を行うことが好ましい。
 図46は、工具位置を補正する補正処理を説明するための図である。図46に示すように、工具61の位置の補正の方法は、工具61位置において工具中心から外側に半直線群を発生させ、CSG表現のソリッドモデルの形状62との距離を求める。この方法はレイトレーシングの方法と同様の処理を行うことができる。半直線群の中からソリッドモデルの形状62との交点の距離が最も近いもの(負の場合を含む)を選んで工具61の位置を補正する。この補正の方法は、例えば、倣い加工、等高線加工などで仕上げ加工を行う際の工具の動かし方によって処理が異なる。
 倣い加工は、2次元に投影した線に沿ってZ方向に移動して形状に沿って加工する方法である。等高線加工は、XY平面に平行に工具を動かして形状に沿って加工する方法である。
 図47(A)は、倣い加工の場合における補正処理を説明する図であり、図47(B)は、補正処理部分の拡大図である。図47(A)及び図47(B)に示すように、倣い加工の場合、工具61の中心から延ばした半直線群のうち形状62との距離が最小である半直線の距離をd、工具61の中心軸との角度をθとするとき、工具61の高さをdcosθ下げる。そして、再度、工具61の中心から半直線群を発生させ、最も近い距離を求めて工具61の高さをdcosθ下げ、この処理を半直線群の最小の距離dがゼロになるように繰り返す。これにより、工具をワークにnmレベルで接触させるNCデータを得ることができる。
 図48は、等高線加工の場合における補正処理を説明する図であり、図48(B)は、補正処理部分の拡大図である。図48(A)及び図48(B)に示すように、等高線加工の場合、倣い加工の場合と同様、工具61の中心から延ばした半直線群のうち形状62との距離が最小である半直線を求め、そのベクトルをXY平面に投影した方向に工具61をdsinθ移動させる。そして、再度、工具61の中心から半直線群を発生させ、半直線群のうち形状62との距離が最小である半直線を求め、そのベクトルをXY平面に投影した方向に形状62をdsinθ移動させる処理を半直線群の最小の距離dがゼロになるように繰り返す。これにより、工具をワークにnmレベルで接触させるNCデータを得ることができる。なお、その他の仕上げ加工の方法についても、基本的にレイトレーシングによる補正処理を使うことができる。
 [具体例]
 次に、前述したCSG表現のソリッドモデルを近似したデクセル、CSGを近似するデクセルに含まれない線分群である補デクセル、補デクセルの逆向き工具によるカット、及び、CSG表現のソリッドモデルに基づいて工具位置を補正する補正処理の4つの処理を使って、ボール工具による加工パスの計算例について説明する。
 [鏡面加工の例]
 図49は、鏡面加工を説明するための図であり、図50は、鏡面加工を実施したワークの写真である。図49に示すように、ボール工具71を使用し、X軸方向に26mm、Y軸方向に26mm、Z軸方向に30mmのワーク72において、上面の曲面を倣い加工で鏡面加工を実施した。半径2mmのボール工具71を使用して、X軸方向に平行な0.005mm間隔のNCデータで加工した。
 図51は、補デクセルを示す図であり、図52は、補デクセルの逆向き工具によるカットを模式的に示す図である。先ず、CSG表現のソリッドモデルを近似したデクセルを求め、図51に示すように、その補デクセルを求めた。そして、図52に示すように、半径2mmの逆向きボール工具73で補デクセルをカットすることによってボール工具74の先端位置を求めた。ボール工具74は、ほぼワークに接触しているが、鏡面加工の場合は、測定点の近辺で面粗度が30nm程度でなければならない。そのため、前述した倣い加工における補正処理を使って、補デクセルをカットする位置からCSG表現のソリッドモデルの表面に接触する位置の精度をnmレベルまで上げた。
 [金型キャビティの例]
 図53は、金型キャビティの一例を示す図であり、図54は、図53に示す金型キャビティの溝部やコーナー部をフィレットで保護した例を示す図である。図53に示す金型キャビティにおいて、φ5のボール工具で加工しようとした場合に、細い溝はコーナー部の加工において工具のビビリが発生することでキャビティを傷付けてしまうことがある。そのため、図54に示すように溝部やコーナー部を埋めるフィレットを付けて保護するなどの作業が必要である。この保護処理は、CADを使ってモデリングする作業が発生するため作業効率が悪い。そのため、補デクセルをカットする逆向き工具に、φ5のボール工具よりも大きいφ10のボール工具を使うことにより、溝部やコーナー部を保護する。
 図55は、キャビティの補デクセルの一例を示す図であり、図56は、図55に示す補デクセルを逆向き工具としてφ5のボール工具でカットした状態を模式的に示す図であり、図57は、図55に示す補デクセルを逆向き工具としてφ10のボール工具でカットした状態を模式的に示す図である。
 図56に示すように、補デクセルをφ5の逆向きボール工具81でカットした場合、φ5のボール工具82がキャビティの溝に入り込んでしまう。一方、図57に示すように、φ10の逆向きボール工具83を使うことにより、φ5のボール工具82がキャビティの溝に入り込むのを防ぎ、溝部やコーナー部を保護することができ、図54に示したフィレットで保護したときと同じような効果を得ることができる。
 図58は、補デクセルをφ10の逆向き工具でカットして加工した形状を示す図である。図58に示す金型キャビティの形状は、デクセルの端点をマーチンキューブ法で面を張って表示した。
 1 形状処理部、2 格納部、3 表示処理部、4 データ変換部、11 プリミティブ生成部、12 集合演算処理部、13 作図線生成部、14 デクセル生成部、15 NCデータ生成部、21 CPU、22 GPU、23 ROM、24 RAM、25 操作入力部、26 ストレージ、27 入出力インターフェース、31 逆向き工具、32 工具、41 逆向き工具、42 工具、51 逆向き工具、52 工具、61 工具、62 形状、71 ボール工具、72 ワーク、73 逆向きボール工具、74 ボール工具、81 φ5逆向きボール工具、82 φ5ボール工具、83 φ10逆向きボール工具
 

Claims (13)

  1.  三角形頂点の座標値と、三角形頂点の法線ベクトルと、三角形頂点からなる始点及び終点と始点及び終点の接線ベクトルで構成される曲線素とを含む微分多面体の集合である微分多面体モデルを用い、前記微分多面体の辺を接続して曲面を構成し、前記曲面間を曲面境界線で接続した閉曲面を構成し、前記閉曲面の内部に属する点集合であるプリミティブを生成するプリミティブ生成部と、
     前記プリミティブの集合演算のツリー構造により、ソリッドモデルをCSG表現したCSGデータを格納する格納部と、
     前記CSGデータに基づく集合演算により、前記プリミティブの閉曲面と直線との交点から前記ソリッドモデルと直線との交点を求め、前記ソリッドモデルに含まれる線分群であるデクセルを生成するデクセル生成部と、
     前記デクセルに基づいて工具の位置を与えるNCデータを生成するNCデータ生成部と
     を備える3次元CAD/CAMシステム。
  2.  前記デクセル生成部が、リアルタイムレイトレーシングを用いて、前記ソリッドモデルと直線との交点を求める請求項1記載の3次元CAD/CAMシステム。
  3.  前記NCデータ生成部が、前記デクセルに含まれない線分群である補デクセルを逆向き工具でカットすることにより、前記工具の位置を与えるNCデータを生成する請求項1記載の3次元CAD/CAMシステム。
  4.  前記逆向き工具の外径が、前記工具の外径以上である請求項3記載の3次元CAD/CAMシステム。
  5.  前記NCデータ生成部が、前記CSGデータに基づいて、前記ソリッドモデルと前記工具との最小距離を算出し、当該最小距離に基づいて工具の位置を移動させる処理を、前記最小距離がゼロとなるように繰り返し、前記補デクセルに基づく工具の位置を補正する請求項3記載の3次元CAD/CAMシステム。
  6.  前記NCデータ生成部が、前記工具の中心から外側に半直線群を発生させ、前記プリミティブの閉曲面と半直線との交点から前記ソリッドモデルと半直線との交点を求め、前記ソリッドモデルと前記工具との最小距離を算出する請求項5記載の3次元CAD/CAMシステム。
  7.  前記NCデータ生成部が、リアルタイムレイトレーシングを用いて、前記ソリッドモデルと半直線との交点を求める請求項6記載の3次元CAD/CAMシステム。
  8.  前記プリミティブ生成部が、三角形頂点の座標値と、三角形頂点の法線ベクトルとに基づいて、三角形頂点からなる始点及び終点と始点及び終点の接線ベクトルで構成される曲線素を追加し、前記微分多面体を生成する請求項1記載の3次元CAD/CAMシステム。
  9.  前記プリミティブ生成部が、隣接する第1の微分多面体及び第2の微分多面体で共有する三角形頂点の座標値と三角形頂点の法線ベクトルとを用いて空間測地線を生成し、前記空間測地線を共有して接続関係を構築し、曲面を構成する請求項1記載の3次元CAD/CAMシステム。
  10.  前記プリミティブ生成部が、曲面間で共有する曲線素を用いて前記曲面間の接続関係を構築し、前記曲面間を接続した閉曲面を構築する請求項1記載の3次元CAD/CAMシステム。
  11.  前記始点及び終点の接線ベクトルで構成される曲線素が、下記式(1)に示す3次の多項式曲線で表される請求項1記載の3次元CAD/CAMシステム。
    Figure JPOXMLDOC01-appb-M000001
  12.  三角形頂点の座標値と、三角形頂点の法線ベクトルと、三角形頂点からなる始点及び終点と始点及び終点の接線ベクトルで構成される曲線素とを含む微分多面体の集合である微分多面体モデルを用い、前記微分多面体の辺を接続して曲面を構成し、前記曲面間を曲面境界線で接続した閉曲面を構成し、前記閉曲面の内部に属する点集合であるプリミティブを生成するプリミティブ生成工程と、
     前記プリミティブの集合演算のツリー構造により、ソリッドモデルをCSG表現したCSGデータを格納部に格納する格納工程と、
     前記CSGデータに基づく集合演算により、前記プリミティブの閉曲面と直線との交点から前記ソリッドモデルと直線との交点を求め、前記ソリッドモデルに含まれる線分群であるデクセルを生成するデクセル生成工程と、
     前記デクセルに基づいて工具の位置を与えるNCデータを生成するNCデータ生成工程と
     を有する3次元CAD/CAM方法。
  13.  三角形頂点の座標値と、三角形頂点の法線ベクトルと、三角形頂点からなる始点及び終点と始点及び終点の接線ベクトルで構成される曲線素とを含む微分多面体の集合である微分多面体モデルを用い、前記微分多面体の辺を接続して曲面を構成し、前記曲面間を曲面境界線で接続した閉曲面を構成し、前記閉曲面の内部に属する点集合であるプリミティブを生成するプリミティブ生成工程と、
     前記プリミティブの集合演算のツリー構造により、ソリッドモデルをCSG表現したCSGデータを格納部に格納する格納工程と、
     前記CSGデータに基づく集合演算により、前記プリミティブの閉曲面と直線との交点から前記ソリッドモデルと直線との交点を求め、前記ソリッドモデルに含まれる線分群であるデクセルを生成するデクセル生成工程と、
     前記デクセルに基づいて工具の位置を与えるNCデータを生成するNCデータ生成工程と
     をコンピュータに実行させる3次元CAD/CAMプログラム。
     
PCT/JP2022/022730 2022-06-06 2022-06-06 3次元cad/camシステム WO2023238174A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2022548714A JP7284468B1 (ja) 2022-06-06 2022-06-06 3次元cad/camシステム
PCT/JP2022/022730 WO2023238174A1 (ja) 2022-06-06 2022-06-06 3次元cad/camシステム
JP2023076063A JP2023178948A (ja) 2022-06-06 2023-05-02 3次元cad/camシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/022730 WO2023238174A1 (ja) 2022-06-06 2022-06-06 3次元cad/camシステム

Publications (1)

Publication Number Publication Date
WO2023238174A1 true WO2023238174A1 (ja) 2023-12-14

Family

ID=86538328

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/022730 WO2023238174A1 (ja) 2022-06-06 2022-06-06 3次元cad/camシステム

Country Status (2)

Country Link
JP (2) JP7284468B1 (ja)
WO (1) WO2023238174A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60191305A (ja) * 1984-03-13 1985-09-28 Mitsubishi Electric Corp 数値制御装置
JPH0584638A (ja) * 1991-09-26 1993-04-06 Hitachi Ltd 曲面加工における逆オフセツト操作の並列処理方法
US5710709A (en) * 1993-08-19 1998-01-20 Iowa State University Research Foundation, Inc. NC milling simulation and dimensional verification via dexel representation
JP2000235407A (ja) * 1999-02-15 2000-08-29 Japan Science & Technology Corp 表示方法及び表示プログラムを記録したコンピュータ読み取り可能な記録媒体及び表示装置
JP2016126776A (ja) * 2014-12-31 2016-07-11 ダッソー システムズDassault Systemes 工作物の機械加工のシミュレート
JP2022072158A (ja) * 2020-10-29 2022-05-17 株式会社コアコンセプト・テクノロジー 情報処理方法及び情報処理装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7542036B2 (en) * 2003-02-19 2009-06-02 California Institute Of Technology Level set surface editing operators

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60191305A (ja) * 1984-03-13 1985-09-28 Mitsubishi Electric Corp 数値制御装置
JPH0584638A (ja) * 1991-09-26 1993-04-06 Hitachi Ltd 曲面加工における逆オフセツト操作の並列処理方法
US5710709A (en) * 1993-08-19 1998-01-20 Iowa State University Research Foundation, Inc. NC milling simulation and dimensional verification via dexel representation
JP2000235407A (ja) * 1999-02-15 2000-08-29 Japan Science & Technology Corp 表示方法及び表示プログラムを記録したコンピュータ読み取り可能な記録媒体及び表示装置
JP2016126776A (ja) * 2014-12-31 2016-07-11 ダッソー システムズDassault Systemes 工作物の機械加工のシミュレート
JP2022072158A (ja) * 2020-10-29 2022-05-17 株式会社コアコンセプト・テクノロジー 情報処理方法及び情報処理装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FOLEY, JAMES D. ET AL.: "Computer Graphics: Principles and Practice", 23 March 2014, OHMSHA, JP, ISBN: 4-274-06405-0, article "11.1.3. Plane Expression, 11.2.1. Hermite Curves, 11.3.1. Cubic Hermite Surfaces, 12.1. 3D Representation, 12.2. Normalized Boolean Set Operations, 12.7. CSG, 15.10.3. Calculation of Boolean Set Operations", pages: 471 - 559, 709-711, XP009545935 *

Also Published As

Publication number Publication date
JP7284468B1 (ja) 2023-05-31
JPWO2023238174A1 (ja) 2023-12-14
JP2023178948A (ja) 2023-12-18

Similar Documents

Publication Publication Date Title
JP5361785B2 (ja) 適応的にサンプリングされる距離場を用いて数値制御フライス加工をシミュレートするための方法
US9881388B2 (en) Compression and decompression of a 3D modeled object
JP5361793B2 (ja) サンプル点において掃引容積の距離場を再構成する方法
CA2797162C (en) Creating a surface from a plurality of 3d curves
JP5805322B2 (ja) 物体のモデルを生成しシミュレートするコンピュータープログラム製品及び方法
JP5805328B2 (ja) 工具による工作物の機械加工をシミュレートする方法及びシステム
Michikawa et al. Multiresolution interpolation meshes
EP1645979A1 (en) Method and program for generating volume data from boundary representation data
JP2013507679A (ja) 三次元物体モデルの3dプリントが可能な方法及びシステム
JP2002352273A (ja) 対話式にグラフィクスオブジェクトを編集するシステムおよび方法
JP2002329215A (ja) オブジェクトの適応的サンプル距離フィールドを生成する方法
JP2002324250A (ja) コンピュータ実現ツールを用いてグラフィクスオブジェクトを編集する方法
US6741246B2 (en) Hierarchical control point editing of adaptively sampled distance fields
JP2002334346A (ja) オブジェクトのレンジデータをオブジェクトのモデルに変換する方法
Rossignac et al. Solid modeling
JP2002329218A (ja) コンピュータ実現ツールを用いてグラフィクスオブジェクトのサーフェスを編集する方法
WO2023238174A1 (ja) 3次元cad/camシステム
EP1241622B1 (en) Method for selectively regenerating an adaptively sampled distance field
US6933939B2 (en) Method for correcting an adaptively sampled distance field
WO2023073875A1 (ja) 3次元cadシステム
Patel et al. Automatic CAD model topology generation
JP2022072158A (ja) 情報処理方法及び情報処理装置
Lin et al. A feature-adaptive subdivision method for real-time 3D reconstruction of repeated topology surfaces
JP7338322B2 (ja) 三次元形状データの編集装置、及び三次元形状データの編集プログラム
Adhikary et al. Direct global editing of STL mesh model for product design and rapid prototyping

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2022548714

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22945687

Country of ref document: EP

Kind code of ref document: A1