US20150331968A1 - Methods and Systems for Generating and Editing Polygonal Data - Google Patents
Methods and Systems for Generating and Editing Polygonal Data Download PDFInfo
- Publication number
- US20150331968A1 US20150331968A1 US14/726,474 US201514726474A US2015331968A1 US 20150331968 A1 US20150331968 A1 US 20150331968A1 US 201514726474 A US201514726474 A US 201514726474A US 2015331968 A1 US2015331968 A1 US 2015331968A1
- Authority
- US
- United States
- Prior art keywords
- smoothing
- vertices
- polygonal
- conforming
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G06F17/50—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
Abstract
Methods and computer systems for generating and polygonal data are disclosed. The methods and systems receive polygonal data which describe discrete points on an object. The methods and systems algorithmically add vertices and edges prior to algorithmically smoothing and conforming the polygonal data in order to produce desired features, such as fillets, in the smoothed data.
Description
- Ser. No. 13/431,839, filed Mar. 27, 2012, entitled “Methods and Systems for Generating and Editing Poylgonal Data,” which is incorporated herein by reference in their entirety for all purposes.
- 1. Field
- The described technology relates to systems and methods of generating geometric models based on a geometric object and a reference geometry.
- 2. Description of the Related Technology
- Polygonal model data is created with, for example, a 3-D CAD software tool by, for example, a designer. The polygonal model or polygonal mesh includes discrete data points describing one or more surfaces or objects. Polygonal models are convenient for design work at least because they define the surface or object with a degree of detail convenient for the designer to work with. The shape of the surface or object is defined by the data points, and the surface between the data points is perceived, but is not necessarily represented in the data. This allows for the CAD system to function quicker because of a significantly reduced data set representing the surface or object, while providing the designer enough detail to manipulate to achieve a desired design.
- The polygonal data may be edited by a designer according to the designer's purposes. For example, the designer may add features to the object represented by the polygonal data using mesh operations. In addition, to create smooth, natural looking objects, a smoothing algorithm may be used to modify the polygonal data. For example, a Catmull-Clark algorithm or a loop subdivision algorithm may be performed on the polygonal data. The smoothing algorithm modifies the polygonal data by, for example, adding vertices and repositioning existing vertices. Thus, the smoothing algorithm generates a modified object.
- In some applications, the finished polygonal data object may preferably have a portion thereof having geometric parameters specified by an external predetermined reference object. For example, a polygonal data object, which represents a part of a machine, may be generated. The finished machine part may have a surface which is to mate against another surface or part of the machine. Accordingly, in the process of generating the polygonal data object, a reference object having the characteristics of the other surface or part of the machine may be used to generate the surface of the polygonal data object which will mate to the surface of the machine.
- Conventionally, to generate such an object, the Catmull-Clark or loop subdivision algorithm is performed on the polygonal data to generate a smooth machine part. Subsequently, the smooth machine part is manually edited by a designer who moves vertices of the smooth machine part to generate the desired surface which conforms to the other machine surface. Such a manual process is time consuming and error prone.
- Various aspects of certain embodiments of methods and systems for generating smoothed polygonal data having a desired predetermined geometric characteristic are discussed. The methods and systems receive polygonal data which describe discrete points on an object and receive a reference object which describes the desired geometric characteristics of the smoothed polygonal data. The methods and systems smooth the polygonal data and shape the smoothed polygonal data according to the reference object.
-
FIGS. 1A-1H are graphical illustrations of a reference geometry and polygonal data at different points during an embodiment of a method of generating smoothed polygonal data. -
FIGS. 2A-2H are graphical illustrations of a reference geometry and polygonal data at different points during another embodiment of a method of generating smoothed polygonal data. -
FIGS. 3A-3L are graphical illustrations of a reference geometry and polygonal data at different points during yet another embodiment of a method of generating smoothed polygonal data. -
FIGS. 4A-4D are graphical illustrations of a reference geometry and polygonal data at different points during an embodiment of a method of generating smoothed polygonal data. -
FIGS. 5A-5H are graphical illustrations of a reference geometry and polygonal data at different points during another embodiment of a method of generating smoothed polygonal data. -
FIGS. 6A-6H are graphical illustrations of multiple reference geometries and polygonal data at different points during an embodiment of a method of generating smoothed polygonal data. -
FIGS. 7A-7H are graphical illustrations of multiple reference geometries and polygonal data at different points during another embodiment of a method of generating smoothed polygonal data. -
FIGS. 8 and 9 are graphical illustrations of a reference geometry and polygonal data at different points during other embodiments of methods of generating smoothed polygonal data. -
FIGS. 10A-10D are graphical illustrations of polygonal data at different points during an embodiment of a method of generating smoothed polygonal data. -
FIG. 11 is an illustration of a polygonal data object prior to smoothing. -
FIGS. 12A-12D are illustrations of polygonal data at various stages in an embodiment of a method of smoothing. -
FIGS. 13A-13D are illustrations of polygonal data at various stages in another embodiment of a method of smoothing. -
FIGS. 14A-14E are illustrations of polygonal data at various stages in yet another embodiment of a method of smoothing. -
FIGS. 15A-15D are illustrations of polygonal data at various stages in another embodiment of a method of smoothing. -
FIGS. 16A-16E are illustrations of polygonal data at various stages in another embodiment of a method of smoothing. -
FIGS. 13A-13D are illustrations of polygonal data at various stages in another embodiment of a method of smoothing. -
FIGS. 17A-17B are illustrations of polygonal data at various stages in another embodiment of a method of smoothing. - Various aspects and features of methods and systems are described herein with reference to the accompanying drawings, which show certain exemplary embodiments. The described embodiments may be modified in various ways, without departing from the spirit or scope of the present invention or inventions. In addition, the described embodiments have multiple features and aspects, no single one of which is solely responsible for the desirable characteristics of the embodiments. Furthermore, no single feature or aspect is essential to practicing the methods and systems described herein. Furthermore, various features and aspects of the embodiments may be combined in embodiments not specifically described.
- Various inventive aspects of certain embodiments of methods and systems for generating smoothed polygonal data objects having a portion with desired geometric characteristics are discussed. The methods and systems access one or more reference geometries which describe the desired geometric characteristic of the smoothed object and access polygonal data which describe discrete points of a geometric object. The methods and systems use a smoothing algorithm, such as a Catmull-Clark or loop subdivision algorithm to smooth the geometric object and use the reference geometry to cause the smoothed polygonal object to have a portion with the desired geometric characteristics.
- For example, the methods and systems may access electronic data which describes
reference object 1 and polygonal data object 2, such as that represented inFIGS. 1A and 1B . In this example thereference object 1 is a surface model. In some embodiments, the reference object is a polygonal model or another type of model. Based on the accessed data, and according to input from a user, the methods and computer systems generate a smoothedpolygonal object 5, such as that represented inFIGS. 1G and 1H . Among other beneficial aspects, the smoothedpolygonal object 5 has been smoothed according to the smoothing algorithm and represents asurface 6 which has geometric characteristics which are defined by thereference geometry 1. In this example, thesurface 6 conforms to thereference geometry 1. -
FIGS. 1A-1H are graphical illustrations of thereference geometry 1 andpolygonal data polygonal object 5.FIGS. 1A and 1B representreference object 1 and polygonal data object 2 as accessed and prior to smoothing and conforming. - In some embodiments, prior to the smoothing and conforming operation, using the computer system, a user arranges and orients the
polygonal data object 2 and thereference object 1 so as to have a desired spatial relationship. The user also provides an indication to the computer system designating a portion of the polygonal data object 2 as that which is to conform to thereference object 1 during subsequent smoothing and conforming operations. In addition, the user provides an indication as to how the designated portion is to conform to thereference object 1. Various conforming schemes are discussed below. The computer system then records with the data representing thepolygonal data object 2, information indicating the designation. For example, the user may indicate that a surface generated based on thetop surface 7 of polygonal data object 2 is to conform to thereference object 1. In response to the indication, the computer system may record information for, or “mark”, thetop surface 7 which indicates that the surface generated based onsurface 7 is to conform to thereference object 1. Similarly, the user may indicate that vertices based on one or more of thevertices 9 defining thetop surface 7 are to conform to thereference object 1. In response to the indication, the computer system may record information for, or mark, each of thevertices 9 which indicates that each of the vertices generated based on thevertices 9 is to conform to thereference object 1. Accordingly, the information stored for the marked at least one surface and/or marked one or more vertices can be used as a flag or marker to indicate to the smoothing and conforming algorithm that new geometries created during a smoothing operation based on the marked geometries are to be located according to thereference object 1. In some embodiments, the new geometries created by the smoothing operation inherit the markers from the geometries from which they are created. -
FIGS. 1C and 1D showpolygonal object 3 after one iteration of smoothing and conforming. As indicated inFIGS. 1C and 1D , the smoothing and conforming has added vertices and located vertices such thatpolygonal object 3 is smoother and rounder as compared to polygonal data object 2 on which the smoothing and conforming operations were performed. In addition, the smoothing and conforming operations have generated theobject 3 havingvertices 8, which are on thereference geometry 1. - In some embodiments, a position is determined by a smoothing algorithm for each
vertex 8 without regard for thereference geometry 1. Subsequently, eachvertex 8 is projected from the position determined by the smoothing algorithm to thereference geometry 1 according to a projection scheme indicated by the user. In this embodiment, the direction for the projection paths is perpendicular to thetop surface 7, which is adjacent to thereference geometry 1. Accordingly, thevertices 8 are moved from their positions as determined by the smoothing algorithm to thereference geometry 1 along parallel projection paths. In some embodiments, projection paths are determined using other methods, such as those described below. - In some embodiments, prior to performing the smoothing and conforming algorithm, the computer system moves the marked geometries of the
object 2 to thereference geometry 1 along a projection path, for example, such as that described above. In such embodiments, the vertices moved after the smoothing operation are marked new vertices added by the smoothing algorithm. - Other methods of determining projection paths and locations for the moved vertices may be used. For example, using the smoothing and conforming algorithm, the computer system may generate new vertices based on vertices of the polygonal data object 2 which are on the
reference geometry 1 such that locations for the new vertices are on thereference geometry 1, and are calculated using a space confined to thereference geometry 1. In such embodiments a smoothing algorithm does not determine a position for each new vertex which is subsequently modified according to a projection path, but instead, the computer system calculates the position for each new vertex directly from the positions of the previously generated vertices and the space defined by and limited to thereference geometry 1. -
FIGS. 1E and 1F showpolygonal object 4 after a second iteration of smoothing and conforming. As indicated inFIGS. 1E and 1F , the second iteration of smoothing and conforming has added and moved vertices such thatpolygonal object 4 is smoother and rounder as compared topolygonal object 3 on which the smoothing and conforming operations were performed. In addition, the smoothing and conforming operations have generatedvertices 10 of theobject 4 which are on thereference geometry 1. In this embodiment, the projection paths of the movedvertices 10 are parallel to the projection paths of the movedvertices 8 discussed above with reference toFIGS. 1C and 1D . In some embodiments, projection paths of a second iteration of smoothing and conforming may not be parallel to the projection paths of a first iteration of smoothing and conforming. For example, prior to each iteration, the user may provide an indication for the computer system to use another projection path scheme. -
FIGS. 1G and 1H showpolygonal object 5 after a third iteration of smoothing and conforming. InFIGS. 1G and 1H thereference geometry 1 is not shown. As indicated inFIGS. 1G and 1H , the third iteration of smoothing and conforming has added vertices such thatpolygonal object 5 is smoother and rounder as compared topolygonal object 4 on which the smoothing and conforming operations were performed. In addition, the smoothing and conforming operations have generated vertices which conform to thereference geometry 1. In this embodiment, the projection paths of the moved vertices are parallel to the projection paths of the movedvertices FIGS. 1C and 1D andFIGS. 1E and 1F . As indicated inFIGS. 1G and 1H , thepolygonal object 5 is much smoother than the originalpolygonal object 2 and defines asurface 6 which conforms to thereference geometry 1. -
FIGS. 2A-2H are graphical illustrations of thereference geometry 21 andpolygonal data polygonal object 25. In this embodiment, smoothing and conforming operations are performed which are similar to the smoothing and conforming operations discussed above with regard toFIGS. 1A-1H . In this embodiment, the projection paths of new vertices which conform toreference geometry 21 are not parallel to one another. Instead, in this embodiment, the projection paths are perpendicular to thereference geometry 21. -
FIGS. 2A and 2B representreference object 21 and polygonal data object 22 as accessed by the computer system and prior to smoothing and conforming. In some embodiments, prior to the smoothing and conforming operation, using the computer system, a user arranges and orients the polygonal data object 22 and thereference object 21 so as to have a desired spatial relationship. The user also provides an indication to the computer system to mark a portion of the polygonal data object 22 as that which is to conform to thereference object 21 during one or more subsequent smoothing and conforming operations. In addition, the user provides an indication as to how the designated portion is to conform to thereference object 21, such as what projection scheme is to be used. -
FIGS. 2C and 2D showpolygonal object 23 after one iteration of smoothing and conforming. As indicated inFIGS. 2C and 2D , the smoothing and conforming has added vertices and located vertices such thatpolygonal object 23 is smoother and rounder as compared to polygonal data object 22 on which the smoothing and conforming operations were performed. In addition, the smoothing and conforming operations have generated theobject 23 havingvertices 28, which are on thereference geometry 21. - In some embodiments, a position is determined by a smoothing algorithm for each
vertex 28 without regard for thereference geometry 21. Subsequently, eachvertex 28 is projected from the position determined by the smoothing algorithm to thereference geometry 21 according to a projection scheme indicated by the user. In this embodiment, the direction for each of the projection paths is perpendicular to thereference geometry 21. Accordingly, thevertices 28 are moved from their positions determined by the smoothing algorithm to thereference geometry 21 along projection paths which are normal to thereference geometry 21 and intersect the positions determined by the smoothing algorithm and prior to projection. - In some embodiments, prior to performing the smoothing and conforming operation, the computer system moves the marked geometries of the
object 22 to thereference geometry 21 along a projection path, for example, such as that described above. In such embodiments, the vertices moved after the smoothing operation are marked new vertices added by the smoothing algorithm. -
FIGS. 2E and 2F showpolygonal object 24 after a second iteration of smoothing and conforming. As indicated inFIGS. 2E and 2F , the second iteration of smoothing and conforming has added and moved vertices such thatpolygonal object 24 is smoother and rounder as compared topolygonal object 23 on which the smoothing and conforming operations were performed. In addition, the smoothing and conforming operations have generated vertices of theobject 24 which are on thereference geometry 21. In this embodiment, the projection paths of the moved vertices are perpendicular to thereference object 21. In some embodiments, projection paths of a second iteration of smoothing and conforming may not be determined according to the same scheme as the projection paths of a first iteration of smoothing and conforming. For example, prior to each iteration, the user may provide an indication for the computer system to use another projection path scheme. -
FIGS. 2G and 2H showpolygonal object 25 after a third iteration of smoothing and conforming. InFIGS. 2G and 2H thereference geometry 21 is not shown. As indicated inFIGS. 2G and 2H , the third iteration of smoothing and conforming has added vertices such thatpolygonal object 25 is smoother and rounder as compared topolygonal object 24 on which the smoothing and conforming operations were performed. In addition, the smoothing and conforming operations have generated vertices which conform to thereference geometry 21. In this embodiment, the projection paths of the moved vertices are determined according to the same scheme as the projection paths of the moved vertices discussed above with reference toFIGS. 2C and 2D andFIGS. 2E and 2F . As indicated inFIGS. 2G and 2H , thepolygonal object 25 is much smoother than the originalpolygonal object 22 and defines asurface 26 which conforms to thereference geometry 21. -
FIGS. 3A-3L are graphical illustrations of areference geometry 31 andpolygonal data polygonal data 35. In this embodiment, smoothing and conforming operations are performed which are similar to the smoothing and conforming operations discussed above with regard toFIGS. 1A-1H and 2A-2H. In this embodiment, the reference object orgeometry 31 is a curve and the projection paths of new vertices which conform toreference geometry 31 are perpendicular to thereference geometry 31. -
FIGS. 3A , 3B, and 3C representreference object 31 and polygonal data object 32 as accessed by the computer system and prior to smoothing and conforming. In some embodiments, prior to the smoothing and conforming operation, using the computer system, a user arranges and orients the polygonal data object 32 and thereference object 31 so as to have a desired spatial relationship. The user also provides an indication to the computer system to mark a portion of the polygonal data object 32 as that which is to conform to thereference object 31 during subsequent smoothing and conforming operations. In addition, the user provides an indication as to how the designated portion is to conform to thereference object 31, such as what projection scheme is to be used. -
FIGS. 3D , 3E, and 3F showpolygonal object 33 after one iteration of smoothing and conforming. As shown, the smoothing and conforming has added vertices and located vertices such thatpolygonal object 33 is smoother and rounder as compared to polygonal data object 32 on which the smoothing and conforming operations were performed. In addition, the smoothing and conforming operations have generated theobject 33 having vertices, which are on thereference geometry 31. - In some embodiments, a position is determined by a smoothing algorithm for each vertex without regard for the
reference geometry 31. Subsequently, each marked vertex is projected from the position determined by the smoothing algorithm to thereference geometry 31 according to a projection scheme indicated by the user. In this embodiment, the direction for each of the projection paths is perpendicular to thereference geometry curve 31. Accordingly, thevertices 38 are moved from their positions determined by the smoothing algorithm to thereference geometry 31 along projection paths which are normal to thereference geometry 31 and intersect the positions determined by the smoothing algorithm and prior to projection. -
FIGS. 3G , 3H, and 3I showpolygonal object 34 after a second iteration of smoothing and conforming. As shown, the second iteration of smoothing and conforming has added and moved vertices such thatpolygonal object 34 is smoother and rounder as compared topolygonal object 33 on which the smoothing and conforming operations were performed. In addition, the smoothing and conforming operations have generated vertices of theobject 34 which are on thereference geometry curve 31. In this embodiment, the projection paths of the moved vertices are perpendicular to thereference object 31. -
FIGS. 3J , 3K, and 3L showpolygonal object 35 after a third iteration of smoothing and conforming. As shown, the third iteration of smoothing and conforming has added vertices such thatpolygonal object 35 is smoother and rounder as compared topolygonal object 34 on which the smoothing and conforming operations were performed. In addition, the smoothing and conforming operations have generated vertices which conform to thereference geometry 31. In this embodiment, the projection paths of the moved vertices are determined according to the same scheme as the projection paths of the moved vertices discussed above with reference toFIGS. 3D , 3E, and 3F andFIGS. 3G , 3G, and 3I. As shown, thepolygonal object 35 is much smoother than the originalpolygonal object 32 and defines acurve 36 which conforms to thereference geometry curve 31. -
FIGS. 4A-4D are graphical illustrations of areference geometry 41 andpolygonal data geometry 41 is a curve and the projection paths of new vertices which conform toreference geometry 41 are perpendicular to thereference geometry 41. -
FIG. 4A representsreference object 41 and polygonal data object 42 as accessed by the computer system and prior to smoothing and conforming. In some embodiments, prior to the smoothing and conforming operation, using the computer system, a user arranges and orients the polygonal data object 42 and thereference object 41 so as to have a desired spatial relationship. The user also provides an indication to the computer system to mark a portion of the polygonal data object 42 as that which is to conform to thereference object 41 during subsequent smoothing and conforming operations. In this embodiment,vertices 48 are marked. In addition, the user provides an indication as to how the designated portion is to conform to thereference object 41, such as what projection scheme is to be used. -
FIG. 4B showspolygonal object 42 prior to a smoothing operation. In response to an indication from the user, the computer system moves thevertices 48 to conform to thereference object 41 according to a projection path. As shown, each of thevertices 48 has been moved so as to be on thereference object 41. The point on the reference object for each of thevertices 48 corresponds to the point as determined by the computer system according to the projection path scheme selected or input by the user. In this embodiment, each of thevertices 48 is moved to a nearest point on thereference object 41. - Other projection path schemes may be used. For example, in some embodiments, the user indicates a location of a central point and the data describing one or more vertices includes the location of the central point. Projection paths for the vertices having the central point are determined to be along a line from the central point through the position of the vertex prior to being moved. In some embodiments, one or more marked vertices have projection path schemes which are different from a projection path scheme of one or more other vertices.
- In some embodiments, a position is determined by a smoothing algorithm for each vertex without regard for the
reference geometry 41. Subsequently, each marked vertex is projected from the position determined by the smoothing algorithm to thereference geometry 41 according to the projection scheme indicated by the user. In this embodiment, the direction for each of the projection paths is toward the nearest point on thereference geometry 41. -
FIG. 4C showspolygonal object 43 after a first iteration of smoothing and conforming. As shown, the first iteration of smoothing and conforming has added and moved vertices such thatpolygonal object 43 is smoother and rounder as compared topolygonal object 42 on which the smoothing and conforming operations were performed. In addition, the smoothing and conforming operations have generated vertices of theobject 43 which are on thereference geometry curve 41. In this embodiment, the projection paths of the marked vertices are along a line from the point determined for each vertex by the smoothing operation toward a nearest point on thereference geometry 41. -
FIG. 4D showspolygonal object 44 after a second iteration of smoothing and conforming. As shown, the second iteration of smoothing and conforming has added vertices such thatpolygonal object 44 is smoother and rounder as compared topolygonal object 43 on which the smoothing and conforming operations were performed. In addition, the smoothing and conforming operations have generated vertices which conform to thereference geometry 41. In this embodiment, the projection paths of the moved vertices are determined according to the same scheme as the projection paths of the moved vertices discussed above with reference toFIGS. 4B and 4C . As shown, thepolygonal object 44 is much smoother than the originalpolygonal object 42 and defines acurve 46 which conforms to thereference geometry curve 41. -
FIGS. 5A-5H are graphical illustrations of areference geometry 51,polygonal data projection geometry 57 at different points during an embodiment of a method of generating smoothedpolygonal data 55. In this embodiment, smoothing and conforming operations are performed which are similar to the smoothing and conforming operations discussed above. In this embodiment, the reference object orgeometry 51 is a plane, and the projection paths of new vertices which conform toreference geometry 51 are determined with theprojection geometry 57. In this embodiment, the projection path for each vertex is along a path including a point on theprojection geometry 57 nearest the point for the vertex determined by the smoothing algorithm, and the point determined by the smoothing algorithm. In this embodiment theprojection geometry 57 is a plane. In some embodiments the projection geometry is curved, is spherical, or is another shape. In some embodiments,multiple projection geometries 57 may be used. For example, the user may cause the computer system to add a first projection geometry and may provide an indication to the computer system to determine projection paths for a selected subset of thevertices 58 based on the first projection geometry. Similarly, the user may cause the computer system to add a second projection geometry and may provide an indication to the computer system to determine projection paths for a selected subset of thevertices 58 based on the second projection geometry. -
FIGS. 5A and 5B representreference object 51,projection geometry 57, and polygonal data object 52 as accessed by the computer system and prior to smoothing and conforming. In some embodiments, prior to the smoothing and conforming operation, using the computer system, a user arranges and orients the polygonal data object 52,projection geometry 57, and thereference object 51 so as to have a desired spatial relationship. The user also provides an indication to the computer system to mark a portion of the polygonal data object 52 as that which is to conform to thereference object 51 during subsequent smoothing and conforming operations. In this embodiment,vertices 58 are marked. In addition, the user provides an indication as to how the designated portion is to conform to thereference object 51, such as what projection scheme is to be used and what projection geometries are to be used. -
FIGS. 5C and 5D showpolygonal object 53 after one iteration of smoothing and conforming. As shown, the smoothing and conforming has added vertices and located vertices such thatpolygonal object 53 is smoother and rounder as compared to polygonal data object 52 on which the smoothing and conforming operations were performed. In addition, the smoothing and conforming operations have generated theobject 53 having vertices, which are on thereference geometry 51. - In some embodiments, a position is determined by a smoothing algorithm for each vertex without regard for the
reference geometry 51. Subsequently, each marked vertex is projected from the position determined by the smoothing algorithm to thereference geometry 51 according to theprojection geometry 57. In this embodiment, the direction for each of the projection paths is from a point on the projection geometry nearest each vertex to the pre-moved location of the vertex. Accordingly, thevertices 58 are moved from their positions determined by the smoothing algorithm to thereference geometry 51 along projection paths which are normal to theprojection geometry 57 and intersect the positions determined by the smoothing algorithm and prior to projection. -
FIGS. 5E and 5F showpolygonal object 54 after a second iteration of smoothing and conforming. As shown, the second iteration of smoothing and conforming has added and moved vertices such thatpolygonal object 54 is smoother and rounder as compared topolygonal object 53 on which the smoothing and conforming operations were performed. In addition, the smoothing and conforming operations have generated vertices of theobject 54 which are on thereference geometry 51. In this embodiment, the projection paths of the moved vertices are perpendicular to theprojection geometry 57. -
FIGS. 5G and 5H showpolygonal object 55 after a third iteration of smoothing and conforming. As shown, the third iteration of smoothing and conforming has added vertices such thatpolygonal object 55 is smoother and rounder as compared topolygonal object 54 on which the smoothing and conforming operations were performed. In addition, the smoothing and conforming operations have generated vertices which conform to thereference geometry 51. In this embodiment, the projection paths of the moved vertices are determined according to the same scheme as the projection paths of the moved vertices discussed above with reference toFIGS. 5C and 5D andFIGS. 5E and 5F . As shown, thepolygonal object 55 is much smoother than the originalpolygonal object 52 and defines twosurfaces 56 which conform to thereference geometry 51. -
FIGS. 6A-6H are graphical illustrations ofmultiple reference geometries 61, andpolygonal data polygonal data 65. In this embodiment, smoothing and conforming operations are performed which are similar to the smoothing and conforming operations discussed above. In this embodiment, the reference objects orgeometries 61 include a plane and a concave surface. The projection paths of new vertices which conform to referencegeometries 61 may be determined with one or more projection geometries (not shown) or another method. -
FIGS. 6A and 6B represent reference objects 61 and polygonal data object 62 as accessed by the computer system and prior to smoothing and conforming. In some embodiments, prior to the smoothing and conforming operation, using the computer system, a user arranges and orients the polygonal data object 62 and the reference objects 61 so as to have a desired spatial relationship. The user also provides an indication to the computer system to mark a portion of the polygonal data object 62 as that which is to conform to the reference objects 61 during subsequent smoothing and conforming operations. In addition, the user provides an indication as to how the designated portion is to conform to thereference object 61, such as what projection scheme is to be used. In some embodiments, the marking operation includes the user providing an indication to the computer system regarding which reference object 61 each marked geometry of the polygonal data object 62 is to conform to. In this embodiment,vertices Vertices 67 are marked as being assigned to conform to theplane reference object 61.Vertices 68 are marked as being assigned to conform to the concavesurface reference object 61.Vertices 69 are marked as being assigned to conform to both theplane reference object 61 and to the concavesurface reference object 61. -
FIGS. 6C and 6D showpolygonal object 63 after one iteration of smoothing and conforming. As shown, the smoothing and conforming has added vertices and located vertices such thatpolygonal object 63 is smoother and rounder as compared to polygonal data object 62 on which the smoothing and conforming operations were performed. In addition, the smoothing and conforming operations have generated theobject 63 having vertices, which are on thereference geometries 61 according to the assignments discussed above. - In some embodiments, a position is determined by a smoothing algorithm for each vertex without regard for the
reference geometry 61. Subsequently, each marked vertex is projected from the position determined by the smoothing algorithm to thereference geometry 61, according to, for example, a method described above. Other methods may be used. -
FIGS. 6E and 6F showpolygonal object 64 after a second iteration of smoothing and conforming. As shown, the second iteration of smoothing and conforming has added and moved vertices such thatpolygonal object 64 is smoother and rounder as compared topolygonal object 63 on which the smoothing and conforming operations were performed. In addition, the smoothing and conforming operations have generated vertices of theobject 64 which are on thereference geometries 61. -
FIGS. 6G and 6H showpolygonal object 65 after a third iteration of smoothing and conforming. As shown, the third iteration of smoothing and conforming has added vertices such thatpolygonal object 65 is smoother and rounder as compared topolygonal object 64 on which the smoothing and conforming operations were performed. In addition, the smoothing and conforming operations have generated vertices which conform to thereference geometries 61. As shown, thepolygonal object 65 is much smoother than the originalpolygonal object 62 and defines twosurfaces 66 which conform to thereference geometries 61. -
FIGS. 7A-7H are graphical illustrations ofmultiple reference geometries 71, andpolygonal data polygonal data 75. In this embodiment, smoothing and conforming operations are performed which are similar to the smoothing and conforming operations discussed above. In this embodiment, the reference objects orgeometries 71 include three planes. The projection paths of new vertices which conform to referencegeometries 71 may be determined with one or more projection geometries (not shown) or another method. -
FIGS. 7A and 7B represent reference objects 71 and polygonal data object 72 as accessed by the computer system and prior to smoothing and conforming. In some embodiments, prior to the smoothing and conforming operation, using the computer system, a user arranges and orients the polygonal data object 72 and the reference objects 71 so as to have a desired spatial relationship. The user also provides an indication to the computer system to mark a portion of the polygonal data object 72 as that which is to conform to the reference objects 71 during subsequent smoothing and conforming operations. In addition, the user provides an indication as to how the designated portion is to conform to thereference object 71, such as what projection scheme is to be used. In some embodiments, the marking operation includes the user providing an indication to the computer system regarding which reference object 71 each marked geometry of the polygonal data object 72 is to conform to. In this embodiment,vertices Vertices 70 are marked as being assigned to conform to thereference object 71 on the right of polygonal data object 72.Vertices 77 are marked as being assigned to conform to thereference object 71 on the left of polygonal data object 72.Vertices 78 are marked as being assigned to conform to thereference object 71 on the left of polygonal data object 72 and to thereference object 71 above polygonal data object 72.Vertices 79 are marked as being assigned to conform to thereference object 71 on the right of polygonal data object 72 and to thereference object 71 above polygonal data object 72. -
FIGS. 7C and 7D showpolygonal object 73 after one iteration of smoothing and conforming. As shown, the smoothing and conforming has added vertices and located vertices such thatpolygonal object 73 is smoother and rounder as compared to polygonal data object 72 on which the smoothing and conforming operations were performed. In addition, the smoothing and conforming operations have generated theobject 73 having vertices, which are on thereference geometries 71 according to the assignments discussed above. - In some embodiments, a position is determined by a smoothing algorithm for each vertex without regard for the
reference geometry 71. Subsequently, each marked vertex is projected from the position determined by the smoothing algorithm to thereference geometry 71, according to, for example, a method described above. Other methods may be used. -
FIGS. 7E and 7F showpolygonal object 74 after a second iteration of smoothing and conforming. As shown, the second iteration of smoothing and conforming has added and moved vertices such thatpolygonal object 74 is smoother and rounder as compared topolygonal object 73 on which the smoothing and conforming operations were performed. In addition, the smoothing and conforming operations have generated vertices of theobject 74 which are on thereference geometries 71. -
FIGS. 7G and 7H showpolygonal object 75 after a third iteration of smoothing and conforming. As shown, the third iteration of smoothing and conforming has added vertices such thatpolygonal object 75 is smoother and rounder as compared topolygonal object 74 on which the smoothing and conforming operations were performed. In addition, the smoothing and conforming operations have generated vertices which conform to thereference geometries 71. As shown, thepolygonal object 75 is much smoother than the originalpolygonal object 72 and defines threesurfaces 76 which conform to thereference geometries 71. -
FIG. 8 shows graphical illustrations of areference geometry 81, andpolygonal data polygonal data 85. In this embodiment, smoothing and conforming operations are performed which are similar to the smoothing and conforming operations discussed above. In this embodiment, thereference geometry 81 is a surface model of a human head and the polygonal data undergoing smoothing and conforming operations represents a stylized horn. As shown, after the polygonal data has undergone the smoothing and conforming operations, it has a surface 86 which conforms to the surface model of the human head. -
FIG. 9 is graphical illustrations of areference geometry 81, andpolygonal data polygonal data 95. In this embodiment, smoothing and conforming operations are performed which are similar to the smoothing and conforming operations discussed above. In this embodiment, thereference geometry 91 is a polygonal model of a human head and the polygonal data undergoing smoothing and conforming operations represents a stylized horn. As shown, after the polygonal data has undergone the smoothing and conforming operations, it has asurface 96 which conforms to the polygonal model of the human head. -
FIGS. 10A-10D are graphical illustrations ofpolygonal data polygonal data 105. In this embodiment, smoothing and conforming operations are performed which are similar to the smoothing and conforming operations discussed above. As shown, a result of the smoothing and conforming operations is that thepolygonal data 105 has afillet 100. In some embodiments, the reference objects or geometries are automatically generated. -
FIG. 10A shows polygonal data object 102 as accessed by the computer system and prior to smoothing and conforming. Prior to the smoothing and conforming operations, a user provides one or more indications that a fillet is to be generated atedge 107. In some embodiments, one or more indications may be provided that a fillet is to be generated along each of multiple edges or along each of all of the edges ofpolygonal data 102.FIG. 10B shows polygonal data object 103, which is automatically generated in response to the indication from the user. - As shown in
FIG. 10B ,additional vertices 108 andadditional edges 109 are added to thepolygonal data object 102. In this embodiment, theadditional edges 109 are adjacent to thefilleting edge 107, are parallel to thefilleting edge 107, and are set back a distance from the filletingedge 107. In some embodiments, the distance is determined based on an input from the user, and in some embodiments a default distance is automatically provided by the computer system. For example, the distance may be determined by the computer system based on the size of adjacent faces or other nearby geometries. In some embodiments, a ratio, such as ½, ⅓, or ¼ of the average length of edges near the filletingedge 107 may be used. In some embodiments, theadditional edges 109 are not adjacent to thefilleting edge 107. For example, one or more vertices or edges of polygonal data object 103 may be between theadditional edge 109 and the filletingedge 107. In some embodiments theadditional edge 109 is not parallel to the filleting edge. For example, the distance of one or more of theadditional vertices 108 from the filletingedge 107 may be different from the distance of others of theadditional vertices 108 from the filletingedge 107. The various distances may be determined based on an input from the user, or may be automatically generated by the computer system. For example,additional vertices 108 of a singleadditional edge 109 may be placed on edges of thepolygonal data 102 which are of different lengths, where the distances of suchadditional vertices 108 from the filletingedge 107 are proportional to the different lengths. The computer system may use other methods of determining positions for theadditional vertices 108 which are based on geometric aspects of thepolygonal data 102. - Once the
additional vertices 108 andedges 109 are added, surfaces to be constrained are determined, either in response to one or more specific indications from the user or automatically. For example, all surfaces except those between theadditional edges 109 and the filletingedge 107 may be constrained. Such constraining causes each constrained surface, during subsequent smoothing and conforming operations, to conform to itself, as a reference object. Accordingly, a method such as those described above may be used, where the portion of the polygonal data object which is to conform to a reference object is the constrained surface and the reference object is also the constrained surface. In the embodiment shown inFIG. 10B ,surfaces 106 are constrained and surfaces 101 are not constrained. - Prior to constraining, the addition of
additional vertices 108 andedges 109 cause additional surfaces to be generated. The additional surfaces are between theadditional edges 109 and the filletingedge 107, and, as discussed above, may be used to determine which surfaces to constrain. In some embodiments, instead of adding one or more of the additional vertices and edges, the computer system selects one or more vertices and/or edges which are already part of the polygonal data accessed by the system. The selected one or more vertices and/or edges may then be used by the system as if they wereadditional vertices 108 oradditional edges 109. -
FIG. 10C shows polygonal data object 104 after performing smoothing and conforming operations on polygonal data object 103. As a result ofsurfaces 106 being constrained, surfaces 106 in polygonal data object 104 are largely or entirely unchanged fromsurfaces 106 in polygonal data object 103. Theunconstrained surfaces 101 which share filletingedge 107, however, are affected by the smoothing and conforming operations such that afillet 100 is generated in polygonal data object 104. -
FIG. 10D shows polygonal data object 105 after performing smoothing and conforming operations on polygonal data object 104. As a result ofsurfaces 106 being constrained, surfaces 106 in polygonal data object 105 are largely or entirely unchanged fromsurfaces 106 in polygonal data object 104. Theunconstrained surfaces 101 offillet 100, however, are affected by the smoothing and conforming operations such thatfillet 100 is substantially smoother in polygonal data object 105 than in polygonal data object 104. -
FIG. 11 is an illustration of polygonal data object 110 which has geometric features which are not included inpolygonal object 102. Various methods may be used to determine locations for the additional vertices and edges for generating a fillet on data object 110. -
FIG. 12A is an illustration of oneside 120 of polygonal data object 110. In this embodiment, all edges ofside 120 are to be filleted. As shown inFIG. 12A ,lines 122 parallel to each edge ofside 120 are calculated to be offset a constant distance from each edge on the interior of theside 120. As shown, thelines 122 which span a corner concave from the interior ofside 120 extend to the boundary of theside 120 andlines 122 which span a corner convex from the interior ofside 120 extend only to the intersection of thelines 122. Thelines 122 define boundaries ofregions 126 which are farther from the boundaries of theside 120 than thelines 122. -
FIG. 12B is an illustration ofside 120 havingadditional edges 129 andadditional vertices 128 which bound theregions 126 and in locations where thelines 122 corresponding to theedges bounding regions 126 extend to intersect the boundary ofside 120. In some embodiments, theadditional edges 129 andadditional vertices 128 bound all of the regions which are farther from the boundaries of theside 120 than the separation oflines 122 from the boundaries of theside 120. In some embodiments, it is preferable that faces which are not constrained have four edges. As shown inFIG. 12B , faces 121, 123, 125, and 127 do not have four faces. Accordingly, in some embodiments, actions are taken to further modify the data so that more or all faces which are to be smoothed have four edges. Numerous methods of causing the smoothed faces to have four edges may be used, some of which are discussed below. These and other methods discussed herein may be performed either automatically by the computer system or in response to incremental commands from a user. -
FIG. 12C is an illustration ofside 120 having further modifications so that all faces which are to be smoothed have four edges. Face 123, having three sides, can be removed by removing one of the edges which is not on the boundary ofside 120. In this embodiment the edge more perpendicular to the boundary edge is preserved. -
Faces additional edge 129 a is generated at a location between an existing vertex and an addedvertex 128 a. The addedvertex 128 a is added to the edge on the fived edged face which is opposite from the existing vertex. In this embodiment, the addedvertex 128 a is placed so that the shortest possibleadditional edge 129 a is generated. In some embodiments, the existing vertex is on the boundary ofside 120 and the addedvertex 128 a is on the interior ofside 120. - Face 127 has seven edges. To reduce the number of edges, a vertex on the boundary of
side 120 which is between collinear edges may be removed and an edge on the interior ofside 120 previously ending in the removed vertex may be may be moved to a next vertex. In the example ofFIG. 12B , vertices near the apex of the notch are removed, and theedges 129 b previously ending at the removed vertices are moved so as to end in the next vertex offace 127. Onceedges 129 b have been moved,face 127 has five edges, and, as shown, may be converted into two faces having four edges each using a method such as that described above. Alternatively, because the two vertices offace 127 on the lower boundary ofside 120 are each between collinear edges, either of these vertices may be removed and the edge ending therein moved as discussed above. Alternatively, a new vertex may be added between, for example, in the middle of the two vertices. The two vertices may be removed and the edges ending in the two vertices may be moved so as to end at the new vertex. - Once the
additional edges 129 andvertices 128 are generated, surfaces to be constrained are determined by a method such as that discussed above with regard toFIG. 10B . For example, in this embodiment, the surfaces corresponding to theregions 126 may be constrained similarly to the constraining ofsurfaces 106 discussed above. Following the constraining of the surfaces corresponding to theregions 126 and other surfaces of polygonal data object 110, smoothing and conforming operations are performed on polygonal data object 110. As shown inFIG. 12D , fillets are produced by the smoothing and conforming operations. -
FIG. 13A is an illustration ofside 120 of polygonal data object 110. In this embodiment, all edges ofside 120 are to be filleted. As shown inFIG. 13A ,lines 132 are calculated similarly to the calculation oflines 122 ofFIG. 12A discussed above. As shown, a result is thatmultiple regions 136 which are farther from the boundaries of theside 120 than thelines 132 are created. This may not be desirable. - If a
single region 136 is desired, the distance separating thelines 132 and the boundaries ofside 120 may be reduced so that asingle region 136 is achieved. For example,FIG. 13B is an illustration ofside 120 of polygonal data object 110 showing an embodiment with asingle region 136. To achieve thesingle region 136, the distance between the boundary ofside 120 and thelines 132 has been reduced. In some embodiments, the computer system reduces the distance in response to an indication from the user. The extent of the reduction may be determined automatically based on, for example, relative widths of the distance and a minimum width of thesingle region 136, or by an input from the user. In some embodiments, in response to each of multiple indications from the user, the distance is reduced incrementally, such that the extent of the reduction is determined by the user. -
FIG. 13C is an illustration ofside 120 of polygonal data object 110 showingedges 134 andvertices 138, which have been added in preparation for smoothing and conforming. In this embodiment,vertices 138 are added wherelines 132 intersect each other or intersect the boundary of theside 120. In this embodiment, edges 134 are added to the locations corresponding to the locations oflines 132. In addition, anedge 134a is added between the convex corner on the boundary of theside 120 and thevertex 138 nearest thereto. This is done to convert the face having six edges into two faces each having four edges by adding an edge between opposing vertices on the face having six edges. - In some embodiments, fewer edges around the perimeter of
side 120 is preferable. To reduce the number of perimeter edges, as discussed above, vertices between collinear edges may be removed and edges ending therein moved to end in adjacent vertices. In the example ofFIG. 13C , if such operations were to be performed, vertices on the boundary ofside 120 would be only on the corners of the boundary, and each boundary vertex would have an edge extending there from to a corresponding vertex on the interior ofside 120. - Once the
additional edges 134 andvertices 138 are generated, surfaces to be constrained are determined by a method such as that discussed above. For example, in this embodiment, the surfaces corresponding to theregions 136 may be constrained similarly to the constraining of surfaces discussed above. Following the constraining of the surfaces corresponding to theregions 136 and other surfaces of polygonal data object 110, smoothing and conforming operations are performed on polygonal data object 110. As shown inFIG. 13D , fillets are produced by the smoothing and conforming operations. -
FIG. 14A is an illustration ofside 120 of polygonal data object 110. In this embodiment, all edges ofside 120 are to be filleted. Referring toFIG. 14A , points 141 are positioned a constant distance from each corner ofside 120. In this embodiment, thepoints 141 are each placed at the end of one of multiple lines, where the lines have the same length. Each line starts at a corner ofside 120 and extends toward the interior of theside 120 along a direction which bisects the angle of the corner. -
FIG. 14B is an illustration ofside 120 wherelines 142 have been generated, where eachline 142 connectsadjacent points 141 following the perimeter ofside 120. Thelines 142 define boundaries ofregions 146 which are farther from the boundaries of theside 120 than thelines 142. -
FIG. 14C is an illustration ofside 120 whereedges 144 andvertices 148 have been added. In this embodiment,additional vertices 148 are generated in locations corresponding to the locations of thepoints 141.Additional edges 144 are generated in locations corresponding to the locations of thelines 142 which define the boundaries ofregions 146. In addition,additional edges 144 are generated between each of the addedvertices 148 and a nearest corner of theside 120. As discussed above, for some smoothing and conforming operations, the faces which are affected have preferably four edges.Faces -
Side 120 may be modified so that the problem offace 147 having five edges is resolved. Face 147 having five edges is a result of the upper left corner of the boundary ofside 120 not having an additional vertex and a corresponding edge. Accordingly, an additional vertex is generated at a point nearby thevertex 148, shared byfaces -
FIG. 14D is an illustration ofside 120 which has been modified so that the problem offaces additional vertices vertices additional edges 144. Once additional edge 144 c is generated, another face 146 a, which is internal toside 120, is created. - Once the additional edges and vertices are generated, surfaces to be constrained are determined by a method such as that discussed above. For example, in this embodiment, the surfaces corresponding to the
regions 146 and face 146 a may be constrained similarly to the constraining of surfaces discussed above. Following the constraining of the surfaces, smoothing and conforming operations are performed on polygonal data object 110. As shown inFIG. 14E , fillets are produced by the smoothing and conforming operations. -
FIG. 15A is an illustration ofside 120 of polygonal data object 110. In this embodiment, all edges ofside 120 are to be filleted. Referring toFIG. 15A , points 151 are positioned a constant distance from each corner ofside 120. In this embodiment, thepoints 151 are each placed at the end of one of multiple lines, where the lines have the same length. Each line starts at a corner ofside 120 and extends toward the interior of theside 120 along a direction which bisects the angle of the corner. Similar to the embodiment discussed above with reference toFIGS. 14A-14E , a result of the positions of thepoints 151 is that multiple regions are defined which are farther from the boundaries of theside 120 than lines connecting the points. This may not be desirable. - If a single region which is farther from the boundaries of the
side 120 is desired, or for other reasons, the distance separating each of thepoints 151 and the corresponding corner ofside 120 may be reduced. In some embodiments, in response to each of multiple indications from the user, the distance is reduced incrementally, such that the extent of the reduction is determined by the user. In some embodiments, the computer system reduces the distance in response to an indication from the user. The extent of the reduction may be determined automatically based on, for example, a set of rules. - For example, in some embodiments, prior to generating lines which connect
adjacent points 151, the distance separating each of thepoints 151 and the corresponding corner ofside 120 may be reduced so that a set of rules is satisfied. The rules may include, for example, that each oflines 153 connecting eachpoint 151 and the corresponding corner ofside 120 do not intersect another of thelines 153. Another rule which may be included is that thelines 153 do not intersect a boundary ofside 120. Other rules may additionally or alternatively be enforced.FIG. 15B is an illustration ofside 120 of polygonal data object 110showing points 151 where the distance separating each of thepoints 151 and the corresponding corner ofside 120 have been reduced so that these rules are satisfied. -
FIG. 15B additionally showslines 152, where eachline 152 connectsadjacent points 151 around the perimeter of theside 120. Despite conforming to the rules discussed above, in this embodiment, thelines 152 define boundaries ofmultiple regions 156 which are farther from the boundaries of theside 120 than thelines 152. - To cause a
single region 156 to be generated or for another reason, additional rules may be enforced. Such additional rules may include, for example, thatlines 152 do not intersect one another. Other rules may additionally or alternatively be used. For example, the length oflines 153 may be reduced to satisfy a rule based on, for example, relative widths of a minimum width of thesingle region 156 and a minimum width of a distance between aline 152 and a boundary of theside 120. In some embodiments, the computer system automatically reduces the length oflines 153 to conform to the rules. In some embodiments, in response to each of multiple indications from the user, the distance is reduced incrementally, such that the extent of the reduction is determined by the user.FIG. 15C is an illustration ofside 120 of polygonal data object 110 showing the position ofpoints 151 andlines 152 afterlines 153 have been further reduced. As shown, asingle region 156 is generated. - In some embodiments,
additional edges 154 andadditional vertices 158 are generated which bound theregion 156 and connectvertices 158 to vertices of the corners of the boundary ofside 120, for example, as discussed above. Once theadditional edges 154 andvertices 158 are generated, surfaces to be constrained are determined by a method such as that discussed above. For example, in this embodiment, the single surface corresponding to theregion 156 may be constrained similarly to the constraining of surfaces discussed above. Following the constraining of the surface corresponding to theregions 156 and other surfaces of polygonal data object 110, smoothing and conforming operations are performed on polygonal data object 110. As shown inFIG. 15D , fillets are produced by the smoothing and conforming operations. -
FIG. 16A is an illustration ofside 120 of polygonal data object 110. In this embodiment, all edges ofside 120 are to be filleted. Referring toFIG. 16A , points 151 are positioned a constant distance from each corner ofside 120. In this embodiment, thepoints 151 are each placed at the end of one of multiple lines, where the lines have the same length. Each line starts at a corner ofside 120 and extends toward the interior of theside 120 along a direction which bisects the angle of the corner. Similar to embodiments discussed above, a result of the positions of thepoints 151 is that multiple regions are defined which are farther from the boundaries of theside 120 than lines connecting the points. This may not be desirable. - If a single region which is farther from the boundaries of the
side 120 is desired, or for another reason, the distance separating each of thepoints 151 and the corresponding corner ofside 120 may be reduced. In some embodiments, in response to each of multiple indications from the user, the distance is reduced incrementally, such that the extent of the reduction is determined by the user. In some embodiments, the computer system automatically reduces the distance. The extent of the reduction may be determined automatically based on, for example, a set of rules. - For example, in some embodiments, prior to generating lines which connect
adjacent points 151, one or more of the distances separating each of thepoints 151 and the corresponding corner ofside 120 may be reduced so that a set of rules is satisfied. The rules may include, for example, that each oflines 153 connecting eachpoint 151 and the corresponding corner ofside 120 do not intersect another of thelines 153. Another rule which may be included is that thelines 153 do not intersect a boundary ofside 120. Other rules may additionally or alternatively be enforced.FIG. 16B is an illustration ofside 120 of polygonal data object 110showing points 151 where distances separating some of thepoints 151 and the corresponding corner ofside 120 have been reduced so that these rules are satisfied. The dashed extensions of the reducedlines 153 indicate their lengths prior to reduction. In this embodiment lines 153 which cause one of the rules to be violated is reduced in length, andlines 153 which do not cause a rule to be violated are not reduced. Accordingly, the reduction of the length of the reducedlines 153 removes rule violations. -
FIG. 16C showslines 162, where eachline 162 connectsadjacent points 151 around the perimeter of theside 120. Despite conforming to the rules discussed above, in this embodiment, thelines 162 define boundaries ofmultiple regions 166 which are farther from the boundaries of theside 120 than thelines 162. - To cause a
single region 166 to be generated or for another reason, additional rules may be enforced. Such additional rules may include, for example, thatlines 162 do not intersect one another. Other rules may additionally or alternatively be used. For example, a geometry such as one of thelines 162, points 152, and/or 153 may be adjusted to satisfy a rule based on, for example, relative widths of a minimum width of thesingle region 166 and a minimum width of a distance between aline 162 and a boundary of theside 120. In some embodiments, the computer system automatically adjusts a geometry to conform to the rules in response to an indication from the user. In some embodiments, in response to each of multiple indications from the user, the geometry is adjusted incrementally, such that the extent of the adjustment is determined by the user. In some embodiments, adjusting the geometry includes one or more of: reducing the length of one or more of thelines 153, moving one or more of the vertices along a path defined by one of thelines 162, moving one or more of the vertices along a path parallel to a boundary ofside 120 or according to another geometry of polygonal data object 110, moving aline 162, for example perpendicular to its position prior to movement, and pivoting aline 153 about its intersection with the boundary ofside 120. Other geometry adjustments may alternatively or additionally be made.FIG. 16D is an illustration ofside 120 of polygonal data object 110 showing the position ofpoints 151,lines 153, andlines 162 after certain geometries have been adjusted to conform to the rules. - In some embodiments, additional edges and additional vertices are generated which bound the
region 166, for example, as discussed above. Once the additional edges and vertices are generated, surfaces to be constrained are determined by a method such as that discussed above. For example, in this embodiment, the single surface corresponding to theregion 166 may be constrained similarly to the constraining of surfaces discussed above. Following the constraining of the surface corresponding to theregion 166 and other surfaces of polygonal data object 110, smoothing and conforming operations are performed on polygonal data object 110. As shown inFIG. 16E , fillets are produced by the smoothing and conforming operations. - As shown in
FIG. 16E , the fillets in the notch of polygonal data object 110 taper such that they are much larger at the top of the notch as compared to the bottom of the notch. Such gradual tapering may be undesirable. In addition, for various other reasons, undesirable fillets may be generated. In some embodiments, one or more additional vertices are added prior to performing the smoothing and conforming operations to produce more desirable fillets. For example, additional vertices may be added if the angle of a notch, such as that shown inFIG. 16E has an angle of less than about 90 degrees, about 45 degrees, about 30 degrees, about 15 degrees, about 10 degrees, or another threshold. -
FIG. 17A is an illustration ofside 120 of polygonal data object 110 showingadditional vertices 170. As shown, theadditional vertices 170 influence the positions of thelines 172, which connectadditional vertices 170 andpreexisting vertices 151. In some embodiments, the positions of theadditional vertices 170 are determined by a designer, who provides a signal to the computer system indicating the location for theadditional vertices 170. - In some embodiments, the computer system automatically determines the positions of the
additional vertices 170. For example, the computer system may add thevertices 170 along the edges which connectpreexisting vertices 151 at locations which are closest to the boundary of theside 120. Alternatively theadditional vertices 170 may be added along the edges which connectpreexisting vertices 151 at locations which are a determined distance from a preexisting vertex nearest the point closest to the boundary. The determined distance, may, for example, be equal to or a multiple of the distance between the boundary and the preexisting vertex nearest the point closest to the boundary. Other methods may be used to determine the locations of theadditional vertices 170 on the edges which connectpreexisting vertices 151. - Once added, the
additional vertices 170 may then be moved away from the boundary in a direction defined, for example, by a line between eachadditional vertex 170 and the point along the boundary to which it is closest. Alternatively, the direction may be determined by, for example, a line between eachadditional vertex 170 and a nearest corner of the boundary. Other directions may be used. - The distance between the moved
additional vertex 170 and the point on the boundary along the line of movement may be substantially equal to, for example, the distance between thepreexisting vertex 151 nearest the movedadditional vertex 170 and the boundary. Alternatively, the distance between the movedadditional vertex 170 and the point on the boundary along the line of movement may be substantially equal to, for example, the distance between anotherpreexisting vertex 151 and the boundary. In some embodiments, the distance between the movedadditional vertex 170 and the point on the boundary along the line of movement is a multiple of a distance between apreexisting vertex 151 and the boundary. Other distances may be used. - In some embodiments, other methods are used to determine the positions of the
additional vertices 170. For example, the additional vertices may be positioned such that thepreexisting vertex 151 nearest theadditional vertex 170, the point on the boundary at the tip of the notch, and theadditional vertex 170 substantially form an equilateral triangle, or a triangle of another desired characteristic, such as a 30-60-90 triangle. -
FIG. 17B is an illustration of the polygonal data object having fillets generated after the addition ofvertices 170. As shown, the fillets ofFIG. 17B are different from the fillets shown inFIG. 16E because of theadditional vertices 170. - The various aspects, processes, and actions discussed herein may be performed sequentially or in parallel. For example, a system capable of parallel processing may divide certain procedures among the available processing devices. In addition, the various aspects, processes, and actions may be performed automatically or algorithmically by the computer system according to a program running on the computer system.
- While various aspects, processes, actions, and systems have been described as being included in the embodiments discussed, the various aspects, processes, actions, and systems can be practiced with certain modifications. For example, the sequential order of the various aspects, processes, and actions may be modified. In addition, certain aspects, processes, and actions may be omitted, and other aspects, processes, and actions may be added.
Claims (10)
1. A computer implemented method of producing an electronic geometric model, the method comprising:
accessing electronic data by computer, the data comprising polygonal data defining a mesh of polygonal data points, the mesh comprising a plurality of edges;
selecting an edge of the accessed data;
in response to an indication from a user:
determining locations for additional data points, wherein locations the locations are adjacent to the selected edge, and
inserting the additional data points into the accessed data at the determined locations, wherein the additional data points define first and second lines, and wherein the selected edge is between the first and second lines;
subdividing the accessed data having the additional data points with a subdivision algorithm, whereby subdivided data is generated;
generating the geometric model based on the subdivided data; and
storing the geometric model in a computer readable data storage.
2. The method of claim 1 , wherein subdividing the accessed data comprises generating points defining a fillet.
3. The method of claim 1 , wherein the first and second lines are adjacent the selected edge.
4. The method of claim 1 , further comprising receiving an instruction including distance information between the selected edge and the additional points, and the additional points are positioned according to the distance information.
5. The method of claim 1 , wherein the first line is parallel to the selected edge.
6. The method of claim 5 , wherein the second line is parallel to the selected edge.
7. The method of claim 6 , wherein the selected edge is equidistant from the first and second lines.
8. The method of claim 1 , further comprising:
selecting a plurality of edges; and
inserting additional data points into the accessed data adjacent to the plurality of selected edges.
9. The method of claim 8 , wherein the plurality of edges define a selected curve in the accessed data.
10. The method of claim 9 , wherein the additional points define first and second curves, and wherein the first and second curves are parallel to the selected curve and the selected curve is between the first and second curves.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/726,474 US20150331968A1 (en) | 2012-03-27 | 2015-05-30 | Methods and Systems for Generating and Editing Polygonal Data |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/431,839 US9047704B2 (en) | 2012-03-27 | 2012-03-27 | Method for filleting 3D mesh edges by subivision |
US14/726,474 US20150331968A1 (en) | 2012-03-27 | 2015-05-30 | Methods and Systems for Generating and Editing Polygonal Data |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/431,839 Continuation US9047704B2 (en) | 2012-03-27 | 2012-03-27 | Method for filleting 3D mesh edges by subivision |
Publications (1)
Publication Number | Publication Date |
---|---|
US20150331968A1 true US20150331968A1 (en) | 2015-11-19 |
Family
ID=49236169
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/431,839 Expired - Fee Related US9047704B2 (en) | 2012-03-27 | 2012-03-27 | Method for filleting 3D mesh edges by subivision |
US14/726,474 Abandoned US20150331968A1 (en) | 2012-03-27 | 2015-05-30 | Methods and Systems for Generating and Editing Polygonal Data |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/431,839 Expired - Fee Related US9047704B2 (en) | 2012-03-27 | 2012-03-27 | Method for filleting 3D mesh edges by subivision |
Country Status (1)
Country | Link |
---|---|
US (2) | US9047704B2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022051099A1 (en) * | 2020-09-02 | 2022-03-10 | Maxon Computer Gmbh | Systems and methods for extraction of mesh geometry from straight skeleton for beveled shapes |
US11321904B2 (en) | 2019-08-30 | 2022-05-03 | Maxon Computer Gmbh | Methods and systems for context passing between nodes in three-dimensional modeling |
US11714928B2 (en) | 2020-02-27 | 2023-08-01 | Maxon Computer Gmbh | Systems and methods for a self-adjusting node workspace |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10120523B2 (en) * | 2014-08-29 | 2018-11-06 | Adobe Systems Incorporated | User interface facilitating mesh generation |
US9691186B2 (en) * | 2014-10-31 | 2017-06-27 | IntegrityWare, Inc. | Constraint of a subdivided model |
US20160125650A1 (en) * | 2014-10-31 | 2016-05-05 | IntegrityWare, Inc. | Constraint of a subdivided model |
DE102018009811A1 (en) * | 2018-12-13 | 2020-06-18 | YOU MAWO GmbH | Method for generating manufacturing data for manufacturing glasses for a person |
CN111190940B (en) * | 2019-12-27 | 2024-04-02 | 中国平安人寿保险股份有限公司 | Discrete data processing method, device, equipment and medium for user access |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6222553B1 (en) * | 1997-08-04 | 2001-04-24 | Pixar Animation Studios | Hybrid subdivision in computer graphics |
US6515659B1 (en) * | 1998-05-27 | 2003-02-04 | In-Three, Inc. | Method and system for creating realistic smooth three-dimensional depth contours from two-dimensional images |
US6876956B1 (en) * | 1999-08-31 | 2005-04-05 | California Institute Of Technology | Method and system for thin-shell finite-element analysis |
US7050876B1 (en) * | 2000-10-06 | 2006-05-23 | Phonak Ltd. | Manufacturing methods and systems for rapid production of hearing-aid shells |
US7227545B2 (en) * | 2002-05-24 | 2007-06-05 | Autodesk, Inc. | Unified subdivision scheme for polygonal modeling |
US7200532B1 (en) * | 2002-06-14 | 2007-04-03 | University Of Kentucky Research Foundation | Subdivision surface-based geometric modeling system |
US7617079B2 (en) * | 2003-01-20 | 2009-11-10 | Autodesk, Inc. | Unified subdivision for arbitrary and partial degree surfaces and curves with consistent property propagation |
US7512255B2 (en) * | 2003-08-22 | 2009-03-31 | Board Of Regents, University Of Houston | Multi-modal face recognition |
US7369972B2 (en) * | 2003-11-25 | 2008-05-06 | International Business Machines Corporation | System, method, and program product for re-parameterizing three dimensional models represented as Catmull-Clark subdivision surfaces |
US7595799B2 (en) * | 2005-08-04 | 2009-09-29 | Dassault Systemes | Process for creating from a mesh an isotopologic set of parameterized surfaces |
US20070229498A1 (en) * | 2006-03-29 | 2007-10-04 | Wojciech Matusik | Statistical modeling for synthesis of detailed facial geometry |
US8120607B1 (en) * | 2008-05-30 | 2012-02-21 | Nvidia Corporation | Boundary transition region stitching for tessellation |
-
2012
- 2012-03-27 US US13/431,839 patent/US9047704B2/en not_active Expired - Fee Related
-
2015
- 2015-05-30 US US14/726,474 patent/US20150331968A1/en not_active Abandoned
Non-Patent Citations (1)
Title |
---|
OReilly_2010_Transcript (Fillet and Champher â Rhino 4 Tutorial, Dec 20, 2010 downloaded from https://www.youtube.com/watch?v=PS1ZdfVL43A). * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11321904B2 (en) | 2019-08-30 | 2022-05-03 | Maxon Computer Gmbh | Methods and systems for context passing between nodes in three-dimensional modeling |
US11714928B2 (en) | 2020-02-27 | 2023-08-01 | Maxon Computer Gmbh | Systems and methods for a self-adjusting node workspace |
WO2022051099A1 (en) * | 2020-09-02 | 2022-03-10 | Maxon Computer Gmbh | Systems and methods for extraction of mesh geometry from straight skeleton for beveled shapes |
US11373369B2 (en) | 2020-09-02 | 2022-06-28 | Maxon Computer Gmbh | Systems and methods for extraction of mesh geometry from straight skeleton for beveled shapes |
Also Published As
Publication number | Publication date |
---|---|
US20130262038A1 (en) | 2013-10-03 |
US9047704B2 (en) | 2015-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150331968A1 (en) | Methods and Systems for Generating and Editing Polygonal Data | |
US9501868B2 (en) | Methods and systems for generating and editing surfaces | |
JP4764663B2 (en) | Method for automatically recognizing geometric shape in virtual three-dimensional coordinate space, three-dimensional CAD system and three-dimensional CAD program | |
US8514224B2 (en) | Three-dimensional modeling apparatus and method using grid structure | |
US9619587B2 (en) | Decomposition of 3D geometry into developable surface patches and 2D cut patterns | |
US7643026B2 (en) | NURBS surface deformation apparatus and the method using 3D target curve | |
KR100914218B1 (en) | System and method for calculating loft surfaces using ?d scan data | |
KR102370617B1 (en) | Method and apparatus for processing a image by performing adaptive sampling | |
US20130271459A1 (en) | Systems and methods of editing graphical data | |
KR102300473B1 (en) | Adaptive Slicing Method by Merging Vertical Layer Polylines for Reducing 3D Printing Time | |
US9196076B1 (en) | Method for producing two-dimensional animated characters | |
CN110744354A (en) | Method for determining alternate time in material increasing and decreasing composite manufacturing | |
CN115937434A (en) | Three-dimensional model cutting device based on texture | |
CN107037738B (en) | Material removal method based on STL model in geometry Simulation of NC Machining | |
US20150206342A1 (en) | Methods and Systems for Generating Continuous Surfaces from Polygonal Data | |
EP3614282A1 (en) | Automatic parametric constraints in cad | |
US9639992B2 (en) | Methods and systems for multilevel editing of subdivided polygonal data | |
JPH061404B2 (en) | Complex curved surface processing method | |
US9292970B2 (en) | Systems and methods of retopologizing graphical data | |
TWI532007B (en) | Searching method for plane area of 3D module | |
JP4459745B2 (en) | Method and program for calculating fillet surface | |
US20130218525A1 (en) | Methods and Systems for Generating and Editing Surfaces | |
JP2006039668A (en) | Method and program for calculating fillet surface | |
JP2007331037A (en) | Machining area setting method for die and its device | |
JP2023528760A (en) | 2. Computer Aided Generative Design with Filtering to Facilitate the 5-Axis Subtractive Manufacturing Process |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |