System and method for searching similar CAD files

By rendering and hashing CAD files through a CAD search system, and identifying existing CAD files similar to the new CAD file, the problem of low efficiency in reusing die inserts is solved, and die preparation time and cost are optimized.

CN121532756APending Publication Date: 2026-02-13ESKO SOFTWARE
0 Cites 0 Cited by

Patent Information

Application Number
CN202480047916.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-05-24
Filing Date
2024-05-24
Publication Date
2026-02-13

Smart Images

  • Figure CN121532756A_ABST
    Figure CN121532756A_ABST
Patent Text Reader

Abstract

A computer-aided design (CAD) search system includes a processor, an interface, and a memory containing machine-readable instructions. The instruction embodies a rendered list of CAD files and a hash function resolution. The memory also includes machine-readable instructions that configure the CAD search system to perform functions. First, a queriable CAD file is received via an interface. Second, the queried CAD file is rendered into a CAD rendering that includes rasterized channels rendered according to addressable elements of the queried file. The addressable elements are rendered into rasterized channels at a resolution that matches the hash function resolution. Third, a search hash is calculated based on the CAD rendering. And fourthly, comparing the search hash with a target hash of a target CAD file in the rendered CAD file list. And 5, returning the target CAD file to the interface according to a comparison result.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-reference to related applications This application claims priority to U.S. Patent Application No. 63 / 468,747, filed May 24, 2023, entitled “A METHOD TO SEARCH FOR SIMILAR CADFILES,” the contents of which are incorporated herein by reference in their entirety. Background Technology

[0002] Die cutting, such as using die-cutting templates or steel ruler dies (SRD), is well known in the art for cutting shapes from corrugated or flat plastic sheets or cardboard, as well as from other materials such as gasket materials, particleboard, fabrics and felt, foam (open cell or closed cell), natural and synthetic rubber, thin metals (i.e., 0.005 or smaller), wood (e.g., cork), acrylic resins, composite materials, fiberglass, magnets, sponges, or any other flat material suitable for cutting found in the industry.

[0003] The manufacture of packaging, particularly consumer product packaging made from sheet media such as cardboard, plastic, etc., typically involves a die-cutting process. The sheet material cutter (SRD) comprises sharp steel blades or cutters that are bent and patterned. In some positioning between adjacent blades that define the waste portion, the SRD may include foam or other resilient material that is compressed as the die cutters penetrate the sheet media, but has sufficient recoil force to at least partially expel the waste material deployed between adjacent cutters when the die is retracted. The blades are typically held in position by mounting them onto a backing material such as plywood, acrylic, etc. As known in the art, the die in use can be compressed against a backing plate having grooves corresponding to each blade configured to penetrate the sheet material. The die and backing plate are then placed in a press, where the sheet material to be cut is deployed between them, and the die and backing plate are combined with sufficient compressive force to stamp out the cut shape, and then retracted to release the cut sheet. The sheet can then be further processed and / or cut into shape by peeling off waste, folding, and gluing.

[0004] The term "conversion" is generally understood to be the process used to convert "board" (or panels or sheets of starting material such as corrugated cardboard) into packaging units, and can include printing, cutting, folding and / or gluing operation steps. In addition to the use of SRD in a platform press, the SRD structure can also be used in a rotary cutter design. Packaging can also be produced using a so-called flexible board print folder gluer (FFG), where a long web of paper travels through a corrugator and is bonded to form a web of corrugated material. The web of corrugated material is scored in the machine direction using a scoring wheel and a slot to reduce the web into sheets of the desired size for later processing. The sheets are fed into the FFG where printing, slotting and cross-scoring are applied to the sheets and the sheets are folded.

[0005] Once the blades are set, they are typically reused multiple times when cutting shapes from a die cut of board in order to produce packaging or point of sale displays. However, once the shapes of a given pattern are cut, the blades used to perform the cutting generally retain their shape. In order to increase reusability and reduce the time spent setting the blades, the preparer of the die will utilize previously set die blades for a prior project. Therefore, in order to maximize the efficiency of die blade reuse, there is a need in the industry to assist operators in identifying existing die blades in their die preparation facility that will be usable in a new project with minimal adjustment.

[0006] Designers of packaging and displays typically use computer aided design (CAD) software to create the designs to be manufactured, and these same CAD design files are used by the die making system when manufacturing the dies. ArtiosCAD™ software manufactured by the assignee of the present invention, Esko Software BVBA, is a popular such CAD program targeted at the packaging industry. The CAD design files, particularly for die cutting applications, define the positions at which the board must be cut, and the positions at which the board must be folded in order to produce a packaging unit. These positions are associated with both cutting blades and folding blades around which the packaging unit is folded and shaped, and the blades must be identified and bent by the operator of the die press, unless the operator is already aware of existing blades that can make the same cut or fold with minimal adjustment.

[0007] Therefore, there is a need in the art to assist die press operators in identifying existing similar blades for use in a new packaging project, and to remedy such inefficiencies.

[0008] Likewise, generally, packaging CAD files represent cut shapes that are to be used to cut and crease most carton materials according to lines in a two-dimensional description. CAD "designs" typically describe the shape of a box, a label shape, or some other item to be cut and folded from sheet material. CAD "layouts" describe the manufacturing tools that will be used to produce the items described by the CAD designs. CAD layouts are generated from CAD designs by repeating the CAD designs according to some optimized pattern and then adding manufacturing tools such as rubbers, stripping tools, etc.

[0009] For many years, die makers and carton converters have built libraries of thousands to millions of CAD designs and layouts. These libraries are often of limited structure. For example, they can be organized in folders and can have set attributes in fields such as "customer" or "brand". The library can also indicate the type of substrate material that the CAD design or layout is suitable for. Most of the time, this is "hard" logic. The design or layout fits in a hard category.

[0010] Packaging management systems such as Esko® WebCenter™ software, for example, have extended library capabilities to sort CAD files, manage access, search using the hard logic mentioned above, show files in a viewer, manage change requests, etc. The search capabilities are typically limited to the hard logic.

[0011] Therefore, there is a need in the art to search CAD files based on defined criteria in general. SUMMARY

[0012] One aspect of the invention is a computer-aided design (CAD) search system comprising a processor and an interface coupled to the processor. The CAD search system also comprises a memory coupled to the processor, and the memory comprises machine-readable instructions embodying a list of rendered CAD files and a hash function resolution. The memory also comprises machine-readable instructions embodying programming in the memory, wherein execution of the programming by the processor configures the CAD search system to perform functions. The CAD search system receives a queryable CAD file via the interface. The CAD search system renders the queryable CAD file into a perceptual search CAD rendering comprising a primary perceptual rasterization channel rendered from a primary addressable element of the queryable file, the primary addressable element rendered into the primary perceptual rasterization channel at a perceptual resolution matching the hash function resolution. The CAD search system computes a perceptual search hash based on the perceptual search CAD rendering. The CAD search system compares the perceptual search hash to a perceptual target hash of a perceptual target CAD file in the list of rendered CAD files. Based on the comparison of the perceptual search hash to the perceptual target hash, the CAD search system returns the perceptual target CAD file to the interface.

[0013] Another aspect of the present invention is a computer-implemented method for querying based on a queryable CAD file, the queryable CAD file defining a geometry of at least one individual periphery to be cut with a cutting tool for use in a manufacturing process for making an article from a raw material. The method comprises rendering, with a processor of a computer, the queryable CAD file into a perceptual search CAD rendering, the perceptual search CAD rendering comprising a primary perceptual rasterized channel rendered from a primary addressable element of the queryable file, the primary addressable element rendered into the primary perceptual rasterized channel at a perceptual resolution matching a resolution of a hash function. The method also comprises computing, with the processor, a perceptual search hash based on the perceptual search CAD rendering. The method further comprises comparing, with the processor, the perceptual search hash to a perceptual target hash of a perceptual target CAD file in a list of rendered CAD files. The method still further comprises returning, to an interface, the perceptual target CAD file based on the comparison of the perceptual search hash to the perceptual target hash.

[0014] Still another aspect of the present invention comprises an article of manufacture comprising a non-transitory computer readable medium programmed with computer program code readable by a computer for commanding the computer to perform a method as described herein.

[0015] Yet another method for finding the top x match results for a CAD design or layout is based on a queryable CAD file defining a geometry of at least one individual periphery to be cut with a cutting tool for use in a manufacturing process for making an article from a raw material. The method comprises the steps of a) pre-computing geometric measures for each of a plurality of CAD designs or layouts in a library and storing the computed geometric measures in computer memory, and b) accepting or computing target values for the geometric measures from an input file. In step c), an iteration is performed over the library or a portion of the library, computing a total distance or score for each library item based on a total distance by computing a sub-distance for each of the geometric measures relative to the corresponding target measure using a distance function and combining the sub-distances to form the total distance, wherein a lower value of the total distance or a higher value of the score indicates a better match of the library item relative to the input file target values. In step d), the top x match results having the highest scores or lowest total distances are returned. An additional step of hard filtering the library or a portion of the library, such as performing a boundary check that excludes library items whose target values deviate from the input file target values by more than a predetermined percentage, can be performed between step b) and step c).

