Automatic creation of model-based definition dimensions using sketch dimensions
The automatic generation of MBD dimensions from sketch dimensions addresses the challenge of transferring critical dimensional information from sketches to 3D models, enhancing design reliability and manufacturing efficiency.
Patent Information
- Application Number
- JP2025019547
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-02-09
- Filing Date
- 2025-02-07
- Publication Date
- 2025-08-26
AI Technical Summary
Existing CAD software lacks an efficient method to automatically transfer critical dimensional information from sketches to 3D models for model-based definition (MBD), leading to time-consuming, error-prone manual processes and loss of semantic meaning during file format conversions.
A system and method for automatically generating MBD dimensions from sketch dimensions by selecting and mapping critical dimensional information from sketches to associated faces of a 3D model, ensuring accurate and reliable incorporation of PMI.
This approach simplifies and accelerates the product design process, reduces human error, and ensures precise, machine-readable PMI for manufacturing, enabling efficient use in CAM, CMM, and CNC machines.
Smart Images

Figure 2025124604000001_ABST
Abstract
Description
Detailed Description of the Invention
[0001] [Field of the Invention] This disclosure relates to the field of computer-implemented design and modeling, and more particularly to the automatic generation of model-based definition (MBD) dimensions using sketch dimensions in a computer-implemented environment. [background]
[0002] Some computer-aided design (CAD) software allows users to sketch two-dimensional (2D) drawings and construct and manipulate complex three-dimensional (3D) models. For example, SOLIDWORKS® software provides sketching tools that allow users to sketch geometric entities such as rectangles and circles, as well as feature tools that allow users to create features. Features are shapes that individually form, or can be combined to form, real-world object models to be manufactured. Some features originate from sketches. Some CAD software also provides access to model-based definition (MBD) functionality, which allows users to define, organize, and publish 3D product manufacturing information (PMI), including dimensional and tolerance information, for 3D model data in industry-standard file formats. [Summary of the Invention]
[0003] In one aspect, a computer-based method is disclosed that involves automatically generating one or more model-based definition (MBD) dimensions of a three-dimensional model based on one or more sketch dimensions (e.g., dimensions, or dimensions and associated tolerances, etc.). The method includes allowing a user to select dimensional information from a sketch to be designated as critical sketch dimension information, designating the selected dimensional information from the sketch as critical sketch dimension information, mapping the critical sketch dimension information to associated faces of a 3D model derived from the sketch, and automatically incorporating dimensional information based on the critical sketch dimension information into the associated faces in the 3D model for MBD while executing a dimensioning tool to annotate product manufacturing information (PMI) to other portions of the 3D model.
[0004] In another aspect, a system for automatically generating one or more model-based definition (MBD) dimensions of a three-dimensional model based on one or more sketch dimensions is disclosed. The system includes a computer system having a computer processor and a computer-based memory operatively connected to the computer processor. The computer-based memory stores computer-readable instructions that, when executed by the computer processor, cause the computer system to automatically generate one of the MBD dimensions using the sketch dimensions according to a process including: enabling a user to select dimensional information from a sketch to be designated as critical sketch dimensional information; designating the selected dimensional information from the sketch as critical sketch dimensional information; mapping the critical sketch dimensional information to associated faces of a 3D model derived from the sketch; and automatically incorporating dimensional information based on the critical sketch dimensional information to the associated faces in the 3D model for model-based definition (MBD) while executing a dimensioning tool to annotate product manufacturing information (PMI) to other portions of the 3D model. In some embodiments, the system includes a real-world machine (e.g., a CNC machine) coupled to the computer system. In such an embodiment, the computer system may be configured to output to the real-world machine files (e.g., generated by a computer-aided manufacturing (CAM) program running on the computer system) that the real-world machine is configured to execute for the automated manufacture of the product represented by the 3D model for MBD.
[0005] In yet another aspect, a non-transitory computer-readable medium having stored thereon computer-readable instructions that, when executed by a computer-based processor, cause the computer-based processor to automatically generate model-based definition (MBD) dimensions using sketch dimensions through a process including: allowing a user to select dimensional information from a sketch to be designated as critical sketch dimensional information; designating the selected dimensional information from the sketch as critical sketch dimensional information; mapping the critical sketch dimensional information to associated faces of a 3D model derived from the sketch; and automatically incorporating dimensional information based on the critical sketch dimensional information to the associated faces in the 3D model for MBD while executing a dimensioning tool to annotate product manufacturing information (PMI) to other portions of the 3D model.
[0006] According to another aspect, a computer program product is provided that is configured to be operable to automatically generate one or more model-based definition (MBD) dimensions of a three-dimensional model for MBD based on one or more sketch dimensions. The method, performed by a computer executing the computer program product, includes: enabling a user to select dimensional information from a sketch to be designated as critical sketch dimensional information; designating the selected dimensional information from the sketch as critical sketch dimensional information; mapping the critical sketch dimensional information to associated surfaces of a 3D model derived from the sketch; and automatically incorporating dimensional information based on the critical sketch dimensional information to the associated surfaces in the 3D model for MBD while executing a dimensioning tool to annotate product manufacturing information (PMI) to other portions of the 3D model. In some embodiments, the computer program product may be provided on a carrier wave, e.g., as a software-implemented invention distributed via the Internet.
[0007] In some embodiments, one or more of the following advantages are present.
[0008] For example, the systems and techniques disclosed herein automate the addition of 3D PMI in MBD. This can simplify and accelerate the product design process and improve the reliability of the product design process by reducing the possibility of human error. The final MBD model can be used directly in the manufacturing of the designed object and can also be used in connection with quality assurance. In an exemplary embodiment, the systems and techniques disclosed herein provide a way to reuse dimensional information entered into sketches or created by the application of feature functions to essentially generate fully semantic and graphical MBD dimensional information. This MBD dimensional information typically contains the precise information required for manufacturing, as defined by the National Institute of Standards and Technology (NIST). These systems and techniques are expected to enable time savings and improved efficiency for designers and / or design teams. These systems and techniques also provide designers with the ability to control, for example, which dimensional information should be automatically added into the 3D MBD model from associated sketches. Also, according to the systems and techniques disclosed herein, there is typically a 1:1 mapping of dimensions to surfaces.
[0009] Additionally, there are a growing number of software applications that can automate manufacturing processes based on 3D annotations and PMI integrated into 3D CAD models for MBD. These applications include computer-aided manufacturing (CAM), coordinate measuring machines (CMM) for inspection, cost estimation, and tolerance stackup optimization, and computer-aided process planning (CAPP). Such automation can reduce manufacturing procedure times from hours to minutes. However, these valuable automations can be rendered impossible if the semantic meaning of 3D annotations is lost when importing CAD models from one CAD format to another. Embodiments of the systems and techniques disclosed herein help avoid these potential drawbacks.
[0010] Other features and advantages will become apparent from the description and drawings, and from the claims. [Brief explanation of the drawings]
[0011] [Figure 1] 1 is an image of an exemplary computer-generated sketch with dimensional information and associated data. [Figure 2] 2 is an image of an exemplary computer-generated 3D shape created by applying an extrusion feature to the sketch of FIG. 1 and its associated data. [Figure 3] 1 is a schematic representation of an example of a computer configured to implement functionality of the present disclosure. [Figure 4] 1 is a schematic representation of an example of components in a system configured to implement the functionality of the present disclosure. [Figure 5] 1 is a flowchart illustrating an example process for creating a three-dimensional (3D) model for model-based definition (MBD) and for manufacturing an object utilizing dimensional information designated as important in a sketch. [Figure 6]1 is a flowchart depicting an example process for mapping selected dimensional information designated as significant to associated faces of a 3D model to facilitate creation of the 3D model for MBD. [Figure 7A] 1 is an example of a computer-generated sketch with dimensional information shown on a display. [Figure 7B] 5B is the dimensional sketch from FIG. 5A, along with a dialog box that allows the user to specify certain dimensional information as important. [Figure 7C] A computer-generated three-dimensional model derived from the sketch in Figure 1. [Figure 7D] 5C shows the three-dimensional model of FIG. 5C along with a dialog box for identifying important dimensional information.
[0012] Like reference numbers refer to like elements. DETAILED DESCRIPTION OF THE INVENTION
[0013] [Detailed explanation] This specification uses various terms to describe its inventive concepts, which terms should be given their ordinary meaning and, unless otherwise indicated, may be understood to have a meaning consistent with what follows.
[0014] For example, computer-aided design (CAD) software allows users to create and manipulate complex three-dimensional (3D) models. Solidworks® computer software and Catia® computer software, both available from Dassault Systemes SolidWorks Corporation, the assignee of the present application, are examples of CAD software that may be used to create and manipulate complex three-dimensional (3D) models. A "design engineer" is a typical user of a 3D CAD system. A design engineer typically designs the physical and aesthetic aspects of a 3D model and may be skilled in 3D modeling techniques. A design engineer typically creates parts and assembles certain parts into subassemblies. Subassemblies may be composed of other subassemblies. An assembly may be designed using parts and subassemblies. Parts and subassemblies may collectively be referred to as components. As used herein, the phrase "design engineer" should be broadly construed to include any one or more human users of a computer or computer system implementing the techniques of the present disclosure.
[0015] Dimensioning tools are computer software components that enable users to define, organize, and publish 3D product manufacturing information (PMI), including dimensional and tolerance information for 3D model data in industry-standard file formats for model-based definition (MBD). One existing example of a dimensioning tool is the DimXpert™ tool built into SOLIDWORKS®. This tool allows users to quickly and easily dimension models in 3D space. DimXpert™ tools allow us to communicate size, location, and tolerances, making our parts easier for other users to understand and manufacture. More specifically, DimXpert™ tools facilitate the application of datum, dimension, tolerance, and GD&T information directly into 3D CAD models. DimXpert for parts is a set of tools that allows users to apply dimensions and tolerances to parts in accordance with the requirements of ASME Y14.41-2003 and ISO 16792:2006. The DimXpert tool allows the user to insert dimensions and / or tolerances manually or automatically (e.g., from a database).
[0016] Feature tools are computer software components that facilitate the application of surface and / or manufacturing features to a sketch or 3D model. The SOLIDWORKS® software application includes feature tools for DimXpert™, which support manufacturing features including bosses, chamfers, cones, cylinders, individual feature types, fillets, counterbore holes, countersinks, simple holes, and the like. For example, when developing a model using the SOLIDWORKS® software application, a user may sketch one or more geometric entities such as a rectangle and a circle. The geometric entities serve as the basis for one or more solid features such as extrusions, revolves, and cuts. Traditionally, the design process in SOLIDWORKS® from sketch to model to drawing was as follows: In a part document, a user would open a sketch and roughly sketch an entity such as a rectangle. The user could add dimensions to the sketch as needed. The user could then extrude the sketch to form the basic feature of a 3D solid, which would become the basis for a part or component. The user may then open a drawing and insert the part as a 2D reference image with multiple views (e.g., front, top, side) and then insert dimensions. For example, the solid modeling system may be a feature-based 3D CAD system, in which a part is constructed using various features. Examples of features include bosses, fillets, chamfers, cuts, holes, shells, lofts, and sweeps. The CAD system stores the content of parts, subassemblies, and assemblies in data files. In addition to features, the content of CAD data files may include design profiles, layouts, internal components (e.g., bodies), and graphical entities.
[0017] A sketching tool is a computer software component that allows a user to generate 2D images (sketches) that can form the basis of a 3D model. Sketches can be created on any one or more planes, including, for example, the front, top, right, or creation planes. The SOLIDWORKS® software program includes sketching tools that allow users to perform these functions. Sketching in SOLIDWORKS® is the basis for creating features. Features are the basis for creating parts, which can be assembled into assemblies. In the SOLIDWORKS® software program, a user can create and / or edit a sketch using, for example, sketch entities or sketch tools, planes, or extruded or revolved bosses / bases. A user can add dimensions to a sketch. However, features can be created from a sketch with or without dimensions.
[0018] Model-based definition (MBD) refers to the practice of using 3D models in 3D CAD software to define (provide specifications for) individual components and / or product assemblies. The types of information included can include geometric dimensioning and tolerancing (GD&T), component-level materials, assembly-level bills of materials, engineering configurations, and design intent. In contrast, other methods have historically required the use of 2D mechanical drawings to provide such detail. Some 3D CAD applications allow for the insertion of engineering information, such as dimensions, GD&T, notes, and other product details, into the 3D digital dataset of a component and / or assembly. MBD uses this functionality to establish the 3D digital dataset as the source of these specifications and design authority for a product. The 3D digital dataset can contain sufficient information to manufacture and inspect a product without the need for mechanical drawings, which traditionally contain such information. In many cases, this information from the 3D digital dataset (e.g., a solid model) enables rapid prototyping of the product via various processes, such as 3D printing. In some cases, manufacturers may be able to feed 3D digital data directly into one or more manufacturing devices, such as computer numerical control (CNC) machines, to produce the final product. SOLIDWORKS MBD™ is an example of a computer software program that provides users with access to MBD. In a typical implementation, SOLIDWORKS MBD™ helps users define, organize, and publish 3D PMI, including 3D model data such as dimensions and tolerances in industry-standard file formats. SOLIDWORKS MBD also operates within the SOLIDWORKS environment with its own CommandManager and supports native SOLIDWORKS 3D part and assembly data such as configurations, constraints, and PMI.
[0019] The phrase "processor" (or processors, etc.) refers to any one or more computer-based processing devices. A computer-based processing device is a physical component (e.g., a CPU) that can perform computer functions by executing computer-readable instructions stored in memory. When more than one computer-based processing device or processor core is present, they may be contained within a single physical device (e.g., within a single computer or server) or may be distributed across multiple physical devices that may be located, for example, in more than one physical location or facility.
[0020] The term "memory" (or memories, etc.) refers to any one or more computer-based memory devices. A computer-based memory device is a physical component capable of storing computer-readable instructions. The computer-readable instructions are executed by a processor, causing the processor to perform the associated computer function. When more than one computer-based memory device is present, they may be contained within a single physical device (e.g., a computer or server) or may be distributed across multiple physical devices that may be in more than one physical location or facility.
[0021] The phrase "computer numerical control" or "CNC" refers to the automatic control of one or more machining tools, such as lathes, drills, grinders, routers, mills, 3D printers, etc., by means of a computer. A "CNC machine" is a machine that includes one or more such machining tools and is configured to process a piece of material (e.g., metal, plastic, ceramic, wood, composites, etc.) to meet specifications by following coded, programmed instructions without a manual operator directly controlling the machining operations. The instructions may be transmitted from a computer to the CNC machine in the form of a sequential program of machine control instructions and then executed by the CNC machine. In some cases, the program may have been generated by or from CAD software and / or computer-aided manufacturing ("CAM") software (e.g., based on a model generated using CAD / CAM software). In such cases, for example, the mechanical dimensions of an object may be defined using CAD software and then translated (e.g., by corresponding CAM software) into manufacturing instructions. The final instructions may be utilized as (or to provide) CNC-compatible commands necessary for a particular CNC machine to perform manufacturing operations in connection with producing a real-world version of the object. The CNC-compatible commands may be loaded into and executed by the CNC machine to perform real-world manufacturing operations (e.g., removal operations) on one or more pieces of material (e.g., metal, plastic, ceramic, wood, composite, etc.).
[0022] This specification uses numerous terms and phrases specific to CAD programs. Unless otherwise indicated, these terms and phrases shall have the corresponding meanings set forth below. For example, the term "annotation" refers to an annotation that conveys product and manufacturing requirements and instructions, such as a note, datum symbol, geometric dimension and tolerance, welding symbol, surface finish, etc. Annotations can be attached to and associated with a 3D model, for example, or can be displayed separately from the 3D model and are generally referred to as 3D annotations. 3D annotations can be displayed graphically for human reading and can also represent semantic meaning beyond the graphical presentation. The term "assembly" refers to a document that combines parts, features, and other assemblies (subassemblies). Parts and subassemblies can exist in a document separate from the assembly. For example, in an assembly, a piston can be combined with other parts, such as a connecting rod or cylinder. This assembly can then be used as a subassembly in an engine assembly. The term "component" when used with reference to a CAD design refers to any part or subassembly within an assembly. The term "datum" refers to a theoretically exact plane, axis, or point location, for example, that GD&T or dimensional tolerances refer to. As used herein, "edge" refers to the single outer boundary of a feature. The term "entity" refers to an individual element, such as a face, edge, or vertex. The term "face" refers to a selectable area (planar or otherwise) of a model or surface with a boundary that helps define the shape of the model or surface. For example, a rectangular solid has six faces, and a cylindrical solid has three faces. The term "feature" refers to an individual shape that combines with other features to create a part or assembly. The term "part" refers to a single 3D object created from a feature. A part can contain multiple bodies. A part can be a component in an assembly. Examples of parts include, for example, bolts, pins, and plates.The term "plane" refers to flat construction geometry. The term "point" refers to a unique location in a 3D model or sketch. The term "subassembly" refers to an assembly that is part of a larger assembly. For example, the steering mechanism of a car is a subassembly of that car. The term "surface" refers to a planar or 3D entity with edge boundaries and zero thickness. The term "vertex" refers to a point where two or more edges intersect. Vertices can be selected for sketching, dimensioning, and many other CAD operations. [Differences from prior art]
[0023] With MBD, users and product development and manufacturing processes rely on PMI in 3D models to produce and inspect parts. PMI typically contains valuable data needed for manufacturing, both semantic and graphical. Also, for example, dimensions on a model in MBD typically correspond to dimensions readable by CNC machines through neutral files such as STEP AP 242. For example, SOLIDWORKS software allows users to add PMI to a 3D model by manually and individually defining PMI directly in the 3D model or by using automatic dimensioning tools. Manually and individually adding dimensions is time-consuming, tedious, repetitive, and prone to human error. Using automatic dimensioning, users have no control over the dimensions that will be created. No prior approach exists for defining product manufacturing information for a 3D CAD model that allows reuse of existing data already available from sketching or the application of features (e.g., bosses, cuts, holes, etc.). Additionally, no approach exists that provides a 1:1 mapping of PMI, such as dimensional information from a 3D model, to corresponding dimensional information from a sketch. In various embodiments, the systems and techniques of the present disclosure provide technical solutions to these and potentially other technical challenges in a CAD software environment, particularly for MBD. [Technical disclosure]
[0024] Development of a 3D CAD model for MBD typically begins with creating one or more sketches using a computer-based sketching application. During sketching, dimensional information, such as dimensions and associated tolerances, may be entered into the sketch by a user. Some dimensional information may be considered important in these early stages. Critical dimensional information generally refers to information provided in the sketch, such as dimensions and tolerances. The user may desire that information to be automatically transferred to the 3D model for MBD derived from the sketch. Additionally, in some embodiments, critical dimensional information may be expected to remain intact as the design evolves, even though other early-stage dimensional information placed in the sketch may be expected to change as the design evolves.
[0025] In a typical embodiment, a sketch is created by applying one or more sketch entities to a graphics area of a user interface in a CAD program. Typically, sketch entities are created from individual 2D sketch elements (e.g., lines, curves, etc.) and placed in the graphics area within a coordinate system defined by and including visual representations of coordinate symbols indicating orientations of the axes (e.g., x-axis and y-axis) of the coordinate system. In a typical embodiment, each sketch element is assigned a unique identifier upon creation of the sketch element. Each unique identifier is stored in memory in logical association with its associated sketch element. In some embodiments, each sketch element may also be stored in memory in logical association with its orientation relative to its associated coordinate system.
[0026] Dimensional information (e.g., dimensions and tolerances) can be added to a sketch. Each item of dimensional information typically has a dimension value and an associated tolerance (e.g., 100 millimeters ±1 millimeter), and a reference direction based on its orientation within the coordinate system of the graphics area (e.g., along the x-axis, along the y-axis, or at an angle relative to the x-axis or y-axis). In an exemplary embodiment, each dimension value and associated tolerance are stored in memory together as dimensional information and logically associated with its associated reference direction.
[0027] In an exemplary embodiment, each sketch may be stored in memory along with its geometry (its sketch entities), a unique identifier and / or orientation for any element of the sketch entities, any dimensional information (e.g., dimensions and tolerances) added to the sketch, and the reference direction of the dimensional information.
[0028] FIG. 1 is a schematic representation of a sketch 107, which may be created using, for example, a sketch function in a CAD program and saved with the data also shown in FIG. 1. The sketch includes two sketch entities: a circle and a rectangle enclosing the circle. The rectangular sketch entity has four sketch elements: an upper line, a right line, a lower line, and a left side. The circular sketch entity has one sketch element: an arc. As shown in data table 101 (which may be stored in memory in association with the illustrated sketch), each sketch element is assigned a unique identifier, which in the illustrated example are numbered 1 through 5 for simplicity. More specifically, in the illustrated example, the rectangular upper line sketch element is assigned identifier 1, the rectangular right line sketch element is assigned identifier 2, the rectangular lower line sketch element is assigned identifier 3, the rectangular bottom line sketch element is assigned identifier 4, and the arc sketch element is assigned identifier 5. In a typical embodiment, the data in data table 101 will be stored in memory along with the sketch itself and may be displayed in the graphics area of the CAD program's user interface.
[0029] The sketch 107 also has dimensional information (e.g., dimensions and associated tolerances) attached to it. In a typical embodiment, the dimensional information would have been added by the user as the sketch was being created. In the illustrated embodiment, the dimensional information includes DIM1, DIM2, DIM3, DIM4, and DIM5. DIM1 represents the dimension (and tolerance) between the left side of the rectangle (ID4) and the right side of the rectangle (ID2). DIM2 represents the dimension (and tolerance) between the bottom line of the rectangle (ID3) and the top line of the rectangle (ID1). DIM3 represents the dimension (and tolerance) between the left side of the rectangle (ID4) and the center of the circle (ID5). DIM4 represents the dimension (and tolerance) between the bottom line of the rectangle (ID3) and the center of the circle (ID5). Each dimension has a value (e.g., assigned by the user) and a direction relative to the axes of a coordinate system represented by 2D coordinate symbols 105. The 2D coordinate symbols 105 are also displayed in the graphics area of the CAD system's user interface. More specifically, and as reflected in data table 103 (which may be stored in memory in association with the illustrated sketch), dimension DIM1 has a value of 100±1, dimension DIM2 has a value of 60±1, dimension DIM3 has a value of 50±0.5, dimension DIM4 has a value of 30±0.5, and dimension DIM5 has a value between 40.2 and 39.9. In an exemplary embodiment, these values would represent units of distance (e.g., millimeters, inches, etc.). Additionally, and as reflected in data table 103, dimensions DIM1 and DIM3 are oriented on the x-axis, while dimensions DIM2 and DIM4 are oriented on the y-axis. In an exemplary embodiment, the data in data table 103 would be stored in memory along with the sketch itself, and the sketch may be displayed in a graphics area of a CAD program's user interface along with the data in data table 101.
[0030] Once a sketch is initiated, feature functions, such as extrusion, can be applied to the sketch to add one or more features to the sketch. Each feature function applied to a sketch can modify the associated image in a way that creates surfaces to which additional dimensional information can be added (e.g., by a user specifying new dimensional information for the feature being added). For example, an extrusion feature can be applied to sketch 107 in FIG. 1 to effectively convert the image into a 3D image, thereby introducing thickness into the original 2D sketch, which can be assigned dimensional information (e.g., dimension values and associated tolerances) associated with the added thickness. Once a 2D sketch is extruded beyond its original 2D plane (e.g., by extruding along the z-axis), the final image, with its faces and edges, is no longer created from the sketch entities.
[0031] Figure 2 shows an example of a 3D shape 207 resulting from applying the extrude function to the sketch of Figure 1. The illustrated shape 207 has seven faces, namely face 1, face 2, face 3, face 4, face 5, face 6, and face 7, which together form a rectangular prism with a circular cut through it.
[0032] Each face in the illustrated shape 207 has an associated directional vector DV1, DV2, DV3, DV4, DV5, DV6, and DV7, respectively. Each directional vector identifies the orientation of the associated face with respect to an axis of a 3D coordinate system, as indicated by coordinate symbols 205. For example, a face having a flat surface may have a directional vector perpendicular to the flat surface. In the illustrated example, and as reflected in data table 207 (which may be stored in memory), face 1 has a directional vector (DV1) along the y-axis, face 2 has a directional vector (DV2) along the x-axis, face 3 has a directional vector (DV3) along the negative y-axis, face 4 has a directional vector (DV4) along the negative x-axis, face 5 has a directional vector (DV5) along the z-axis, face 6 has a directional vector (DV6) along the negative z-axis, and face 7 has a directional vector along the z-axis. The reference of the axes here is based on the illustrated coordinate symbol 205, which may be displayed along with the graphical representation of the 3D shape in the graphics area of the CAD system's user interface. It is notable that in an exemplary embodiment, when a 3D shape such as that shown in FIG. 2 is generated from a sketch, the 3D coordinate symbol for the 3D shape corresponds to and aligns with the 2D coordinate symbol from the graphics area in which the sketch was created. This means that in an exemplary embodiment, two of the axes of the 3D coordinate symbol 205 (e.g., x and y) align with the same two axes (x and y) of the 2D coordinate symbol.
[0033] Each face in the illustrated shape 207, in addition to having an associated direction vector, originated from a sketch element in sketch 107 and / or from a feature applied to sketch 107. In an exemplary embodiment, each face in 3D shape 207 is assigned an indication of where the face originated (e.g., from a particular one of the sketch elements in sketch 107) and / or how the face was created (e.g., by the application of a feature such as extrusion). Data table 209 shows an example of this. According to the illustrated data table 209, face 1 of 3D shape 207 originates from sketch element ID 1 (in sketch 107 of FIG. 1 ), face 2 of 3D shape 207 originates from sketch element ID 2 (in sketch 107 of FIG. 1 ), face 3 of 3D shape 207 originates from sketch element ID 3 (in sketch 107 of FIG. 1 ), face 4 of 3D shape 207 originates from sketch element ID 4 (in sketch 107 of FIG. 1 ), and face 7 of 3D shape 207 originates from sketch element ID 5 (in sketch 107 of FIG. 1 ). Additionally, as reflected in data table 209, all faces (1-7) of 3D shape 207 were formed by the extrusion process applied to sketch 107 of FIG. 1 .
[0034] In a typical embodiment, the data in data table 209 will be stored in memory along with the 3D shape 207 itself, and 3D shape 207 may be displayed in the graphics area of the CAD program's user interface.
[0035] In an exemplary embodiment, the disclosed systems and techniques allow a user to select certain dimensional information (e.g., dimensions and associated tolerances) applied to a sketch or feature that should be designated as critical, designate the selected dimensional information as critical, and then automatically integrate any dimensional information designated as critical directly from the sketch into the corresponding 3D model for MBD. This typically simplifies the process of dimensioning 3D models for MBD, making the process faster, more accurate, more reliable, and easier while reducing the opportunity for user error.
[0036] One challenge in implementing this automatic incorporation of critical dimensional information from sketches into MBD 3D models is that in a sketching environment, sketch entities are typically defined by lines and arcs, whereas in an MBD 3D modeling environment, shapes are defined by faces and edges. Lines and arcs have no obvious meaning in the 3D modeling of faces and edges for an MBD environment. Therefore, in an exemplary embodiment, the disclosed systems and techniques provide a mapping function that maps selected critical dimensions to associated faces. The mapping inherently leverages information stored during the creation of sketches, application of features to the sketches, application of dimensional information, and creation of a 3D model based on the sketches, as described above. Finally, the disclosed systems and techniques generate complete semantic and graphical PMI on the MBD 3D model based at least in part on critical dimensional information from the sketches or features.
[0037] 3 is a schematic representation of an example computer 100 configured to implement and / or facilitate the systems and techniques of the present disclosure. More specifically, the computer 100 is configured to facilitate the easy generation of accurate, highly detailed, and fully defined three-dimensional (3D) model-based definition (MBD) representations of real-world objects to be manufactured. In an exemplary embodiment, the MBD representation of the real-world object is derived from one or more sketches (e.g., 2D sketches) of the real-world object. The computer 100 is configured to facilitate the automatic incorporation of dimensional information designated as critical from the one or more sketches into the 3D model for MBD derived from the sketches.
[0038] Dimensional information automatically incorporated into the 3D MBD from one or more sketches can include, for example, individual physical dimensions and associated tolerance values. Individual physical dimensions and associated tolerances are placed into one or more sketches by a user and designated as critical by the user during sketch creation and / or feature application. In an exemplary embodiment, computer 100 automatically incorporates such designated dimensional information from the sketches into the 3D representation for MBD (e.g., via 230 in FIG. 4 ). In an exemplary embodiment, computer 100 is configured to allow a user to manually enter other product manufacturing information (PMI) into the 3D MBD model (e.g., via 226 in FIG. 4 ) and / or annotate dimensional information to the 3D MBD model via an automatic dimensioning tool (e.g., see 228 in FIG. 4 ). Such dimensional information is pre-programmed into a database of default values for such dimensional information (e.g., see 234 in FIG. 4 ).
[0039] In an exemplary embodiment, the computer 100 provides a simple approach for creating a reliable and accurate method for reusing dimensional information present in sketches and features to create a 3D MBD representation of a sketched object with graphical and fully semantic dimensional information and other PMI. Graphical PMI is a type of PMI that is readable to the human eye but generally not consumable by machines or software. Semantic PMI is a type of PMI that is not only human-readable but also machine-readable. The PMI in the MBD representation, especially the critical dimensional information incorporated from the sketch, typically represents complete and faithful design intent and can be used for manufacturing automation, such as computer-aided manufacturing (CAM) and coordinate measuring machines (CMMs), performed by real-world physical machines. Additionally, in an exemplary embodiment, the PMI in the final 3D MBD model includes dimensional information designated as critical incorporated from the sketch, as disclosed herein. The final 3D MBD model has a degree of detail and accuracy that fully enables the manufacture of the corresponding real-world object represented by the 3D MBD model, in accordance with all applicable standards, including, by way of example, standards promulgated by the National Institute of Standards and Technology (NIST).
[0040] In some embodiments, the computer 100 includes a translator configured to export information, including PMI, from the 3D model for MBD to a file format suitable for reading by a real-world manufacturing machine (e.g., a CNC machine). For example, in some embodiments, the file format is the STEP ("Standard for Product Model Data Exchange") file format defined by the International Organization for Standardization (ISO) standard ISO 10303, International Standard for Representation and Exchange of Computer-Interpretable PMI. ISO 10303 can be used to represent 3D objects and associated information in CAD. For example, a STEP file can be directly read by a specific real-world machine (e.g., a CNC machine) to execute a manufacturing process that produces a real-world version of the object represented in the corresponding 3D MBD model. In such cases, the tedious and potentially error-prone step of creating multiple 2D engineering drawings from the 3D model can be avoided.
[0041] 3, computer 100 includes a processor 102, computer-based memory 104, computer-based storage 106, a network interface 108, an input / output device interface 110, and a bus that serves as an interconnect between the components of computer 100. The bus acts as a communication medium through which the various components of computer 100 can communicate and interact with one another.
[0042] Processor 102 is configured to perform various computer-based functions disclosed herein, as well as other support functions not explicitly disclosed herein. Some such functions include facilitating sketching and MBD-related functions disclosed herein. Typically, processor 102, together with other computer components, performs these and other functionalities by executing computer-readable instructions stored on a computer-readable medium (e.g., in processors 104, 106, or elsewhere). In various embodiments, some of these functions may be performed with reference to data stored on a computer-readable medium and / or received from some external source (e.g., from an input / output (I / O) device via I / O device interface 110 and / or from an external network via network interface 108).
[0043] Computer 100 includes volatile and non-volatile memory. More specifically, in a typical embodiment, memory 104 provides some form of volatile storage for storing computer-readable instructions that, when executed by processor 102, cause or facilitate the performance of some (or all) of the computer-based functions disclosed herein. Also, in a typical embodiment, storage 106 provides some form of non-volatile memory for storing computer-readable instructions, such as instructions implementing an operating system, configuration information, etc. Various system memory resources (e.g., 104, 106) may store data to support the computer functions disclosed herein and other computer functions.
[0044] In an exemplary embodiment, memory 104 stores computer-readable instructions that, when executed by processor 102, cause processor 102 to perform functions that present a computer-aided design program to a user of computer 100. The computer-aided design program incorporates and / or facilitates the functionality disclosed herein, including functionality related to automatically incorporating dimensional information from one or more sketches into a corresponding 3D MBD drawing. Examples of computer-aided design platforms suitable for adaptation to incorporate the functionality disclosed herein are the SOLIDWORKS® computer program or the CATIA® computer program, both available from Dassault Systemes Corporation, the assignee of the present application. For example, the SOLIDWORKS® program includes sketching tools and MBD tools. An embodiment of a computer-aided design program so adapted would include one or more (or all) of the functionality disclosed herein.
[0045] Network interface 108 is a component that allows computer 100 to connect to any one or more of a variety of external computer-based communication networks, including, for example, a local area network (LAN) or a wide area network (WAN) such as the Internet. In various embodiments, network interface 108 can be implemented in hardware, software, or a combination of hardware and software. In some embodiments, the network interface (or other interface) may provide connectivity to other external machines (e.g., one or more CNC machines).
[0046] Input / output (I / O) device interface 110 is a component that allows computer 100 to interface with any one or more input or output devices, such as a keyboard, mouse, display, microphone, speaker, printer, etc. In various embodiments, the I / O device interface may be implemented in hardware, software, or a combination of hardware and software. In a typical embodiment, a computer may include one or more I / O devices (e.g., a computer screen, keyboard, mouse, printer, touchscreen device, etc.) connected to I / O device interface 110. These I / O devices (not shown in FIG. 3 ) act as a human-machine interface (HMI) and are generally configured to allow a human user to interact with computer 100 to access and utilize functionality, particularly functionality related to computer-aided design as disclosed herein.
[0047] In one exemplary embodiment, computer 100 is connected to a display device (e.g., via I / O device interface 110) and configured to present on the display device a visual representation of an interface to a product design environment, such as a product design environment provided by and within the SOLIDWORKS® computer program. In one exemplary embodiment, the interface and its visual representation on the computer-based display device provides a user with access to the functionality disclosed herein and displays visual representations of 2D sketches, 3D models, drawings, screenshots, etc. (e.g., on a display device coupled to I / O device interface 110).
[0048] In some embodiments, computer 100 and its various components may be contained within a single housing (e.g., within a personal laptop) or within a single workstation. In some embodiments, computer 100 and its various components may be distributed across multiple housings and possibly across multiple locations across a network. Each component of computer 100 may include multiple versions of that component that may work in cooperation, and these multiple versions may reside in different physical locations and may be connected via a network. For example, processor 102 in FIG. 3 may represent multiple individual processors in different physical locations cooperating to coordinate the execution of processes attributed to processor 102. A wide variety of possibilities regarding specific physical implementations are possible.
[0049] In various embodiments, computer 100 may have additional elements not shown in Figure 3. These may include, for example, controllers, buffers (caches), drivers, repeaters, receivers, graphics processing units (GPUs), etc. Additionally, interfaces (e.g., 108, 110) may include elements not specifically shown in Figure 3, including, for example, address, control, and / or data connections, to facilitate communication between the illustrated computer components.
[0050] In various embodiments, computer 100 may be capable of executing not only CAD (or other) programs including the functionality disclosed herein, but also other programs, such as CAM programs, that can be used in conjunction with the CAD programs (e.g., to facilitate the generation of machine-readable instructions for an external CNC machine, which are transmitted to the external CNC machine via network interface 108, for example).
[0051] 4 is a schematic representation of a CAD program 200 running on a computer 100 with its various functional components, a computer-aided manufacturing (CAM) program 201 in operative communication with the CAD program within the computer 100, and a CNC machine 220 connected to and operatively communicating with the computer 100 and the CAM program 201 within the computer 100. Briefly, the CAD program 200 enables a user to efficiently, effectively, and accurately create sketch-based 3D models for MBD with fully semantic and graphical PMI. The CAM program 201 provides output based on the MBD 3D models and associated PMI directly to the CNC machine. The CNC machine utilizes the instructions provided by the CAM program 201 to manufacture real-world objects based on the MBD 3D models.
[0052] The functional components within the illustrated computer 100 include a sketching tool 222, a 3D MBD tool 224, a manual dimensioning tool for MBD 226, an automatic dimensioning tool for MBD 228, a sketch dimension information integration tool 230, a mapping tool 232, an automatic dimensioning tool database 234, and a critical sketch dimension database 236. In an exemplary embodiment, each of the sketching tool 222, the 3D MBD tool 224, the manual dimensioning tool for MBD 226, the automatic dimensioning tool for MBD 228, and the sketch dimension information integration tool 230 is implemented using a processor (e.g., 102 in FIG. 3 ) that executes computer-readable instructions stored on a computer-readable medium, such as memory 104 or 106 in FIG. 3 . In an exemplary embodiment, the automatic dimensioning tool database 234 and the critical sketch dimension database 236 are stored in computer memory (e.g., 104 or 106 in FIG. 3 ). 4 also interact with other elements of the computer. For example, the sketching tool 222 (and others) will typically interact with a computer display and / or one or more input / output devices.
[0053] In an exemplary embodiment, a sketching tool 222 in the illustrated CAD program 200 allows a user to create one or more sketches, apply features, and add dimensional information (e.g., dimensions and tolerances) to the sketches / features. Additionally, in an exemplary embodiment, the sketching tool 222 allows a user to designate selected dimensional information as critical. In an exemplary embodiment, a mapping tool 232 maps any dimensional information of a sketch designated as critical to a corresponding face of an associated 3D model for MBD. In an exemplary embodiment, a critical sketch dimension database 236 stores dimensional information (e.g., dimensions and / or tolerances) from a particular sketch, where each item of stored dimensional information is from a particular sketch and is mapped to (or stored in logical association with) a face identifier for an associated face of the 3D model for MBD derived from the particular sketch. In an exemplary embodiment, the sketch dimensioning tool 230 automatically applies user-specified critical dimensions that occur in an associated sketch and from the critical dimensioning database 236 to corresponding faces in the MBD 3D model based on associated face identifiers in the critical sketch dimensioning database 236. In an exemplary embodiment, the manual dimensioning tool 226 allows a user to manually input dimensional information into the MBD 3D model. In an exemplary embodiment, the automatic dimensioning tool database 234 stores generic, pre-programmed dimensioning information (e.g., standard tolerances) that is not specific to a particular sketch or model. The automatic dimensioning tool 226 applies dimensional information from the automatic dimensioning tool database 234 to the MBD 3D model.
[0054] 5 is a flowchart depicting a user's interaction with computer 100 to generate an accurate, highly detailed, and fully defined 3D MBD representation of a real-world object to be manufactured, and then manufacture that object using a real-world manufacturing machine. The process represented by the illustrated flowchart includes automatically incorporating selected dimensional information designated as important from one or more sketches of the real-world object into a corresponding 3D model for MBD derived from the sketches.
[0055] Initially, according to the illustrated flowchart, a user (at 302) creates one or more 2D sketches of a real-world object to be manufactured. The sketches may be generated using the sketching tool 220 and may include one or more views of the real-world object. When multiple views are generated, the multiple views may include views from different perspectives (e.g., on different planes in Euclidean space, e.g., on the xy plane, yz plane, and / or xz plane as defined by a Cartesian coordinate system). In an exemplary embodiment, a user may create enough views to define the overall appearance of the object as intended by the user. In an exemplary embodiment, the sketching tool may be a sketching tool in a SOLIDWORKS® computer program, which may facilitate the creation of sketches, each of which includes one or more sketch entities (e.g., lines, arcs, etc.). Once created, the sketches are typically stored in computer memory (e.g., 104 or 106 of FIG. 3 ) along with the sketch information detailed above and depicted in FIG. 1 .
[0056] Of course, a user may apply dimensional information to a sketch. Dimensional information may include, for example, distance and size values and associated tolerances. Because a sketch is created from sketch entities, dimensional information applied to a sketch typically references (and is related to) the sketch entities (e.g., lines, arcs, etc.) that create the sketch. For example, if a particular sketch shows a rectangle with a circle inside it, a user may apply a dimension of 30 millimeters and a tolerance of ±0.5 millimeters to the distance between the center point of the circle and a line on the edge of the rectangle relative to the center point of the circle. An example of this is shown in FIG. 7A, which illustrates a sketch that may appear on a screenshot on a computer display. The sketch in the illustrated example, similar to the sketch in FIG. 1, has a rectangle and a circle inside the rectangle. In the illustrated example, the user has added dimensional information identifying the distance and associated tolerance between the center point of the circle and the point on the bottom edge of the rectangle closest to the center point of the circle, as 30±0.5. This dimensional information references (and is related to) the rectangle and circle in the illustrated sketch. Other dimensional information may also be added to the sketch. This is also shown in FIG. 7A, which shows several other user-provided values for dimensional information (e.g., dimensions and associated tolerances) of the rectangle and circle. It is noted that the numbers provided to represent dimensional information in FIGS. 5A-5D are unitless. However, it should be understood that these dimensions would actually be associated with some unit of measurement (e.g., inches, millimeters, etc.).
[0057] Each dimension value in FIG. 7A references (and is associated with) one or more sketch entities (e.g., lines, arcs) in the illustrated sketch. For example, the dimension value 30±0.5 references (and is associated with) the center point of the circle and the line at the bottom of the rectangle; the dimension value 50±0.5 references (and is associated with) the center point of the circle and the line at the left side of the rectangle; the dimension value 60±1 references (and is associated with) the line at the top of the rectangle and the line at the bottom of the rectangle; the dimension value 100±1 references (and is associated with) the line at the left side of the rectangle and the line at the right side of the rectangle; and finally, the dimension value Φ40.2 / 30.9 references (and is associated with) the line defining the circle. In the illustrated example, the dimension value Φ40.2 / 30.9 indicates that the referenced / associated circle has a diameter between 30.9 units and 40.2 units. In one example embodiment, each of the dimension values shown in Figure 5A may be stored in computer memory (e.g., 104 or 106 in Figure 3) in logical association with the line and / or arc to which the dimension value relates / references. It is notable that the sketch entities and portions thereof (e.g., lines and / or arcs) to which the dimension values relate / references exist only in the sketch and have no relevance in the 3D modeling environment.
[0058] The sketch shown in FIG. 7A is a type of sketch that can be used to begin generating a 3D model for MBD. As a user creates a sketch, the user may add various sketch entities and dimensional information to at least approximate the object being designed. At this point, the user may consider various dimensional information to be approximations that are subject to change later in the design process. However, at this point, some of the dimensional information applied to the sketch may be considered critical and may be intended to be fixed and appear in the final 3D model for MBD (i.e., not subject to change). A particular piece of dimensional information may be considered critical, for example, if it has a very small tolerance, if it affects the fit of components within an object or assembly, or if its precise location affects the function, safety, or regulatory compliance of the object. In some cases, the user may consider all dimensional information to be critical. Thus, in an exemplary embodiment, computer 100 allows a user to designate certain dimensional values and tolerances as critical, so that despite other changes to the design, the designated critical values will remain preserved, be reliably and accurately represented in the design, and automatically carry over into subsequent associated 3D models for MBD.
[0059] Specifically, the process depicted in the flowchart of FIG. 3 includes step 306, in which the user selects certain dimensional information to be designated as important in the sketch. Computer 100 may allow the user to select the dimensional information to be designated as important in a variety of ways. For example, in some embodiments, computer 100 may present a user-selectable visual element on its display. Selection of the visual element causes computer 100 to open a dialog box in the computer's user interface, allowing the user to designate any important dimensions. In some embodiments, computer 100 may automatically prompt the user, as the user creates the dimensional information, to consider whether the dimensional information in the sketch should be designated as important. Other embodiments are possible.
[0060] FIG. 7B is a schematic representation of an example dialog box that may appear on a display and allow a user to identify any significant dimensions in the sketch of the rectangle and circle of FIG. 7A (also shown in FIG. 7B). The illustrated dialog box has two columns. The left column lists the dimensional values provided in the sketch. The right column provides user-selectable fields; selection of a field causes computer 100 to add an "x" to the column, thereby indicating that the corresponding dimensional information has been selected for designation as significant and to enter into memory a designation that the associated dimensional information value should be treated as significant. As a result of being designated as significant, computer 100 will automatically add the corresponding dimensional information to a 3D model for MBD developed from the associated sketch.
[0061] In the illustrated example in FIG. 7B , dimensions 60±1 and 100±1 correspond to the height and width of the rectangle, respectively, and are shown marked as critical. In this example, computer 100 will treat the dimensions so designated as critical and subsequently automatically incorporate dimensions and tolerances based on the critical dimensions into the MBD 3D model developed from the associated sketch. In some embodiments, if a user attempts to override or change any dimensions of the MBD 3D model based on dimensions designated as critical, computer 100 may prevent those changes from taking effect or may at least present the user with a warning that the dimension the user is attempting to change has been designated as critical before the user is authorized to override the warning.
[0062] The other dimensions listed in the dialog box in FIG. 7B are not checked and therefore are not treated as critical by computer 100. This means that the values of the dimensions from the sketch are not automatically included in the 3D model for MBD derived from the sketch. Instead, the user creating the 3D model for MBD can assign values to the dimensions and tolerances corresponding to the unchecked dimensions of the 3D model for MBD using manual dimensioning tools for MBD 226 or automatic dimensioning tools for MBD 228. Dimensional information may generally be entered into the 3D model for MBD regardless of whether it is related to the corresponding dimension provided in the original sketch. Manually entering such dimensional information into the 3D MBD model may be more tedious and error-prone than automatically adding dimensions and tolerances to the 3D MBD model based on the dimensions selected as critical in the original sketch. Despite these risks, having the option of manual entry available beyond the sketching stage of the design may be desirable in some cases. This is because the manual input option allows for easy modification of the design as it evolves, especially in a more subtle or less impactful manner. In an exemplary embodiment, the systems and techniques disclosed herein strike a balance between easily generating detailed and accurate 3D models for MBD models from sketches while also maintaining a reasonable amount of flexibility throughout the design process.
[0063] Referring again to the flowchart of FIG. 5 , the process depicted therein also includes applying one or more feature functions (304). These may include features available in the SOLIDWORKS software application, such as extrusion, which may add additional dimensions and associated dimensional information to the design. FIG. 7C shows an example of a 3D version of the 2D sketch in FIG. 7A , which may result from applying an extrusion feature that adds material to the 2D sketch in FIG. 7A and extrudes the 2D sketch a small distance along a line in the direction defined by the arrow (A). This adds thickness and a third dimension to the previous 2D shape. As shown, applying this feature function transforms the 2D rectangle with the sketched circle into a 3D representation of a rectangular prism with a cylindrical feature (e.g., a hole) passing through the prism. The rectangular prism in the 3D representation corresponds to the rectangle in the 2D sketch, and the cylindrical hole in the 3D representation corresponds to the circle in the 2D sketch. The thickness (in the direction of arrow Y) of the cuboid depends on the amount of extrusion (in the direction of arrow Y) applied to the 2D sketch.
[0064] In an exemplary embodiment, computer 100 (again at 306) allows the user to designate any new dimensions (e.g., dimensions such as thickness in the y-direction that may have resulted from applying one or more features) as significant. In this regard, computer 100 may display a dialog box on its display, such as that shown in FIG. 7B, populated with dimensional information including any newly added dimensional information, and allow the user to select one or more of the dimensional information values to designate as significant, as described above. An example of this is shown in FIG. 7D. The dialog box in FIG. 7D includes all of the dimensional information from the dialog box in FIG. 7B, as well as the new thickness dimension (4±0.2) that was added as a result of applying the extruded feature. Note that in the illustrated example, the only dimensions selected to designate as significant are the 60±1 and 100±1 modulus dimensions.
[0065] However the aforementioned functionality is implemented, computer 100 is configured (at 306) to allow a user to select (i.e., have computer 100 identify) any dimensional information to be designated as important in the sketch, and computer 100 is further configured to preserve any such selected designations (e.g., by storing them in computer memory (e.g., 104 or 106 of FIG. 3 )).
[0066] Essentially, no matter how these steps (302, 304, 306) are implemented, computer 100 allows a user to add dimensional information to sketches and features and to designate any of that dimensional information as important.
[0067] 5, the computer 100 then (at 308) maps any dimensional information from the sketch / feature designated as important to one or more associated faces of the corresponding 3D model for MBD. There are a variety of ways in which this mapping process can be performed. However, typically, the computer 100 utilizes stored information about the sketch, 3D shape, dimensional information, faces, etc., as described above, to map important dimensions from the sketch to faces on the 3D model.
[0068] 6 is a flowchart illustrating one possible way in which computer 100 may perform mapping process 308. Many variations and other approaches are possible. According to the illustrated flowchart, computer 100 first selects (at 440) one of the dimensional information designated as being significant.
[0069] In the above example, computer 100 designated two of the dimensional information (60±1 and 100±1) as being significant. Continuing with this example, computer 100 selects (at 440) from computer memory one of these dimensional information (e.g., 60±1) for the first step in the illustrated mapping process.
[0070] Next, for a selected critical dimension from the sketch (e.g., 60±1), the computer 100 (at 442) identifies a face on the 3D model (e.g., FIG. 5C) that is associated with the selected critical dimension. The computer 100 may do this by using the following exemplary process. First, the computer 100 may note the sketch element to which the dimensional information applies. For example, with reference to FIG. 1, the dimensional information 60±1 is associated with the sketch element having ID1 (the top line of the rectangle). With reference to FIG. 2, the computer 100 may then note that face 1 originates in the sketch element ID1. The computer 100 may then consider the direction vector of face 1 (DV1=Y vector (0,1,0)). This means that the normal to face 1 extends in the positive direction along the y-axis. Therefore, the computer 100 concludes that face 1 faces upward. The computer 100 may then note the direction of the associated dimension (DIM2 is on the y-axis). Therefore, it may be concluded that the opposite ends of the dimension line of the dimension should be applied to the face in the downward (-y) direction, for example face 3.
[0071] Once the two faces (face 1 and face 3) have been identified, computer 100 may compare (at 444) the associated dimension value from the sketch to the actual distance between those faces in the 3D environment to confirm that the correct faces have been selected for applying DIM2 (60±1) to the 3D shape. If this comparison (at 444) confirms that the correct faces have been selected for applying DIM2 (60±1) to the 3D shape, computer 100 may assign (at 446) the dimension DIM2 to the identified faces (face 1 and face 3). If this comparison (at 444) reveals that the sketch dimensions do not match the 3D shape dimensions, computer 100 may discard the association between the identified dimension and the identified faces in question and return to step 440 to continue the process with another item of dimension information.
[0072] There may be other ways to utilize and / or process the stored data to identify which face is associated with a particular dimension, but this is one example. For example, for a dimension that references a cylindrical hole in Figure 7D, the mapping process may be simpler since there is only one hole in the 3D shape of Figure 7D.
[0073] Next (at 452), computer 100 considers whether there is any additional dimensional information that has been marked as important but has not yet been assigned to a particular face in the 3D shape. If there is any such additional dimensional information, computer 100 returns to 440 and selects one of the additional unassigned dimensional information items for processing according to the processing steps described above. Otherwise, computer 100 returns to step 310 (FIG. 5). Notably, in an exemplary embodiment, computer 100 maps only the dimensional information designated as important from the sketch (at 308). Computer 100 may not map any other dimensional information (e.g., not designated as important) at 308.
[0074] 3, after mapping (at 308) the selected critical dimensional information to associated faces of the 3D shape, computer 100 tags (at 310) any of the associated faces as critical. This typically entails computer 100 storing in computer memory, in association with the corresponding face identifier, a designation that the associated face is critical and should be treated as such. Computer 100 automatically applies any associated critical dimensional information to the 3D model, logically associated with the corresponding face.
[0075] Next, following the illustrated flowchart, the user launches (at 312) a dimensioning tool in the CAD program on computer 100. The dimensioning tool examines (at 314) face identifiers stored in computer memory to identify any faces tagged as critical. With any faces tagged as critical already treated as fully defined, the dimensioning tool algorithm is run (at 316). The dimensioning tool algorithm may include automatic and / or manual dimensioning of undefined but necessary dimensional information. Because such faces are treated as already fully defined, previously applied critical sketch dimensions remain associated with those faces and appear as notes available for access in the MBD 3D model. In an exemplary embodiment, the dimensioning tool algorithm is run (at 318) to fully define the MBD 3D model, at which point the final MBD 3D model may have sufficient PMI to enable either automatic manufacturing by, for example, a CNC machine or otherwise, based entirely on the MBD 3D model and the PMI contained therein.
[0076] Finally (at 320), the process includes manufacturing a real-world object based on the MBD 3D model and the PMI contained therein, including any sketch dimensions that were designated as important and are therefore automatically reflected in the MBD 3D model. The manufacturing process (at 320) may include generating instructions for a CNC machine 220 using a CAM program 201 in the computer 100 based on the MBD 3D model and associated PMI, and may further include manufacturing the real-world object using the CNC machine based on those instructions. Of course, alternatives are possible. For example, in some cases, a manufacturer may simply reference the MBD 3D model to manufacture the real-world object using a non-CNC machine. Also, in some cases, the final MBD 3D model may be used to create a set of traditional 2D engineering drawings to facilitate the manufacturer's manufacture of the real-world object. Of course, in some cases, the MBD 3D model may be used for any one or more of a variety of other purposes.
[0077] In light of the foregoing, it can be seen that the systems and techniques disclosed herein facilitate leveraging sketch information, typically only human-readable, into human- and CAM-readable information that can be leveraged to automate manufacturing. The overall design process is streamlined and simplified. Also, improved accuracy of design representation, reduced human error, and other benefits can be realized. Essentially, embodiments of the processes disclosed herein enable a human user to have a dimensioning tool identify which sketch dimensional information is critical and needs to be constrained. This is different from, for example, having the dimensioning tool identify on its own which dimensions in a design should be constrained. The final 3D model MBD is fully semantic and graphical, reflecting the intent of the user's attempt to design an object.
[0078] A number of embodiments of the invention have been described. However, it will be understood that various modifications may be made without departing from the spirit and scope of the invention.
[0079] For example, in various embodiments, computer components (e.g., applications, design tools, etc.) disclosed herein can be implemented by one or more computer-based processors (referred to herein as processors) executing computer-readable instructions stored on a non-transitory computer-readable medium to perform associated computer-based functions (e.g., computer-attributable functionality disclosed herein). The one or more computer-based processors can be virtually any type of computer-based processor and can be contained within a single housing or distributed across different locations, and the non-transitory computer-readable medium can be or include any one or more of a variety of different computer-based hardware memory / storage devices, either contained within a single housing or distributed across different locations.
[0080] Certain functionality is described herein as being accessible or initiated by a user selecting an on-screen button or the like. This should be interpreted broadly to include any kind of visible, user-selectable, or other user-interactive element.
[0081] The systems and techniques disclosed herein can be implemented in many different ways. In one exemplary embodiment, the systems and techniques disclosed herein can be incorporated into the SOLIDWORKS® computer program available from Dassault Systemes Solidworks Corporation. In various embodiments, the systems and techniques can be deployed in other manners.
[0082] Various aspects of the subject matter disclosed herein can be implemented in digital electronic circuitry, or in computer-based software, firmware, or hardware, including the structures disclosed herein and / or their structural equivalents, and / or combinations thereof. In some embodiments, the subject matter disclosed herein can be implemented in one or more computer programs, i.e., one or more modules of computer program instructions, encoded on a computer storage medium for execution by or to control the operation of one or more data processing devices (e.g., processors). Alternatively, or additionally, the program instructions can be encoded on an artificially generated propagated signal, e.g., an electrical, optical, or electromagnetic signal generated by a machine and generated to encode information for transmission to a suitable receiver device for execution by the data processing device. The computer storage medium can be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random-access or serial-access memory array or device, or a combination thereof. A computer storage medium should not be considered solely as a propagated signal, although a computer storage medium may be the destination of computer program instructions encoded in an artificially generated propagated signal. A computer storage medium may be, or be contained in, one or more separate physical components or media, such as multiple CDs, computer disks, and / or other storage devices.
[0083] Certain operations described herein (e.g., aspects of operations attributable to a computer) can be implemented as operations performed by a data processing apparatus (e.g., a processor / specially programmed processor / computer) on data stored in one or more computer-readable storage devices or received from other sources, such as the computer systems and / or network environments described herein. The term “processor” (or the like) encompasses all types of apparatus, devices, and machines for processing data, including, by way of example, a programmable processor, a computer, a system-on-a-chip, or a plurality or combination of the foregoing. An apparatus can include special-purpose logic circuit designs, such as an FPGA (field-programmable gate array) or an ASIC (application-specific integrated circuit). In addition to hardware, an apparatus can also include code that creates an execution environment for the computer program in question, such as code comprising processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or one or more combinations thereof. The apparatus and execution environment can implement a variety of different computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures.
[0084] While this specification contains details of many specific embodiments, these should not be construed as limitations on the scope of any invention or of what may be claimed, but rather as descriptions of features specific to particular embodiments of particular inventions. Certain features described in this specification in the context of separate embodiments can also be implemented in combination within a single embodiment. Conversely, various features described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable combination. Also, although features may be described above as working in a particular combination, and may even be initially claimed as such, one or more features from a claimed combination can, in some cases, be deleted from the combination, and the claimed combination may be directed to any component of the combination or variations of the components of the combination.
[0085] Similarly, although acts may be described herein as occurring in a particular order or manner, this should not be understood as requiring such acts to be performed in the particular order shown, or sequentially, or that all of the illustrated acts be performed, to achieve desirable results. In certain situations, multitasking and parallel processing may be advantageous. Also, the separation of various system components in the above embodiments should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems generally can be integrated together in a single software product or packaged into multiple software products.
[0086] Other embodiments are within the scope of the claims.
Claims
1. 1. A computer-based method for automatically generating one or more model-based definition (MBD) dimensions of a three-dimensional (3D) model for MBD based on one or more sketch dimensions, the method comprising: allowing a user to select dimensional information from a sketch or feature to be designated as significant; designating the selected dimensional information from the sketch as important sketch dimensional information; Mapping the critical sketch dimensional information to associated surfaces of a 3D shape derived from the sketch and the feature; automatically incorporating the critical dimensional information into the associated surfaces on the 3D shape while executing a dimensioning tool to annotate product manufacturing information (PMI) to other portions of the 3D model; A method comprising:
2. 2. The computer-based method of claim 1, wherein the automatic incorporation of the critical sketch dimensional information causes the 3D shape to be visible with annotations associated with the associated faces, the annotations reflecting the automatically incorporated critical dimensional information.
3. Mapping the critical sketch dimension information includes: identifying a plurality of faces associated with the selected dimensional information; identifying a face from the plurality of faces based on contextual information; Associating the one surface with the selected dimensional information; 2. The computer-based method of claim 1, comprising:
4. Mapping the critical sketch dimension information includes: identifying sketch elements to which the critical sketch dimensional information applies; identifying faces of the three-dimensional model derived from the identified sketch elements; 2. The computer-based method of claim 1, comprising:
5. identifying a direction vector of the identified surface; Identifying the orientation of the critical sketch dimensional information; The computer-based method of claim 4 further comprising:
6. identifying the faces associated with significant sketch dimension information based on the identified sketch elements, the identified faces derived from the identified sketch elements, the identified direction vectors, and the directions of the significant sketch dimensions; The computer-based method of claim 5 further comprising:
7. comparing the critical dimensional information to the distance between the identified faces to verify that the correct faces have been selected for applying the critical dimensional information to the 3D shape; 7. The computer-based method of claim 6, further comprising:
8. presenting the user with the option of annotating the other portions of the 3D model using either manual or automatic dimensioning tools; The computer-based method of claim 1 further comprising:
9. tagging a face identifier of the relevant face of the 3D model as significant; for every surface identifier tagged as important, examining a list of surface identifiers that includes said tagged surface identifier; Executing the dimensioning tool with the faces tagged with their face identifiers as important already treated as fully defined, so that the important sketch dimension information remains associated with those faces and appears as notes available for access in the 3D model for final MBD; The computer-based method of claim 1 further comprising:
10. 2. The computer-based method of claim 1, wherein the dimensioning tool is executed to fully define the 3D model for MBD, at which point the 3D model for MBD has a PMI and is fully capable of manufacturing based entirely on the 3D model for MBD and the PMI contained therein.
11. 2. The computer-based method of claim 1, wherein the dimensional information from the sketch is selected from the group consisting of dimensions or dimensions and tolerances, and the dimensional information applies to either sketch elements or features applied to the sketch.
12. outputting a file based on the 3D model for MBD to a real-world machine for automated manufacturing of the product represented by the 3D model for MBD; manufacturing the product using the real-world machine; The computer-based method of claim 1 further comprising:
13. 1. A system comprising: a computer system, the computer system comprising: A computer processor; a computer-based memory operatively connected to the computer processor; The computer-based memory stores computer-readable instructions that, when executed by the computer processor, cause the computer system to: allowing a user to select dimensional information from a sketch or feature to be designated as significant; designating the selected dimensional information from the sketch as important sketch dimensional information; Mapping the critical sketch dimensional information to associated surfaces of a 3D shape derived from the sketch and the feature; automatically incorporating the critical dimensional information into the associated surfaces on the 3D shape while executing a dimensioning tool to annotate product manufacturing information (PMI) to other portions of the 3D model; A system for automatically generating model-based definition (MBD) dimensions using sketch dimensions using a process including:
15. Mapping the critical sketch dimension information includes: identifying sketch elements to which the critical sketch dimensional information applies; identifying faces of the three-dimensional model derived from the identified sketch elements; identifying a direction vector of the identified surface; Identifying the orientation of the critical sketch dimensional information; identifying the faces associated with significant sketch dimension information based on the identified sketch element, the identified faces derived from the identified sketch element, the identified direction vector, and the direction of the significant sketch dimension; The system of claim 1 , comprising:
16. Mapping the critical sketch dimension information includes: comparing the critical dimensional information with the distance between the identified faces to verify that the correct faces have been selected for applying the critical dimensional information to the 3D shape; 16. The system of claim 15, further comprising:
17. The process comprises: tagging a face identifier of the relevant face of the 3D model as significant; for every surface identifier tagged as important, examining a list of surface identifiers that includes said tagged surface identifier; Executing the dimensioning tool with the faces whose face identifiers are tagged as important already treated as fully defined, so that the important sketch dimension information remains associated with those faces and appears as notes available for access in the 3D model for final MBD; The system of claim 1 further comprising:
18. and a real-world machine configured for automated manufacturing of the product represented by the 3D model for the final MBD, wherein the computer is configured to output a file based on the 3D model for MBD to the real-world machine for automated manufacturing of the product represented by the 3D model for MBD. The system of claim 1.
19. A non-transitory computer-readable medium having computer-readable instructions stored thereon, the computer-readable instructions, when executed by a computer-based processor, causing the computer-based processor to: allowing a user to select dimensional information from a sketch or feature to be designated as significant; designating the selected dimensional information from the sketch as important sketch dimensional information; Mapping the critical sketch dimensional information to associated faces of a 3D shape derived from the sketch and the feature; automatically incorporating the critical dimensional information into the associated surfaces on the 3D shape while executing a dimensioning tool to annotate product manufacturing information (PMI) to other portions of the 3D model; 1. A non-transitory computer-readable medium for automatically generating model-based definition (MBD) dimensions using sketch dimensions using a process including: