Devices for editing three-dimensional shape data, computer program products, and recording media

By extracting and reconstructing the object's edge-forming surface using the processor of the editing device, the problem of object edge shape deformation in existing technologies is solved, achieving high-precision edge reproduction.

CN112446957BActive Publication Date: 2025-10-28FUJIFILM BUSINESS INNOVATION CORP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202010141895.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-08-27
Filing Date
2020-03-04
Publication Date
2025-10-28
Estimated Expiration
2040-03-04

AI Technical Summary

Technical Problem

Existing technologies struggle to maintain consistent object edge shapes when converting curved surfaces of objects represented by a combination of 3D elements into polygons, especially when the surfaces of an object are connected by acute angles, causing the edge shapes to easily deform.

Method used

The processor of the editing device extracts the object's edges and represents them as polygons. It then reconstructs the edge-forming surfaces to maintain the original shape of the object's edges, including edge merging, segmentation, and vertex movement, to ensure the reproduction of the edge shape.

Benefits of technology

In the 3D shape represented by polygons, the edge shape of the original object can be reproduced with high accuracy, avoiding the deformation of the edge shape and maintaining the smoothness of the object.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112446957B_ABST
    Figure CN112446957B_ABST
Patent Text Reader

Abstract

The present invention provides a device for editing three-dimensional shape data, a computer program product, and a recording medium. The present invention reproduces the shape of an edge in the three-dimensional shape of an original object. The device (10) for editing three-dimensional shape data determines an edge polygon (4A) corresponding to an edge (8) of the original object (2) from a converted object (2) including polygons obtained by converting the three-dimensional shape of a pre-converted object (2) including voxels (6), and reconstructs the edge polygon (4A) in such a way that the shape of the edge (8) in the original object (2) is reproduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to a device for editing three-dimensional shape data and a recording medium. Background Technology

[0002] Patent Document 1 discloses an analytical model creation method, which uses a computing device to create analytical model data. The method includes: a shape data reading process, which reads shape data of a defined surface shape of an analytical object; a voxel data segmentation process, which segments the shape data read in the shape data reading process into cuboid voxel data; a cut surface definition process, which defines cut surfaces cut by the surface of the shape data for part or all of the voxel data segmented in the voxel data segmentation process; and a fitting node definition process, which defines the intersection of the cut surface of each voxel defined in the cut surface definition process with the edge of the voxel as a fitting node.

[0003] Patent document 2 discloses a voxel segmentation method, which is a method for segmenting a computer-aided design (CAD) assembly model containing multiple parts into voxels. In a way that the error between the original shape volume of each part and the volume of the part after voxel segmentation is fixed in all parts, different voxel dimensions are calculated for each part and each part is segmented into voxels.

[0004] [Existing Technical Documents]

[0005] [Patent Literature]

[0006] Patent Document 1: Japanese Patent Application Publication No. 2000-194881

[0007] Patent Document 2: Japanese Patent Application Publication No. 2002-149718 Summary of the Invention

[0008] [The problem the invention aims to solve]

[0009] In representing the three-dimensional shape of an object, three-dimensional shape data is sometimes used, which is defined by combining three-dimensional elements such as cuboids or cubes.

[0010] When a three-dimensional shape is represented by a combination of three-dimensional elements, the curved parts of an object are also represented by three-dimensional elements. Therefore, it is difficult to make a smooth surface compared to representing the surface of an object containing curved parts by combining polygons that form shapes such as triangles.

[0011] Therefore, sometimes 3D shape data containing 3D features is converted into 3D shape data containing polygons. However, when conventional conversion methods such as the Marching Cubes (MC) method are used for such conversion, the MC method applies polygons to generate continuous planes based on the presence or absence of 3D features. If this pattern remains unchanged, there are cases where curved or concave / convex portions of the object are represented along the shape of the 3D features, resulting in a shape different from the original 3D shape of the object. This situation is particularly noticeable at the edges of objects where the forming surfaces of the object are connected by acute angles.

[0012] The purpose of this invention is to provide a device and a program for editing three-dimensional shape data that can reproduce the shape of the edges of the original object's three-dimensional shape in the converted three-dimensional shape when the three-dimensional shape of an object composed of three-dimensional elements is converted into a three-dimensional shape containing polygons.

[0013] [Technical means to solve the problem]

[0014] The three-dimensional shape data editing apparatus of the first embodiment includes a processor that, for a third three-dimensional shape converted from a second three-dimensional shape representing an object formed by a first three-dimensional shape using a plurality of three-dimensional elements and at least one forming surface using a plurality of planes and curved surfaces, determines an edge forming surface corresponding to the edge of the object extracted from the first three-dimensional shape, and constructs the edge forming surface for the third three-dimensional shape in a manner that reproduces the shape of the edge of the object represented by the first three-dimensional shape.

[0015] The two-dimensional shape data editing apparatus of the second embodiment includes a processor that, for a second three-dimensional shape of an object represented by a first three-dimensional shape composed of at least one forming surface of multiple planes and curved surfaces, using multiple three-dimensional elements, converts the second three-dimensional shape into a third three-dimensional shape represented by the forming surface, extracts the edge of the object from the first three-dimensional shape, determines an edge forming surface corresponding to the extracted edge of the object from the forming surfaces in the converted third three-dimensional shape, and constructs the edge forming surface of the third three-dimensional shape in such a way that the shape of the edge of the object represented by the first three-dimensional shape is reproduced.

[0016] The three-dimensional shape data editing device of the third embodiment is the same as the three-dimensional shape data editing device of the first or second embodiment. The processor extracts the three-dimensional elements that constitute the second three-dimensional shape corresponding to the edge of the object as edge three-dimensional elements, and determines the forming surface in the third three-dimensional shape converted from the extracted edge three-dimensional elements as the edge forming surface.

[0017] The three-dimensional shape data editing device of the fourth embodiment is the same as the three-dimensional shape data editing device of the first or second embodiment, wherein the processor determines the forming surface that constitutes the third three-dimensional shape and exists within a predetermined range from the edge of the object as the edge forming surface.

[0018] The three-dimensional shape data editing device of the fifth embodiment is the same as the three-dimensional shape data editing device of the first or second embodiment. The processor extracts the three-dimensional elements that constitute the second three-dimensional shape corresponding to the edge of the object as edge three-dimensional elements. When the second three-dimensional shape is converted into the third three-dimensional shape, the edge forming surface is formed in such a way as to reproduce the shape of the edge of the object when the forming surface is formed from the extracted edge three-dimensional elements.

[0019] The three-dimensional shape data editing device of the sixth embodiment is a three-dimensional shape data editing device of any one of the first to fifth embodiments. The processor deletes the edge forming surface from the forming surface of the third three-dimensional shape, connects the vertices arranged on the edge of the object with the vertices of the deleted edge forming surface that remain in the third three-dimensional shape after the edge forming surface is deleted, thereby reconstructing the edge forming surface.

[0020] The three-dimensional shape data editing device of the seventh embodiment is a three-dimensional shape data editing device of any one of the first to fifth embodiments, in which the processor reconstructs the edge forming surface by sequentially moving the vertices of the edge forming surface from the vertex located close to the edge of the object to the position on the edge of the object.

[0021] The three-dimensional shape data editing device of the eighth embodiment is the same as the three-dimensional shape data editing device of the seventh embodiment. When there are multiple edges of the objects within a predetermined range that are considered to be close to each other, the processor divides the edge forming surface corresponding to each edge of the object and reconstructs the edge forming surface by sequentially moving each vertex of the divided edge forming surface to a position on the edge of the object, starting from the vertex located close to the edge of the object.

[0022] The three-dimensional shape data editing device of the ninth embodiment is the same as the three-dimensional shape data editing device of the eighth embodiment. When the total value of the vertices on each edge of the object is greater than the total value of the vertices of the edge forming surfaces corresponding to each edge of the object, the processor will segment the edge forming surfaces corresponding to each edge of the object.