[0016] In an embodiment, after step c), another sub-distance is computed based on the visual similarity computed from the rendered images, said rendered images being converted into fingerprints consisting of numerical arrays, this sub-distance being determined from a mathematical distance function between fingerprints, and the computed sub-distance is added to the total distance of step c).

[0017] Yet another method for finding the top x results of matching designs or layouts includes the steps of: a) pre-computing geometric metrics for each of a plurality of computer-aided design (CAD) designs or layouts in a library and search-indexing the computed geometric metrics against the CAD designs or layouts; and b) accepting or computing target values for the geometric metrics from an input file and optionally a set of hard filters. Step c) includes using the query in the search index to i) immediately exclude library items that do not match the hard filters or have a distance from the input file target values greater than a predetermined threshold distance; ii) set a score function that scores better when the deviation between the geometric metrics and the input file target values is smaller; and iii) return the top x results of matching designs or layouts according to the score function.

[0018] Yet another method for finding the top x results of matching designs or layouts includes the steps of: a) pre-computing geometric metrics for each of a plurality of CAD designs or layouts in a library and search-indexing the computed geometric metrics against the CAD designs or layouts, wherein the search index stores each of the computed geometric metrics as a vector, where each coordinate represents one of the computed geometric metrics; b) accepting or computing target values for the geometric metrics from an input file and converting the target values into a vector organized in the same way as the vectors of the plurality of CAD designs or layouts; c) using a k-nearest neighbor search to find the x closest matching results of each vector to the target vector; and d) returning the corresponding CAD designs or layouts represented by the found vectors.

[0019] Another method for finding the top x results of matching layouts or matching designs to layouts or matching layouts to designs includes a) pre-computing geometric measures of each of a plurality of CAD designs and layouts in a library and search indexing the computed geometric measures; b) for CAD layouts in the library, extracting CAD designs, computing statistical measures of the CAD designs, and storing the computed statistical measures as additional documents in the index, keeping references to the CAD layouts from which the CAD designs were extracted; c) accepting or computing target values of geometric measures from an input file; d) iterating over the library or a portion of the library, computing a total distance or score for each library item based on the total distance by computing a sub-distance of each of the geometric measures relative to the corresponding target measure and combining the sub-distances to form the total distance, where lower values of the total distance or higher values of the score indicate better matches of the library item relative to the input file target values; and e) returning the top x library items with the highest scores or lowest total distances.

[0020] For each extracted CAD design, in addition to or instead of the extracted CAD design, the CAD layout from which the CAD design was extracted can be returned.

[0021] A computer-aided design (CAD) search system including a processor, an interface coupled to the processor, and a memory coupled to the processor can be provided with a memory including machine-readable instructions embodying a list of CAD files and instructions for causing the process to perform the method steps of each of the methods as described herein. BRIEF DESCRIPTION OF DRAWINGS

[0022] Figure 1 is a schematic illustration of a computer-aided design search system embodied in a CAD search device having a plurality of attached interfaces.

[0023] Figure 2 is a schematic illustration of a CAD search system embodied in a CAD search device connected to a user device and an interface through a wide area network (WAN).

[0024] Figure 3 is a schematic illustration of a process by which a CAD file is rendered and hashed to create a perceptual search hash and a cryptographic search hash of the CAD file. DETAILED DESCRIPTION

[0025] Figure 1is a schematic illustration of a computer-aided design (CAD) search system 100 embodied in a CAD search device 101 having a plurality of attached interfaces 105A-105B. The interfaces 105A-105B are conventional digital computing interfaces capable of accepting and returning CAD files, particularly a queryable CAD file 107, target CAD files 115A-115D, or a storable CAD file 137. The interfaces 105A-105B can be capable of displaying information and include a digital display, and can be capable of accepting specific user input and include a touch screen, keyboard, or mouse. However, the interfaces 105A-105B can be simple file interfaces, such as a USB port or a file transfer protocol (FTP) network port. The interfaces 105A-105B can also be configured to return information related to specific die knives 129A-129E (or other information related to CAD files or printing or converting jobs).

[0026] The interfaces 105A-105B accept CAD files in a specific format. These specific CAD files are designed to command a die press operator to place places of cutting or places of folding in a sheet in order to produce a package. CAD files in this format are queryable CAD files 107. However, all CAD files within the CAD search system 100 (such as the target CAD files 115A-115D) and all CAD files intended to be placed within the CAD search system 100 (such as the storable CAD file 137) are also in a similar format as the queryable CAD files 107.

[0027] The queryable CAD file 107 is a CAD file for which a user or operator is seeking an existing die knife 129A-129D to facilitate a die press operator creating a package described in the queryable CAD file 107 from a sheet. The queryable CAD file 107 includes at least two layers of instructions: a layer of primary addressable elements 133 that describe places of cutting in a sheet for a die press operator to cut the sheet properly into a package. The queryable CAD file 107 also includes a layer of secondary addressable elements 135 that describe places of folding in a sheet for a die press operator to fold the sheet properly into a package.

[0028] The CAD search system 100 is configured to identify existing CAD files that have similar cut and fold patterns to a new CAD file - once any existing similar CAD files are identified, an operator of a die press can locate the die knives utilized in cutting or folding those old similar CAD files and prepare those previously utilized die knives for cutting and folding a package as described by the new CAD file. By reusing and adapting existing die knives to produce a new package, a significant amount of time and cost is saved in setting up new die knives. To facilitate this, the CAD search system 100 includes a digital processor 103 and a digital memory 107 to store, in part, those similar target CAD files 115A-115B that closely match the queryable CAD files 107.

[0029] The memory 107 includes a number of objects, variables, or records that are digitally stored within the memory 107. The memory 107 includes programming 113 that instructs the processor 113 as to how to accept information from and send information to the interfaces 105A-105B, how to process the queryable CAD files 107 or the storable CAD files 137, and how to search the queryable CAD files 107 for matching results and return meaningful results. The programming can also include any other instructions required to implement the CAD search system within the CAD search device 101 that embodies the processor 103, the interfaces 105A-105B, and the memory 107.

[0030] To properly search for matching target CAD files 115A-115B, the CAD search system 100 searches for CAD files that match the queryable CAD files 107 at two different levels of granularity: first, at a low level of granularity, or perceptual level of granularity; and second, at a high level of granularity, or cryptic level of granularity. The perceptual level of granularity is stored as a hash function resolution 111A and is a level of resolution that provides a perceptual understanding of where cuts and folds will be placed by a given CAD file. For example, if a CAD file typically has a resolution of 2000 pixels by 2000 pixels, then the hash function resolution 111A would reduce the resolution of that CAD file to 256 pixels by 256 pixels. This reduced or lower resolution allows more CAD files to appear to share more similarities, which is beneficial in identifying used die knives for reuse.

[0031] The CAD search system 100 also performs searches at a high level of granularity, which is stored as a cryptic resolution 111B. The cryptic resolution 111B is a very high resolution, as high as or higher than the resolution that a die press is capable of. The cryptic resolution 111B can also preferably be higher than a customer tolerance resolution 111C, which is the lowest resolution at which an error is tolerated. When an instruction indicates to cut at pixel (10, 21), the error would be to cut at pixel (10, 20) - at a higher precision, if cutting at pixel (10.000, 21.000) when the instruction indicates to cut at pixel (10.000, 21.000) is acceptable, then the resolution is higher than required to satisfy the customer tolerance resolution 111C. The cryptic resolution 111B is as high as or higher than the resolution of the die press, so that all CAD files used by the die press have a consistent resolution. For example, if the cryptic resolution 111B is 10,000 pixels by 10,000 pixels, then a CAD file at a resolution of 1,000 pixels by 1,000 pixels can be upscaled to 10,000 pixels x 10,000 pixels to be consistently comparable to other CAD files within the CAD search system 100.

[0032] The CAD search system 100 accepts a queryable CAD file 107 provided by an operator and begins the search process. First, the CAD search system 100 renders the primary addressable elements 133 or cut instructions at the hash function resolution 111A. Doing so creates a primary rasterized pass 119A of cut instructions rendered at the hash function resolution 111A. The primary rasterized pass 119A is stored within a search CAD rendering 117A, which will contain rendered components of the queryable CAD file rendered at the hash function resolution 111A. The search CAD rendering 117A has a consistent resolution 123A for all passes 119A, 121A within the search CAD rendering 117A, and the resolution 123A matches the hash function resolution 111A.

[0033] If the queryable CAD file 107 includes fold instructions in the secondary addressable elements 135, the secondary addressable elements 135 are also rendered into secondary rasterization channels 121A at the hash function resolution 111A and stored within the search CAD rendering 117A. Thus, the search CAD rendering 117A is a rendering of the queryable CAD file 107 at the hash function resolution. If the queryable CAD file also includes additional addressable elements or channels, such as inking or coloring information, that information can be excluded from the search CAD rendering 117A and need not be rendered, as that information will not be used in the search process.

