Automating mechanical drawing workflow by geometric quantization

By using geometric quantization technology and cell diagrams in CAD/CAM/CAE and printed circuit board design software, the problem of difficult drawing automation in the existing technology is solved, and more efficient and accurate drawing automation is achieved, and drawing efficiency and aesthetics are improved.

CN119720304APending Publication Date: 2025-03-28AUTODESK INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410317147.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-09-27
Filing Date
2024-03-20
Publication Date
2025-03-28

AI Technical Summary

Technical Problem

The prior art is difficult to realize drawing automation in CAD/CAM/CAE and printed circuit board design software, especially in identifying and handling complex geometric shapes and automatic scaling, arrangement of views, etc.

Method used

Using geometric quantization technology, mechanical drawing data is represented as quantized forms through cell diagrams, simplifying geometric shapes and making them more suitable for automated processing. This technology includes functions such as automatic interruption of long parts, overlap detection, automatic arrangement, dimension marking, etc., and uses cell diagrams to automate the drawing workflow.

Benefits of technology

It realizes the automation of the drawing workflow, improves the efficiency and accuracy of drawing, reduces the need for human intervention, can complete complex drawing tasks more quickly, and improves the aesthetics and readability of drawings.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure HDA0004749291830000011
    Figure HDA0004749291830000011
  • Figure HDA0004749291830000021
    Figure HDA0004749291830000021
  • Figure HDA0004749291830000031
    Figure HDA0004749291830000031
Patent Text Reader

Abstract

A method and system for automating drawing is provided. A map of two or more entities is obtained and a resolution is determined. Based on the resolution, the drawing is quantized into a cell map. The cell graph is a set of a plurality of cells stored in a contiguous memory. Each of the plurality of cells is quantized geometric data for a corresponding entity and provides a minimum tangible information unit about the corresponding entity. Each of the plurality of cells is a number representing domain-specific information about a corresponding entity. The quantization includes rounding a value exceeding a specified threshold into a resolution tolerance of the resolution. A cell graph is utilized to automatically modify the drawing.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art Technical Field

[0001] The present invention relates generally to computer-aided design (CAD), computer-aided manufacturing / modeling (CAM), computer-aided engineering (CAE), and printed circuit board design software applications, and particularly to a method, apparatus, system, and article of manufacture for automating drawing drafting in such applications.

[0002] 2. Description of Related Technology

[0003] Human intuition drives most of the drafting decisions in CAD / CAM / CAE / PCB design software applications. For example, drafting decisions may include which orthogonal view should be placed for a component, where the view should be placed on the worksheet and at what scale, and where long parts should be interrupted. Without human intuition, or at least without a way to mimic intuition, any of the above-mentioned drawing automation may fall short. In addition, in the field of drafting / drafting, geometric data structures that hold information, such as BREP (boundary representation), viewports, block table records, and geometric data structures (e.g., lines, arcs, and circles), are too rich to be automated. Therefore, it is desirable to automate drawing / drafting workflows that require subject matter expertise or are time-consuming.

[0004] In the current data-rich world, it is difficult to perform human-centric automation. It is desirable to have technology that is lightweight, fast, flexible, and puts humans / cartographers at the core of automation.

[0005] To simplify the drafting / drawing process, prior art systems have traditionally used templates. A drawing sheet is stamped / generated using a template, and all aspects / attributes of the drawing sheet depend on how the particular template is configured. However, the user is responsible for determining what attributes are required, what scale of parts are required, what aesthetic aspects are required, and then manually determining and utilizing a template that provides such attributes.

[0006] To better understand the problems of the prior art, an exemplary drawing scenario may be useful. Assume that a user desires to use a fixed size of paper (e.g., A3) and desires to scale down the drawing (and the parts / components in the drawing) to fit on the paper. Because more data needs to be accommodated on the worksheet, the user may also add other views, making the initial scale wrong. In such cases, the views need to be rescaled accordingly. Another example is that a larger component may not fit on the drawing worksheet, and it may be necessary to interrupt / split the larger component and delete repeated geometry (e.g., along a long flat surface or pipe where the geometry does not change). Unfortunately, the prior art fails to provide an efficient and accurate mechanism to identify such repeated geometric areas and / or scale down the drawing and its parts / components. Summary of the invention

[0007] Embodiments of the present invention automate drawing / cartographing workflows that require subject matter expertise or are time consuming. In this regard, embodiments of the present invention provide geometric quantization as a way to represent mechanical drawing data in a quantized form (referred to herein as a "geometric cell map" or "cell map"). Cell maps maintain geometric and domain specific information in the form of an array of continuous "geometric cells". Cell maps are very efficient in roughly estimating cartography specific tasks and inferring / building on the intuition of the cartographer in the application. In the case of the quantization process, high precision spatial information may be lost, but domain information is retained. Furthermore, since "humans" read the drawings, the loss of this spatial information does not cause a problem because humans cannot understand very high precision spatial information to 10 on a piece of paper anyway. 6 tolerance. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] Referring now to the drawings, wherein like reference numerals designate corresponding parts throughout:

[0009] Figure 1 shows a quantitative form of a cell map according to one or more embodiments of the present invention;

[0010] Figure 2 shows an exemplary cell structure according to one or more embodiments of the present invention;

[0011] Figure 3 shows what a typical cell diagram may look like in accordance with one or more embodiments of the present invention;

[0012] Figure 4A and Figure 4B shows exemplary worksheet cell diagrams and view cell diagrams according to one or more embodiments of the present invention;

[0013] Figure 5 shows a logic flow for automating a drawing modification / drawing workflow according to one or more embodiments of the present invention;

[0014] Figure 6 shows a logic flow for calculating resolution according to one or more embodiments of the present invention;

[0015] FIG. 7A to FIG. 7D An exemplary process for automatically interrupting a long part according to one or more embodiments of the present invention is shown;

[0016] FIG. 8A to FIG. 8C An example of an automatic interruption algorithm according to one or more embodiments of the present invention is shown;

[0017] Fig. 9One or more embodiments of the present invention are shown in which the geometric shape may not be like Fig. 7A Continuous examples like in;

[0018] Fig.10 A logic flow for automatically interrupting a part using a cell diagram is shown according to one or more embodiments of the present invention;

[0019] Fig.11 A method for using a Fig.10 A detailed logic flow of using the cell map to identify unique parts in step 1010;

[0020] Fig.12 shows a logic flow for automatically arranging entities according to one or more embodiments of the present invention;

[0021] FIG. 13A to FIG. 13H shows an exemplary cell map automatic arrangement according to one or more embodiments of the present invention;

[0022] Fig.14 shows the logic flow of automatic nesting operation according to one or more embodiments of the present invention;

[0023] FIG. 15A to FIG. 15F An exemplary automatic nesting operation according to one or more embodiments of the present invention is shown;

[0024] Fig.16A shows parts for automatic viewing according to one or more embodiments of the present invention, and Fig. 16B shows views generated from said part;

[0025] Fig.17 shows a logic flow for an automatic view algorithm according to one or more embodiments of the present invention;

[0026] Fig.18 A logic flow for determining whether any of the view representations is alternative according to one or more embodiments of the present invention is shown;

[0027] Fig.19 graphically illustrating a comparison of automatic views according to one or more embodiments of the present invention;

[0028] Fig. 20 A logic flow for generating automatic cutout views (detail and section views) according to one or more embodiments of the present invention is shown;

[0029] FIG. 21A to FIG. 21C A graphical example of ring generation based on a cell map according to one or more embodiments of the present invention is provided;

[0030] Fig. 22 shows a logic flow for detecting rings using a cell map technique according to one or more embodiments of the present invention;

[0031] FIG. 23A to FIG. 23C shows a graphical example of the same ring check performed in accordance with one or more embodiments of the present invention;

[0032] FIG. 24A to FIG. 24E A graphical illustration showing symmetrical sizing alternatives according to one or more embodiments of the present invention;

[0033] Fig.25A and Fig.25B shows the use of a symmetric size and baseline size generator algorithm according to one or more embodiments of the present invention;

[0034] Fig.26 shows a logic flow for generating unique parts according to one or more embodiments of the present invention;

[0035] FIG. 27A to FIG. 27B and FIG. 28A to FIG. 28E An example of the application of a unique portion generator algorithm according to one or more embodiments of the present invention is shown;

[0036] Fig.29 is an exemplary hardware and software environment for implementing one or more embodiments of the present invention; and

[0037] Fig.30 A typical distributed / cloud-based computer system according to one or more embodiments of the present invention is schematically illustrated. DETAILED DESCRIPTION

[0038] In the following description, reference is made to the accompanying drawings which form a part hereof and in which are shown by way of illustration several embodiments of the invention. It should be understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the present invention.

[0039] Overview

[0040] Understanding morphology will help build the human intuition that is necessary to automate complex workflows. Therefore, embodiments of the present invention attempt to understand the morphology of a part in a way that a draftsman understands. Existing data structures that store geometric information (such as BREP / viewport / block table records) work better in providing drafting features. While these data structures are information rich, they are not suitable for automation. Therefore, embodiments of the present invention augment existing geometric data structures with something that is more suitable for automation. Quantization is the process of "simplifying" geometric data so that the geometry is easy to understand like a human. Quantized geometry provides the faster and more efficient data representation required for automation.

