This disclosure relates to modeling and interaction with the design of various components.
Computer-Aided Design (CAD) systems are known and may be utilized to generate two-dimensional and three-dimensional (3D) models of various components. The associated CAD files may be relatively large, which may impede transfer to other computing systems. A lightweight, tessellated representation of the CAD model may be generated and stored within a file that excludes the original CAD model. The file may be saved in a Portable Document Format (PDF) or another file format. A lightweight viewer may be utilized to view the lightweight representation.
A user interface for a lightweight viewer according to an example of the present disclosure includes a viewing window operable to display geometry established by one or more of geometric objects of a tessellated model. One or more annotation objects of the tessellated model are assigned information associated with the respective one or more geometric objects. The one or more annotation objects are operable to depict the respective information as a graphical annotation in the viewing window. A search window is established by a plurality of content objects of the tessellated model. The content objects include a query object and a results object dynamically linked to the query object. The query object establishes a query input field operable to query the information of the one or more annotation objects based on input in the query input field. The results object is operable to display a list of results meeting the query.
In a further embodiment of any of the foregoing embodiments, selection of a result from the list causes a depiction of the geometry to change in the viewing window.
A further embodiment of any of the foregoing embodiments includes a navigation window operable to display one or more view objects. The one or more view objects are associated with a respective depiction of the one or more geometric objects. The list of results includes the one or more view objects meeting the query. The viewing window is operable to display the depiction in response to selection of the associated result.
In a further embodiment of any of the foregoing embodiments, the one or more annotation objects include a plurality of annotation objects associated with one or more of the view objects.
In a further embodiment of any of the foregoing embodiments, the annotation objects include a first annotation object and a second annotation object associated with one or more different view objects.
In a further embodiment of any of the foregoing embodiments, the one or more annotation objects are associated with a set of annotation types. The content objects include one or more category search objects each associated with one or more of the annotation types. The category search objects are operable to limit the query to the respective one or more annotation types in response to user interaction.
In a further embodiment of any of the foregoing embodiments, the annotation types include an identifier annotation type and a datum annotation type.
In a further embodiment of any of the foregoing embodiments, the results object is associated with a counter object. The counter object is operable to indicate a quantity of results in the list.
In a further embodiment of any of the foregoing embodiments, the search window is spaced apart from, but concurrently displayed with, the viewing window.
In a further embodiment of any of the foregoing embodiments, the tessellated model excludes any CAD model associated with the geometry.
A system for generating a tessellated model according to an example of the present disclosure includes a computing device that has one or more processors coupled to memory. The computing device is operable to execute a modeling environment. The modeling environment is operable to access a computer-aided design (CAD) model associated with geometry, generate one or more geometric objects that establish a tessellation of the geometry, generate one or more annotation objects assigned information associated with the respective one or more geometric objects, and generate a plurality of content objects generate a tessellated model that has the one or more geometric objects, the one or more annotation objects and the content objects. The one or more geometric objects are operable to display the tessellation of the geometry in a viewing window of a user interface. The one or more annotation objects are operable to depict the respective information as a graphical annotation in the viewing window. The content objects are operable to establish a search window of the user interface. The content objects include a query object and a results object dynamically linked to the query object. The query object is operable to query the information of the one or more annotation objects in response to user input. The results object is operable to display a list of results meeting the query.
In a further embodiment of any of the foregoing embodiments, the search window is spaced apart from, but concurrently displayed with, the viewing window.
In a further embodiment of any of the foregoing embodiments, the one or more annotation objects are associated with a set of annotation types. The content objects include one or more category search objects each associated with one or more of the annotation types. The category search objects are operable to limit the query to the respective one or more annotation types in response to user interaction.
In a further embodiment of any of the foregoing embodiments, selection of a result from the list causes a depiction of the geometry to change in the viewing window.
In a further embodiment of any of the foregoing embodiments, the modeling environment is operable to store the tessellated model in a file readable by a lightweight viewer. The file excludes the CAD model.
In a further embodiment of any of the foregoing embodiments, the modeling environment is operable to store code in the file that is operable to cause one or more functions associated with the tessellated model to execute in the lightweight viewer.
A method of establishing a tessellated model according to an example of the present disclosure includes generating one or more geometric objects that establish a tessellation of geometry stored in a computer-aided design (CAD) model. The one or more geometric objects are operable to display the tessellation of the geometry in a viewing window of a user interface. The method includes generating one or more annotation objects. The method includes assigning information associated with the respective one or more geometric objects to the one or more annotation objects. The one or more annotation objects are operable to depict the respective information as a graphical annotation in the viewing window. The includes generating a plurality of content objects. The content objects are operable to establish a search window of the user interface. The content objects include a query object and a results object dynamically linked to the query object. The query object is operable to query the information of the one or more annotation objects in response to user input. The results object is operable to display a list of results meeting the query. The method includes generating a tessellated model including the one or more geometric objects, the one or more annotation objects and the content objects.
In a further embodiment of any of the foregoing embodiments, the results object is operable to causes a depiction of the geometry to change in the viewing window in response to selection of a result from the list.
A further embodiment of any of the foregoing embodiments includes assigning the one or more annotation objects to one or more annotation types. The content objects include one or more category search objects operable to limit the query based on annotation type in response to user interaction.
A further embodiment of any of the foregoing embodiments includes storing the tessellated model in a file that excludes the CAD model.
A further embodiment of any of the foregoing embodiments includes displaying the tessellated model in a lightweight viewer.
The present disclosure may include any one or more of the individual features disclosed above and/or below alone or in any combination thereof.
The various features and advantages of this disclosure will become apparent to those skilled in the art from the following detailed description. The drawings that accompany the detailed description can be briefly described as follows.
Like reference numbers and designations in the various drawings indicate like elements.
Display space in a model-based definition (MBD) lightweight viewer used to render a tessellated model may be limited. The geometric model may be associated with many requirements which may need to be presented to the user in a user interface. Showing all the information simultaneously may exceed the amount of display space that may be available in the user interface.
Two-dimensional (2D) drawings may contain charts to identify location of symbols used in the definition. MBD utilizing a 3D lightweight viewer may lack the capability and area to easily incorporate a similar chart, making it difficult for the user to find the location of symbols or other text referenced in the definition. In addition, searching objects within the 3D model itself may not be available utilizing functionality provided by the lightweight viewer itself.
Disclosed are techniques for searching the 2D and/or three-dimensional (3D) definition of the tessellated model based on input parameters. Search functionality embedded in a display window of the lightweight viewer may present information relating to the associated design geometry. The search functionality may be operable to search objects within the 2D and/or 3D graphical views of the design geometry.
Data defined in the tessellated model may be searched and presented in a list (e.g., table) to the user that may display all instances in which the searched information was found. The list may be interactive such that a user can select an entry in the list and the viewing area may change to display a view or depiction of the geometry containing the searched object. The search query may be limited to quickly locate all instances of specific type(s) of annotations such as symbols or specifications. The search function may search the 3D data structure or a data object mapped from it. The search results can be dynamically linked to the object results. Application programming interface (API) functions may be used to create a search window (e.g., interface) and associated functionality. The API may not include a search window, but it may support field objects configurable to look like a search window in the user interface. The code (e.g., script) to generate the search window may be embedded within the same tessellated file associated with the tessellated geometry. The tessellated file may be stored in a lightweight format, such as a Portable Document File (PDF) format. Accordingly, the lightweight viewer does not have to be programmed to support the search window and any lightweight viewer that supports the file format may access the model and search functionality. The user may select the search result to display the associated model view in the user interface.
The modeling system 20 may include at least one computing device 22. The computing device 22 may include one or more processors 24 coupled to memory 26. The computing device 22 may be operable to execute a modeling environment (e.g., tool) 28. The modeling environment 28 may incorporate or may otherwise interface with a CAD system 30 (e.g., CATIA, AutoCAD, Solidworks, Siemens NX, etc.). The CAD system 30 and/or another portion of the modeling environment 28 may be operable to access one or more CAD models 32. Each of the CAD models 32 may be associated with geometry. The geometry may be associated with one or more virtual and/or physical components, assemblies and/or systems. The CAD system 30 may be operable to display one or more of the CAD models 32 in a user interface 34.
A user may desire to share or otherwise communicate information associated with the design to one or more other users, such as another member of a development team, a customer, or a supplier. The modeling environment 28 may be operable to generate one or more tessellated models 36, which may have a relatively lesser amount of information than the associated CAD model(s) 32 for communication to the other users. The tessellated model 36 may be stored in one or more lightweight files 37. The CAD model 32 and tessellated model 36 may be associated with geometry 33 (e.g.,
Various users may access and review the tessellated models 36 in a lightweight viewer. Various lightweight viewers may be utilized, such as Adobe which may be operable to access PDF files. The lightweight viewer may be operable to access and view lightweight files containing tessellated models but not any files containing CAD models, including the exact CAD geometry. In other implementations, the modeling environment 28 may be operable to store the tessellated model 36 and the exact CAD geometry in the same file. Each of the tessellated models 36 may be associated with one or more respective CAD models 32 that store the exact CAD geometry and related information.
The modeling environment 28 may be operable to access and display each of the tessellated models 36. In implementations, one or more (e.g., client) computing devices 38 may be operable to access the tessellated models 36. The computing devices 22, 38 may include one or more computer processors, memory, storage means, network devices, input and/or output devices, and/or interfaces. The computing devices 22, 38 may be operable to execute one or more software programs, including one or more portions of the modeling environment 28. The computing devices 22, 38 may be operable to communicate with one or more networks established by one or more computing devices. The memory may include UVPROM, EEPROM, FLASH, RAM, ROM, DVD, CD, a hard drive, or other computer readable medium which may store data and/or the functionality of this description. The computing devices 22, 38 may be a desktop computer, laptop computer, smart phone, tablet, or any other computer device. Input devices may include a keyboard, mouse, touchscreen, etc. The output devices may include a monitor, speakers, printers, etc. Each of the computing devices 38 may include one or more processors 42 coupled to memory 44. The computing device 38 may be coupled to the computing device 22 by connection(s) 40. The connection 40 may be a wired and/or wireless connection. The connection 40 may be established over one or more networks and/or other computing systems.
The processor 42 of the computing device 38 may be operable to execute a lightweight viewer 46. The lightweight viewer 46 may be a separate software application executable by the computing device 38 or may be a service provided by the computing device 22 which may be accessible by a thin client or browser over a network connection. The lightweight viewer 46 may be operable to access the tessellated models 36. The lightweight viewer 46 may be displayed in a display device. The lightweight viewer 46 may include a graphical user interface (GUI) 48 operable to display the tessellated model 36. The lightweight viewer 46 may be operable to read tessellated models 36 but not any CAD models 32, including CAD models 32 relating to geometry associated with the tessellated models 36.
Various techniques may be utilized to establish the tessellated models 36. The modeling environment 28 may be operable to generate one or more objects (e.g., elements), including any of the objects disclosed herein. In implementations, the objects may be field objects. The tessellated model 36 may include one or more field objects. The field objects and associated contents may be embedded within the tessellated model 36. The modeling environment 28 may include, or may otherwise interface with, one or more application programming interfaces (API) 50. In the implementation of
Referring to
The user interface 48 may be arranged in a manner that may declutter secondary information associated with the design geometry 33 such that a main viewing area may be relatively large. The user interface 48 may include one or more display windows 52 which may serve to divide the user interface 48 into different areas. In the implementation of
The modeling environment 28 may be operable to generate one or more geometric objects 54. The modeling environment 28 may be operable to generate a tessellated model 36 that includes the geometric object(s) 54. The geometric objects 54 may establish a tessellation of geometry 33 (see, e.g.,
The modeling environment 28 may be operable to generate one or more view objects 56. Each of the view objects 56 may be associated with respective depictions of the geometric object(s) 54 associated with the geometry 33. The view objects 56 may be associated with the navigation window 52-2 and/or another window 52 of the user interface 48. The navigation window 52-2 may be operable to display one or more of the view objects 56, which may be depicted in a list. The viewing window 52-1 may be operable to display the depiction in response to user interaction or selection of the respective view object 56.
In implementations, the view objects 56 may include first, second, and third view objects 56-1 to 56-3. The view object 56-1 may be associated with an overall representation of the geometry 33. The second view object 56-2 may be associated with another depiction of the geometry 33, such as a depiction including one or more datums or other annotations (sec, e.g.,
The information window 52-4 may be operable to display information in the user interface 48. The information may be generic and/or may be associated with the geometry 33. The information window 52-4 may be dynamically linked to one or more of the geometric objects 54 such that selection of the geometric object 54 may cause information to update in the information window 52-4.
The modeling environment 28 may be operable to generate one or more content objects 58. The tessellated model(s) 36 may include the content object(s) 58. The content object(s) 58 may be operable to establish the information window 52-4. The content objects 58 may be operable to selectively display information associated with the tessellated model 36 and/or respective geometry 33 in a common display region 62 and/or another portion of the user interface 48. The content objects 58 may be operable to establish the information window 52-4 such that the common display region 62 may be spaced apart from, but may be concurrently displayed with, the viewing window 52-1 in response to opening the tessellated model 36 in the lightweight viewer 46.
The content objects 58 may be assigned various information, including information associated with the tessellated model 36. The information may be assigned to content fields 59 associated with the respective content objects 58 (
The modeling environment 28 may be operable to generate one or more content layers 60. The layers 60 may be respective objects of the tessellated model 36. Each content object 58 may be associated with one or more of the layers 60. The content objects 58 may be assigned (e.g., occupy) the same view location in the user interface 48 but may be assigned to different layers 60 of the model 36. At least some of the layers 60 may occupy the common display region 62 of the user interface 48. The layers 60 may be dimensioned to at least partially, substantially, or completely overlap with each other in the common display region 62. The content objects 58 may be operable to selectively display information associated with the tessellated model 36 in response to user interaction with or selection of the respective content object 58 such that the respective layer 60 may be activated, but a remainder of the layers 60 may be deactivated in the common display region 62.
Various techniques may be utilized to establish the layers 60 in the user interface 48. The modeling environment 28 may be operable to establish a tabbed interface 66. The tabbed interface 66 may be utilized to display information relating to the geometry 33 and/or other aspects of the tessellated model 36. Each viewable tab of the tabbed interface 66 may be established by at least two objects. One object may be associated with the tab name (e.g., tab object 64) and another object may be associated with the respective information area (e.g., content object 58). The user may interact with a control object 71 in the user interface 48 to open a separate document containing a full listing of applicable tabs. Prior systems may include a model tree window having one or more tabs for displaying various information, such as a model tree, model views, product manufacturing information (PMI), etc., specified in a data stack. However, the model tree window may be provided by the application itself independent of any particular lightweight file, instead of being established by objects stored in the lightweight file.
The modeling environment 28 may be operable to generate one or more tab objects 64. The tessellated model 36 may include the tab objects 64. The information window 52-4 may be established by the tab object(s) 64 and control objects 58. The tab objects 64 may be operable to graphically depict the tabbed interface 66 in the information window 52-4 or another portion of the user interface 48. The tab objects 64 may be arranged in an array to graphically depict the tabbed interface 66. The tab objects 64 may be arranged in a row or may otherwise be offset from each other. The tabbed interface 66 may be directly adjacent to the common display region 62. The tab objects 64 may be associated with one or more content objects 58. Each tab object 64 may be associated with a respective layer 60 and one or more content objects 58 assigned to the layer 60. Each of the layers 60 and/or respective tab objects 64 may be associated with an activated state and a deactivated state. The tab objects 64 may be operable to graphically depict the current states in the user interface 48. The layers 60 may be made visible or invisible based on selection of the tab object 64. One layer 60 may be selectively visible at a time. Each of the tab objects 64 may be operable to selectively activate the layer 60 of the respective content object(s) 58 and deactivate a remainder of the layers 60 associated with the information window 52-4 in response to user interaction or other selection of the respective tab object 64.
In the implementation of
The modeling environment 28 may be operable to dynamically link one or more of the content objects 58 to one or more of the view objects 56 such that contents of a list or other information assigned to the content objects 58 may update in response to user interaction with or selection of the respective view objects 56. One or more of the content objects 58 may be dynamically linked to one or more of the view objects 56 such that the content fields 59 and/or other information assigned to the respective content objects 58 may update in response to selection of the respective view object 56. In the implementation of
The information displayed in the information window 52-4 may include one or more statements. The statements may be established by one or more respective content fields 59. The content objects 58 may be operable to establish a list associated with a quantity of the statements assigned to the content fields 59 of the respective content object 58.
Each tab may be associated with a counter. The content objects 58 may be associated with a counter object 68 that may establish the counter. The counter object 68 may be arranged adjacent to the common display region 62. The counter object 68 may be operable to indicate a quantity of the statements assigned to the respective content objects 58 that may be currently indicated in the list.
Referring back to
Referring to
The modeling environment 28 may be operable to generate one or more annotation objects 72. The tessellated model 36 may include the annotation object(s) 72. The annotation objects 72 may be assigned information associated with one or more respective geometric objects 54. The information may include one or more annotations specified by the design. The information may be stored in content field(s) 73 of the annotation object(s) 72 (
Since the annotations are graphically depicted in the display window 52, the graphical depictions may not be directly searchable by the lightweight viewer 46. The user may interact with the user interface 48 to search for specified annotations in the tessellated model 36 by querying text or other information that may be attached to objects associated with the graphical depictions. One or more content objects 58 may establish a search window 74 of the user interface 48. The search window 74 may be a portion of the information window 52-4. The search window 74 may be spaced apart from, but may be concurrently displayed with, the viewing window 52-1.
The content objects 58 may include a query object 58-1 and a results object 58-2. The results object 58-2 may be dynamically linked to the query object 58-1. The query object 58-1 may establish a query input field 76. The query input field 76 may be operable to query the information assigned to the annotation objects 72, including information in the content fields 73, in response to user input. In implementations, the query input field 76 may be text box that may accept a search string. The input may be specified in the query input field 76. The user may interact with the user interface 48 to indicate one or more characters in the query input field 76 for performing a query of the annotation information. The results object 58-2 may be operable to display a list of results meeting the query. The list may be a table of the results including information associated with the respective objects.
Each of the view objects 56 may be operable to establish a respective depiction of the geometry 33 in the viewing window 52-1 and/or preview window 52-3 (sec, e.g.,
The results object 58-2 may be operable to generate a list of the view objects 56 that are associated with at least one annotation object 72 having content in the content object(s) 73 that meets the query. In implementations, the results object 58-2 may be operable to generate an interactive list of the view objects 56. In implementations, the view objects 56 may be identified in the navigation window 52-2, but only any view objects 56 meeting the query may be identified in the list of results. The results may include a linked list of the view objects 56. The results object 58-2 may be dynamically linked to one or more of the view objects 56 such that selection of a result from the list may cause a depiction (e.g., representation) of the geometry 33 to change in the viewing window 52-1 (see, e.g.,
The annotations may be associated with one or more annotation types for conveying various design and/or manufacturing information to the user. The annotation objects 72 may be associated with a set of annotation types. The annotation types may include an identifier (e.g., bubble) annotation type, a datum annotation type, etc. The identifier annotation type may be useful for identifying other (e.g., more detailed) annotations in the display window 52. The datum annotation type may be associated with datums relating to manufacturing the geometry 33. The annotation objects 72 may graphically depict the datums as boxes adjacent to the model geometry 33.
The query section of the search window 74 may be categorized by annotation and/or object type. In implementations, the query section may include a set of three selectable indicators associated with different types of objects. Although three indicators are disclosed, its should be understood that fewer or more than three indicators may be utilized in accordance with the teachings disclosed herein.
The content objects 58 may include one or more category search objects 78. Each category search objects 78 may be associated with one or more of the annotation types. The category search objects 78 may be operable to limit the query to the respective annotation type(s) in response to user interaction or selection of the respective category search object 78.
In the implementation of
The results object 58-2 may be associated with the counter object 68. The counter object 68 may be operable to indicate a quantity of results in the list depicted by the results object 58-2.
In the implementation of
In the implementation
In the implementation of
Referring to
Referring to
Referring to
The content objects 58 may be operable to establish a search window 74 of the user interface 48. The content objects 58 may include a query object 58-1 and a results object 58-2. The results object 58-2 may be dynamically linked to the query object 58-1. The query object 58-1 may be operable to query information assigned to the annotation object(s) 72 in response to user input. The results object 58-2 may be operable to display a list of the results meeting the query in the search window 74.
At step 90D, information associated with the geometry 33 and/or other information may be assigned to the content objects 58. In implementations, the information may be stored in one or more content fields 59. The information may be displayed utilizing any techniques disclosed herein. The content objects 58 may be operable to selectively display the respective information in the common display region 62 of the user interface 48.
At step 90E, one or more annotation objects 72 may be generated. Generating the annotation objects 72 may include assigning information associated with annotations of the geometric objects 54 to the respective content fields 73 at step 90E-1. Each of the annotation objects 72 may be operable to depict the respective information as a graphical annotation in the viewing window 52-1. The graphical annotation can include any annotation as disclosed herein, such as identifiers, datums (e.g., dimensions, tolerances, etc.), and other information that may be associated with the geometric objects 54 and/or geometry 33 of the design. Assigning the information at step 90E-1 may include assigning the content field 73 of each of the annotation objects 72 to at least one or more of the annotation types. The assigned annotation type may be specified in a separate content field 73 of the annotation object 72. The annotation types may include any of the annotation types disclosed herein. The content objects 58 may include one or more category search objects 78 that may each be associated with one or more of the annotation types. The category search objects 78 may be operable to limit the query to the respective annotation type(s) in response to user action.
At step 90F, one or more view objects 56 may be generated. The view objects 56 may be associated with respective depictions of the geometry 33.
At step 90G, one or more tab objects 64 may be generated. The tab objects 64 may be operable to depict the tabbed interface 66 in the information window 52-4. Each tab object 64 may be associated with one or more of the content objects 58.
At step 90H, one or more of the objects may be linked to other object(s) of the tessellated model 36, including any of the objects disclosed herein. The objects may include the geometric objects 54, view objects 56, content objects 58, tab objects 64, counter objects 68, control objects 70, annotation objects 72 and/or category search objects 78.
At step 90I, one or more of the objects may be linked to one or more respective layers 60. Each of the tab objects 64 may be operable to selectively activate the layer 60 of the respective content object(s) 58 and deactivate the remainder of the layers 60 associated with the information window 52-4 and/or another portion of the user interface 48 in response to user interaction with or selection of the respective tab object 64.
At step 90J, one or more tessellated models 36 may be generated. The tessellated models 36 may be generated utilizing any of the techniques disclosed herein. The tessellated model 36 may include any of the objects and features disclosed herein, such as the geometric objects 54, content objects 58, layers 60, tab objects 64, counter objects 68, control objects 70, annotation objects 72, and/or category search objects 78.
Linking the objects at step 90H may include dynamically linking one or more of the content objects 58 to one or more of the view objects 56 such that the information assigned to the respective content object 58 may update in response to user action with the respective view object 56. In implementations, the content objects 58 may be operable to display a list and/or table of the information which may be dynamically updated in response to selection of the view object 56. Step 90H may include dynamically linking the results object 58-2 to the annotation objects 72 such that selection of a result from the list (e.g., identifier associated with the respective view object 56) may cause a depiction of the geometry 33 to change in the viewing window 52-1. The depiction may be established by the respective view object 56.
At step 90K, the tessellated model(s) 36 may be stored in one or more lightweight files 37. The files 37 may exclude the CAD model(s) 32 associated with the respective geometry 33.
At step 90L, the tessellated model(s) 36 may be displayed in a lightweight viewer 46. Step 90L may include establishing the user interface 48 in the display according to the objects of the tessellated model 36. The tessellated model 36 may cause the lightweight viewer 46 to execute code including one or more scripts, which may be specified in the content fields 59 of the content objects 58 or may otherwise be embedded in the tessellated model 36. Step 90L may include displaying one or more depictions of the geometry 33 in the display window(s) 52.
The systems and methods disclosed herein may be utilized to generate tessellated models associated with geometry of one or more components, assemblies and/or systems. The tessellated models may be stored in relatively compact files, which may be readable by a lightweight viewer provided to users who may not have access to a CAD system. The user may interact with a search window to search for annotation objects in the 2D and/or 3D space of a lightweight viewer. Utilizing the techniques disclosed herein, the user may quickly search and locate annotation information. The search results may be displayed in an interactive list of specific annotation objects and/or types. The user may quickly manipulate the display to view the searched objects without having to traverse many depictions of the model to locate any objects of interest. The disclosed techniques may be utilized to declutter the amount of information simultaneously presented to the user.
Although the different examples have the specific components shown in the illustrations, embodiments of this disclosure are not limited to those particular combinations. It is possible to use some of the components or features from one of the examples in combination with features or components from another one of the examples.
Although particular step sequences are shown, described, and claimed, it should be understood that steps may be performed in any order, separated or combined unless otherwise indicated and will still benefit from the present disclosure.
The foregoing description is exemplary rather than defined by the limitations within. Various non-limiting embodiments are disclosed herein, however, one of ordinary skill in the art would recognize that various modifications and variations in light of the above teachings will fall within the scope of the appended claims. It is therefore to be understood that within the scope of the appended claims, the disclosure may be practiced other than as specifically described. For that reason the appended claims should be studied to determine true scope and content.