Systems and methods for searching for similar cad files
Patent Information
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-05-24
- Publication Date
- 2026-04-08
AI Technical Summary
Die press operators face inefficiencies in identifying and reusing existing die knives for new packaging projects due to limited search capabilities in existing CAD file management systems, which rely on hard logic and do not effectively handle visual similarities between CAD files.
A computer-aided design (CAD) search system that renders CAD files into perceptual and cryptographic hashes to compare similarities, allowing for the identification of existing die knives with minimal adjustment by calculating geometric and visual metrics, and returning top matching results for efficient reuse.
The CAD search system significantly reduces time and cost by enabling operators to locate and reuse existing die knives, improving the efficiency of die knife adaptation for new packaging projects through effective visual and geometric similarity searches.
Smart Images

Figure EP2024064460_28112024_PF_FP_ABST
Abstract
Description
[0001] SYSTEMS AND METHODS FOR SEARCHING FOR SIMILAR CAD FILES
[0002] CROSS-REFERENCE TO RELATED APPLICATIONS
[0003] The present application claims priority to U.S. Patent Application No. 63 / 468,747, entitled "A METHOD TO SEARCH FOR SIMILAR CAD FILES" filed May 24, 2023, the contents of which are incorporated herein by reference in their entirety.
[0004] BACKGROUND OF THE INVENTION
[0005] Die cutting, such as with a die board or Steel Rule Die (SRD), is well known in the art for cutting shapes from sheets of corrugated or flat plastic or paperboard, as well as from other materials, such as gasket materials, chipboard, fabrics and felts, foam (open cell or closed cell), natural and synthetic rubbers, thin metals (i.e. 0.005 or less), wood (e.g. cork), acrylic, composites, fiberglass, magnets, sponges, or any other flat material suitable for cutting, found in the industry.
[0006] The manufacture of packaging, particularly consumer goods packaging made from sheet media such as cardboard, plastic, and the like, often involves die cutting processes. An SRD comprises sharpened steel blades or rules bent and formed into a pattern. In some locations between adjacent blades that define a waste section, the SRD may comprise a foam or other springy material that is compressed as the steel rules of the die penetrate the sheet media, but that has a sufficient recoil force to at least partially eject the waste material disposed between the adjacent rules as the die is retracted. The blades are typically held in position by mounting them on a base material, such as plywood, acrylic or the like. As is known in the art, the die in use may be compressed against a backing plate that has grooves corresponding to each blade configured to penetrate the sheet material. The die and backing plate are then placed in a press with the sheet material to be cut disposed between them, the die and backing plate are brought together with sufficient compression force to stamp out the cut shape, and then retracted to release the cut sheet. The sheet and / or cut shapes may then be further processed by stripping away waste, folding, and gluing.
[0007] The term "conversion" is typically understood to be the process for converting a "board" (or panel or sheet of starting material, such as corrugated cardboard) into a packaging unit, and may include printing, cutting, folding, and / or a gluing operation steps. In addition to the use of SRD in a flatbed press, SRD structures may also be used in a rotary cutter design. Packaging may also be created using what is known as a Flexo Folder Gluer (FFG), in which a long web roll of paper is run through a corrugator and combined to form a corrugated web. The corrugated web is scored in the machine direction using scoring wheels and slits to reduce the web into sheets of desired sizes for later processing. The sheets are fed into the FFG, where printing, slots and transverse scores are applied and folded.
[0008] Once the blades are set, they are often reused multiple times when cutting shapes die cut out from boards in order to produce packaging or point of sale displays. Once the shapes for a given pattern are cut, however, the blades used to perform the cutting generally retain their shape. In order to improve reusability, and reduce time spent setting blades, preparers of the dies will utilize die knives previously set for use in prior projects. Therefore, to maximize the efficiency of die knife reuse, there is a need in the industry to help operators identify existing die knives in their die preparation facilities that would be unusable in new projects with minimal adjustment.
[0009] Designers of packaging and displays typically use computer-aided design (CAD) software for creating the designs to be manufactured, and those same CAD design files are used by a die making system in the manufacture of the dies. ArtiosCAD™ software, manufactured by Esko Software BVBA, the assignee of the present invention, is a popular such CAD program targeted to the packaging industry. CAD design files, in particular for die cutting application, define locations where a board must be cut, as well as where that board must be folded, in order to produce a packaging unit. These locations correlate to both cutting blades, as well as folding blades, around which the packaging unit is folded and formed, and blades must be identified and bent by the operator of the die press, unless that operator already has knowledge of existing blades which can make the same cut or fold with minimal adjustment.
[0010] Thus, there is a need in the art to assist die press operators in identifying existing, similar blades for use in new packaging projects, and remedy such inefficiencies.
[0011] Likewise, generally, packaging CAD files represent cutting shapes to be used to cut and crease mostly carton materials according to the lines in a 2- dimensional description. CAD "Designs" often describe the shape of one box, label shape, or some other item cut and folded from a sheet material. CAD "Layouts" describe the manufacturing tools which 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 subsequently adding manufacturing tooling, such as rubber, stripping tools, and the like.
[0012] Die makers and carton converters have built up over the years libraries of thousands to millions of CAD designs and layouts. These libraries usually have a limited structure. They may be organized in folders and may have set properties in fields such as "customer" or "brand," for example. The library may also indicate the types of substrate materials the CAD designs or layouts are suited for. Mostly this is "hard" logic. The design or layout fits hard categories.
[0013] Packaging management systems, such as Esko® WebCenter™ software, for example, have extended library capabilities to categorize CAD files, manage access, search using the above mentioned hard logic, show the files in a viewer, manage change requests, and the like. Search capabilities are typically limited to hard logic.
[0014] Thus, there is a need in the art for searching for CAD files, generally, based upon a defined criteria.
[0015] SUMMARY OF THE INVENTION
[0016] One aspect of the invention is a computer aided design (CAD) search system including a processor and an interface, coupled to the processor. The CAD search system also includes a memory, coupled to the processor, and the memory includes machine-readable instructions embodying a list of rendered CAD files and a hash function resolution. The memory also includes 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, via the interface, a queryable CAD file. The CAD search system renders the queryable CAD file into a perceptual search CAD render, the perceptual search CAD render including a primary perceptual rasterized channel rendered from primary addressable elements of the queryable file, the primary addressable elements rendered into the primary perceptual rasterized channel at a perceptual resolution matched to the hash function resolution. The CAD search system calculates a perceptual search hash based upon the perceptual search CAD render. The CAD search system compares the perceptual search hash to a perceptual target hash of a perceptual target CAD file of 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.
[0017] Another aspect of the invention is a method implemented by a computer for querying based upon 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 starting material. The method includes rendering, with a processor of the computer, the queryable CAD file into a perceptual search CAD render, the perceptual search CAD render including a primary perceptual rasterized channel rendered from primary addressable elements of the queryable file, the primary addressable elements rendered into the primary perceptual rasterized channel at a perceptual resolution matched to a hash function resolution. The method also includes calculating, with the processor, a perceptual search hash based upon the perceptual search CAD render. The method further includes comparing, with the processor, the perceptual search hash to a perceptual target hash of a perceptual target CAD file of the list of rendered CAD files. The method still further includes based on the comparison of the perceptual search hash to the perceptual target hash, returning the perceptual target CAD file to the interface.
[0018] Still another aspect of the invention comprises an article of manufacture comprising non-transitory computer readable media programmed with computer program code readable by a computer for instructing the computer to perform the method as described herein.
[0019] Yet another method for finding a top x number of matching results of CAD designs or layouts is based upon 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 starting material. The method includes the steps of a) upfront calculating geometric metrics for each of a plurality of CAD designs or layouts in a library and storing the calculated geometric metrics in a computer memory, and b) accepting or calculating target values for the geometric metrics from an input file. In step c), iterating over the library or a part of the library, for each library item a total distance or a score based upon the total distance is calculated by calculating a sub-distance for each of the geometric metrics versus the respective target metric using a distance function, and combining the subdistances to form the total distance, wherein a lower value of the total distance or a higher value of the score represents a better match of the library item relative to the input file target values. In step d), the top x number of matching results with highest scores or the lowest total distances is returned. An additional step of a hard filtering of the library or a part of the library may be performed between step b) and step c), such as executing boundary check which excludes library items that deviate by more than a predetermined percentage from the target value of the input file target values.
[0020] In embodiments, after step c), another sub-distance is calculated based on visual similarity calculated from rendered images which were converted to a fingerprint consisting of an array of numbers, which sub-distance is determined from a mathematical distance function between the fingerprints, and adding the calculated sub-distance to the total distance of step c).
[0021] Still another method for finding a top x results of matching designs or layouts includes the steps of a) upfront calculating geometric metrics for each of a plurality of computer aided design (CAD) designs or layouts in a library and searchindexing the calculated geometric metrics of the CAD designs or layouts with a reference to a CAD design or layout; and b) accepting or calculating from an input file target values for the geometric metrics and optionally a set of hard filters. Step c) includes using queries in a search index to i) immediately exclude library items that do not match the hard filters or have a distance that is larger than a predetermined threshold distance from the input file target values; ii) sett a scoring function which scores better when deviations between the geometric metrics and the input file target values are smaller; and iii) returning the top x results of the matching designs or layouts according to the scoring function.
[0022] Yet another method for finding a top x results of matching designs or layouts includes the steps of a) upfront calculating geometric metrics for each of a plurality of CAD designs or layouts in a library and search-indexing the calculated geometric metrics with a reference to a CAD design or layout, wherein the searchindexing stores each of the calculated geometric metrics as a vector in which each coordinate represents one of the calculated geometric metrics; b) accepting or calculating from an input file target values for the geometric metrics and converting the target values into vectors organized in a same way as vectors for the plurality of CAD designs or layouts; c) using a k-nearest neighbor search to find the x closest matches of each vector to a target vector; and d) returning the corresponding CAD designs or layouts represented by the found vectors.
[0023] Another method for finding a top x results of matching layouts or matching designs to layouts or matching layouts to designs includes a) upfront calculating geometric metrics for each of a plurality of CAD designs and layouts in a library and search-indexing the calculated geometric metrics; b) for the CAD layouts in the library, extracting the CAD designs, calculating statistic metrics for the CAD designs, and storing the calculated statistic metrics as additional documents in an index, keeping a reference to the CAD layout from where the CAD designs were extracted; c) accepting or calculating from an input file target values for the geometric metrics; d) iterating over the library or a part of the library, calculating for each library item a total distance or a score based on the total distance by calculating a subdistance for each of the geometric metrics versus the respective target metric and combining the sub-distances to form a total distance, wherein a lower value of the total distance or a higher value of the score represents a better match of the library item relative to the input file target values; and e) returning the top x library items with highest scores or lowest total distances.
[0024] For each extracted CAD design, the CAD layout from which the CAD design was extracted may be returned in addition to, or in place of, the extracted CAD design.
[0025] Computer aided design (CAD) search systems including a processor, an interface coupled to the processor, and a memory, coupled to the processor, may be provided with the 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.
[0026] BRIEF DESCRIPTION OF THE DRAWINGS
[0027] FIG. 1 is a schematic illustration of a computer aided design search system embodied in a CAD search device with multiple attached interfaces.
[0028] FIG. 2 is a schematic illustration of a CAD search system embodied in a CAD search device, connected to a user device and interface over a wide area network (WAN).
[0029] FIG. 3 is a schematic illustration of the process by which a CAD file is rendered and hashed to create a perceptual search hash and a cryptographic search hash for that CAD file.
[0030] DETAILED DESCRIPTION OF THE INVENTION
[0031] FIG. 1 is a schematic illustration of a computer aided design (CAD) search system 100 embodied in a CAD search device 101 with multiple attached interfaces 105A-B. The interfaces 105A-B are conventional digital computing interfaces, capable of accepting and returning CAD files, in particular a queryable CAD file 107, a target CAD file 115A-D, or a storable CAD file 137. The interfaces 105A-B may be capable of displaying information, and include a digital display, and may be capable of accepting particular user input, and include a touch screen, keyboard, or a mouse. However, the interfaces 105A-B may be simple file interfaces, such as a USB port, or a File Transfer Protocol (FTP) network port. The interfaces 105A-B can also be configured to return information related to a particular die knife 129A-E (or other information relevant to a CAD file or a printing or conversion job).
[0032] The interfaces 105A-B accept CAD files of a certain format. These particular CAD files are designed to instruct a die press operator where to place cuts, or where to place folds, in a board in order to produce packaging materials. A CAD file conforming to this format is a queryable CAD file 107. However, all CAD files within the CAD search system 100 such as the target CAD files 115A-D, and all CAD files intended to be placed within the CAD search system 100, such as storable CAD file 137, are also in a format similar to the queryable CAD file 107.
[0033] The queryable CAD file 107 is a CAD file for which a user or operator is seeking existing die knives 129A-D to facilitate a die press operator creating the packaging described in the queryable CAD file 107 from a board. The queryable CAD file 107 includes at least two layers of instructions: a layer of primary addressable elements 133, which describe where a die press operator places cuts in a board in order to properly cut the board into the packaging. The queryable CAD file 107 also includes a layer of secondary addressable elements 135, which describe where a die press operator places folds in the board in order to properly fold the board into the packaging.
[0034] The CAD search system 100 is configured to identify existing CAD files with similar cut and fold patterns to a new CAD file - once any existing similar CAD files are identified, the operator of the die press can locate the die knives utilized in cutting or folding those older, similar CAD files, and prepare those previously-utilized die knives for cutting and folding the packaging as described by the new CAD file. By reusing and adapting existing die knives to produce new packaging, substantial time and cost setting new die knives is saved. 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-B which are close matches to the queryable CAD file 107.
[0035] The memory 107 includes several objects, variable, or records, which are digitally stored within the memory 107. The memory 107 includes the programming 113, which instructs the processor 113 on how to accept and send information to and from the interfaces 105A-B, how to process the queryable CAD file 107 or the storable CAD file 137, and how to search for a match to the queryable CAD file 107 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, which embodies the processor 103, the interfaces 105A-B, and the memory 107.
[0036] In order to appropriately search for matching target CAD files 115A-B, the CAD search system 100 searches for CAD files which match the queryable CAD file 107 at two different levels of granularity: first, at a low level of granularity, or a perceptual level of granularity; and second, at a high level of granularity, or a cryptographic level of granularity. The perceptual level of granularity is stored as the hash function resolution 111A, and is a level of resolution that provides a perceptual understanding of where cuts and folds would be placed by a given CAD file. For example, if a CAD file normally has a resolution of 2000 pixels by 2000 px, then the hash function resolution 111A would reduce the resolution of that CAD file to 256 px by 256 px. This reduced or lower resolution allows for more CAD files to appear to share more similarities, which is beneficial when identifying used die knives for reuse.
[0037] The CAD search system 100 also performs a search at a high level of granularity, which is stored as a cryptographic resolution 111B. This cryptographic resolution 111B is a very high resolution, as high or higher than the die press is capable of. The cryptographic resolution 111B may also preferably be higher than a customer tolerance resolution 111C, which is the lowest resolution at which errors are tolerated. An error would be cutting at pixel (10, 20) when the instructions indicate to cut at pixel (10,21) - at higher precisions if a cut at pixel (10.000, 20.999) when the instructions indicate 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 cryptographic resolution 111B is as high or higher than the resolution of the die press, in order for all CAD files used by that die press to be of a uniform resolution. For example, if the cryptographic resolution 111B is 10,000px by 10,000 px, then a CAD file at the resolution of 1,000 px by 1,000 px may be upscaled to 10,000 px by 10,000 px, in order to be uniformly comparable to other CAD files within the CAD search system 100.
[0038] The CAD search system 100 accepts a queryable CAD file 107 provided by an operator and begins the searching process. First, the CAD search system 100 renders the primary addressable elements 133, or the cutting instructions, at the hash function resolution 111A. Doing so creates a primary rasterized channel 119A, of the cutting instructions rendered at the hash function resolution 111A. This primary rasterized channel 119A is stored within a search CAD render 117A, which will contain the rendered components of the queryable CAD file at the hash function resolution 111A. The search CAD render 117A has a uniform resolution 123A for all of the channels 119A, 121A within the search CAD render 117A, and the resolution 123A matches the hash function resolution 111A.
[0039] If the queryable CAD file 107 includes folding instructions in the secondary addressable elements 135, the secondary addressable elements 135 are also rendered at the hash function resolution 111A into a secondary rasterized channel 121A, and stored within the search CAD render 117A. The search CAD render 117A is therefore 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 may be excluded from the search CAD render 117A, and does not need to be rendered, as it will not be used in the searching process.
[0040] Once the search CAD render 117A is completed, the search CAD render 117A is provided to a hash function, to generate a search hash 125A. The search hash 125A may be configured to provide similar hash values when similar CAD renders are provided to the hash function, but any hashing function is contemplated. It is contemplated that the primary rasterized channel 119A and the secondary rasterized channel 121A may, together or separately, be provided to the hash function, and the container search CAD render 117A may not be used in hashing. The hash function may concatenate a separate hash of the primary rasterized channel 119A to a hash of the secondary rasterized channel 121A. In queryable CAD files 107 which do not include either cutting information or folding information, it is contemplated that the hashing function has a method for nevertheless gracefully hashing the search CAD render 117A: for example, if a queryable CAD file does not include folding information, the hashing function may impute a folding channel at the appropriate resolution containing zero folds as the secondary rasterized channel 121A.
[0041] Once the search hash 125A is generated, the search hash 125A is compared to the target hashes 127A-D generated at the hash function resolution 111A of the list of rendered CAD files 109 in the memory 107. The list of rendered CAD files 109 includes a target hash 127A-D generated of a render of a target CAD file 115A-D at the hash function resolution 111A, as well as a target hash 127E-H made of a different render of a target CAD file 115A-D at the cryptographic resolution 111B, for each target CAD file 115A-D.
[0042] A target CAD file 115A-D is a CAD file which has been processed and stored within the CAD search system 100. Often, a target CAD file 115A-D is a CAD file for which die knives had previously been prepared. In some examples, target CAD files 115A-D are associated with those die knives 129A-E, and in further examples the CAD search system 100 associates those die knives 129A-E with die knife locations 131A-E. A die knife 129A-D in the CAD search system 100 includes some identifier which allows an operator skilled in the art of operating a die press to identify the physical die knife associated with the identifier for reuse in the new cutting or folding project described by the queryable CAD file 107. Die knife locations 131A-E can further assist operators in identifying and locating die knives 129A-E which would be useable for cutting or folding the new project described by the queryable CAD file 107, but the die knife locations 131A-E can also be used as a search filter to ignore certain die knives 129A-E which may match. For example, if the CAD search system 100 services an entire factory, it may not be worthwhile for the operator to move from one wing of the factory to another wing, in order to obtain a single helpful die knife 129C: the operator would be better served by simply utilizing a new die knife. In implementations where the CAD search system 100 is distributed, the die knife 129C may be in a different building, country, or continent, and returning search results for such distant die knives 129C would be unhelpful.
[0043] The list of rendered CAD files 109 does not need to store the renders of the target CAD files 115A-D once target hashes 127A-H are calculated. In some embodiments, even the target CAD files 115A-D may not be stored : only the die knives 129A-E and the die knife locations 131A-E may be associated with the target hashes 127A-H : in such examples a search is performed, and only matching die knives 129A-E may be needed by the operator: the operator may have no use for the target CAD files 115A-D which were the basis of creating the die knives 129A-E.
[0044] If the search hash 125A matches or nearly matches a target hash 127A of the target hashes 127A-D, the CAD search system 100 will take the relevant information (target CAD files 115A; die knives 129A,E; and die knife locations 131A,E) and return that relevant information as search results to the operator at the interface 105A based upon the input queryable CAD file 107. As multiple die knives 129A,E can be associated with the same target CAD file 115A, the size of the search results may vary. Though not depicted, it is possible that multiple target CAD files 115A-D may be associated with the same die knife 129A-E, if that die knife 129A-E was used in converting multiple CAD files into packaging units.
[0045] The same search process can also be performed to generate a search hash 125B for the queryable CAD file 107 at the cryptographic resolution 111B. First, the CAD search system 100 renders the primary addressable elements 133, or the cutting instructions, at the cryptographic resolution 111B. Doing so creates a primary rasterized channel 119B, of the cutting instructions rendered at the cryptographic resolution 111B. This primary rasterized channel 119B is stored within a search CAD render 117B, which will contain the rendered components of the queryable CAD file 107 at the cryptographic resolution 111B. The search CAD render 117B has a uniform resolution 123N for all of the channels 119B, 121B within the search CAD render 117B, and the resolution 123B matches the cryptographic resolution 111B.
[0046] If the queryable CAD file 107 includes folding instructions in the secondary addressable elements 135, the secondary addressable elements 135 are also rendered at the cryptographic resolution 111B into a secondary rasterized channel 121B, and stored within the search CAD render 117B. The search CAD render 117B is therefore a rendering of the queryable CAD file 107 at the cryptographic resolution 111B. If the queryable CAD file 107 also includes additional addressable elements or channels, such as inking or coloring information, that information may be excluded from the search CAD render 117B, and does not need to be rendered, as it will not be used in the searching process.
[0047] Once the search CAD render 117B is completed, the search CAD render 117B is provided to a hash function, to generate a search hash 125B. The hash function may be configured to provide similar hash values when similar CAD renders are provided to the hash function, but any hashing function is contemplated. The hash function used to generate the search hash 125B may be a different hash function than the hash function used to generate search hash 125A. It is contemplated that the primary rasterized channel 119B and the secondary rasterized channel 121B may, together or separately, be provided to the hash function, and the container search CAD render 117B may not be used in hashing. The hash function may concatenate a separate hash of the primary rasterized channel 119B to a hash of the secondary rasterized channel 121B. In queryable CAD files 107 which do not include either cutting information or folding information, it is contemplated that the hashing function has a method for nevertheless gracefully hashing the search CAD render 117B: for example, if a queryable CAD file 107 does not include folding information, the hashing function may impute a folding channel at the appropriate resolution containing zero folds as the secondary rasterized channel 121B.
[0048] Once the search hash 125B is generated, the search hash 125B is compared to the target hashes 127E-H made at the cryptographic resolution 111B of the list of rendered CAD files 109 in the memory 107.
[0049] If the search hash 125A matches or nearly matches a target hash 127A of the target hashes 127A-D, the CAD search system 100 will take the relevant information (target CAD files 115A; die knives 129A,E; and die knife locations 131A,E) and return that relevant information as search results to the operator at the interface 105A based upon the input queryable CAD file 107. As multiple die knives 129A,E can be associated with the same target CAD file 115A, the size of the search results may vary. Though not depicted, it is possible that multiple target CAD files 115A-D may be associated with the same die knife 129A-E, if that die knife 129A-E was used in converting multiple CAD files into packaging units. The same target CAD file 115A-D and die knives 129A-E may be returned by a search based upon both the search hash 125A and the search hash 125B. In such cases, duplicate results may be ignored. The CAD search system 100 may provide the results based on the higher-resolution search hash 125B first: these results are more likely to be an exact match, and therefore are more likely to be resulting die knives that are useful to an operator. For example, a cardboard box that is six inches on each face, with two inch flaps, and scalloped corners, may be a popular box type - therefore, an exact match may be available, and the die knives may already be organized to cut and fold such a cardboard box.
[0050] The method for adding CAD files, such as a storable CAD file 137, to the list of rendered CAD files 109 is similar to the process for querying the list of rendered CAD files 109 using the queryable CAD file 107. First, the primary addressable elements 133 are rendered into a primary rasterized channel 119A for the low- resolution, perceptual hash at the hash function resolution 111A. Second, the primary addressable elements 133 are rendered into a primary rasterized channel 119B for the high-resolution, cryptographic hash at the cryptographic resolution 111B. Third, the secondary addressable elements 135 are rendered into a secondary rasterized channel 121A for the low-resolution, perceptual hash at the hash function resolution 111A. Fourth, the secondary addressable elements 135 are rendered into a secondary rasterized channel 121B for the high-resolution, cryptographic hash at the cryptographic resolution 111B. The primary rasterized channel 119A is hashed along with the secondary rasterized channel 121A to form a low-resolution, perceptual hash, equivalent to the search hash 125A. The primary rasterized channel 119B is hashed along with the secondary rasterized channel 121B to form a high-resolution, cryptographic hash, equivalent to the search hash 125B. The new hashes 125A-B are added to the list of rendered CAD files 109 as a key to the storable CAD file 137, which is also stored in the list of rendered CAD files 109. Extraneous information, such as channels directed to color or gluing, may be removed from the storable CAD file 137 upon storing in the list of rendered CAD files 109. Finally, the die knives used to convert a board into a packaging unit based on the storable CAD file 137, and their locations, are also stored as an association to the storable CAD file in the list of rendered CAD files 109.
[0051] As is known in the art, CAD files, such as 2D files corresponding to SRD designs, may be stored as a set of instructions that correspond to vector-based geometric definitions ("geometric vectors") of each line or feature in the file. The geometric vectors may be stored in computer code as, for example, as a line between a first beginning point and a second end point, or an arc having a defined centerpoint, radius, and beginning and ending points. The instructions corresponding to each line or feature may be stored in any data structure known in the art, such as for example, a tree data structure.
[0052] Therefore. FIG. 1 depicts a computer aided design (CAD) search system 100 comprising 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, wherein execution of the programming 113 by the processor 103 configures the CAD search system 100 to perform functions. The CAD search system 100 receives, via the interface 105A, a queryable CAD file 107. The CAD search system 100 renders the queryable CAD file 107 into a perceptual search CAD render 117A, the perceptual search CAD render 117A including a primary perceptual rasterized channel 119A rendered from primary addressable elements 133 of the queryable file 107, the primary addressable elements 133 rendered into the primary perceptual rasterized channel 119A at a perceptual resolution 123A matched to the hash function resolution 111A. The CAD search system 100 calculates a perceptual search hash 125A based upon the perceptual search CAD render 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.
[0053] In some examples, the primary addressable elements 133 define cutting lines.
[0054] In some examples, the perceptual search CAD render 117A further includes a secondary perceptual rasterized channel 121A rendered from secondary addressable elements 135 of the queryable file 107, the secondary addressable elements 135 rendered into the secondary rasterized channel 121A at the perceptual resolution 123A.
[0055] In some examples, the secondary addressable elements 135 define creasing lines.
[0056] In some examples, execution of the programming 113 by the processor 103 further configures the CAD search system 100 to perform functions. The CAD search system 100 renders the queryable CAD file 107 into a cryptographic search CAD render 117B, the cryptographic search CAD render 117B including a primary cryptographic rasterized channel 119B rendered from the primary addressable elements 133 of the queryable file 107, the primary addressable elements 133 rendered into the primary cryptographic rasterized channel 119B at a cryptographic resolution 111B matched to a customer tolerance resolution 111C. The CAD search system 100 calculates a cryptographic search hash 125B based upon the cryptographic search CAD render 117B. The CAD search system 100 compares the cryptographic search hash 125B to a cryptographic target hash 127E of a cryptographic target CAD file 115A of the list of rendered CAD files 109. Based on the comparison of the cryptographic search hash 125B to the cryptographic target hash 127E, the CAD search system 100 returns the cryptographic target CAD file 115A to the interface 105A.
[0057] In some examples, the cryptographic search CAD render 117B further includes a secondary cryptographic rasterized channel 121B rendered from the secondary addressable elements 135 of the queryable file 107, the secondary addressable elements 135 rendered into the secondary cryptographic rasterized channel 121B at the cryptographic resolution 111B.
[0058] In some examples, execution of the programming 113 by the processor 103 further configures the CAD search system 100 to perform functions. The CAD search system 100 determines the customer tolerance resolution 111C based upon a maximum precision of a mold making system configured to manufacture a mold for use in a die press and based on the queryable CAD file 107.
[0059] In some examples, execution of the programming by the processor 103 further configures the CAD search system 100 to perform functions. The CAD search system 100 determines the customer tolerance resolution 111C based upon a resolution of the queryable file 107.
[0060] In some examples, execution of the programming 113 by the processor 103 further configures the CAD search system 100 to perform functions. The CAD search system 100 converts the queryable file 107 from a vector format to a rasterized format.
[0061] 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 processor for making an article from a starting material.
[0062] In some examples, each target file 115A-D in the list of rendered files 109 is associated with at least one die knife 129A-E.
[0063] In some examples, a die knife 129A of the at least one die knife 129A-E is associated with a knife location 131A. Execution of the programming 113 by the processor 103 further configures the CAD search system 100 to perform functions. Based on the comparison of the perceptual search hash 125A to the perceptual target hash 127A and a comparison of a perceptual knife location 131A of a perceptual knife 129A associated with the perceptual target CAD file 115A, return the perceptual target CAD file 115A to the interface 105A.
[0064] In some examples, a die knife 129B of the at least one die knife 129A-D is associated with a knife location 131B and a die knife identifier 129B. Execution of the programming by the processor further configures the CAD search system 100 to perform functions. Based on the comparison of the perceptual search hash 125A to the perceptual target hash 127B and a comparison of a perceptual knife location 131B of a perceptual knife 129B associated with the perceptual target CAD file 115B, return the die knife identifier 129B to the interface 105A.
[0065] In some examples, execution of the programming 113 by the processor 103 further configures the CAD search system 100 to perform functions. The CAD search system 100 receives, via the interface 105B, a storable CAD file 137. The CAD search system 100 renders the storable CAD file 137 into a perceptual source CAD render structurally equivalent to the perceptual search CAD render 117A, the perceptual source CAD render including a primary perceptual source rasterized channel structurally equivalent to the primary rasterized channel 119A, rendered from primary source addressable elements of the storable file, the primary addressable source elements rendered into the primary perceptual source rasterized channel at the hash function resolution 111A. The CAD search system 100 calculates a perceptual source hash, structurally equivalent to a perceptual search hash 125A, based upon the perceptual source CAD render. The CAD search system 100 indexes the storable CAD file 137 in the list of rendered CAD files 109 based upon the perceptual source hash.
[0066] In some examples, the perceptual source CAD render further includes a secondary perceptual source rasterized channel, structurally equivalent to the secondary rasterized channel 121A, rendered from secondary source addressable elements, structurally equivalent to the secondary addressable elements 135, of the storable file 137, the secondary addressable source elements rendered into the secondary rasterized channel at the hash function resolution 111A.
[0067] In some examples, execution of the programming 113 by the processor 103 further configures the CAD search system 100 to perform functions. The CAD search system 100 renders the storable CAD file 137 into a cryptographic source CAD render, the cryptographic source CAD render including a primary source cryptographic rasterized channel, structurally equivalent to the primary rasterized channel 119B, rendered from the primary source addressable elements of the storable file 137, the primary source addressable elements rendered into the primary source cryptographic rasterized channel at a cryptographic resolution 111B matched to a customer tolerance resolution 111C. The CAD search system 100 calculates a cryptographic source hash, structurally equivalent to the search hash 125B. based upon the cryptographic source CAD render. The CAD search system 100 indexes the storable CAD file 137 in the list of rendered CAD files 109 based upon the cryptographic source hash.
[0068] In some examples, the cryptographic source CAD file further includes a secondary cryptographic source rasterized channel, structurally equivalent to the secondary rasterized channel 121B, rendered from the secondary source addressable elements of the storable file 137, the secondary source addressable elements rendered into the secondary source cryptographic rasterized channel at the cryptographic resolution 111B.
[0069] The act of uploading a queryable CAD file 107 and a storable CAD file 137 may be the same act: meaning, an operator may upload a CAD file, the CAD file has search hashes generated, search results are returned to the operator, and the CAD file is stored in the list of rendered CAD files 109 with the search hashes generated for searching purposes used as target hashes for storage and future searching purposes. Therefore, in some examples, the queryable CAD file 107 can be the storable CAD file 137. FIG. 2 is a schematic illustration of a CAD search system 200 embodied in a CAD search device 201, connected to a user device 202 and interface 105A over a wide area network (WAN) 255. In this example, the contents of memory 107 are divided across a memory 207A at the CAD search device 201, and a user device 202. The CAD search device 201 maintains the list of rendered CAD files 109, and the various resolutions 111A-C to which CAD files must be rendered. When a search is performed, the CAD search device 201 also briefly holds the search hashes 125A-B during the time of the search.
[0070] The user device 202 has all of the memory objects required to create the search hashes 125A-B for sending to the CAD search device 201 such as the queryable file 107 and the two search CAD renders 117A-B. The CAD search device 201 may also store the storable CAD file 137 if the user device 202 uploads the storable CAD file 137 and prepares the hashes 125A-B.
[0071] This is only one example of a distributed CAD search system 200: in other examples all of the memory objects used to create the search hashes 125A-B may be stored in the CAD search device 201. The CAD search device 201 may service multiple user devices 202. Each die press in a network may have a user device 202, while a singular CAD search device 201 is utilized. The die knife locations 131A-E may be extrapolated based on the location of the user device 202 where the respective storable CAD file 137 was uploaded.
[0072] FIG. 3 is a schematic illustration of the process by which a CAD file 307 is rendered and hashed to create a perceptual search hash 325A and a cryptographic search hash 325B for that CAD file 307. The perceptual search hash 325A and a cryptographic search hash 325B can be used to search the list of rendered CAD files 109, or can be used to add a record of the CAD file 307 to the list of rendered CAD files 109.
[0073] As in FIG. 1, the CAD file 307 includes primary addressable elements 333, which in this example are cutting instructions. The primary addressable elements 333 are rendered into a primary perceptual rasterized channel 319A at the hash function resolution 111A, as well as rendered into a primary cryptographic rasterized channel 319B at the cryptographic resolution 111B.
[0074] The CAD file 307 also includes secondary addressable elements 335, which in this example are folding instructions. The secondary addressable elements 335 are rendered into a secondary perceptual rasterized channel 321A at the hash function resolution 111A, as well as rendered into a secondary cryptographic rasterized channel 321B at the cryptographic resolution 111B. Though the figures, including FIG. 3, only depict primary addressable elements 333 and secondary addressable elements 335, additional addressable elements may be present in the CAD file 307. These additional addressable elements may be extraneous to the die press, such as inking instructions, or may be relevant to the selecting of die knives, such as addressable information indicating depth of cut. Extraneous addressable elements can be ignored, and useful additional addressable information can be rendered, added to the render, and factored in to the ultimate hash 125A-B calculated.
[0075] Once all four channels 319A-B, 321A-B are rendered, the channels are paired up by resolution, such that each render 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 into renders by resolution, a perceptual search CAD render 317A of the channels at the hash function resolution 111A will exist, as will a cryptographic search CAD render 317B of the channels at the cryptographic resolution 111B. Then, the perceptual search CAD render 317A is hashed into a perceptual search hash 325A, and the cryptographic search CAD render is hashed into a cryptographic search hash 325B. In this example, the perceptual search hash 325A is depicted as the same bitwise length as the cryptographic search hash 325B, however the two types of hashes 325A-B may not be the same length. In some examples, the cryptographic search hash 325B may be longer to preserve the higher level of resolution present in the cryptographic search CAD render 317B. However, if the perceptual search hash 325A is used for exact-or-close matches, while the cryptographic search hash 325B is used for exact matches, then the perceptual search hash 325A may be longer than the perceptual search hash 325B, in order to surface more of the detail within the perceptual search CAD render 317A, and allow for close matches to be identified.
[0076] GEOMETRIC STATISTICAL SEARCHING METHOD
[0077] The description herein above generally relates to 'visual' searching, meaning that the CAD files are found / ranked based on the visual similarity between a target CAD file and any of the CAD files in a library. A library can include any set of CAD designs or CAD layouts having candidates for finding search results against target values or similarity to a given CAD design or CAD layout. A library item, as referred to herein, can be any member of the library. Usually, library items can be CAD files uploaded to a document management system, but the method described herein is not limited to these types of items. Any other representation from which geometric metrics can be calculated or read can be considered a library item. Exemplary embodiments use a Contrastive Language-Image Pre-training ("CLIP") algorithm, by which the CAD file is first converted to an image of 224x224 pixels, after which the CLIP neural network converts the image of 224x224 pixels into an array of 512 floating point numbers, which can be called a fingerprint, for example. Using the cosine similarity function of knn-search or the k-nearest neighbor search, as defined example, similar images can be efficiently found in a database having many (e.g., millions) of CAD files each having their own fingerprint. The method described herein below, which is referred to as the geometric statistical searching method, offers an alternative to the 'visual' searching. Both the 'visual' searching and the geometric statistical searching methods may be used as alternatives or they can be combined. The geometric statistical searching method uses geometric statistics of a CAD file (which may use different geometric statistics depending on whether the file embodies a one-up design or a layout) to determine a similarity scoring.
[0078] The input of the geometric statistical searching 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 per metric. Candidate matches with geometric metrics numerically closer to the target values are considered better matches.
[0079] The target values can either be derived from an input CAD file (for which similar files are to be searched in the library) or from a user interface or other determining mechanism.
[0080] An exemplary target set of CAD statistics may include the following non- exhaustive options:
[0081] Rule length: the total length of the cutting rules of a design if the design were to be produced as a single one-up.
[0082] Crease length: the total length of the creasing rules for a one-up design. Area: the total area of the cut-out box or item (while still flat). Blank width: the width of the bounding box of the cut-out design. Blank height: the height of the bounding box of the cut-out design. Number of flaps: a flap is a part of a box that can be folded away from its surrounding flaps. Each flap remains largely flat on its own, making angles with other flaps by folding over a crease.
[0083] Center of gravity of cutting and creasing lines: represented by two coordinates (vertical and horizontal) on the flat design image. In favor of rotation and mirror independence, the center of gravity can be normalized to the lower-left quadrant, this way indicating a type of eccentricity, more than trying to state whether certain features are to the top or to the bottom (which might only indicate an effect of rotating or mirroring around one of the main axes).
[0084] In most cases, it may be preferred to normalize which dimension of each blank is selected as the blank width vs. blank height by always choosing width to be the longest of the two dimensions. This way, designs which 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 indicating how well the library item matches the target. Usually, a higher score is better, but this is just a convention. As long as one score value is determined and it is clear whether a higher or a lower score is better and results are ordered or filtered accordingly, the method may be considered a scoring method. As used herein, the term 'better' score is intended to mean an item that ranks as a better match.
[0085] Preferred embodiments of the geometric statistical searching method are configured to find designs and layouts that are largely rotation and mirroring independent. Scoring will receive a small penalty for such rotation and mirroring such that non-rotated designs will always score better than identical versions which are rotated, but different designs will score lower regardless of rotation.
[0086] All of the target set of CAD statistics can be calculated using mathematics by following all the lines of the CAD design and adding, subtracting, multiplying, and / or dividing accordingly. The calculated values of the target set 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., into 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. The values can be stored in any measuring system, preferably in the metric system. The calculated values of the target set of CAD statistics are also referred to herein as geometric metrics, which can include any metric for which a value is determined by reading the geometry of the CAD file and calculating a single numeric value from this geometry. Examples of geometric metrics can be total rule length, total crease length, or center of gravity of all lines or a subset of the lines.
[0087] In addition to the target values for the target set of CAD statistics, a further input of the geometric statistical searching 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 a file or database, and can be search-indexed in a search index, such as ElasticSearch, for example. Search-indexing, as described herein, refers to any preparation to make the CAD designs or layouts searchable. Such preparation can include, for example, adding an index in a database or separately indexing the values along with a reference to the original document in, e.g., a Lucene index or a product derived from the Lucene index.
[0088] Yet another input of the geometric statistical searching method can include a hard filter which excludes CAD files for which it is immediately clear that they are not a fit. Such hard filters can include:
[0089] • Forbidden files, which can be:
[0090] Files to which the user has no access (e.g., each external user may have access to a library which includes private files designed for a single customer and not visible to any other external user), or
[0091] Files on which there is legal rule to not be used (intellectual property, etc.).
[0092] • Outdated files.
[0093] The library may contain life cycle features including "archived" or other statuses which can be defined to not appear in search results unless specifically included.
[0094] • Out of boundary values.
[0095] When searching for certain dimensions, out of boundary values can be values so much out of range as to immediately disqualify the file, no matter how well the other values fit (e.g., when searching for a blank width of 300mm, anything smaller than 250mm or larger than 350mm may be excluded).
[0096] • Non-fitting attributes (such as the exclusion of corrugated designs when searching for a folding carton design, for example, as regardless of the fit visually or statistically, the design is unlikely to be useful).
[0097] • No values / non-existent values (i.e., when certain statistics are not available, a file should be excluded from a search using such statistics; for example, label shapes typically have no creases, and can be eliminated from the search pool when searching for a file with a non-zero number of creases.
[0098] Using hard filters, such as the one described above, may provide a significant speed-up of the geometric statistical search method, creates value, and is perfectly combinable with the proposed methods.
[0099] An exemplary geometric statistical searching search method thus may include the following steps:
[0100] 1. Accepting or calculating target values for each of the statistical metrics. Weights may also be accepted (e.g., a zero weight for a metric makes a file irrelevant for a search based on that metric). 2. Accepting hard filters from a user interface to limit the search set. Optionally, determining additional hard filters by setting maximum ranges on each of the metrics (e.g., each having a maximum 10% deviation).
[0101] 3. Running over the remaining CAD designs and calculating a total distance by calculating a distance or a sub-distance (e.g., a single number indicating a deviation between a library metric and a target metric) for each of the metrics and combining the calculated sub-distances to form a total distance (e.g., any number calculated by a mathematical function with an input the distances for the individual metrics and optionally weights per metric such that the total distance can be 0 for a perfect match or 'all metrics' match, or can be positive number, including 0). a. distance per metric is the deviation between the library metric and the target metric. A distance of 0 means the metrics are identical. Distance is never negative. A typical distance is calculated with the formula valuel / value2 - 1, where valuel is the largest of the target and the candidate value, and value2 is the smallest of the target and the candidate value. Example: target rule length 200. Rule length of library design (candidate): 300. then distance = 300 / 200 - 1 = 0.5. b. multiply the distance with the weight for this property (e.g., metric). The weights assigned to the metrics are usually between 0 and 1. c. simplest total distance is the sum of all weighted distances (e.g., taximetric distance) d. other distance functions (e.g., Euclidean) may also be used but are usually slower without fundamentally improving the search results.
[0102] 4. Optionally combining the above steps of the geometric statistical searching method with the 'visual' distance (e.g., using the cosine similarity on the CLIP fingerprint), as described above. The results can again be 'added' 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 (l-cosinesimilarity) / 2 (so identical maps to 0 and totally different maps to (1 - (-l)) / 2 = 1.
[0103] 5. Keep track of the top X (number) of hits (e.g., having the lowest distance), discarding anything worse. The top X (number) of matching results can be a set of library items with a cardinal number of X or lower. Usually, X is a relatively small number, such as 10, for example. In this example, the top X (number) of matching results would return the 10 best matching library items, or less, e.g., because less than 10 items fit the hard filter (described below) or because an optimization (also described below) was used which does not always return the exact requested number (and usually returns a few less). 6. Return the top X hits
[0104] The above algorithm is preferably implemented in a search engine providing a function for scripted scoring. One example is ElasticSearch.
[0105] Some technologies may require scoring to be higher for better matches. In the distance function described above, however, lower values are considered better match values (and 0 is the best match value). The distance can be converted to score with following formula : score = l / (l+distance). distance = 0 — > score = 1 distance = infinity — > score = 0
[0106] A possible speed improvement of the geometric statistical searching method may be achieved by considering each of the metrics as a vector in the knn search space. For example, with, e.g., 7 metrics, the target metric set is 1 point in the 7-dimensional space in which each of the library CAD designs is also represented by a point. Ideally, the points are already weighted in this search space so that conventional distance functions can be used in the knn-nearest searches.
[0107] State of the art knn-search optimizations, for example the HNSW algorithm, which is integrated in ElasticSearch and OpenSearch, can be used to achieve a top x result faster than by exhaustively running over all candidates.
[0108] The geometric statistical searching method can be a preferred search method if the search set is very large and the hard filters are not selective enough.
[0109] A drawback of the geometric statistical searching method is that it cannot be combined in a straightforward way with the cosine similarity for the 'visual' searching.
[0110] Optimizations for layouts
[0111] A special case is to find similar CAD layouts. The above described geometric statistical searching algorithm works well to find very similar CAD layouts, but stops working well when the number of copies of the one-up design is different between the CAD layouts or when multiple designs are combined in one layout.
[0112] For example, consider 2 layouts of a very similar (but not identical) one- up design. The 2 layouts have a different number of copies.
[0113] This will result in a different total area, total crease length, total cut length and also the visual similarity is not great (CLIP will see some similarity in the repeating vertical and horizontal lines, but will surely punish the overall difference in the picture).
[0114] The similarity between these layouts can, however, still be detected in two distinct ways (which can be used as alternatives). The first way for detecting similarity between layouts can use Derived statistics.
[0115] Typically, step and repeating the same one-ups (largely) preserves the ratio between the statistical values.
[0116] The ratio between cut and crease is fairly indicative for the shape of a one-up design. Scoring layouts high when this ratio is similar to the target ratio will return layouts with possibly very different number of copies, but with one-up designs which are likely similar, a further refinement can be to 'guess' the ratio between the number of copies during scoring by, e.g., taking the ratio between the crease values of candidate and target, and applying that ratio to the target values to determine new targets.
[0117] For example: layout 1 : crease: 300 layout 2: crease: 450
[0118] Assuming that layout 2 has 1.5 times the number of copies of layout 1 (e.g., layout 2 has 6 copies and layout 1 has 4 copies), a 1.5 ratio can be applied (just for this candidate) to all the targets. Thus, the expected area of layout 2 can be 1.5 the area of layout 1 (assuming this area is the sum of all cut out boxes it produces). The same method can be applied to rule length, etc. Thus, if the deviations from the 'scaled' targets are added instead of the deviations from the original targets, the method will need to give up one of the metrics to 'always match' as this metrics is used to calculate the ratio. In the example above, a crease will always match the scaled target as the scale was chosen to match the crease metric.
[0119] This method works particularly well when the layout is made of copies of one design.
[0120] The method does not work as well for layouts made of multiple designs where each design might have a different number of copies in both layouts. It also flags geometrically scaled layouts as very good matches while that might not be the intention of the user. In the above example, a layout with the same number of copies, but all items geometrically scaled with a factor 1.5 would also come out as a very good match while it is clearly creating very different boxes (e.g., much bigger).
[0121] The second way for detecting similarity between layouts can use one-up extraction.
[0122] A more effective method (needing more upfront work) is to extract the one-ups from the CAD layout and separately search-index them with a reference to the CAD layout from which they are extracted. A CAD engine can investigate the layout and search for repeated one- ups. For example, when using the CF2 format, each one-up is typically found as a SUB command with its lines, then the SUB command is called multiple times with different origin coordinates. Extracting these SUB commands to separate CAD designs is usually straightforward. Other CAD formats can have the one-ups embedded and can use methods to extract them. One example is the ArtiosCAD MFG format, which allows, using the Esko CAD engine to extract .ARD files which perfectly represent the one-ups from which the MFG was derived.
[0123] In any case, these one-ups are then treated as normal designs to calculate their metrics and are search-indexed.
[0124] This approach allows the following flows:
[0125] • design to layout search: For a given a specific CAD design, the method can find in which CAD layouts the design is used or a similar design is used. A perfect match is usually a prior job for the same design, certainly if the original design is also in the CAD library. This answers the question: given a specific input design (e.g., CAD lines extracted from a PDF file), is there a layout closely matching these design lines and therefore likely representing an existing physical die that can be used to cut the provided file / project?
[0126] • layout to design search: Given a specific CAD layout, the method can find whether there a similar CAD design in the library. This is of value when a layout is provided with lines similar to a standardized / corrected / optimized design.
[0127] • layout to layout search: Given a specific CAD layout, the method can find a CAD layout creating similar boxes (possibly in larger numbers per cut). For the latter two flows, the input CAD layout also needs to have designs extracted. Then the search needs to be repeated for each of the extracted designs (typically only one or a few) and the results should either be presented separately or re-sorted with a post sort (which is straightforward as the number of search results for each is typically capped to only small number - usually 10).
[0128] Re-sorting the results once the set is small
[0129] A further improvement of the geometric statistical searching method is to re-sort the results once the set is small.
[0130] The above described method might have returned a small number of matching candidates (e.g., 10). The method has sorted these matching candidates according to 'fast' statistics. With such a small number of candidates, it becomes possible to open each of the CAD designs and perform a deeper comparison to, e.g., return both a resorting and a qualitative analysis.
[0131] Re-sorting :
[0132] More details can be investigated, e.g., the system can look for the percentage of fully overlapping lines. Two designs can perfectly have the same cut, crease and area while still being very different. 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 fast score will be high while the detailed score - perfectly overlapping lines - will be very low. qualitative analysis:
[0133] The system can return a list of found differences such as : 'window cut added', 'mirrored' , 'missing flap', 'different corner rounding'.
[0134] The following terminology is used throughout the foregoing description and in the appended claims: geometric metric = any metric for which a value is determined by reading the geometry of the CAD file and calculating a single numeric value from this geometry. Examples are total rule length, total crease length, center of gravity of all lines or a part of the lines. target values = one value per metric. Candidate matches with geometric metrics numerically closer to the target values are considered better matches. search indexing = any preparation to make designs or layouts searchable. This could be adding an index in a database or separately indexing the values along with a reference to the original document in e.g. a Lucene index or a product derived from this. library = any set of CAD designs or layouts having candidates for finding search results against some target values or similarity to a given design or layout library item = any member of the library. Usually these are files uploaded to a document management system, but the method is not limited to this. Any representation from which the geometric metrics can be calculated or read is considered a library item. top x results = a set of library items with cardinal number x or lower. Usually, x is a relatively small number like 10. So top x results would return the 10 best matching library items, or less, e.g. because less than 10 items fit the hard filter or because an optimization was used which does not always return the exact requested number, (usually it returns a few less). k-nearest neighbor search: as defined at, e.g., https: / / en.wikipedia.org / wiki / K-nearest neighbors algorithm score and better score = Score is a single number indicating how well the library item matches the target. Usually a higher score is better but this is just a convention. As long as 1 score value is determined and it's clear whether higher or lower score is better and results are ordered or filtered accordingly, it's a scoring method. We generalize to 'better' score whatever ranks as a better match. distance = a single number indicating a deviation between a library metric and a target metric. The distance is 0 when the library metric and target metric are the same, distance is never negative. Different distance functions can be used like the absolute value of the difference between the metrics or the ratio between the largest and smallest minus 1. total distance = any number calculated by a mathematical function with an input the distances for the individual metrics and optionally weights per metric such that total distance will still be 0 for a perfect match (all metrics match) and will be positive including 0.
[0135] Although the invention is illustrated and described herein with reference to specific embodiments, the invention is not intended to be limited to the details shown. Rather, various modifications may be made in the details within the scope and range of equivalents of the claims and without departing from the invention. In particular, although discussed primarily herein with respect to an embodiment in which the CAD files sought to be identified have common cutting and / or creasing elements to the queryable CAD file, to advantageously avoid making new dies, the invention is not limited to any particular purpose for seeking a same or similar CAD file. Identifying a similar CAD file may be desired for any purpose, without limitation, such as for reviewing other information of interest from a job associated with the CAD file. For example, job information associated with in a particular CAD file may relate to a specific end user or to a specific combination of inks used on a particular substrate by a specific printer, which job may have associated therewith certain rules or calibration curves or other information of use for applying to a new job associated with the queryable CAD file. As another example, a CAD file may describe a three-dimensional (3D) model to be extruded by a 3D printer: however, while printing the model, certain non-printed components may need to be inserted into the model during the print. Finding CAD files with similar non-printed components may provide for insight for installing, or may provide more efficient identification of non-printed components of a similar structure. - J-
[0136] The instructions, programming, or application(s) may be software or firmware used to implement the device functions associated with the device such as the scanners, printers and PCs described throughout this description. Program aspects of the technology may 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 on or embodied in a type of machine or processor readable medium (e.g., transitory or non-transitory), such as a memory of a computer used to download or otherwise install such programming into the source / destination PC and / or source / destination printer.
[0137] Of course, other storage devices or configurations may be added to or substituted for those in the example. Such other storage devices may be implemented using any type of storage medium having computer or processor readable instructions or programming stored therein and may include, for example, any or all of the tangible memory of the computers, processors or the like, or associated modules.
[0138] It should be understood that all of the figures as shown herein depict only certain elements of an exemplary system, and other systems and methods may also be used. Furthermore, even the exemplary systems may comprise additional components not expressly depicted or explained, as will be understood by those of skill in the art. Accordingly, some embodiments may include additional elements not depicted in the figures or discussed herein and / or may omit elements depicted and / or discussed that are not essential for that embodiment. In still other embodiments, elements with similar function may substitute for elements depicted and discussed herein.
[0139] Any of the steps or functionality of the system and method for converting graphic files for printing can be embodied in programming or one more applications as described previously. According to some embodiments, "function," "functions," "application," "applications," "instruction," "instructions," or "programming" are program(s) that execute functions defined in the programs. Various programming languages may be employed to create one or more of the applications, structured in a variety of manners, such as object-oriented programming languages (e.g., Objective-C, Java, or C+ + ), procedural programming languages (e.g., C or assembly language), or firmware. In a specific 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) may be mobile software running on a mobile operating system such as IOS™, ANDROID™, WINDOWS® Phone, or another mobile operating systems. In this example, the third party application can invoke API calls provided by the operating system to facilitate functionality described herein. Hence, a machine-readable medium may take many forms of tangible storage medium. Non-volatile storage media include, for example, optical or magnetic disks, such as any of the storage devices in any computer(s) or the like, such as may be used to implement the client device, media gateway, transcoder, etc. shown in the drawings. Volatile storage media include dynamic memory, such as main memory of such a computer platform. Tangible transmission media include coaxial cables; copper wire and fiber optics, including the wires that comprise a bus within a computer system. Carrier-wave transmission media may take the form of electric or electromagnetic signals, or acoustic or light waves such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media therefore include for example: a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD or DVD-ROM, any other optical medium, punch cards paper tape, any other physical storage medium with patterns of holes, a RAM, a PROM and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave transporting data or instructions, cables or links transporting such a carrier wave, or any other medium from which a computer may read programming code and / or data. Many of these forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to a processor for execution.
[0140] The scope of protection is limited solely by the claims that now follow. That scope is intended and should be interpreted to be as broad as is consistent with the ordinary meaning of the language that is used in the claims when interpreted in light of this specification and the prosecution history that follows and to encompass all structural and functional equivalents. Notwithstanding, none of the claims are intended to embrace subject matter that fails to satisfy the requirement of Sections 101, 102, or 103 of the Patent Act, nor should they be interpreted in such a way. Any unintended embracement of such subject matter is hereby disclaimed.
[0141] It will be understood that the terms and expressions used herein have the ordinary meaning as is accorded to such terms and expressions with respect to their corresponding respective areas of inquiry and study except where specific meanings have otherwise been set forth herein. Relational terms such as first and second and the like may be used solely to distinguish one entity or action from another without necessarily requiring or implying any actual such relationship or order between such entities or actions. The terms "comprises," "comprising," "includes," "including," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that has, comprises or includes a list of elements or steps does not include only those elements or steps but may include other elements or steps not expressly listed or inherent to such process, method, article, or apparatus. An element preceded by "a" or "an" does not, without further constraints, preclude the existence of additional identical elements in the process, method, article, or apparatus that comprises the element.
[0142] Unless otherwise stated, any and all measurements, values, ratings, positions, magnitudes, sizes, and other specifications that are set forth in this specification, including in the claims that follow, are approximate, not exact. Such amounts are intended to have a reasonable range that is consistent with the functions to which they relate and with what is customary in the art to which they pertain. For example, unless expressly stated otherwise, a parameter value or the like, whether or not qualified by a term of degree (e.g. approximate, substantially or about), may vary by as much as ± 10% from the recited amount.
[0143] In addition, in the foregoing Detailed Description, it can 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 expressly recited in each claim. Rather, as the following claims reflect, the subject matter to be protected may lie in less than all features of any single disclosed example. Hence, the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separately claimed subject matter.
[0144] While the foregoing has described what are considered to be the best mode and / or other examples, it is understood that various modifications may be made therein and that the subject matter disclosed herein may be implemented in various forms and examples, and that they may be applied in 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 concepts.
Claims
What is Claimed :
1. A computer aided design (CAD) search system comprising : a processor; an interface, coupled to the processor; a memory, coupled to the processor, including machine-readable instructions embodying : a list of rendered CAD files, and a hash function resolution; and machine-readable instructions embodying programming in the memory, wherein execution of the programming by the processor configures the CAD search system to perform functions, including functions to: receive, via the interface, a queryable CAD file; render the queryable CAD file into a perceptual search CAD render, the perceptual search CAD render including a primary perceptual rasterized channel rendered from primary addressable elements of the queryable file, the primary addressable elements rendered into the primary perceptual rasterized channel at a perceptual resolution matched to the hash function resolution; calculate a perceptual search hash based upon the perceptual search CAD render; compare the perceptual search hash to a perceptual target hash of a perceptual target CAD file of the list of rendered CAD files; based on the comparison of the perceptual search hash to the perceptual target hash, return the perceptual target CAD file to the interface.
2. The CAD search system of claim 1, wherein the primary addressable elements define cutting lines.
3. The CAD search system of claim 1, wherein the perceptual search CAD render further includes: a secondary perceptual rasterized channel rendered from secondary addressable elements of the queryable file, the secondary addressable elements rendered into the secondary rasterized channel at the perceptual resolution.
4. The CAD search system of claim 3, wherein the secondary addressable elements define creasing lines.
5. The CAD search system of claim 1, wherein execution of the programming by the processor further configures the CAD search system to perform functions, including functions to: render the queryable CAD file into a cryptographic search CAD render, the cryptographic search CAD render including a primary cryptographic rasterized channel rendered from the primary addressable elements of the queryable file, the primary addressable elements rendered into the primary cryptographic rasterized channel at a cryptographic resolution matched to a customer tolerance resolution; calculate a cryptographic search hash based upon the cryptographic search CAD render; compare the cryptographic search hash to a cryptographic target hash of a cryptographic target CAD file of the list of rendered CAD files; and based on the comparison of the cryptographic search hash to the cryptographic target hash, return the cryptographic target CAD file to the interface.
6. The CAD search system of claim 5, wherein the cryptographic search CAD render further includes: a secondary cryptographic rasterized channel rendered from the secondary addressable elements of the queryable file, the secondary addressable elements rendered into the secondary cryptographic rasterized channel at the cryptographic resolution.
7. The CAD search system of claim 5, wherein execution of the programming by the processor further configures the CAD search system to perform functions, including functions to: determine the customer tolerance resolution based upon a maximum precision of a mold making system configured to manufacture a mold : for use in a die press, and based on the queryable CAD file.
8. The CAD search system of claim 5, wherein execution of the programming by the processor further configures the CAD search system to perform functions, including functions to: determine the customer tolerance resolution based upon a resolution of the queryable file.
9. The CAD search system of claim 1, wherein execution of the programming by the processor further configures the CAD search system to perform functions, including functions to: convert the queryable file from a vector format to a rasterized format.
10. The CAD search system of claim 1, wherein the queryable file defines a geometry of at least one individual periphery to be cut with a cutting tool for use in a manufacturing processor for making an article from a starting material.
11. The CAD search system of claim 1, wherein each target file in the list of rendered files is associated with at least one die knife.
12. The CAD search system of claim 11, wherein a die knife of the at least one die knife is associated with a knife location; and execution of the programming by the processor further configures the CAD search system to perform functions, including functions to: based on the comparison of the perceptual search hash to the perceptual target hash and a comparison of a perceptual knife location of a perceptual knife associated with the perceptual target CAD file, return the perceptual target CAD file to the interface.
13. The CAD search system of claim 11, wherein a die knife of the at least one die knife is associated with a knife location and a die knife identifier; and execution of the programming by the processor further configures the CAD search system to perform functions, including functions to: based on the comparison of the perceptual search hash to the perceptual target hash and a comparison of a perceptual knife location of a perceptual knife associated with the perceptual target CAD file, return the die knife identifier to the interface.
14. The CAD search system of claim 1, wherein execution of the programming by the processor further configures the CAD search system to perform functions, including functions to: receive, via the interface, a storable CAD file; render the storable CAD file into a perceptual source CAD render, the perceptual source CAD render including :a primary perceptual source rasterized channel rendered from primary source addressable elements of the storable file, the primary addressable source elements rendered into the primary perceptual source rasterized channel at the hash function resolution; calculate a perceptual source hash based upon the perceptual source CAD render; index the storable CAD file in the list of rendered CAD files based upon the perceptual source hash.
15. The CAD search system of claim 14, wherein the perceptual source CAD render further includes: a secondary perceptual source rasterized channel rendered from secondary source addressable elements of the storable file, the secondary addressable source elements rendered into the secondary rasterized channel at the hash function resolution.
16. The CAD search system of claim 14, wherein execution of the programming by the processor further configures the CAD search system to perform functions, including functions to: render the storable CAD file into a cryptographic source CAD render, the cryptographic source CAD render including a primary source cryptographic rasterized channel rendered from the primary source addressable elements of the storable file, the primary source addressable elements rendered into the primary source cryptographic rasterized channel at a cryptographic resolution matched to a customer tolerance resolution; calculate a cryptographic source hash based upon the cryptographic source CAD render; index the storable CAD file in the list of rendered CAD files based upon the cryptographic source hash.
17. The CAD search system of claim 16, wherein the cryptographic source CAD file further includes: a secondary cryptographic source rasterized channel rendered from the secondary source addressable elements of the storable file, the secondary source addressable elements rendered into the secondary source cryptographic rasterized channel at the cryptographic resolution.
18. A method implemented by a computer for querying based upon a queryable computer aided design (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 starting material, the method comprising the steps of: rendering, with a processor of the computer, the queryable CAD file into a perceptual search CAD render, the perceptual search CAD render including a primary perceptual rasterized channel rendered from primary addressable elements of the queryable file, the primary addressable elements rendered into the primary perceptual rasterized channel at a perceptual resolution matched to a hash function resolution; calculating, with the processor, a perceptual search hash based upon the perceptual search CAD render; comparing, with the processor, the perceptual search hash to a perceptual target hash of a perceptual target CAD file of a library of rendered CAD files; based at least in part on the comparison of the perceptual search hash to the perceptual target hash, returning the perceptual target CAD file to the interface.
19. The method of claim 18, further comprising : rendering, with the processor, the queryable CAD file into a cryptographic search CAD render, the cryptographic search CAD render including a primary cryptographic rasterized channel rendered from the primary addressable elements of the queryable file, the primary addressable elements rendered into the primary cryptographic rasterized channel at a cryptographic resolution matched to a customer tolerance resolution; calculating, with the processor, a cryptographic search hash based upon the cryptographic search CAD render; comparing, with the processor, the cryptographic search hash to a cryptographic target hash of a cryptographic target CAD file of a library of rendered CAD files; and based on the comparison of the cryptographic search hash to the cryptographic target hash, returning the cryptographic target CAD file to the interface.
20. The method of claim 19, wherein each rendered CAD file in the library of rendered CAD files comprises calculated geometric metrics corresponding to CAD designs or layouts embodied in the CAD file, and the queryable target CAD file defines target values for the geometric metrics, wherein the method comprises iterating over the library or a part of the library, calculating for each file in the library a total distance or a score based upon the total distance by calculating a sub-distance for each of the geometric metrics versus the respective target value metric using a firstdistance function and combining the sub-distances to define the total distance or score, wherein a lower value of the total distance or a higher value of the score represents a better match of the library file relative to the input file target values; and returning the top x number of matching results with highest scores or lowest total distances, wherein the comparison of the cryptographic search hash to the cryptographic target hash is calculated using a second distance function and used as one of the sub-distances that forms the total score.
21. A method for finding a top x number of matching results of computer aided design (CAD) designs or layouts based upon 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 starting material, the method comprising the steps of: a) upfront calculating geometric metrics for each of a plurality of CAD designs or layouts in a library and storing the calculated geometric metrics in a computer memory; b) accepting or calculating target values for the geometric metrics from an input file; c) iterating over the library or a part of the library, calculating for each library item a total distance or a score based upon the total distance, by calculating a sub-distance for each of the geometric metrics versus the respective target metric 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 represents a better match of the library item relative to the input file target values; and d) returning the top x number of matching results with highest scores or the lowest total distances.
22. The method of claim 21, further comprising an additional step of hard filtering of the library or a part of the library between step b) and step c).
23. The method of claim 22, wherein the hard filtering comprises a boundary check which excludes library items that deviate by more than a predetermined percentage from the target value of the input file target values.
24. The method of claim 21, wherein the total distance function is a sum of the distances for 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 rendered images which were converted to a fingerprint consisting of an array of numbers, the another sub-distance being determined from a mathematical distance function betweensaid fingerprints, and adding the calculated another 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 prior to calculating the total distance.
27. A method for finding a top x results of matching designs or layouts, the method comprising : a) upfront calculating geometric metrics for each of a plurality of computer aided design (CAD) designs or layouts in a library and search-indexing the calculated geometric metrics of the CAD designs or layouts with a reference to a CAD design or layout; b) accepting or calculating from an input file target values for the geometric metrics and optionally a set of hard filters; c) using queries in a search index to: i) immediately exclude library items that do not match the hard filters or have a distance that is larger than a predetermined threshold distance from the input file target values; ii) setting a scoring function which scores better when deviations between the geometric metrics and the input file target values are smaller; and iii) returning the top x results of the matching designs or layouts according to the scoring function.
28. A method for finding a top x results of matching designs or layouts, the method comprising : a) upfront calculating geometric metrics for each of a plurality of CAD designs or layouts in a library and search-indexing the calculated geometric metrics with a reference to a CAD design or layout, wherein the search-indexing stores each of the calculated geometric metrics as a vector in which each coordinate represents one of the calculated geometric metrics; b) accepting or calculating from an input file target values for the geometric metrics and converting the target values into vectors organized in a same way as vectors for the plurality of CAD designs or layouts; c) using a k-nearest neighbor search to find the x closest matches of each vector to a target vector; and d) returning the corresponding CAD designs or layouts represented by the found vectors.
29. The method of claim 28, wherein a hard filter is added which excludes candidates either upfront, during or after the k-nearest neighbor search.
30. A method for finding a top x results of matching layouts or matching designs to layouts or matching layouts to designs, the method comprising : a) upfront calculating geometric metrics for each of a plurality of CAD designs and layouts in a library and search indexing the calculated geometric metrics; b) for the CAD layouts in the library, extracting the CAD designs, calculating statistic metrics for the CAD designs, and storing the calculated statistic metrics as additional documents in an index, keeping a reference to the CAD layout from where the CAD designs were extracted; c) accepting or calculating from an input file target values for the geometric metrics; d) iterating over the library or a part of the library, calculating for each library item a total distance or a score based on the total distance by calculating a subdistance for each of the geometric metrics versus the respective target metric and combining the sub-distances to form a total distance, wherein a lower value of the total distance or a higher value of the score represents a better match of the library item relative to the input file target values; and e) returning the top x library items with highest scores or lowest total distances;31. The method of claim 30, further comprising for each extracted CAD design, returning the CAD layout from which the CAD design was extracted in addition to, or in place of, the extracted CAD design.