[0041] To provide such quantization, embodiments of the present invention provide cell maps. It may be noted that the quantization of geometry occurs on paper space. Such paper space is where values ​​are rounded by some "resolution" factor. The resolution, in this regard, is a function of paper size and / or user preference. In the quantization, the genealogy and other domain-specific information about the geometric entities remains intact. The smallest tangible unit of information is called a "cell", and the collection of such cells is called a "cell map".

[0042] Cell diagrams are used to roughly estimate cartographic-specific tasks and infer / build on the intuition of the cartographer. Capabilities arising from the use of such cell diagrams include automation, building on human intuition and judgment, and aesthetics.

[0043] Automation: Once the morphology of a part is understood, it may be easier to automate a workflow. For example, the number of orthogonal views required to fully define a part can be determined. As humans, we can easily understand and answer questions simply by looking at a part because we look at the part, not its edges, faces, and vertices. Instead, humans look at the part as a whole and understand its shape and which views convey complete information about the part. Once the morphology of a part is understood, it becomes clearer what views are needed.

[0044] Building Human Intuition and Judgment: The ultimate consumers of 2D (two-dimensional) drawings are humans (e.g., other engineers). The human brain acts as an interpreter that can read mechanical drawings and decode them. When creating drawings, draftsmen implicitly understand this fact and take some creative shortcuts. For example, if a detail feature is at the end of a "long part," draftsmen will often interrupt the part without anything happening and the reader will still understand the geometry of the part. The same is true if the long part has a repeating pattern, and it also makes sense to interrupt such a part. Therefore, as software, embodiments of the present invention build human intuition that can mimic what a draftsman would do. Morphological processing and analysis of quantitative data helps build such human intuition.

[0045] Aesthetics: Mechanical drawings are traditionally ultimately read by humans. Aesthetics and readability are important aspects. Draftsmen often have to spend considerable time moving and arranging views and annotations to make the drawing look nice on paper. Embodiments of the present invention help make the drawing more aesthetically pleasing and can even take into account the client's preferences in the process. For example, embodiments of the present invention can automatically arrange dimensions without overlapping each other or any part geometry.

[0046] In view of the above, exemplary capabilities of embodiments of the present invention may include: (1) actions within the drawing workflow, such as automatic view, automatic arrangement of annotations, and automatic interruption; (2) operations outside of drawing, such as faster nesting algorithms and / or dimension arrangement within the modeling workspace. The following provides further details on some exemplary capabilities that may be provided according to one or more embodiments of the present invention:

[0047] (1) Automatic interruption: With the help of cell maps, embodiments of the present invention can find information entropy and redundancy. Cell maps can be considered as geometric image snapshots, where information is compressed into 64 bits instead of 24 bits for traditional image pixels (picture cells). Redundancy can be identified in "long parts", and if the information redundancy extends beyond a threshold, the embodiment can interrupt the "long part".

[0048] (2) Overlap detection and automatic arrangement: Since the information is arranged in continuous memory, it is very efficient to perform some Boolean operations on this data. The implementation can quickly find out whether some objects overlap each other, and after detecting such overlap, the implementation can quickly find better positions for these objects where they do not overlap. This quantized geometry can be used to automatically arrange dimensions, hole and thread annotations, and other annotations. Cell diagrams can also be used to automatically nest views on a worksheet and scale views up or down when they overlap.

[0049] (3) Dimensioning algorithms and finding unique parts, loops, symmetries, and intersections. In dimensioning algorithms that facilitate automatic dimensioning, geometric cell diagrams are used to decompose loops and begin dimensioning for each loop rather than the entire view. Each loop dimension mimics what a draftsman would do when manually dimensioning. At the loop level, embodiments of the present invention can quickly identify / find the symmetries of these loops, and such identification can help reduce redundant dimensions on symmetrical geometry. Embodiments of the present invention can also overlay one drawing view on top of another drawing view of the same part. Using this capability, embodiments can identify whether geometries are the same and find parts where the geometries are different. Such identification can help dimension the Boolean intersections of views, mimicking what a draftsman would do.

[0050] Additional explanation of the problem

[0051] All user-facing drawing capabilities are powered by rich geometric data. Data such as Face ID, Feature ID, entity specific information such as endpoints, control points, center points, arc points, transformed coordinates, etc. are the backbone of all drawing capabilities. However, geometric information, especially in its current form, is not optimal for automation. It is extremely difficult and sometimes impossible to build the human-centric logic required in the drawing world with current data. For example, determining whether an annotation overlaps a view, or how to determine whether a break can be automatically applied to a part, can be difficult, if not impossible.

[0052] To understand these issues, it may be useful to distinguish between video and drawing. Regarding video: (1) humans are consumers; (2) video can be recorded at much higher frame rates, but (3) there is an artificial constraint that the image stays on the retina for 1 / 20 of a second, so video can be streamed at 24 FPS (frames per second); that is, (4) video is streamed in time, quantized or sampled at 24 images per second. Regarding drawing: (1) humans are consumers; (2) actual models may contain 10 -6 tolerances, but (3) there is an artificial constraint that the user cannot see information smaller than the line thickness, so the redundant information can be deleted; and (4) this is why embodiments of the present invention can spatially sample / quantize the views / worksheets by a certain resolution factor.

[0053] Quantification

[0054] Geometric quantization is a method of representing mechanical drawing data in a quantized form. As used in this article, this form is called a geometric cell diagram or cell diagram. Cell diagrams maintain geometric and domain specific information in the form of an array of continuous cells (also called geometric cells). Cell diagrams are very efficient in roughly estimating drafting specific tasks and building the intuition of the draftsman. In the case of using the quantization process, spatial information may be lost, but it does not cause a problem because humans cannot understand tolerances of 10 on paper. -6 Very high spatial information.

[0055] The terms used herein may have the following meanings:

[0056] Resolution: The resolution of a cell map defines the size of a single sample cell. Resolution is usually a function of the final memory footprint that may be achieved after sampling the data performance characteristics required for that particular application (resolution factor is inversely proportional to performance). Application requirements may vary as some cell map applications may require a smaller resolution while others may work well without more data.

[0057] Geometry Cell: A geometry cell is a quantized geometric data that represents information in a single square block of a resolution unit. It is the smallest tangible unit of information about a certain entity. A cell is generated by quantizing / sampling / discretizing a geometric entity. Furthermore, a geometry cell can consist of a 64-bit value / number that represents domain-specific information about an entity.

[0058] Geometric Cell Map / Cell Map: A cell map is a collection of geometric cells stored in a continuous array. In general, a cell map defines an object in a quantized / discrete form. Furthermore, a cell map is a function of a resolution factor.

[0059] Figure 1 1 shows a quantized form of a cell diagram according to one or more embodiments of the present invention. The quantization occurs on paper space 102. Embodiments of the present invention will have 10 -6 The value of the tolerance is rounded to the value of the tolerance with the defined "resolution" 104. The lineage and other domain specific information about the edge / point remains intact. The cell 106 does not contain spatial information directly. However, spatial information can be inferred by multiplying the current position of the cell 106 by the resolution 104.

[0060] Figure 2 An exemplary cell structure according to one or more embodiments of the present invention is shown. Figure 2 The bit representations shown are merely exemplary, and different quadrilaterals / bits may represent different attributes than indicated. As shown, quadrilateral 202 corresponds to a heat map, while bit 204 represents different object types in a cell (e.g., none, view border, worksheet border, alignment dimension, rotation dimension, radial dimension, etc.). Bit 206 specifies an entity type, such as a geometric line, geometric arc, geometric circle, geometric spline, geometric point, geometric polyline, etc. Bit 208 may be used for other (future) attributes. Bits 210-222 may be used for various attributes, such as virtual bit 210, quadrilateral point 212, bounding box point 214, intermediate point 216, endpoint 218, shadow 220, and reserved bit 222.

[0061] Figure 3 1 shows what a typical cell diagram may look like in accordance with one or more embodiments of the present invention. A cell diagram contains a number of zeros and 64-bit numbers stored in contiguous memory. Figure 4A and Figure 4B Exemplary worksheet cell diagrams and view cell diagrams according to one or more embodiments of the invention are shown.

[0062] Logical Flow

[0063] Figure 5 A logic flow for automating a drawing modification / drawing workflow is shown in accordance with one or more embodiments of the present invention.

[0064] At step 502, a drawing is obtained and the drawing consists of two or more entities.

[0065] At step 504, a resolution is determined (eg, based on paper space).

[0066] At step 506, the drawing is quantized into a cell map based on the resolution. The cell map is a collection of a plurality of cells stored in a contiguous memory. Each of the plurality of cells is quantized geometric data of a corresponding entity of two or more entities. Each of the plurality of cells is a minimum tangible information unit about the corresponding entity. Each of the plurality of cells is a number representing domain-specific information about the corresponding entity. In addition, the quantization rounds off values ​​exceeding a specified threshold to a resolution tolerance of the resolution.

[0067] At step 508, the drawing is automatically modified using the cell map.