[0034] Once the search CAD rendering 117A is complete, the search CAD rendering 117A is provided to the hash function to generate a search hash 125A. The search hash 125A can be configured to provide similar hash values when similar CAD renderings are provided to the hash function, although any hashing function is contemplated. It is contemplated that the primary rasterization channels 119A and the secondary rasterization channels 121A can be provided to the hash function together or separately, and that the container search CAD rendering 117A can not be used for hashing. The hash function can concatenate the individual hash of the primary rasterization channels 119A with the hash of the secondary rasterization channels 121A. In queryable CAD files 107 that do not include cut information or fold information, it is contemplated that the hashing function has a method for nonetheless gracefully hashing the search CAD rendering 117A: for example, if the queryable CAD file does not include fold information, the hashing function can treat the fold channel at the appropriate resolution containing zero folds as the secondary rasterization channels 121A.

[0035] Once the search hash 125A is generated, the search hash 125A is compared to the target hashes 127A-127D generated from the rendered CAD file list 109 in the memory 107 at the hash function resolution 111A. For each target CAD file 115A-115D, the rendered CAD file list 109 includes the target hashes 127A-127D generated from rendering the target CAD files 115A-115D at the hash function resolution 111A, as well as target hashes 127E-127H made from a different rendering of the target CAD files 115A-115D at the cryptographic resolution 111B.

[0036] Target CAD files 115A-D are CAD files that have been processed and stored within CAD search system 100. Typically, target CAD files 115A-D are CAD files for which tooling has previously been prepared. In some examples, target CAD files 115A-D are associated with those tooling bits 129A-E, and in further examples, CAD search system 100 associates those tooling bits 129A-E with tooling bit locations 131A-E. Tooling bits 129A-D in CAD search system 100 include some identifier that allows a skilled operator in the field of operating a die press to identify the physical tooling bit associated with that identifier for reuse in a new cutting or folding project described by queryable CAD file 107. Tooling bit locations 131A-E can further assist an operator in identifying and locating tooling bits 129A-E that will be available for cutting or folding a new project described by queryable CAD file 107, but tooling bit locations 131A-E can also be used as a search filter to ignore certain tooling bits 129A-E that might otherwise match. For example, if CAD search system 100 serves an entire factory, it can not be worth for an operator to move from one wing of the factory to another to obtain a single helpful tooling bit 129C: it would be better to serve the operator by simply utilizing a new tooling bit. In distributed implementations of CAD search system 100, tooling bit 129C can be in a different building, country, or continent, and search results that return such a distant tooling bit 129C would be unhelpful.

[0037] Once target hashes 127A-H are calculated, rendered CAD file list 109 need not store the renderings of target CAD files 115A-D. In some embodiments, target CAD files 115A-D can not even be stored: only tooling bits 129A-E and tooling bit locations 131A-E can be associated with target hashes 127A-H: in such examples, a search is performed, and an operator can only need matching tooling bits 129A-E: the operator can not need target CAD files 115A-D, which were the basis for creating tooling bits 129A-E.

[0038] If the search hash 125A matches or nearly matches the target hash 127A of the target hashes 127A-127D, the CAD search system 100 will retrieve the relevant information (the target CAD file 115A; the die knives 129A, 129E; and the die knife positions 131A, 131E) and return the relevant information as search results to the operator at the interface 105A based on the input queryable CAD file 107. Because multiple die knives 129A, 129E can be associated with the same target CAD file 115A, the size of the search results can vary. Although not depicted, it is possible that multiple target CAD files 115A-115D can be associated with the same die knives 129A-129E if the die knives 129A-129E are used to convert multiple CAD files into a packaging unit.

[0039] The same search process can also be performed to generate a search hash 125B for the queryable CAD file 107 at the cryptic resolution 111B. First, the CAD search system 100 renders the primary addressable elements 133 or the cutting instructions at the cryptic resolution 111B. Doing so creates a primary rasterized pass 119B of the cutting instructions rendered at the cryptic resolution 111B. This primary rasterized pass 119B is stored within a search CAD rendering 117B that will contain the rendered components of the queryable CAD file 107 rendered at the cryptic resolution 111B. The search CAD rendering 117B has a uniform resolution 123N for all passes 119B, 121B within the search CAD rendering 117B, and the resolution 123B matches the cryptic resolution 111B.

[0040] If the queryable CAD file 107 includes folding instructions in the secondary addressable elements 135, the secondary addressable elements 135 are also rendered into a secondary rasterized pass 121B at the cryptic resolution 111B and stored within the search CAD rendering 117B. Thus, the search CAD rendering 117B is a rendering of the queryable CAD file 107 at the cryptic resolution 111B. If the queryable CAD file 107 also includes additional addressable elements or passes (such as inking or coloring information), this information can be excluded from the search CAD rendering 117B and need not be rendered because it will not be used in the search process.

[0041] Once the search CAD rendering 117B is complete, the search CAD rendering 117B is provided to a hash function to generate a search hash 125B. When similar CAD renderings are provided to the hash function, the hash function can be configured to provide similar hash values, but any hashing function is contemplated. The hash function used to generate the search hash 125B can be a different hash function than the hash function used to generate the search hash 125A. It is contemplated that the primary rasterization pass 119B and the secondary rasterization pass 121B can be provided to the hash function together or separately, and that the container search CAD rendering 117B can not be used for hashing. The hash function can concatenate the individual hash of the primary rasterization pass 119B with the hash of the secondary rasterization pass 121B. In a queryable CAD file 107 that does not include cut information or fold information, it is contemplated that the hashing function has a method for nonetheless properly hashing the search CAD rendering 117B: for example, if the queryable CAD file 107 does not include fold information, the hashing function can attribute the fold pass at the appropriate resolution that contains zero folds to the secondary rasterization pass 121B.

[0042] Once the search hash 125B is generated, the search hash 125B is compared to the target hashes 127E-127H made at the cryptic resolution 111B of the list of rendered CAD files 109 in the memory 107.

[0043] If the search hash 125A matches or nearly matches the target hash 127A of the target hashes 127A-127D, the CAD search system 100 will take the relevant information (the target CAD file 115A; the die knife 129A, 129E; and the die knife positioning 131A, 131E) and return the relevant information as search results to the operator at the interface 105A based on the input queryable CAD file 107. Because multiple die knives 129A, 129E can be associated with the same target CAD file 115A, the size of the search results can vary. Although not depicted, it is possible that multiple target CAD files 115A-115D can be associated with the same die knife 129A-129E if the die knife 129A-129E is used to convert multiple CAD files into a packaging unit. The same target CAD files 115A-115D and die knives 129A-129E can be returned by a search based on both the search hash 125A and the search hash 125B. In such a case, the duplicate results can be ignored. The CAD search system 100 can provide the results based on the search hash 125B first, which is of higher resolution: these results are more likely to be exact matches, and thus more likely to be useful as results to the operator, the die knives. For example, a cardboard frame that is six inches on each face, with a two inch flange and a scalloped corner can be a popular frame type - thus, exact matches can be available, and the die knives can already be organized to cut and fold such cardboard frames.

[0044] The method for adding a CAD file, such as storable CAD file 137, to rendered CAD file list 109 is similar to the process of querying rendered CAD file list 109 using queryable CAD file 107. First, primary addressable elements 133 are rendered into primary rasterization channel 119A for low resolution perceptual hashing at hash function resolution 111A. Second, primary addressable elements 133 are rendered into primary rasterization channel 119B for high resolution cryptographic hashing at cryptographic resolution 111B. Third, secondary addressable elements 135 are rendered into secondary rasterization channel 121A for low resolution perceptual hashing at hash function resolution 111A. Fourth, secondary addressable elements 135 are rendered into secondary rasterization channel 121B for high resolution cryptographic hashing at cryptographic resolution 111B. Primary rasterization channel 119A is hashed together with secondary rasterization channel 121A to form a low resolution perceptual hash equivalent to search hash 125A. Primary rasterization channel 119B is hashed together with secondary rasterization channel 121B to form a high resolution cryptographic hash equivalent to search hash 125B. New hashes 125A-125B are added to rendered CAD file list 109 as a key for storable CAD file 137, which is also stored in rendered CAD file list 109. When stored in rendered CAD file list 109, extraneous information can be removed from storable CAD file 137, such as channels relating to color or gluing. Finally, the die knives and their positioning for converting a board into a packaging unit based on storable CAD file 137 are also stored in rendered CAD file list 109 as an association with the storable CAD file.

[0045] As known in the art, a CAD file, such as a 2D file corresponding to an SRD design, can be stored as a set of instructions corresponding to a vector-based geometric definition ("geometric vector") for each line or each feature in the file. The geometric vector can be stored in computer code, for example, as a line between a first starting point and a second ending point, or an arc having a defined center point, radius, and starting and ending points. The instructions corresponding to each line or each feature can be stored in any data structure known in the art, such as, for example, a tree data structure.

[0046] Thus. Figure 1A computer-aided design (CAD) search system 100 is depicted that includes a processor 103, an interface 105A coupled to the processor 103, and a memory 107 coupled to the processor 103. The memory 107 includes machine-readable instructions embodying a list of rendered CAD files 109, a hash function resolution 111A, and machine-readable instructions embodying programming 113 in the memory 107, where the programming 113 is executed by the processor 103 to configure the CAD search system 100 to perform functions. The CAD search system 100 receives a queryable CAD file 107 via the interface 105A. The CAD search system 100 renders the queryable CAD file 107 into a perceptual search CAD rendering 117A that includes primary perceptual rasterization channels 119A rendered from primary addressable elements 133 of the queryable file 107, the primary addressable elements 133 rendered into the primary perceptual rasterization channels 119A at a perceptual resolution 123A that matches the hash function resolution 111A. The CAD search system 100 computes a perceptual search hash 125A based on the perceptual search CAD rendering 117A. The CAD search system 100 compares the perceptual search hash 125A to a perceptual target hash 127A of a perceptual target CAD file 115A of the list of rendered CAD files 109. Based on the comparison of the perceptual search hash 125A to the perceptual target hash 127A, the CAD search system 100 returns the perceptual target CAD file 115A to the interface 105A.