[0023] The three-dimensional shape data editing device of the tenth embodiment is a three-dimensional shape data editing device of any of the seventh to ninth embodiments. The processor pre-sets the position of the vertex that is the moving destination of the vertex of the edge forming surface on the edge of the object. For each vertex set on the edge of the object, starting from the vertex of the edge forming surface located close to the vertex, the processor sequentially moves the vertex of the edge forming surface to the position of the vertex set on the edge of the object to reconstruct the edge forming surface.

[0024] The three-dimensional shape data editing device of the eleventh embodiment is a three-dimensional shape data editing device of any of the sixth to tenth embodiments. When there are edge intersections where the edges of the object intersect each other, the processor constructs the edge forming surface by setting the vertices of the reconstructed edge forming surface at the edge intersections.

[0025] The three-dimensional shape data editing apparatus of the twelfth embodiment is the same as the three-dimensional shape data editing apparatus of the eleventh embodiment, in which the processor processes adjacent edges below the predetermined angle as a continuous edge.

[0026] The three-dimensional shape data editing apparatus of the thirteenth embodiment is a three-dimensional shape data editing apparatus of any of the sixth to twelfth embodiments, wherein the processor constructs the edge forming surface in a manner that does not produce abnormal parts of the forming surface in the third three-dimensional shape.

[0027] The recording medium of the fourteenth embodiment records a three-dimensional shape data editing program, which is a program for causing a computer to perform the following processing: for a second three-dimensional shape representing an object composed of a first three-dimensional shape using multiple three-dimensional elements and at least one forming surface composed of multiple planes and curved surfaces, and a third three-dimensional shape converted in a manner represented by the multiple forming surfaces, determining an edge forming surface corresponding to the edge of the object extracted from the first three-dimensional shape, and constructing the edge forming surface for the third three-dimensional shape in a manner that reproduces the shape of the edge of the object represented by the first three-dimensional shape.

[0028] The recording medium of the fifteenth embodiment records a three-dimensional shape data editing program, which is a program for causing a computer to perform the following processing: for a second three-dimensional shape of an object represented by a first three-dimensional shape composed of multiple three-dimensional elements and at least one forming surface composed of multiple planes and curved surfaces, converting the second three-dimensional shape into a third three-dimensional shape represented by the forming surface, extracting the edge of the object from the first three-dimensional shape, determining an edge forming surface corresponding to the extracted edge of the object from the forming surfaces in the converted third three-dimensional shape, and constructing the edge forming surface of the third three-dimensional shape in such a way that the shape of the edge of the object represented by the first three-dimensional shape is reproduced.

[0029] [The effects of the invention]

[0030] According to the first embodiment, the second embodiment, the fourteenth embodiment, and the fifteenth embodiment, the following effect is achieved: when the three-dimensional shape of an object composed of three-dimensional elements has been converted into a three-dimensional shape containing polygons, the shape of the edges in the original three-dimensional shape of the object can be reproduced in the converted three-dimensional shape.

[0031] According to the third embodiment, the following effect is achieved: the edge forming surface can be determined based on the three-dimensional shape data of the object containing three-dimensional elements and the edge of the object.

[0032] According to the fourth embodiment, the following effect is achieved: even in the absence of three-dimensional shape data of an object containing three-dimensional elements, the edge forming surface can be determined based on the three-dimensional shape data of an object containing at least one forming surface of multiple planes and curved surfaces and the edge of the object.

[0033] According to the fifth embodiment, the following effect is achieved: an edge forming surface can be constructed by reproducing the shape of the edge in the original three-dimensional shape of the object based on the three-dimensional shape data of the object containing three-dimensional elements and the edge of the object.

[0034] According to the sixth embodiment, the following effect is achieved: the shape of the edge in the original three-dimensional shape of the object can be reproduced without changing the configuration of the forming surfaces other than the edge forming surface.

[0035] According to the seventh embodiment, the following effect is achieved: new forming surfaces can be added to the three-dimensional shape of the converted object, while the shape of the edges in the original three-dimensional shape of the object can be reproduced.

[0036] According to the eighth embodiment, the following effect is achieved: compared with the case where the same process is performed in advance for the movement of the vertex of the edge forming surface regardless of the proximity of the edge, the shape of the edge in the three-dimensional shape of the original object containing the polygon can be reproduced with high accuracy.

[0037] According to the ninth embodiment, the following effect is achieved: by comparing the total value of the vertices on the edge with the total value of the vertices of the edge-forming surface, it is possible to identify whether there is a possibility that the shape of the edge cannot be sufficiently reproduced by moving only the vertices of the edge-forming surface.

[0038] According to the tenth embodiment, the following effect is achieved: the position of the vertex of the edge forming surface in the three-dimensional shape of the converted object can be set.

[0039] According to the eleventh embodiment, the following effect is achieved: compared with the case where the vertex of the edge forming surface is set outside the edge intersection, the shape of the edge in the original three-dimensional shape of the object can be reproduced with high precision.

[0040] According to the twelfth embodiment, the following effect is achieved: the finely extracted edges can be treated as a continuous single edge.

[0041] According to the thirteenth embodiment, the following effect is achieved: the three-dimensional shape of the converted object can be transformed into a shape that can actually contain polygons. Attached Figure Description

[0042] Figure 1 This is a diagram illustrating an example of the configuration of an editing device.

[0043] Figure 2 This is a diagram representing an example of the three-dimensional shape of an object represented by a polygon.

[0044] Figure 3 This is a diagram showing an example of the three-dimensional shape of an object represented by voxels.

[0045] Figure 4 This is a diagram representing an example of the three-dimensional shape of the original object.

[0046] Figure 5 It is a cross-sectional view showing an example of the cross-section of the original object.

[0047] Figure 6 It is an enlarged view of a cross-section of the original object.

[0048] Figure 7 This is a cross-sectional view of an object before its shape is transformed by using voxels to represent the original object's shape.

[0049] Figure 8This is a cross-sectional view showing an example of a cross-section when the original object coincides with the object before the transformation.

[0050] Figure 9 This is a flowchart illustrating an example of the polygon conversion process.

[0051] Figure 10 This is a diagram showing an example of an edge extracted from the original object when the first reference angle is set to 160 degrees.

[0052] Figure 11 This is a diagram showing an example of an edge extracted from the original object when the first reference angle is set to 120 degrees.

[0053] Figure 12 This is a diagram showing an example of an edge extracted from the original object when the first reference angle is set to 90 degrees.

[0054] Figure 13 This is a diagram representing a merged example of edges.

[0055] Figure 14 This is a diagram representing a merged example where there are bifurcated edges.

[0056] Figure 15 This is a diagram representing an example of an edge voxel.

[0057] Figure 16 This is a diagram representing an example of the edge polygons in the transformed object.

[0058] Figure 17 This is a diagram representing an example of a transformed object.

[0059] Figure 18 This is a diagram representing the state example after removing the edge polygons from the transformed object.

[0060] Figure 19 This is a diagram illustrating an example of reconstructing deleted edge polygons using new polygons.

[0061] Figure 20 This is a diagram illustrating an example of a defined range set around an edge.

[0062] Figure 21 This is a diagram illustrating an example of a defined range set around an edge with a bifurcation point.

[0063] Figure 22 This is a diagram illustrating an example of reconstructing an edge polygon by moving the vertices of the edge polygon.

[0064] Figure 23 This is a diagram representing an example of a transformed object with multiple edges that have been brought close together.

[0065] Figure 24 It is an enlarged image that magnifies multiple images where the edges are close together.

[0066] Figure 25 This is a diagram representing a segmentation example of an edge polygon.

[0067] [Explanation of Symbols]

[0068] 2: Object

[0069] 4: Polygon

[0070] 4A: Edge Polygon