[0068] Resolution calculation

[0069] Resolution is an important factor in determining the size of the cell map. When the cell map is too large (which may happen when the resolution is small), memory consumption will increase and performance will decrease. When the cell map is too small (which may happen when the resolution is large), accurate results may not be obtained. To solve this problem, embodiments of the present invention utilize a method for calculating resolution. Figure 6 A logical flow for calculating resolution according to one or more embodiments of the present invention is shown. This method takes a bounding box and a CellSize flag of the entity for which a cell map is to be created. Clients can use the CellSize flag to specify whether they want a fine cell map or a coarse cell map or an optimally sized cell map. Thus, at step 602, a bounding box is obtained, and at step 604, a desired level of granularity for the cell map is determined / obtained (e.g., via a cell size flag value).

[0070] Internally, based on the cell size flag, the implementation may limit the maximum number of rows or columns that can exist in the cell map. Therefore, at step 606, the maximum number of rows or columns of the cell map is determined.

[0071] Based on the maximum row or column value and the bounding box, the resolution may be back-calculated (at step 608) as follows:

[0072] Resolution = max(bounding box length, bounding box width) /

[0073] Maximum number of rows or columns.

[0074] In the example, assuming the dimensions of the part are 250mm x 18mm, the resolution is set to get the best size cell diagram. At a scale of 1:2, the view size in paper space will be 125mm x 9mm, the number of cells in the cell diagram will be 512x38, and the resolution can be back-calculated to 0.24. At a scale of 1:1, the view size in paper space will be 250mm x 18mm, the number of cells in the cell diagram will be 512x38, and the resolution can be back-calculated to 0.49. If the scale is 2:1, the view size in paper space will be 500mm x 36mm, the number of cells in the cell diagram will be 512x38, and the resolution can be back-calculated to 0.97.

[0075] Cell Graph Utilization