[0047] In some examples, the primary addressable elements 133 define a cut line.

[0048] In some examples, the perceptual search CAD rendering 117A further includes secondary perceptual rasterization channels 121A rendered from secondary addressable elements 135 of the queryable file 107, the secondary addressable elements 135 rendered into the secondary rasterization channels 121A at the perceptual resolution 123A.

[0049] In some examples, the secondary addressable elements 135 define a crease line.

[0050] In some examples, the programming 113 executed by the processor 103 further configures the CAD search system 100 to perform the function. The CAD search system 100 renders the queryable CAD file 107 into a cryptosearch CAD rendering 117B, the cryptosearch CAD rendering 117B including a primary cryptoraster channel 119B rendered from primary addressable elements 133 of the queryable file 107, the primary addressable elements 133 rendered into the primary cryptoraster channel 119B at a cryptoresolution 111B that matches a customer allowable resolution 111C. The CAD search system 100 computes a cryptosearch hash 125B based on the cryptosearch CAD rendering 117B. The CAD search system 100 compares the cryptosearch hash 125B to a cryptotarget hash 127E of a cryptotarget CAD file 115A of the rendered CAD file list 109. Based on the comparison of the cryptosearch hash 125B to the cryptotarget hash 127E, the CAD search system 100 returns the cryptotarget CAD file 115A to the interface 105A.

[0051] In some examples, the cryptosearch CAD rendering 117B further includes a secondary cryptoraster channel 121B rendered from secondary addressable elements 135 of the queryable file 107, the secondary addressable elements 135 rendered into the secondary cryptoraster channel 121B at the cryptoresolution 111B.

[0052] In some examples, the programming 113 executed by the processor 103 further configures the CAD search system 100 to perform the function. The CAD search system 100 determines the customer allowable resolution 111C based on a maximum precision of a foundry system configured to manufacture a foundry for use in a die press and based on the queryable CAD file 107.

[0053] In some examples, the programming executed by the processor 103 further configures the CAD search system 100 to perform the function. The CAD search system 100 determines the customer allowable resolution 111C based on a resolution of the queryable file 107.

[0054] In some examples, the programming 113 executed by the processor 103 further configures the CAD search system 100 to perform the function. The CAD search system 100 converts the queryable file 107 from a vector format into a rasterized format.

[0055] In some examples, the queryable file 107 defines a geometry of at least one individual periphery to be cut with a cutting tool for use in a manufacturing process to make an article from a raw material.

[0056] In some examples, each target file 115A-D in the rendered list of files 109 is associated with at least one die cutter 129A-E.

[0057] In some examples, a die cutter 129A of the at least one die cutter 129A-E is associated with a cutter position 131A. The programming 113 executed by the processor 103 further configures the CAD search system 100 to perform a function. The perceptual target CAD file 115A is returned to the interface 105A based on a comparison of the perceptual search hash 125A to the perceptual target hash 127A and a comparison of the perceptual cutter position 131A of the perceptual cutter 129A associated with the perceptual target CAD file 115A.

[0058] In some examples, a die cutter 129B of the at least one die cutter 129A-D is associated with a cutter position 131B and a die cutter identifier 129B. The programming executed by the processor further configures the CAD search system 100 to perform a function. The die cutter identifier 129B is returned to the interface 105A based on a comparison of the perceptual search hash 125A to the perceptual target hash 127B and a comparison of the perceptual cutter position 131B of the perceptual cutter 129B associated with the perceptual target CAD file 115B.

[0059] In some examples, the programming 113 executed by the processor 103 further configures the CAD search system 100 to perform a function. The CAD search system 100 receives a storable CAD file 137 via the interface 105B. The CAD search system 100 renders the storable CAD file 137 into a perceptual source CAD rendering that is structurally equivalent to the perceptual search CAD rendering 117A, including a primary perceptual source rasterization channel that is structurally equivalent to the primary rasterization channel 119A, rendered from primary source addressable elements of the storable file, rendering the primary addressable source elements into the primary perceptual source rasterization channel at the hash function resolution 111A. The CAD search system 100 computes a perceptual source hash based on the perceptual source CAD rendering, the perceptual source hash being structurally equivalent to the perceptual search hash 125A. The CAD search system 100 indexes the storable CAD file 137 in the rendered list of CAD files 109 based on the perceptual source hash.

[0060] In some examples, the perceptual source CAD rendering further includes a secondary perceptual source rasterization channel rendered from secondary source addressable elements of the storable file 137, the secondary perceptual source rasterization channel being structurally equivalent to the secondary rasterization channel 121A, the secondary source addressable elements being structurally equivalent to the secondary addressable elements 135, rendering the secondary addressable source elements into the secondary rasterization channel at the hash function resolution 111A.

[0061] In some examples, the programming 113 executed by the processor 103 further configures the CAD search system 100 to perform a function. The CAD search system 100 renders the storable CAD file 137 into a cryptic source CAD rendering, the cryptic source CAD rendering including a primary source cryptic rasterization channel rendered from primary source addressable elements of the storable file 137, the primary source cryptic rasterization channel being structurally equivalent to the primary rasterization channel 119B, the primary source addressable elements rendered into the primary source cryptic rasterization channel at a cryptic resolution 111B matching the customer allowable resolution 111C. The CAD search system 100 computes a cryptic source hash that is structurally equivalent to the search hash 125B based on the cryptic source CAD rendering. The CAD search system 100 indexes the storable CAD file 137 in the rendered CAD file list 109 based on the cryptic source hash.

[0062] In some examples, the cryptic source CAD file further includes a secondary cryptic source rasterization channel rendered from secondary source addressable elements of the storable file 137, the secondary cryptic source rasterization channel being structurally equivalent to the secondary rasterization channel 121B, the secondary source addressable elements rendered into the secondary source cryptic rasterization channel at the cryptic resolution 111B.

[0063] The act of uploading the queryable CAD file 107 and the storable CAD file 137 can be the same act: this means that an operator can upload a CAD file, have a search hash generated, have search results returned to the operator, and the CAD file stored in the rendered CAD file list 109 with the search hash generated for search purposes used as the target hash for storage and future search purposes. Thus, in some examples, the queryable CAD file 107 can be the storable CAD file 137.

[0064] Figure 2 is a schematic illustration of the CAD search system 200 embodied in a CAD search device 201 connected to a user device 202 and the interface 105A over a wide area network (WAN) 255. In this example, the contents of the memory 107 are partitioned across the memory 207A at the CAD search device 201 and the user device 202. The CAD search device 201 maintains the rendered CAD file list 109, as well as the various resolutions 111A-C at which it renders CAD files. When performing a search, the CAD search device 201 also temporarily holds the search hashes 125A-125B during the search time.

[0065] The user device 202 has all the memory objects required to create the search hashes 125A-125B for sending to the CAD search device 201, such as the queryable file 107 and the two search CAD renderings 117A-B. If the user device 202 uploads the storable CAD file 137 and prepares the hashes 125A-125B, the CAD search device 201 can also store the storable CAD file 137.

[0066] This is just one example of a distributed CAD search system 200: in other examples, all the memory objects used to create the search hashes 125A-125B can be stored in the CAD search device 201. The CAD search device 201 can serve multiple user devices 202. Each die press in a network can have a user device 202, while utilizing a single CAD search device 201. The die knife positions 131A-131E can be extrapolated based on the positions of the user devices 202 that uploaded the corresponding storable CAD files 137.

[0067] Figure 3 is a schematic illustration of a process by which a CAD file 307 is rendered and hashed to create a perceptual search hash 325A and a cryptographic search hash 325B of the CAD file 307. The perceptual search hash 325A and the cryptographic search hash 325B can be used to search the rendered CAD file list 109, or can be used to add a record of the CAD file 307 to the rendered CAD file list 109.

[0068] As in Figure 1 The CAD file 307 includes a primary addressable element 333, which in this example is a cutting instruction. The primary addressable element 333 is rendered into a primary perceptual rasterization channel 319A at the hash function resolution 111A, and into a primary cryptographic rasterization channel 319B at the cryptographic resolution 111B.

[0069] The CAD file 307 also includes a secondary addressable element 335, which in this example is a folding instruction. The secondary addressable element 335 is rendered into a secondary perceptual rasterization channel 321A at the hash function resolution 111A, and into a secondary cryptographic rasterization channel 321B at the cryptographic resolution 111B.

[0070] Although the CAD file 307 includes Figure 3The inner figures depict only the primary addressable elements 333 and the secondary addressable elements 335, but additional addressable elements can be present in the CAD file 307. These additional addressable elements can be unrelated to the die press, such as ink-up instructions, or can be related to the selection of the die knife, such as addressable information indicating a depth of cut. Unrelated addressable elements can be ignored, and useful additional addressable information can be rendered, added to the rendering, and factored into the final computed hash 125A-125B.

