This disclosure relates to systems and methods of delivering digital content for use on electronic cutting machines.
The scrapbook industry has provided consumers with various tools, such as mechanical cutting and embossing tools, as well as electronic cutting machines. These tools and machines may be used to create designs for personalizing books and journals, such as may be desired to memorialize events and memories. Scrap booking software may be used to create designs for cutting on the mechanical cutting tools. Generally, scrap booking software provides rudimentary design capabilities and/or is incapable of interacting with electronic cutting machines.
Software applications, such as rich internet applications (RIAs), which are web applications that generally have the features and functionality of traditional desktop applications, may include client and server portions for execution on a respective client computing device and a server computing device. RIAs typically form a stateful client application with a separate services layer on the backend. RIAs typically run in a web browser, or do not require software installation on a local machine, and run locally in a secure environment called a sandbox. A sandbox is generally a security mechanism for safely running programs. Sandboxes are often used to execute untested code, or non-trusted programs from unverified third-parties, suppliers and non-trusted users.
One aspect of the disclosure provides a method of delivering digital content for use on an electronic cutting machine. The method includes displaying at least one themed project in a rich internet application, where the themed project has at least one glyph of a glyph collection. The method further includes providing access to the rich internet application over a network and offering purchased access to the glyph collection. Any glyphs of the glyph collection can be added to the themed project. The themed project is cuttable on an electronic cutting machine in communication with the rich internet application.
Implementations of the disclosure may include one or more of the following features. In some implementations, the method includes executing the rich internet application on a cloud client of a cloud computing scheme. The digital content may be delivered on demand to the rich internet application from the cloud client. The themed project may include an arrangement of at least one of glyphs and placeholders for glyphs according to a theme. The method may include providing at least one design creation tool in the rich internet application for editing the themed project. Executing the at least one design creation tool may include at least one of cutting, copying, pasting, kerning for moving glyphs together, glyph welding for merging glyphs together, glyph sizing, glyph orienting, glyph slanting, glyph grouping, glyph ungrouping, glyph compositing for combining sub-glyphs into a single glyph, glyph exploding for breaking a glyph into constituent sub-glyphs, glyph flipping about an axis, glyph layering, glyph shadowing, and setting a glyph border.
Another aspect of the disclosure provides another method of delivering digital content for use on an electronic cutting machine. The method includes providing access to a rich internet application over a network, where the rich internet application provides at least one design creation tool for manipulating glyphs cuttable on an electronic cutting machine. The method also includes offering membership access to a club portion of the rich internet application and receiving at least one club project from at least one member of the club portion. The method includes displaying the at least one club project on the rich internet application and offering purchased access to the glyph collection. The at least one club project includes at least one glyph of a glyph collection.
Implementations of the disclosure may include one or more of the following features. In some implementations, the method includes executing the rich internet application on a cloud client of a cloud computing scheme. The method may include offering purchased access to the at least one club project for cutting on an electronic cutting machine in communication with the rich internet application. A service fee can be assessed for member-to-member usage of the at least one club project. Moreover, the club project may include at least one of an arrangement of glyphs and placeholders for glyphs.
In some implementations, executing the at least one design creation tool includes at least one of cutting, copying, pasting, kerning for moving glyphs together, glyph welding for merging glyphs together, glyph sizing, glyph orienting, glyph slanting, glyph grouping, glyph ungrouping, glyph compositing for combining sub-glyphs into a single glyph, glyph exploding for breaking a glyph into constituent sub-glyphs, glyph flipping about an axis, glyph layering, glyph shadowing, and setting a glyph border.
The method may include controlling access to the club portion of the rich internet application. In some examples, the method includes receiving credit card information from a user for verifying user identification.
An aspect of the disclosure provides yet another method of delivering digital content for use on an electronic cutting machine. The method includes displaying digital content for ranking by users and receiving a user ranking for the digital content by each of the users. The method further includes determining a content ranking for the digital content based on the received user rankings and displaying the digital content to each user based on at least one of the content ranking and the user ranking of the respective user. The digital content includes at least one glyph cuttable on an electronic machine.
Implementations of the disclosure may include one or more of the following features. In some implementations, the method includes displaying the digital content in a rich internet application over a network. For example, the method can include executing the rich internet application on a cloud client of a cloud computing scheme. In some implementations, the method includes statistically analyzing the user rankings for determining the content ranking.
The method may include tracking at least one of browsing and usage of the digital content for creating designs and displaying the digital content based on the tracked usage of the digital content. Marketing information can be displayed based on at least one of the user ranking, content ranking, and the tracked usage of the digital content.
The details of one or more implementations of the disclosure are set forth in the accompanying drawings and the description below. Other aspects, features, and advantages will be apparent from the description and drawings, and from the claims.
Like reference symbols in the various drawings indicate like elements.
The present disclosure provides design software that allows a user to create, design, review, and/or modify projects (e.g., scrap book designs). The projects can be realized by cutting the designs on an electronic cutting machine. Users may wish to create or add to scrap designs at his/her leisure in various locations and at various times. Design software that provides the user with design creation tools, content access, and/or portable access allows the user to maximize creative moments to create designs.
Referring to
In some implementations, the design software 100 executes on a cloud client 110 of a cloud computing scheme. Cloud computing allows users to use applications without installation and provides access to their personal files at any computer or computing device with internet access. In general, cloud computing is virtualized third-party hosting, for example, where a user's server runs inside a virtual container which can be moved from one physical server to another without interruption of service. Such a container is also capable of spanning multiple physical machines, giving it potentially limitless resources. This allows for much more efficient computing by centralizing storage, memory, processing and bandwidth. In some implementations, the design software executes on a cloud client 110 that relies on cloud computing for application delivery, or is specifically designed for delivery of cloud services (e.g., content, design applications, etc.). The design software 100 may be a rich internet application (RIA) received through cloud computing. The design software 100 may provide design creation tools and capabilities. Moreover, the user may receive design applications and/or content on demand to the user's own computer 120 (e.g., laptop) or other computing devices, such as a hand held controller 130 of the electronic cutting machine 150, by accessing a subscription service. The digital content can be delivered by the cloud client 110 (e.g., a web server executing in a virtual container).
In some implementations, the user may access content (e.g., glyphs) for use with the design software 100 through a cartridge 140, which may be in communication with the electronic cutting machine 150, as shown in
The user may access the design software 100 as a rich internet application (RIA), create designs or projects using content provided by the design software, and save the designs or projects for later execution on an electronic cutting machine 150. The user may establish communication between the electronic cutting machine 150 and the design software 100 for executing cutting operations by wireless or electrical (e.g., Ethernet) connections to a computer 120 or other computing device 130 (e.g., hand-held device) running the design software 100 or to a network having internet connectivity for accessing the design software 100. While in communication with or executing the design software 100, the electronic cutting machine 150 may access information, such as machine type, cartridge type or content specific information from a cloud source (e.g., data storage in the cloud). Moreover, the design software 100 may access information from the electronic cutting machine 150 (such as make, model, owner information, stored content, etc.).
In some implementations, the design software 100 receives credit card information from the user to authenticate the user's log in. The design software 100 may require connection or communication with the controller device 130 of the electronic cutting machine 150 to authentication of the user. In some examples, the design software 100 tracks the browsing and usage of content for creating designs and delivers content (e.g., visually) to the user based on past usage of similar content (e.g., by category, keyword, etc.) and/or statistical analysis. Content may also be delivered to the user based on promotional activities or incentives.
Referring to
The navigation view 300 may have a display portion 330 that displays marketing, sales, and other information to the user. The information displayed in the display portion 330 may be user specific and based on the user's usage of the design software 100, such as content usage (e.g., statistical analysis of content usage). For example, a user that typically uses Superman related content may receive ads in the display portion 330 for new and/or un-owned Superman content.
In some examples, the navigation view 300 includes a cartridge portion 340 that allows the user to locate, browse, and/or access cartridges 140 (e.g., to view content). In the example shown, the cartridge portion 340 includes a list view of cartridges 140 accessible by the user.
The navigation view 300 may include a web projects portion 350. The web projects portion 350 may provide a list of projects 315 previously created by others. For example, the web projects portion 350 can provide a list of partially created projects 315 that allow the user to use a shell (e.g., template) and customize a portion of the content of a project 315 without having to create the entire project 315 from scratch. Moreover, the web projects portion 350 may provide a list of community projects 315 or multi-authored projects 315. The user may manipulate or add to the project 315 and repost the project 315 to the web projects portion 350 for access by others.
Referring to
As used herein, the term “design object” refers to something that is or can be selected by the user for manipulation, such as by executing a user initiated command. A design object 450 may be a glyph 455 or part of a glyph 455 (e.g., a subset of a glyph). For example, a command can be executed on a region of a multi region glyph 455. An exemplary single region glyph 455 is a circle, while an exemplary multi region glyph 455 is a figure-eight. A glyph 455 having multiple closed vector loops will have multiple regions defined by those vector loops. Each of these regions can be selected by the user. For example, when executing a copy command, the user first selects the glyph 455 and then a region of the glyph 455 that is to be copied.
A design object 450 may be a single glyph project as an entire project 315. For example, a project 315 may include data for orientation and size, but as long as only one glyph is in the job or project 315, then the project 315 may be considered single glyph. A design object 450 may be a multi-glyph project 315 as an entire project 315 (e.g., a project having multiple glyphs). In some examples, a design object 450 is a single glyph of a multi-glyph project 315. For example, the user can select a single glyph 455 from among multiple glyphs 455 in a project 315 and execute a command on the selected glyph 455. Moreover, in some examples, the user can select multiple glyphs 455 of a multi-glyph project 315 (e.g., a subset of a project 315) as a design object 450 and execute a command on the selected glyph 455. The design object 450 may be a single exploded layer 710 (
Examples of toolbar commands 412 include undo 412a (e.g., undo x number of commands) and redo 412b (e.g., redo or re-execute n number of commands). The user may execute the undo command 412a to undo or cancel one or more previous actions or commands 412. The actions or commands 412 may be undone in reverse chronology. The user may also redo or re-execute actions or commands that have been undone by executing the redo command 412b. In some examples, the toolbar 410 includes a clear all command (not shown) that clears the entire job (e.g., from memory and/or the virtual matt 422). The design software 100 may indicate that the clear all command has been selected or executed and may offer a confirmation screen to confirm the user's action to clear the entire job.
The toolbar 410 may include toolbar commands 412 for viewing the project 315 in different ways. Exemplary viewing commands 412 may include preview 412c (e.g., provide a view illustrating a cut project), zoom in 412d (e.g., zoom in on a portion of the virtual mat), zoom out 412e (e.g., zoom out on a portion of the virtual mat), and pan 412f (e.g., move a view in the virtual mat view 420 over other portions of the virtual mat 422). A tool options command 412g may be used to set or edit toolbar options. A type command 412h may be sued to create a text field for typing characters or strings. Moreover, a welding command 412i may be executed to join one or more edges of selected glyphs or design objects.
Additional examples of toolbar commands 412 may include cut 412j, copy 412k, paste 412l, palette 412m (e.g., paletting together multiple design objects as one composite design object), unpalette 412n (e.g., making a composite design object into multiple constituent design objects), flip X 412o (e.g., flip a selected design object about an x axis), flip Y 412p (e.g., flip a selected design object about a y axis), horizontal location 412q (e.g., set a relative or absolute x coordinate), vertical location 412r (e.g., set a relative or absolute y coordinate), height 412s (e.g., set a height of a selected design object), width 412t (e.g., set a width of a selected design object), and scale locking 412u (e.g., lock a height to width relationship). In some examples, the user may customize the toolbar 410 by adding, removing, and/or arranging commands 412 on the toolbar 410.
The virtual mat view 420 includes a virtual mat 422 and at least one virtual paper 424 (representing actual paper for cutting on the electronic cutting machine 150). The user may place design objects 450 (e.g., glyphs) on the virtual paper 424 for creating and/or editing a project 315. The virtual mat view 420 any include a cut command 425 for sending the project 315 to an electronic cutting machine 150 in communication with the design software for execution of a cutting operation. The virtual mat 420 may also include a panning command 426 (e.g., up, down, left, right arrows) for moving a view of the virtual mat 422 in the virtual mat view 420.
Referring to
Referring to
In some implementations, the design software 100 allows a user to select a design object 450 and execute a quantity command 610d. The design software 100 may repeat the selected design object 450 by the received quantity in a grid pattern (as shown) or some other pattern (predetermined, set by the user, or otherwise established). In some examples, the user may specify a paper size, so as to adjust the paper size to fit a desired quantity. For example, if the user selects a 3 inch glyph 455 (e.g., the four-pointed shape shown) as the design object 450 and executes the quantity command 610d with a quantity of 12, the design software duplicate or repeat the selected glyph 12 times. If the user had selected two glyphs 455 (e.g., as the design object 450) and executed the quantity command 610d with a quantity of 12, the design software would have repeated the two glyph pair 12 times. If the quantity command 610d requires more than one sheet of paper 424 to cut the received quantity, the user may be informed of the number of pages 424 needed to complete the entire quantity. The user may also select a different paper size to accommodate the quantity command 610d. If the user selects a paper size too large for the virtual mat 422, the user may receive an error message or be limited to a maximum paper size corresponding to a mat size of the virtual mat 422. The design software 100 may provide visual feedback to the user by indicating that the quantity command 610d is on or has been select, by showing the quantity entered by the user, by showing how much available paper 424 has been used by the repeated design object(s) 450, and/or by showing how many pages 424 it will take to fill the quantity.
In some implementations, the design software 100 allows a user to select a design object 450 and execute an auto-fill command 610e, which duplicates the selected design object 450 in a grid pattern to fill the page 424. The auto-fill command 610e can be similar to the quantity command 610d, except rather than repeating the selected design object(s) 450 by a specified quantity, the auto-fill command fills the entire page 424 with as many design objects 450 that will fit. For example, if the user selects one or more design objects 450 and executes the auto-fill command 610e, the design software 100 duplicates or repeats the selected design objects 450 as many times as possible to fit on the paper 424 (e.g., without having partial design objects 450 on the edge of the paper 424). The user may also select a different paper size to accommodate more design objects 450. Visually, the design software 100 can indicate that the auto-fill command 610e has been selected (e.g., in the transform palette 600) and/or by showing the number of times that the design object(s) can be repeated (e.g., on the virtual mat 422 in the mat view 420 and/or by indicating a repetition number). The design software 100 can also show how much of the paper 424 is occupied by the repeated design object(s) 450.
Referring to
The multi-cut command 712b may allow the user to set a number of cut passes performed by the electronic cutting machine 150 for a selected design object 450, layer 710 or the entire project 315. When a cut operation is performed, the electronic cutting machine 150 cuts and then re-cuts the design object 450, the layer 710, or the entire project 315 receiving the multi-cut command 712b until the number of cuts has been satisfied. In the case of a project 315 that includes multiple glyphs 455, each glyph 455 may be cut the number of times designated by the user before moving to the next glyph 455 in the project 315. Moreover, if the quantity command 610d is on or has been executed, and the project 315 will take more than one page 424 to cut, the electronic cutting machine 150 may complete a whole page 424 of multi-cuts before moving on to an additional page 424. The design software 100 may indicate that the multi-cut command 712b has been selected and/or how many cuts will be performed. The cut pressure command 712c may allow the user to set a downward pressure applied to a blade housing of the electronic cutting machine 150 during cutting. The entire project 315 or a specific layer 710 can be cut at the cut pressure entered by the user.
The design software 100 may provide an exploded/composite command 720 that allows a user to toggle between cutting a project 315 in an exploded view of layers 710 or a composite view of layers 710. For example, when the user selects the exploded/composite command 720 and a selected design object 450 is in a composite state, the design software 100 moves all layers 710 of the design object 450 on the virtual mat 422 so as to not overlap in any way. This results in each layer 710 being cut separate from one another. All of the layers 710 can be nested tightly together to conserve paper 424. If the design object 450 is in an exploded state when the user selects the exploded/composite command, the design software 100 moves all layers of the design object 450 to their respective home (e.g., un-exploded) positions on the virtual mat 422. This allows the design object 450 to be cut as a composite (e.g., with overlapping layers 710).
The design software 100 may visually show movement of the layers 710 of the design object 450 and/or the composite or exploded states. Moreover, the design software 100 may visually show how much of the available paper 424 has been used by the executed command. In some examples, the user can toggle a layer 710 to be viewed on the virtual mat 422 in a color or design format or a cut-path format, which only shows the cut paths of the glyphs 455 on that layer 710.
Referring to
Referring to
The design software 100 may provide a command that allows the user to toggle between true size and relative size for a selected design object 450 or an entire project 315. For example, with true size selected, every design object 450 in the project 315 may be cut using the true or actual size of each glyph 455 (e.g., the height from the top of the glyph 450 to the bottom of the glyph 450), while with relative size selected, every design object 450 in the project 315 may be cut using a reference size (e.g., a reference height) for each glyph 455 with respect to a reference, such as a design object 450. The design software 100 may indicate that either true or relative size is turned on and/or how much of the available paper 424 has been used by the design object(s) 450.
Other options commands 910 may include a layers selection command 910d for setting auto-selection of layers 710, a welding selection command 910e for setting manual or auto-welding, a mat size command 910f for setting a mat size of the virtual mat 422, and a mat rotation 910g for setting a mat orientation (e.g., portrait or landscape).
Referring to
Welding may be based on a distance between visual image edges. If the user wishes to weld the glyphs 455 together, the user may select the glyphs 455 and the welding command 410i from the toolbar 410 or have auto-welding selected in the welding selection command 910e. The auto-welding command can automatically weld overlapping glyphs 455 together (e.g., of the same or different design objects 450). The user may use the weld gap command 510e to adjust a spacing or overlap distance of adjacent glyphs 455. When glyphs 455 are moved into positions having at least one overlapping region 457, the welding command 410i can be executed. For welding, the overlapping region 457 is not desired to be cut, because it would create separate pieces, rather than a single piece (the resultant of the welding operation). Thus, the user may arrange the glyphs 455 to choose how to weld or merge the glyphs 930 together. The welded or merged glyphs 455 are replaced by a single resultant glyph 455 having a single cut path thereabout. The cutting path removes the overlapping area(s) 457 that would have created an awkward extra piece(s) if no welding or merging was performed.
To determine the overlapping area 457 and merge the outer cutting paths of the overlapping glyphs 455, the design software 100 may determine the outer cutting path for each glyph 455, and then determine the overlapping area 457. Where the cutting path around one glyph 455 intersects the cutting path around another glyph 455, the two cutting paths are merged at those points and the inner cutting path(s) is(are) not taken. In the example shown, there glyphs 455 corresponding to the letters of the word BEACH each have two cutting path intersections between adjacent letter glyphs 455. The common or overlapping area(s) 457 of the glyphs 455, which are not cut, are bounded by the overlapping area 457. The cut paths for the welded glyphs 455 may be reviewed and identified as either a boundary or webbing. If the cut path is considered “webbing” (e.g., cut paths that are internal to the design) then they are ignored and not cut. If the cut paths are boundary cut paths and do not intersect another boundary, then they are cut as they would normally be cut. If the cut paths are boundary cut paths and do intersect another boundary, then the two lines are joined so that the overlapping regions 457 defined by the two boundaries are made into one region.
Referring to
Referring to
Referring to
Referring to
Referring to
The project management view 1200 may also include a storage portion 1230 that allows the user to copy 1232 a selected project 315 to the hand held controller 130 or the electronic cutting machine 150, backup 1234 the selected project 315 to an online account, and/or update 1236 the hand held controller 130 or electronic cutting machine 150 with project or cartridge information.
In some implementations, some projects 315 may have a type “template”. The user can select the template type project 315 from the project selection portion 1210 for usage in the design view 400. In some examples, the template type project 315 includes an arrangement of glyphs 455 and/or instructions for completion of the project 315. Moreover, the template type project 315 may have guide glyphs 455 (e.g., silhouettes) for guiding the user's placement of glyphs 455 to create a particular pattern or design. The guide glyphs 455 may be for the design view 400 only and thus not cuttable or viewable in the preview view 1100.
The operations include selecting 1306 a mat size, e.g., 6×12 or 12×12, and presenting 1308 a design view 400 having a virtual mat 422 shown. The operations further include selecting 1310 a particular cartridge 140 to add content to the virtual mat 422. The cartridge 140 may be considered a collection of glyphs 455 (e.g., an image representing the cutout from the digital content) for use. The user may be presented with a list of all available cartridges 140 (i.e., entire cartridge library) or only the cartridges 140 the user owns for selection. The design software 100 may allow the user to preview and even design with the entire cartridge library regardless of whether the user owns the cartridges 140 or not. In this way, the user may sample cartridges 140 before buying them. However, to cut a glyph 455 using the design software 100, the user may be required to prove ownership of that glyph 455, as by establishing communications between the cartridge 140 containing the desired glyph 455 and the design software 100 (e.g., via the hand-held controller 130 or the electronic cutting machine 150) to register the cartridge 140 and its content with the design software.
The operations for using the design software may also include selecting 1312 a glyph 455 and placing 1314 the glyph 455 on the virtual mat 422 (e.g., by drag-n-drop, selection alone, or some other suitable way of instantiating the selected glyph 455 on the virtual mat 455). The user may select a glyph 455 from the shapes view 460, the text view 470, or the keyboard view 480. In the keyboard view 480, the user may have the option of selecting “option” and “shift” buttons to change between multiple keyboard overlays. Additionally, the user may hover over each glyph 455 to view an enlarged or zoomed view of the glyph 455 to see it in more detail. The user may double-tap an image to select it and place it on the virtual mat 455 to begin designing with it.
In the design view 400, the virtual mat 422 allows the user to manipulate each glyph 455. For example, the user may move the glyph 455 around, align glyphs 455 with each other, show highlighted axes on the virtual mat 422 to allow for alignment, etc. The user may simply tap the glyph 455 and drag it to a new location on the virtual mat 422. There are also more precise positioning methods discussed herein that allow for direct entry of X/Y coordinates for positioning the glyph 455 to a precise location.
The operations may include sizing 1316 a glyph 455. In some examples, the user sets the height and width of the glyph 455 using the direct input methods of the respective height and width commands 412s, 412t in the toolbar 410 (e.g., entering height and width values into respective input fields). In additional examples, the user manipulates one or more size handles 452 of the glyph 455 to alter its size (e.g., stretching the glyph 455).
Other operations may include rotating 1318 (e.g., using the rotate command 610a), skewing 1320 (e.g., using the slant X 510e and/or the slant Y 510f commands), scaling 1322 (e.g., using the scale X 610b and/or the scale Y 610c commands), and/or flipping 1324 (e.g., using the flip X 412o and/or the flip Y 412p commands) the glyph 455. Other operations are possible as well for manipulating the look or placement of the glyph 455.
In some implementations, the operations include grouping 1326 two or more glyphs 455. For example, the glyphs 455 may be positioned on the virtual mat 422 in a desired orientation with respect to each other. The glyphs 455 may then be grouped together so that they may be moved, resized, rotated or otherwise manipulated together as if they were a single glyph 455. In some implementations, to select a group, the user selects each glyph 455 for grouping and then selects the group command 412m. With the selected glyphs 455 grouped together, the glyphs 455 can be moved together without having to be concerned about their relative positioning. Moreover, when precision is desired, the user may not be able to see the entire mat view when zoomed into a particular location for alignment, and the group function allows any number of glyphs 455 to be positioned at the same time. Once grouped, the user may also ungroup the grouped glyphs 455 for individual manipulation by selecting the grouped glyphs 455 and selecting the ungroup command 412n.
Other operations may include kerning 1328 glyphs 455 (e.g., via the kerning command 510d), for example, so as to remove a portion of space between adjacent glyphs 455 in preparation for printing or cutting. Kerning allows for the determination of a gap or distance between glyphs 455 and may be used to position two glyphs 455 relative to each other, based on the spacing between them. The operations may include welding or merging 1330 two or more glyphs 455 together. In some implementations, the user selects multiple glyphs 455 and selects the weld command 412i to weld or merge the glyphs 455 together into a single resultant glyph 455 having a single cut group. The operation may also include setting a welding gap (e.g., via the weld gap command 510g) between the visual image edges (e.g., Bezier lines) of adjacent glyphs 455. This allows the user to control the amount of any overlapping of the glyphs 455.
The operations may include zooming 1332 in or out on a particular area of the virtual mat 422. In some implementations, to zoom, the user may select one of the zoom commands (in , out) 412d, 412e as well as a location (e.g., point) or area (e.g., clicking to instantiate a zoom window and dragging the zoom window to a specific size) of the virtual mat 422. The operations may include panning 1334 the virtual mat 422, as by selecting one of the panning commands 412f, 426, for example, and dragging a selection pointer across the virtual matt 422 to pan the virtual mat and any images thereon or by selecting arrow buttons for directional panning.
The operations may include cutting 1336 the project (e.g., on an electronic cutting machine 150 in communication with the design software 100) to realize the project 315 in tangible form. The user may select the cut command 425 in the design view to execute a cutting operation on an electronic cutting machine 150. The user may be prompted to save the project 315, if the project 315 was not saved since a last action. A project file for the project 315 can have a header that includes file attributes, such as file name, size, creation date, last save date, etc. The project file can also have data portion that includes glyph group, which lists all of the glyphs forming the design. The glyph group can include attributes such as glyph ID and/or glyph name, cartridge name, and placement properties. The placement properties may include mat location, size, rotation, skew, applied style, etc. In some examples, the project file is an XML (extensible markup language) file. The XML file can have attributes or elements that contain properties of the project 315 (e.g., project name, size, creation date, etc.). Moreover, the XML file can store design information, such as glyphs 455 (or file locations of the glyphs 455), glyph placement (e.g., coordinates), and/or scaled vector graphics (SVG) information. The XML can be encrypted with an encryption key stored on the cloud client 110, versus a user's machine.
In executing the cutting operation 1336, the design software 100 may present the preview view 1100 for the selection of cutting options, such as layers 710 to be cut, multi-cut properties (e.g., number of passes of the cutting blade) of certain layers 710 or the entire project 315, blade pressure, and/or blade speed. The design software 100 may prompt the user to place certain cutting media (e.g., paper) in the electronic cutting machine 150, for example, having a particular color or weight in accordance with the cutting options. The user may also purchase any un-owned content used in the project 315 that would otherwise be precluded from cutting.
In some implementations, the design software 100 executes a conversion routine that converts a visual design of a project 315 into a cuttable design for executing a cutting operation on the electronic cutting machine 150. The conversion routine determines cutting paths for various image lines (e.g., Bezier lines) of the visual design of the project 315 to create a substantial similar cut design. For example, the conversion route may create cuts of various thickness and/or depth to achieve a look substantially similar to the displayed design (e.g., a photo). The conversion routine may merge cutting paths or image lines within a threshold distance of each other into one cut path or image line. The threshold distance may be set by the user or determined based on cutting material type and/or thickness. For example, for typical 20 lb. paper, the threshold distance may be 0.2 mm for merging multiple cutting paths corresponding to image lines into one cutting path. The conversion routine may use Bezier lines forming the design to determine cutting paths. Each Bezier line of the design may be a cutting path and Bezier lines within a threshold distance of each may be merged into one cutting path. The conversion routine can select one of many Bezier lines within an image region having a threshold size to represent all or part of that region. A selected Bezier line can then be used as a cutting path having a set width (as by the width of a selected cutting tool) determined by the user or the conversion program for a particular design region. In some implementations, cutting paths are extrapolated from all or select Bezier lines. Some factors that may be considered during an extrapolation operation include cutting material (type, thickness, etc.) and cutting tool. The conversion routine may also introduce over-cuts (e.g., past an image line end point to make a full cut), under-cuts (e.g., cutting short of an image line end point), angled cuts, and custom cutting paths (e.g., to achieve cutting turns, acute angles, etc.) to achieve cutting a design that substantially resembles a displayed image of the design.
Referring to
When a user initiates a cutting operation or executes an exploded view operation 720, the composite image 1400 is exploded into the non-overlapping component images 1410 for cutting and later assembly, as shown in
In some examples, the user may recolor, flood fill, paint, shade, texture, other otherwise alter all or parts of the composite image 1400, layer 710, and/or any of the corresponding component images 1410 so as to customize the look of the image(s) 1400, 1410. In shading, for example, the user may altering the color of raster art to make it a different color while maintaining the shading of the raster art. In texture filling, the user may remove the raster art from inside a vector border and replacing it with a pattern.
Referring again to
Table 1 provides example use cases that illustrate various operations that can be performed on composite images 1400 (full and semi-composite state of the composite image 1400) and/or component images 1410. Other uses are possible as well. In some examples, the user may wish to execute a machine operation, such a print operation, a cut operation, or a print and cut operation from the design software 100 to realize a design in physical form. The user may also execute one or more image manipulation operations on the composite images 1400 (full and semi-composite state of the composite image 1400) and/or component images 1410 before executing the machine operation.
The user may alter or manipulate the image in any number of ways, including, but not limited to: sizing, flipping, rotating, shading, filling, painting, skewing, patterning, etc.
Additional details on image layering and other features combinable with this disclosure can be found in U.S. Provisional Patent Application Ser. No.: 61/178,074, filed on May 14, 2009 and having Attorney Docket No.: 216683-124675 as well as U.S. Provisional Patent Application Ser. No.: 61/237,218, filed on Aug. 26, 2009 and having Attorney Docket No.: 216683-127958. The disclosures of these prior applications are considered part of the disclosure of this application and are hereby incorporated by reference in their entireties.
The club portion 1500 may also include a themed project/template portion 1520 that includes one or more themed projects/templates 1522. The themed projects/templates 1522 include an initial layout or design of glyphs 455 or placeholders for glyphs 455 for later customization and/or completion by the user. Examples of themes for the themed projects/templates 1522 include baby books, boy books, girl books, cookbooks, photo books, family history books, planners, vacation books, educational books, etc.
In some implementations, the members can modify existing or create their own themed projects/templates 1532 and publish them to a club projects portion 1530 of the design software 100. Club members can access the club projects portion 1530 to view the published member projects/templates 1532, which may be offered for sale by the creators. The design software 100 may assess a service fee for all sales of member projects/templates 1532 from one member to another. Moreover, the design software 100 may offer purchased access to collections of glyphs 455 used in the themed projects/templates 1522 and/or the published member projects/templates 1532.
Referring again to
Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms “machine-readable medium” and “computer-readable medium” refer to any computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term “machine-readable signal” refers to any signal used to provide machine instructions and/or data to a programmable processor.
Implementations of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer readable medium for execution by, or to control the operation of, data processing apparatus. The computer readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more of them. The term “data processing apparatus” encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. A propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus.
A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio player, a Global Positioning System (GPS) receiver, to name just a few. Computer readable media suitable for storing computer program instructions and data include all forms of non volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
Implementations of the subject matter described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described is this specification, or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet.
The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
While this specification contains many specifics, these should not be construed as limitations on the scope of the invention or of what may be claimed, but rather as descriptions of features specific to particular embodiments of the invention. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable sub-combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a sub-combination or variation of a sub-combination.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the disclosure. Accordingly, other implementations are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results.
This U.S. patent application claims priority under 35 U.S.C. §119(e) to U.S. Provisional Patent Application 61/175,429, filed on May 4, 2009. The disclosures of this prior application is considered part of the disclosure of this application and is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61175429 | May 2009 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 13969178 | Aug 2013 | US |
Child | 15798049 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12773489 | May 2010 | US |
Child | 13969178 | US |