This description relates to generation of surface models of physical objects for manufacture.
Some precision manufacturing technologies use mathematical models of complex surfaces to represent manufacturable objects. Such models include Catmull-Clark surfaces and non-uniform rational B-spline (NURBS) surfaces. Such a model takes the form of a polyhedral mesh that is a level of approximation to a continuous representation of a manufacturable object. The model may be refined from a relatively coarse mesh to a finer mesh in a recursive fashion until a level of smoothness has been achieved. Conventional approaches to refining a model of a complex surface include defining refinement rules for the control points of a patch region of a mesh: a vertex, edge points that lie on edges of the mesh connecting control points, and face points that lie in the center of faces of the mesh.
In one general aspect, a method can include receiving, by processing circuitry configured to generate a surface model representing an object for manufacture, spatial mesh data representing a spatial mesh, the spatial mesh including a vertex of the spatial mesh and a plurality of edges, the vertex being an extraordinary control point of the spatial mesh, each of the plurality of edges being disposed between the vertex and a respective, adjacent control point of the spatial mesh, the vertex having a valence number with respect to the plurality of edges. The method can also include generating, by the processing circuitry, eigen polyhedron data representing a plane mesh including an initial vertex in a plane and a plurality of initial edge points in the plane, the plurality of initial edge points being arranged in the plane with respect to the initial vertex based on the valence number. The method can further include generating, by the processing circuitry, scale data representing a scale factor based on the valence, the plane mesh being configured to scale in size with respect to the initial vertex in the plane by the scale factor after a plane mesh refinement operation. The method can also include generating, by the processing circuitry, refinement matrix data representing a refinement matrix based on the eigen polyhedron data, the eigen polyhedron data being eigenvectors of the refinement matrix data, the scale factor being an eigenvalue of the refinement matrix corresponding to at least one of the eigenvectors. The method can also include performing, by the processing circuitry, a spatial mesh refinement operation on the mesh data to produce refined mesh data, the spatial mesh refinement operation being based on the refinement matrix data, the refined mesh data representing a refined mesh and providing a surface model that has continuous tangent planes in the neighborhood of a vertex of the refined spatial mesh.
The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims.
The above-described conventional approaches to refining a model of a complex surface may result in surface models with undesirable features. For example, refinement rules used in refining non-uniform Catmull-Clark and NURBS surfaces may result in surface tangent discontinuities at extraordinary vertices of the mesh (i.e., vertices having a valence number not equal to four, or having less than or greater than four adjacent edge points). Such surface tangent discontinuities introduce artifacts such as cusps into a surface model that distort the object represented by the surface model.
In accordance with the implementations described herein and in contrast to at least some of the conventional approaches to refining a model of a complex surface, improved techniques of refining a model of a complex surface can include deriving a set of refinement rules based on eigen polyhedra in a plane. Such rules reduce the refinement of a mesh in the plane to a scale and translation of the eigen polyhedron. Such refinement rules may then be applied to a non-uniform mesh in three-dimensional space having an extraordinary point in place of conventional refinement rules used in Catmull-Clark surfaces or NURBS surfaces. When these refinement rules are applied to a non-uniform mesh having an extraordinary point, the limiting surface is G1 at the extraordinary point, i.e., the tangent surfaces of the limiting mesh are continuous at the extraordinary point.
The computer 120 is configured to generate a surface model representing an object for manufacture. The computer 120 includes a network interface 122, one or more processing units 124, memory 126, and a display interface 128. The set of processing units 124 and the memory 126 together form control circuitry, which is configured and arranged to perform various methods and functions as described herein.
In some embodiments, one or more of the components of the computer 120 can be, or can include processors (e.g., processing units 124) configured to process instructions stored in the memory 126. Examples of such instructions as depicted in
The spatial mesh data acquisition manager 130 is configured to receive spatial mesh data 132 from any source of such data. In some implementations, the spatial mesh data acquisition manager 130 may be implemented as part of a software package used generally to model surfaces of manufacturable objects, such as a computer-aided design (CAD) program. In some implementations, the spatial mesh data acquisition manager 130 is configured to acquire the spatial mesh data 132 over the network interface 122 from an external application.
The spatial mesh data 132 includes three-dimensional point, edge, and face data that defines a spatial mesh. For the discussion to follow, it is assumed that the spatial mesh data 132 has been refined so that the discussion is focused on the point data. Such point data includes edge point data 133, face point data 134, and vertex data 135. For example, when the refined spatial mesh defined by the spatial mesh data 132 includes an extraordinary control point, then the vertex data 135 represents, as the extraordinary control point, a vertex of the spatial mesh. Moreover, the edge point data 133 represents edge points adjacent to the vertex that lie on edges between adjacent control points of the spatial mesh that are not extraordinary control points. The face point data 134 represents face points adjacent to the vertex that lie on faces defined by the edges on which the edge points lie.
The spatial mesh data 132 also includes valence data 136 representing a valence number of the vertex. In the following discussion and hereinafter, it is assumed that each face of the spatial mesh representing the object has four edges. In this case, the vertex, being an extraordinary point, has a valence number not equal to four (e.g., equal to three, five, six, and so on). In some implementations, each face of a spatial mesh represented by the spatial mesh data 132 has some number other than four edges. In that case, then an extraordinary point would have a valence not equal to that number.
The spatial mesh data 132 further includes knot interval data 137 representing knot intervals between the points of the spatial mesh. A knot interval is equal to the difference between two adjacent knots in a knot sequence of a B-spline surface. Accordingly, a knot interval is distance between points in a mesh.
The knot intervals between the various points of the spatial mesh 200 are denoted in
The spatial mesh 200 may be represented by a (2n+1)×3 spatial mesh matrix Pk=[F0k, . . . , Fn−1k, E0k, . . . , En−1k, Vk]T. Because a refinement operation is linear in the coordinates of the points of the spatial mesh 200, such a refinement operation may be expressed mathematically as a matrix operation as follows:
P
k+1
=M
k
P
k, (1)
where Mk is a (2n+1)×(2n+1) refinement matrix defining a refinement operation for the kth refinement iteration. In some arrangements—and for the purposes of the discussion to follow—the refinement matrix is independent of k and the refinement operation may be written as
P
k+1
=MP
k, (2)
where M is the (2n+1)×(2n+1) stationary refinement matrix, which will herein be referred to as the refinement matrix. Details of conventional refinement matrices are discussed in some detail with respect to
The conventional refinement rules summarized above for the spatial meshes 210 and 220 for Catmull-Clark B-spline surfaces in Eqs. (3)-(5) and for NURBS surfaces in Eqs. (6)-(9) may lead to discontinuities in the tangent at the vertex of each spatial mesh 210 and 220. The discussion that follows is directed to the generation of refinement rules for Catmull-Clark B-spline surfaces and NURBS surfaces having vertices that are extraordinary points. The generation of such refinement rules involves defining eigen polyhedra that have simple refinement behaviors which can be employed in refining the spatial meshes shown in
Returning to
The eigen polyhedron data 142 includes two-dimensional point data that defines an eigen polyhedron, i.e., a plane mesh. The two-dimensional point data includes initial edge point data 143, initial face point data 144, and initial vertex data 145. The initial vertex data 145 represents an initial vertex in a plane that serves as an origin. The initial edge point data 143 represents edge points in the plane adjacent to the vertex. The initial face point data 144 represents face points adjacent to the vertex and the initial edge points. The initial edge point data 143, initial face point data 144, and initial vertex data 145 form new edge points, face points, and vertices upon a refinement operation.
The refinement operation for the plane mesh takes the simple form of a scale and a translation. Accordingly, the eigen polyhedron data 142 also includes scale data 146 representing the scale and translation data 147 representing the translation. Denote the kth iteration of the eigen polyhedron as a (2n+1)×2 matrix {circumflex over (P)}k=[{circumflex over (F)}0k, . . . , {circumflex over (F)}n−1k, Ê0k, . . . , Ên−1k, {circumflex over (V)}k]T, where {circumflex over (F)}ik is a face point in the plane, Êik is an edge point in the plane, and {circumflex over (V)}k is the vertex in the plane, with the subscript i=0, 1, n−1, and {circumflex over (V)}0=(0,0) is taken to be the origin of the plane. The subscripts are modulo n.
The eigen polyhedron {circumflex over (P)}0 is defined with respect to a refinement matrix M as follows:
{circumflex over (P)}
1
=M{circumflex over (P)}
0
=λ{circumflex over (P)}
0
+T
0
I, (10)
{circumflex over (P)}
k=λk{circumflex over (P)}0−{circumflex over (V)}kI (11)
{circumflex over (P)}
k+1
=M{circumflex over (P)}
k=[κ({circumflex over (P)}k−{circumflex over (V)}kI)+{circumflex over (V)}kI]+TkI, (12)
Eq. (10) may be rewritten in the following form:
In this situation, the refinement matrix M is to be determined from the eigen polyhedron {circumflex over (P)}0 and the scale factor λ. This is an inverse eigenvalue problem in which a matrix is to be determined from its eigenvalues and corresponding eigenvectors. In the discussion to follow, a single expression for the initial eigen polyhedron {circumflex over (P)}0, scale factor λ, and translation {circumflex over (V)}1 will be produced for each of the Catmull-Clark B-spline and NURBS surfaces. From this single expression, many refinement matrices may be deduced that have this same eigenvalue and eigenvector. Additional properties of the refinement matrix M thus may be provided to produce new refinement rules in each case. By specifying refinement rules based on nondeforming transformations of the eigen polyhedron, it is expected that the limiting polyhedron to which the refinement rules are applied will have desired smoothness properties in the neighborhood of an extraordinary point.
The eigen polyhedron is defined here explicitly for a Catmull-Clark B-spline surface and a NURBS surface. In one example,
In some implementations, a Catmull-Clark eigen polyhedron based on a Catmull-Clark B-spline surface having an extraordinary point with a valence number equal to n is defined as follows:
In this case, T0=(0,0) and the scale factor is given by
An eigen polyhedron 500 for the NURBS surface is shown in
T
0=⅙(d0−d2,d1−d3). (22)
A more general case in which an eigen polyhedron having both a vertex having a valence number not equal to four and unequal knot intervals is illustrated in
As shown in
Ë
i
0=i(cos θ0,i,sin θ0,i). (28)
Returning to
As stated above, the refinement matrix M is not uniquely determined from the eigen polyhedron data 142. The refinement matrix M satisfies additional properties in order for it to be generated by the refinement matrix manager 150. One possible way to determine M is to note that (1) because the sum of the rows of M equal one, the largest eigenvalue of M is equal to one and (2) the second and third eigenvalues are equal and are both equal to the scale factor (e.g., in Eq. (18)). When the condition (2) is satisfied, then the limit surface is G1 at an extraordinary point.
It is further preferable that the refinement matrix M satisfy Eq. (10), i.e., that the eigen polyhedron is in fact an eigenfunction corresponding to one of the equal eigenvalues. Moreover, if the knot intervals are all equal, the refinement matrix M should reproduce the refinement rules in Eqs. (3)-(5). Also, if the valence number is four, the refinement matrix M should reproduce the refinement rules in Eqs. (6)-(9). A generation of the refinement matrix M from the eigen polyhedron in Eqs. (23)-(28) is detailed in the discussion to follow with respect to
{circumflex over (F)}
i
1=(1−αi,1)(1−αi,2){circumflex over (V)}0+αi,1(1−αi,2)Êi0+(1−αi,1)αi,2Êi+10+αi,1αi,2{circumflex over (F)}i0. (35)
In some implementations, the refinement matrix manager 150 uses a numerical root-finder to generate the values of αi,1 and αi,2 and thus the entries of the refinement matrix M corresponding to a face point refinement rule.
P
i,1=(1−αi−1,1){circumflex over (V)}0+αi−1,1Êi−10, (39)
P
i,2=(1−αi,2){circumflex over (V)}0+αi,2Êi+10, (40)
P
i,3=(1−αi−1,1)Êi0+αi−1,1{circumflex over (F)}i−10, (41)
P
i,4=(1−αi,2)Êi0+αi,2{circumflex over (F)}i0. (42)
The edge point is then generated as follows:
where βi,1 and βi,2 are unknown parameters. In some implementations, the refinement matrix manager 150 uses the same numerical root-finder as that used with respect to the face point generation to determine the parameters βi,1 and βi,2, as Eq. (43) is a pair of bilinear equations having the same form as that in Eq. (35).
Returning to
In some implementations, the generation of the refinement matrix M assumes that extraordinary points of a spatial mesh are separated by at least one face. In some implementations, when extraordinary points of a spatial mesh are in adjacent faces, then the refinement matrix manager 150 is configured to perform an initial refinement operation using any formulation of the refinement rules described above.
The components (e.g., modules, processing units 124) of the computer 120 can be configured to operate based on one or more platforms (e.g., one or more similar or different platforms) that can include one or more types of hardware, software, firmware, operating systems, runtime libraries, and/or so forth. In some implementations, the components of the computer 120 can be configured to operate within a cluster of devices (e.g., a server farm). In such an implementation, the functionality and processing of the components of the computer 120 can be distributed to several devices of the cluster of devices.
The components of the computer 120 can be, or can include, any type of hardware and/or software configured to process attributes. In some implementations, one or more portions of the components shown in the components of the computer 120 in
In some embodiments, one or more of the components of the computer 120 can be, or can include, processors configured to process instructions stored in a memory. For example, a spatial mesh data acquisition manager 130 (and/or a portion thereof), a eigen polyhedron manager 140 (and/or a portion thereof), a refinement matrix manager 150 (and/or a portion thereof), and a refinement operation manager 160 (and/or a portion thereof can be a combination of a processor and a memory configured to execute instructions related to a process to implement one or more functions.
In some implementations, the memory 126 can be any type of memory such as a random-access memory, a disk drive memory, flash memory, and/or so forth. In some implementations, the memory 126 can be implemented as more than one memory component (e.g., more than one RAM component or disk drive memory) associated with the components of the computer 120. In some implementations, the memory 126 can be a database memory. In some implementations, the memory 126 can be, or can include, a non-local memory. For example, the memory 126 can be, or can include, a memory shared by multiple devices (not shown). In some implementations, the memory 126 can be associated with a server device (not shown) within a network and configured to serve the components of the editing computer 120. As illustrated in
In some implementations, the network interface 122 includes, for example, Ethernet adaptors, Token Ring adaptors, and the like, for converting electronic and/or optical signals received from a network to electronic form for use by the editing computer 120. The set of processing units 124 include one or more processing chips and/or assemblies. The memory 126 includes both volatile memory (e.g., RAM) and non-volatile memory, such as one or more ROMs, disk drives, solid state drives, and the like.
At 802, the spatial mesh data acquisition manager 130 receives spatial mesh data 132 representing a spatial mesh. The spatial mesh data 132 includes vertex data 135 representing a vertex of the spatial mesh and a plurality of edges. In some implementations, the spatial mesh data 132 also includes a plurality of faces. The vertex is an extraordinary control point of a surface model of the object. Upon refinement, the spatial mesh data 132 includes edge point data 133 representing a plurality of edge points. Each of the plurality of edge points are disposed on an edge between the vertex and a respective, adjacent control point of the surface model. The spatial mesh data further includes valence data 136 representing a valence number of the vertex with respect to the plurality of edge points.
At 804, the eigen polyhedron manager 140 generates eigen polyhedron data 142 representing a plane mesh. The eigen polyhedron data 142 includes vertex data 145 representing an initial vertex in a plane and edge point data 143 representing a plurality of initial edge points in the plane. The plurality of initial edge points are arranged in the plane with respect to the initial vertex based on the valence number.
At 806, the eigen polyhedron manager 140 generates scale data 146 representing a scale factor based on the valence number. The plane mesh (i.e., the eigen polyhedron) is configured to scale in size with respect to the initial vertex in the plane by the scale factor after a plane mesh refinement operation.
At 808, the refinement matrix manager 150 generates refinement matrix data 152 representing a refinement matrix based on the eigen polyhedron data. The eigen polyhedron data are eigenvectors of the refinement matrix data. The scale factor is an eigenvalue of the refinement matrix corresponding to at least one of the eigenvectors.
At 810, the refinement operation manager 160 performs a spatial mesh refinement operation on the spatial mesh data 132 to produce refined mesh data 162. The spatial mesh refinement operation is based on the refinement matrix data 152. The refined mesh data 162 represents a refined mesh and provides a surface model that has continuous tangent planes in the neighborhood of a vertex of the refined spatial mesh. The refined mesh data 162 provides an accurate surface model of the object for manufacture when the surface model has an extraordinary control point.
A number of embodiments have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the specification.
It will also be understood that when an element is referred to as being on, connected to, electrically connected to, coupled to, or electrically coupled to another element, it may be directly on, connected or coupled to the other element, or one or more intervening elements may be present. In contrast, when an element is referred to as being directly on, directly connected to or directly coupled to another element, there are no intervening elements present. Although the terms directly on, directly connected to, or directly coupled to may not be used throughout the detailed description, elements that are shown as being directly on, directly connected or directly coupled can be referred to as such. The claims of the application may be amended to recite exemplary relationships described in the specification or shown in the figures.
While certain features of the described implementations have been illustrated as described herein, many modifications, substitutions, changes and equivalents will now occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the scope of the implementations. It should be understood that they have been presented by way of example only, not limitation, and various changes in form and details may be made. Any portion of the apparatus and/or methods described herein may be combined in any combination, except mutually exclusive combinations. The implementations described herein can include various combinations and/or sub-combinations of the functions, components and/or features of the different implementations described.
In addition, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. In addition, other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other embodiments are within the scope of the following claims.
This application is a nonprovisional of, and claims priority to, U.S. Provisional Patent Application No. 62/481,817, filed on Apr. 5, 2017, entitled “PHYSICAL OBJECT PRODUCTION USING A REFINED MODEL,” the disclosure of which are incorporated by reference herein in their entireties.
Number | Date | Country | |
---|---|---|---|
62481817 | Apr 2017 | US |