[0071] Once all four channels 319A-319B, 321A-321B are rendered, the channels are paired by resolution, such that each rendering has one channel based on the primary addressable elements 333, and one channel based on the secondary addressable elements 335. Once all channels have been grouped by resolution into renderings, there will be a perceptual search CAD rendering 317A of the channels at the hash function resolution 111A, just as there will be a cryptographic search CAD rendering 317B of the channels at the cryptographic resolution 111B. The perceptual search CAD rendering 317A is then hashed into a perceptual search hash 325A, and the cryptographic search CAD rendering is hashed into a cryptographic search hash 325B. In this example, the perceptual search hash 325A is depicted as having the same bit-for-bit length as the cryptographic search hash 325B, however, the two types of hashes 325A-B can not be the same length. In some examples, the cryptographic search hash 325B can be longer, to hold the higher level of resolution present in the cryptographic search CAD rendering 317B. However, if the perceptual search hash 325A is used for exact or near matches, and the cryptographic search hash 325B is used for exact matches, then the perceptual search hash 325A can be longer than the perceptual search hash 325B in order to reveal more detail within the perceptual search CAD rendering 317A, and to allow for the identification of near matches.

[0072] Geometric statistical search method The description herein above generally refers to "visual" searching, meaning finding / sorting CAD files based on visual similarity between a target CAD file and any CAD file in a library. The library can include any collection of CAD designs or CAD layouts that have candidates for finding search results against a target value or similarity to a given CAD design or CAD layout. As referred to herein, a library item can be any member of the library. Typically, a library item can be a CAD file uploaded to a document management system, but the methods described herein are not limited to these types of items. Any other representation from which a geometric metric can be computed or read can be considered a library item.

[0073] Exemplary embodiments use a contrastive language-image pre-training (“CLIP”) algorithm, by which a CAD file is first converted into a 224 x 224 pixel image, after which a CLIP neural network converts the 224 x 224 pixel image into an array of 512 floating point numbers, which can be referred to as, for example, a fingerprint. Using, for example, a cosine similarity function of a knn search or k-nearest neighbors search as defined at https: / / en.wikipedia.org / wiki / K-nearest_neighbors_algorithm, similar images can be efficiently found in a database with many (e.g., millions) of CAD files, each with their own fingerprint. In the following, the method described herein is referred to as a geometric-statistical search method, which provides an alternative to “visual” searching. Both the “visual” searching and the geometric-statistical search method can be used as alternatives, or they can be combined. The geometric-statistical search method uses geometric-statistical data of the CAD files (different geometric-statistical data can be used depending on whether the file is a one-up design or a layout) to determine a similarity score.

[0074] The input to the geometric-statistical search method is a target set (e.g., target values) of CAD statistics (e.g., targets), each of which is assigned a respective weight. The target values represent one value for each metric. Candidate matches in which the geometric metrics are numerically closer to the target values are considered to be better matches.

[0075] The target values can be derived from the input CAD files (for which similar files are to be searched in the library), or from a user interface or other determination mechanism.

[0076] Exemplary target sets of CAD statistics can include the following non-exhaustive options: Ruler length: The total length of the cutting ruler of the design if the design is to be produced as a single one-up.

[0077] Crease length: The total length of the crease ruler of the one-up design.

[0078] Area: The total area of the cut-out frame or item (while still flat).

[0079] Blank width: The width of the bounding frame of the cut-out design.

[0080] Blank height: The height of the bounding frame of the cut-out design.

[0081] Flap count: A flap is a part of a frame that can be folded away from its surrounding flaps. Each flap is largely flat on its own, making an angle with the other flaps by folding over a crease.

[0082] Center of gravity of cut and crease lines: represented by two coordinates (vertical and horizontal) on the flat design image. To support rotation and mirror independence, the center of gravity can be normalized to the lower left quadrant, which way indicates the eccentricity type, rather than just trying to state whether some feature is on the top or bottom (which can just indicate the effect of rotating or mirroring around one of the principal axes).

[0083] In most cases, it is preferred that which dimension of each blank is chosen to be the blank width relative to the blank height is normalized by always choosing the dimension that is the longest of the two dimensions. This way, designs that are otherwise very similar but just rotated 90 degrees will score (very) high as potential matches. As used herein, a score is a single number that indicates how well a library item matches a target. Generally, a higher score is better, but this is just convention. As long as a score value is determined, and it is clear whether a higher or lower score is better, and the results are ordered or filtered accordingly, the method can be considered a scoring method. As used herein, the term "better" score is intended to mean an item that is ordered as a better match.

[0084] Preferred embodiments of the geometric statistical search method are configured to find designs and layouts that are largely independent of rotation and mirroring. For such rotations and mirroring, the score will receive a small penalty, such that a non-rotated design will always score better than the same version rotated, but different designs will score lower regardless of rotation or not.

[0085] All target sets of CAD statistics can be calculated using mathematics by following all lines of a CAD design and adding, subtracting, multiplying, and / or dividing accordingly. The calculated values of the target sets of CAD statistics are properties of the CAD design. These values can be calculated immediately after uploading a CAD design to the system (e.g., to a library of CAD designs or layouts), or they can be provided as metadata by the CAD application in which the CAD file was created. These values can be stored in any measurement system, preferably in a metric system. The calculated values of the target sets of CAD statistics are also referred to herein as geometric metrics, which can include any metric that determines a value by reading the geometry of a CAD file and calculating a single numerical value from that geometry. Examples of geometric metrics can be the total ruler length of all lines or a subset of lines, the total crease length, or the center of gravity.

[0086] In addition to the target values of the target set that are statistically targeted, additional inputs to the geometric statistical search method can include the entire CAD library, with the same geometric metrics for each of the CAD files. These geometric metrics can be stored as metadata in the files or in a database, and can be indexed for searching, for example, in a search index such as ElasticSearch. As described herein, a search index refers to any preparation that makes a CAD design or layout searchable. Such preparation can include, for example, adding an index in a database, or indexing values separately and references to the original document in, for example, a Lucene index or a product derived from a Lucene index.

[0087] Yet another input to the geometric statistical search method can include hard filters that exclude CAD files for which it is immediately clear that they are not suitable. Such hard filters can include: • Prohibited files, which can be: Files that the user cannot access (for example, each external user can have access to a library that includes private files designed for a single customer and is not visible to other external users), or Files for which there are legal rules not to use (intellectual property, etc.).

[0088] • Obsolete files.

[0089] The library can contain lifecycle characteristics, including "archived" or other states that can be defined to not appear in search results unless specifically included.

[0090] • Out of bounds values.

[0091] Out of bounds values can be values that are too far out of range to be immediately disqualified from the file, no matter how well other values are suited (for example, when searching for a blank width of 300 mm, anything less than 250 mm or greater than 350 mm can be excluded).

[0092] • Unsuitable attributes (such as excluding corrugated box designs when searching for folded carton designs, for example, because the design is unlikely to be useful regardless of how well suited it is visually or statistically).

