Generally, the invention relates to Boundary Representation (B-Rep) models. More specifically, the invention relates to a system and method for identifying contact features of Boundary Representation (B-Rep)-based Computer Aided Design (CAD) models.
Typically, a Boundary representation (B-Rep) Computer Aided Design (CAD) model of a mechanical part includes faces, edges, and vertices. The faces, the edges, and the vertices may be connected to form a topological structure of the mechanical part. Information of the B-Rep model of the mechanical part may be stored in a graph structure. In the graph structure, each node represents a face, and each link/connection represents an edge. This type of representation helps in evaluating properties of the mechanical part. The properties may include mass, volume, moment of inertia, and the like. Additionally, such B-Rep models enable computer-based analysis of stress and strains in the mechanical part under different loading conditions. Further, a B-Rep model may also be cut and examined in a manner like an actual part. Therefore, the B-Rep model of the mechanical part is known as a solid model.
Today, various software based on solid modeling are widely used by engineers to create models of the mechanical parts that are intended to eventually be manufactured. Examples of the software may include SolidWorks® and Catia® (Dassault Systems®), Creo Parametric® (PTC®), and the like.
A B-Rep-based CAD model (referred as a body) of mechanical parts may include one or more bodies. If two bodies are touching or in proximity of a specified tolerance value, then the relationship between the two bodies is said to be in contact. Also, in case of a single body, if different regions are touching or in proximity of a specified tolerance value, then the relationship between those regions is said to be in contact. Analysis of such contact features is essential in industries, for example, to determine a type of joining method (such as welding, brazing, etc.) to be used to achieve the final product corresponding to the bodies. Such analysis helps in estimating the time and cost required in production. Additionally, when the contact features are known, the production process can also be automated.
The conventional techniques fail to address such analysis of the contact features between solid models. The present invention is directed to overcome one or more limitations associated with the known arts.
In one embodiment, a method for identifying contact features of Boundary Representation (B-Rep)-based Computer Aided Design (CAD) models is disclosed. The method may include, for each body of a plurality of bodies, determining a body type associated with the body from a plurality of body types based on information extracted from a boundary representation of the body. Each of the plurality of bodies may be a B-Rep-based CAD model, and each of the plurality of body types may be one of an invalid body type and a valid body type. The method may further include identifying one or more associated body pairs from a set of valid bodies based on a proximity between each two of the set of valid bodies and a predefined threshold proximity. The body type of each of the set of valid bodies may be the valid body type. The method may further include, for each of the one or more associated body pairs, identifying one or more face pairs for each body of the one or more associated body pairs based on a single-body criteria, and for each pair of the one or more associated body pairs based on a multi-body criteria. The method may further include identifying a set of contact features and corresponding contact parameters from each of the one or more face pairs based on a plurality of user control parameters.
In another embodiment, a system for identifying contact features of B-Rep-based CAD models is disclosed. The system may include a processor and a memory communicatively coupled to the processor. The memory may store processor-executable instructions, which on execution, may further cause the processor to, for each body of a plurality of bodies, determine a body type associated with the body from a plurality of body types based on information extracted from a boundary representation of the body. Each of the plurality of bodies may be a B-Rep-based CAD model, and each of the plurality of body types may be one of an invalid body type and a valid body type. The processor-executable instructions, on execution, may further cause the processor to identify one or more associated body pairs from a set of valid bodies based on a proximity between each two of the set of valid bodies and a predefined threshold proximity. The body type of each of the set of valid bodies may be the valid body type. The processor-executable instructions, on execution, may further cause the processor to, for each of the one or more associated body pairs, identify one or more face pairs for each body of the one or more associated body pairs based on a single-body criteria, and for each pair of the one or more associated body pairs based on a multi-body criteria. The processor-executable instructions, on execution, may further cause the processor to identify a set of contact features and corresponding contact parameters from each of the one or more face pairs based on a plurality of user control parameters.
In yet another embodiment, a non-transitory computer-readable medium storing computer-executable instructions for identifying contact features of B-Rep-based CAD models is disclosed. The stored instructions, when executed by a processor, may cause the processor to perform operations including, for each body of a plurality of bodies, determining a body type associated with the body from a plurality of body types based on information extracted from a boundary representation of the body. Each of the plurality of bodies may be a B-Rep-based CAD model, and each of the plurality of body types may be one of an invalid body type and a valid body type. The operations may further include identifying one or more associated body pairs from a set of valid bodies based on a proximity between each two of the set of valid bodies and a predefined threshold proximity. The body type of each of the set of valid bodies may be the valid body type The operations may further include, for each of the one or more associated body pairs, identifying one or more face pairs for each body of the one or more associated body pairs based on a single-body criteria, and for each pair of the one or more associated body pairs based on a multi-body criteria. The operations may further include identifying a set of contact features and corresponding contact parameters from each of the one or more face pairs based on a plurality of user control parameters.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed.
The present application can be best understood by reference to the following description taken in conjunction with the accompanying drawing figures, in which like parts may be referred to by like numerals
The following description is presented to enable a person of ordinary skill in the art to make and use the invention and is provided in the context of particular applications and their requirements. Various modifications to the embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the invention. Moreover, in the following description, numerous details are set forth for the purpose of explanation. However, one of ordinary skill in the art will realize that the invention might be practiced without the use of these specific details. In other instances, well-known structures and devices are shown in block diagram form in order not to obscure the description of the invention with unnecessary detail. Thus, the present invention is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
While the invention is described in terms of particular examples and illustrative figures, those of ordinary skill in the art will recognize that the invention is not limited to the examples or figures described. Those skilled in the art will recognize that the operations of the various embodiments may be implemented using hardware, software, firmware, or combinations thereof, as appropriate. For example, some processes can be carried out using processors or other digital circuitry under the control of software, firmware, or hard-wired logic. (The term “logic” herein refers to fixed hardware, programmable logic and/or an appropriate combination thereof, as would be recognized by one skilled in the art to carry out the recited functions). Software and firmware can be stored on computer-readable storage media. Some other processes can be implemented using analog circuitry, as is well known to one of ordinary skill in the art. Additionally, memory or other storage, as well as communication components, may be employed in embodiments of the invention.
Referring now to
To identify the contact features, the system 100 may include a feature identification device 101. The feature identification device 101 may perform various operations, for which the feature identification device 101 may further include a body-type determination module 102, a body-pair identification module 103, a face-pair identification module 104, and a contact feature identification module 105. Further, the feature identification device 101 may also include a data store 106 to store data and intermediate results generated by the modules 102-105.
The body-type determination module 102 may be configured to receive information 107 extracted from a boundary representation of a body. In some embodiment, the information may be stored in the data store 106 from where the body-type determination module 102 may extract the information upon requirement. Further, in some embodiments, the body-type determination module 102 may be configured to determine a body type associated with the body from a plurality of body types based on the information. This may be performed for each body of a plurality of bodies. It should be noted that each of the plurality of bodies may be a B-Rep-based CAD model. Also, it should be noted that each of the plurality of body types may be one of an invalid body type and a valid body type. The invalid body type may include a non-manifold body type, a multi-part body type, a surface body type, or a wire body type. Further, the body-type determination module 102 may be communicatively coupled to the body-pair identification module 103 to transmit valid bodies. Also, the body-type determination module 102 may be communicatively coupled to the data store 106 to transmit information about the determined body types (i.e., a set of valid bodies and a set of invalid bodies).
The body-pair identification module 103 may be configured to identify one or more associated body pairs from the set of valid bodies based on a proximity between each two of the set of valid bodies and a predefined threshold proximity. The body type of each of the set of valid bodies may be the valid body type. In particular, to identify the one or more body-pairs, the set of valid bodies may be received by the body-pair identification module 103 from the body-type determination module 102 or extracted from the data store 106. Further, the body-pair identification module 103 may calculate the proximity between boundary envelopes of the two bodies, for each two bodies of the set of valid bodies. Further, in an embodiment, the body-pair identification module 103 may establish the two bodies as an associated body pair when the proximity is within the predefined threshold proximity. In an alternative embodiment, the body-pair identification module 103 may establish the two bodies as a non-contacting body pair when the proximity is not within the predefined threshold proximity. The body-pair identification module 103 may be operatively coupled to the face-pair identification module 104 and the data store 106.
In one embodiment, the face-pair identification module 104 may be configured to identify one or more face pairs for each body of the one or more associated body pairs based on a single-body criteria. To identify the one or more face pairs based on the single-body criteria, if the proximity between two faces of the body is within the predefined threshold proximity may be determined, for each body of each of the one or more associated body pairs. In another embodiment, the face-pair identification module 104 may be configured to identify one or more face pairs for each pair of the one or more associated body pairs based on a multi-body criteria. To identify the one or more face pairs based on the multi-body criteria, if the proximity between a face of each of the body pair is within the predefined threshold proximity may be determined, for each body pair of the one or more associated body pairs. The face-pair identification module 104 may be communicatively coupled to the contact feature identification module 105 and the data store 106.
The contact feature identification module 105 may be configured to identify a set of contact features from each of the one or more face pairs, which may be rendered as an output 108 to a user. It should be noted that a plurality of user control parameters may be considered to identify the set of contact features. The set of contact features may include contact parameters. The contact parameters may include one or more contact types, one or more contact entities, and one or more contact regions. Further, it should be noted that the one or more contact types may be at least one of a face-face contact type, a face-vertex contact type, a face-edge contact type, an edge-edge contact type, an edge-vertex contact type, and a vertex-vertex contact type. Also, it should be noted that the one or more contact regions may include a two-dimensional (2D) contact region, a one-dimensional (1D) contact region, and a zero-dimensional (0D) contact region.
The feature identification device 101 may also include a validation module (not shown in
It should be noted that the system 100 and associated feature identification device 101 may be implemented in programmable hardware devices such as programmable gate arrays, programmable array logic, programmable logic devices, or the like. Alternatively, the system 100 and the feature identification device 101 may be implemented in software for execution by various types of processors. An identified engine/module of executable code may, for instance, include one or more physical or logical blocks of computer instructions which may, for instance, be organized as a component, module, procedure, function, or other construct. Nevertheless, the executables of an identified engine/module need not be physically located together but may include disparate instructions stored in different locations which, when joined logically together, comprise the identified engine/module and achieve the stated purpose of the identified engine/module. Indeed, an engine or a module of executable code may be a single instruction, or many instructions, and may even be distributed over several different code segments, among different applications, and across several memory devices.
As will be appreciated by one skilled in the art, a variety of processes may be employed for identifying the contact features of the B-Rep-based CAD models. For example, the exemplary system 100 and associated feature identification device 101 may identify the contact features of the B-Rep-based CAD models, by the process discussed herein. In particular, as will be appreciated by those of ordinary skill in the art, control logic and/or automated routines for performing the techniques and steps described herein may be implemented by the system 100 and feature identification device 101 either by hardware, software, or combinations of hardware and software. For example, suitable code may be accessed and executed by the one or more processors on the feature identification device 101 to perform some or all of the techniques described herein. Similarly, application specific integrated circuits (ASICs) configured to perform some or all the processes described herein may be included in the one or more processors on the system 100 and associated feature identification device 101.
Referring now to
At step 201, a body type associated with the body from a plurality of body types may be determined through the body-type determination module 102. This step may be performed for each body of a plurality of bodies. It should be noted that information (for example the information 107) extracted from a boundary representation of the body may be used to determine the body type. Further, each of the plurality of bodies may be a B-Rep-based CAD model and each of the plurality of body types may be one of an invalid body type and a valid body type. It should be noted that the invalid body type may be one of a non-manifold body type, a multi-part body type, a surface body type, or a wire body type.
In other words, an input including B-rep based CAD models corresponding to the plurality of bodies may be received. Further, each body may be checked if it defines a valid body. Standard checks for a B-rep based CAD model may be applied to check validity of the body data structure. Bodies failing the check may be referred to as invalid bodies and ignored for contact feature identification.
A body that is not manufactured by a conventional process may be considered as a non-manifold body, and standard checks provided by commercially available Solid Modeling software may be applied to determine this category of the body. Further, a body that includes disconnected volumetric regions may be considered as a multi-part body. A body that includes a single face or a connected set of faces that do not enclose a volume, may be considered as a surface body. It may be noted that a wire body includes a single edge or a connected set of edges that may not enclose an area. Predefined algorithms may be used to detect disconnected volumetric regions in the body, the surface body, and the wire body.
At step 202, one or more associated body pairs may be identified from a set of valid bodies based on a proximity between each two of the set of valid bodies and a predefined threshold proximity. This step may be performed through the body-pair identification module 103. The body type of each of the set of valid bodies is the valid body type. In some embodiments, the set of valid bodies may be received from the body type determination module 102. Further, the proximity between boundary envelopes of the two bodies may be calculated for each two bodies of the set of valid bodies. Thereafter, the two bodies may be established as an associated body pair when the proximity is within the predefined threshold proximity, or a non-contacting body pair when the proximity is not within the predefined threshold proximity.
In other words, a body and its associated body may be identified using boundary envelopes of the bodies. If the boundary envelopes of these two bodies are touching or overlapping, and the proximity between the bodies is within the predefined threshold proximity, then a pair of these bodies may be considered as an associated body pair for finding the contacts between them.
At step 203, one or more face pairs may be identified for each of the one or more associated body pairs through the face-pair identification module 104. The one or more face pairs may be identified for each body of the one or more associated body pairs based on a single-body criteria and for each pair of the one or more associated body pairs based on a multi-body criteria. Further, in some embodiments, if the proximity between two faces of the body is within the predefined threshold proximity may be determined for each body of each of the one or more associated body pairs, for identifying the one or more face pairs based on the single-body criteria. Additionally, in some embodiments, if the proximity between a face of each of the body pair is within the predefined threshold proximity may be determined for each body pair of the one or more associated body pairs, to identify the one or more face pairs based on the multi-body criteria.
In other words, associated body pairs may be processed through to the face-pair identification module 104. Each body in the associated body pair may be processed first to find face-pairs for single body contact scenario, and then to find face-pairs for multibody contact scenario. Criteria for identifying the face pairs for the single body contact scenario is that the bounding envelope of faces of a body should be touching or overlapping and proximity between the faces should be within the predefined threshold proximity. It should be noted that adjacent faces may not be considered while finding the face pairs
Moreover, a criteria for identifying the face pairs for the multi-body contact scenario is that the bounding envelope of a face of one body within an associated body pair should be touching or overlapping a face of another body within the associated body pair and the proximity between the faces should be within the predefined threshold proximity.
Thereafter, at step 204, a set of contact features including contact parameters may be identified through the contact feature identification module 105. The contact features may be identified from each of the one or more face pairs and based on a plurality of user control parameters. The contact parameters may include one or more contact types, one or more contact entities, and one or more contact regions. The user control parameters may include the predefined threshold proximity and contact types. By way of an example, the predefined threshold proximity may be set by the user and may modified when required. By way of another example, the user may provide inputs on types of contacts. The user control parameters may include the predefined threshold proximity and contact types. By way of an example, the predefined threshold proximity may be set by the user and may be modified when required. By way of another example, the user may provide inputs on types of contacts.
Further, the one or more contact types may include at least one of a face-face contact type, a face-vertex contact type, a face-edge contact type, an edge-edge contact type, an edge-vertex contact type, and a vertex-vertex contact type. The one or more contact regions may include a 2D contact region, a 1D contact region, and a 0D contact region.
In other words, the face pairs identified in both scenarios may be processed further to the contact feature identification module 105, to find the contact type in the face pairs based on user provided contact types. For example, for the face-face contact type, one face should overlap the second face. For the face-edge contact type, one face should overlap any of edges of the second face or vice versa. For the face-vertex contacts type, any of vertices of the first face should lie inside the second or vice versa. For the edge-edge contact type, edges of the first face should overlap edges of the second face or vice versa. For the edge-vertex contacts type, any of vertices of the first Face should lie between end points of edges of the second face or vice versa. For the vertex-vertex contact type, any of vertices of the first face should lie on any of vertices of the second face.
Thereafter, in some embodiments, each of the one or more contact types may be validated based on the corresponding one or more contact regions. It should be noted that the face-face contact type may correspond to the 2D contact region. Each of the face-edge contact type and the edge-edge contact type may correspond to the 1D contact region. Each of the face-vertex contact type, the edge-vertex contact type, and the vertex-vertex contact type may correspond to the 0D contact region.
For example, contact region should be the valid 2-D contact region with some area, for validation of the face-face contact type. The contact region should be a valid 1-D contact region, for the face-edge contact type and the edge-edge contact type. Further, for example, the contact region should be a valid 0-D contact region, for the edge-vertex contact type, the vertex-vertex contact type, and the face-vertex contact type.
Referring now to
Referring now to
In
In
Referring to
Referring to
Referring now to
Referring now to
The disclosed methods and systems may be implemented on a conventional or a general-purpose computer system, such as a personal computer (PC) or server computer. Referring now to
The computing system 700 may also include a memory 703 (main memory), for example, Random Access Memory (RAM) or other dynamic memory, for storing information and instructions to be executed by the processor 701. The memory 703 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by the processor 701. The computing system 700 may likewise include a read only memory (“ROM”) or other static storage device coupled to bus 702 for storing static information and instructions for the processor 701.
The computing system 700 may also include a storage device 704, which may include, for example, a media drives 705 and a removable storage interface. The media drive 705 may include a drive or other mechanism to support fixed or removable storage media, such as a hard disk drive, a floppy disk drive, a magnetic tape drive, an SD card port, a USB port, a micro USB, an optical disk drive, a CD or DVD drive (R or RW), or other removable or fixed media drive. A storage media 706 may include, for example, a hard disk, magnetic tape, flash drive, or other fixed or removable medium that is read by and written to by the media drive 705. As these examples illustrate, the storage media 706 may include a computer-readable storage medium having stored there in particular computer software or data.
In alternative embodiments, the storage devices 704 may include other similar instrumentalities for allowing computer programs or other instructions or data to be loaded into the computing system 700. Such instrumentalities may include, for example, a removable storage unit 707 and a storage unit interface 708, such as a program cartridge and cartridge interface, a removable memory (for example, a flash memory or other removable memory module) and memory slot, and other removable storage units and interfaces that allow software and data to be transferred from the removable storage unit 707 to the computing system 700.
The computing system 700 may also include a communications interface 709. The communications interface 709 may be used to allow software and data to be transferred between the computing system 700 and external devices. Examples of the communications interface 709 may include a network interface (such as an Ethernet or other NIC card), a communications port (such as for example, a USB port, a micro USB port), Near field Communication (NFC), etc. Software and data transferred via the communications interface 709 are in the form of signals which may be electronic, electromagnetic, optical, or other signals capable of being received by the communications interface 709. These signals are provided to the communications interface 709 via a channel 710. The channel 710 may carry signals and may be implemented using a wireless medium, wire or cable, fiber optics, or other communications medium. Some examples of the channel 710 may include a phone line, a cellular phone link, an RF link, a Bluetooth link, a network interface, a local or wide area network, and other communications channels.
The computing system 700 may further include Input/Output (I/O) devices 711. Examples may include, but are not limited to a display, keypad, microphone, audio speakers, vibrating motor, LED lights, etc. The I/O devices 711 may receive input from a user and also display an output of the computation performed by the processor 701. In this document, the terms “computer program product” and “computer-readable medium” may be used generally to refer to media such as, for example, the memory 703, the storage devices 704, the removable storage unit 707, or signal(s) on the channel 710. These and other forms of computer-readable media may be involved in providing one or more sequences of one or more instructions to the processor 701 for execution. Such instructions, generally referred to as “computer program code” (which may be grouped in the form of computer programs or other groupings), when executed, enable the computing system 700 to perform features or functions of embodiments of the present invention.
In an embodiment where the elements are implemented using software, the software may be stored in a computer-readable medium and loaded into the computing system 700 using, for example, the removable storage unit 707, the media drive 705 or the communications interface 709. The control logic (in this example, software instructions or computer program code), when executed by the processor 701, causes the processor 701 to perform the functions of the invention as described herein.
Thus, the present disclosure may overcome drawbacks of traditional systems discussed before. The present disclosure can be used in the manufacturing domain. For example, identified contact features may be utilized for various applications including selecting the most suitable joining method based on the contact type, determining welding time and cost, automation of welding path, and the like. The disclosure further helps in reducing the uncertainty in classification by considering user control parameters contact feature identification.
It will be appreciated that, for clarity purposes, the above description has described embodiments of the invention with reference to different functional units and processors. However, it will be apparent that any suitable distribution of functionality between different functional units, processors or domains may be used without detracting from the invention. For example, functionality illustrated to be performed by separate processors or controllers may be performed by the same processor or controller. Hence, references to specific functional units are only to be seen as references to suitable means for providing the described functionality, rather than indicative of a strict logical or physical structure or organization.
Although the present invention has been described in connection with some embodiments, it is not intended to be limited to the specific form set forth herein. Rather, the scope of the present invention is limited only by the claims. Additionally, although a feature may appear to be described in connection with particular embodiments, one skilled in the art would recognize that various features of the described embodiments may be combined in accordance with the invention.
Furthermore, although individually listed, a plurality of means, elements or process steps may be implemented by, for example, a single unit or processor. Additionally, although individual features may be included in different claims, these may possibly be advantageously combined, and the inclusion in different claims does not imply that a combination of features is not feasible and/or advantageous. Also, the inclusion of a feature in one category of claims does not imply a limitation to this category, but rather the feature may be equally applicable to other claim categories, as appropriate.
Number | Date | Country | Kind |
---|---|---|---|
202311016853 | Mar 2023 | IN | national |