[0071] 6: Voxels

[0072] 6A: Edge Voxel

[0073] 8: Edge

[0074] 8A, 8B, 8C, 8D: Edge Group

[0075] 10: Editing device

[0076] 12: Computer

[0077] 12A: CPU

[0078] 12B: ROM

[0079] 12C: RAM

[0080] 12D: Non-volatile memory

[0081] 14: Operations Department

[0082] 16: Display Section

[0083] 18: Ministry of Communications

[0084] 20: Cylinder

[0085] 22, 22A: Vertex

[0086] 24A, 24B, 24C, 24D: Areas

[0087] 30: Edge Vertex

[0088] 32: Ball

[0089] 34: Plane

[0090] r: radius. Detailed Implementation

[0091] Hereinafter, this embodiment will be described with reference to the accompanying drawings. Furthermore, in all the drawings, the same reference numerals are used for the same constituent elements and the same processing, and repeated descriptions are omitted.

[0092] First, refer to Figure 1 The configuration of the three-dimensional shape data editing device 10 of this embodiment will be described.

[0093] The editing device 10 includes, for example, a computer 12. The computer 12 includes: a central processing unit (CPU) 12A (as an example of a processor), a read-only memory (ROM) 12B, a random access memory (RAM) 12C, a non-volatile memory 12D, and an input / output interface (I / O) 12E. Furthermore, the CPU 12A, ROM 12B, RAM 12C, non-volatile memory 12D, and I / O 12E are connected via a bus 12F. Moreover, the I / O 12E is connected to the operation unit 14, the display unit 16, and the communication unit 18.

[0094] Non-volatile memory 12D is an example of a storage device that retains stored information even if the power supplied to it is interrupted. For example, semiconductor memory can be used, but hard disks can also be used. Non-volatile memory 12D does not necessarily need to be built into computer 12; for example, it can be a removable storage device, such as a memory card, that is installed in or removed from computer 12.

[0095] The operation unit 14 is a functional unit of the editing device 10 that receives instructions from the user, and is composed of input elements such as a mouse, keyboard and touch panel.

[0096] The display unit 16 is a functional unit that displays information processed by the CPU 12A, and may include display devices such as liquid crystal displays and organic light-emitting diode (EL) displays.

[0097] The communication unit 18 is connected to communication lines such as the Internet and Local Area Networks (LANs) and has an interface for data communication with external devices connected to the communication lines.

[0098] Figure 2 This is a diagram illustrating an example of the three-dimensional shape of object 2, represented by three-dimensional shape data. For example... Figure 2 As shown, the editing device 10 uses XYZ coordinates, represented by the X-axis, Y-axis, and Z-axis, to represent the three-dimensional shape of object 2. Hereinafter, the XYZ coordinates will be referred to as the "three-dimensional coordinate space," and the three-dimensional shape of object 2 will be simply referred to as the "shape of object 2."

[0099] As a data format for three-dimensional shape data, for example, sometimes a data format is used to combine polygons 4 to form the surface of object 2. In addition to polygons, a data format can also be used to combine function surfaces such as spline surfaces or Bezier surfaces to form the surface of object 2.

[0100] The term "polygon 4" refers to the individual planes or curved surfaces that form the shape of object 2. The shape of polygon 4 is not limited, but it can be, for example, a triangle or a quadrilateral, and multiple polygons 4 can be combined to form the shape of object 2. That is, the three-dimensional shape data that defines the shape of object 2 using polygons 4 includes information such as the position and orientation of each polygon 4, and its connection to adjacent polygons 4. Hereafter, the three-dimensional shape of object 2 will be simply referred to as "the shape of object 2".

[0101] The three-dimensional shape data defined using polygon 4 only defines the shape of object 2 and does not include information defining the internal structure of object 2. However, in the design of three-dimensional shape data, there are situations where it is desirable to use the editing device 10 to define not only the shape of object 2 but also the internal structure of object 2.

[0102] Therefore, the editing device 10 has the following functions: defining the shape of the object 2 using voxels 6, and editing the three-dimensional shape data defined by voxels 6, thereby defining the internal structure of the object 2. The object 2 containing polygons 4, which will become the source for generating the three-dimensional shape data of the object 2 containing voxels 6, is referred to as the "original object 2".

[0103] A voxel 6 refers to the basic element that constitutes the shape and internal structure of object 2. For example, a cube can be used, but it is not limited to cubes. Other three-dimensional elements such as cuboids, pyramids, spheres, and prisms can also be used. In other words, a voxel 6 is an example of a three-dimensional element.

[0104] The desired shape of object 2 is represented by stacking voxels 6. Furthermore, attributes such as color, intensity, material, and texture can be set for each voxel 6 to represent its properties. The color or material of object 2 is represented by the presence or absence of voxels 6 and their attributes.

[0105] The term "material" includes at least one piece of information, such as information indicating the type of material (resin, metal, rubber, etc.), information indicating the material name (acrylonitrile butadiene styrene, ABS, polylactic acid, PLA, etc.), information indicating the trade name and product number of commercially available materials, information indicating the material name, abbreviation, or number as specified by standards such as the International Organization for Standardization (ISO) and Japanese Industrial Standards (JIS), and information indicating material properties such as thermal conductivity, electrical conductivity, and magnetic properties.

[0106] Moreover, the so-called "texture" refers to the reflectivity, transmittance, gloss, surface properties, etc. of object 2, which are not just physical properties of color or attributes that indicate tactile sensation.

[0107] As described above, the shape of object 2 is represented by a set of voxels 6, specifically, for example, by the element values ​​of the X, Y, and Z coordinates in three-dimensional coordinate space.

[0108] Figure 3 This diagram illustrates an example of the shape of object 2 represented by voxel 6. If (X, Y, Z) are used to represent coordinates in a three-dimensional coordinate space, the presence of voxel 6 in coordinates (X, Y, Z) is, for example, set as "(X, Y, Z) = 1". Conversely, the absence of voxel 6 in coordinates (X, Y, Z) is set as "(X, Y, Z) = 0", thus representing the shape of object 2. In other words, the three-dimensional shape data defining the shape of object 2 using voxel 6 includes feature values ​​at coordinates (X, Y, Z) indicating the presence or absence of voxel 6, and attributes associated with voxel 6.

[0109] Furthermore, the shape of object 2 does not necessarily need to be represented by coordinates (X, Y, Z) in three-dimensional coordinate space. For example, it can also be represented by an index number that is consistent with the coordinates (X, Y, Z). In this case, for example, if the value associated with the index number is "1", it means that voxel 6 exists at the position represented by the index number.

[0110] Furthermore, the three-dimensional coordinate space is not limited to orthogonal coordinates such as X, Y, and Z; polar coordinates using r and θ can also be used. In this case, similar to representing the three-dimensional coordinate space with index numbers 1, 2, 3... in the X, Y, and Z intervals, simply associate the intervals of r and θ with the index numbers, and specify a value of 1 or higher for the position represented by the index number to indicate the presence of voxel 6. Additionally, if values ​​of 1 or higher are associated with voxels 6 of different shapes, then voxels 6 of shapes corresponding to the set values ​​will be placed at specified positions in the three-dimensional coordinate space.

[0111] If the shape of object 2 is constructed using voxels 6 as described above, then by setting attributes for each voxel 6, not only the shape of object 2 can be defined, but also the internal structure of object 2 can be defined.

[0112] However, when using voxels 6 to construct the shape of object 2, compared to using polygons 4, it is easier to create unevenness on the surface of the constructed object 2, making it difficult to make the shape of object 2 closely resemble the original object 2. In particular, the edges 8 of object 2 become various angles, so the difference between the shape of the edges 8 in object 2 containing voxels 6 and the shape of the edges 8 in the original object 2 is significantly more apparent compared to other parts. This point will be explained below.

[0113] Figure 4 This is a diagram showing an example of the shape of the original object 2 containing polygon 4, which is the source of the three-dimensional shape data of the object 2 containing voxel 6.

[0114] Figure 5 This indicates cutting using plane 34. Figure 4 A cross-sectional view of an example of the original object 2 shown. Figure 5 In the diagram, the part represented by the thick line is the edge 8 of the original object 2.

[0115] Figure 6 It is Figure 5 The enlarged view of the cross section of the original object 2 shown, specifically the area represented by region 24A.

[0116] In contrast, Figure 7 It will be constructed using voxels 6. Figure 4 The original shape of object 2 shown in the figure is related to the shape of object 2. Figure 5 Region 24A represents an example of a magnified cross-sectional view showing the same area as the region in question. For example... Figure 7As shown, for example, when a 3D element without curves, such as a cube, is used as voxel 6, attempting to subdivide the size of voxel 6 into smaller sizes can approximate the shape of the edge 8 represented by the curve, but cannot reproduce the shape of the edge 8. Reproducing the shape of the edge 8 means generating 3D shape data that represents the same shape as the edge 8 that is being reproduced. Furthermore, even when a 3D element with curved surfaces, such as a sphere, is used as voxel 6, the curvature of the surface of voxel 6 may not match the curvature of the edge 8 represented by the curve; therefore, while the shape of the edge 8 can be approximated, it cannot be reproduced.

[0117] Furthermore, there are conventional conversion methods such as the MC (Marching Cubes) method, which converts the three-dimensional shape of an object 2 containing voxels 6 into a three-dimensional shape containing polygons 4, but it is not possible to reproduce the edges of the object 2, such as the forming surfaces that form the surface of the object 2, which are connected to each other by acute angles.

[0118] Therefore, as Figure 8 As shown, in the already Figure 7 When the shape of the object 2 containing voxel 6 shown is transformed into a three-dimensional shape containing polygon 4, the shape of the edge 8 of the original object 2 in region 24B differs from the shape of the object 2 containing polygon 4 corresponding to the edge 8. Furthermore, Figure 8 The edge 8 in the middle represents Figure 6 The edge 8 of the original object 2 shown.

[0119] In contrast, for example, if the original three-dimensional shape data of object 2 and the three-dimensional shape data of object 2 containing voxels 6, created based on the original three-dimensional shape data of object 2, are stored together in the non-volatile memory 12D of the editing device 10, then the original three-dimensional shape data of object 2 containing polygons 4 can be used when representing the shape of object 2, and the three-dimensional shape data of object 2 containing voxels 6 can be used when representing the internal structure of object 2, so as to utilize the most suitable three-dimensional shape data according to the purpose.

[0120] However, in this case, both three-dimensional shape data must be stored in the non-volatile memory 12D for the same object 2 first, which increases the amount of data stored compared to storing either three-dimensional shape data in the non-volatile memory 12D first. Moreover, when the shape of object 2 is edited using one three-dimensional shape data by the editing device 10, the shape of object 2 represented by the other three-dimensional shape data must also be edited simultaneously, requiring complex processing.

[0121] Therefore, the following will describe the processing of the editing device 10, which stores only the three-dimensional shape data of the object 2 containing voxels 6 in the non-volatile memory 12D, and even if the three-dimensional shape data containing voxels 6 is converted into three-dimensional shape data defined by polygons 4, the shape of the edge 8 in the original object 2 is reproduced.

[0122] Figure 9 This is a flowchart illustrating an example of the polygon conversion process performed by the CPU 12A of the editing device 10 when converting three-dimensional shape data representing the shape and internal structure of the original object 2, which is constructed using voxels 6, into three-dimensional shape data defined using polygons 4.

[0123] Furthermore, for ease of explanation, the object 2 represented by the three-dimensional shape data of the original object 2, constructed using voxels 6, will be referred to as "object 2 before conversion," and the object 2 constructed using polygons 4, obtained by converting the three-dimensional shape data representing the object 2 before conversion, will be referred to as "object 2 after conversion." Moreover, the three-dimensional shape data of the original object 2 is stored in the RAM 12C of the editing device 10. It is also possible to... Figure 9 At the point in time where step S10 of the polygon conversion process shown has ended, the original three-dimensional shape data of object 2 is deleted from RAM 12C. Alternatively, if the edges 8 are extracted from the original three-dimensional shape data of object 2 beforehand and stored in RAM 12C, then... Figure 9 The polygon conversion process shown does not require the original three-dimensional shape data of object 2, therefore step S10 of polygon conversion process is not required.

[0124] right Figure 9 The polygon conversion process shown is performed using a pre-defined editing program, for example, stored in the ROM 12B of the editing device 10. The CPU 12A of the editing device 10 reads the editing program stored in the ROM 12B and executes the polygon conversion process.

[0125] In step S10, CPU12A extracts the edge 8 from the original object 2. Specifically, CPU12A extracts the edge 8 of the original object 2 by considering the portion of the interior angle of the original object 2 located inside the original object 2 that is below the first reference angle among the angles formed by the adjacent polygons 4 of the original object 2.

[0126] As a first reference angle, an angle in the range of 140 to 160 degrees can be used, but it is not limited to this. The user can also operate the operation unit 14 while confirming the extraction result of the edge 8, and change the first reference angle so that the edge 8 of interest to the user is extracted. Moreover, the CPU 12A can also calculate the angle of the edge 8 in the original object 2 located at the location specified by the user based on the three-dimensional shape data of the original object 2, and set the calculated angle of the edge 8 as the first reference angle. Furthermore, the CPU 12A can also use the three-dimensional shape data of the original object 2 to calculate at least one of the distribution of angles formed by the various polygons 4 constituting the original object 2 and the angle deviation, and set the first reference angle. Specifically, for example, the angle of the part that includes X% (X is a positive real number) of the whole in the direction of increasing angle among the parts where the angle was measured, or the angle where the deviation becomes Z (Z is a real number), can be set as the first reference angle.

[0127] Furthermore, the CPU12A can also set a first reference angle within each range specified by the user in the original object 2, and extract the edge 8 in each range according to the first reference angle set in each range. If the user does not specify a range, the CPU12A can also use an octree to segment the original object 2, and can also divide the distribution of angles formed by each polygon 4 constituting the original object 2 into multiple groups, and set the set of angle parts contained in the segmented group as the segmentation range of the original object 2.

[0128] Figures 10-12 It means from Figure 4 The image shows an example of the extraction result of edge 8 extracted from the original object 2.

[0129] in, Figure 10 This represents an example of edge 8 extracted when the first reference angle is set to 160 degrees. Figure 11 This represents an example of edge 8 extracted when the first reference angle is set to 120 degrees. Furthermore, Figure 12 This represents an example of edge 8 extracted when the first reference angle is set to 90 degrees. As the first reference angle is set smaller, fewer edges 8 are extracted, and only edges 8 with steeper angle changes are extracted.

[0130] However, when the original object 2 has a complex shape such as multiple intersecting edges 8 or the curvature of the edges 8 changing continuously, sometimes the continuous edges 8 are extracted in a fragmented manner.

[0131] Therefore, in step S20, CPU12A merges the edges 8 that were originally inferred to be continuous edges 8 among the edges 8 extracted in step S10.

[0132] Specifically, when the outer angles formed by adjacent edges 8 intersect at a pre-set second reference angle or less, the CPU12A treats the adjacent edges 8 as originally forming a continuous edge 8 and merges them.

[0133] Here, the so-called exterior angle formed by adjacent edges 8 refers to the angle formed outside the original object 2 by the extension line of the adjacent edge 8. Moreover, the so-called second reference angle refers to the reference angle used to determine whether adjacent edges 8 are a continuous edge 8.

[0134] The second reference angle, like the first reference angle, is not limited to a set value. The user can operate the operation unit 14 while checking the merging result of the edges 8, changing the second reference angle so that the edges 8 of interest are merged as expected. Furthermore, similar to the first reference angle, the CPU 12A can also set the exterior angle of adjacent edges 8 specified by the user as the second reference angle. Moreover, the second reference angle can be set using at least one of the distribution of exterior angles formed by each adjacent edge 8 and the deviation of the exterior angles. Furthermore, the CPU 12A can set the second reference angle within each range specified by the user in the original object 2, and merge the edges 8 within each range according to the second reference angle set in each range.

[0135] Figure 13 This diagram illustrates the merging of the extracted edge 8. In Figure 13 In the diagram, edges 8-1, 8-2, 8-3, and 8-4 are extracted by the CPU12A as different edges 8. For ease of explanation, when it is necessary to distinguish between edges 8 in the explanation, such as... Figure 13 As shown, each edge 8 is assigned a secondary reference symbol of "-N (N is a positive integer)".

[0136] The exterior angles α1 formed by edges 8-1 and 8-2, and α2 formed by edges 8-3 and 8-4, are both below the second reference angle, while the exterior angle α3 formed by edges 8-2 and 8-3 is an angle larger than the second reference angle. In this case, edges 8-1 and 8-2 form edge group 8A and are merged as a continuous edge 8, while edges 8-3 and 8-4 form edge group 8B and are merged as a continuous edge 8. Thus, the connection point between the edges 8 is called the intersection point of the edges 8.

[0137] In addition, such as Figure 14As shown, when the resulting outer angle is below the second reference angle and adjacent edges 8 bifurcate, CPU12A can also select either of the bifurcate edges 8 as a continuous edge 8. If... Figure 14 To illustrate with an example, when there are adjacent edges 8-3 and 8-5 in edge 8-2, where the outer angles are both below the second reference angle, CPU12A can also include edge 8-5 in the same edge group 8C as edge 8-2, or include edge 8-3 in the same edge group 8D as edge 8-2.

[0138] As a method for determining which of the bifurcated edges 8 to select as a continuous edge 8, the following methods may be used: selecting the edge 8 whose outer angle is determined to be below the second reference angle; selecting the edge 8 whose length becomes the longest among the bifurcated edges 8; and selecting the edge 8 whose outer angle is the smallest among the bifurcated edges 8.

[0139] In step S30, CPU12A makes the edge 8 merged in step S20 coincide with the object 2 before conversion, and extracts all voxels 6 corresponding to the edge 8 from the voxels 6 constituting the object 2 before conversion.

[0140] The voxel 6 corresponding to edge 8 refers to the voxel 6 representing the edge 8 of the original object 2 in the object 2 before conversion. This includes voxels 6 that are in contact with edge 8 and voxels 6 that pass through the interior of edge 8. "Edge 8 passing through the interior of voxel 6" includes not only the state where edge 8 penetrates the voxel 6, but also the state where the endpoint of edge 8 remains inside the voxel 6. Furthermore, edge 8 may not directly contact or pass through voxel 6. For example, voxels 6 within a predetermined range from voxels 6 that are in contact with or pass through edge 8 can be treated as voxels corresponding to edge 8. Specifically, voxels 6 within a range from voxels 6 that are in contact with or pass through edge 8 to a continuous range of M (M is a natural number) voxels (called the vicinity of M) are considered voxels corresponding to edge 8. The value M can be set by the user.

[0141] The contact and crossing determination between edge 8 and voxel 6 can be performed using known distance measurement methods or cross-determination methods. For example, CPU12A only needs to generate points on edge 8 at intervals less than the distance between the centers of adjacent voxels 6 of the object 2 before conversion (voxel spacing), and determine whether edge 8 is in contact with or crosses voxel 6 based on the positional relationship between the generated points and voxels 6.

[0142] In this case, CPU12A can also assume that the size of voxel 6 is larger than its actual size to determine whether edge 8 contacts or passes through voxel 6. Alternatively, if the distance from the center of voxel 6 to edge 8 is below a predetermined threshold, such as half the voxel spacing, it can also be determined whether edge 8 contacts or passes through voxel 6. Alternatively, the dot product of the vector of edge 8 and the vector of voxel 6 with the same starting point to each vertex can be calculated, and the dot product can be used to determine whether edge 8 contacts or passes through voxel 6 based on whether the signs of the dot products are consistent.

[0143] From now on, among the voxels 6 that constitute the object 2 before the transformation, the voxel 6 corresponding to the edge 8 will be specifically referred to as "edge voxel 6A". Edge voxel 6A is an example of an edge three-dimensional element.

[0144] Figure 15 This is a diagram representing an example of edge voxel 6A. As described above, voxel 6 corresponding to edge 8 is called edge voxel 6A.

[0145] In step S40, CPU12A converts the three-dimensional shape data of object 2 before conversion, which includes voxels 6, into three-dimensional shape data including polygons 4. This conversion is called "polygon conversion," and the object 2 represented by the three-dimensional shape data generated by the conversion is the converted object 2.

[0146] In polygon conversion, a known conversion method, such as the Marching Cubes (MC) method, can be used to generate a continuous plane by applying polygon 4 in a pattern of the presence or absence of voxel 6. When performing polygon conversion, CPU12A generates correspondence information between polygon 4 and voxel 6, which indicates which voxel 6 of the object 2 before conversion the polygon 4 constituting the converted object 2 was converted from.

[0147] In step S50, CPU12A refers to the generated corresponding information to determine the polygon 4 (hereinafter referred to as "edge polygon 4A") that is converted from edge voxel 6A among the polygons 4 constituting the transformed object 2. Edge polygon 4A is an example of an edge forming surface.

[0148] Figure 16 This is a diagram showing an example of the edge polygon 4A in the transformed object 2. (See diagram below.) Figure 16 As shown, edge polygon 4A is determined along edge 8.

[0149] In step S60, CPU12A deletes the edge polygons 4A determined in step S50 from the polygons 4 constituting the transformed object 2 generated in step S40.

[0150] Figure 18 It means from such Figure 17 The diagram shows the state of object 2 after removing edge polygon 4A. Figure 18 Region 24C is equivalent to deleting the part of edge polygon 4A.

[0151] In step S70, CPU12A configures multiple points on edge 8 and configures a new polygon 4 that connects the points configured on edge 8 with the positions of vertices 22 of the edge polygon 4A deleted in step S60, thereby reconstructing the edge polygon 4A of the transformed object 2.

[0152] The vertices of the newly configured polygon A are placed at points on edge 8, and these points on edge 8 are referred to as edge vertices 30. Furthermore, the position of vertex 22 of the deleted edge polygon 4A is represented by the position of the vertex of the adjacent polygon 4 that remains in the transformed object 2 after the deletion of edge polygon 4A and shares vertices with it. Hereafter, the position of vertex 22 of the deleted edge polygon 4A will be referred to as vertex 22 of the deleted edge polygon 4A.

[0153] As an example, the CPU12A sets the spacing of the edge vertices 30 to the voxel spacing, but the spacing of the edge vertices 30 is not limited to this. If you want to reduce the number of polygons 4 that make up the converted object 2, you can simply set the spacing of the edge vertices 30 to be longer than the voxel spacing. If you want to reproduce the shape of the edge 8 with high accuracy, you can simply set the spacing of the edge vertices 30 to be shorter than the voxel spacing.

[0154] The bifurcation point of an edge 8 that branches into multiple edges 8 can be considered the location where the shape of object 2 begins to change to a different shape than before. Therefore, when a bifurcation point of an edge 8 exists, CPU 12A places edge vertex 30 at the bifurcation point of the edge 8. As a result, compared to the case where edge vertex 30 is not placed at the bifurcation point of the edge 8, the shape of the edge 8 in the transformed object 2 is reproduced with high accuracy. Moreover, for the same reason, not limited to the bifurcation point of the edge 8, CPU 12A preferably places edge vertex 30 at the intersection of the edges 8.