[0093] • No value / missing values (i.e., when certain statistics are not available, the file should be excluded from searches that use such statistics; for example, label shapes typically do not have creases, and when searching for files with a non-zero number of creases, these label shapes can be excluded from the search pool.

[0094] Using hard filters (such as the hard filters described above), significant speedup of the geometric statistical search method can be provided, creating value, and can be perfectly combined with the proposed method.

[0095] Thus, an exemplary geometric statistical search method can include the following steps: 1. Accept or compute target values for each of the statistical metrics. Weights can also be accepted (e.g., a zero weight for a metric makes a file irrelevant for a search based on that metric).

[0096] 2. Accept hard filters from a user interface to limit the search set. Optionally, additional hard filters are determined by setting a maximum range for each of the metrics (e.g., each metric has a maximum of 10% deviation).

[0097] 3. Run on the remaining CAD designs and compute the total distance by computing the distance or sub-distance for each of the metrics (e.g., a single number indicating the deviation between the library metric and the target metric), and combining the computed sub-distances to form the total distance (e.g., any number computed by a mathematical function that has as inputs the distances for the individual metrics and optionally a weight for each metric, such that the total distance can be 0 for a perfect match or "all metrics" match, or can be a positive number, including 0).

[0098] a. The distance per metric is the deviation between the library metric and the target metric. A distance of 0 means the metrics are identical. The distance is never negative. A typical distance is computed with the formula value1 / value2 - 1, where value1 is the maximum of the target value and the candidate value, and value2 is the minimum of the target value and the candidate value. Example: target tool length 200. Tool length (candidate) of library design: 300. Then distance = 300 / 200 - 1 = 0.5.

[0099] b. Multiply the distance by the weight for that attribute (e.g., metric). The weight assigned to a metric is typically between 0 and 1.

[0100] c. The simplest total distance is the sum of all weighted distances (e.g., taximetric distances).

[0101] d. Other distance functions (e.g., Euclidean) can also be used, but are typically slower without fundamentally improving the search results.

[0102] 4. Optionally, the above steps of the geometric-statistical search method are combined with a "visual" distance (e.g., using cosine similarity on CLIP fingerprints) as described above. The result can be "added" again to the total distance with its own weight. Assuming a cosine similarity between -1 and +1 (where -1 is very different, +1 is identical), the unweighted distance is (1 - cosine similarity) / 2 (so identical maps to 0, and completely different maps to (1 - (-1)) / 2 = 1).

[0103] 5. Keep track of the top X (number) of hit results (e.g., with the lowest distance), discard any worse. The top X (number) of matching results can be a set of library items with cardinality X or less. Typically, X is a relatively small number, e.g., such as 10. In this example, the top X (number) of matching results will return 10 best matching library items or less, e.g., because fewer than 10 items fit the hard filter (described below) or because an optimization (also described below) is used that does not always return the exact requested number (and typically returns a number that is somewhat smaller).

[0104] 6. Return the top X hit results.

[0105] The above algorithm is preferably implemented in a search engine that provides functionality for scripting scores. One example is ElasticSearch.

[0106] Some techniques can require higher scores for better matching results. However, in the distance function described above, lower values are considered better matching values (and 0 is the best matching value). The distance can be converted into a score with the following formula: Score = 1 / (1 + distance).

[0107] Distance = 0 —> Score = 1 Distance = infinity —> Score = 0.

[0108] A possible speed improvement of the geometric-statistical search method can be achieved by considering each of the metrics as a vector in a knn search space. For example, with e.g., 7 metrics, the target metric set is 1 point in a 7-dimensional space, where each of the library CAD designs is also represented by a point. Ideally, these points are already weighted in this search space, so that a regular distance function can be used for the knn-nearest neighbor search.

[0109] Knn search optimizations of the prior art, such as the HNSW algorithm integrated in ElasticSearch and OpenSearch, can be used to achieve the top x results faster compared to running exhaustively over all candidates.

[0110] If the search set is very large and the hard filter is not selective enough, the geometric-statistical search method can be the preferred search method.

[0111] A drawback of the geometric-statistical search method is that it cannot be combined with cosine similarity in a straightforward way to do a "visual" search.

[0112] Optimization of the layout A particular case is finding similar CAD layouts. The geometric-statistical search algorithm described above works well in finding very similar CAD layouts, but stops working well when the number of copies of a better design varies between CAD layouts or when multiple designs are combined in one layout.

[0113] For example, consider 2 layouts of a very similar (but not identical) better design. These 2 layouts have different numbers of copies.

[0114] This will result in different total areas, total crease lengths, total cut lengths, and also the visual similarity is not much (CLIP will see some similarity in the repeated vertical and horizontal lines, but will certainly penalize the total differences in the picture).

[0115] However, the similarity between these layouts can still be detected in 2 different ways (these 2 different ways can be used as alternatives).

[0116] A first way to detect the similarity between layouts can use the derived statistics.

[0117] In general, the steps and repeating the same better design (to a large extent) will keep the ratios between the statistics.

[0118] The ratio between cuts and creases is a fair indicator of the shape of the better design. When this ratio is similar to the target ratio, score the layout high, return layouts with possibly very different numbers of copies, but with a possibly similar better design, further refinements can be made by, for example, taking the ratio between the crease values of the candidate and the target, "guess" the ratio between the numbers of copies during scoring, and apply this ratio to the target value to determine a new target.

[0119] For example: Layout 1: creases: 300 Layout 2: creases: 450 Assuming the number of copies of layout 2 is 1.5 times the number of copies of layout 1 (e.g. layout 2 has 6 copies and layout 1 has 4 copies), the ratio of 1.5 can be applied to all targets (just for this candidate). Thus, the expected area of layout 2 can be 1.5 times the area of layout 1 (assuming this area is the sum of all the cutouts it produces). The same approach can be applied to the ruler length, etc. Thus, if the deviation from the "scaled" target is added instead of the deviation from the original target, the approach will need to give up one of the metrics to "always match" because that metric is used to calculate the ratio. In the example above, the crease will always match the scaled target because that scale was chosen to match the crease metric.

[0120] This approach works particularly well when the layout consists of one copy of a design.

[0121] For layouts consisting of multiple designs, where each design can have a different number of copies in the two layouts, the approach does not work well. It will also flag as very good matches layouts that are geometrically scaled by a factor, although this can not be the intention of the user. In the example above, a layout with the same number of copies but where all items are geometrically scaled by a factor of 1.5 will also appear as a very good match, while it clearly creates very different boxes (e.g. much larger).

[0122] A second way to detect similarity between layouts can use the more optimal extraction.

[0123] A more efficient approach (which requires more pre-work) is to extract the more optimal results from the CAD layouts and search index these more optimal results separately, using references to the CAD layouts from which these more optimal results were extracted.

[0124] The CAD engine can study the layouts and search for repeated more optimal results. For example, when using the CF2 format, each more optimal result is typically found to have its row of SUB commands, then the SUB command is called multiple times with different origin coordinates. It is often straightforward to extract these SUB commands to separate the CAD design. Other CAD formats can have more optimal designs embedded and methods can be used to extract them. The ArtiosCAD MFG format is an example, which allows the use of the Esko CAD engine to extract.ARD files that perfectly represent the more optimal results from which the MFG was derived.

[0125] In any case, then, these more optimal results are treated as normal designs to calculate their metrics and are search indexed.

[0126] This approach allows the following flow: • Design to layout search: For a given particular CAD design, the method can find in which CAD layouts that design or a similar design was used. Perfect matches are usually prior jobs of the same design, of course if the original design is also in the CAD library. This answers the question: given a particular input design (e.g. CAD lines extracted from a PDF file), are there close matches to these design lines and therefore likely to represent an existing physical die layout that could be used to cut the provided file / engineering item • Layout to design search: Given a particular CAD layout, the method can find similar CAD designs in the library. This is valuable when the layout is provided with lines that are similar to a standardized / corrected / optimized design.

[0127] • Layout to layout search: Given a particular CAD layout, the method can find CAD layouts that create similar boxes (possibly with a larger number per cut).

[0128] For the latter two processes, the input CAD layout also needs to have designs extracted to. Then, the search needs to be repeated for each of the extracted designs (usually just one or a few) and the results should be presented separately or re-ranked with a post sort (which is straightforward since the number of search results for each design is usually capped to just a small number - usually 10).

[0129] Once the set is small, the results are re-ranked An additional improvement of the geometric statistical search method is that once the set is small, the results are re-ranked.

[0130] The method described above can have returned a small number of matching candidates (e.g. 10). The method has ranked these matching candidates according to the "quick" statistics.

[0131] With such a small number of candidates, it becomes possible to open each of the CAD designs and perform a deeper comparison to, for example, return both a re-ranked and a qualitative analysis result.

[0132] Re-ranking: More details can be investigated, for example, the system can look for the percentage of lines that are completely overlapping. Two designs can have the exact same cut, crease and area while still being very different designs. For example, a circle with a hole in the middle can have the same cut length and area as a square without a hole. In this case, the quick score is high while the detailed score - lines that are perfectly overlapping - will be very low.

[0133] Qualitative analysis: The system can return a list of the differences found, such as: "window cut added", "mirrored", "missing fold", "different rounded corners".

[0134] The following terms are used throughout the preceding description and the accompanying claims: Geometric metric = any metric that determines a value by reading the geometry of a CAD file and computing a single numerical value from that geometry. Examples are total knife length, total crease length, barycenter of all lines or a portion of lines.

[0135] Target value = one value per metric. Candidate matches for a geometric metric are considered better matches the more numerically close they are to the target value.

[0136] Search index = any preparation that makes a design or layout searchable. This can be adding an index in a database, or separately indexing these values and references to the original document in, for example, a Lucene index or a product derived from it.

[0137] Library = any collection of CAD designs or layouts that have candidates for search results against some target value or similarity to a given design or layout.

[0138] Library item = any member of a library. Typically these are files that are uploaded to a document management system, but the method is not limited to this. Any representation from which geometric metrics can be computed or read is considered a library item.

[0139] Top x results = a collection of library items with a cardinality of x or less. Typically, x is a relatively small number, like 10. Thus, top x results will return 10 best matching library items, or fewer best matching library items, for example, because fewer than 10 items fit a hard filter, or because the optimization used does not always return the exact requested number. (Typically it returns a number somewhat smaller.)

[0140] k-nearest neighbor search: as defined at, for example, https: / / en.wikipedia.org / wiki / K-nearest_neighbors_algorithm.

[0141] Score and better score = Score is a single number that indicates how well a library item matches a target. Generally a higher score is better, but this is merely convention. As long as a 1 score value is determined, and it is clear whether a higher or lower score is better, and the results are sorted or filtered accordingly, it is a scoring method. Generalize whatever is sorted as a better match to "better" scores.

[0142] Distance = A single number that indicates how far apart a library metric and a target metric are. When the library metric and the target metric are the same, the distance is 0. Distance is never negative. Different distance functions can be used, such as the absolute value of the difference between the metrics, or the ratio between the maximum and minimum minus 1.

[0143] Total distance = Any number that is computed by a mathematical function with inputs of the distances for individual metrics and optionally weights for each metric, such that the total distance is still 0 for a perfect match (all metrics match), and will be positive, including 0.

[0144] While the present invention is illustrated and described herein with reference to specific embodiments, the present invention is not intended to be limited to the details shown. Rather, various modifications can be made in the details within the scope and range of equivalents of the claims and without departing from the present invention. In particular, while the discussion herein is primarily with respect to embodiments in which a CAD file sought to be identified has a common cut and / or crease element with a queryable CAD file to advantageously avoid making a new die, the present invention is not limited to any particular purpose for seeking the same or similar CAD file. It can be desirable to identify similar CAD files for any purpose, without limitation, such as for reviewing other information of interest from jobs associated with the CAD file. For example, job information associated with a particular CAD file can relate to a particular end user or a particular ink combination used by a particular printer on a particular substrate, and the job can be associated with certain rules or calibration curves or other information for applying to new jobs associated with the queryable CAD file. As another example, a CAD file can describe a three-dimensional (3D) model to be extruded by a 3D printer: however, certain unprinted components can need to be inserted into the model during printing when the model is printed. Finding a CAD file with similar unprinted components can provide insight for installation, or can provide more efficient identification of unprinted components for similar structures.

[0145] The instructions, programming, or application(s) can be software or firmware for implementing device functionality associated with devices such as scanners, printers, and PCs described throughout the present description. Programmatic aspects of the technology can be thought of as "products" or "articles of manufacture" typically in the form of executable code or process instructions and / or associated data that is stored (e.g., information stored on a storage media, manufactured into a device, incorporated into a computer system, etc.) or embodied (e.g., an implementation made by one or more machines) in a machine or processor- type readable medium (e.g., a tangible or non-transitory machine- or processor-readable medium such as optical, electrical or electromagnetic storage media, a portable or non-portable storage medium, a memory device, a machine or processor-type memory, etc.).

[0146] Of course, other storage devices or configurations can be added to or substituted for those in the examples. Such other storage devices can be implemented using any type of storage medium having computer or processor readable instructions or programming stored therein, and can include, for example, any or all tangible memory or associated modules of a computer, processor, etc.

[0147] It will be appreciated that all of the figures, as shown herein, merely depict certain elements of example systems and that other systems and methods can also be used. Moreover, as will be appreciated by one skilled in the art, even example systems can include additional components not explicitly depicted or explained. Accordingly, some embodiments can include additional elements not depicted or discussed herein, and / or can omit, for this embodiment, elements depicted and / or discussed. In still other embodiments, elements having similar functionality can replace elements depicted and discussed herein.

[0148] Any steps or functions of systems and methods for converting graphics files for printing can be embodied in programming or an application or applications as previously described. According to some embodiments, a "function," "functions," "application," "applications," "instructions," "instructions," or "programming" is a program(s) that performs the functions defined in the program. One or more of the applications can be created in a variety of ways, using various programming languages such as an object-oriented programming language (e.g., Objective-C, Java, or C++), a procedural programming language (e.g., C or assembly language), or firmware. In a particular example, a third-party application (e.g., an application developed using the ANDROID™ or IOS™ software development kit (SDK) by an entity other than the vendor of the particular platform) can be mobile software running on a mobile operating system such as IOS™, ANDROID™, WINDOWS® Phone, or another mobile operating system. In this example, the third-party application can invoke API calls provided by the operating system to facilitate the functionality described herein.

[0149] Accordingly, the machine readable medium can take many forms of tangible storage medium. Non-volatile storage medium includes, for example, optical, magnetic disks, such as any of the storage devices in any computer(s) or the like, such as are used for implementing the client devices, media gateways, transcoders, etc. shown in the drawings. Volatile storage medium includes dynamic memory, such as the main memory of such a computer platform. Tangible transmission medium includes coaxial cables; copper wire and fiber optics, including the wires that comprise bus; as well as the various forms of carrier waves, i.e. electric, electromagnetic, or optical, e.g., waveguides, infrared, microwave, radio and other transmission mediums. Accordingly, the computer readable medium can take the form of any of the following: a) a soft disc, b) a floppy disc, c) a hard disc, d) a magnetic tape, e) any other magnetic medium, f) a CD-ROM, g) a DVD or DVD-ROM, h) any other optical medium, i) a punch card, j) any other physical storage medium, k) a RAM, l) a PROM, and m) an EPROM, n) a FLASH-EPROM, o) any other memory chip or cartridge, p) carrier waves of signals, q) cables or links transporting such carrier waves of signals, r) computer readable medium embodied in an IC, a silicon chip, or s) any other medium from which a computer can read programming code and / or data. Many of these forms of computer readable medium can be involved in carrying one or more sequences of one or more instructions to a processor for execution.

[0150] The scope of protection is limited solely by the claims that now follow. That scope is intended and should be interpreted to be broad, soundly supported and to encompass all structural and functional equivalents that exist at the time of filing. That scope is intended and should be interpreted to be consistent with the ordinary meaning of the language used in the claims and to encompass all equivalents of the subject matter under 35 U.S.C. § 101, 102, or 103. However, no claim is intended to invoke 35 U.S.C. § 112, paragraph 6, as it exists on the date of filing, except to the extent required under 35 U.S.C. § 112. To the extent that a dependency clause ends in a comma, it is intended that the dependency clause is fully set forth in the claims.

[0151] It will be understood that the terms and expressions used herein have the ordinary technical meanings ascribed to such terms and expressions by those of ordinary skill in the respective fields described above and otherwise apparent from the context in which they are used. The phraseology and terminology employed herein are for the purpose of description and should not be regarded as limiting. For example, the use of "including," "comprising," "having," "containing," or "encompassing," and variations thereof, is intended to be broad and encompass the selection of stated integers or steps, or the exclusion of any either thereof, without the exclusion of additional, unrecited integers or steps. The mere fact that measures, elements or steps are recited in mutually different combinations does not indicate that a combination of these measures, elements or steps is not a good solution.

[0152] Unless otherwise indicated, any and all measurements, values, ranges, positions, amounts, and other specifications that are set forth in this specification are approximate, not exact. Such amounts are intended to be approximations, and are not intended to be precise or exact. The amounts can vary to some degree, depending on the desired results to be achieved by one of ordinary skill in the art employing such amounts in its functionality and the corresponding field of art.

[0153] Furthermore, in the particular implementation, it will be seen that various features are grouped together in various examples for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed examples require more features than are explicitly recited in each claim. Rather, inventive subject matter can lie in fewer than all features of a single disclosed example. Accordingly, the following claims are hereby in incorporated into the detailed description by this reference, wherein each claim independently speaks to the subject matter of that claim, individually.

[0154] While the foregoing has described what are considered to be the best mode and / or other examples, it is recognized that various modifications can be made, and the subject matter here disclosed can be implemented in various forms and examples, and that they can be applied to numerous applications, only some of which have been described herein. It is intended by the following claims to claim any and all modifications and variations that fall within the true scope of the present teachings.

Claims

1. A computer-aided design (CAD) search system, comprising: processor; An interface that is coupled to the processor; Memory coupled to the processor, the memory including machine-readable instructions, the machine-readable instructions embodying: List of rendered CAD files, and Hash function resolution; and The memory contains machine-readable instructions programmed therein, wherein the processor executes the programming to configure the CAD search system to perform functions, including functions for performing the following: Queryable CAD files are received via the interface. The queryable CAD file is rendered into a perceptual search CAD rendering, which includes rendering a primary perceptual rasterization channel based on the primary addressable elements of the queryable file, and rendering the primary addressable elements into the primary perceptual rasterization channel at a perceptual resolution that matches the resolution of the hash function.    The perceptual search hash is calculated based on the perceptual search CAD rendering.    The perceptual search hash is compared with the perceptual target hash of the perceptual target CAD file in the rendered CAD file list;    Based on the comparison between the perception search hash and the perception target hash, the perception target CAD file is returned to the interface.

2. The CAD search system according to claim 1, wherein the primary addressable element defines a cutting line.

3. The CAD search system according to claim 1, wherein the perceptual search CAD rendering further comprises: The secondary addressable element is rendered as a secondary rasterization channel based on the secondary addressable element of the queryable file, at the perceptual resolution.

4. The CAD search system according to claim 3, wherein the secondary addressable element defines a crease line.

5. The CAD search system of claim 1, wherein the processor executes the programming to further configure the CAD search system to perform functions, including functions for performing the following: The queryable CAD file is rendered into a password-searchable CAD rendering, which includes rendering a primary password rasterization channel based on the primary addressable elements of the queryable file, and rendering the primary addressable elements into the primary password rasterization channel at a password resolution that matches the client's allowed resolution. The password search hash is calculated based on the password search CAD rendering. The password search hash is compared with the password target hash of the password target CAD file in the rendered CAD file list; as well as Based on the comparison between the password search hash and the password target hash, the password target CAD file is returned to the interface.

6. The CAD search system according to claim 5, wherein the password-protected CAD rendering search further comprises: The secondary addressable element is rendered into the secondary cryptographic rasterization channel based on the secondary addressable element of the queryable file, with the cryptographic resolution.

7. The CAD search system of claim 5, wherein the programming is executed by the processor to further configure the CAD search system to perform functions, including functions for performing the following: The customer-permissible resolution is determined based on the maximum accuracy of the mold-making system configured to manufacture the mold: For use in stamping die presses, and Based on the aforementioned searchable CAD files.

8. The CAD search system of claim 5, wherein the processor performs the programming to further configure the CAD search system to perform functions, including functions for performing the following: The client-permitted resolution is determined based on the resolution of the queryable file.

