Physical products are often designed with particular specifications. For example, a mechanical device may include a design with specific dimensions so that the mechanical device functions properly in a system. Designers or engineers may use drawings or depictions of the product to capture the specifications of that product. Examples of tools to capture depictions of products can include a digital document in various formats (e.g., in portable document format (PDF), a slideshow format (Microsoft PowerPoint®) or in an electronic image file (e.g., bitmap (BMP), Joint Photographic Experts Group (JPEG)). Another example tool to capture the specifications of a product can include Computer Aided Design (CAD) model files (e.g. standard triangle language (STL), standard for the exchange of product model data (STEP)) produced by various sources, such as Dassault® or Siemens®.
Many designers of physical products work with manufacturers to manufacture the physical products with the particular specifications. Examples of such manufacturers can include machine shops, contractors, contract manufacturers, etc. The manufacturer may inspect design documents (e.g., PDF document, CAD models) to evaluate manufacturability of a product before beginning the manufacturing process.
The drawings and tables depict various embodiments for illustration only. Those skilled in the art will recognize that alternative embodiments may be employed without departing from the principles of the technology. Accordingly, while specific embodiments are shown in the drawings, the technology is amenable to various modifications.
Various examples of the invention will now be described. The following description provides certain specific details for a thorough understanding and enabling description of these examples. One skilled in the relevant technology will understand, however, that the invention can be practiced without many of these details. Likewise, one skilled in the relevant technology will also understand that the invention can include many other obvious features not described in detail herein. Additionally, some well-known structures or functions may not be shown or described in detail below, to avoid unnecessarily obscuring the relevant descriptions of the various examples.
The terminology used below is to be interpreted in its broadest reasonable manner, even though it is being used in conjunction with a detailed description of certain specific examples of the invention. Indeed, certain terms may even be emphasized below; however, any terminology intended to be interpreted in any restricted manner will be overtly and specifically defined as such in this Detailed Description section.
Generally, engineers who wish to have a design or part manufactured will contact machine shops, manufacturers, and contract manufacturers. The design will contain features or areas that are either manufacturable as designed, manufacturable if modified in some way, or strictly not manufacturable. As a part of an intake and quoting process, the contract manufacturers or machine shops provide feedback to the engineer in the form of design for manufacturability (DFM) feedback, design for assembly (DFA) feedback, design for cost (DFC) feedback, design for testability (DFT) feedback, or other design analysis, which are collectively referred to herein as DFX feedback. This DFX feedback is usually conveyed to the engineer through various means, whether through direct modification of computer-aided design (CAD) files, marking up of the 2D drawing (a two-dimensional representation of the 3D model as seen from various views), or by creating slideshow-style presentations (e.g. using a software such as Microsoft PowerPoint). These presentations often include screenshots of the 3D model taken from inside CAD software; the 3D model can be orientated in various ways, perhaps with areas of interest highlighted via use of textures or selection of faces, edges, or vertices.
However, 3D viewers have limited interactivity, with typical interaction types limited to selecting faces of rendered 3D objects, capturing cross-sectional views, and manipulating camera controls to view a rendered 3D object from different angles. If a manufacturer wants to relate more complicated DFX information to an engineer, the manufacturer typically must leave the 3D graphics platform and introduce any number of external tools (CAD tools, image manipulation tools, Microsoft Powerpoint, etc.) in order to communicate DFX feedback to the customer by using slideshows.
Example screenshots and associated markup are shown in
The process of generating DFX feedback as shown in
To solve these problems, a design analysis system according to various implementations herein includes annotation tools enabling a user to mark up a three- dimensional model within the context of a 3D viewer. The user loads a model (such as a CAD file) into the analysis system, marks up the rendered image of the 3D model within the context of the 3D viewer, and saves the state of the viewer or website in a database in association with the markup of the image. The design analysis system uses this saved state data to recreate the canvas as marked up by the user, for example enabling an administrator to show it to the customer within the viewer without loss in quality or clarity. Because the viewer is interactive, the customer can also then immediately manipulate the viewer to inspect regions of their 3D model around the areas annotated by the administrator.
The design analysis system 420 includes a 3D graphics viewer comprising software that is capable of rendering and displaying an interactive 3D model specified in a CAD file. The viewer displays the rendered model in a graphical user interface (e.g., a canvas) that enables a user to manipulate the rendered model, including rotating the model in three dimensions and zooming in or out. The viewer can additionally include functionality to change colors, textures, or transparencies of surfaces, edges, or vertices of a rendered model, capture cross-sections of the rendered model, or change the relative positioning of sub-components of the model. The state of the viewer—including camera rotation, camera position, camera center of orbit, camera look target, object state (such as face and edge colors, transparency, or textures), state of its annotations (such as position, textures, or types of annotations), or state of special visualizations (including additional 2D or 3D objects in scene such as a color-bar)—can be captured and stored by the design analysis system 420 at various times in order to reproduce a given viewer state. In some implementations, the 3D graphics viewer is accessible over the Internet, for example as a web application that is displayed on an electronic device of a user. Other implementations of the viewer are built into a CAD tool that, in addition to a viewer to render a 3D model, includes editing software to create and modify the 3D model.
The design analysis system 420 can further include an annotation subsystem that interacts with the 3D graphics viewer to enable annotation of rendered objects within the viewer. Some implementations of the annotation subsystem include one or more application programming interfaces (APIs) for generating and rendering graphical annotations, which are called by the 3D viewer in response to user interaction with the viewer. For example, the 3D graphics viewer can leverage libraries or APIs associated with Web Graphics Library (WebGL), such as Three.js or Two.js, to generate a freeform annotation tool usable to produce markup for display within the context of the viewer. The APIs dynamically or statically draw shapes, lines, text, or other annotations associated with the rendered model in response to inputs from a user.
Some implementations of the annotation subsystem include a web-based annotation layer displayed to overlap the canvas of the 3D viewer. The user can switch control between the canvas and the annotation layer to manipulate the rendered model and annotate the model. By way of example, the 3D viewer can include annotation layer graphics held in a transparent markup language element, displayed over another markup language element holding the canvas. Control switches between the canvas element and the annotation element as the user manipulates the model and adds or modifies annotations.
The annotation subsystem generates annotation data in response to user inputs. Such annotation data can include text as well as two-dimensional or three-dimensional shapes or objects drawn within the graphics viewer. User inputs can further customize properties of the annotations, such as colors, sizes, line widths, surface textures, or transparency. Three-dimensional entities, such as spheres, cones, or planes, can be displayed such that they move or zoom with the model if the model is manipulated within 3D space. Two-dimensional entities, such as a transparent <canvas> or <div> HTML element, can be overlaid on the 3D model.
The design analysis system 420 performs design analysis (DFX) and production parameters analysis based on models uploaded to the design analysis system 420 and user annotations to the models. The DFX analysis can include automated analysis by the design analysis system 420 (e.g., by applying a set of rules), human analysis facilitated by the design analysis system 420, or both, and is used to evaluate any of a variety of parameters related to the manufacturability of a product based on the design file that is uploaded. For example, the DFX analysis can include verifying that the design itself satisfies a set of constraints corresponding to the method of manufacturing selected by the user (such as all walls in the design having at least a specified minimum wall thickness, sufficient support structures, adequate tolerances, or the like), verifying that the material selected for the product is compatible with the selected method of manufacturing, or assessing whether the selected material will satisfy design constraints such as mechanical or thermal properties. The production parameters analysis performed by the design analysis system 420 includes a calculation of the parameters of production, based on the features of the product that are specified by the design file or modified during DFX analysis. These production parameters include, for example, the cost of materials for the product, the labor cost to manufacture the product, and the amount of time needed to manufacture the product. As part of the production parameter analysis, the design analysis system 420 can estimate manufacturing complexity (labor hours, material size, etc.), identify potential areas that might be problematic for manufacturing, and detect special requirements of the user or the design.
The user devices 410 are devices usable to interact with the design analysis system 420. The user devices 410 can each include an application that facilitates interaction with the 3D viewer and annotation subsystem, such as a browser application. Users can use the devices 410 to upload files to the design analysis system 420, annotate models, view and approve annotations, or interact with other users to perform DFX and pricing analysis of models. The user devices 410 can include any of a variety of types of devices that are capable of receiving users inputs, outputting information to a user, and communicating over a network, include desktop computers, laptop computers, tablets, mobile phones, smart televisions, or augmented or virtual reality systems.
A reviewing user of the design analysis system 420 (referred to herein as a “reviewer”) can use the 3D viewer to review parts and leave manufacturability feedback or updates to the production parameters of the parts at block 446.
In the example shown in
The customer will then be able to review the DFX feedback at block 448, including any additional increases of costs or lead times, changes to materials or dimensions, or other changes to the design file.
If the customer approves the change implicated by the annotation, the customer can select an “Accept feedback” button 542. If the customer would prefer to upload a new model or chat with the reviewer about the annotations, the customer can select an “Upload revision” button 544 or a “Chat” button 546. When a new version of the model is uploaded, the design analysis system 420 can identify any differences between the previous version and the new version and display the differences on a rendered version of the model. For example, the design analysis system 420 can render modified components in different colors than unchanged components. In another example, the design analysis system 420 can render a translucent image of the previous version of a component on top of an opaque image of the current version to illustrate the differences between the previous and current versions.
Approved changes can be incorporated into a manufacturing drawing at block 450, which is a two-dimensional representation of the part which serves as the contract of the thing to be manufactured, often in PDF format. The design analysis system 420 can create a manufacturing drawing that reflects the annotations as seen in the 3D viewer, as shown for example in
In some implementations, the design analysis system 420 automatically incorporates into the manufacturing drawings at least some of the modifications that are specified by annotations. The design analysis system 420 can use any of a variety of techniques such as natural language processing, image processing, or analysis of geometric and topological features, to identify a feature within an annotated model and determine how the feature should be modified based on the annotation. In an example, an annotation includes a highlight of an edge on a 3D model and text indicating that the edge will be produced with a specified fillet size. The text of the annotation is processed (e.g., using natural language processing) to determine that a fillet should be applied to an edge and to extract the specified fillet size. The design analysis system 420 then uses image processing and geometric/topological analysis to identify the highlighted edge on the 3D model. When generating the manufacturing drawing, the design analysis system 420 can automatically modify the identified edge to show the specified fillet size. Text indicating the specified fillet size can also be added to the manufacturing drawing.
The manufacturing drawing can be stored in a cloud repository for later review by the customer, the reviewer, or the manufacturer. The initially uploaded CAD files as well as any automatically generated files such as the system generated manufacturing drawings and any converted files (such as files converted from native cad formats to standard CAD format) can be sent to the manufacturer to be used for the manufacturing of the parts or assemblies.
Should a customer choose to have a conversation with the reviewer about the feedback of their part, or leave special requirements of their own, they can similarly annotate the drawing in the 3D viewer. The stored annotations can be retrieved from the database and displayed in the 3D viewer.
Annotations can be made in an asynchronous manner, where the reviewer, the customer, and/or the manufacturer access the drawing at different times to review each other's annotations or create their own annotations. In some implementations, the design analysis system 420 presents the annotations in separate layers that can each be toggled on or off to display, for example, annotations received from different users, annotations with different category labels, or annotations added since the user last reviewed the drawing. In other cases, annotations are made in a live environment where the customer, the reviewer, and/or the manufacturer are all viewing the 3D model at the same time, and in some cases can annotate simultaneously as well. For example, review can be performed on a live video call where one user shares a browser window containing the 3D viewer with the other users on the call. In another example, multiple users join a shared virtual space (e.g., an XR, VR, MR, or AR space) where each user can concurrently interact with and annotate the model. An example of a shared virtual space 570 is shown in
In still other cases, annotations and DFX feedback are displayed as a slideshow either in the 3D viewer environment or exported to an external application, such as in a portable document format (PDF) or Microsoft Powerpoint presentation. An example portion of a slideshow is shown in
The processing system 600 can include one or more central processing units (“processors”) 602, main memory 606, non-volatile memory 610, network adapter 612 (e.g., network interface), video display 618, input/output devices 620, control device 622 (e.g., keyboard and pointing devices), drive unit 624 including a storage medium 626, and signal generation device 640 that are communicatively connected to a bus 616. The bus 616 is illustrated as an abstraction that represents one or more physical buses and/or point-to-point connections that are connected by appropriate bridges, adapters, or controllers. The bus 616, therefore, can include a system bus, a Peripheral Component Interconnect (PCI) bus or PCI-Express bus, a HyperTransport or industry standard architecture (ISA) bus, a small computer system interface (SCSI) bus, a universal serial bus (USB), IIC (I2C) bus, or an Institute of Electrical and Electronics Engineers (IEEE) standard 1394 bus (i.e., “Firewire”).
The processing system 600 can share a similar computer processor architecture as that of a desktop computer, tablet computer, personal digital assistant (PDA), smartphone, game console, music player, wearable electronic device (e.g., a watch or fitness tracker), network-connected (“smart”) device (e.g., a television or home assistant device), virtual/augmented reality systems (e.g., a head-mounted display), or another electronic device capable of executing a set of instructions (sequential or otherwise) that specify action(s) to be taken by the processing system 600.
While the main memory 606, non-volatile memory 610, and storage medium 626 (also called a “machine-readable medium”) are shown to be a single medium, the term “machine-readable medium” and “storage medium” should be taken to include a single medium or multiple media (e.g., a centralized/distributed database and/or associated caches and servers) that store one or more sets of instructions 628. The term “machine-readable medium” and “storage medium” shall also be taken to include any medium that is capable of storing, encoding, or carrying a set of instructions for execution by the processing system 600.
In general, the routines executed to implement the embodiments of the disclosure can be implemented as part of an operating system or a specific application, component, program, object, module, or sequence of instructions (collectively referred to as “computer programs”). The computer programs typically comprise one or more instructions (e.g., instructions 604, 608, 628) set at various times in various memory and storage devices in a computing device. When read and executed by the one or more processors 602, the instruction(s) cause the processing system 600 to perform operations to execute elements involving the various aspects of the disclosure.
Moreover, while embodiments have been described in the context of fully functioning computing devices, those skilled in the art will appreciate that the various embodiments are capable of being distributed as a program product in a variety of forms. The disclosure applies regardless of the particular type of machine or computer-readable media used to actually effect the distribution.
Further examples of machine-readable storage media, machine-readable media, or computer-readable media include recordable-type media such as volatile and non- volatile memory devices 610, floppy and other removable disks, hard disk drives, optical disks (e.g., Compact Disk Read-Only Memory (CD-ROMS), Digital Versatile Disks (DVDs)), and transmission-type media such as digital and analog communication links.
The network adapter 612 enables the processing system 600 to mediate data in a network 614 with an entity that is external to the processing system 600 through any communication protocol supported by the processing system 600 and the external entity. The network adapter 612 can include a network adaptor card, a wireless network interface card, a router, an access point, a wireless router, a switch, a multilayer switch, a protocol converter, a gateway, a bridge, bridge router, a hub, a digital media receiver, and/or a repeater.
The network adapter 612 can include a firewall that governs and/or manages permission to access/proxy data in a computer network and tracks varying levels of trust between different machines and/or applications. The firewall can be any number of modules having any combination of hardware and/or software components able to enforce a predetermined set of access rights between a particular set of machines and applications, machines and machines, and/or applications and applications (e.g., to regulate the flow of traffic and resource sharing between these entities). The firewall can additionally manage and/or have access to an access control list that details permissions including the access and operation rights of an object by an individual, a machine, and/or an application, and the circumstances under which the permission rights stand.
The techniques introduced here can be implemented by programmable circuitry (e.g., one or more microprocessors), software and/or firmware, special-purpose hardwired (i.e., non-programmable) circuitry, or a combination of such forms. Special-purpose circuitry can be in the form of one or more application-specific integrated circuits (ASICs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), etc.
The techniques disclosed herein can include a tool or system to extract information from a design drawing to supplement the capabilities of a product manufacturing process. The present embodiments can assist in the generation/modification of a quote/estimate, the generation of manufacture feedback, the manufacturing scheduling/ordering process, etc.
Unless the context clearly requires otherwise, throughout the description and the claims, the words “comprise,” “comprising,” and the like are to be construed in an inclusive sense, as opposed to an exclusive or exhaustive sense; that is to say, in the sense of “including, but not limited to.” As used herein, the terms “connected,” “coupled,” or any variant thereof means any connection or coupling, either direct or indirect, between two or more elements; the coupling or connection between the elements can be physical, logical, or a combination thereof. Additionally, the words “herein,” “above,” “below,” and words of similar import, when used in this application, refer to this application as a whole and not to any particular portions of this application. Where the context permits, words in the above Detailed Description using the singular or plural number may also include the plural or singular number respectively. The word “or” in reference to a list of two or more items covers all of the following interpretations of the word: any of the items in the list, all of the items in the list, and any combination of the items in the list.
As used herein, the term “substantially” refers to the complete or nearly complete extent or degree of an action, characteristic, property, state, structure, item, or result. For example, an object that is “substantially” enclosed would mean that the object is either completely enclosed or nearly completely enclosed. The exact allowable degree of deviation from absolute completeness may in some cases depend on the specific context. However, generally speaking the nearness of completion will be so as to have the same overall result as if absolute and total completion were obtained. The use of “substantially” is equally applicable when used in a negative connotation to refer to the complete or near complete lack of an action, characteristic, property, state, structure, item, or result.
The above Detailed Description of examples of the invention is not intended to be exhaustive or to limit the invention to the precise form disclosed above. While specific examples for the invention are described above for illustrative purposes, various equivalent modifications are possible within the scope of the invention, as those skilled in the relevant art will recognize. For example, while processes or blocks are presented in a given order, alternative implementations may perform routines having steps, or employ systems having blocks, in a different order, and some processes or blocks may be deleted, moved, added, subdivided, combined, and/or modified to provide alternative or subcombinations. Each of these processes or blocks may be implemented in a variety of different ways. Also, while processes or blocks are at times shown as being performed in series, these processes or blocks may instead be performed or implemented in parallel or may be performed at different times. Further any specific numbers noted herein are only examples: alternative implementations may employ differing values or ranges.
The teachings of the invention provided herein can be applied to other systems, not necessarily the system described above. The elements and acts of the various examples described above can be combined to provide further implementations of the invention. Some alternative implementations of the invention may include not only additional elements to those implementations noted above, but also may include fewer elements.
These and other changes can be made to the invention in light of the above Detailed Description. While the above description describes certain examples of the invention, and describes the best mode contemplated, no matter how detailed the above appears in text, the invention can be practiced in many ways. Details of the system may vary considerably in its specific implementation, while still being encompassed by the invention disclosed herein. As noted above, particular terminology used when describing certain features or aspects of the invention should not be taken to imply that the terminology is being redefined herein to be restricted to any specific characteristics, features, or aspects of the invention with which that terminology is associated.
This application claims the benefit of U.S. Provisional Application No. 63/126,957, filed Dec. 17, 2020, which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
63126957 | Dec 2020 | US |