[0155] Furthermore, when reproducing the shape of edge 8, if the newly configured polygon 4 intersects, reverses, or repeats, the CPU 12A can temporarily suspend the configuration of the new polygon 4 to adjust the spacing of the edge vertices 30 so that the newly configured polygon 4 does not intersect, reverse, or repeat. Moreover, the CPU 12A can also change the configuration location of the vertices of the newly configured polygon 4 to other edge vertices 30. Furthermore, the CPU 12A can also change the configuration order of the newly configured polygon 4.

[0156] The determination of intersection, reversal, or repetition of polygon 4 can be achieved by using well-known determination methods such as the Bentley-Ottmann method or the Shamos-Hoey method. Before there are no gaps on the surface of the converted object 2, the CPU12A repeatedly configures the polygon 4 forming the edge 8 in a way that does not produce intersection, reversal, or repetition of polygon 4, and reconstructs the edge polygon 4A.

[0157] The intersections, reversals, and repetitions of the newly configured polygon 4, as well as the gaps appearing on the surface of the transformed object 2, are examples of abnormal parts in the transformed object 2. In other words, the CPU 12A constructs the edge polygon 4A in a way that does not produce abnormal parts in the transformed object 2.

[0158] Figure 19 This indicates that the new polygon 4 is reconstructed as shown in Figure 18 The diagram shows an example of the deleted edge polygon 4A. The CPU 12A reconstructs the edge polygon 4A until there are no abnormal parts in the transformed object 2, thereby restoring the shape of the original object 2's edge 8.

[0159] End using the methods described above. Figure 9 The polygon conversion process is shown in the diagram. Furthermore, in this polygon conversion, after the conversion to polygon 4 is performed once, edge polygon 4A is determined. After deleting edge polygon 4A, a new edge polygon 4A is reconstructed. However, the polygon conversion process is not limited to this. Figure 9 In step S40, when converting the three-dimensional shape data of object 2 before conversion, which includes voxel 6, into three-dimensional shape data containing polygon 4, it is determined in advance whether the converted polygon 4 is an edge polygon 4A. In the part that is determined to be an edge polygon 4, no conversion towards polygon 4 is performed. Thus, three-dimensional shape data with edge polygon 4A deleted in advance can be obtained, so there is no need for subsequent processing to delete edge polygon 4A.

[0160] Furthermore, edge polygon 4A, as generated in step S70, can be generated beforehand and then proceeded as follows: Figure 9 The time point when step S40 has ended. Figure 9 The process ends at steps S50, S60, and S70. As described above, there are various variations of this process.

[0161] <Variation Example 1>

[0162] exist Figure 9In the polygon conversion process shown, CPU12A extracts edge voxel 6A in step S30, and determines the edge polygon 4A corresponding to edge voxel 6A from the polygons 4 constituting the converted object 2 based on the correspondence information between polygon 4 and voxel 6.

[0163] However, in order to determine the edge polygon 4A, the 3D shape data of object 2 before conversion may not be necessary.

[0164] For example, the CPU12A can also be used in... Figure 9 In step S50, the polygon 4 of the transformed object 2 that exists from the edge 8 to the specified range is determined as the edge polygon 4A.

[0165] Figure 20 This diagram illustrates an example of a defined range for edge 8. When edge 8 is formed by merging edges 8-1, 8-2, 8-3, and 8-4, the defined range is represented by multiple cylinders 20 with radius r (where r is a real number representing the distance corresponding to the defined range) that take edges 8-1, 8-2, 8-3, and 8-4 as their central axes, and multiple spheres 32 with radius r that take the intersection of edge 8 as their center. That is, for polygon 4 to exist within the defined range means that even a tiny point of polygon 4 is in contact with or intersects the cylinders 20 or spheres 32 that are virtually defined in a way that surrounds edge 8.

[0166] The existence of polygon 4 within the specified range can be determined using known distance measurement methods or cross-determination methods. For example, CPU12A can generate points on edge 8 at intervals less than the shorter of the voxel spacing and the distance corresponding to the specified range, and determine whether polygon 4 of the converted object 2 exists within the specified range based on the positional relationship between the generated points and polygon 4.

[0167] In addition, Figure 20 In the example shown, spheres 32 are set at each intersection of edge 8, but spheres 32 can also be set at the bifurcation points of edge 8 where the outer angle exceeds the second reference angle and is more likely to create a gap between adjacent cylinders 20 compared to other intersection points.

[0168] For example, Figure 21 This is a diagram showing an example of the bifurcation point of edge 8 formed by edges 8-1, 8-2, 8-3, and 8-4. When there exists... Figure 21 When the edge 8 is shown, the defined range is represented by a ball 32 set at the bifurcation point of the edge 8 and a cylinder 20 set in a manner that surrounds the edges 8-1, 8-2, 8-3 and 8-4.

[0169] CPU 12A can set the specified range by referring to, for example, a distance corresponding to the specified range stored in the non-volatile memory 12D beforehand. However, the user can also change the specified range while checking the edge polygon 4A determined by CPU 12A. Moreover, CPU 12A can also set the distance corresponding to the specified range based on at least one of the length of each merged edge 8, the number of merged edges 8, and the distribution and deviation of the exterior angles formed by adjacent edges 8.

[0170] If such a defined range is used, the edge polygon 4A is determined based on the positional relationship between edge 8 and the polygon 4 constituting the transformed object 2. Therefore, in Figure 9 In the polygon conversion process shown, the step S30 of extracting edge voxels 6A from the object 2 before conversion is not required, nor is it necessary to generate correspondence information representing the correspondence between the polygon 4 constituting the converted object 2 and the voxels 6 constituting the object 2 before conversion.

[0171] <Variation Example 2>

[0172] exist Figure 9 In the polygon conversion process shown, CPU12A deletes edge polygon 4A from the converted object 2 in step S60, and configures a new polygon 4 along the edge 8 to replace the deleted edge polygon 4A, thereby reconstructing the edge polygon 4A and reproducing the shape of the edge 8.

[0173] However, the method for reproducing the shape of edge 8 in the transformed object 2 is not limited to this. The following describes a method for reproducing the shape of edge 8 of the original object 2 by reconstructing edge polygon 4A without deleting it from the transformed object 2.

[0174] In this variant example, Figure 9 In the polygon conversion process shown, after CPU12A determines the edge polygon 4A from the converted object 2 in step S50, it skips step S60 and jumps to step S70.

[0175] In step S70, CPU12A moves the vertices 22 of the edge polygon 4A determined in step S50, starting from the vertex 22 closest to the edge 8, sequentially moving them to their positions on the edge 8 in a manner that does not create abnormal parts in the converted object 2. This reconstructs the edge polygon 4A, restoring the shape of the edge 8 in the original object 2.

[0176] For example, if the destination of the vertex 22 of the edge polygon 4A on edge 8 is simply changed to the position on edge 8 that is the shortest distance from the position of vertex 22 of the edge polygon 4A being moved, it is easy to cause intersections, reversals, and repetitions of the edge polygon 4A. Therefore, the CPU 12A adjusts the destination of the vertex 22 of the edge polygon 4A in a way that does not produce abnormal parts in the transformed object 2.

[0177] Furthermore, the CPU12A can pre-define candidate edge vertices 30 on edge 8 as the moving destinations of vertices 22 of edge polygon 4A. Starting from the edge polygon 4A vertices 22 determined in step S50, starting from the edge polygon 4A vertices 22 located closest to edge 8, the CPU12A sequentially moves the vertices 22 of edge polygon 4A to edge vertex 30. Additionally, if multiple vertices among the three vertices constituting edge polygon 4A have already moved to the same edge vertex 30, the edge polygon 4A can be removed as an unwanted edge polygon 4A.

[0178] Figure 22 This diagram illustrates an example of reconstructing edge polygon 4A by moving vertex 22 of edge polygon 4A toward edge vertex 30 set on edge 8. As described, moving vertex 22 of edge polygon 4A toward edge vertex 30 located at the position closest to vertex 22 of edge polygon 4A deforms the shape of the transformed object 2, thereby reproducing the shape of the original object 2's edge 8.

[0179] In addition, when reproducing the shape of edge 8, if the edge polygon 4A crosses, reverses, or repeats due to the movement of the vertices 22 of the edge polygon 4A toward edge 8, the CPU12A may temporarily stop the movement of the vertices 22 of the edge polygon 4A in order to prevent the edge polygon 4A from crossing, reversing, or repeating. This can be achieved by adjusting at least one of the following: the interval or number of edge vertices 30, the movement order of the vertices 22 of the edge polygon 4A, and the edge vertex 30 that becomes the destination of the movement of the vertices 22 of the edge polygon 4A.

[0180] The determination of intersection, reversal, or repetition of edge polygon 4A can be achieved by using known determination methods such as the Bentley-Otman method or the Samos-Hoy method. Before there are no gaps on the surface of the converted object 2, the CPU12A moves the vertices 22 of the edge polygon 4A toward the edge 8 in a way that does not produce intersection, reversal, or repetition of edge polygon 4A.

[0181] Additionally, depending on the shape of the original object 2, sometimes as Figure 23As shown, multiple edges 8 are extracted after they are close together. The term "close together" means that the edges 8 are close to each other, and multiple edges 8 are included in a predetermined range that is considered close if they are contained within this range. Hereinafter, the predetermined range used for determining the closeness of edges 8 will be called the "closeness range".

[0182] If multiple edges 8 are close together, sometimes the same polygon 4 is defined as edge polygon 4A for each edge 8, thus sometimes reducing the number of edge polygons 4A obtained when multiple edges 8 are not close together. Moreover, multiple edges 8 being close together indicates a more complex shape than the shape formed by a single edge 8. Therefore, sometimes even if the vertices 22 of the edge polygon 4A are moved toward the edge 8, the number of vertices 22 of the edge polygon 4A that are moved is insufficient, thereby creating a limitation on the shape of the edge 8 that can be formed, preventing the shape of the edge 8 in the original object 2 from being reproduced.

[0183] In this case, after the CPU12A divides the determined edge polygon 4A to increase the number of edge polygons 4A, it moves the vertex 22 of the edge polygon 4A toward any edge 8 in a way that does not produce abnormal parts in the transformed object 2.

[0184] Regarding the determination of whether to divide the edge polygon 4A, if the total value of the edge vertices 30 of each edge 8 within the same range is greater than the total value of the vertices 22 of the edge polygon 4A within the same range, the CPU12A interprets it as meaning that the shape of the edge 8 in the original object 2 will not be reproduced by moving the vertices 22 of the currently existing edge polygon 4A, and therefore determines that the edge polygon 4A must be divided.

[0185] Alternatively, CPU 12A can compare the total value of edge vertices 30 with the total value of vertices 22 of edge polygon 4A after multiplying at least one of the total value of edge vertices 30 or the total value of vertices 22 of edge polygon 4A by a weighting coefficient. For example, at the location where the shape of edge 8 is to be reproduced with high precision, CPU 12A multiplies the total value of edge vertices 30 by a value greater than "1" as a weighting coefficient. In this case, compared to the case where the weighting coefficient is not multiplied, the probability of determining that edge polygon 4A is best segmented increases, thus reproducing the shape of edge 8 with high precision compared to the case where the weighting coefficient is not multiplied.

[0186] Figure 24 It is Figure 23 A magnified view of the area 24D where the two edges 8 are close together. (See image below.) Figure 24 As shown, edge vertices 30 are set at two edges 8, for example, with voxel spacing, and edge polygons 4A exist around each edge 8.

[0187] When CPU12A determines that edge polygon 4A must be segmented, such as Figure 25 The edge polygon 4A is divided, and new vertices 22A of the edge polygon 4A are generated through the division, except for the vertices 22 of the previously existing edge polygon 4A. By increasing the number of vertices 22 of the edge polygon 4A, the movement of the vertices 22 of the edge polygon 4A is increased, thus enabling the shape of the edge 8 in the original object 2 to be reproduced with high accuracy.

[0188] Furthermore, when CPU12A divides the edge polygons 4A, it may not divide all edge polygons 4A. For example, it may divide them sequentially starting with the edge polygons 4A with the largest areas, and stop dividing the edge polygons 4A when the total value of the vertices 22 of the edge polygons 4A becomes greater than or equal to the total value of the edge vertices 30. Specifically, CPU12A may also stop dividing the edge polygons 4A when the total value of the vertices 22 of the edge polygons 4A becomes greater than or equal to the total value of the edge vertices 30, and the proportion of the edge polygons 4A to be divided within the nearby range has reached a predetermined proportion. The proportion of the edge polygons 4A to be divided can be set by the user or determined based on the ratio of the number of edge polygons 4A to the number of edge vertices 30. Moreover, the denominator of the ratio can be set as the following value: the value obtained by multiplying the weighting coefficient used when comparing the total value of the vertices 22 of the edge polygons 4A to the total value of the edge vertices 30 by the number of edge polygons 4A before division. Moreover, a predetermined proportion corresponding to the number of edges 8 contained within the nearby range can also be used.

[0189] As described, excessive segmentation of edge polygon 4A is suppressed, thereby reducing the time required for reconstruction of edge polygon 4A.

[0190] Editing device 10 in Figure 9 In step S10 of the polygon conversion process shown, edges 8 are extracted from the original object 2. However, it is not necessarily necessary to extract the edges 8 from the original object 2 through the editing device 10; other devices can also handle information related to the edges 8 extracted from the original object 2. Moreover, the editing device 10... Figure 9 In step S40 of the polygon conversion process shown, the three-dimensional shape data of the object 2 before conversion, which contains voxels 6, is converted into three-dimensional shape data containing polygons 4. However, it is not necessary to perform the conversion through the editing device 10. The three-dimensional shape data that has been converted into polygons 4 can also be processed by other devices.

[0191] Even in the absence of three-dimensional shape data defined by voxel 6 representing the object 2 before conversion, the editing device 10 can receive the three-dimensional shape data that has been converted into polygon 4 from an external device and determine the edge polygon 4A using the method shown in <Modified Example 1>, thereby reconstructing the edge polygon 4A such that the shape of the edge 8 in the original object 2 is reproduced.

[0192] The present invention has been described above using embodiments, but the present invention is not limited to the scope described in the embodiments. Various changes or modifications can be made to the embodiments without departing from the spirit of the present invention, and such changes or modifications are also included within the technical scope of the present invention. For example, the order of processing can also be changed without departing from the spirit of the present invention.

[0193] In this implementation, as an example, a form of polygon conversion processing implemented through software has been described, but other methods can also be used. Figure 9 The flowchart shown illustrates a similar process implemented in hardware, such as an Application-Specific Integrated Circuit (ASIC), Field-Programmable Gate Array (FPGA), or Programmable Logic Device (PLD). In this case, a significantly higher processing speed can be achieved compared to implementing polygon conversion processing in software.

[0194] In this way, the CPU12A, which is an example of a general-purpose processor, can be replaced with a dedicated processor that focuses on specific processing, such as an ASIC, FPGA, PLD, graphics processing unit (GPU), and floating point unit (FPU).

[0195] Furthermore, the operation of the processor in the embodiment may not be implemented by a single CPU 12A, but by multiple processors. Moreover, the operation of the processor in the embodiment may also be implemented collaboratively by processors contained in multiple physically separated computers 12.

[0196] In the described embodiment, the form in which the editing program for three-dimensional shape data is installed in ROM12B has been described, but it is not limited thereto. The editing program for three-dimensional shape data can also be provided in the form of a storage medium that can be read by a computer. For example, it can also be provided in the form of an optical disc (Compact Disc, CD-ROM) or a Digital Versatile Disc (DVD-ROM). Furthermore, it can also be provided in the form of a removable semiconductor memory such as a Universal Serial Bus (USB) memory or a memory card.

[0197] Furthermore, the editing device 10 can also obtain the editing program of the three-dimensional shape data of this embodiment from an external device connected to a communication line via the communication unit 18.

Claims

1. A device for editing three-dimensional shape data, comprising a processor, The processor, for an object represented by a first three-dimensional shape formed by at least one of multiple planes and curved surfaces, transforms a second three-dimensional shape, consisting of multiple three-dimensional elements constituting the object, into a third three-dimensional shape such that the object is represented by the multiple forming surfaces. For the third three-dimensional shape, determine the edge forming surface corresponding to the edge of the object extracted from the first three-dimensional shape. The edge-forming surface of the third three-dimensional shape is formed in such a way that the shape of the edge of the object represented by the first three-dimensional shape is reproduced.

2. A device for editing three-dimensional shape data, comprising a processor, The processor, for an object represented by a first three-dimensional shape formed by at least one of multiple planes and curved surfaces, transforms a second three-dimensional shape, consisting of multiple three-dimensional elements constituting the object, into a third three-dimensional shape represented by the forming surfaces. Extract the edges of the object from the first three-dimensional shape. From the forming surfaces in the transformed third three-dimensional shape, determine the edge forming surfaces corresponding to the extracted edges of the object. The edge-forming surface of the third three-dimensional shape is formed in such a way that the shape of the edge of the object represented by the first three-dimensional shape is reproduced.

3. The three-dimensional shape data editing apparatus according to claim 1 or 2, wherein the processor extracts the three-dimensional elements constituting the second three-dimensional shape corresponding to the edges of the object as edge three-dimensional elements. The forming surface in the third three-dimensional shape converted from the extracted edge three-dimensional features is determined as the edge forming surface.

4. The three-dimensional shape data editing apparatus according to claim 1 or 2, wherein the processor determines the forming surface that constitutes the third three-dimensional shape and exists within a predetermined range from the edge of the object as the edge forming surface.

5. The three-dimensional shape data editing apparatus according to claim 1 or 2, wherein the processor extracts the three-dimensional elements constituting the second three-dimensional shape corresponding to the edges of the object as edge three-dimensional elements. When the second three-dimensional shape is transformed into the third three-dimensional shape, the edge forming surface is formed in such a way that the shape of the object's edge is reproduced, provided that the forming surface is formed from the extracted edge three-dimensional elements.

6. The apparatus for editing three-dimensional shape data according to claim 1 or 2, wherein the processor deletes the edge forming surface from the forming surface of the third three-dimensional shape. The edge-forming surfaces are reconstructed by connecting the vertices configured on the edge of the object with the vertices of the deleted edge-forming surfaces that remain in the third three-dimensional shape after the edge-forming surfaces are deleted.

7. The three-dimensional shape data editing apparatus according to claim 1 or 2, wherein the processor reconstructs the edge forming surface by sequentially moving the vertices of the edge forming surface from the vertices located closest to the edge of the object to the positions on the edge of the object.

8. The three-dimensional shape data editing apparatus according to claim 7, wherein when multiple edges of the object exist within a predetermined range considered as adjacent edges, the processor forms surface segments with the edges corresponding to each edge of the object. Starting from the vertex located near the edge of the object, the edge forming surface is reconstructed by sequentially moving each vertex of the segmented edge forming surface to a position on the edge of the object.

9. The three-dimensional shape data editing apparatus according to claim 8, wherein when the total value of the vertices on each edge of the object is greater than the total value of the vertices of the edge-forming surfaces corresponding to each edge of the object, the processor segments the edge-forming surfaces corresponding to each edge of the object.

10. The three-dimensional shape data editing apparatus according to claim 7, wherein the processor pre-sets the position of the vertex of the object as the moving destination of the vertex of the edge forming surface. For each vertex set on the edge of the object, starting from the vertex of the edge forming surface located close to the vertex, the vertices of the edge forming surface are sequentially moved to the positions of the vertices set on the edge of the object to reconstruct the edge forming surface.

11. The three-dimensional shape data editing apparatus according to claim 6, wherein when there are edge intersections where the edges of the object intersect each other, the processor constructs the edge forming surface by setting the vertices of the reconstructed edge forming surface at the edge intersections.

12. The three-dimensional shape data editing apparatus according to claim 11, wherein the processor processes adjacent edges below a predetermined angle as a continuous edge.

13. The three-dimensional shape data editing apparatus according to claim 6, wherein the processor constructs the edge forming surface in such a way that it does not produce abnormal portions of the forming surface in the third three-dimensional shape.

14. A recording medium that records an editing program for three-dimensional shape data, the editing program for causing a computer to perform the following processing: For an object represented by a first three-dimensional shape formed by at least one of multiple planes and curved surfaces, a second three-dimensional shape consisting of multiple three-dimensional elements constituting the object is transformed into a third three-dimensional shape such that the object is represented by the multiple formed surfaces. For the third three-dimensional shape, determine the edge forming surface corresponding to the edge of the object extracted from the first three-dimensional shape. The edge-forming surface of the third three-dimensional shape is formed in such a way that the shape of the edge of the object represented by the first three-dimensional shape is reproduced.

15. A recording medium that records an editing program for three-dimensional shape data, said three-dimensional shape data editing program being used to cause a computer to perform the following processing: For an object represented by a first three-dimensional shape formed by at least one of multiple planes and curved surfaces, a second three-dimensional shape of multiple three-dimensional elements constituting the object is transformed into a third three-dimensional shape represented by the forming surfaces. Extract the edges of the object from the first three-dimensional shape. From the forming surfaces in the transformed third three-dimensional shape, determine the edge forming surfaces corresponding to the extracted edges of the object. The edge-forming surface of the third three-dimensional shape is formed in such a way that the shape of the edge of the object represented by the first three-dimensional shape is reproduced.

16. A computer program product comprising a three-dimensional shape data editing program, the three-dimensional shape data editing program being used to cause a computer to perform the following processing: For an object represented by a first three-dimensional shape formed by at least one of multiple planes and curved surfaces, a second three-dimensional shape consisting of multiple three-dimensional elements constituting the object is transformed into a third three-dimensional shape such that the object is represented by the multiple formed surfaces. For the third three-dimensional shape, determine the edge forming surface corresponding to the edge of the object extracted from the first three-dimensional shape. The edge-forming surface of the third three-dimensional shape is formed in such a way that the shape of the edge of the object represented by the first three-dimensional shape is reproduced.

17. A computer program product comprising a three-dimensional shape data editing program, the three-dimensional shape data editing program being used to cause a computer to perform the following processing: For an object represented by a first three-dimensional shape formed by at least one of multiple planes and curved surfaces, a second three-dimensional shape of multiple three-dimensional elements constituting the object is transformed into a third three-dimensional shape represented by the forming surfaces. Extract the edges of the object from the first three-dimensional shape. From the forming surfaces in the transformed third three-dimensional shape, determine the edge forming surfaces corresponding to the extracted edges of the object. The edge-forming surface of the third three-dimensional shape is formed in such a way that the shape of the edge of the object represented by the first three-dimensional shape is reproduced.

Citation Information

Patent Citations

  • Method and device for preparing analysis model and storage medium storing program for analysis model data preparation or analysis model data

    JP2000194881A

  • Voxel division processing method and recording medium recorded with voxel division processing program

    JP2002149718A

  • Object three-dimensional model restoration method, device, and program

    JP2016071645A

  • Data processing apparatus, three-dimensional object molding system, and non-transitory computer readable medium

    US20180108176A1