The present invention relates to the creation of embroidery patterns for controlling embroidery machines and more particularly for creating self-generating embroidery design patterns which can be translated into embroidery machine language code for controlling such embroidery machines.
Embroidery machines are generally controlled by programs. Often, a separate program is required for each embroidery design. Few systems previously available provide the ability to modify existing embroidery design programs, with such prior art systems, by way of example, varying the parameters associated with a stitch pattern design in order to control stitching machinery, such as is disclosed in U.S. Pat. Nos. 4,326,473; 4,821,662; 4,720,795; 4,352,334; 5,191,536; 4,807,143; 4,849,902. Some of these prior art systems are capable of scaling pattern sizes or making other modifications to existing pattern designs either input by the user or stored in memory. However, these prior art systems do not create a self-generating embroidery design pattern based on fractal geometry where the design conforms to an area defined by an outline boundary, especially one which may be an asymmetrical or irregular polygon shape.
Fractal geometry itself is well known. Examples are described in Computer Graphics: Principles and Practice, 2nd Ed., at page 1020, and in an article entitled “A Unified Approach to Fractal Curves and Plants”, by Dietrnar Saupe, at pages 273–286 of The Science of Fractal Images, Springer-Verlage, New York 1988. Our prior U.S. Pat. No. 5,430,638, entitled “Method for Creating Self-Generating Embroidery Design”, issued Jul. 4, 1995, the disclosure of which is specifically incorporated by reference herein in its entirety, discloses an efficient method for creating self-generating patterns based on fractal geometry.
However, the use of fractal geometry for self-generating patterns is limited by the ability to calculate and apply the fractal shape to an area within a given outline boundary. Asymmetrical outline boundaries defining irregular polygons, of which embroidered numbers, symbols, paisleys and letters are examples, may likely incorporate curves, corners, or other irregular features that inhibit the application of a fractal algorithm to effectively generate an appropriate fractal shape to represent certain embroidery techniques, such as a stippling stitch pattern, to be applied to that area.
Stippling stitch patterns typically follow a non-intersecting pathway that is usually curving and/or randomly displacing over a given area of an embroidery surface, which may be an embroidered article, fabric or workpiece, for instance, a quilt. Stippling stitch patterns are usually composed of run stitches and provide a raised texture to the surface. In quilting applications stippling is used as a decorative stitch to “quilt” the three layers of a quilt together (the backing, the batting, and the patched or appliquéd top layer. Stippling adds a decorative relief around the appliqué or design in each patch square and has the twin objectives of holding the three layers together as well as being a decorative stitch. The intermittent nature of the stippling and the desire that it be relatively uniformly applied over the area, contrasting raised areas separated by the stippling stitches, distinguish this type of stitching from fill stitching or border stitching, and its seemingly random nature, and curved pattern, make application of automatically generated stippling in machinery embroidered fabrics difficult.
Typically, stippling has been done first by hand manipulation of the work piece by a highly skilled artisan to create the curving visual effect, and then the resulting design is converted to a data format for storage. This may be recorded in stitch data format, or converted to an outline data format that can be further manipulated and edited on a computer display. Yet, the initial manual manipulation requires significant training and experience to arrive at a visually appealing stippling effect. For home embroidery program users this provides a potential drawback in computer based home embroidering systems in that no reliable computer generated pattern could adequately reproduce a desired stippling effect.
The interest in reproducing more complicated and irregular embroidery patterns and designs automatically, while achieving levels of quality formerly restricted to manually created patterns, points out the limitations in using automatically generated fractal shapes to prepare the stippling patterns. This is especially so where, as is usual, the desired stippling area is asymmetrical or irregular.
The invention pertains to a method of applying a stippling stitch design to an area defining an asymmetrical polygon in a coordinate planar display format, involving: defining a pathway within a geometrically symmetrical boundary, the pathway comprising a single non-intersecting line; conforming the pathway to an asymmetrical polygon area substantially disposed within the geometrically symmetrical boundary; deriving a plurality of points representative of the pathway; and passing the points to a data storage medium in a pre-determined embroidery data format.
The invention further contemplates calculating a fractal based stitch design for an area having a pre-determined shape defining a polygon by selecting a predetermined fractal design; determining a fractal border surrounding an area defining a polygon; defining a pathway within the fractal border based on the selected predetermined fractal design; confining the pathway to the polygon area within the fractal border; and converting the pathway to a data format representing a stippling stitch design within the polygon area.
The terms “user,” “users,” and the like when referring to a user of the systems and/or methods of this invention should be understood broadly and refer to individuals, organizations, and to automated tools for the entry and receipt of information over communications connections. The automated tool may be a local computer system, network, or node utilized by any user interested in or concerned with the nutritional blend formulations. Thus, a user may be an individual who on behalf of a company for which he or she works enters specifications on his or her home or office computer or input/output device for an embroidery pattern or design.
As used herein, “determine,” “determination,” “derive,” “deriving,” “generate,” “generating” and the like should be understood broadly and refer to all aspects of determining (e.g., developing, deciding upon, establishing) data or information related to an embroidery design pattern. The present invention provides systems and methods that are accurate, convenient to use, and reliable for facilitating the creation, editing and display of embroidery patterns and designs, and these systems may be connected to other systems inside or outside of the enterprise that provides the systems of this invention. Further features and advantages of the invention will be apparent to those skilled in the art.
The present invention relates to a method and system for creating self-generating embroidery design patterns, preferably stippling patterns, within a pre-determined surface area having an outline boundary defining an asymmetrical polygon shape or region of the surface.
“Surface” or “surface area”, as used herein, encompasses those surfaces digitally or otherwise represented on a coordinate or caretsian based graphical user interface, such as a computer monitor, or other electronic screen display, for instance, one used to generate stitch segment data that would be used by an embroidery machine to apply a design to an embroidery workpiece or surface. Similarly, “outline boundary” or “boundary” encompasses a line, line segment or segments, stitch region or spatial limitation used to define at least a portion of the surface or surface area, which also may be digitally or otherwise represented on a coordinate or cartesian based graphical user interface, such as a computer monitor or other electronic screen display, as described. “Polygon shape” encompasses the shape of the surface area defined by the outline boundary, including shapes substantially defined by those outline boundaries which are in some respects open and not completely enclosed by the outline or boundary. “Points” or “coordinate points” as used herein references locations on the planar surface of a display, or other representation of an embroidery surface, which points may or may not correlate to “outline points” used to represent stitch segments in a data storage and display medium. It is to be understood that while a line, line segment or other shape, boundary, outline or other construct may be discussed herein as having, or being defined or represented by, coordinate points, or by associated or corresponding coordinate points, the spatial or numerical relationship between the points and the particular construct(s), may encompass, for example, points on, adjacent, near, or proximate to the particular line or other limiting outline or boundary defining the particular shape, area, region or portion of the surface.
Preferably, the method and system utilizes a conventional embroidery computer aided design system to automatically apply a pathway representing a stippling pattern on the desired surface area, for instance, on a graphical user interface of a computer system. An example of such interface, in this case a computer monitor screen display, is illustrated by
In its formulation and/or application to a surface, the pathway may be displaced either randomly or uniformly along its length and/or segments, and which may be based on iterative repetition of a fractal shape. Preferably the pathway will comprise a curving and/or directionally displacing non-intersecting line that will correspond to a stippling pattern extending substantially uniformly and/or evenly over the surface area, as illustrated in the example at
Preferably, the invention comprises, is part of, or is used with a computer program which assists a user in creating embroidery designs, and will generate the necessary stitch commands for recreating the embroidery design on an embroidery surface using an embroidery stitching machine. The program may operate on a PC, or other compatible computer platform which performs the required data processing as hereinafter described. However, the invention may be operable on a variety of computer systems, and be implemented in either hardware or software. While a design is being worked on, the system preferably maintains it in random access memory (RAM) and displays the design on a monitor, television screen or other display means. Once it is desired to store the design, a hard disk, digital disk, or floppy disk, or other suitable data storage medium, may be used for long-term storage of designs, and any program software, modules, functionalities or coding.
As may be seen in the example in
In the program embodiment of the invention, each identification herein of functions performed by the program for doing something or of steps performed in the course of carrying out a method, whether or not expressly recited as a program function or in connection with an algorithm, module, routine, subroutine or other code or component for performing those functions refers to and encompasses all possible embodiments, structures, and steps for performing the function(s), including various possible architecture and programming formats. These functions may be provided and performed through the use of various components, computers, and other elements and techniques, including hardware, firmware, software, databases, routines, programs, algorithms, engines, plug-ins, or other structures within a computer or system that may be used to provide and/or perform the particular function(s) identified. Moreover, combining or separating one or more steps, methods or functions in or between various components, computers, systems, programs, or program subunits are contemplated by the invention and are within its scope.
In addition, operation and performance of the steps, methods and functions identified herein may also be interrelated and/or accessible to a user through various interconnections or otherwise networked in ways known to the art. Each of the functions and components may be close to or remote from one another, either geographically or within a host structure. As noted above, the consolidation of the various functions of the system into the components identified herein is to illustrate the functions and their cooperation and interaction and does not and should not be understood to limit the location of these functions to being within particular components or to limit the location of these components to being within particular structures. A system implementing the program embodiment may encompass any of a number of operating software, microprocessors, memory devices or systems tools to provide a given architecture for implementing the method and functions, for instance to provide a centralized ability for a user to manipulate the system and its components through a graphical user interface which may be a computer screen or other suitable computer display, as well as the circuitry, processors and programs required to render, manipulate and display images based on data stored electronically in a data storage medium either remote to or within a computer or network system.
The system implementing the program embodiment may include a database for selecting and retrieving a pre-determined pathway and/or fractal shapes from a number of stored processes pertaining to the creation of certain pathways or shapes. Additionally or alternatively the database may receive or include means for creating fractal shapes or pathways by a user, and for storing such shapes or pathways for use in stippling or other embroidery applications. A shape or pathway may be searched for or accessed by retrieval functions within the system, program and/or network, and displayed by the user control module on the graphical user interface.
The data representing completed stippling design pattern may preferably be output and stored on different types of media in either stitch data or outline data form to be used in conjunction with conventional embroidery machines. The data is preferably derived based on determined coordinate outline points, for instance, as described in U.S. Pat. No. 5,270,939, which disclosure is specifically incorporated by reference herein. Using these points, other components of the system, not pictured, generate the stitches for the design at the size and density entered by the user. Typically, given their size and nature, the coordinate points for stippling stitches are assigned run stitches, the run stitches together then defining segments of stitches preferably passed to the system in outline data format.
The pathway representing the stippling design pattern may be generated by any effective method, for instance, a computer program that will allow for a regularly curving and/or meandering line to be imposed over an area represented on a coordinate plane, for instance, a surface depicted on a graphical user display. In the preferred embodiment, the pathway is generated automatically by the system based on the mathematical principle of fractal geometry. Fractal geometry involves sets of points that are generated by relatively simple calculations repeated over and over, feeding the results of each step back into the next. There are many categories of fractals each of which can be manipulated in a virtually infinite number of ways. An example of fractals as applied to embroidery designs are provided in U.S. Pat. No. 5,430,658, which disclosure is incorporated herein by reference. For purposes of representing stippling patterns in an irregular or asymmetrical area, the fractal is first applied within a geometrically symmetrical area bordering the desired asymmetrical area, preferably a rectangle or square, to provide a baseline for the fractal iterations.
Generally, and in accordance with the presently preferred method, the fractal generation creates a pathway as desired, e.g., in the scale, density, and coverage sought, over the asymmetrical area and within the geometrically symmetrical border surrounding the asymmetrical area. The pathway is then “clipped” or otherwise so limited to the outline boundary defining the area, usually shaped as an irregular polygon, and the coordinate points associated with the pathway based on the fractal shape are determined.
Once the coordinates associated with the pathway have been determined, these points are converted to embroidery outline and stitch data with a user defined stitch length, such as for example 2 mm, preferably being utilized as the maximum stitch length and any line segment longer than that length preferably being broken up into smaller stitches. As stippling patterns are comprised of run stitches, the points will define a plurality of run stitch segments that form the stippling. Preferably, actual conventional embroidery machine language codes are generated for each stitch for use in conventionally controlling the embroidery machine. The design is preferably stored in outline data form for ease of editing.
The method of the invention will be further described with respect to the drawings.
At functional block 100, a symmetrical geographic border is plotted around the shape, preferably by the creation of a bounding rectangle or square bounding the shape of the polygon. Methods for automatically creating and displaying a bounding square or rectangle around a given polygon area are known in the art.
The area to which the fractal shape will be applied is an outline boundary representing a bordered stitch area defining a shape of an irregular or asymmetrical polygon. The representation of the area is conducted using methods and apparatus for CAD known to the art, for instance, plotted as coordinate points on a Cartesian or similar type coordinate plane. Given a particular polygon, and irregularities in its outline shape, applying the fractal shape to the area so defined is performed by framing the polygon with an encompassing geometrically symmetrical, preferably rectangular, border which frames the polygon, for instance, by placing the lines along the x and y axis at a pre-determined displacement distance from the highest and lowest absolute values of the coordinate locations of respective edges of the polygon.
At functional block 110, a pathway is applied to the area defined by the bounding square or rectangle. Preferably, the pathway comprises generating a line based on a pre-determined fractal shape. The user may first specify or select a desired fractal shape, e.g. a shape having a coded axiom and rules associated with its fractal generation, such as by selecting one from memory or by defining a new one. The axiom and rules associated with the particular fractal shape are then performed to achieve a pre-determined number of iterative sequences for the fractal shape such that it creates a pathway substantially uniform over the area of the bounding square or rectangle.
Within the framework, this fractal shape is constructed, for instance, by repetition of a Hilbert based geometric pattern composed of basic straight segments oriented along one or other of two orthogonal directions. From such a pattern, a pathway representing a stippling pattern can be constructed disposed substantially uniformly over the bounded area and passing through any point only once. This sequence can be repeated n number of iterations until a pathway of sufficient density within the bounding square or rectangle is obtained.
At functional block 120, the pathway is conformed to the outline of the bounding square. This may be performed by “clipping” or limited to the outline of the polygon intrinsic to the bounding square. In the preferred embodiment, the clipping is accomplished through application of codes or algorithms. An example of a suitable algorithm for clipping is described in the following Table 1.
At functional block 130, coordinate points from the coordinate planar surface display associated with the pathway generated are derived, preferably in outline data format, although these may also be derived in stitch data format, for instance, where the output will be directly to an embroidery machine, and not to a database, or other electronic storage medium. The points may be outline points, as described previously in U.S. Pat. No. 5,430,658, the disclosure of which is incorporated herein by reference, or other types of points sufficient to draw, design, and represent an embroidery pattern and to output that pattern to guide the operation of an embroidery machine on fabric or other applicable work piece or surface. Outline points may be derived from Cartesian coordinate points that are on the pathway, or which are substantially adjacent or spatially associated thereto. The resulting outline data that is generated based on the outline points is then used to create stitches for, in this instance, the stippling design.
At functional block 140, the outline points are passed to a data storage medium in a embroidery data format, which as discussed may be either in stitch or outline data formats. The data storage medium may be an electronic medium storing either outline or stitch data, or may also be tape or other non-electronic storage medium for stitch data.
At functional block 200, the predetermined fractal shape is generated for the pathway as previously discussed. The pathway defining a non-intersecting line curving substantially uniformly over the area of the polygon. The line at this stage may or may not have been used to derive a plurality of outline or stitch points for storage or instructing an embroidery patter, nonetheless, as a line in a coordinate plane, the pathway has associated points determining its placement and disposition. From these coordinate points, which again may or may not be or coincide with stitch or outline points as embroidery data, manipulations to the pathway are done to provide a more smooth curve.
At functional block 210, the points of the pathway are each displaced a distance, the displacement distance for each point is randomly determined within a range of possible distances according to an applied pre-determined factor.
At functional block 220, the points are each converted to “smooth” line points, wherein the line at each point is tapered gradually to form a smooth curve, which may be accomplished by generating a bezier curve, rather than a sharp angular vector break, between points. For instance, it is known in the art to generate a smooth curve of a bezier curve by interpolating the curve among or in a vicinity of coordinate points. Algorithms for generating bezier curves geometrically using extra-linear control points determined for each curve can be employed and are preferred.
At functional block 230, the conversion of each point to “smooth” creates a pattern formed of multiple bezier curves, generated based on the random curvatures of the pathway. In the preferred embodiment, the “smoothing” and/or randomizing is accomplished through application of codes or algorithms. An example of a suitable algorithm for “smoothing” and randomizing is described in the following Table 2.
At functional block 240, the “smoothed” pathway, which may include randomized curve displacement, is then clipped so that the curve is represented only in the polygon area, which area is intrinsic to the bounding rectangle or square, as described with respect to
Methods which may otherwise combine the functions, algorithms, process or steps illustrated in
Although the present invention has been described in detail with respect to certain embodiments and examples, variations and modifications exist which are within the scope of the present invention as defined in the following claims.
This application is based on a provisional application Ser. No. 60/621,340, which was filed on Oct. 22, 2004 under Express Mail Label No. EU 743 011 526 US and entitled METHOD AND SYSTEM FOR AUTOMATICALLY DERIVING STIPPLING STITCH DESIGNS IN EMBROIDERY PATTERNS.
Number | Name | Date | Kind |
---|---|---|---|
5430658 | Divinsky et al. | Jul 1995 | A |
6807456 | Costin et al. | Oct 2004 | B1 |
Number | Date | Country | |
---|---|---|---|
60621340 | Oct 2004 | US |