[0076] Once the cell map is generated (i.e., the geometry has been quantified), there are a number of different ways to automate the mapping / rendering process in a faster and more efficient manner than prior art techniques (i.e., building on / utilizing the cell map [ Figure 5 The following description sets forth some exemplary automation techniques according to one or more embodiments of the invention.

[0077] Automatic interruption

[0078] The automatic interruption feature is the ability to find redundancy in a "long part" and interrupt the part when the information redundancy exceeds a defined threshold. FIG. 7A to FIG. 7D An exemplary process for automatically interrupting a long part according to one or more embodiments of the present invention is shown. Fig. 7A An exemplary part 702 is shown. Figure 7B Unique feature 704 of part 702 is highlighted. The rest of part 706 has a lot of redundancy. In other words, part 702 has a huge middle portion that is completely blank / no detail. The important geometry is at the ends of part 704. In this regard, even if some middle portion of part 702 is deleted and the ends remain intact, the draftsman can still infer the intermediate information (e.g., the geometric equivalent of the above symbol).

[0079] However, it is not desirable to remove all redundancy as doing so may result in an unsightly part. Figure 7C An example of how the part might look if all redundant information was removed is shown. So instead of removing all areas that "can be removed" by applying breaks, the aspect ratio of the view is maintained so that it looks correct. This aspect ratio is defined in terms of longest side / shortest side. For example, if the shortest side of a part is 1 unit, the longest side should be kept at least 4 units. Applying the settings to Fig. 7A For example, Fig.7D1 shows what the output will look like. As shown, there is a break 708 in the redundant information of part 702, while maintaining the aspect ratio of the part.

[0080] When determining whether to apply a break to a part or how much break to apply, embodiments of the present invention may try not to overuse the break mechanism. For example, settings may ensure that the total percentage of parts deleted by automatic break is greater than a minimum total break percentage. FIG. 8A to FIG. 8C An example of an automatic interruption algorithm according to one or more embodiments of the present invention is shown. Fig. 8A , the highlighted parts 804A-804D (of part 802) are redundant parts of the part where nothing important happens. The settings can define that the sum of all redundant parts 804A-804D should be greater than the minimum total interruption percentage of the part length / width depending on the interruption direction. This means that the automatic interruption feature can only be used if a large part of the part is redundant.

[0081] The minimum total outage percentage sets a minimum percentage limit for the total redundancy. However, because of this, some undesirable results may occur if the total exceeds this minimum, but the individual parts are small (which will produce too many outages and render the entire function useless). Embodiments of the present invention can prevent this anomaly by setting a minimum individual outage percentage, which sets a limit on how large the individual redundant parts need to be before automatic outage is applied.

[0082] exist Fig. 8A , the minimum total interruption percentage is set to 55% and the minimum individual interruption percentage is set to 25%. Figure 8B 806 of different portions of shape 802 are shown. Since the minimum individual break percentage is set to 25%, embodiments of the present invention may only consider the middle 30 unit portions (804B-804C) for break and there are two of these 30 unit portions. The sum exceeds the minimum total break percentage of 55%, so two breaks are applied to these 30% portions 804B-804C. Figure 8C It is shown that the automatic interruption is to be applied to the 30-unit portions 804B-804C without interrupting the 10-unit portions 804A and 804D.

[0083] Following the above, Fig. 9 An example is shown where the geometry may not be as continuous as in 7A. Fig. 9In this case, the part has a repetitive section with consecutive intervals, but the middle section still does not provide any additional information when a human reads it. In this case, relying on geometric information may not be a viable solution. In addition, sometimes, the geometry is not as clean as it should be, for example, there is a continuous broken edge in the middle, and the output may have a tolerance factor. In an embodiment of the present invention, a cell map can be used to calculate the entropy of the part (which is a measure of the randomness of the part's geometry). In this regard, the greater the randomness, the less likely a user is to infer information. Similarly, the less randomness, the more likely a part is to be interrupted. Embodiments of the present invention identify / discover redundancy in parts in the horizontal direction (i.e., how much the part changes geometrically rather than visually when the part is viewed horizontally).

[0084] Fig.10 The logical flow of automatically interrupting a part using a cell diagram according to one or more embodiments of the present invention is shown. At step 1002, the first step is to collect the view chain and check whether the part needs to be interrupted horizontally or vertically. A view chain is a collection of orthogonal views of a part. Typically, a view chain includes a base view and associated projected views of the base view in other orthogonal directions. This may occur as part of the verification itself. During the verification process, the length and width of the views within the view chain are compared, and the user will typically interrupt the longest side of the view. Therefore, as part of the verification, views with the same length or width (whichever is larger) are grouped together. If the aspect ratio of the part is found to be less than a specified / defined aspect ratio threshold, the process is exited.

[0085] At step 1004, the views to be interrupted are collected. The interruption is carried over from the projected view, so embodiments of the present invention may observe the projected view (when the interruption is identified) to ensure that any important content in another view has not been deleted.

[0086] Embodiments of the present invention may only calculate vertical discontinuities.Thus, at step 1006, if the part is found to be taller than it is wide, the part may be rotated 90 degrees.

[0087] At step 1008, the geometric shapes in the cell map are isolated. The cell map contains more information than just the geometric shapes. Therefore, embodiments of the present invention can run masking through the cell map to isolate only the geometric components therein.

[0088] At step 1010, the collected view unit cell graphs are merged together.

[0089] At step 1012 , unique portions of the view are identified via the cell map.

[0090] The output of the process is the interruption view parameters. These parameters define the percentage of the part that needs to be removed due to redundancy of the part to be interrupted (for example, it can also return the parameters of the unique parts in the part).

[0091] Fig.11 A method for using a Fig.10 The detailed logic flow of using the cell map to identify unique parts is described in step 1010.

[0092] In review Fig.11 Before going into the details, it may be useful to provide some background on what are the unique parts of an entity / part. As humans, when we look at any information like an image or text or a geometric shape, we unconsciously filter out the redundancy in that information and focus only on the unique or random values ​​that the information has to convey. A good example of this is an image of just all white pixels. This image does not carry a lot of unique information or the randomness of that information is very low. We can say that the entropy of the image is low. For humans in a broad sense, entropy can be thought of as a measure of information. Also in geometry, if one calculates entropy in a certain way, it can explain the data pretty well. Here are some examples of how finding the entropy of a given geometry can help solve some domain problems:

[0093] (1) Find out where the interrupt is applied: Refer again to 7A to 7C , consider a long cylindrical part 702 with some protrusions at its ends. When a human or draftsman looks at the part, it is obvious that only the ends 704 of the part have some "geometric information", while the large middle portion 706 does not have any information. If it is programmatically recognized that the middle portion 706 does not carry any information, a break can be applied to it, and its reader / viewer will be able to infer the said information.

[0094] (2) Find the location to place the size: Please refer to Fig. 9 , which can be used to illustrate how finding entropy can help identify where to place a dimension. Fig. 9 In the example above, it is easy to say that there is a related pattern and that such pattern does not need to be dimensioned. If we only identify the unique portions of the part, it helps to identify where the dimensions need to be placed.

[0095] Fig.11 The logic is shown such that for a given cell diagram, the function finds where information exists within the cell diagram when traversed horizontally. In addition to determining if a part needs to be interrupted, this is also useful for identifying where to place dimensions. The input is the cell diagram, and the output is a description of the unique part information.

[0096] Since the cell map is traversed horizontally, it is traversed incrementally. The process begins by comparing the nth column to the n+1th column. The process then tries to use the (n)th column and the (n+1)th column and the (n+2)th column and the (n+3)th column. The process then continues to increase. Therefore, the process starts from the nth to the (n+m)th columns and compares the stack with the (n+m+1) to (n+m+m) or (n+2m) columns. In other words, the process begins by comparing the first column and the second column and incrementally comparing the column groups (for example, the first 6 columns are compared with the next 6 columns). As used herein, the "m" value is a constant called maxWavelengthToTry.

[0097] When making comparisons, the system takes into account the inherent approximations that occur once you enter the world of the cell map. In this regard, embodiments of the present invention may sometimes check not only the intended cell, but also the neighboring cells. The tolerance value provides a way for the client to modify the value of the number of neighboring cells that need to be checked. Embodiments of the present invention may set a default value of 1, which is a moderate check, where priority is given to the exact cell, but if that fails, 8 neighboring cells are checked (i.e., three in the upper row, three in the lower row, and two cells on the side). In this regard, the tolerance level used to compare values ​​in the cell map can be strict (e.g., 0), moderate (e.g., 1), or loose (e.g., 2).

[0098] At step 1102, the system checks to determine that the input is correct. More specifically, the embodiment confirms that the defined wavelength is correct relative to the cell map. For example, if -1 (i.e., the default value) is the value of maxWavelengthToTry, then an attempt is made to set maxWavelengthToTry to the number of columns in the cell map divided by 4. Four (4) is chosen because that is the maximum possible value for the wavelength of a unique portion, and exceeding this value is logically impossible or useless. A check can also be performed to ensure that the tolerance is not too high for a smaller cell map (i.e., to confirm that the defined tolerance is correct relative to the cell map).

[0099] At step 1104, the cell map is traversed while comparing columns (up to maxWaveLengthToTry columns). The comparison determines a number of consecutive matching values ​​based on a defined tolerance (e.g., strict, moderate, or loose). In this regard, comparisons are incrementally made across the cell map columns from 1-1 columns to maxWavelengthToTry, and the results are stored in a data structure count (e.g., a consecutive count value). This data structure count stores values ​​in the form of the number of matches seen consecutively while traversing the columns. In other words, the process finds out how the data changes column by column at step 1106.

[0100] At step 1108, once all columns have been processed (one by one), the column blocks / column groups are checked to see if they are identical.The maximum column block may be defined via a constant value (eg, maxWavelengthToTry).

[0101] Once all such traversals are completed, the position of the maximum continuous match is identified / determined, and the final value of the defined wavelength (corresponding to that position) is retrieved and returned at step 1110 .

[0102] Overlap detection and automatic arrangement

[0103] Arranging dimensions is a time consuming and multi-click operation. Arranging dimensions should also take into account annotations, such as hole and thread annotations, waving symbols, and notes. In addition, when arranging dimensions, the arrangement should take into account overlap. Embodiments of the present invention provide overlap detection and automatic arrangement, which provides the ability to determine where objects overlap each other and quickly find a better position for the objects where they do not overlap. Such capabilities can be used to automatically arrange dimensions, hole and thread annotations, and / or other annotations. In addition, views can be nested on a worksheet and can be scaled up / down when they overlap.

[0104] As mentioned above, arranging dimensions is more time-consuming than actually creating the dimensions. Arranging requires precise dragging, clicking, and repeated moving if another dimension is added that conflicts with a view or simply moving a view. Therefore, it is important to automate this task. There are several types of dimensions (also called "dims"): (a) linear dimensions that can only be moved vertically or horizontally; (b) aligned dimensions that can be moved at a certain angle; and (c) radial and diameter dimensions that can be moved 360 degrees. However, the goals of movement are simple: the dimension should be closer to the entity it is measuring, should be compact but conform to standards, and should not overlap any other dimensions, annotations, or views. Adhering to these simple rules provides an algorithm for arranging dimensions.

[0105] Fig.12 A logical flow for automatically arranging entities according to one or more embodiments of the present invention is shown. The input includes (a) a view whose annotations and dimensions are to be arranged, and (b) a specific associated object to be arranged. The output consists of the arranged dimensions.

[0106] At step 1202, the input (ie, the view in question, annotations, and dimensions to be arranged) is processed to create a cell map. FIG. 13A to FIG. 13G An exemplary cell map automatic arrangement according to one or more embodiments of the present invention is shown. More specifically, Fig.13A An exemplary cell diagram 1302 is shown that is created at step 1202. In other words, at step 1202, the cell diagram 1302 is created based on a view of a drawing and one or more annotations or dimensions.

[0107] At step 1204, the cell map 1302 is masked to remove a set of (unnecessary) details (eg, details that the system does not wish to see). Fig. 13B The resulting masked cell map 1304 is shown.

[0108] Since it is not desired to have dimensions and annotations within the view boundaries, at step 1206 a filled cell diagram is created from the masked cell diagram 1304 and the filled area is excluded from having any dimensions / annotations placed therein. Fig. 13C A populated cell diagram 1306 is shown.

[0109] At step 1208, the process iterates over each dimension to try to find a location for it on the worksheet. While iterating, the dimension to be nested is cloned. This way, the dimension cell graphic is in its place and the required text length is known. Before the process continues to nest dimensions, a check can be made to determine if the nesting has been overridden by auto-arrange. Steps 1210-1216 provide details of iterating step 1208.

[0110] At step 1210, once the dimensions to be nested are identified, potential candidate locations for the dimensions are identified. Additionally, in step 1210, lines of potential points (for potential candidate locations) are created and referred to as a "line cell map." The line cell map is then overlaid on the view itself. Fig.13D A line cell diagram 1308 is shown superimposed on a view cell diagram 1310. In other words, at step 1210, a line cell diagram is created, and the line cell diagram includes potential candidate locations for one or more annotations or dimensions.

[0111] Once this is superimposed, step 1212 identifies the intersection of the two cell graphs 1308 and 1310 . Fig.13E These intersections are shown 1312. The cells in the cell map are now candidate locations for placing dimensions. The candidate locations are then ranked. In other words, at step 1212, one or more intersections of the line cell map and the filled cell map are determined / identified, where the intersections identify a subset of candidate locations for one or more annotations or dimensions.

[0112] Once these ranked positions are found, step 1214 tries each position (in the subset of ranked positions) to find / identify a candidate position that does not have any overlap. Fig.13F Candidate position 1314 is shown overlapping with cell map 1302. In contrast, Figure 13G Positions where no overlap was found between the cell map 1302 and the candidate positions 1314 are shown.

[0113] At step 1216, find candidate locations (in the subset) that do not have any overlap (e.g., such as Figure 13G ) and recognizes it as the location of that entity (i.e., annotation or dimension) and returns it. Fig.13H Another example of a combined cell diagram after placement according to one or more embodiments of the present invention is shown.

[0114] Automatic nesting

[0115] Placing views in an aesthetically pleasing manner is very important for a drawing and most user clicks are to achieve this. Nesting is the process of placing views on a worksheet in a compact manner that does not overlap. Automatic Nesting (Automatic Nesting / Auto-Nest) automates the view placement workflow and tidies up the drawing. However, it may be noted that automatic nesting may not be useful unless paired with automatic arrangement as described herein, because automatic arrangement is a process in which we, as a user, can know how many dimensions are created for the drawing views, and until we know this, there is no point in placing the views. In this regard, when scaling or nesting, embodiments of the present invention provide areas (i.e., empty space) reserved for annotations and dimensions around the views (called padding). The more details in the view, the more space is required, and therefore the more space needs to be left around the part / view. In addition, some parts may have details only on one side of the part, while the other side may be just plain. Therefore, embodiments of the present invention dynamically calculate the area around the part by observing the area and looking at the details in the area.

[0116] The automatic nesting algorithm takes as input all base views in the worksheet. After all base views are collected in a list, the first task is to sort them according to the area required by these views. Here, embodiments of the present invention consider the entire area of ​​the view chain (i.e., the base view and its orthogonal views). In this regard, when processing model views, they usually appear as a stack (i.e., the base view + its projection view). Embodiments of the present invention can maintain the relative position of model views with respect to each other. Therefore, views are not nested. Instead, view chains are nested.

[0117] Once all base views are sorted, the first base view is selected and the other views in the list may be ignored and / or removed from the worksheet itself. For the selected base view, the automatic nesting operation begins. All subviews in the base view are collected and the process begins generating cell maps. At the same time, the cell map of the worksheet is collected. For the first view, the worksheet cell map will be blank.

[0118] Fig.14 The logic flow of automatic nesting operations according to one or more embodiments of the present invention is shown.

[0119] At step 1402, one or more views are collected from a drawing. FIG. 15A to FIG. 15B An exemplary automatic nesting operation according to one or more embodiments of the present invention is shown. More specifically, Fig.15A The different views 1502 collected are shown.

[0120] At step 1404, padding for one or more views is determined / calculated and a tuple is created. Depending on the settings, padding may be calculated for a view and stored in a data structure. As used herein, "padding" defines a measure of the desired distance between two views.

[0121] At step 1406, padding is applied to the cell map of the view, depending on where the view is located. In this regard, all vertical and horizontal views are collected (e.g., top, front, and bottom views are collected). Right front and left views can be collected into separate lists. Based on the maximum padding, the same padding can be generated across all views. Step 1404 outputs a combined cell map (i.e., a combination of padded cell maps), which is a good way to visualize nesting. Fig. 15B The padding 1504 that has been generated for all collected views 1502 is shown.

[0122] At step 1406, the filled cell maps are merged / compressed / squeezed together to form a group (also referred to as a merged filled cell map). The function that merges the cell maps together takes as input a base view and locks the other views to its sides. Fig. 15C A merged cell diagram 1506 is shown in accordance with one or more embodiments of the invention.

[0123] At step 1408, worksheet cell diagrams that do not have view(s) are identified / found. Fig.15D shows what the worksheet looks like without a view.

[0124] At step 1410, identify / find empty spaces in the worksheet cell map where the merged filled cell map / view fits (without overlapping anything). In one or more embodiments, empty spaces within the worksheet cell map can be used to identify locations where the cell map may fit without overlapping anything. Fig.15E A completely blank worksheet that can be used for nested filled cell diagrams is shown. Fig.15F Possible locations 1508 of nestable views are shown in accordance with one or more embodiments of the invention.

[0125] Automatic views, dimensioning algorithms, and finding parts, loops, symmetries, and intersections

[0126] Automatic views enable determination of whether two views are essentially alternatives, and if so, retaining only one of the views. The dimensioning algorithm implements automatic dimensioning (as described above). In one or more embodiments, the dimensioning algorithm provides a cell diagram decomposition ring and a starting size for each ring rather than on the entire view. In addition, symmetries in the rings can be identified to reduce the size of symmetrical geometric shapes. In addition, in order to identify whether the geometric shapes are the same, a drawing view can be superimposed on top of another drawing view of the same part. Once different (non-identical) geometric shapes are identified, dimensioning may be limited to the Boolean intersection of the views.

[0127] Automatic View

[0128] In a template-based workflow, it is defined which views need to be marked for a specific part. However, this approach is not efficient because it is not known in advance how many views a certain part will need. The Auto View feature solves this problem by automatically determining which views are needed.

[0129] As an example, Fig.16A Parts for automatic viewing according to one or more embodiments of the present invention are shown, and Fig. 16B The views generated by the part are shown. The middle view 1602 is the base view. In this example, the base view 1602, the top view 1604 and the bottom view 1606 all have exactly the same representation. In other words, for the reader of the drawing, these three views 1602-1606 provide exactly the same information. Therefore, these views are essentially called "alternatives", which is due to the fact that any of the three views will provide the same amount of information for the reader of the drawing. As a convention in the drawing, only one of the three views 1602-1606 needs to be retained, and the part will still be fully recorded. The embodiment of the present invention utilizes a cell map to quickly identify whether two views are essentially alternative, and if so, only one of such views is retained. In view of the above, the automatic view finds that the top view 1604 and the bottom view 1606 can be replaced by the front view 1602, so that the top view 1604 and the bottom view 1606 are redundant.

[0130] The automatic view algorithm operates on the views that have been created and takes two views as input, the base view and the projection view array. Fig.17 Logic flow for an automatic view algorithm according to one or more embodiments of the invention is shown.At step 1702, a masked cell map is generated (eg, based on client settings).

[0131] At step 1704, the views are grouped into horizontal and vertical groups. The base view is common to both groups.

[0132] At step 1706 , a check is made to determine whether any of the view representations in each group are replaceable and can be deleted.

[0133] At step 1708, any views identified as replaceable are deleted. The process completes at step 1710.

[0134] Fig.18 The logic flow for determining whether any of the view representations is replaceable (i.e., providing Fig.17 1706).

[0135] At step 1802, the cell maps are compared to see if they have different cell counts. If they have different cell counts, they are not identical - that is, they are not substitutable and the process exits early at step 1804.

[0136] If the cell counts are the same, then at step 1806 a merge of the two inputs is performed.

[0137] At step 1808, it is determined whether the union matches a superset or a subset. As used herein, a superset and a subset are two input cell graphs.

[0138] If there is a match, it is as if one cell map is contained within another cell map, as shown at step 1810 .

[0139] If not, then at step 1812 the rotated versions of the input cell diagrams are compared to see if they match. In other words, the horizontal mirrored version and the vertical mirrored version are compared. Additionally, step 1810 may include checking if the two cell diagrams match 90 degree rotated versions of each other. If no match is found, then the view is not replaceable, as indicated at step 1804. If a match is found, then at 1814 it is determined that the view is replaceable.

[0140] Fig.19 A comparison of automatic views according to one or more embodiments of the present invention is graphically illustrated. More specifically, Fig.19 A placeholder view is shown being compared. If the left and right views are identical, then the two views are essentially considered to be fungible - that is, they both provide the same information to the user who is reading the drawing. If the left view contains all the visual structure in the right view, or the right view contains all the visible structure in the left view, then the view that contains the other view is considered to have all the information on the other side of the view. Therefore, the view with less geometry can be deleted. In addition, as mentioned above, automatic views not only check the equality of the input views, but also check the equality of the mirrored versions of the views. The same checks are performed on the top and bottom views.

[0141] In addition, Auto View performs one more level of checking. Specifically, for the front view, Auto View checks whether the winner of the left and right views (the view that has not been deleted) or both views (neither view has been deleted) can be replaced by the front view or a mirrored version of the front view. In such cases where alternatives are found, the left or right view can be deleted, with the front view being given priority. In one or more embodiments, Auto View never deletes the front view because it is a base view, which means that all other views reference it (i.e., it tries to keep the view chain intact).

[0142] Automatically cut views (details and sections)

[0143] Using automatic views, orthogonal views can be identified and generated. However, for some parts, orthogonal views alone are not enough to fully define the part. Specifically, detail views and / or section views may be required. Embodiments of the present invention identify whether detail views are needed and where they should be placed. The general idea is that if a part has many entities crammed together in a cell domain, a detail view should be needed because an orthogonal view of the entire part may make these details difficult to dimension. A default minimum dimension length can be used to identify which length should be considered "small". To identify the need for a detail view, embodiments of the present invention may use a heat map. The heat map is generated at the same time as the cell map is generated and is embedded within the cell map. The first four (4) values ​​of the cell encode this. The heat map is a measure of how many times a cell is hit by different information. As an example, if the same cell contains the end point of a line and the start point of an arc, the cell has a heat count of 2. Similarly, if there is another edge close to it and the distance is less than the resolution, it may also contribute to the heat count. If many nearby cells are observed in the view to have high heat maps, this means that information is concentrated in that small area. This concentration indicates that a detail view is needed. Additionally, one or more embodiments may determine that a cross-section is desired where the part is round, turned, and symmetrical.

[0144] The input to the profile graph algorithm is a view identification (ID), and the output is a profile graph. Fig. 20 A logic flow for generating automatic cutout views (detail and section views) according to one or more embodiments of the present invention is shown.

[0145] At step 2002, it is determined whether the number of subjects is greater than one (1) (ie, the number of subjects should be only one). In other words, the algorithm has identified one subject in the drawing.

[0146] At step 2004, it is determined whether the cell map has at least two different rings. In this regard, the cell map should have multiple rings because if there is only one ring, the profile view will not show anything that the user does not know.

[0147] At step 2006, it is determined whether the rings are symmetric across the same axis.

[0148] At step 2008, identical x-horizontally symmetric rings are grouped together, and identical y-vertically symmetric rings are grouped together.

[0149] At step 2010, groups are created using the unique cells of the cell map.

[0150] At step 2012, it is determined whether the rings have the same center.

[0151] If the rings have the same center (i.e., they are concentric), the part is identified as a turned component and, at step 2014, a cross-section view is required. If the various determinations fail, a cross-section view is not required as described in step 2016. In one or more embodiments, the process learns from the user's previous data whether the user desires to use a detail view and / or whether compressed detail is important / unimportant to them. Thus, embodiments of the present invention may utilize machine learning to identify over time whether to generate a cross-section view and / or a detail view.

[0152] Ring generator algorithm based on cell graph

[0153] Step 2004 determines whether there are multiple distinct loops. In this regard, embodiments of the present invention must first identify loops in the drawing (e.g., so that a sizer algorithm can generate dimensions for each loop). Loop detection is particularly useful for point-based dimensioning algorithms (e.g., horizontal / vertical chain / baseline dimensions). Loop detection avoids the number of dimensions between loops. This section provides an algorithm for detecting loops. FIG. 21A to FIG. 21C Graphical examples of ring generation based on cell graphs according to one or more embodiments of the present invention are provided.

[0154] As an example, take Fig.21A Without loop detection, the horizontal and vertical baseline size generator algorithms (described below) would generate the following: Fig. 21B Dimensions shown. Fig. 21B In the example above, all dimensions in box 2102 are inter-ring dimensions (i.e., they are dimensions from the outer ring to the inner ring). If the rings can be detected and dimensioned individually, the result will be as follows: Fig. 21C As shown, there are only two inter-ring dimensions (which are required to specify the position of the inner ring within the outer ring).

[0155] Fig. 22The logic flow of detecting rings using the cell map technique according to one or more embodiments of the present invention is shown. At step 2202, a cell map of a drawing view is created. At step 2204, one or more rings of the view are detected based on the cell map. At step 2206, each ring is decomposed to separate the cell map. At step 2208, each irreplaceable size point in the view is checked to determine whether it exists in any of the one or more decomposed rings. If so, the current point is mapped to the ring (the point exists in the ring) at step 2210, and the process is completed at step 2212.

[0156] Same-ring checker algorithm

[0157] Reference again Fig. 20 , step 2006 determines whether the rings are symmetric across the same axis. The following description describes an algorithm for checking whether the rings are identical. Specifically, using the above-mentioned cell map-based ring generator, it can be seen that the rings are identified in the drawing view. There may be multiple rings (especially internal rings) in the same view (for example, there are multiple similar grooves in a part), and the user wants to dimension only one of the rings. In this algorithm, an embodiment of the present invention uses a cell map to identify similar rings and store this information. This will be used later to make the dimensions in the two rings interchangeable. FIG. 23A to FIG. 23C A graphical example of the same ring check performed in accordance with one or more embodiments of the present invention is shown.

[0158] Fig.23A An example part is shown where the two inner grooves are identical. When identical rings are not identified, the output looks like Fig. 23B As can be seen, both slots are dimensioned. When identical loops are identified, the output looks like Fig.23C As can be seen, only one slot is dimensioned.

[0159] Symmetrical size substitutability algorithm

[0160] This is a size-first algorithm. It looks for symmetric sizes and makes them replaceable. FIG. 24A to FIG. 24E Graphical examples showing symmetrical sizing alternatives according to one or more embodiments of the present invention. Fig.24A An example of symmetry about the y-axis is shown. The algorithm works on a per-ring basis. First, it splits the dimension into a first half 2402 and a second half 2404. The algorithm then compares the dimensions in the first half 2402 and the second half 2404. The process loops over all dimensions and attempts to match the distances of the start and end points of the dimension from the centerline 2406. When the distances match, it can be concluded that the dimensions are symmetric to each other and that they are substitutable.

[0161] Fig. 24B An example is shown where dimensions are found to be alternative. Consider D1 dimension 2408. It can be seen that the distance between s1 and centerline 2406 matches the distance between e6 and centerline 2406. In addition, the distance between e1 and centerline 2406 and the distance between s6 and centerline 2406 match. Therefore, D1 and D6 are alternatives. Similarly, it can be found that D2 and D5 are symmetrical and alternative. Fig.24C The final output is shown in Fig.24C In the example, the dimensions are symmetric about the y-axis. The same method can be used for a ring that is symmetric about the x-axis.

[0162] Fig.24D The dimensions with the symmetric size substitutability algorithm disabled are shown. In contrast, Fig.24E The final output with the symmetric size substitutability algorithm enabled is shown. It can be seen that when the symmetric size substitutability algorithm is enabled, the symmetric size is not shown and the drawing / view is not cluttered with size, making the view easier to read than the view with the symmetric size substitutability algorithm disabled.

[0163] Symmetrical and baseline dimension generator algorithms

[0164] The algorithm is a sizer algorithm and operates on all contours that are symmetrical about the x-axis or the y-axis. Fig.25A and Fig.25B The use of a symmetric size and baseline size generator algorithm in accordance with one or more embodiments of the present invention is shown.

[0165] exist Fig.25A In the example above, the view is symmetric about the y-axis and asymmetric about the x-axis. The algorithm places the symmetric dimensions in the horizontal direction and the baseline dimensions in the vertical direction. Fig.25B The final output of such generated dimensions is shown.

[0166] Unique Part Generator Algorithm

[0167] The algorithm finds the unique parts and stores them in a data structure. The algorithm operates on a per ring basis and finds the unique parts in that ring and populates the data structure accordingly. There are two types of geometric shapes - circular and linear. A cell map is used to determine whether a ring is circular or linear. A sequence of cell map operations is used to find the unique parts.

[0168] Fig.26A logical flow for generating unique portions according to one or more embodiments of the present invention is shown. At step 2602, it is determined whether the ring is circular or linear. If the ring is linear, then at step 2604 it is determined whether the ring is vertical or horizontal after considering the aspect ratio of the ring. If the ring is horizontal, then at step 2606 the unique portion is found and stored at step 2608. If the ring is vertical, then at step 2610 the cell map is transposed, and then at step 2612 the unique portion is found. Thereafter, at step 2614 the cell map is transposed again to return to the original orientation, and then at step 2616 the cell map is stored.

[0169] If the ring is circular, the circular cell map is expanded at step 2618 to give a linear cell map. Unique portions are then identified at step 2620 (i.e., via steps 2604, 2606, and 2610-2614). If originally circular, the stored unique portions are wrapped at step 2622 to give a circular cell map. Thereafter, the data is stored at step 2624.

[0170] Each unique portion may have periodic information, and in one or more embodiments, only the first unique portion may be stored.

[0171] FIG. 27A to FIG. 27B and FIG. 28A to FIG. 28E An example of the application of a unique portion generator algorithm according to one or more embodiments of the present invention is shown. Fig.27A An example of a linear geometry is shown, while Fig.27B Shows Fig.27A Identification of unique portion 2702 of the linear geometry.

[0172] FIG. 28A to FIG. 28E A circular example is shown. Fig.28A A circular geometric shape 2802 is shown for generating a cell map. Fig.28B , the circular geometric shape 2802 is divided into rings 2804 and 2806. Each ring 2804 and 2806 is expanded into linear rings 2808 and 2810, as shown in FIG. Fig.28C Unique portions 2812-2814 are then identified in linear loops 2808 and 2810, as shown. Fig.28D Thereafter, the linear loops 2816 and 2818 are again wrapped to obtain a circular unique portion, as shown in FIG. Fig.28E Finally, the unique parts 2816 and 2818 are stored in a data structure.

[0173] Hardware Implementation

[0174] Fig.292900 (referred to as a computer-implemented system and / or a computer-implemented method) for implementing one or more embodiments of the present invention. The hardware and software environment includes a computer 2902 and may include peripheral devices. The computer 2902 may be a user / client computer, a server computer, or may be a database computer. The computer 2902 includes a hardware processor 2904A and / or a dedicated hardware processor 2904B (hereinafter collectively referred to as a processor 2904, alternatively) and a memory 2906, such as a random access memory (RAM). The computer 2902 may be coupled to and / or integrally formed with other devices, including input / output (I / O) devices, such as a keyboard 2914, a cursor control device 2916 (e.g., a mouse, a pointing device, a pen and tablet, a touch screen, a multi-touch device, etc.), and a printer 2928. In one or more embodiments, the computer 2902 may be coupled to or may include a portable or media viewing / listening device 2932 (e.g., an MP3 player, an iPod, a NOOK, a portable digital video player, a cellular device, a personal digital assistant, etc.). In another embodiment, the computer 2902 may include a multi-touch device, a mobile phone, a gaming system, an Internet-enabled television, a television set-top box, or other Internet-enabled device executing on a variety of platforms and operating systems.

[0175] In one embodiment, computer 2902 operates by hardware processor 2904A executing instructions defined by computer program 2910 (e.g., a computer-aided design [CAD] application) under the control of operating system 2908. Computer program 2910 and / or operating system 2908 may be stored in memory 2906 and may interface with users and / or other devices to accept input and commands and, based on such input and commands and the instructions defined by computer program 2910 and operating system 2908, provide output and results.

[0176] The output / result may be presented on the display 2922 or provided to another device for presentation or further processing or action. In one embodiment, the display 2922 includes a liquid crystal display (LCD) having a plurality of individually addressable liquid crystals. Alternatively, the display 2922 may include a light emitting diode (LED) display having a red, green and blue diode cluster driven together to form a full-color pixel. Each liquid crystal or pixel of the display 2922 changes to an opaque or translucent state in response to the processor 2904 according to the data or information generated by applying the instructions of the computer program 2910 and / or the operating system 2908 to the input and command to form a part of the image on the display. The image may be provided by a graphical user interface (GUI) module 2918. Although the GUI module 2918 is depicted as a separate module, the instructions for executing the GUI functions may reside or be distributed in the operating system 2908, the computer program 2910, or implemented with a dedicated memory and processor.

[0177] In one or more embodiments, the display 2922 is integrally formed with / integrated into the computer 2902 and includes a multi-touch device having a touch sensing surface (e.g., a track pad or touch screen) that is capable of recognizing the presence of two or more points of contact with the surface. Examples of multi-touch devices include mobile devices (e.g., IPHONE, NEXUS S, DROID devices, etc.), tablet computers (e.g., IPAD, HP TOUCHPAD, SURFACE devices, etc.), portable / handheld game / music / video player / console devices (e.g., IPOD TOUCH, MP3 players, NINTENDO SWITCH, PLAYSTATION PORTABLE, etc.), touch tables and walls (e.g., where images are projected through acrylic and / or glass and then illuminated with LED backlights).

[0178] Some or all of the operations performed by the computer 2902 according to the computer program 2910 instructions may be implemented in a special purpose processor 2904B. In this embodiment, some or all of the computer program 2910 instructions may be implemented via firmware instructions stored in a read-only memory (ROM), a programmable read-only memory (PROM) or a flash memory within the special purpose processor 2904B or stored in a memory 2906. The special purpose processor 2904B may also be hardwired by circuit design to perform some or all operations to implement the present invention. In addition, the special purpose processor 2904B may be a hybrid processor that includes a dedicated circuit for performing a subset of functions, and other circuits for performing more general functions such as responding to computer program 2910 instructions. In one embodiment, the special purpose processor 2904B is an application specific integrated circuit (ASIC).

[0179] The computer 2902 may also implement a compiler 2912 that allows an application or computer program 2910 written in a programming language such as C, C++, assembly, SQL, PYTHON, PROLOG, MATLAB, RUBY, RAILS, HASKELL, or other language to be translated into processor 2904 readable code. Alternatively, the compiler 2912 may be an interpreter that directly executes instruction / source code, translates source code into an intermediate representation that is executed, or executes stored precompiled code. Such source code may be written in a variety of programming languages ​​such as JAVA, JAVASCRIPT, PERL, BASIC, etc. Upon completion, the application or computer program 2910 uses the relationships and logic generated by the compiler 2912 to access and manipulate data received from the I / O devices and stored in the memory 2906 of the computer 2902.

[0180] The computer 2902 also optionally includes external communication means, such as a modem, satellite link, Ethernet card, or other means for accepting input from other computers 2902 and providing output to the computer.

[0181] In one embodiment, the instructions implementing the operating system 2908, computer program 2910, and compiler 2912 are tangibly embodied in a non-transitory computer-readable medium (e.g., data storage device 2920), which may include one or more fixed or removable data storage devices, such as a zip drive, a floppy disk drive 2924, a hard drive, a CD-ROM drive, a tape drive, etc. In addition, the operating system 2908 and computer program 2910 consist of computer program 2910 instructions that, when accessed, read, and executed by the computer 2902, cause the computer 2902 to perform the steps necessary to implement and / or use the present invention or load the instruction program into the memory 2906, thereby creating a special data structure, thereby causing the computer 2902 to operate as a specially programmed computer to perform the method steps described herein. The computer program 2910 and / or operating instructions may also be tangibly embodied in the memory 2906 and / or the data communication device 2930, thereby making a computer program product or article of manufacture according to the present invention. Thus, the terms "article of manufacture," "program storage device," and "computer program product" as used herein are intended to encompass a computer program accessible from any computer-readable device or media.

[0182] Of course, those skilled in the art will recognize that any combination of the above components, or any number of different components, peripherals, and other devices, may be used with the computer 2902.

[0183] Fig.30 A typical distributed / cloud-based computer system 3000 is schematically shown, which uses a network 3004 to connect a client computer 3002 to a server computer 3006. A typical resource combination may include: a network 3004, which includes the Internet, a LAN (local area network), a WAN (wide area network), an SNA (system network architecture) network, etc.; a client 3002, which is a personal computer or workstation (such as Fig.29 ); and server 3006, which is a personal computer, workstation, minicomputer or mainframe computer (such as Fig.29 ). However, it may be noted that different networks, such as a cellular network (e.g., GSM [Global System for Mobile Communications] or other), a satellite-based network, or any other type of network, may be used to connect the client 3002 and the server 3006 according to embodiments of the present invention.

[0184] A network 3004, such as the Internet, connects the client 3002 to the server computer 3006. The network 3004 may utilize Ethernet, coaxial cable, wireless communication, radio frequency (RF), etc. to connect the client 3002 and the server 3006 and provide communication therebetween. In addition, in a cloud-based computing system, the client 3002, the server computer 3006, and users may share resources (e.g., storage devices, processors, applications, memory, infrastructure, etc.) in the client 3002 and the server computer 3006 across one or more networks. Resources may be shared by multiple users and may be dynamically reallocated based on demand. In this regard, cloud computing may be referred to as a model for supporting shared pool access to configurable computing resources.

[0185] The client 3002 can execute a client application or a web browser and communicate with a server computer 3006 executing a web server 3010. Such a web browser is typically a program such as MICROSOFT INTERNET EXPLORER / EDGE, MOZILLA FIREFOX, OPERA, APPLE SAFARI, GOOGLE CHROME, etc. In addition, the software executed on the client 3002 can be downloaded from the server computer 3006 to the client computer 3002 and installed as a plug-in or ACTIVEX control of the web browser. Therefore, the client 3002 can use the ACTIVEX component / component object model (COM) or distributed COM (DCOM) component to provide a user interface on the display of the client 3002. The web server 3010 is typically a program such as MICROSOFT's Internet Information Server.

[0186] Web server 3010 may host an Active Server Page (ASP) or Internet Server Application Programming Interface (ISAPI) application 3012 that may be executing a script. The script calls an object (called a business object) that executes the business logic. The business object then manipulates the data in database 3016 through a database management system (DBMS) 3014. Alternatively, database 3016 may be part of client 3002 or directly connected to the client, rather than communicating / obtaining information from database 3016 across network 3004. When developers encapsulate business functionality into objects, the system may be referred to as a component object model (COM) system. Therefore, the script executed on web server 3010 (and / or application 3012) calls the COM object that implements the business logic. In addition, server 3006 may utilize MICROSOFT's Transaction Server (MTS) to access the required data stored in database 3016 via interfaces such as ADO (Active Data Objects), OLE DB (Object Linking and Embedding Database), or ODBC (Open Database Connectivity).

[0187] In general, these components 3000-3016 include logic and / or data embodied in or retrievable from a device, medium, signal, or carrier (e.g., a data storage device, a data communication device, a remote computer, or a device coupled to a computer via a network or via another data communication device, etc.) Further, the logic and / or data, when read, executed, and / or interpreted, causes the steps necessary to implement and / or use the present invention to be performed.

[0188] Although the terms "user computer," "client computer," and / or "server computer" are referred to herein, it should be understood that such computers 3002 and 3006 may be interchangeable and may also include thin client devices with limited or full processing capabilities, portable devices (such as cell phones), notebook computers, pocket computers, multi-touch devices, and / or any other device with suitable processing, communication, and input / output capabilities.

[0189] Of course, those skilled in the art will recognize that any combination of the above components, or any number of different components, peripherals, and other devices, may be used with computers 3002 and 3006. Embodiments of the present invention are implemented as a software / CAD application on a client 3002 or server computer 3006. Furthermore, as described above, the client 3002 or server computer 3006 may comprise a thin client device or a portable device with a multi-touch based display.

[0190] in conclusion

[0191] The description of the preferred embodiment of the present invention ends here. Some alternative embodiments for implementing the present invention are described below. For example, any type of computer (such as, a mainframe computer, a minicomputer or a personal computer) or computer configuration (such as, a time-sharing mainframe computer, a local area network or an independent personal computer) can be used together with the present invention.

[0192] In view of the above, embodiments of the present invention quantify geometric shapes and represent this quantification in a unique form (called a geometric cell diagram). Geometric data is usually represented as traditional geometric data structures, such as lines, arcs, and circles. The quantified form of the drawing domain is particularly unique. Human intuitive determination can be achieved through the use of cell diagrams, which is a concept independent of platforms, applications, and languages. In addition, cell diagrams can be improved over time, are flexible, operations can be performed in parallel, and multiple algorithms can run simultaneously, while providing the end user with the choice of selecting preferred options. In addition, the way in which embodiments of the present invention identify how to interrupt a part is unique. In addition, finding / identifying unique parts within a part is also unique. Such capabilities may be equivalent to nearly 40-60% of the time required for a user to perform the same operation manually.

[0193] The foregoing description of the preferred embodiments of the present invention has been presented for the purpose of illustration and description. It is not intended to be exhaustive of the present invention or to limit the present invention to the precise form disclosed. Many modifications and variations are possible in light of the above teachings. It is intended that the scope of the present invention is not limited by this specific embodiment, but rather by the appended claims.

Claims

1. A computer-implemented method for automating drawing, comprising: (a) obtaining a drawing consisting of two or more entities; (b) determine the resolution; (c) based on the resolution, quantizing the map into a unit cell map, wherein: (i) the cell map comprises a set of multiple cells stored in a continuous memory; (ii) each of the plurality of cells comprises quantized geometric data of a corresponding entity of the two or more entities; (iii) each of the plurality of cells comprises a minimum tangible unit of information about the corresponding entity; (iv) each of the plurality of cells comprises a number representing domain-specific information about the corresponding entity; (v) the quantization comprises rounding values ​​exceeding a specified threshold to a resolution tolerance of the resolution; and (d) automatically modifying the drawing using the cell map.

2. The computer-implemented method of claim 1 , wherein said determining said resolution comprises: obtaining a bounding box of the drawing; obtaining a cell size flag value specifying a desired granularity level of the cell map; Determining the maximum number of rows or columns of the cell map; as well as Based on the maximum number of rows or columns, the cell size flag, and the bounding box, the resolution is calculated as: Resolution = max(bounding box length, bounding box width) / Maximum number of rows or columns.

3. The computer-implemented method of claim 1, wherein said automatically modifying using said cell map comprises: Gather the view chain and determine if the entity is interrupted horizontally or vertically; collecting views of the two or more entities to be interrupted; isolating geometric shapes in the cell map; Merge the collected views together; as well as Based on the isolated geometric shapes in the cell map, unique portions of the two or more entities across all merged collected views are identified.

4. The computer-implemented method of claim 3, wherein said identifying said unique portion comprises: Confirm that the defined wavelength is correct relative to the cell map; Confirm that the defined tolerances are correct relative to the cell diagram; traversing the cell map while comparing columns based on the defined wavelength and the defined tolerance to determine a plurality of consecutive matching values; as well as A final value for the defined wavelength is determined and returned based on the maximum number of consecutive matching values.

5. The computer-implemented method of claim 1, wherein said automatically modifying using said cell map comprises: creating the cell diagram based on the view of the drawing and one or more annotations or dimensions; masking the cell map to remove a set of details; Create filled cell maps from masked cell maps; Iterating over each of the one or more annotations or dimensions, wherein during the iteration: cloning one or more of the annotations or dimensions; creating a line cell map consisting of potential candidate locations of the one or more annotations or dimensions; determining one or more intersections of the line cell map and the filled cell map, wherein the intersections identify a subset of the candidate locations for the one or more annotations or dimensions; determining whether there is overlap for each candidate position in the subset; as well as The candidate locations in the subsets without any overlap are identified as the locations of the one or more annotations or dimensions.

6. The computer-implemented method of claim 1, wherein said automatically modifying using said cell map comprises: collecting one or more views from the drawing; determining padding for the one or more views; applying the padding to the one or more views to generate the cell map, wherein the cell map comprises a combination of padded cell maps; Merging the filled cell maps together into a merged filled cell map; Find a worksheet cell diagram that does not have the one or more views; as well as Identify empty spaces in the worksheet cell diagram where the merged filled cell diagram fits without overlapping any content.

7. The computer-implemented method of claim 1, wherein said automatically modifying using said cell map comprises: masking the cell map for each view of the drawing; dividing the views of the drawing into horizontal groups and vertical groups; determining, based on a masked cell map, that one or more of the views in the horizontal group and the vertical group are alternative; and Deletes the alternative view.

8. The computer-implemented method of claim 7, wherein said determining that one or more of said views are alternative comprises: Comparing two cell maps in the view, wherein the comparison comprises: comparing cell counts of the two cell maps to determine if the cell counts are different, wherein different cell counts indicate that the two views are not substitutable; generating a union of the two cell maps; determining whether the union matches either of the two views, wherein a match indicates that one of the two cell maps is contained in the other of the two cell maps; and The rotated versions of the two cell maps are compared to determine whether they match, wherein matching rotated versions indicate substitutability.

9. The computer-implemented method of claim 1, wherein said automatically modifying using said cell map comprises: identifying a single subject in said drawing; determining that the cell map has two or more distinct rings; determining that the two or more different rings are symmetric across a common axis; Group identical x-horizontally symmetric rings together and group identical y-vertically symmetric rings together; creating groups using unique cells of the cell map; Determining that identical x-horizontally symmetric rings or identical y-vertically symmetric rings have identical centers; and Based on the same center, a cross-sectional view is generated.

10. The computer-implemented method of claim 1, wherein said automatically modifying using said cell map comprises: creating a cell map of the view of said drawing; detecting one or more rings of the view based on the cell map; decomposing each of the one or more rings to separate the cell graph; determining whether each irreplaceable point exists in one or more rings of the decomposition, wherein at least one of the irreplaceable points exists; as well as For each irreplaceable point present in the decomposed one or more rings, the irreplaceable point is mapped to the decomposed ring in which the irreplaceable point exists.

11. The computer-implemented method of claim 10, further comprising: identifying similar rings based on the cell map; as well as Stores information about similar rings.

12. A computer-implemented system for automating drawing, comprising: (a) a computer having a memory; (b) a processor executing on said computer; (c) a memory storing a set of instructions, wherein the set of instructions, when executed by the processor, causes the processor to perform operations comprising: (i) obtaining a drawing consisting of two or more entities; (ii) determine the resolution; (iii) based on the resolution, quantizing the map into a unit cell map, wherein: (A) the cell map includes a set of multiple cells stored in a continuous memory; (B) each of the plurality of cells comprises quantized geometric data of a corresponding entity of the two or more entities; (C) each of the plurality of cells comprises a minimum tangible unit of information about the corresponding entity; (D) each of the plurality of cells includes a number representing domain-specific information about the corresponding entity; (E) the quantizing includes rounding values ​​exceeding a specified threshold to a resolution tolerance of the resolution; and (iv) automatically modifying the drawing using the cell map.

13. The computer-implemented system of claim 12, wherein the operations for determining the resolution comprise: obtaining a bounding box of the drawing; obtaining a cell size flag value specifying a desired granularity level of the cell map; Determining the maximum number of rows or columns of the cell map; as well as Based on the maximum number of rows or columns, the cell size flag, and the bounding box, the resolution is calculated as: Resolution = max(bounding box length, bounding box width) / Maximum number of rows or columns.

14. The computer-implemented system of claim 12, wherein the operations for automatically modifying using the cell map comprise: Gather the view chain and determine if the entity is interrupted horizontally or vertically; collecting views of the two or more entities to be interrupted; isolating geometric shapes in the cell map; Merge the collected views together; as well as Based on the isolated geometric shapes in the cell map, unique portions of the two or more entities across all merged collected views are identified.

15. The computer-implemented system of claim 14, wherein said identifying said unique portion comprises: Confirm that the defined wavelength is correct relative to the cell map; Confirm that the defined tolerances are correct relative to the cell diagram; traversing the cell map while comparing columns based on the defined wavelength and the defined tolerance to determine a plurality of consecutive matching values; as well as A final value for the defined wavelength is determined and returned based on the maximum number of consecutive matching values.

16. The computer-implemented system of claim 12, wherein the operations for automatically modifying using the cell map comprise: creating the cell diagram based on the view of the drawing and one or more annotations or dimensions; masking the cell map to remove a set of details; Create filled cell maps from masked cell maps; Iterating over each of the one or more annotations or dimensions, wherein during the iteration: cloning one or more of the annotations or dimensions; creating a line cell map consisting of potential candidate locations of the one or more annotations or dimensions; determining one or more intersections of the line cell map and the filled cell map, wherein the intersections identify a subset of the candidate locations for the one or more annotations or dimensions; determining whether there is overlap for each candidate position in the subset; as well as The candidate locations in the subsets without any overlap are identified as the locations of the one or more annotations or dimensions.

17. The computer-implemented system of claim 12, wherein the operations for automatically modifying using the cell map comprise: collecting one or more views from the drawing; determining padding for the one or more views; applying the padding to the one or more views to generate the cell map, wherein the cell map comprises a combination of padded cell maps; Merging the filled cell maps together into a merged filled cell map; Find a worksheet cell diagram that does not have the one or more views; as well as Identify empty spaces in the worksheet cell diagram where the merged filled cell diagram fits without overlapping any content.

18. The computer-implemented system of claim 12, wherein the operations for automatically modifying using the cell map comprise: masking the cell map for each view of the drawing; dividing the views of the drawing into horizontal groups and vertical groups; determining, based on a masked cell map, that one or more of the views in the horizontal group and the vertical group are alternative; and Deletes the alternative view.

19. The computer-implemented system of claim 18, wherein said determining that one or more of said views are alternative comprises: Comparing two cell maps in the view, wherein the comparison comprises: comparing cell counts of the two cell maps to determine if the cell counts are different, wherein different cell counts indicate that the two views are not substitutable; generating a union of the two cell maps; determining whether the union matches either of the two views, wherein a match indicates that one of the two cell maps is contained in the other of the two cell maps; and The rotated versions of the two cell maps are compared to determine whether they match, wherein matching rotated versions indicate substitutability.

20. The computer-implemented system of claim 12, wherein the operations for automatically modifying using the cell map comprise: identifying a single subject in said drawing; determining that the cell map has two or more distinct rings; determining that the two or more different rings are symmetric across a common axis; Group identical x-horizontally symmetric rings together and group identical y-vertically symmetric rings together; creating groups using unique cells of the cell map; Determining that identical x-horizontally symmetric rings or identical y-vertically symmetric rings have identical centers; and Based on the same center, a cross-sectional view is generated.

21. The computer-implemented system of claim 12, wherein the operations for automatically modifying using the cell map comprise: creating a cell map of the view of said drawing; detecting one or more rings of the view based on the cell map; decomposing each of the one or more rings to separate the cell graph; determining whether each irreplaceable point exists in one or more rings of the decomposition, wherein at least one of the irreplaceable points exists; as well as For each irreplaceable point present in the decomposed one or more rings, the irreplaceable point is mapped to the decomposed ring in which the irreplaceable point exists.

22. The computer-implemented system of claim 21, wherein the operations further comprise: identifying similar rings based on the cell map; as well as Stores information about similar rings.