9. The CAD search system of claim 1, wherein the processor performs the programming to further configure the CAD search system to perform functions, including functions for performing the following: Convert the queryable file from vector format to raster format.

10. The CAD search system of claim 1, wherein the searchable file defines the geometry of at least one individual periphery to be cut using a cutting tool, the cutting tool being used in the manufacturing process of making articles from raw materials.

11. The CAD search system of claim 1, wherein each target file in the rendered file list is associated with at least one die tool.

12. The CAD search system of claim 11, wherein the at least one die tool is associated with a tool positioning; and The processor executes the programming to further configure the CAD search system to perform functions, including functions for performing the following: Based on the comparison between the perception search hash and the perception target hash, and the comparison of the perception tool positioning associated with the perception tool in the perception target CAD file, the perception target CAD file is returned to the interface.

13. The CAD search system of claim 11, wherein the at least one die tool is associated with a tool positioning and a die tool identifier; and The processor executes the programming to further configure the CAD search system to perform functions, including functions for performing the following: Based on the comparison between the perception search hash and the perception target hash, and the comparison of the perception tool positioning associated with the perception tool in the perception target CAD file, the die tool identifier is returned to the interface.

14. The CAD search system of claim 1, wherein the processor performs the programming to further configure the CAD search system to perform functions, including functions for performing the following: Receive storable CAD files via the interface; Rendering the storable CAD file into a perceptual source CAD rendering, wherein the perceptual source CAD rendering includes: The primary addressable source element is rendered into the primary perceptual source rasterization channel based on the primary source addressable element of the storable file, with the hash function resolution. The perceptual source hash is calculated based on the CAD rendering of the perceptual source. Based on the hash of the sensing source, the storable CAD files in the rendered CAD file list are indexed.

15. The CAD search system according to claim 14, wherein the perceptual source CAD rendering further comprises: The secondary addressable source element is rendered into a secondary rasterization channel based on the secondary source addressable element rendered by the secondary perceptual source rasterization channel, with the hash function resolution.

16. The CAD search system of claim 14, wherein the processor performs the programming to further configure the CAD search system to perform functions, including functions for performing the following: The storable CAD file is rendered into a cryptographic source CAD rendering, wherein the cryptographic source CAD rendering includes rendering a primary source cryptographic rasterization channel based on the primary source addressable elements of the storable file, and rendering the primary source addressable elements into the primary source cryptographic rasterization channel at a cryptographic resolution that matches the client-permitted resolution. The hash of the cryptographic source is calculated based on the CAD rendering of the cryptographic source. Based on the cryptographic source hash, the storable CAD files in the rendered CAD file list are indexed.

17. The CAD search system according to claim 16, wherein the password source CAD file further comprises: The secondary source addressable element is rendered into the secondary source cryptographic rasterization channel based on the secondary source addressable element rendered by the secondary source addressable element of the storable file at the cryptographic resolution.

18. A computer-implemented method for querying based on a searchable computer-aided design (CAD) file, the searchable CAD file defining the geometry of at least one individual's periphery to be cut using a cutting tool, the cutting tool being used in a manufacturing process to produce an article from raw materials, the method comprising the following steps: Using the processor of the computer, the queryable CAD file is rendered into a perceptual search CAD rendering, which includes rendering the primary perceptual rasterization channel based on the primary addressable elements of the queryable file, and rendering the primary addressable elements into the primary perceptual rasterization channel at a perceptual resolution that matches the hash function resolution. Using the processor, a perceptual search hash is calculated based on the perceptual search CAD rendering; Using the processor, the perceptual search hash is compared with the perceptual target hash of the perceptual target CAD file in the library of rendered CAD files; The perceived target CAD file is returned to the interface based at least in part on a comparison between the perceived search hash and the perceived target hash.

19. The method of claim 18, further comprising: Using the processor, the queryable CAD file is rendered into a cryptographic search CAD rendering, the cryptographic search CAD rendering including rendering the primary cryptographic rasterization channel based on the primary addressable element of the queryable file, and rendering the primary addressable element into the primary cryptographic rasterization channel at a cryptographic resolution that matches the client-permitted resolution. Using the processor, a password search hash is calculated based on the password search CAD rendering; Using the processor, the password search hash is compared with the password target hash of the password target CAD file in the library of rendered CAD files; as well as Based on the comparison between the password search hash and the password target hash, the password target CAD file is returned to the interface.

20. The method of claim 19, wherein each rendered CAD file in the library of rendered CAD files includes a calculated geometric metric corresponding to a CAD design or layout embodied in the CAD file, and a target CAD file is queryable to define a target value for the geometric metric, wherein the method includes iterating over the library or a portion thereof, calculating a sub-distance of each geometric metric in the geometric metric relative to a corresponding target value metric using a first distance function and combining the sub-distances to define a total distance or score, calculating a total distance or score for each file in the library based on the total distance, wherein a lower value of the total distance or a higher value of the score indicates a better match between the library file and the target value of the input file; and returning the top x matching results with the highest score or the lowest total distance, wherein a second distance function is used to calculate a comparison between the password search hash and the password target hash, and the comparison is used as one of the sub-distances forming the total score.

21. A method for finding the top x matching results of a computer-aided design (CAD) design or layout based on a queryable CAD file, the queryable CAD file defining the geometry of at least one individual's periphery to be cut using a cutting tool, the cutting tool being used in a manufacturing process to produce an article from raw materials, the method comprising the following steps: a) Pre-calculate the geometric dimensions of each of the multiple CAD designs or layouts in the library and store the calculated geometric dimensions in computer memory; b) Accept or calculate the target value of the geometric metric based on the input file; c) Iterate over the library or a portion thereof, calculating the sub-distance of each geometric metric in the geometric metrics relative to the corresponding target metric using a distance function and combining the sub-distances to form a total distance, calculating a total distance or score for each library item based on the total distance, wherein a lower value of the total distance or a higher value of the score indicates a better match of the library item with respect to the target value of the input file; as well as d) Return the top x matches with the highest score or the lowest total distance.

22. The method of claim 21, further comprising an additional step of hard filtering the library or a portion thereof between step b) and step c).

23. The method of claim 22, wherein the hard filtering includes a boundary check that excludes library items whose target value deviates from the target value of the input file by more than a predetermined percentage.

24. The method of claim 21, wherein the total distance function is the sum of the distances of each of the geometric metrics.

25. The method of claim 21 or claim 22, further comprising, after step c), calculating another sub-distance based on visual similarity calculated from a rendered image, the rendered image being converted into a fingerprint composed of a digital array, the other sub-distance being determined according to a mathematical distance function between the fingerprints, and adding the calculated other sub-distance to the total distance of step c).

26. The method of claim 21 or 25, wherein in step c), weights are applied to each of the sub-distances before calculating the total distance.

27. A method for finding the top x results that match a design or layout, the method comprising: a) Pre-calculate the geometric dimensions of each of multiple computer-aided design (CAD) designs or layouts in the library, and search the calculated geometric dimensions of the CAD designs or layouts with reference to the CAD designs or layouts; b) Accept or compute the target value of the geometric metric and an optional set of hard filters based on the input file; c) Use queries from the search index to: i) Immediately exclude library items that do not match the hard filter or whose distance from the target value of the input file is greater than a predetermined threshold distance; ii) Define a scoring function such that the smaller the deviation between the geometric metric and the target value of the input file, the better the scoring function will be; as well as iii) Return the first x results that match the design or layout based on the scoring function.

28. A method for finding the top x results that match a design or layout, the method comprising: a) Pre-calculate the geometric measure of each of multiple CAD designs or layouts in the library, and search the calculated geometric measure with reference to the CAD design or layout, wherein the search index stores each of the calculated geometric measure as a vector, wherein each coordinate represents one of the calculated geometric measures; b) Accept or calculate the target value of the geometric metric based on the input file, and convert the target value into a vector organized in the same way as the vectors of the plurality of CAD designs or layouts; c) Use k-nearest neighbor search to find the x closest matches between each vector and the target vector; and d) Return the corresponding CAD design or layout represented by the found vector.

29. The method of claim 28, wherein a hard filter is added, the hard filter excluding candidates before, during, or after the k-nearest neighbor search.

30. A method for finding the first x results of a matching layout, a matching design-to-layout, or a matching layout-to-design, the method comprising: a) Pre-calculate the geometric measure of each of the multiple CAD designs and layouts in the library, and search the index of the calculated geometric measure; b) For the CAD layouts in the library, extract the CAD designs, calculate the statistical metrics of the CAD designs, and store the calculated statistical metrics as additional documents in the index, maintaining a reference to the CAD layout from which the CAD designs were extracted; c) Accept or calculate the target value of the geometric metric based on the input file; d) Iterate over the library or a portion thereof, calculating a sub-distance of each geometric metric relative to a corresponding target metric and combining the sub-distances to form a total distance, calculating a total distance or score for each library item based on the total distance, wherein a lower total distance or a higher score indicates a better match of the library item with respect to the target value of the input file; and e) Return the top x library items with the highest score or the lowest total distance.

31. The method of claim 30, further comprising, for each extracted CAD design, returning, in addition to or in lieu of the extracted CAD design, the CAD layout from which the CAD design was extracted.