Systems and methods for engineering drawing extrapolation and feature automation
The system automates the conversion of 3D models to 2D engineering drawings using machine learning, optimizing manufacturing features and correcting irregularities, enhancing manufacturing efficiency and accuracy.
Patent Information
- Application Number
- JP2025514800
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-09-08
- Filing Date
- 2023-09-01
- Publication Date
- 2025-09-11
AI Technical Summary
Existing systems struggle to automate the conversion of 3D engineering drawings into manufacturing instructions, particularly in identifying manufacturing features, determining hole locations, and detecting gaps and interferences, which are crucial for accurate manufacturing processes.
A system and method utilizing machine learning to decompose 3D models into 2D engineering drawings, identify manufacturing features, and perform calculations to detect irregularities, while optimizing blank selection and orientation for manufacturing machines using AWS and proprietary algorithms.
Enables automated generation of accurate 2D drawings with optimized manufacturing instructions, reducing manual intervention and improving manufacturing efficiency by identifying and correcting irregularities in 3D models.
Smart Images

Figure 2025530307000001_ABST
Abstract
Description
[Technical Field]
[0001] Copyright Notice A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights.
[0002] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of priority to U.S. Provisional Application No. 63 / 242,139, entitled "System and Method for Engineering Drawing Extrapolation and Feature Automation," filed September 9, 2021, which is incorporated herein by reference in its entirety.
[0003] background The history of modern industrialization can be explained through the steady evolution of draftsmanship. Draftsmen's reduction of three-dimensional space to two-dimensional representations complete with datums, dimensions, and other annotations that enable the manufacture of parts / assemblies is a triumph of human intelligence over spatial constraints. Artificial tools to facilitate manufacturing, such as 3D modeling computer programs, pose unique challenges and opportunities for technological evolution. Some 3D modeling systems allow for the static extrapolation of 2D images. These 2D images typically reflect bird's-eye views of the front, top, and side of the part being machine-produced. Machinists use such images to manually select manufacturing stock, determine the location of such stock in the workspace, and affect manufacturing changes to the stock. [Brief explanation of the drawings]
[0004] Certain exemplary embodiments illustrating the organization and method of operation, together with objects and advantages, can best be understood by reference to the following detailed description taken in connection with the accompanying drawings. [Figure 1]FIG. 1 is an overview of a pre-drafting (and post-3D CAD modeling) process module consistent with certain embodiments of the present invention. [Figure 2] FIG. 2 is a view of a sub-process for 2D data extraction consistent with certain embodiments of the present invention. [Figure 3] FIG. 3 is a view of the sub-processes for core engine operation consistent with certain embodiments of the present invention. [Figure 4] FIG. 4 is a view of a sub-process for automated 2D drawing generation consistent with certain embodiments of the present invention. [Figure 5] FIG. 5 is a view of a sub-process for 2D drawing quality control consistent with certain embodiments of the present invention. [Figure 6] FIG. 6 is an overview of a data processing workflow consistent with certain embodiments of the present invention. [Figure 7] FIG. 7 is a process flow diagram for selecting an isometric view consistent with certain embodiments of the present invention.
[0005] Detailed explanation While the present invention can be embodied in many different forms, specific embodiments are shown in the drawings and will be described in detail herein. It will be understood that the present disclosure of such embodiments should be considered as an example of the principles, and is not intended to limit the invention to the specific embodiments shown and described. In the following description, like reference numerals will be used to describe identical, similar, or corresponding parts in the several views of the drawings.
[0006] The terms "a" or "an," as used herein, are defined as one or more. The term "plurality," as used herein, is defined as two or more. The term "another," as used herein, is defined as at least two or more. The terms "including" and / or "having," as used herein, are defined as "comprising" (i.e., open language).
[0007] References throughout this document to "one embodiment," "particular embodiment," "embodiment," or similar terms mean that a particular feature, structure, or characteristic described in connection with an embodiment is included in at least one embodiment of the present invention. Thus, the appearances of such phrases in various places throughout the specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments, without limitation.
[0008] However, unless otherwise specified, as will be apparent from the discussion that follows, throughout the description, discussions using terms such as "processing," "computing," "calculating," "determining," "displaying," "analyzing," or "deducing" will be understood to refer to the operations and processes of a computer system or similar electronic computing device (such as a particular calculator) that manipulates and transforms data that are represented as physical (electronic) quantities in the computer system memory or registers, or other such information storage, transmission, or display devices.
[0009] References herein to "Vectra" refer to Vectra Automation, Inc., a Delaware C-Corp., the entity that owns, manages, supervises, and / or practices the inventions described herein.
[0010] References herein to "Auto2D" refer to a trademark, registered trademark, and / or trade name of one or more embodiments of the present invention.
[0011] Certain aspects of the embodiments include the process steps and instructions described herein. It should be noted that the process steps and instructions of the embodiments may be implemented in software, firmware, or hardware, and, if implemented in software, may be downloaded to reside on and operate from different platforms used by various operating systems. The embodiments may also be a computer program product that can be executed on a computing system.
[0012] Embodiments also relate to apparatus for performing the operations herein. This apparatus may be specially configured for the purpose, such as a particular computer, or may include a computer selectively activated or reconfigured by a computer program stored on the computer. Such a computer program may be stored on a computer-readable storage medium, including, but not limited to, a floppy disk, an optical disk, a CD-ROM, a magneto-optical disk, a read-only memory (ROM), a random-access memory (RAM), an EPROM, an EEPROM, a magnetic or optical card, an application-specific integrated circuit (ASIC), or any type of medium suitable for storing electronic instructions. Memory may include any of the above and / or other devices capable of storing information / data / programs and may be transient or non-transient media, where non-transient or non-transient media may include memory / storage devices that store information for more than a minimal period of time. Furthermore, computers referred to herein may include a single processor or may be architectures employing multiple processor designs to increase computing power.
[0013] The processes and displays presented herein are not inherently related to any particular computer or other apparatus. Various systems can be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the method steps. Various structures for these systems will be apparent from the description herein. Moreover, the embodiments are not described with reference to any particular programming language. It will be understood that a variety of programming languages can be used to implement the teachings of the embodiments described herein, and references herein to particular languages are provided to disclose enablement and best modes.
[0014] The conversion of 3D engineering drawings into instructions for manufacturing is a necessary step in preparing three-dimensional workpieces, but existing systems cannot automate all aspects of the process. Machine learning further optimizes steps in the process. Therefore, a system and method for 3D engineering drawing extrapolation and automation that incorporates machine learning (ML) is needed.
[0015] In one embodiment, the present invention is utilized in the field of manufacturing tangible manufactured parts and assemblies. The present invention receives a three-dimensional (3D) computer model of a part to be manufactured and decomposes the 3D model of the part into labeled surfaces that can be attributed, assigned, and illustrated by a two-dimensional (2D) engineering drawing. A subprocess of the present invention then receives data defining the attributes of the 2D drawing and performs calculations to determine one or more physical locations on the manufacturing-ready part where one or more holes will be drilled. The subprocess then determines whether one or more instances of unintended gaps, interferences, hole alignments, and other irregularities exist in the 3D CAD model. The subprocess creates a list of such irregularities and returns a punch list to a human user for manual correction.
[0016] In one embodiment, the present invention utilizes a server bank, such as, by way of non-limiting example, Amazon Web Services (AWS), to perform specific data extraction and flattening of the 3D model. The present invention utilizes AWS to select optimally sized standard blanks from a database and optimize the blanks' orientation relative to the operating head of a milling machine, lathe, CNC router, or other manufacturing machine.
[0017] In one embodiment, the present invention includes an algorithm that recognizes manufacturing features in all components and assigns appropriate dimensions and / or drawing entities to each of them. In a non-limiting example, the algorithm performs calculations based on geometry data extracted from a 3D computer-aided drafting (CAD) model and their assigned attributes. As a non-limiting example, a standardized data extraction strategy can be employed across all CAD platforms, including solid-body modeling platforms such as Siemens NX and / or Dassault SolidWorks, or parametric surface modeling platforms such as Dassault CATIA and / or Autodesk Inventor. Such standardization is an essential element in the formulation of the CAD-independent core algorithms used in the present invention.
[0018] In one embodiment, the algorithm analyzes each manufacturing subassembly in the context of the main tool assembly, inferring component hierarchy from assembly-level data and inferring mounting surfaces for all components. This portion of the algorithm involves traversing the assembly tree, spanning all branches and interconnections, in an efficient and time-optimized manner. The resulting inter-component mounting analysis is used within the present invention to determine datum faces and associated "start" faces on each component. These "start" faces are in turn needed to determine the dimensions of various manufacturing features. A particular manufacturing component may be composed of multiple sub-components welded together to form a "welded assembly." The existence of such sub-components necessitates the additional determination of start faces associated with prospective or retroactive welding operations. The assembly-level analysis concludes with the determination of a "primary drawing view orientation," in which the determined datum faces are necessarily captured, and dimensions of critical features are aligned in a local coordinate system.
[0019] In one embodiment, the algorithm of the present invention identifies features relevant to various manufacturing operations in a given component through a combination of a "logical flow," which includes attributes assigned to the 3D model, and a "geometric signature," which is a signature unique to such features. To determine these logical flows and geometric signatures, geometry data extracted from the 3D model is processed and staged into a format suitable for analysis from various perspectives of the component. As a non-limiting example, each feature can be associated with one or more surfaces on the component. When more surfaces are involved, topological considerations specific to the feature in question are assumed in the algorithm design. Generally, all surfaces are analyzed both individually and in the context of a larger topological network of surfaces. This comprehensive approach to feature recognition is customizable for various manufacturing operations. In one embodiment, such customization can be based on the staging, analysis, and topology format.
[0020] In one embodiment, the algorithm of the present invention uses deterministic logic augmented with heuristic pattern-matching algorithms backed by machine learning. By employing such pairings, the present invention can automatically generate and interpret graph pattern motifs containing one or more features from component drawings. The present invention can infer dimensional information simultaneously or sequentially.
[0021] In one embodiment, component data resulting from the generation of an ever-growing repository of component assemblies is constantly collected. The invention uses heuristic model learning from this dataset to recognize patterns in the manufacturing environment and complement the feature determination process in the core algorithm. The learned models are envisioned to cover a wide variety of components in diverse assembly environments. Such pattern recognition enables rapid improvement in the feature recognition process of the invention. As a non-limiting example, the invention employs machine learning to pull one or more pre-computed assemblies from an assembly library, analyze the pre-computed assemblies for close pattern matches with a new part to be modeled, and use the appropriate pre-computed assembly as a customizable template for the new part.
[0022] In one embodiment, the present invention relies on an algorithm that recognizes the manufactured features of all components in an assembly and associates the appropriate dimensional entities with each. This algorithm primarily relies on geometric data extracted from a 3D CAD model and their assigned attributes. The geometric data consists of the granular level details of the CAD model in the form of faces, as well as the location and orientation of the faces within a uniform coordinate system. The boundaries of the faces are represented in the form of edges with well-defined curvature. This standardized data extraction strategy is adopted across all CAD platforms, including, but not limited to, parametric solid modeling (platforms such as Siemens NX and Dassault SolidWorks) or boundary representation solid modeling (platforms such as Dassault CATIA and Autodesk Inventor). This is an essential element in the CAD-independent formulation of the core algorithm that drives the present invention.
[0023] In one embodiment, the algorithm analyzes each subassembly of a component in the context of the main tool assembly. Furthermore, the subassembly data consists of mounting plane data for each adjacent component. A hierarchical tree is constructed based on this information, starting with the first component in the subassembly attached to the main assembly and extending to all branches within the subassembly. This portion of the algorithm uses a time-efficient optimization method to construct the tree and identify components that are disconnected due to modeling errors. Based on the adjacent information and the mounting information with hierarchical labels, datum planes are determined for the relational starting faces required to dimension each component and associated features. The subassembly-level analysis concludes with the determination of the primary drawing view orientation, where datum planes must be captured and critical feature dimensions are aligned to the component's local coordinate system.
[0024] In the primary embodiment of the present invention, the core algorithm centers on the ability to recognize various functionally critical design features and classify them based on manufacturing intent. To accommodate different interpretations of features in different domain applications, this portion of the algorithm includes a combination of logic flows based on the geometric signatures inherent in such features and the attributes assigned to the 3D model. The logic flows are designed to analyze the specified component in various orthographic projections and auxiliary perspectives relative to the primary orientation. A rotation of the point cloud about the preferred axis is assumed and applied to the geometry data for perspective analysis. The auxiliary perspectives further require the identification of relevant features in non-standard planes, their attribute signatures, and the formulation of a local coordinate system for dimensioning those features. Modified versions of standard components contain a combination of scalable and non-scalable features. In this context, "scalable" refers to a property of an object whose physical dimensions can be determined and associated with the object. A geometric comparison of the raw and modified models with their exact shapes identifies the latter's scalable features.
[0025] In one embodiment, each feature can be associated with one or more surfaces on the component. In the latter scenario, additional topological considerations specific to the feature in question are assumed in the algorithm design. In general, every surface is analyzed not just in its own right, but in a larger topological context. This comprehensive approach to feature recognition makes the algorithm easily adaptable and configurable to new designs and applications.
[0026] In one embodiment, the core algorithm is extended with a heuristic pattern-matching algorithm backed by machine learning in addition to deterministic logic. In this new process, topological motifs containing one or more features are automatically generated from processed component drawings and interpreted as graph patterns. Dimensional information is inferred along with the automatically generated features. Such data is continuously collected in a growing repository of component assemblies. A heuristic model is learned from this dataset to recognize patterns in the operational environment and complement the feature determination process of the core algorithm. The learned model is expected to cover a variety of components in various assembly environments. This add-on enables rapid improvement of the feature recognition process in a broader domain and rapid adaptation of the invention to manufacturing preparation processes.
[0027] In one embodiment, each feature is associated with a corresponding dimension entity as dictated by the domain and CAD configuration. Redundant dimensions within and between views are identified. For repeated dimensions within the same view, appropriate additional text is calculated and associated. Additional domain-specific text from datum planes and machining start faces is also associated with dimensions. Hole callout-specific start faces are associated with datum flag entities. After recognizing and classifying all dimension entities in all perspectives, a suitability comparison is performed to select views that properly show features that are properly aligned in the in-plane direction. Priority is given to views aligned with machining operations or burnout directions or preferred profile directions. These high-priority views ensure higher coverage of dimensionable features and indexable hole representations per view.
[0028] In one embodiment, the minimum number of views required to display all necessary dimensional entities is determined from a previous stage of the algorithm. For each such view, an appropriate drawing zone space is allocated around the view for placing the dimensional entities. The style factors and spatial extents associated with the dimensional entities are considered to calculate the spacing around the view. This gives every view two zones: a scalable zone surrounding the component's actual profile and a non-scalable portion associated with the dimensional entities around the view. A sheet allocation algorithm is then envisioned to capture the selected projection using the optimal scale and the minimum number of drawing sheets. The size and configuration of the drawing sheets are predetermined by the component size and domain requirements. The configuration includes allocating space for fixed text and table callouts in different corners of the sheets. The algorithm reserves space for variable requirements arising from different domains and enables dynamic calculation of the available space for placing views.
[0029] In one embodiment, within the available space, the projection views are spaced far enough apart to maintain their relative positions. The scale ratios used for different view types are part of the domain requirements. Using appropriate scale ratios and a recursive block placement algorithm, an optimal allocation is determined that maintains view order, maximizes scale, and minimizes the number of sheets used for the element being machined as a whole. For view types where view order is not important, the algorithm only optimizes the number of sheets commensurate with minimizing scale requirements. The block placement algorithm is generalized to work for variable sheet sizes, configurations, and view scales.
[0030] In one embodiment, holes indexed in different views are classified based on the parent view, hole type, hole size, and other geometric details. The classification criteria are designed to be commensurate with the manufacturing intent of the holes. To arrange the spatially distributed hole classes across the range of the component, a combinatorial optimization algorithm is envisioned to minimize the distance cost traversing the entire set of holes to be machined. The algorithm is designed to handle limiting cases where the time complexity increases exponentially. In cases where the increased time complexity is a concern, a heuristic clustering method is used to reduce the complexity while simultaneously optimizing the overall distance cost.
[0031] In one embodiment, aligned holes and manufacturing details associated with aligned holes are displayed in a common hole chart with their respective distances in the component's local coordinate system. The distances are calculated relative to the plane of the datum flag for each view. The orientation labels and numerical precision displayed in the hole chart are customized according to domain requirements.
[0032] In one embodiment, a labeling algorithm is used to calculate the optimal location for placing dimensional entities associated with a view. The rules embedded in this algorithm are: (i) labels must not overlap other labels or graphical features in the drawing; (ii) each label must be identifiable with its parent feature in the view; and (iii) labels must be optimally placed relative to their neighbors so as not to violate rules (i) and (ii). Graphical features can be classified as point-like, edge-like, or "curve region"-like. Labeling spaces are identified around the view based on domain requirements regarding the geometry of the graphical features and the style of the entities used. Each label is placed in a neat, well-spaced location relative to its counterpart in the same zone, giving the appearance of an overall aesthetic placement. The font size and character spacing used to display dimension values and text on the drawing sheet are part of the configuration requirements, and the algorithm is designed to accommodate both font size and character spacing.
[0033] In one embodiment, the core algorithm is supported by different auxiliary algorithms at various stages of the invention, the most important of which are listed below.
[0034] [Table 1]
[0035] In one embodiment, the invention performs dedicated gap- and interference-based 3D model checks on each component's main assembly and subassemblies and generates an interactive exception report that alerts the end user. Correcting these errors is essential for proper assembly construction and the generation of correct part drawings. The application interacts with a CAD API and performs space analysis using a proprietary mathematical algorithm on the 3D model to generate this report. The application performs interference analysis on the entire assembly to identify parts near each part being inspected by the interference analysis algorithm and creates a part attachment graph to determine orphans (single parts hanging in the air) and disconnected parts (groups of parts connected to each other but disconnected from the main assembly) for each component subassembly. The mathematical algorithm traverses all connected nodes in the tree from a start node to a set of end nodes to determine the set of disconnected nodes in each component subassembly. The mathematical algorithm also calculates the amount of gaps between each inspected part and parts determined to be near the inspected part and includes this information in the interactive report.
[0036] In one embodiment, the present invention recognizes holes and slots based on Vectra's proprietary feature recognition based algorithm that utilizes geometry connectivity and performs different 3D assembly-based hole and slot analyses, such as (but not limited to) Hole Alignment Check, Correct Mating-Hole Check, Hole Diameter Check, Slot Clearance Check, Slot-Hole Alignment Check, Missing Mating-Hole check, and other validation checks performed during 3D assembly analysis. The algorithm mainly includes the following steps for pre-processing, hole-slot recognition, and hole and slot analysis:
[0037] In one embodiment, the present invention automatically recognizes various types of holes and slots from feature and non-feature (dumb solid) based CAD models. The main steps involved in this recognition algorithm are:
[0038] Pretreatment ·Read main assembly and subassembly charts and descriptions and recognize various part types (manufactured parts, standard parts, etc.) Use one or more CAD APIs to perform interference analysis to find nearby contacting parts and use the proprietary binning algorithm described above to find corresponding faces. In this embodiment, the binning algorithm bins faces based on their normals and performs mathematical checks to determine contact faces.
[0039] Hole and slot feature recognition ·Cycle through all faces (cylindrical, conical, spherical, planar) of all solid bodies in a part. Hole and slot recognition:
[0040] A hole begins and ends on a flat surface (most common) or a curved surface (rare). All subsequent faces while part of the hole feature share a common axis designated and referenced as the hole-axis. All faces of a hole are adjacent to each other in order. A hole ends on a bottom topology that is different from the top- or start-hole topology.
[0041] Our unique mathematical algorithms use this topology and geometry information to recognize hole features. Similarly, for rectangular slots, the system recognizes pairs of anti-parallel planes with a common cylindrical face. The geometry and topology-based algorithms handle hole end types including, but not limited to, truncated cones, cones, spheres, and planes. Common hole types supported include, but are not limited to, through, blind, reel, countersink, counterbore, and spot face.
[0042] Hole and slot analysis and check · Hole Analysis - These steps are performed to determine if holes will be manufactured and positioned correctly for the part being machined. 1. Hole-to-hole alignment check 2. Hole-to-hole drill diameter check 3. Holes - Check for correct mating hole type 4. Check for missing mating holes in the slots.
[0043] Slot Analysis - These steps are performed to determine if the slots are correctly manufactured, dimensioned, and positioned for the part being machined. 1. Hole-slot alignment check 2. Checking holes-slots for correct diameter and clearance 3. Check for correct hole-slot combination 4. Check for missing mating holes for slots
[0044] In one embodiment, at the end of the execution of the application, the present invention can generate one or more reports for the hole and slot analysis.
[0045] In one embodiment, the present invention automatically identifies holes in each manufactured part and calculates the hole type (by way of non-limiting example, dowel, clearance, thread / tap, counterbore, countersink, or any other hole type required by the manufactured part) based on the hole geometry, hole drill diameter, and mating hole type. Invention-specific properties are added to each hole, enabling the creation of hole charts or drill charts in 2D manufacturing or drill planning based on hole-type. Hole charts enable optimal drilling times for holes. Correct hole identification is also important for defining datums (datum-hole) that provide hole dimensions, hole placement, and hole connections, allowing all 2D dimensions to be referenced and enabling the creation of correct manufacturing drawings.
[0046] The invention interacts with a CAD API and uses proprietary mathematical feature-based algorithms to perform feature analysis on the 3D model, automatically identifying hole geometry and determining hole drill diameter and relative hole position in the context of the assembly. This is a batch application that analyzes the entire assembly in one analysis step, calculating and applying hole size attribute values to all required hole cylindrical surfaces.
[0047] In one embodiment, the invention begins by reading all faces and edges associated with a part and classifying faces (non-limiting examples: planar, cylindrical, conical, etc.) and edges (non-limiting examples: linear, circular, elliptical, etc.). It also calculates adjacent faces and creates a feature connectivity graph using a proprietary algorithm from the top to bottom of the hole feature to determine the hole type. Because through-type dwell, tap, and clearance holes all have the same geometry, additional logic is implemented to calculate and identify mating hole types to properly evaluate the hole being analyzed. Additional diameter-based logic is used as a tiebreaker. All common and possible hole types exist as part of an XML-based configuration file. The invention also identifies mixed hole types, where one hole may intersect with another hole depending on the manufacturing needs of the part.
[0048] In one embodiment, the present invention determines all surfaces within a part object that require a surface finish. Various types of machining are applied to these identified surfaces, including, by way of non-limiting example, fine and coarse values. The present invention automatically identifies all machined surfaces for each manufactured part within the main tool assembly. Identifying the correct machined surfaces is essential for a correct build and optimal fit within the assembly. All mounting surfaces must be properly machined with the correct precision for a perfect fit. This is a batch application process that analyzes the entire assembly in one go and calculates and applies finish tolerance values to all required surfaces, which are the necessary inputs for the Auto2D algorithm.
[0049] In one embodiment, the invention begins by identifying parts in an assembly that are near each part to be inspected by the identity analysis algorithm, and then uses a ray-casting algorithm to identify the mating faces of each pair of parts. A ray is transmitted from one part to the other to determine the hit faces, which are faces that may "mate" or contact along the transmitted ray. An additional validation check is performed to ensure that the normal directions of the mating faces are anti-parallel. For a proper match, the faces must be anti-parallel to each other. One of the key inputs for identifying whether a mating face requires a surface finish is the presence of a precision mating hole. A proprietary geometry connection-based algorithm is used to identify hole features on the face, and using custom logic, the application determines whether another part face has a precision mating hole for this hole on the mating face.
[0050] In one embodiment, the application also checks the part's material and implements custom logic for specific materials. In a non-limiting example, for aluminum, mating faces along the part's thickness are identified and ignored for surface finish assignment. The application interacts with a CAD API and customized algorithms to automatically identify machined faces and calculate and apply the correct machining tolerances in the context of the assembly. For each mating face with a required surface finish, the application also identifies the manufacturing operation used to machine the face. In this case, the machining requires removing material from the part. If there is a milling operation, it identifies the vertical faces or walls associated with the milling cutter face and applies the correct finishing tolerance. To this end, concave adjacent faces and features are identified using a customized mathematical logic process. These faces receive the roughing tolerance rather than the finishing tolerance.
[0051] In one embodiment, the present invention automatically calculates stock size values for each manufacturing part in a tool assembly based on an analysis of physical materials and proprietary shape and orientation algorithms. The calculated stock values must match available stock available in the market. The batch application analyzes the entire assembly in one analysis step and calculates stock size values for each part, taking into account available stock and the correct part range. The application interacts with a CAD API and performs feature and spatial analysis on the 3D model using proprietary mathematical feature- and space-based algorithms to automatically calculate stock material and dimensions. Stock size values must be added as part of the stock table in the 2D manufacturing list. Stock size values for different parts vary based on shape, surface finish, material, and geometry criteria.
[0052] In one embodiment, parts can be in different shapes, such as flat, round, tube, angle, or other customized shapes available in the market. For each of these shapes, stock is calculated using specific proprietary algorithms. The application also calculates the optimal part orientation in which the part needs to be oriented before calculating the part extent or part boundary area. Material removed while performing surface finishing operations is effectively added and needs to be considered as part of the stock size calculation. Stock is mathematically added, taking into account the various types of machining and is also based on the maximum part extent. Material plays an important role in mapping the calculated stock to the available stock. The application uses proprietary algorithms to ensure that material waste is minimized while calculating the required stock size.
[0053] There are special parts, such as bent brackets, which are flat pieces of metal bent along one or more axes, and additional customized algorithms have been created for the analysis of such special parts. In one embodiment, the application of the present invention uses a proprietary feature recognition-based algorithm to calculate the number of bends for special parts such as bent brackets. The proprietary algorithm can calculate stock size values by mathematically bending the part in each direction. Special parts such as bent brackets can have geometry similar to angle brackets, and specific geometry-based algorithms are used to distinguish between special bent bracket parts and standard angle bracket parts.
[0054] In one embodiment, each customer can use a stock table provided by a specific manufacturer. The stock table has different sheets based on geometry-material combinations. Stock is calculated for each solid body in a part. Each solid body can be made of a different material. Also, a detailed report is generated in the list for parts where stock size could not be calculated due to geometry inconsistencies or missing stock tables.
[0055] In one embodiment, the present invention utilizes the Part and Assembly Sweep Data Module to extract topology and geometry information from part and assembly information using CAD APIs across multiple CAD packages. The application can distinguish between manufactured and commercially available parts based on part metadata and customer data. Main assembly and subassembly structures vary from customer to customer, and the present invention creates a custom configuration file to handle this variation, using regular expressions and depths of parts in the assembly tree to correctly evaluate part types within an assembly. For each manufactured part, the application reads all solid bodies that make up the part and the various faces and edges that make up each solid body. Accurate information is collected for every single face (e.g., by way of non-limiting example, face type: plane, cylindrical, spherical, conical; face normal or axial direction; face center; face curvature: concave or convex; and other face characteristics).
[0056] In one embodiment, for certain types of faces, unique properties associated with the face are also extracted. For example, in a non-limiting example, half-angle information is extracted for conical faces, and unique properties for other specific faces are also extracted. The application also uses a custom and proprietary geometry connectivity-based algorithm to recognize features such as holes, slots, milled vertical walls, and machined surfaces from dumb solids, which provide features not defined in the feature tree. Dumb solids are preferred by various customers in the CAD space for their lightweight 3D models, ease of use, and ease of modification and revision. The application also creates a face connectivity graph, identifying and reporting connected and adjacent faces that form a complete solid to create a mathematical model of the part. Accurate view orientations and rotation matrices are calculated for each solid body using the collected face information. This forms the basis for calculating the correct 2D view orientation and ensuring all necessary dimensions are displayed in the drawing view. The present invention successfully extracts topology and geometry information from the most common CAD kernels used in various CAD packages, such as B-Rep and Parasolid.
[0057] In one embodiment, custom ray-casting / ray-tracing-based graphics algorithms are used to identify hit surfaces, and the exact mating / contacting parts for each assembly and subassembly are also calculated using facet data. This analysis helps form an assembly connectivity graph from parts within an assembly that are connected to other assemblies to parts connected to the automotive products processed by this assembly. The entire data from this analysis is entered into an Excel database using the OpenXML-based EPPlus library, which speeds up the data writing process. The majority of the Auto2D process of this invention is performed in a customer environment using a CAD package with minimal human interface. The entire Auto2D process takes an average of 7-8 hours to perform the complete end-to-end drawing generation process. Auto2D can be broadly divided into three stages: data extraction, which runs within the customer environment; algorithm processing, which runs in a cloud environment; and drawing generation, which also runs within the customer environment.
[0058] In one embodiment, topology and geometry data is extracted from parts and assemblies at the customer environment during the first stage of the Auto2D process. The extracted data is stored in an Excel database file. Data files describing each manufacturing part and assembly are maintained in an Excel database file specific to that manufacturing part and / or assembly. The extracted data from the customer environment is sent to a cloud environment for Algo processing. The Algo-processed data creates additional Excel files that are transferred to the customer environment for the third and final stage of the drawing production process. Once drawings have been created for all required parts, all data (3D + 2D) from the end-user system is pushed to a dedicated system for quality assurance review by one or more human analysts. The majority of data transfers within the customer network use Windows shared folders and automated Robocopy-based Windows batch scripts.
[0059] In one embodiment, automated data transfer from the customer environment to the cloud environment and vice versa is performed using Secured File Transfer Protocol (SFTP), which encrypts data at the source and destination. File transfers can be performed via batch and Powershell scripts and Windows Services.
[0060] The various data transfer processes are listed below.
[0061] l. Extracting data from end-user systems to the Vectra Customer Gateway System (VCGS) m. Extracting data from VGCS to the Vectra Cloud n. Process data from Vectra Cloud to VGCS o. Processing Data from VGCS to End-User Systems p. Final data from end-user system to quality check system
[0062] In one embodiment, an application uses CAD APIs across multiple CAD packages to automatically generate engineering drawings for various manufacturing parts and assemblies. The primary input for this drawing creation is an Excel database generated from one or more proprietary algorithms. These custom algorithms calculate and generate information for each part and assembly. The application automatically creates the following entities:
[0063] 1. Drawing files and drawing sheets 2. Drawing Templates 3. Title field information 4. Views and Dimensions 5. Hole and slot charts 6. Customer-specific notes and stamps 7. Isometric View 8. PDF and Neutral Format Files
[0064] The application begins by automatically identifying the 3D parts or manufacturing components and assemblies for which drawings should be created. Based on pre-established customer drawing standards, the application selects the appropriate drawing file from a customer-provided drawing file collection or creates a new drawing file for the individual part or assembly. This process also creates all necessary drawing sheets within the drawing file. The correct sheet size is determined based on an algorithm provided by the information. Proper naming conventions for drawing sheets and drawing files are also created based on customer specifications.
[0065] In one embodiment, it is important to add the correct customer drawing template to all drawings created with this module. Vectra has an XML-based configuration file to handle this change for multiple customers. The correct drawing template for a specific customer is selected from this configuration file. Customer templates added to all drawing sheets have an empty title block in the lower left corner of the sheet. The application also automatically populates the title block information for each part and assembly. The title block information for each manufacturing part and assembly is obtained from the part metadata or attributes created during the Vectra Pre Process module. The application also uses CAD APIs to dynamically create the information. This ensures that the information is always linked to several 3D metadata files and automatically updates if the data changes, ensuring current relevance.
[0066] In one embodiment, the application uses CAD APIs to create custom-oriented 2D view representations for each part and assembly and adds them to the correct drawing sheet. The orientation, position, and scale information for each of these custom views resides in an Excel database created by one or more customized proprietary algorithms. The application also creates various types of dimensions, such as linear dimensions, ordinate dimensions, radius dimensions, and diameter dimensions, for each part and assembly using customer-specific dimensioning settings and preferences. Dimension selection is primarily based on pre-established customer standards. In addition to dimensions, the application also creates other entities, such as datum flags, specific symbols, GD&T, notes, and annotations. The basic information for creating all dimension entities is sent from the Excel database associated with that specific assembly and / or part. The application can also adopt various drawing customer standards using custom XML-based configuration files.
[0067] In one embodiment, all holes present in parts and assemblies must be called out in a hole or boring chart on the drawing sheet. Parts can contain various types of holes, such as dowels, taps or threads, clearances, counterbores, and countersinks. All these different hole types are sequentially indexed using a proprietary algorithm based on minimizing machining and drilling time by drilling nearby holes of similar types, as determined by the hole type and the associated drawing view. Hole center marks and hole axes are also created in each view using the CAD API.
[0068] In one embodiment, every manufacturing part and assembly has specific notes and stamps that need to be placed on the drawing sheet. These notes and stamps provide more information to the manufacturing team about the process of the operation, the tolerances used, etc. These stamps are different for each customer and part type. The system utilizes an Excel-based configuration file that allows the notes and stamps to be placed in the correct location within the drawing sheet.
[0069] In one embodiment, for a visual representation of a 3D assembly or part in 2D space, an isometric view of each part is created on a drawing sheet. The orientation and position of this isometric view are calculated using a proprietary algorithm. The application also generates a PDF file of each part and assembly at the end of the drawing process. In addition to PDF files, some customers require drawing files in neutral file formats such as IGES, STP, and DXF for downstream manufacturing processes. A CAD API is used to automatically convert the drawing files into the specific neutral file format and required settings required by the customer.
[0070] In one embodiment, this isometric view creation module creates visual representations of 3D parts and assemblies in a 2D workspace configured as manufacturing drawing sheets. The main functions of this module can be briefly categorized as follows:
[0071] 1. Calculate the isometric view direction. 2. Calculate the available drawing sheet space and scale and position the created views.
[0072] In one embodiment, the first phase of this module is to calculate the correct isometric view directions for parts and assemblies. Various part types are currently handled by this module, such as manufactured parts, multi-object parts, and parts with subassemblies. All these part types are further broadly classified based on object shape (flat, angle, tube) and part category (assembly part, special part). The following list describes the steps involved in calculating the optimal isometric view directions:
[0073] ·Parts and part assemblies are broadly classified based on shape and category.
[0074] Based on the determined shape and category, a unique analytical process determines the starting orientation of each part. The starting orientation determines how the part will stand upright, which defines how the part will be attached to the assembly.
[0075] From the starting orientation, the part is rotated 30 degrees in the X direction around the drawing sheet. This is along the X axis.
[0076] The part is then rotated around the drawing sheet along the Y axis in 15 degree increments from 0 to 360 degrees to complete a full circle.
[0077] For each 15 degree rotation interval, certain parameters are calculated, such as the number of visible edges, the number of visible faces, the number of visible objects, and the maximum area occupied by the view.
[0078] The combination of calculated parameters helps determine the optimal orientation of the part.
[0079] This best fit orientation is the orientation of the final isometric view of the part.
[0080] The calculated isometric view has the maximum visible entities in this direction to perform downstream applications such as final assembly or calling up individual objects for a bill of materials (BOM).
[0081] In one embodiment, the second phase of this analysis process is to calculate the available space on the drawing sheet. The drawing sheet may have several existing base views, dimensioned projection views, customer title block information, hole tables, revision tables, etc. The analysis process considers the presence of all these existing items and calculates all available space blocks on the drawing sheet. Among the identified blocks of available space, the analysis process determines the optimal space block so that the isometric view can be optimally scaled and positioned.
[0082] The application handles the creation of balloon callouts for all subparts present in assemblies and weldment parts. These callouts are created using CAD APIs across multiple CAD packages. Key aspects of the application include:
[0083] 1. Identifying visible peripheral edges to create callouts 2. Avoiding and removing intersecting / crossed callouts 3. Assign different drawing zones (top, bottom, left, right) to callouts based on view direction and space availability
[0084] In one embodiment, one of the key challenges is identifying the most optimal visible perimeter edges on a subpart for attaching a callout. The application uses a CAD API to determine the visible edges of the subpart and converts the edges to parametric curves to calculate the visible edge sections (edges may not be fully visible throughout, but may overlap and be divided into sections). Vectra's proprietary mathematical algorithms then determine all peripheral visible edges relative to the virtual view boundary. It also identifies parts that are not visible in the assembly and makes them hidden so they can be called out within the assembly.
[0085] To maximize the use of available drawing space, different parts in an assembly are called out in different zones (top, bottom, left, right). A proprietary algorithm classifies each part into a specific zone depending on its proximity to the virtual view boundary. When the number of callouts in a particular zone exceeds a threshold, the callout is pushed counterclockwise to the next zone in the same view. The zone assignment order is right, top, left, bottom. Created callouts can be represented numerically or alphabetically based on customer specifications. A custom algorithm also aligns all callouts within a zone along the virtual view margin to improve readability.
[0086] Callouts are created using a combination of CAD APIs and mathematical algorithms to eliminate intersections between callouts as much as possible. The application uses 2D line equations to determine intersection points between callouts and resolves intersections. Customer-specific drawing settings are also applied to each callout created.
[0087] Core Engine The core engine is the heart of Vectra's automated annotation and dimensioning software. Below is a rough breakdown of its computational modules and the order of operations. The computational workflow is parallelized across the components that make up the tool assembly, and the runtime environment is designed to scale with the size of the assembly. Data engine → Inference engine → Part graph Feature Decision | Feature Prediction → View Selection Dimension location → Sheet assignment Hole sequencing → Dimension database
[0088] The core engine program consists of several algorithms that are optimized and programmed into a series of modules. The computational workflow is parallelized on the functional components that make up the incoming tool assembly, and the runtime environment is designed to scale up with the size of the assembly.
[0089] In one embodiment, the core engine is intentionally designed to be agnostic to CAD platforms, OEMs, customers, design and manufacturing regions, applicable domains, tool specifications, etc. All of the above details are encompassed in the configuration parameter space, but the specific algorithms operate only on abstracted data. The dimension styles and drawing sheet requirements required for the final drawing are specified by the customer and then mapped to the configuration parameters and utilized appropriately to generate the drawing information as part of the dimension database.
[0090] The core engine can be extended with machine learning solutions that process incoming tool data in parallel with deterministic algorithms. ML solutions improve the accuracy and speed of the dimensional data generation process, while significantly reducing the lead time for adapting the core engine to new OEM configurations or application domains. Computer vision-based solutions supporting the CAD data extraction program also undergo continuous training and improvement. These help to better predict attribute features of CAD models and assemblies.
[0091] In one embodiment, the core engine algorithms are continuously adapted over several years to various customers from various regions around the world and various manufacturing domains. The algorithm design has been iteratively improved to make it more configurable, scalable, and resilient. The size and scale of operations for an average tool size reached hundreds of gigabytes and was thoroughly stress-tested in server-based and serverless environments. The limits of the sub-algorithms assumed in the computational modules have been identified, and appropriate workarounds have been incorporated to handle unusual scenarios that may arise from time to time.
[0092] The core engine fundamentally relies on geometry data, assembly data, and model-level attributes extracted from CAD models. The process of extracting this data is conventionally designed using APIs published by each CAD platform. Furthermore, the tool architecture is analyzed based on the given assembly, and the final data set is presented to the core engine program in a standard format. This modular workflow ensures that the program is not affected by changes in the customer environment.
[0093] The geometry data consists of a point cloud of vertices wired together as edge-bounded faces that make up the model. The data also consists of curvature, direction, and inflection associated with the faces. Using the geometry data, the core engine reconstructs edge loops, face shells, and topology graphs for the entire part.
[0094] In one embodiment, the attribute data may be a mix of model attributes assigned to CAD objects and attributes inferred from assemblies and mapped to algorithm parameters according to customer configuration. The data consists of component types, object shapes, materials, stock size metrics, standard part classes, surface machining, hole features, product contact surfaces, and additional pre-configured parameters. The assembly data consists of a list of components in the tool assembly, their aggregations in the form of unit and subunit assemblies, objects in the component assemblies, and their associated mating information.
[0095] Data Engine This document describes the algorithms employed in each module, the aspects of 3D model design, and the interpretation of those algorithms. Details of programmatic implementation and application development methodologies are outside the scope of this document.
[0096] Data Wrangling In one embodiment, 3D models designed as parametric solid models or using boundary representation models are likely to suffer from geometric inconsistencies resulting from inaccurate modeling. Such inconsistencies can have a cascading effect on the core engine and its output. A separate correction algorithm is envisioned that operates on the raw CAD data and resolves known anomalies. Additionally, coordinate data from unrelated locations on the tool assembly can creep into the input. Such outliers are identified by the correction algorithm and suppressed from being staged in the core engine. All correction functions are designed based on principles of vector algebra and topological constraints.
[0097] In this embodiment, one of the important input attributes of the core engine is the "Stock Size Metric." If the stock size metric is missing for any object in the input data, it may cause many miscalculations in the core engine, affecting the dimensional accuracy of the drawing. To avoid such miscalculations in the core engine, the data correction algorithm attempts to create the stock size metric using the bounding box data of the object.
[0098] The data correction algorithm estimates the bounding box of an object in the LCS view. The extent of the bounding box along the three directions of the LCS is simply the length (l), width (w), and height (h) of the object's material stock. The algorithm uses the three extents of the bounding box as "l units x w units x h units" to create a stock size metric and set it in the object's attribute data.
[0099] Another issue that most affects the core engine is the absence of face names in CAD data in the unit assembly context. Without face names, the core engine creates views in drawings but does not create dimensions. When the data correction algorithm identifies that a part in the unit assembly CAD data has no face names, the algorithm uses the face center of the face.
[0100] The data correction algorithm obtains the part face center points and transformation matrix from the unit assembly geometry data and transforms the geometry data from the Tool Coordinate System (TCS) to the Part Coordinate System (PCS). The algorithm applies the transformation matrix to the face centers to convert from the TCS to the PCS. Once the face centers are transformed, the data correction algorithm attempts to find a match between the transformed face centers and the face centers in the part's local geometry data. If a match is found, the face names are inferred from the part's CAD data and added back to the unit assembly CAD data.
[0101] Attribute information is typically set by the modeler manually or using custom plugins. This accuracy is crucial for algorithmic programs to correctly recognize manufacturing features on the model. Machine-learning (ML) algorithms are also envisioned to predict some attributes and allow designers to error-check for incorrect assignments. ML augmentation is performed through an independent workflow and data pipeline before the data extraction stage.
[0102] Assembly Type Tools are modeled for various assembly design product lines based on the application domain. In the following section, a representative BIW Fixture tool is provided as an example. Other domains of interest in manufacturing engineering are Powertrain Machining and Assembly, General Assembly, Sheet Metal Dies, Checking Fixtures, and System Layouts.
[0103] On the design front, a tool is typically designed as a set of subassemblies called "units," each containing parts assembled and constrained to work together as a single unit.
[0104] Some tools are modeled as a whole, as one functional unit, where the entire tool acts alone as a highly constrained assembly of non-moving parts.
[0105] Complex tool assemblies consist of a set of constrained functional units and moving parts. Component parts are classified based on their functional properties and the role they play in the constraints of neighboring parts in the assembly. The combination of these property parts constitutes a functional unit.
[0106] The part itself can be made up of one or more components of different shapes and sizes. A list of common shapes used in the BIW domain is: Flat, Angle, Rectangular Tube, Round Tube, Unistrut, Beam, Channel, Round. Parts made up of multiple components are called "weldments" because they are usually welded together.
[0107] Data Type The core engine essentially relies on geometry data, assembly data, and model-level attributes assigned in the CAD model. The process for extracting this data is designed using APIs published by each CAD platform. Furthermore, the tool architecture is analyzed based on the specified assembly, and the final data set is provided to the core engine program in a standard format. This modular workflow ensures that the program is not affected by changes in the customer environment.
[0108] The geometry data consists of a point cloud of vertices wired as edge-boundary faces that make up the model, along with the curvature, direction, and inflection associated with the faces. The core engine uses the geometry data to reconstruct edge loops, face shells, and topology graphs for the entire part.
[0109] Attribute data, on the other hand, is a combination of model attributes assigned to CAD objects and attributes inferred from assemblies and mapped to algorithm parameters according to customer settings. The data consists of component type, object geometry, material, stock size metrics, standard part classes, surface machining, hole features, product contact surfaces, etc.
[0110] The assembly data consists of a list of the components of the tool assembly, their collection in the form of unit and subunit assemblies, the objects of the component assemblies, and their associated mating information. More information about the tool design and assembly structure is provided in the next section.
[0111] Data correction 3D models designed as parametric solid models or using boundary representation models can have geometric inconsistencies due to incorrect modeling. Such inconsistencies can have a cascading effect on the core engine and its output. A separate correction algorithm is envisioned that operates on the raw CAD data and resolves known anomalies. Additionally, coordinate data from unrelated locations in the tool assembly can creep into the input. Such outliers are identified by the correction algorithm and suppressed from being staged in the core engine. All correction functions are designed based on the principles of vector algebra and topological constraints.
[0112] Attribute information is typically set by the modeler, either manually or using custom plugins. This accuracy is essential for algorithmic programs to correctly recognize manufacturing features on the model. Machine-learning (ML) algorithms are also envisioned to predict some attributes and allow the designer to error-check for incorrect assignments. ML augmentation is performed through a separate workflow and data pipeline before the data extraction stage.
[0113] Data interpretation All 3D entities in the model are identified by application tags. The tags are immutable across data extraction and drawing production sessions performed at various times on the customer workstation. Meanwhile, the algorithm programs run entirely in the cloud, with only end-point communication with the customer workstation. Therefore, the output of the algorithms is returned in the form of dimensional annotations to 3D objects using immutable tags.
[0114] The 3D coordinate data of all tool assembly components is captured in a global coordinate system common to all components. Additionally, the relationship to each part's coordinate system (i.e., the one it is designed for) is also extracted. Additional planes related to the tool assembly (e.g., ground plane, support platform) are also extracted from the model.
[0115] The output of the core engine consists of two parts: one relating to the 2D drawing views of each part, and one relating to the layout drawing view of the tool assembly. In both cases, the input 3D data is transformed from the component system and tool system, respectively, to the final 2D view system for each drawing. The core engine calculates the underlying transformations for all parts and subassemblies within the tool and returns them as output to the drawing program to be interpreted and used to properly orient the 2D drawing views.
[0116] Data Bundle In one embodiment, input data from a CAD workstation relates to a tool assembly and its functional components. The assembly information is decomposed into individual unit assemblies, each of which includes geometry information, joining planes between its constituent components, assembly-level attributes, and tool-specific information about major components and their key points. The assembly file is expected to be huge compared to those of the individual components. However, to save data wrangling and processing time, coordinate transformation relationships between the local coordinate system of each component and that of the unit assembly are utilized.
[0117] A similar strategy can be used for welded component assemblies such as frames. All objects are listed in the coordinate system of the weldment as a whole, along with their relationships to the local coordinate axes of each individual object. The machining planes between each pair of joined objects are listed in the form of an adjacency matrix.
[0118] In this embodiment, component and assembly data are handled separately in separate data files, grouped by tool name and workstation name. In the event of a crash, the data bundle is retrieved using a unique name identifier and processed by the core engine. The dimension database generated at the end of the run is added to the bundle along with log and cache information. Analysis of core engine processing is performed based on the runtime log and stored with historical data. This analysis facilitates training of the core engine's auxiliary programs, such as server estimation and runtime prediction, crash event analysis, data correction, and exception reporting.
[0119] Inference Engine The Inference Engine (IE) uses the assembly information to determine the major planes and datum features of the parts. The IE algorithm is described in the following section.
[0120] Assembly Tree In one embodiment, a unit assembly is envisioned as a tree graph made up of parts as nodes, with attachments between parts represented as connections between each node.
[0121] The level hierarchy is organized into a tree starting with the first part (FP) that is attached to the tool frame or base. Using a tree traversal algorithm, the shortest path to each node is determined from FP. Distance is calculated in units of the number of connections required to reach the final node. The shortest distance to a node is assigned as the unit's hierarchy tree (HT) level. The HT level indicates the assembly sequence in which parts are attached one above the other and is later used to determine each part's primary plane of attachment.
[0122] A unit assembly can consist of multiple subunits originating from each FP attached to a frame or base. In this case, the HT consists of two or more overlapping trees. The level assigned by the shortest distance HT is prioritized for the overlapping node. The previous node identified from the corresponding HT is used in the subsequent part of the principal plane determination.
[0123] Components such as screws, bushes, etc. are ignored during tree traversal. They only play a passive role in the assembly and do not affect the final level calculations. In the above units and corresponding HTs, screws are shown as assembly fasteners.
[0124] The HT calculation also identifies disconnected parts or their subassemblies within a unit. Disconnected part clusters are the result of modeling errors or the absence of product files in the input tool. A separate algorithmic workflow is envisaged to analyze them.
[0125] In the non-unitized tool, the entire assembly is modeled as one unit, but with functionally independent pseudo-units attached to a common frame or base. The algorithm identifies FPs from the frame mounting parts and assumes HTs for each pseudo-unit assembly of parts.
[0126] The IE algorithm is flexible enough to provide customization of the tool assembly sequence. Apart from the FP, a unit assembly may contain one or more fixture components that act as fulcrums around which other parts are attached. In such cases, a HT tree is generated from each starting point and the assembly sequence for each is determined.
[0127] The IE algorithm is suitable for customizing the assembly sequence. Apart from the FP, a unit assembly may contain one or more fixture components that act as fulcrums around which other parts are attached. In such cases, an HT tree is generated from each starting point and the assembly sequence for each is determined.
[0128] Bounding Box In one embodiment, the system provides an algorithm that calculates the 3D bounding box of a component in any input view, given the component's geometry data as input. Because the component's geometry data is created according to a model coordinate system, the algorithm first rotates the component's point cloud to the input view. The algorithm calculates the minimum and maximum coordinates of the point cloud in all three directions of the view. Using the minimum and maximum coordinates, the algorithm constructs eight points that serve as the corner points of the bounding box.
[0129] The computed bounding box covers most of the component's profile. However, if the component boundary has non-planar faces or non-linear edges, it may not cover the entire component. The vertex data for non-planar faces and non-linear edges may not be sufficient to create the bounding box, since faces or edges can exist beyond the vertex data. In this case, the algorithm uses other elements in the geometry data to calculate the extremum points of the non-planar faces / non-linear edges.
[0130] Spherical bounding box In one embodiment, if a component has a spherical boundary, the algorithm calculates extremum points on the sphere that contribute to the overall bounding box of the component. In this embodiment, the algorithm calculates the direction cosine of the vector from the center of the sphere to the center of the circular edge of the sphere. A point is calculated along the direction cosine that is a distance from the center of the sphere that is the radius of the sphere. The calculated point becomes an extremum point on the sphere. The coordinates of the extremum point are checked against the point cloud bounding box. If the coordinates of the point extend beyond the walls of the bounding box, the bounding box is extended to include the extremum point.
[0131] Arc bounding box In one embodiment, if a circular edge forms a boundary that contributes to the overall bounding box of a component, the algorithm finds extrema on the arc by employing an algorithm such as a binary search, by reducing the search space on the arc by half at each iteration. At each iteration, three points on the arc are calculated. With the help of the start and end angles of the arc obtained from the geometry data, the start point, end point, and midpoint are calculated. These three points are searched for the extremal coordinate value under consideration. The three points with extremal coordinates instruct the algorithm to select a reduced search area on the arc for the next iteration. The search continues to reduce with each iteration (up to a certain tolerance) until the three points are merged into one point. The extremal coordinates are checked against the bounding box of the point cloud. If the point coordinates exceed the walls of the bounding box, the bounding box is expanded to include the extremal point.
[0132] Optimal LCS In one embodiment, a 3D model of a component is designed based on an origin and X, Y, and Z axes in 3D space. Generally, the 3D model is designed such that most faces are aligned (parallel or anti-parallel) to either the X, Y, or Z axes. Sometimes, the 3D model is designed such that most faces are not aligned to any of the model axes. Such components are referred to as oriented components.
[0133] In this embodiment, to systematically analyze oriented components, a local coordinate system (LCS) must be assumed so that most faces appear aligned with respect to the horizontal (H), vertical (V), and normal (N) axes of the LCS. Assuming such an LCS is necessary to properly evaluate the optimal stock size of materials to purchase. The LCS of a component plays an important role in the core engine's calculation of the views that need to be shown in the drawing.
[0134] To assume the LCS of a component, the relationship between the model axes (X, Y, Z) and the LCS axes (H, V, N) must be established in the form of a rotation matrix (R). An algorithm is designed to calculate the LCS rotation matrix. The algorithm collects pairs of orthogonal faces of the component. For each face pair, the algorithm calculates a 3x3 rotation matrix by setting the normal vectors of the faces in the face pair as the first two rows of the rotation matrix. The cross product of the two normal vectors is set as the third row of the rotation matrix. The algorithm calls the resulting matrix the trial LCS rotation matrix.
[0135] In one embodiment, some trial LCS matrices may be orthogonal rotations of other trial LCS matrices. All such trial LCS matrices that are orthogonal rotations of each other are collected into groups. At the end of this step, there may be one or more such groups. If two rotation matrices always contribute the same stock size to their orthogonal rotations, the algorithm selects only one representative trial LCS matrix from each group for further calculations to minimize the overall computational complexity of the algorithm.
[0136] For each trial LCS, the algorithm identifies all faces aligned to any of the trial LCS's three axes and calculates the cumulative surface area of all aligned faces. The algorithm calculates the volume of the component's 3D bounding box for each trial LCS. It then calculates the ratio of the cumulative surface area to the bounding box volume for each trial LCS. The algorithm calls this ratio the "packing fraction." The trial LCS that contributes to the packing fraction is marked as the optimal LCS. The optimal LCS contributes to the optimal stock size that minimizes material loss during component manufacturing.
[0137] main plane The main planes are determined for each part using the assembly sequence. For a part on level N, all mounting counterparts on level N-1 are identified from the assembly data. Parts mounted via holes are given priority, especially those that are precisely located. If there are no holes with parts mounted on level N-1, then levels N and N+1 are also investigated. Next in priority are connected parts mounted via slots and / or cutouts.
[0138] The inference workflow is logically arranged to mimic the prioritized mounting process employed at the assembly station.
[0139] Datum Features Datum features are anchors for the entire part to which other features must be referenced, and are critical function features that are controlled during measurement. On a part drawing, datums are placed along or around the datum features in the form of flags, symbols, GD&T, etc. Measurement of critical function features is performed along the part axes along which the datum and most of the object mass are distributed, called the part's local coordinate system (LCS). Ideally, major planes and datum features are selected along the directions of the LCS axes.
[0140] If there are multiple mounting surfaces, the machined surface containing the recommended type of mounting hole and / or the surface with the largest area is recommended. Such a surface allows for finer control of part constraints and more accurate control of dimensional measurements. This datum feature is called a "datum surface." This feature controls dimensions along the direction of the normal vector.
[0141] Similarly, among mounting holes, precision holes followed by dowel holes are preferred over other hole types because they allow for finer control of dimensional measurement. This feature controls the dimension along two directions perpendicular to the axis and is called a "datum hole."
[0142] The choice of datum features is clearly based on the measurement approach. In addition to or instead of the above strategies, other machining surfaces can also be selected depending on the tool manufacturer. The inference engine is flexible to accommodate this kind of configuration change.
[0143] For non-precision parts (e.g., bent brackets) that require machining on one of their surfaces, non-precision holes and surfaces that are aligned with the LCS and attached to adjacent parts are identified as potential datum features.
[0144] In a part, mounting surfaces can be planar or non-planar, such as a dowel pin. As a non-limiting example, a dowel pin can be located within a cylindrical slot in a pin retainer. A planar curved surface at the bottom of the pin and an adjacent circumferential cylindrical surface that wraps around the pin are attached to the pin retainer. In this case, both surfaces function as datum features. The planar surface establishes a dimensional reference along the axial direction of the pin and cylindrical surface, and locates a concentric feature in the orthogonal direction.
[0145] Primary View The inference engine uses datum features as a starting point to determine the primary view that will appear in the final 2D drawing. The normal to the datum plane is assumed to be the view normal, effectively rotating the view so that it is parallel to the major plane. The LCS directions orthogonal to the datum plane are assumed to be the horizontal (H) and vertical (V) directions of the view. The LCS direction along which the part extends is typically chosen to be the H direction due to the asymmetric aspect ratio of drawing sheets used for layout drawings.
[0146] In some cases, the primary view is expected to mimic an orientation within a unit assembly or a "standing view" within a tool. This is typically the case for riser brackets, frames, etc. As a non-limiting example, the major planes and datum features of a riser bracket are attached to the bottom of the assembly. However, the primary view is selected as one in which the long axis of the bracket is displayed vertically in the view. The selection of parts that fall into this category can be customized in the inference engine.
[0147] In the case of clamping unit assemblies, such as assemblies consisting of power clamps or clamping cylinders, the associated blades, NC Mylar, and clamp arms attached directly or adjacent to the clamping components are subject to their mounting conditions. In such cases, the V direction of the associated component's primary view coincides with the longitudinal axis of the clamping component. This coincides with the clamping force acting on the associated component's rotational degree of freedom.
[0148] The main goal of primary view determination is to be able to capture all dimensionable features on a part within one or more orthogonal projections of the view. Potential datum features are used in primary view determination when there are no functional features that need to be referenced from a datum feature. For example, when there are non-precision features, such as cutouts, in the main mounting plane. Additionally, orthogonal projections must serve as reference views to auxiliary planes that contain dimensionable features, especially of the machining type.
[0149] Auxiliary View There may be a dimensionable hole feature (on a flat object) whose axis is not aligned with the overall LCS of the weldment. In this case, the primary view of the frame is determined to be in an upright orientation so that the floor mounting plate remains positioned at the bottom. An appropriate orthographic projection with respect to the primary view leads to a construction plane in which the hole feature and its parent flat object appear axis-aligned.
[0150] Determining the orthographic projection that leads to an auxiliary view involves identifying a "reference hole" that is used to position auxiliary hole features. The projection containing the reference hole shares an angled edge interface with the auxiliary plane. This edge direction is used as the rotation axis around which the reference orthographic projection must rotate until the auxiliary plane is aligned with the screen normal. The LCS orientation of the final view includes the auxiliary plane normal, the direction of the angled common edge, and the direction orthogonal to both. Features in this view are positioned along the new LCS orientation.
[0151] Construction planes can also comprise other types of features, such as slots, cutouts, etc., but these are not referenced along the part LCS directions. As a non-limiting example, a segment of a bent bracket containing a slot feature must assume an auxiliary view; however, in this case there is no reference hole. The auxiliary view can be assumed using the plane normal of the segment and the common edge it shares with the standard orthographic projection. The slot face is referenced along the local axis of the segment.
[0152] Machining start surface In one embodiment, the location dimension for the datum feature is assumed from a Machining Start Face (MCSF). These faces are typically rough surfaces located on the periphery of the part and aligned with the LCS axis. Among the possible faces, larger faces are prioritized to allow better control of this so-called Machining Start Face.
[0153] The peripheral face preference can be overridden if the part itself is cut from a burnout profile and the peripheral face is machined generally. Additionally, datum features may be placed from a so-called "First Machined Face" (FMF), which is characterized by fine machining tolerances. In this case, the FMF is first placed from the MCSF, and then the datum feature is placed by the FMF. The latter dimension is called the starting dimension.
[0154] The selection of an MCSF-DF pair or an MCSF-FMF-DF triad is determined by a proximity condition. Note that such a pair or triad exists for each LCS direction of the part in question. The proximity condition is assumed to minimize the overall / cumulative distance between them. The set of potential pairs or triads initially consists of potential datum holes (or datum surfaces), potential MCSFs, and FMFs. The distance between each pair or triad is calculated along each direction before setting a series of minimization filters to arrive at the final pair or triad.
[0155] Cut start surface In one embodiment, a cut start surface (CSF) is a rough surface typically used to reference a profile cut on a part. For ease of reference, a peripheral rough surface is typically selected as the CSF. However, when a peripheral surface is machined for a machining operation or frame cut, its virtual counterpart is assumed in the drawing view profile and considered as the CSF to locate the cut surface in each direction of the part.
[0156] Fab start surface In one embodiment, Fab Start Faces (FSFs) are determined for a weldment, where one or more geometric objects are welded into a part assembly. These are typically used to reference structure-forming objects such as rectangular (or square) tubes, unistruts, beams, and so on, as well as precision objects. Similar objects are selected to determine the FSFs for better control of referencing and measurement. Non-precision objects are referenced from the local precision object to which they are attached. If additional object planes exist above the weldment that are aligned in non-LCS directions, their FSFs are determined relative to their nearest LCS-aligned counterparts.
[0157] New Faces In one embodiment, a tool assembly may use commercially available standard size components after modifying them as needed. The modifications may include creating chamfer cuts, reaming existing holes, machining, cutting the object to a desired length, etc. As a result of the modifications, new faces appear on the component. The new faces need to be highlighted when creating dimensions in a drawing of the modified component. The challenge for the core engine is to programmatically recognize the new faces among all the faces of the modified component.
[0158] In this embodiment, the core engine distinguishes between new and old faces by systematically comparing the geometry data of the modified component with its standard counterpart. Generally, the distinction between old and new faces is only apparent when comparing the modified component and its standard counterpart after rotating them in the same direction.
[0159] Before generating the geometry data of a standard component, a specific view, called the Std LCS view, is assumed and saved as an attribute within the 3D model itself for future use. The model origin is transferred to a specific point on the standard part or a point nearby the part. This point is called the Std LCS origin. The Std LCS view is assumed in such a way that, using a simple feature detection algorithm, its counterpart in the modified component is calculated and shown as one of the projections in the drawing.
[0160] After setting the model origin to the Std LCS origin, the geometric data of the standard component is generated. The geometric data of both the standard component and its modified counterpart are passed as input to the algorithm for calculating the new faces.
[0161] In one embodiment, the algorithm transforms the standard part's geometry data into its Std LCS view. To compare this transformed data with the modified component's geometry data, the algorithm must calculate the LCS view and arrive at the LCS origin of the modified component. The algorithm uses different feature detection techniques to calculate the LCS view of the modified component based on the part name or object shape. Some of the methods for calculating the LCS are described below.
[0162] Modified NC The algorithm identifies the top and back faces of the modified NC. The normal vector of the top face is set to the LCS view normal. The vector antiparallel to the back face normal vector is set as the horizontal axis of the LCS view. The cross product of the LCS normal axis and the horizontal axis becomes the vertical axis of the LCS view. The hole edge on the top face closest to the back face center is set as the LCS origin.
[0163] Modified C channel In one embodiment, the algorithm identifies the side and outer surfaces of the C-channel. The normal vector of the side surface is set as the horizontal axis of the LCS view. The anti-parallel vector of the normal vector of the outer surface is set as the vertical axis of the LCS view. The cross product of the horizontal and vertical axes of the LCS becomes the vertical axis of the LCS view. The bounding box of the modified C-channel is calculated in the LCS view, and the lower left front corner point of the bounding box is set as the LCS origin. The same method applies to calculating the LCS view and LCS origin for unistruts and beams.
[0164] Once the LCS view and LCS origin of the modified component have been calculated, the algorithm transforms the geometry data of the modified component into its LCS view. At this stage, the geometry data of both the modified and standard components are in a transformed state and ready for comparison.
[0165] In one embodiment, the algorithm selects a face from the modified part and calculates the directional distance (D) between the face center and the LCS origin along the normal direction of the face. alt ) is calculated. This direction distance is the direction distance of the face from the standard part (D std ) is compared with D alt and D std If the difference is 0 (maximum 1 arc minute tolerance), the face from the changed part is marked as out-of-date. alt D std If none of the distances match, the face is recognized as a new face.
[0166] If calculating the LCS view for any standard part type or shape is not straightforward, the algorithm employs a trial-and-error approach to determine the correct LCS view and LCS origin. In the trial-and-error approach, all orthographic rotations of the B_LCS (optimal LCS) are considered trial LCS views. For each trial LCS view, a bounding box is calculated, and the lower-left front corner of the bounding box is considered the trial LCS origin. New faces are calculated for each trial LCS view. The trial LCS that contributes the least number of new faces is settled as the correct LCS view. This trial-and-error approach is used for L-blocks, angles, rectangular tubes, etc. Finally, the resulting LCS view of the modified component is displayed in the drawing, and the dimensions of the new faces are determined.
[0167] Parts ignored by HT The following parts are ignored as part of building the HT for a BIW assembly fixture. The list is representative and not exhaustive. In addition to custom lists, the inference engine can also accommodate mounting scenarios where priorities are ignored or overridden when building the HT for an assembly. "Anchor Angle", "Bearing", "Bolt", "Bush", "Cable", "Cap Head", "Changer", "Cover", "Device Net", "Device Net", "Dowel", "Fastener", "Floor Leveling Plate", "Flow Control", "Grid", "Hilti Type Anchor System", "IO Block", "I / O Block", "Magnet", "Manifold", "Nut", "Open Position", "Prox", "Receptacle", "Robot Adapter Plate", "Screw", "Section", "SHCS", "Sleeve", "Socket Head Cap Screw", "Stud", "Tap Block", "Tool Changer", "Valve", "Washer".
[0168] Part Graph Determining a part graph involves building topological connections between objects, faces, and edges on a particular part and developing a toolkit of methods for determining various features on the part. Using edge and face geometry data, the part graph is constructed from edge loops for each face, the surface shell that encloses the object, and the tree of mate bodies that make up the part. Furthermore, topological and geometric properties that characterize these 3D objects are assumed, such as edge-shared faces, concentric faces, and coplanar / orthogonal / anti-parallel counterparts. Furthermore, the part's local coordinate system (LCS) is used to further characterize faces based on their relative placement and position. Non-limiting examples include faces (mis)aligned to LCS axes, peripheral faces that are aligned with specific directions, etc.
[0169] In addition to geometry data, the data engine also feeds attribute data into the algorithms. Attribute data includes machining information, hole size and feature information, prefabrication holes, construction holes, product contact surfaces, object shape, material, tool class, etc. This information is further used to characterize the faces and objects in the part graph. For example, a part may comprise a standard counterpart, i.e., an object designed from the same shape and standard stock size. In such cases, a comparison of the part graph and axis-aligned characteristic face properties helps determine the "new faces" of the modified part.
[0170] Similarly, hole surfaces are characterized into different type classes depending on the hole feature attributes. A face adjacency matrix is used to identify hole surfaces from their planar counterparts, and appropriate view selection is performed for hole surface indexing. The topological connectivity of holes, slotted holes, and cutouts with outer planes is utilized in determining the dimensions of such features in the most descriptive terms.
[0171] The part graph calculation builds a topology tree of the geometric entities that make up the part and identifies the properties required for the feature determination process. The edge coordinate data is used to build edge loops for each face. The collection of faces and their edge-based continuity are used to build a surface shell that encloses the parent object. A tree of mating objects that make up the part as a whole is built from the mating information.
[0172] Feature determination The feature determination algorithm is at the heart of the core engine. It contains a set of deterministic rules for identifying dimensionable features on a part and their respective starting points to place dimensions. Orthographic and auxiliary views are envisioned to analyze features from various perspectives, and ultimately the most descriptive view is selected, with all features displayed with dimensions.
[0173] Machining start surface Datum feature location dimensions are assumed from Machining Start Faces (MCSF). These faces are typically rough surfaces located on the periphery of the part and aligned with the LCS axes. Among the possible faces, larger faces are prioritized to allow better control of the temporarily specified machining start dimensions.
[0174] The preference for the peripheral face can be overridden if the part itself is cut from a burnout profile and the peripheral face is machined generally. Additionally, datum features may be placed from the so-called "First Machined Face" (FMF), which is characterized by fine machining tolerances. In this case, the FMF is first placed from the MCSF, and then the datum feature is placed by the FMF. The latter dimension is called the starting dimension.
[0175] The selection of an MCSF-DF pair or an MCSF-FMF-DF triad is determined by proximity criteria. Such pairs or triads exist for each LCS direction of the part in question. The proximity criteria are assumed to minimize the overall / cumulative distance between them. The set of potential pairs or triads initially consists of potential datum holes (or datum surfaces), potential MCSFs, and FMFs. The distance between each pair or triad is calculated along each direction before setting a series of minimization filters to arrive at the final pair or triad.
[0176] Cut start surface Cut Start Faces (CSF) are typically rough surfaces used to reference the profile cut of a part. For ease of reference, peripheral rough surfaces are generally selected as CSFs. However, when peripheral surfaces are machined by machining operations or frame cutting, their virtual counterparts are assumed in the drawing view profile and are considered as CSFs for locating the cut surfaces in each direction of the part.
[0177] Fab start surface Fab Start Faces (FSFs) are determined for a weldment where one or more geometric objects are welded together to form a part assembly. They are commonly used to reference structure-forming objects such as rectangular (or square) tubes, unistruts, and beams, as well as precision objects. Similar objects are selected to determine the FSFs for better control of referencing and measurement. Non-precision objects are referenced from the local precision object to which they are attached. If additional object planes exist in the weldment that are aligned in directions other than the LCS, their FSFs are determined relative to the nearest LCS-aligned one.
[0178] Dimensionable Features Dimensionable features of a part are determined using a hierarchy of rules applied to faces. The part is analyzed from a standard orthographic perspective with respect to the primary view, using the part graph properties determined in the previous step. Normal-aligned faces for each view are determined, and corresponding object edges are probed. Co-edge loops are calculated to determine edge entities that outline the part profile in the view. Directionally aligned and non-aligned edges for each drawing view are identified. For auxiliary, section, and detail views, the feature determination process is adapted to the local coordinate system of the respective view, and dimensions specific to such views are calculated from the locally specified starting face.
[0179] Dimensionable features within each view are differentiated based on the starting surface used. The following sections describe a representative list of such features. The core engine is continually adapted along similar lines to handle features from new model scenarios originating from machine tooling and product design.
[0180] Cutting dimensions In one embodiment, this is the simplest dimension and results from the rough surfaces that make up the outline of the part. The geometry of the outline edges determines the type of cut dimension that is assigned. Aligned straight edges in this category are designated as cut features. Unaligned edges are considered good candidates for chamfer cut features. Edges that outline the bend profile are designated as bend location dimensions. This rule takes precedence over the previous assertion. The bend profile is determined using an independent algorithm described in the Appendix. Furthermore, as explained in the next section, rough edges on the perimeter may indicate the overall size of the part. In this case, the original cut feature assignment is ignored. Rough edges that overlap with corresponding faces on a burnout or standard blank are considered part of the raw material and are therefore ignored for dimensioning. Cut features are typically displayed as linear dimensions in drawings.
[0181] Chamfer cut In this embodiment, rough edges may not be aligned with the construction axes, as is typically specified in the assignment of chamfer cut features. They are dimensioned using an angle dimension and a cut dimension at one end, or a cut dimension at both ends. When multiple chamfer cuts are adjacent to each other in a view, the vertices of chamfer cuts that do not contain co-faces within the view boundary are selected for dimensioning.
[0182] Other model situations where chamfer cut dimensions are needed are toroidal surfaces on round dowel pins, and conical surfaces on countersink holes. The 2D profile of such surfaces is displayed as a chamfer edge, as shown below. Such dimensions are called in a view where the axis of each surface lies in the projection plane.
[0183] Size Dimensions Size dimensions are called out to indicate the overall size of a part along its degrees of freedom. Dimensions are classified according to size type, such as linear range, radial range, or diameter range. Because these dimensions only include peripheral edges, such edges are subjected to a rules engine that prioritizes overall dimensions instead of others.
[0184] When the final part is modified from the burnout profile, the peripheral faces are selected from the latter and the overall dimensions are retrieved from them. In such cases, the burnout profile is also displayed around the view outline in the final drawing.
[0185] If the perimeter of a part consists of circular edges, imaginary lines are drawn around the circular edges. The imaginary lines start at the common vertex with the linear coedge of the view and extend tangentially. Depending on the curvature of the circular edge, one or more imaginary lines may be assumed.
[0186] For round objects, the part may not have a planar edge along the drawing direction. In such cases, the total extent is called an imaginary boundary point on a cylindrical face that describes the outline of the part. The size is indicated using the cylindrical and diameter dimensions.
[0187] Bending cut In one embodiment, a flat sheet metal object or round can be deformed by bending operations along one or more axes. The deformation produces a series of bends that intersect the flat or round segment. The location of each bend is measured from the cut start plane or the previous bend in the chain. This dimension is shown in the form of a bend cut, as shown below. An algorithm for determining the bend chain and identifying the segments between bends is described below.
[0188] Slot Cut A rectangular slot cutout creates a continuous set of planar and cylindrical faces on a metal block. A circular slot cutout creates only a chain of cylindrical faces. Therefore, these features are identified by traversing the part graph and finding closed chains of faces containing concave cylindrical faces. An open slot also occurs when one end of the cutout opens into a component boundary. The traversal of the part graph is modified to suit the requirements of the feature.
[0189] Fab Dimensions In one embodiment, fab dimensions are called for a weldment assembly of components. Components are fabricated on top of each other starting from a source object called the "fab start object." The latter is inferred as part of the "inference engine." Starting from the fab start, the constrained, dimensionally feasible components in the weldment are evaluated using the "path-finding algorithm" described in the appendix. The algorithm identifies the dimensionally feasible components, their unconstrained orientations along their local coordinate axes, and the starting object for which dimensions need to be called.
[0190] Processing dimensions In one embodiment, machining dimensions are assigned to surfaces formed by machining operations. They are attributed to the model with appropriate finish tolerances or color codes. Machining features are dimensioned from datums or other relevant machining surfaces depending on their mating conditions within the assembly and their accuracy characteristics.
[0191] Related Processing In one embodiment, machined surfaces that are formed in relation to other machined surfaces, such as the step surface shown below, are called associative pairs. Such surfaces are typically identified by open reentrant angles that exist at their intersections in the model. Association rules are generally formulated in terms of fine tolerance surfaces. Coarse tolerance surfaces are formed in relation to their fine counterparts. Therefore, the feature identification algorithm is assumed to consider the machined edge of the current view and probe the adjacent edge loops of the view.
[0192] Keyway and key seat processing In one embodiment, these machining surfaces are formed inside the slotted feature, as opposed to profile machining, which is the typical model scenario: dimensions in such cases are unilateral and performed relative to the furthest shaft perimeter.
[0193] Bending Determination In one embodiment, the process of determining the dimensions of a bent bracket begins with identifying the bends. The bends are represented by the faces and edges that make up the bend. A feature recognition-based algorithm is designed to identify the faces of the bend. The algorithm selects pairs of cylindrical faces from all the faces of the bent bracket that meet certain criteria.
[0194] The larger cylindrical face has a "convex" curvature, and the smaller cylindrical face has a "concave" curvature. In this algorithm, the larger cylindrical face is called the Outer Cylindrical Face (OCF) and the smaller cylindrical face is called the Inner Cylindrical Face (ICF). The axis vectors of the OCF and ICF must be parallel or anti-parallel to each other. The radius of the OCF must be twice the radius of the ICF. The projected distance between the centers of the OCF and ICF faces along the direction perpendicular to the axis must be between 0 and a maximum tolerance of 1 minute. The Euclidean distance between the face centers must be between 0 and a maximum tolerance of 1 minute. Using the above criteria, the algorithm identifies all bends.
[0195] Bending Segment In this embodiment, once a bend in a bent bracket is identified, the next step is to identify its bend segment, which is simply the portion of the bent bracket that is connected to the bend.
[0196] Bent bracket as a tree After identifying the bends and bend segments in a bent bracket, the dimensioning process requires that the bends and bend segments be visited in a specific order. To determine the visit sequence, the bent bracket is represented as a tree structure with the bends and bend segments as nodes in the tree. A bend is always connected to two bend segments. A bend segment can be connected to one or more bends. If a bend and a bend segment are connected, there is an edge between the two nodes. Of all the bend segments, the segment containing the cut start face is designated as the start point of the visit sequence and is therefore denoted as the root of the tree.
[0197] Once the root is determined and the tree structure is ready, the tree needs to be traversed from root to leaves to determine the order of bends and bend segments required for dimensioning. Traditional tree traversal algorithms such as Depth-First-Search (DFS) or Breadth-First-Search (BFS) are applied to assign sequence numbers to the bends and bend segments.
[0198] Bending angle One of the dimension entities that appears on the 2D engineering drawing of a bent bracket is the Bend Included Angle (BIA). This is a measurement that tells the fabricator how much to bend a flat piece of metal. The BIA is the angle between two consecutive bend segments, as shown in the image. It is determined by calculating the angle between the normal vectors of the co-faces of the bend's ICF.
[0199] Intersection of the bend co-edges Another dimension entity that must be shown on the 2D engineering drawing of the bent bracket is the linear dimension between the two bends. This is the measurement that tells the fabricator how far from a specific point the bends need to be made.
[0200] The linear edges adjacent to the circular edge of the bend are identified and their edge vectors are calculated. The intersection of the edge vectors is calculated by solving the parametric equations of the two assumed lines using the edge vectors.
[0201] Bending segment LCS To calculate multiple dimensions associated with a bend segment, a local coordinate system (LCS) must be set for that segment. The plane adjacent to any bend ICF connected to the bend segment is called the segment planar face (SPF). The normal vector of the SPF is assumed to be the LCS view normal (N). The axis vector of the bend ICF and the normal vector of the SPF are always perpendicular to each other. Therefore, the axis vector of the ICF is set to the horizontal (H) direction vector of the LCS. The cross product of the ICF axis vector and the segment plane normal is considered to be the vertical (V) direction vector of the LCS. The LCS rotation matrix is calculated for all bend segments before calculating the dimensions associated with them.
[0202] Cut start face of bend segment Of all the planes of a bend segment, the peripheral faces that coincide with the horizontal and vertical axes of the segment's LCS are typically selected as the Cut Start Faces (CSFs). The geometric center of the Cut Start Face is used as the starting point for some dimensions created in the drawing. In the image below, both CSFs of each segment are highlighted.
[0203] Determining auxiliary views for bent segments If a segment has slots or holes in its plane that are misaligned with the axis of the best LCS of the bent bracket, the orthographic projection of the best LCS will not be able to show these slots or holes in alignment. You must then create a special view, called an "auxiliary view," to enable the holes or slots to appear in the drawing in their properly aligned position.
[0204] To calculate the auxiliary views, all orthogonal projections of the optimal LCS are assumed. One of the orthogonal projections must be chosen such that there is a common linear edge shared by the planes of the segments, and a plane whose normal vector is parallel to the view normal of the orthogonal projection. The common linear edge must be angled with respect to the horizontal and vertical axes of the orthogonal projections. Once an angled common linear edge is identified, the direction cosine of the edge vector of the linear edge is taken as the rotation axis. Around this rotation axis, the bent bracket is rotated from the orthogonal projection until it appears with the plane normal of the segments pointing towards the viewer.
[0205] Path-finding algorithm In one embodiment, the premise of a "path find algorithm" (PFA) is to explore all possible paths in a graph starting from a specific starting node. The search must be exhaustive and result in a distinct path. This algorithm is applied to structural frame members that make up welded frame assemblies, such as rectangular tubes, beams, unistruts, and round tubes. Such objects are fabricated together to provide support to smaller objects or structural frames. The path find algorithm results in all possible distinct paths and is utilized to analyze the constraint, alignment, and unconstrained conditions of the structural members. The unconstrained directions are ultimately considered measurable fabrication dimensions.
[0206] A path is assumed from the root node to all its connections. A wide category of graph traversal algorithms exists in the literature to explore all adjacent nodes. These include breadth-first search, depth-first search, and countless variations to optimize for the graph at hand. Traversal algorithms typically aim to reach the desired node via a time-optimized path without backtracking or ending up looping over previously explored nodes. This approach is extended in our algorithm to traverse the entire graph without leaving any nodes unexplored. The resulting graph spanning path is used in the next step of constraint analysis.
[0207] Graph spanning traversal can be time consuming for large sets of nodes or deeply connected graphs. In the former case, the problem is decomposed by identifying multiple root nodes and clustering the graph into smaller subgraphs. A path-finding algorithm is applied to each cluster, and later the graph-spanning path is joined at the root node. Deeply connected graphs are a difficult time optimization problem. The bounds are analyzed as a function of the number of nodes, and subgraph approximations are used when such bounds are exceeded.
[0208] Next, a constraint analysis is performed on a graph spanning path starting from the root object of the structural frame. This object is initially assumed to be unconstrained in all directions. As the path leads to the next object, the matching conditions between the pair are analyzed. There are two possible geometric scenarios: matching and alignment. A matching condition is when two objects form a planar pair whose planes overlap to a finite extent. An alignment condition is when two matching objects share a coplanar face in the same direction. All conditions are analyzed in the local coordinate system of each individual object. The strongest form of object constraint is when both conditions are satisfied along all local directions.
[0209] The constraint analysis algorithm involves checking the match and alignment conditions of all objects in the graph along each local direction. Matching directions become the "constrained" conditions for that direction and cannot be further replaced. Alignment conditions are softer constraints. Objects that are aligned with one another may be replaced by a join condition for another object. Unconstrained directions are probed as the path progresses and may be overwritten by an aligned or match condition. Finally, after the entire path has been explored, the remaining conditions of each object are analyzed to identify unconstrained directions.
[0210] Structural frames can also contain cross-members whose major local axes are misaligned with the overall frame coordinate system. Such cross-members generally have lower ratios by definition. These constraint analyses are performed relative to adjacent aligned members, and the same set of condition rules apply.
[0211] Feature prediction Dimension Prediction Using Deep Learning In one embodiment, a new solution has been developed that is used to predict dimensional callouts associated with faces of 3D models. Dimensional entities are predicted with high accuracy using a graph deep learning model. Dimensions can be placed on 3D CAD models and / or 2D engineering drawings using other automated methods developed by Vectra.
[0212] The feature prediction program uses graph deep learning algorithms to infer scalable features on components. This program augments the results of the feature determination algorithm and aids in faster turnaround of the core engine with the final dimensional database.
[0213] This machine learning solution was developed based on intuition gained from deterministic algorithms assumed in the feature determination process. The concepts of training labels and hyperparameter tuning are performed based on knowledge of the topology and geometric signatures of various features. This allows the ML solution to adapt to new configurations and domains much faster than the development cycles required for deterministic algorithms.
[0214] Deep Learning Workflow In one embodiment, 3D CAD models and associated drawings are collected to train a graph deep learning algorithm. The 3D CAD models are converted into a CAD-independent part graph by extracting geometry information from the 3D models using APIs that interface with various CAD packages.
[0215] Training datasets are generated from geometry and attribute data files of components and weldment assemblies. The corresponding drawing databases are extracted from the respective drawing files. The dimension styles and drawing entities used vary depending on the configuration. Therefore, the datasets are separated based on part type, customer configuration, and domain.
[0216] Training labels are assumed in the data frames read from each data file. The labels are derived from the geometry and topology attributes calculated from the part graph, such as peripheral faces, aligned faces, or unaligned faces. Additionally, model attributes assigned in the CAD design are also used to create the training labels, such as machined faces, product contact faces, etc.
[0217] The part graph is created by converting the faces of the 3D model into nodes in the graph. The links between the nodes (faces), AKA as edges of the graph (see graph diagram below), are created by analyzing the relationship of the faces with other faces, which is determined by the shared edge (see solid diagram below) information obtained from the 3D model.
[0218] Geometry information of 3D model faces is stored as node properties in the part graph. The associated drawing data is converted into labels for training. Attributes of edges and faces in the part graph are assigned as labels.
[0219] The geometry information received from the dataset is cached and converted into an in-memory data frame. It is then processed using feature engineering and data wrangling techniques (such as categorical data analysis and one-hot encoding) along with high-performance vectorization computations. The part graph and training labels are stacked to create a training adjacency matrix. Dimensionable features and their labels are mapped together with the training labels.
[0220] The solution is modeled along the lines of a binary node classification problem for each dimensional feature. The model is expected to predict whether a particular node on the graph is of a particular feature type. The training data is converted to a low-dimensional embedding using the GRAPH SAGE algorithm and fed into a neural network. The neural network is a two-layer-deep fully connected network that learns the relationship between faces and their associated dimensional features. The modeling pipeline is replicated for all features using independent deep learning models. Because the training process is inductive, the trained model can be stored and used to make predictions on new part graphs that were not included in the previous training adjacency matrix.
[0221] inference The trained model is stored as a serialized object file in a cloud file repository. A custom cloud service engine applies the trained model to the part graph inferred from the new dataset and performs an inference process corresponding to each dimensional feature. The feature predictions complement the assertions made by the deterministic algorithm and augment the dimensional database generated by the core engine.
[0222] Assigning Dimension Entities Various types of dimension entities associated with features include lines, ordinates, text, note text, symbols, datum flags, object coordinate balloons, hole indices, virtual lines, grid lines, and cutting planes. The core engine is configured to process any kind of entity assignment to associated features according to customer specifications. Assignments are performed for all valid dimensions in each view. Additionally, dimensions may be accompanied by additional information, as further described below.
[0223] Repeating dimensions In one embodiment, repeating dimensions are identified by comparing similar features within the same view or across different views, including same size radius and hole dimensions on a part profile or slot cutout, cut dimensions from the same starting face, machining dimensions from the same datum start, same size slots, etc.
[0224] Repeat dimensions are identified by comparing the dimension value of each dimension, the starting face, and the respective attribute data. The "repeat index", which is the number of occurrences, is appended to the dimension value in different formats. Examples are X2, 2X, (2), etc., where 2 is considered the repeat index. The text "TYP." is also used to indicate the same concept.
[0225] Dimensioning without arrows This style of dimensioning displays lines extending from the dimension location along each plane. Dimensions are interpreted as measuring from the zero line and may be shown using a zero value or omitted. This style is applied when there are no more than 10 lines (one zero line) in a particular direction, or to distinguish between different features.
[0226] When the same style is applied to different feature types, the customer specification dictates that additional text be added, for example, FAB text is added to cutting dimensions.
[0227] Group Dimensioning There are several ways to dimension a group of features that are in the same orientation. Features include holes, slots, cut faces, machined edges, and so on. One way is to dimension from a common start plane. This method is called common point or parallel dimensioning. Another way is to order the dimensions by starting with the first dimension closest to the start plane, then identifying the next dimension closest to the first dimension. This method is called chain dimensioning. Both methods are commonly applied to linear dimension styles.
[0228] In both cases, assigning dimension entities is straightforward. However, in the case of chain dimensions, assigning start points is computationally more complex. This is especially true for complex features like slot cutouts. Slots are not confined to a single plane but are spatially distributed features. The endpoints of each dimension in the chain must be determined according to customer specifications.
[0229] Another case where chain dimensions are applied is related machining dimensions. Here, machining faces are placed in order based on their proximity to the nearest micromachined face, as shown below. Progression along the edge loop of the projection faces is performed using the part graph. The sequence is determined based on the topology steps required to reach the machining face, and the starting face of each dimension in the chain is calculated using the step sequence.
[0230] symbol In one embodiment, in addition to position dimensions, symbols are also assigned to given features. Machined surfaces are marked with machining symbols. Such surfaces are identified by the finish tolerance or coloring attributes assigned in the 3D model. The location of the symbol varies according to customer specifications. It can be placed anywhere on the visible edge of the dimensioned surface or on an extension line originating from the surface. The symbol direction points outward from the object.
[0231] Datum Flag Datum features for each component are identified in the inference engine. The start point associated with the datum is used to locate precision features on the object (micromachined surfaces, precision holes, dowel holes, etc.). The origin associated with the datum is indicated by a datum flag entity. Along with that, the model orientation is displayed on the flag. Typically, a pair of plus and minus signs is also attached to the datum line, with the plus direction indicating an increasing value on the model axis and the minus direction indicating the opposite. The flag points in the positive direction of the axis.
[0232] Object Coordinate Balloon A body coordinate balloon (BCB) is attached to the datum flag line and is used to indicate the coordinates of the datum start point. Additionally, BCB arrows extend beyond the balloon to indicate the direction of the origin of each model axis. BCBs are called out in component drawings (NC blocks, unit layouts, etc.).
[0233] Grid lines can also be used in place of balloon coordinates to indicate the location of datum features.
[0234] Note text Note text is assigned to features of a component that require explanatory notes. Some examples are face stamps, contact faces of a part, machined edges on the inside of a cutout, etc. The entity is associated with the corresponding edge of the feature and is called using a leader line from the edge.
[0235] View Text A view text is an annotation feature associated with one or more views on a drawing sheet. It is placed below (or near) the view and displays descriptive notes about the view, along with its number, manufacturing details, and additional descriptive information.
[0236] Hole Index The text placed for simple and slotted holes is called a "hole index." These entities are placed near the open circular edge of each cylindrical face. If the same feature appears repeatedly in multiple views, the index is placed only in one appropriate view, selected according to criteria described in the next section.
[0237] Linear Virtual A phantom line is invoked for the stock edge or curved boundary profile of the view. A line is assumed tangent to the nearest continuous straight edge of the view, and connecting the lines between them completes a phantom loop. An example model scenario is shown below that comprises a curved edge around the top of a view. The image also shows another phantom line assumed for a small vertical step surface adjacent to the curved edge.
[0238] Data Flow Geometry information is collected from 3D CAD models by software running on the CAD designer's PC, and training labels for each 3D CAD model are also generated on the CAD designer's PC. The geometry information and labels are pushed to an AWS S3 repository. During training, the geometry information and labels stored in AWS S3 are sent to AWS Sage Maker for training. The geometry data is converted into a part graph in AWS Sage Maker for the training process. Once the training process is complete, the trained model is saved as a pickle file in AWS S3. The inference pipeline utilizes the trained model stored in AWS S3. In the inference pipeline, geometry data is extracted from the 3D CAD models and pushed to AWS S3. The inference engine running on AWS Sage Maker uses the geometry data from AWS S3 to convert it into a part graph and uses the trained model to predict the dimensional entities associated with the part faces. The inference results are saved in AWS S3. An AWS Lambda instance retrieves the inference results and performs post-processing to generate a dimension database. The dimension database created by AWS Lambda is saved in AWS S3. A polling mechanism is used to send the dimension database back to the designer's PC. The drawing software uses this dimensional database to create 2D engineering drawings for the 3D CAD model.
[0239] View Selection The premise of view selection is that the most descriptive view should be selected to recall dimensions and annotations for a particular part. Such views include auxiliary projections with orthogonal projections for the primary view, section view, detail view, etc. A standard orthogonal projection with the primary view is the first choice. Additionally, auxiliary projections with orthogonal views are also intended to capture features on planes inconsistent with the part's LCS. Detail and section views are also intended to provide details on planes of interest not accounted for in the standard projections.
[0240] A particular dimensionable feature and its associated dimensions can be displayed in one or more views. However, the validity of a dimension depends on several factors. First, the dimension direction must be in the plane of the view, and its endpoints must be visible on the view. The associated start and end faces must be unoccluded, and the profile plane must be clear.
[0241] For hole or slotted features, the view is preferably axis-aligned and projects the machined, unobstructed end. For auxiliary holes, the view clearly displays the fold line, and the construction hole (if applicable) is selected as the reference view. The part is rotated about the fold line outward from the reference view plane, projecting the auxiliary view plane. The reference view selection is based on the presence of a construction hole specific to the auxiliary hole in question. However, if the hole is essentially through, both ends of the hole can serve as reference views. To break ties, the machined end is selected. If no machining is present, the largest dimensionally possible feature is selected.
[0242] Features are analyzed in multiple orthographic projections, and views with the most potential dimensions, indexable holes, and slots are identified as potential views for drawing creation. Repeating dimensions are specified in selected views, either textually or using repeat indexes, and their copies are filtered across the same view or views.
[0243] Dimensioning The dimension placement algorithm takes into account the dimensioning style of the specified configuration and places dimensions around each view in a clear, staggered manner. Dimensions are typically placed in two ways: inside and outside of extension lines. Extension lines must not cross dimension lines, object lines, or other extension lines. This causes dimensions to be staggered across views. In the case of group or chain dimensions, the dimensions are placed in series, with the first dimension anchored to the baseline.
[0244] Some configurations employ an arrowless dimension style, where each dimension is displayed without an arrow and referenced in each direction to its respective zero line.
[0245] The starting feature is usually chosen to be near one edge of the view, so that the dimensions of the view appear to be aligned from a common edge, called the baseline. This one-way dimensioning method is preferred for most configurations.
[0246] Angular dimensions indicate the angular position of a feature relative to a reference axis (view object or model object).
[0247] In some configurations, it is advisable to display dimension values in two units of scale: inches and mm to position the dimension. In such cases, the two numbers are placed above and below, left or right of the dimension line, depending on the orientation of the dimension.
[0248] Certain dimensions can have additional notes or tolerance values. Notes are typically located at the top, bottom, left, or right. Tolerances are centered to the right relative to the main dimension value.
[0249] Seat allocation In one embodiment, the sheet allocation algorithm is designed to calculate optimal positions of drawing views on an appropriate number of drawing sheets using optimal view scaling. The algorithm takes into account many factors that determine the final drawing configuration, such as available sheet sizes, the fixed block elements they contain, drawing views and their ordering principles, scalable and non-scalable ranges of drawing views, view notes, and hole tables.
[0250] Multi-view projection is a common use case for algorithms in the core engine. In this case, components are presented in a set of orthogonal projections relative to a central view. The projections must be positioned relative to the central view in either first-angle or third-angle projections. In the former case, the left viewpoint is positioned on the right, and vice versa. Similarly, the top viewpoint is positioned below the central view, and vice versa. In the latter third-angle projection case, the relative positions of the views are consistent with their names.
[0251] The extent of the area occupied by the dimensions around each view is specified as a drawing zone. These are roughly categorized as left, right, top, and bottom zones. These zones are added to the non-scalable portion of the view range. The zones are aligned to the drawing sheet and are expected to contain drawing lines and annotations corresponding to the view.
[0252] The location of anchoring blocks within a drawing sheet is specified by the customer. Typically, they are aligned to the margin and separated from the work area by a boundary. The size and number of anchoring blocks can vary between sheets of the same drawing file. For example, a revision notes block applies to an entire part or assembly and is therefore limited to only one sheet. A stock table for a weldment assembly is appropriate for a drawing sheet where isometric views are displayed and sub-detail annotations are invoked. Such sheet-specific variations are incorporated into the allocation algorithm.
[0253] Drawing details are drawn to scale using ratios recommended by the customer. The most common scaling method is to use integer ratios (e.g. 1:2, 1:5, 2:5, etc.). Other methods include varying the scale in additive or multiplicative steps around full scale.
[0254] Determining the sheet size In one embodiment, the sheet size determination is based on the component size, number of projections, and scale requirements. Commonly used standard sheet sizes are A0, A1, A2, A3, A4, and additional standard sheet sizes configured for special projects.
[0255] An iterative algorithm can operate to identify the optimal sheet size for a given set of drawing views. The working area of each available sheet size is evaluated and approximated to a rectangular area. Starting with the full scale and largest allowed sheet size, the scaled projections are placed on the drawing sheet in a predetermined order. A minimum gap is maintained between views. An appropriate margin alignment is selected, and views are placed next to each other according to ordering rules. If there is no overlap with the margins or fixed blocks, the current sheet size is accepted. Otherwise, the sheet size is decremented and the process is repeated. After all allowed sheet sizes have been exhausted, the scale is decremented in steps and the sheet selection process is repeated. This optimization is performed until the smallest sheet size that can accommodate the views at the largest scale is found.
[0256] Determining the work area In one embodiment, the working area of a drawing sheet is the area of the sheet that can be used to place component views, dimension elements, notes, and annotations. The simplest approximation is a rectangular area after excluding the margins of the sheet and fixation blocks.
[0257] However, such approximations often result in a smaller working area than desired, which may lead to the use of more drawing sheets or a smaller view scale. A better approximation is a rectangular area with step-like extensions.
[0258] A custom algorithm is used to "bin and merge" fixed blocks in the drawing sheet into corner blocks. The algorithm involves first sweeping the sheet area and assuming the location of the fixed blocks. Then, if two blocks are close enough to potentially be added to the same corner block, a bin operation is performed. This operation is performed both horizontally and vertically across the sheet. In the final iteration, the fixed blocks in each bin are merged and normalized into rectangular corner blocks. Successive corner blocks are further scrutinized to see if they can be merged into margin-aligned extended blocks, which effectively increases the margin space for each.
[0259] Seat Allocation Algorithm In one embodiment, two broad categories of seat allocation algorithms are created, either or both of which can run in the core engine: one that handles multi-view ordering and one that handles sub-detail view packing. The following sections describe the two algorithms in a broader sense. Many variations are possible within each category, depending on the use case.
[0260] Multiview Ordering Algorithm The use case for this algorithm is a standard projection around a central view. The ordering principle here is to place the projection views at the left, right, top, and bottom positions around the central view. The given order is input to the algorithm along with the individual view ranges and drawing zones.
[0261] In each iteration of the placement algorithm, a uniform scale is used for all views. During the iteration, the scale is varied from full scale to a lower value. A lower threshold is calculated based on the minimum size allowed for the scaled hole feature. The same value is compared with the customer-specified lower limit, and a higher value is selected during implementation.
[0262] On the other hand, full scale (1:1) need not be the ideal starting point, especially for large components and weldments that far exceed the specified sheet size. A practical starting scale is calculated within the algorithm, which in practice reduces the number of iterations required to reach the optimal scale. The starting scale calculation is based on the reduction required to fit the largest view into the working area of the specified sheet size. This condition sets a high threshold for the scaling process.
[0263] The order of views within the workspace is first aligned with one of the sheet margins. The appropriate sheet margin is dynamically calculated by an algorithm based on the workspace configuration. A margin with no corner blocks is the ideal choice. If that is not possible, view placement starts from the bottom-left corner of the workspace, as this is additively suited to both horizontal and vertical position calculations on the drawing sheet.
[0264] Depending on the sheet margins selected in the above step, the views closest to each corner are placed first in a predetermined order. The placement is done with sufficient distance from the margins on both sides. The central view is placed with more than sufficient distance from this view. The remaining projection views are then placed around the central view. All projection views are centered relative to the central view.
[0265] The placement ensures that the first placed view has no overlap with the surrounding white space and fixed corner blocks. One or all of the remaining views may overlap with the white space or its adjacent corner blocks. A two-dimensional overlap calculation is performed for all views, both horizontally and vertically. The minimum overlap range for each view is identified and an appropriate scale-down factor is calculated. The scale-down factors for all views are considered, and the largest one among them allows for the scale calculation for the next iteration. The next scale is calculated by reducing the previous scale by a factor determined using the overlap, and a modulus operation is performed to obtain the next predetermined scale percentage. This process is repeated until the overlap for all views is resolved.
[0266] If the scale fractions are exhausted without resolving the overlap, a move operation is performed on the projected views. The middle view is kept on the first sheet. Among the projected views, the opposite view of the pair is the target of the move operation. For example, the left view is opposite the right view, and vice versa. Similarly, the top and bottom views are opposite each other. Once all views are paired, the entire pair is moved to the next sheet. The pair that most affects the position of the view on the first sheet is selected for the move operation. This condition is determined by iteratively removing pairs and checking the resulting overlap range.
[0267] The view's position may end up being asymmetric with respect to the center of the work area. To correct the asymmetry, a virtual bounding box is assumed around the view. The center of the bounding box is compared to the center of the work area, and an offset in both directions is calculated. The view is then repositioned by the offset amount. This process is repeated for all drawing sheets.
[0268] Multiple Detail Packing Algorithm The sub-detail packing algorithm differs from multi-view algorithms in that the views are independent of each other. There are no relative ordering rules between views and scales, but they do not need to be uniform for all. Therefore, an iterative scaling approach is not relevant. Instead, the number of sheets needed to arrange and pack the views is optimized here.
[0269] The optimal scale for each sub-detail is calculated based on the minimum threshold size expected for the scaled view. The specified sub-detail view and its drawing zone extent are considered at full scale. The specified minimum scale is used to scale down the view, and the cumulative extent is compared to the threshold size. If the condition is not met, the scale is incremented to the next allowed percentage and a comparison is performed. This process is repeated until an appropriate scale is reached. The same approach is used for all sub-details.
[0270] View placement is performed using a bin-packing algorithm. A suitable workspace margin to start placement from is selected based on the logic described in the previous section. The bin-packing algorithm divides the available area into variable-sized bins. According to the selected binning order (decreasing height, decreasing width, decreasing area, etc.), views are placed next to each other with sufficient spacing. The bins are then filled sequentially onto the drawing sheet within the available workspace. Overlaps with corner blocks are avoided in this process.
[0271] The above algorithm is then applied repeatedly to optimize the number of sheets until the number of sheets is balanced. Among the allowed sheet sizes, the smallest sheet size is selected first. As a pre-check, the largest sub-detail view is scaled to its respective size and placed on the first sheet. If there is an overlap with a corner block or margin, the algorithm moves to the next incremental sheet size. The placement algorithm runs and the final number of sheets is tracked. After all allowed sheet sizes have been exhausted, the final sheet numbers for each case are compared and the smallest sheet size that results in the least number of sheets used is selected. The final placement is performed with this sheet type.
[0272] A sub-detail view can be accompanied by one or more associated projection views. In this case, the binning order for all associated views is eliminated and they are placed next to each other in their relative order. To ensure this step can be performed without affecting the bin-packing algorithm, the associated views are merged into one large view. The final bin-packing is performed on the merged view. The merge process is performed taking into account sheet size limitations. If the merged view is calculated to be larger than any of the allowed sheet sizes, this step is aborted. Instead, the associated views are forced into consecutive bins according to their relative order: left and right associated views for horizontally consecutive bins, top and bottom views for vertically consecutive bins.
[0273] There are many variations of bin-packing algorithms in the literature, such as next fit, first fit, next k-fit, best fit, etc. Similarly, the order of detail can be increasing or decreasing in terms of either height, width, or area.
[0274] The bin-packing algorithm can also be applied to other cases, such as section views, detail views, and zoomed-in views. Such views do not follow any predefined ordering rules and are usually self-describing. Their scale factors are also determined by their respective requirements.
[0275] Sub-detail views can also be placed consecutively in the order of their specified sub-detail number. In this case, the bin-packing algorithm is performed without sorting the views by size. This approach can result in less efficient view placement. Optimization of the number of sheets is performed later, as described in the previous section.
[0276] Sheet stack Drawings for one or more components may need to be stacked together on larger sheets according to customer specifications, in which case an optimal sheet stacking strategy is adopted to minimize the overall number of larger sheets.
[0277] This strategy involves iterating through possible arrangements of smaller sheets that fit into a larger sheet and their arrangement, where the smaller sheets are of an acceptable size within the same customer configuration.
[0278] Individual component drawings are first placed on small sheets of the appropriate size. This collection of all used sheets is passed on to the next step of the algorithm. The optimal stack is placed on one or more large sheets, starting with the largest available size. Any remaining pockets on the large sheets are stacked with sheets of the next available size. This process is repeated until all pockets are used up or cannot be filled any more. The remaining small sheets are stacked on one or more larger sheets. This optimization ensures that the space on the large sheets is used up and the number of sheets is minimized.
[0279] Part Assembly Sheet Order Parts for the same unit assembly may need to be ordered together in a drawing booklet. In this case, the order of the part drawings must follow customer specifications. The names of the drawing sheets must also follow a numbering sequence to ensure they are uniquely identified on the assembly drawing.
[0280] Expanding the scale In most cases, drawing views are scaled down because the view size is small compared to the model counterpart. However, this is not necessary for small parts such as screws, bearings, etc. In such cases, the drawing view must be enlarged, i.e. the scale must be greater than 1:1.
[0281] The multi-view ordering algorithm is configured to optimize the scale until all drawing views are placed on the minimum number of sheets. The scale is iteratively increased and views are placed in their respective locations until all overlaps with sheet margins and fixed blocks are resolved.
[0282] The case of view enlargement is a rare scenario even for the multi-detail packing algorithm. The scaling strategy used in this case is to enlarge the detail view until it reaches a minimum threshold size. The packing algorithm takes over from that point along similar lines as for scale reduction.
[0283] Statistical modeling of runtime data The core engine process consumes varying amounts of runtime depending on the type and size of the component or assembly. This is due to the data load in memory and the wait times associated with caching and retrieving many data frames during the calculation. The cumulative runtime load is expected to depend on the size of the data files, the number of configuration records, their configuration, etc. The core engine program processes the tool data in batch mode, sequentially executing each stage of the calculation on the individual components of the tool.
[0284] A runtime prediction model is developed to enable optimal distribution of workloads on cloud servers. Historical runtime data of the core engine and its auxiliary programs are collected from old tool runs along with tool configuration details. A polynomial regression model is assumed for the runtime data as a function of various features inferred from the data records.
[0285] The model training process runs on tools with various customer configurations, which allows us to take into account process differences and their impact on the overall runtime. Many customer-specific algorithms consume non-negligible runtime, resulting in a significant additive factor. Cloud infrastructure is typically provisioned to handle finite workloads, and the turnaround time for each tool is expected to be minimal. The optimization algorithm needs to take both factors into account to facilitate simultaneous batch runs from different customers.
[0286] Runtime prediction models are assumed at the level of the individual parts and unit assemblies that make up the tool. The total runtime can be calculated as the cumulative sum of the individual components and units, in addition to constant server spin-up and configuration times.
[0287] Model Training Runtime logs from completed core engine runs are collected from the cloud file repository and collated into a dataset. This dataset is separated into lines of customer configuration and part classification. A predictive program extracts relevant features from the dataset records and trains a regression model. Polynomial model parameters are refined and extracted after performing minimum variance curve fitting. The optimized model is saved as a serialized file object in the cloud repository. The same workflow is assumed for all auxiliary programs of the core engine, which infer their respective trained models.
[0288] Runtime Inference The inferred model is consumed by an inference program hosted in the cloud as a service with an API endpoint. Data files from new incoming tools are analyzed by the prediction service to extract the required geometric features. These features are quantitatively correlated with runtime using regression models. The inference program deserializes the model file, activates the model with the provided data, and computes runtime results.
[0289] Server Estimation The runtime prediction algorithm calculates the estimated runtime of the core engine as a function of the tool data size. This program is hosted as an API service on the cloud and is used to predict the server load for all incoming tool data. In a server-based cloud architecture, optimal distribution of job load is important. This is because there are always a finite number of compute servers, while the component configuration varies depending on the tool job. At the same time, optimization is required because the workloads of multiple customers on finite resources must be balanced at any given time. Furthermore, server costs are another factor. An imbalanced workload increases the usage cost of running servers, and some may remain idle.
[0290] To manage the workload, an estimation algorithm is envisioned that calculates the optimal number of servers required to complete a tool job. The program runs before accepting a job on the cloud, resulting in a redistribution of data files that are transferred to production servers. The processed data from them is finally collected and merged into a single set of dimensional databases.
[0291] The program begins by analyzing the data files and extracting key features from the configuration records required for the runtime prediction model. The tool data is split into components and assemblies, each of which needs to have a predicted value. An inference engine from the "Runtime Prediction" program is applied to estimate the cumulative runtime for each unit assembly.
[0292] The next step is to distribute the tool data across the number of available servers. The goal here is to optimize the number of servers with the minimum overall runtime and server cost. The largest component / weldment with the highest estimated runtime is selected. A minimum threshold runtime is also set for the process. Data distribution per assembly is performed and redistributed across many servers until one or all servers exceed the threshold. Exceeding servers are moved out of the stack, and the redistribution process continues until the number of servers cannot be reduced and the threshold is no longer significantly exceeded. The workload is expected to be evenly distributed, optimizing the overall server cost. This algorithm is envisioned for a server-based cloud architecture where the core engine and all its associated programs are loaded onto individual servers.
[0293] Pore sequencing The hole sequencing algorithm sequences holes in an order that minimizes machine travel time across the parent part area. Holes are first classified according to their type and size for each view, and the sequencing strategy is applied to each class of hole separately. This grouping follows the fact that different classes of holes require different machine drill heads.
[0294] Slotted holes must be considered as pairs for indexing consecutively or just once, depending on the configuration. Similarly, holes in section views and auxiliary views are grouped into their own classes.
[0295] An algorithm is employed that minimizes the overall distance cost for each class of holes, which is referred to in standard literature as the "traveling salesman problem." Because this is an NP-hard problem, approximation methods are used to implement the same in the context of our problem. Computational time increases exponentially if a class contains more holes than a threshold. In this case, a clustering strategy is used to subdivide groups of holes using standard space partitioning techniques. This hybrid approach allows our algorithm to scale to any number of holes in a part.
[0296] A sequencing algorithm is devised to sequence holes in a way that minimizes the overall machine travel cost. Holes are first classified according to their type and size in each view. This grouping is based on the fact that different classes of holes require different machine drill heads. Slotted holes must be considered as pairs that are indexed consecutively or only once, depending on the configuration. Similarly, holes in section views and auxiliary views are grouped into their own classes.
[0297] Holes in each view are classified according to their type and size. Precision holes are given the highest priority, followed by tap and clearance types. Datum hole features are usually indexed first in the hole chart. Thus, all holes of the same size and type as the datum feature are grouped into a high-priority class. The remaining holes of the same type are arranged in ascending order of size and grouped into subsequent classes, as are holes of other types. Thus, all holes are grouped under a set of hole classes in each view. The same strategy is applied across all views. The order of views is registered with the ordering of hole classes across views. Slotted holes are prioritized last, so they are placed in the sequence after all simple hole types have been exhausted.
[0298] Because the machine can only process one class of holes at a time, the sequencing algorithm is designed to sequence one class of holes at a time. As the algorithm sequences the holes within each class, it assigns each hole an overall sequence number based on the sequence number of the hole within that class and the number of holes present in the class.
[0299] The algorithm interprets holes in a class as nodes in a graph. A direct path between two nodes is interpreted as an edge between the nodes. Since the machine has the freedom to move directly from one node to another, it can imagine an edge between any two nodes in the graph. This makes the graph a complete graph. The cost of an edge between two nodes is simply the Euclidean distance between the center points of the holes.
[0300] Sequence algorithms need to find the shortest route in a graph. The problem of finding the shortest route in a graph is nothing more than the traveling salesman problem. This is an NP-hard problem, so as the number of holes in a class increases, the computation time increases exponentially. Therefore, sequence algorithms employ an exact algorithm called the Held-Karp algorithm for classes with a small number of holes to find the exact shortest route.
[0301] If a class contains more holes than a certain threshold (t), the sequence algorithm employs a heuristic algorithm that provides an approximate shortest route within a reasonable time. The heuristic algorithm divides the group of holes into clusters using a standard space partitioning technique called the QuadTree clustering algorithm. The constraint for clustering the holes is that the number of holes in each cluster must be less than the threshold (t).
[0302] Once the clustering algorithm determines that the number of holes is within manageable limits, the Held-Karp algorithm is applied to the holes in a cluster to find the optimal route among the holes in that cluster. After finding the exact optimal route for all clusters, the sequence algorithm applies the Held-Karp algorithm to the set of clusters to find the shortest path sequence for the clusters. Once the cluster sequence and the sequence of holes in each cluster are ready, an overall sequence number for each hole is calculated based on the sequence number, cluster number, and the number of holes in each cluster.
[0303] The space partitioning method is used to emulate the thought process a designer goes through when trying to manually sequence a large number of holes: the designer finds a number of holes that appear to be close to each other, sequences them first, then tries to find the next number of holes that can be sequenced together, and so on.
[0304] If the number of clusters exceeds a threshold (t), the sequencing algorithm employs local optimization techniques such as simulated annealing. This hybrid approach allows our sequencing algorithm to scale computationally to any number of holes in a class.
[0305] The shortest route is converted into a sequence number for the hole. As a final step, the sequence algorithm calculates an overall sequence number for each hole based on the sequence number, the class number, and the number of holes present in each class.
[0306] Deep Learning Algorithms The part and shape identification module performs image classification using a custom neural network module built on top of a ResNet-50 backbone. 2D images are programmatically generated from 3D CAD models from various viewpoints. Images are generated for a large repository of parts and shapes. These images are passed to a custom neural network model for training and weight optimization. The trained model is saved as a serialized object file and passed to the inference engine.
[0307] A custom image recognition neural network is trained by associating images of shapes / parts from various perspectives with their corresponding name identifiers. Images are separated based on their identifiers and matched to batches of training datasets. Standard shapes are further classified into subgroups according to their function. For example, a "flat" shaped component can be a blade, a bent bracket, or a gusset. Similar classifications are envisioned at the level of applicable domains and can be extended to manufacturing standards, OEMs, etc.
[0308] The workflow is also replicated in the part recognition program. Here, parts are classified based on their function within the tool assembly: for example, NC block, angle bracket, weld bracket, frame structure, etc. A part is identified as a collection of one or more different object shapes. Therefore, an object detection model is also envisioned to identify all objects contained in the part assembly. The classification scheme is extended to include manufacturing standards and application domains.
[0309] The training dataset is used by a custom cloud service where the neural network is developed and trained. The training process runs for many epochs until the model stabilizes and reaches the desired level of accuracy. The training dataset is continuously supplemented with batches of new images. The training pipeline is continuously monitored and adjusted by tuning the hyperparameters of the machine learning model.
[0310] For a 3D CAD model whose part / shape needs to be predicted, 2D images are generated from various viewpoints on the designer's workstation and sent to the image recognition service. The service is triggered by a file landing event on the cloud, which then launches an inference engine that holds an endpoint to the latest ML model generated in the training phase.
[0311] The inference process involves two broad steps. The first step is to perform inference on each individual image in the batch job to find a predicted label. The predicted labels are grouped along similar lines to the input data. The second step is to apply a consensus algorithm to each batch of images corresponding to the same part. Different perspectives of the part can lead to different, contrasting predictions. Therefore, the consensus algorithm must consider potential tie-breaker scenarios. This requires additional details about the image content. For example, the number of objects detected from a particular perspective is used as a weighting factor for the prediction. Similarly, the similarity of certain shapes can generate false positives / false negatives. The set of such similar shapes and their frequency of occurrence in different component and weldment assemblies are used as tie-breaker criteria in the final prediction process.
[0312] System Architecture The architecture of the automated drawing generation process is built on a customer-cloud interaction model. Tool data generated on the customer workstation is transferred to the cloud over an authenticated data channel via a proxy server on the customer's network. The core engine and machine learning programs process the tool data and generate a dimension database. The database is then transferred to the customer workstation via the proxy server. The tool designer's workstation is protected behind a network firewall and separated from direct interaction with the cloud.
[0313] The core engine program is hosted in a secure cloud with a dedicated bucket for holding incoming data from different customers. The same data and cache generated during program execution are removed as soon as a copy is transferred to the customer network. The cloud architecture is designed to process any amount of tool data at any time. Furthermore, the program is hosted in auto-scaling mode, meaning that if higher job demand occurs, the runtime environment is replicated to a higher scale. In a server-based environment, auto-scaling is performed with the help of a server estimation program. This program is designed to analyze past runtime data and use statistical methods to predict the estimated runtime of new incoming jobs.
[0314] Cloud architectures are also designed to be fault tolerant and resilient. The selected cloud region typically has very low downtime. However, service analytics are constantly monitored, and in the event of a failure, the last restore point of the program is stored and data is cached. The restore point is used to resume program execution in the future when the cloud service is restored. Multiple regions can be envisioned to provision cloud infrastructure, allowing for much faster data transfer speeds and region-specific security protocols.
[0315] Core Engine Architecture The core engine's architecture is designed to handle large amounts of data between processes. This data needs to be moved in and out of memory throughout. A significant amount of mathematical operations needs to be performed on the fetched data. As such, the selection of software components and programming languages is biased towards modern languages that include standard operation libraries for performing numerical analysis on large data frames.
[0316] The size and complexity of tool assemblies necessitates concurrent processing of individual tool components. This is achieved by parallelizing the core engine and its subprograms to run on large scales of independent data sets. The combination of an auto-scalable cloud architecture and serverless design allows for essentially unlimited concurrency.
[0317] To allow the core engine to be configured in new domains, a software development kit (SDK) layer is separated from the business layer. The SDK layer primarily consists of standard and custom libraries to perform numerical data analysis, inferring geometric and topological relationships between 3D and 2D geometric entities, and large-scale data query and manipulation operations. The business layer is the configuration-specific part of the core engine and comprises the logical workflows described in previous sections of the algorithm documentation. Examples include feature determination, dimension entity and view selection, and dimension placement.
[0318] Machine Learning To create a scalable and extensible pipeline strategy pattern, object-oriented behavioral design patterns are widely used for: 1. Data Wrangling 2. Training and Inference
[0319] Because deep learning models use data from multiple sources to train, it is essential to make the code base more flexible and extensible. As a result, a strategy design pattern was adopted to make it easier to switch between various files and their data running strategies. Dataframe processing libraries are used heavily to optimize the data running workflow. The use of vectorized operations provides the speed and power needed to consume large amounts of data.
[0320] To train your own deep learning model with multiple types of parts, you should adopt a strategy design pattern. This approach provides the flexibility to separate the training of multiple parts without corrupting the core model used for customer-side inference.
[0321] Referring now to FIG. 1 , an overview of a pre-processing module consistent with certain embodiments of the present invention is shown. A first process module, at 102, prompts a user to name all custom components and weldments present in a particular three-dimensional model object. A second process module, at 104, prompts a user to manually assign geometry to an object. A third process module, at 106, automatically checks for missing attributes and prompts a user to manually assign any attributes found to be missing. A fourth process module, at 108, automatically attributes hole placement. A fifth process module, at 110, automatically identifies unintended gaps and / or interferences between components and allows a user to manually correct such identified gaps and / or interferences. A sixth process module, at 112, automatically identifies hole alignment errors and / or other hole-related errors and allows a user to manually correct such identified errors. A seventh process module, at 114, automatically assigns surface finish tolerances to machined features. Finally, the eighth process module at 116 automatically calculates machine stock sizes for all objects.
[0322] Referring now to Figure 2, a view of a sub-process for 2D data extraction is shown consistent with certain embodiments of the present invention. At 202, the sub-process extracts data from a user-selected three-dimensional (3D) computer-aided drafting (CAD) model file. At 204, the sub-process performs an automated file transfer to a shared server provider, such as, but not limited to, Amazon Web Services (AWS). At 206, the sub-process determines the number of servers required to process the design in the shortest possible time. At 208, the sub-process spins up the required server instances, transfers the files, and starts the core engine.
[0323] Referring now to FIG. 3 , a view of the subprocesses for core engine operation consistent with certain embodiments of the present invention is shown. At 302, the subprocess calculates datums for each component and weldment. At 304, the subprocess determines the manufacturing process required to create each feature of the part. The subprocess uses machine learning (ML) to perform this step for new configurations. In doing so, the subprocess's use of ML predicts an optimized process for the newly configured design based, at least in part, on the subprocess's past experience. At 306, the subprocess automatically determines the primary two-dimensional (2D) view and projected 2D views required to display all drawing entities. At 308, the subprocess algorithmically indexes holes to minimize the required manufacturing process time. At 310, the subprocess determines the space requirements for the hole chart and then allocates the calculated space required to draw notes and stamps. At 312, the subprocess calculates the optimal scale and position for all views and, if necessary or recommended, allocates one or more views to one or more additional drawing sheets. At 314, the subprocess automatically transfers the output file to the designer workstation.
[0324] 4, there is shown a view of the sub-processes for automatic 2D drawing generation consistent with certain embodiments of the present invention. At 402, the sub-process generates a tool assembly drawing. At 404, the sub-process generates a unit assembly drawing. At 406, the sub-process generates component and weldment drawings.
[0325] Referring now to Figure 5, there is shown a view of a sub-process for 2D drawing quality control consistent with certain embodiments of the present invention. At 502, the sub-process involves a process-provider team member (as a non-limiting example, a member of the Vectra team) logging into a remote workstation. At 504, the team member manually reviews the drawing for errors and applies appropriate corrections. At 506, the team member releases the corrected drawing to the manufacturer only after the customer performs a final quality check (QC) of the corrected drawing.
[0326] Referring now to FIG. 6, an overview of a data processing workflow consistent with certain embodiments of the present invention is shown. A user interacts with the present invention via a CAD workstation 602. At 606, the present invention extracts the necessary manufactured part data from the 3D CAD model using native CAD formats. The part data is transmitted to a cloud-based server 604. At 608, the part data is received by the server, and at 610, the present invention determines the datum and start plane of common features based on an assembly-level analysis. At 612, the present invention recognizes and classifies the various manufactured features of the part. At 614, the present invention associates linear and ordinate dimensions between each feature and associated applicable datum locations. At 616, the present invention associates various applicable features, such as, but not limited to, datum flags and machining symbols, with drawing entities. At 618, the present invention calculates the various orthographic and auxiliary views necessary to describe all drawing entities. At 620, the present invention calculates the optimal view scale and placement of the various views on the drawing sheet. At 622, the present invention calculates the placement of all drawing entities. For all holes present in the part, at 624, the present invention calculates the optimal hole index sequence to minimize machining time. At 626, the present invention creates data listing a hole matrix including, but not necessarily limited to, applicable hole index numbers, spatial coordinates, hole types, and hole precision (e.g., but not necessarily limited to, tolerances). At 628, the present invention collates all calculated data and returns it to the CAD workstation 602. At 630, the present invention creates an engineering drawing with all necessary views, entities, and features including, but not necessarily limited to, hole charts in native CAD format.
[0327] Referring now to FIG. 7, a process flow diagram for selecting an isometric view consistent with certain embodiments of the present invention is shown. At 702, the system receives data regarding one or more parts or assemblies, and at 704, the system begins classifying the parts or assemblies. At 706 and 708, the classification is based on part geometry and part category, respectively. At 710, if the component is a part or assembly, the system calculates a starting orientation for the component rotation. At 712, the system rotates the component in 30-degree intervals along construction axis X and 15-degree intervals along construction axis Y. At 714, the system calculates the number of visible objects in the component for each 15-degree interval. At 716, the system determines which interval of the set of all intervals contains the maximum number of visible objects and selects data describing that interval to form the basis for the isometric view orientation. At 718, the system presents the isometric view to the user.
[0328] While several illustrative embodiments have been described, it is evident that many alternatives, modifications, permutations and variations will be apparent to those skilled in the art in light of the foregoing description.
Claims
1. 1. A method for 3D engineering drawing extrapolation and automation, comprising: receiving a three-dimensional (3D) computer model of a part to be manufactured and decomposing the 3D model of the part into labeled surfaces that can be attributed, assigned, and represented by a two-dimensional (2D) engineering drawing; analyzing the 3D computer model with a machine learning algorithm to determine labeled surface elements to be aligned; Analyze the labeled surface to determine if there are any unintentional gaps, interferences or other irregularities that prevent alignment; creating a list of unintended gaps, interferences or other irregularities and presenting the list for review and correction by a human user; The machine learning algorithm receives a list of reviews and corrections from human users, incorporating the modifications with a machine learning algorithm to create an updated 2D engineering drawing; and creating one or more parts according to the updated 2D engineering drawing.
2. Analyzing the labeled surface extracting fabrication part data from a user-selected three-dimensional (3D) computer-aided drafting (CAD) model file using the user's native CAD format at a CAD workstation; transmitting data of parts to be manufactured to a cloud-based server bank; determining the number of servers in the cloud-based server bank required to process the design in the shortest possible time; Starting the required server instances and Transferring files to the server Processing the file using the core engine, and The method of claim 1 , comprising:
3. Processing files using the core engine is receiving, by a cloud-based server, data on the parts to be manufactured; determining the manufacturing process required to create each feature of the part; determining common feature datums and starting faces based on assembly-level analysis; Recognizing and classifying manufactured features of a part; Associating linear and ordinate dimensions between each feature and associated applicable datum locations; Associating applicable drawing entities with the feature; calculating the orthographic and auxiliary views necessary to show all drawing entities; Calculating an optimal view scale and placement of the view on the drawing sheet; Calculating the placement of all drawing entities; Calculating an optimal hole index sequence for all holes present in the part to minimize machining time; generating data listing a Hall matrix, Collating all calculated data; Returning all calculated data to the CAD workstation; Calculating the optimal scale and position of all views; creating an engineering drawing having the feature at a CAD workstation; The method of claim 1 , comprising:
4. Determining the manufacturing process required to create each feature on a part using a heuristic pattern matching algorithm and one or more machine learning algorithms to recognize one or more features and automatically generate one or more parts from a component drawing; interpreting the one or more features as motifs of a graph pattern including the one or more features and inferring dimensional information for each of the one or more features; The method of claim 3, comprising:
5. Calculating the orthographic and auxiliary views required to show all drawing entities; receiving data relating to one or more parts or assemblies; Initiating classification of parts or assemblies based on part geometry and part category, respectively; Calculating a starting direction of rotation for the component when the component is a part or assembly part; Rotating the component by 30 degrees along the drawing axis X and by 15 degree intervals along the drawing axis Y; Calculating the maximum number of visible objects in the component for each 15 degree interval; determining which interval of the set of all intervals contains the maximum number of visible objects; selecting data describing an interval containing a maximum number of visible objects forming a basis for an isometric view direction; Providing an isometric view to the user; The method of claim 3, comprising:
6. Review and correction by human users Process - A provider team member logs into a remote workstation and Process—Provider team members manually review 2D engineering drawings created by one or more machine learning algorithms for errors and apply appropriate corrections; storing the modifications in a database of components accessible to one or more machine learning algorithms for continuous training of the machine learning algorithms; After the customer performs a final quality check on the revised drawing, the process - provider team members release the revised drawing to the manufacturer; The method of claim 1 , comprising:
7. Prompting a user to label custom components and weldments present in a particular three-dimensional model object; prompting a user to manually assign a shape to the object; checking for missing attributes and prompting the user to manually assign the missing attributes; attributing the hole arrangement; identifying unintended gaps and / or interferences between the components and allowing a user to manually correct the identified gaps and / or interferences; identifying hole alignment errors and / or other hole-related errors and allowing a user to manually correct the identified errors; assigning surface finish tolerances to the features to be machined; calculating machine stock sizes for all objects; The method of claim 1 further comprising the pre-processing step of:
8. 1. A system for 3D engineering drawing extrapolation and automation, comprising: a CAD workstation and a cloud-based server bank including one or more cloud-based servers; wherein the CAD workstation is communicatively coupled to a cloud-based server bank; wherein the CAD workstation is adapted to interact with a user; wherein the one or more cloud-based servers comprise one or more processors in communication with the one or more digital devices; wherein one or more cloud-based servers receive to-be-manufactured part data including labeled surfaces extracted from a user-selected three-dimensional (3D) computer-aided drafting (CAD) model file; analyze the labeled surfaces to determine whether there are unintended gaps, interferences, or other irregularities; and generate a list of the unintended gaps, interferences, or other irregularities; analyzing the 3D computer model with a machine learning algorithm to determine the labeled surface elements to be aligned; wherein a list of unintended gaps, interferences, or other irregularities is adapted to be presented to a human user for review and correction; receiving a list in a machine learning algorithm for review and revision by a human user; generating an updated 2D engineering drawing incorporating the modifications via a machine learning algorithm, and creating one or more parts according to the updated 2D engineering drawing; A system including:
Citation Information
Cited By
Design drawing control system and method
JP7911807B1