Selective loading of interaction data for visual elements of computer aided design (CAD) models

By selectively loading interactive data in the client computing system, identifying candidate CAD model elements using size and proximity criteria, and preloading interactive data, the network waste and latency issues caused by interactive data loading in cloud-based CAD systems are resolved, thereby improving user interaction efficiency and system performance.

CN114258543BActive Publication Date: 2025-11-04SIMENS INDASTRI SOFTVEAR INK
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN201980099080.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2019-05-22
Publication Date
2025-11-04
Estimated Expiration
2039-05-22

AI Technical Summary

Technical Problem

In cloud-based computer-aided design (CAD) systems, loading interactive data leads to wasted network bandwidth and resource consumption, especially causing latency and performance loss when users interact with CAD model elements.

Method used

The model interaction engine selectively loads interactive data, querying and loading interactive data only for candidate CAD model elements that the user may interact with. Candidate elements are identified using size and proximity criteria, and interactive data is preloaded in the client cache to reduce network latency.

Benefits of technology

It reduces network bandwidth consumption and resource waste, improves user interaction efficiency, reduces latency and performance loss, and optimizes the interactive performance of the CAD system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114258543B_ABST
    Figure CN114258543B_ABST
Patent Text Reader

Abstract

A client computing system can include a model visualization engine and a model interaction engine. The model visualization system can be configured to access visualization data from a server computing system remote from the client computing system to display a computer-aided design (CAD) model in a viewing window of the client computing system. The model interaction engine can be configured to query the server computing system for interaction data for a selected portion of the CAD model without querying other portions of the CAD model, where the interaction data includes CAD model data that supports user interaction with the selected portion of the CAD model.
Need to check novelty before this filing date? Find Prior Art

Description

BACKGROUND

[0001] Computer systems can be used to create, use, and manage data for products and other items. Examples of computer systems include computer-aided design (CAD) systems (which can include computer-aided engineering (CAE) systems), visualization and manufacturing systems, product data management (PDM) systems, product lifecycle management (PLM) systems, and the like. These systems can include components that facilitate design and simulation testing of product structures and product manufacturing. BRIEF DESCRIPTION OF DRAWINGS

[0002] Certain examples are described in the following detailed description with reference to the accompanying drawings.

[0003] Figure 1 An example of a client computing system that supports selective loading of interaction data for a visualization element of a CAD model is shown.

[0004] Figure 2 An example architecture that supports selective loading of interaction data for a visualization element of a CAD model is shown.

[0005] Figure 3 An example of a model interaction engine that can identify candidate CAD faces to support selective loading of interaction data is shown.

[0006] Figure 4 An example of a model interaction engine that can identify neighboring CAD faces to support selective loading of interaction data is shown.

[0007] Figure 5 An example of logic that a system can implement to support selective loading of interaction data for an element of a CAD model is shown.

[0008] Figure 6 An example of a system that supports selective loading of interaction data for an element of a CAD model is shown. DETAILED DESCRIPTION

[0009] The CAD system and CAD application can be implemented in various ways. For example, the CAD application can be provided as a cloud-based service, e.g., as a Software-as-a-Service (SaaS) offering, where client computing systems access a centrally hosted CAD application via a locally implemented thin client. In such a client-server model, user access to the CAD model can be a time- and resource-consuming process, especially as the size and complexity of the CAD model continues to increase. Receiving and loading a 3D CAD model from the server via the thin client will consume a large amount of computing and network resources. In some cases, the CAD system can reduce (e.g., minimize) the transmitted CAD model data to only that which is needed to visualize (e.g., display) the CAD model on the client computing system. As used herein, visualization data can refer to any CAD model data needed by the client computing system to visualize a given CAD model.

[0010] In addition to visualization data, the CAD application can utilize other types of CAD model data to support various CAD functions and features, including CAD capabilities to interact with particular elements of the CAD model. Exemplary interactions that the CAD application can support include CAD model element selection, drag, context menu display, heads-up display, geometric analysis, and many other forms of interaction with CAD model elements. CAD model data used to support these interactions by the CAD application can be referred to as interaction data. In this regard, interaction data can include any CAD model data that supports user interaction with a visualized CAD model element of the CAD model. As used herein, interaction data and visualization data can be distinct in that visualization data allows the CAD system to visualize the CAD model, while interaction data can support user interaction with different CAD model elements visualized via the CAD system.

[0011] Loading interaction data in a SaaS-based CAD system can result in additional resource, latency, and network consumption losses. In some cases, the interaction data can include a substantial amount of CAD model data (up to 30% of the loaded CAD model data, and sometimes even more) that is needed to properly support CAD-based functionality of the CAD system. Loading interaction data and visualization data together during initial model loading is one approach, but using the added interaction data to fully load the CAD model upon user login to the CAD application will result in additional latency and performance losses. Another simple approach is to load interaction data for a particular CAD model element at the time of user interaction (e.g., upon mouse hover over or mouse click on the CAD model element). However, such an approach can result in lag and latency as such interactions occur to complete server queries for interaction data, and the CAD application user will experience noticeable delays in selecting or otherwise interacting with CAD model elements.

[0012] The present disclosure can provide systems, methods, devices, and logic for selective loading of interaction data for visualized elements of a CAD model. As described in greater detail below, the selective interaction data loading features herein can support determining candidate CAD faces that are visualized by a client computing system that a user can potentially interact with. By doing so, the selective interaction data loading can utilize the notion that not all geometric elements of a given CAD model are actual interaction candidates, including CAD model elements that are not even displayed in the current view, or visualized CAD model elements that are too small to be practically selected by a user.

[0013] Loading interaction data for all CAD model elements of a CAD model will result in network bandwidth waste and resource consumption. Accordingly, the features described herein can support culling of non-candidate CAD model elements, and support server querying of interaction data for determined interaction candidates without (unnecessarily) querying interaction data for non-candidate CAD model elements. By doing so, the features described herein can selectively load interaction data for a candidate subset (as low as 10% or lower) of geometric entities in a given CAD model, which can result in reduced data for querying, downloading, and local storage as compared to other simple interaction data loading techniques.

[0014] These and other selective interaction data loading features and advantages are described in greater detail herein.

[0015] Figure 1An example of a client computing system 100 that supports selective loading of interaction data for visualized elements of a CAD model is shown. The client computing system 100 can take the form of a single or multiple computing devices, such as an application server, a compute node, a desktop or laptop computer, a smartphone or other mobile device, a tablet device, an embedded controller, etc. In some examples, the client computing system 100 implements or executes a thin-client CAD application to provide access to a cloud-based implementation of a CAD application. The client computing system 100 can interact with a server computing system that centrally stores CAD model data to access the CAD application, CAD models, and various CAD functionality as a client in a client-server architecture.

[0016] As an example implementation to support any combination of the selective interaction data loading features described herein, Figure 1 The illustrated client computing system 100 includes a model visualization engine 108 and a model interaction engine 110. The client computing system 100 can implement the engines 108 and 110 (including components thereof) in various ways, such as in hardware and programming. The programming for the engines 108 and 110 can take the form of processor-executable instructions stored on a non-transitory machine-readable storage medium, and the hardware for the engines 108 and 110 can include a processor to execute the instructions. The processor can take the form of a single- or multi-processor system, and in some examples, the client computing system 100 uses the same computing system features or hardware components (e.g., a common processor or common storage medium) to implement multiple engines.

[0017] In operation, the model visualization engine 108 can access visualization data from a server computing system that is remote from the client computing system 100 to display a CAD model in a viewing window of the client computing system. In operation, the model interaction engine 110 can query the server computing system for interaction data for selected portions of a CAD model without querying the server computing system for other portions of the CAD model, where the interaction data includes CAD model data that supports user interaction with the selected portions of the CAD model. The selected portions of the CAD model determined by the model interaction engine 110 can include determined candidate CAD model elements that a user can potentially interact with, as determined according to various interaction criteria as described in more detail herein. These and other selective interaction data loading features according to the present disclosure are described in more detail below.

[0018] Figure 2 An example architecture 200 that supports selective loading of interaction data for visualized elements of a CAD model is shown. As Figure 2The example architecture 200 shown includes a client computing system 100 and a server computing system 202. The client computing system 100 and the server computing system 202 can together support a client-server based (e.g., SaaS) implementation of a CAD application, where CAD software can be centrally hosted on a CAD application server (e.g., the server computing system 202) and accessed via a thin client implemented by a client device (e.g., the client computing system 100). To support such features, the client computing system 100 and the server computing system 202 can be communicatively linked, e.g., via the Internet, a local or wide area network, or the like.

[0019] As Figure 2 The client computing system 100 shown includes a model visualization engine 108 and a model interaction engine 110. The model visualization engine 108 can include any capabilities supported by the client computing system 100 for visualization of a CAD model. In this regard, the model visualization engine 108 can access visualization data for a CAD model and display the CAD model (or a given view of the CAD model) via a thin client of the client computing system 100. As Figure 2 In the example shown, the model visualization engine 108 provides a CAD application display through an application window 210 of the thin client, and the example thin client includes a web browser, an application portal, or a lightweight client application, or any other client that can interact with CAD software centrally hosted by the server computing system 202. As Figure 2 As shown, the model visualization engine 108 can visualize a CAD model 212 in the application window 210, which can then support user interaction to access, modify, test, or otherwise configure the CAD model 212.

[0020] The model visualization engine 108 can access visualization data for the CAD model 212 from the server computing system 202. As the complexity of CAD models continues to increase, the size and complexity of the visualization data will also increase. Accordingly, the model visualization engine 108 can compress, reduce, or otherwise limit the visualization data accessed for the CAD model 212 to only that data necessary to display the CAD model 212 in the application window 210. In other words, the visualization data accessed by the model visualization engine 108 for the CAD model 212 can support display of the CAD model 212, but can lack any data to support given user interaction with a visualization element (e.g., a CAD face) of the CAD model 212. Example forms of the visualization data include CAD face data or CAD mesh data used to construct a rendering of the CAD model 212 for display in the application window 210.

[0021] To support CAD model interaction, the model interaction engine 110 can selectively load interaction data for some, but not all, visualized elements of the CAD model 212 displayed in the application window 210. As described herein, interaction data can include CAD model data (other than visualization data) that supports any user interaction with the CAD model 212 or selected portions thereof. Examples of interaction data include edge data for the CAD model 212 (e.g., not needed when the CAD model can be visualized solely through CAD face data), snap point data, tangent link data, feature selection data, geometric analysis data, etc. Such interaction data can support CAD model interaction in the form of selection, drag, context menu, heads-up display, etc.

[0022] To selectively load interaction data, the model interaction engine 110 can identify selected CAD model elements (e.g., CAD faces, assemblies, or any other delineated portion of the CAD model) as candidate CAD model elements with which a user can potentially interact by applying any number of interaction criteria to make such determinations. The determined set of candidate elements can include a set of candidate CAD model elements visualized in the application window 210 for which the model interaction engine 110 can selectively load interaction data.

[0023] The many selective loading features described herein are presented using candidate CAD faces as exemplary candidate CAD model elements that the model interaction engine 110 can determine or identify. A CAD face can refer to any delineated surface in a CAD model and can be visualized with a plurality of facets (e.g., as a surface mesh). However, any type of candidate CAD model element and corresponding interaction criteria are contemplated within the scope of the present disclosure. For example, the model interaction engine 110 can identify candidate CAD components (e.g., including a plurality of CAD faces or other CAD sub-parts) as part of a larger CAD assembly. Interaction criteria and selective interaction data loading features can be applied consistently to candidate CAD components and / or any other type of CAD model element that the model interaction engine 110 can determine as a candidate for user interaction.

[0024] The interaction criteria can be set by the model interaction engine 110 with the goal of identifying realistic or possible candidates of CAD models 212 with which a user can interact. Explained another way, the applied interaction criteria can filter out non-realistic or impossible CAD model elements for user interaction and control through specific parameters of the interaction criteria. In practice, the applied interaction criteria can allow the model interaction engine 110 to load interaction data for a selected subset of visualized elements of the CAD model 212, thereby improving efficiency and reducing network latency as compared to simply loading interaction data for all visualized elements of the CAD model 212. Further, the interaction criteria can allow the model interaction engine 110 to preload interaction data prior to actual user interaction, which can reduce or eliminate network latency and application lag that can be prevalent in interaction data queries performed at or after actual user interaction.

[0025] Examples of interaction criteria that can be applied by the model interaction engine 110 are described in more detail below in connection with Figure 3 and Figure 4 .

[0026] By applying the interaction criteria, the model interaction engine 110 can determine a set of candidate CAD model elements (e.g., CAD faces) for the visualized CAD model 212. Referring again to Figure 2 , the model interaction engine 110 can query the server computing system 202 for interaction data specific to the determined candidate CAD faces. In Figure 2 , the model interaction engine 110 constructs a server query 220 and sends the server query 220 to the server computing system 202. The server query 220 can request interaction data for the candidate CAD faces of the CAD model 212 determined by the model interaction engine 110 without requesting interaction data for other non-candidate CAD faces of the CAD model 212. The server computing system 202 can respond to the server query 220 with a server response 222, which can include the requested interaction data for the determined candidate CAD faces of the CAD model 212.

[0027] The interaction data for the determined candidate CAD faces of the CAD model 212 can be used by the model interaction engine 110 to determine a set of candidate CAD model elements (e.g., CAD faces) for the visualized CAD model 212. Referring again to Figure 2The interaction data is shown as 230. The model interaction engine 110 can store the interaction data 230 locally on the client computing system 100. For example, the model interaction engine 110 can store the interaction data 230 in a client cache 240, which the model interaction engine 110 can implement itself or can be implemented locally by the client computing system 100 in other ways. The cached interaction data can be stored locally on the client computing system 100 and is readily available for subsequent user interactions with the CAD model 212. Therefore, the model interaction engine 110 can selectively load the interaction data 230 for some (but not all) of the display elements of the CAD model (e.g., load it into the client cache 240).

[0028] The following is combined with Figure 3 and Figure 4 This section demonstrates how the Model Interaction Engine 110 determines various candidate CAD faces for which interactive data is selectively loaded.

[0029] Figure 3 An example of candidate CAD faces that the model interaction engine 110 can recognize to support selective loading of interactive data is shown. Figure 3 In the middle, it was shown again Figure 2 The application window 210 described herein includes Figure 3 The view window 312 is marked in the middle. This view window 312 may reference a selected sub-section of the application window 210 (e.g., a specific section of a web browser) and may be any display portion specifically designated by the CAD application to display the CAD model 212. In this respect, the view window 312 may be separate from other components of the user interface (“UI”) used by the CAD application or application window 210, for example, separate from the web address bar, command bar, operation library, formatting bar, or other UI components of the CAD application. Therefore, the view window 312 may reference a specific application portion of the CAD application UI to visualize and display the CAD model.

[0030] In some implementations, the model interaction engine 110 determines candidate CAD faces based on attributes of the viewing window 312 to selectively load interactive data. Specifically, the model interaction engine 110 may apply a size criterion relative to the viewing window 312 to determine candidate CAD faces for which interactive data should be selectively queried. For example, a size criterion is satisfied when the size of a given CAD face exceeds a threshold percentage (e.g., 10%) of the size of the viewing window 312 (e.g., total size, width, height, etc.). By applying this size criterion, the model interaction engine 110 can eliminate (relatively) small CAD faces as interactive candidates, and the size criterion can be configured to apply a threshold percentage of the size of the viewing window 312 to identify smaller, therefore less likely (or impossible) non-candidate CAD faces for user interaction in the current visualization view of the CAD model 212.

[0031] To apply such a dimensional standard, the model interaction engine 110 can determine the dimensions of the viewing window 312 and calculate the dimensions of each CAD face of the CAD model 212 visualized in the viewing window 312. In this respect, this dimensional standard can be referred to as a globally applied dimensional standard because it can be applied to any CAD face displayed in the viewing window 312 (and in doing so, the model interaction engine 110 can filter out any CAD model elements of the CAD model 212 not displayed in the viewing window 312 based on the candidate determination results). The calculated dimensions can be in the form of two-dimensional (2D) area (e.g., as measured in 2D pixel space), perimeter, height or width values, diagonal values ​​(e.g., bounding boxes around CAD model elements), or in the form of any other dimensional parameters of the viewing window 312 and the CAD model elements of the CAD model. The calculation of CAD face dimensions can be made specifically for the current view of the CAD model 212 displayed in the viewing window 312. The model interaction engine 110 can identify any given CAD face of the CAD model 212 whose size exceeds a threshold percentage of the size of the viewing window 312 as a candidate CAD face.

[0032] pass Figure 3 As an illustrative example, the model interaction engine 110 can determine that the view window 312 has a size of 800 pixels × 600 pixels, and therefore a size of 480,000 pixels. When applying a size criterion with an exemplary threshold percentage of 4%, the model interaction engine 110 can identify candidate CAD faces as any CAD face with a size greater than 19,200 pixels in the view of the CAD model 212 displayed in the view window 312. As another exemplary implementation, the size criterion can be applied to the diagonal value of the bounding box surrounding the CAD face, compared to a threshold percentage for the diagonal value of the view window 312.Figure 3 In the illustrated example, the model interaction engine 110 can apply the size criteria to determine a set of candidate CAD faces that are labeled as candidate CAD faces 320 for the CAD model 212 displayed in the viewing window 312 (a plurality of individual CAD faces of a black pattern). The model interaction engine 110 can then query the CAD application server for interaction data for the candidate CAD faces 320 determined for the CAD model 212 displayed in the viewing window 312. Figure 3

[0033] In some implementations, the model interaction engine 110 can re-determine the candidate CAD faces to selectively query for interaction data for a triggering event. A triggering event can refer to any event determined by the model interaction engine 110 that, upon occurrence, causes the model interaction engine 110 to selectively query the CAD application server for interaction data. For example, the model interaction engine 110 can identify a size-based triggering event that can refer to any event that changes the size of the viewing window 312 or changes the size of a threshold number of visible elements of the CAD model 212 displayed in the viewing window 312.

[0034] Examples of size-based triggering events can include resizing the viewing window 312, for example, by maximizing or otherwise adjusting the application window 210 to increase or decrease the size of the viewing window 312. Other examples include changing the camera view of the CAD model 212 in the viewing window 312, whether by rotating the view of the CAD model 212 (thereby changing the 2D area of the CAD faces displayed in the viewing window 312, visualizing CAD faces of the CAD model 212 that were not previously displayed, removing CAD faces that were visualized prior to the camera change, etc.) or by adjusting the zoom of the camera (or by making a zoom-in that can increase the 2D area of the displayed CAD faces or by making a zoom-out that can decrease the area of the displayed CAD faces).

[0035] Upon identifying any combination of the above triggering events, the model interaction engine 110 can re-determine the candidate CAD faces for the CAD model 212 as displayed in the viewing window 312 and selectively load the interaction data for the re-determined candidate CAD faces accordingly. The model interaction engine 110 can re-determine the candidate CAD faces in a consistent manner as described above, applying the size criteria globally to the updated view of the CAD model 212 changed with the triggering event.

[0036] As other examples of interaction criteria and triggering events, the model interaction engine 110 can determine candidate CAD faces based on proximity to a cursor position, as described in more detail below in connection with Figure 4 ​​

[0037] Figure 4 An example is shown in which the model interaction engine 110 can identify proximate CAD faces to support selective loading of interaction data. Proximate CAD faces can refer to CAD faces for which the model interaction engine 110 can selectively load interaction data based on an applied proximity criterion (e.g., with respect to a cursor or other UI-based interaction mechanism). In this regard, proximate CAD faces can also be considered as candidate CAD faces for which the model interaction engine 110 can query the CAD application server for interaction data, but which can be identified based on a proximity distance relative to the size of the viewing window. That is, based on the mouse cursor (or other UI-based interaction mechanism) position, proximate CAD faces can be identified as potential interaction candidates. The model interaction engine 110 can determine that the closer a visualized CAD model element is to the mouse cursor, the more likely a user is to interact with the particular CAD face or visualized CAD model element.

[0038] To illustrate, Figure 4 An application window 210 is shown having a viewing window 412. Figure 4 The viewing window 412 shown includes a cursor 414 through which a user can interact (e.g., select or drag) with visualized elements of the CAD model 212. To determine proximate CAD faces, the model interaction engine 110 can apply a proximity criterion that is satisfied when a CAD face of the CAD model 212 is within a proximity distance from the cursor 414. In Figure 4 In the example, the proximity distance is specified as a pixel distance and is illustrated by a dashed circle having a radius “r” and encompassing the tip of the cursor 414. Any CAD face in the CAD model 212 that is within the “r” pixel distance from the cursor 414 (e.g., the cursor tip) can be identified as a proximate CAD face by the model interaction engine 110.

[0039] The proximity distance of the proximity criterion can be configured in various ways by the model interaction engine 110, such as to an explicit distance value (e.g., a 50 pixel threshold distance), to a percentage of a dimension of the viewing window 412 (e.g., 5% of a width dimension of the viewing window 412), or in various other ways. As other examples, the proximity criterion applied by the model interaction engine 110 can be applied by a bounding box around the cursor 414 (e.g., a 100 pixel by 100 pixel bounding box with the tip of the cursor 414 positioned at the center of the bounding box), or in any other form that provides a distance-based criterion by which the model interaction engine 110 can identify proximate CAD faces for display in the application window 412.

[0040] In Figure 4In some implementations, the model interaction engine 110 identifies some (but not all) of the CAD faces within a proximity distance of the cursor 414 as the proximate CAD faces 420 for which to selectively load interaction data. In this case, the model interaction engine 110 can apply a second size criterion to the CAD faces within the proximity distance. In a similar manner as discussed above with respect to the size criterion that is globally applied to the current view of the CAD model 212, the second size criterion can filter out CAD faces that are too small to be likely interaction candidates, even when the CAD face is within the proximity distance of the cursor 414. However, the second size criterion can be referred to as a locally applied size criterion because the model interaction engine 110 can apply the second size criterion only to the CAD faces that are within the proximity distance of the cursor 414.

[0041] In some implementations, the model interaction engine 110 identifies some (but not all) of the CAD faces within a proximity distance of the cursor 414 as the proximate CAD faces 420 for which to selectively load interaction data. In this case, the model interaction engine 110 can apply a second size criterion to the CAD faces within the proximity distance. In a similar manner as discussed above with respect to the size criterion that is globally applied to the current view of the CAD model 212, the second size criterion can filter out CAD faces that are too small to be likely interaction candidates, even when the CAD face is within the proximity distance of the cursor 414. However, the second size criterion can be referred to as a locally applied size criterion because the model interaction engine 110 can apply the second size criterion only to the CAD faces that are within the proximity distance of the cursor 414.

[0042] In addition to the globally applied size criterion, a second size criterion can be applied for determining candidate CAD faces based on the size of the viewing window (e.g., as described above). In some implementations, the second size criterion can specify a more lenient size threshold than the size criterion that is applied globally to the CAD model 212. In other words, a larger number of CAD faces of the CAD model 212 can satisfy the second size criterion (if applied globally) than the size criterion as illustrated in FIG. 6 for determining candidate CAD faces of the CAD model 212. Figure 3 In some implementations, the second size criterion can specify a more lenient size threshold than the size criterion that is applied globally to the CAD model 212. In other words, a larger number of CAD faces of the CAD model 212 can satisfy the second size criterion (if applied globally) than the size criterion as illustrated in FIG. 6 for determining candidate CAD faces of the CAD model 212. Figure 3 In some implementations, the second size criterion can specify a more lenient size threshold than the size criterion that is applied globally to the CAD model 212. In other words, a larger number of CAD faces of the CAD model 212 can satisfy the second size criterion (if applied globally) than the size criterion as illustrated in FIG. 6 for determining candidate CAD faces of the CAD model 212.

[0043] To illustrate, a given CAD face can satisfy the second size criterion when the size of the CAD face is at least 2% of the size of the viewing window 412, whereas the globally applied size criterion can require at least 4% of the size of the viewing window 412. Thus, the model interaction engine 110 can identify certain proximate CAD faces in the CAD model based on proximity to the cursor 414 that are not identified or would not be identified as candidate CAD faces (e.g., identified as proximate CAD faces 420) based on the size criterion that is globally applied to the CAD model 212. Figure 3of the CAD model (e.g., the CAD face 320 in FIG. 3B) that is proximate to the cursor 414, but now is identified as proximate by being within a distance of the cursor 414 and satisfying a second (more lenient) size criterion.

[0044] As described herein, including by applying size-based interaction criteria, proximity-based interaction criteria, or a combination of the two, the model interaction engine 110 can identify candidate CAD faces (which can include proximate CAD faces) to selectively load interaction data.

[0045] In some implementations, the model interaction engine 110 queries the CAD application server for a particular subset of interaction data for the identified candidate CAD faces, based on a particular application context or mode in which the CAD application operates. The CAD application can provide a variety of interaction capabilities through various CAD interaction operations, such as selection operations, drag operations, geometric analysis operations, etc. The model interaction engine 110 can query the selected interaction data for the determined candidate CAD faces based on a current CAD interaction operation used to interact with the CAD model.

[0046] As an illustrative example, when the current CAD interaction operation used by the user against the CAD model is a selection operation, the model interaction engine 110 can instead query the CAD application server for interaction data in the form of snap point data. When the current interaction operation is instead a geometric analysis operation, the model interaction engine 110 can query the CAD application server for geometric analysis data (instead of snap point data). By doing so, the model interaction engine 110 can limit the queried interaction data to specifically apply to the CAD interaction operation currently selected / used by the CAD application. Querying for interaction data in the selected form can reduce the total amount of queried interaction data, and thus reduce the consumed network bandwidth required to retrieve the interaction data, and improve the efficiency of user interaction with the CAD model in a client-server based CAD application implementation.

[0047] To support querying for selected interaction data that varies based on the current CAD interaction operation, the model interaction engine 110 can differentiate the cache of interaction data based on the CAD interaction operation. For example, the model interaction engine 110 can maintain a client cache (e.g., the client cache 312 in FIG. 3B) that is organized based on the CAD interaction operation, and a server cache (e.g., the server cache 308 in FIG. 3B) that is organized based on the CAD interaction operation. Figure 2The illustrated client cache 240) is partitioned into a plurality of different memory, whether physically partitioned or logically partitioned. Each partitioned memory can cache interaction data for different CAD interaction operations or different types of interaction data (e.g., a first cache for storing snap point interaction data, a second cache for storing geometry analysis interaction data, etc.). Based on the current CAD interaction operation and the constructed query to the CAD application server for the identified CAD candidate faces, the model interaction engine 110 can cache the received interaction data in a corresponding one of the plurality of memory.

[0048] Additionally or alternatively, the model interaction engine 110 can employ any number of caching indexing and eviction techniques to maintain the local cache of the client computing system for storing interaction data. For a set of identified candidate CAD faces (which can include proximate CAD faces), the model interaction engine 110 can first utilize indexed (and thus stored) interaction data in the client cache to filter any candidate CAD faces, including based on a particular CAD interaction operation. To illustrate, when the current CAD interaction operation for the CAD application is a selection operation, for a set of identified proximate CAD faces, the model interaction engine 110 can filter out from the server query any proximate CAD faces that have snap point data already stored in the local cache designated for storing snap point interaction data. In a similar manner, the model interaction engine 110 can look up entries in other interaction data caches to filter interaction data for the query to the CAD application server. By doing so, the model interaction engine 110 can reduce or eliminate redundant queries for interaction data already loaded in the client cache from previous interaction data queries to the CAD application server.

[0049] Accordingly, the model interaction engine 110 can support selective loading of interaction data for a selected portion of a displayed CAD model.

[0050] Figure 5An example of logic 500 is shown, where a system can implement the logic 500 to support selective loading of interaction data for visualized elements of a CAD model. For example, the client computing system 100 can implement the logic 500 as hardware, executable instructions stored on a machine-readable medium, or a combination of both. The client computing system 100 can implement the logic 500 via the model visualization engine 108 and the model interaction engine 110, which the client computing system 100 can implement as or execute as methods to support selective interaction data loading. The following description of the logic 500 is provided using the model visualization engine 108 and the model interaction engine 110 as examples. However, various other implementation options are also possible with the system.

[0051] In implementing the logic 500, the model visualization engine 108 can access visualization data to display a CAD model in the client computing system (502). The model visualization engine 108 can also use the accessed visualization data to display a view of the CAD model in a viewing window, e.g., by a 3D to 2D mapping for displaying the initial or current camera view of the CAD model in the viewing window.

[0052] In implementing the logic 500, the model interaction engine 110 can determine a set of candidate CAD faces of the CAD model displayed in the viewing window that satisfy a size criterion relative to the viewing window (504). In this regard, the model interaction engine 110 can apply the size criterion globally to each of the CAD faces displayed in the current camera view of the CAD model. As described herein, a given CAD face will satisfy such a globally applied size criterion when the size of the given CAD face exceeds a threshold percentage of the viewing window size.

[0053] The model interaction engine 110 can then query the server computing system for interaction data for the candidate CAD faces, and do so without querying the server computing system for interaction data for non-candidate CAD faces of the CAD model that do not satisfy the size criterion (506). In this way, the model interaction engine 110 can selectively query the CAD application server for some (but not all) of the visualized elements of the CAD model in the current camera view. Upon receiving a server response to the query, the model interaction engine 110 can load the client cache with the interaction data provided by the server computing system (508).

[0054] Accordingly, the model interaction engine 110 can selectively load interaction data for the current view of the CAD model. In response to the recognition of a trigger event, the model interaction engine 110 can re-determine candidate CAD faces based on changes in the viewing window, changes in the displayed CAD model, or movement of a mouse cursor or other UI interaction mechanism supported by the CAD application.

[0055] For example, the model interaction engine 110 can recognize size-based trigger events based on changes in the camera view, camera zoom, or adjustment of the viewing window size. In response to recognizing any of these trigger events, the model interaction engine 110 can determine a set of re-determined candidate CAD faces that satisfy the size criteria relative to the viewing window (possibly re-sized) for the updated camera view or re-sized viewing window (504), send another query to the server computing system for the set of re-determined candidate CAD faces (506), and load the client cache with the provided interaction data (508). In some instances, the model interaction engine 110 can filter the query such that cached interaction data for the re-determined candidate CAD faces (e.g., interaction data loaded from a previous query) is not re-loaded into the client cache.

[0056] Other examples of trigger events can be proximity-based. In such examples, the model interaction engine 110 can track movement of a mouse cursor (or other UI interaction mechanism). To illustrate, the model interaction engine 110 can recognize movement of the cursor in the viewing window of the client computing system (510) and determine a set of proximate CAD faces of the CAD model that are within a proximity distance of the cursor (512). In some implementations, to determine the proximate CAD faces, the model interaction engine 110 can apply a second (or local) size criteria for CAD faces that are within the proximity distance. The model interaction engine 110 can then query the server computing system for interaction data of the proximate CAD faces (514), which can also include filtering the query to account for cached interaction data.

[0057] In the various methods described above, the model interaction engine 110 can populate the client cache with interaction data for selected visualization elements of the CAD model, including considering different triggering events that may occur through active user interaction with the CAD application. Note that the model interaction engine 110 can selectively load interaction data into the client cache before user interaction with a given CAD face or visualized CAD model element. Triggering events can be specifically identified by the model interaction engine 110 before user interaction with CAD model elements (through selection, mouse hover, dragging, etc.). Conversely, the model interaction engine 110 can identify candidate CAD faces when the camera view changes or when the mouse moves near a CAD model element (but has not yet reached its location) and query the interaction data before actual user interaction.

[0058] When a user interacts with a given CAD model element via a CAD application, the model interaction engine 110 may have already loaded the interaction data for the given CAD model element into the local client cache, thereby enabling interactions with reduced latency and reduced network consumption, while improving application performance.

[0059] In order to pass Figure 5 As shown, the model interaction engine 110 can identify user interactions in a CAD application by recognizing cursor movement over a given CAD model element (e.g., an edge in the displayed CAD model). (516) In response, the model interaction engine 110 can query the interaction data for the given CAD model element from a locally implemented client cache (518). Since the given CAD model element may have been pre-determined as a candidate CAD face, the interaction data for the given CAD model element may have been selectively loaded into the client cache before the recognized cursor moves over it. Therefore, the model interaction engine 110 can retrieve the interaction data from the local cache and support user interaction with the given CAD model element using the interaction data returned from the client cache (520).

[0060] Figure 5 The logic 500 shown is merely an example by which the client computing system 100 can support selective loading of interactive data for visual elements of a CAD model. Additional or alternative steps in logic 500 are considered herein, including any features described for the model visualization engine 108, the model interaction engine 110, or any combination thereof.

[0061] Figure 6An example of a system 600 that supports selective loading of interactive data for CAD model visualization elements is shown. The system 600 can include a processor 610, which can take the form of a single or multiple processors. The one or more processors 610 can include a central processing unit (CPU), a microprocessor, or any hardware device suitable for executing instructions stored on a machine-readable medium. The system 600 can include a machine-readable medium 620. The machine-readable medium 620 can take the form of any non-transitory electronic, magnetic, optical, or other physical storage device suitable for storing executable instructions, such as Figure 6 The model visualization instructions 622 and the model interaction instructions 624 are shown. Thus, the machine-readable medium 620 can be, for example, random access memory (RAM), such as dynamic RAM (DRAM), flash memory, spin-transfer torque memory, electrically erasable programmable read-only memory (EEPROM), a storage drive, an optical disc, and the like.

[0062] The system 600 can execute the instructions stored on the machine-readable medium 620 by the processor 610. Execution of the instructions, such as the model visualization instructions 622 and / or the model interaction instructions 624, can cause the system 600 to perform any of the selective interactive data loading features described herein, including in accordance with any of the features described with respect to the model visualization engine 108, the model interaction engine 110, or a combination of the two.

[0063] For example, execution of the model visualization instructions 622 by the processor 610 can cause the system 600 to access visualization data from a server computing system remote from the system 600 to display a CAD model in a viewing window of the system 600. Execution of the model interaction instructions 624 by the processor 610 can cause the system 600 to determine a set of candidate CAD model elements of the CAD model displayed in the viewing window of the client computing system, including by determining that the candidate CAD model elements satisfy a size criterion with respect to the viewing window, and querying the server computing system for interactive data for the candidate CAD model elements, without querying the server computing system for interactive data for non-candidate CAD model elements of the CAD model that do not satisfy the size criterion.

[0064] Any additional or alternative features as described herein can be implemented via the model visualization instructions 622, the model interaction instructions 624, or a combination of the two.

[0065] The systems, methods, devices, and logic described above, including the model visualization engine 108 and the model interaction engine 110, can be implemented in a number of different fashions, in combinations of different hardware, logic, circuitry, and executable instructions stored on a machine-readable medium. For example, the model visualization engine 108, the model interaction engine 110, or a combination thereof, can include circuitry in a controller, microprocessor, or application specific integrated circuit (ASIC), or can be implemented with discrete logic or components, or can be implemented in a combination of other types of analog or digital circuitry, combined on a single integrated circuit or distributed among multiple integrated circuits. A product such as a computer program product can include a storage medium and machine-readable instructions stored on the medium, which when executed in an endpoint, computer system, or other device, cause the device to perform operations according to any of the descriptions above, including according to any of the features of the model visualization engine 108, the model interaction engine 110, or a combination thereof.

[0066] The processing capabilities of the systems, devices, and engines described herein, including the model visualization engine 108 and the model interaction engine 110, can be distributed among multiple system components, such as among multiple processors and memories, optionally including multiple distributed processing systems or cloud / network elements. Parameters, databases, and other data structures can be stored and managed separately, can be consolidated into a single memory or database, can be logically and physically organized in a number of different ways, and can be implemented in a number of ways including data structures such as linked lists, hash tables, or implicit storage mechanisms. Programs can be part of a single program (such as a subroutine), separate programs, programs distributed across multiple memories and processors, or implemented in a number of different ways such as libraries (such as shared libraries).

[0067] While various examples have been described above, more implementations are possible.

Claims

1. A method comprising: by a client computing system (100): accessing, from a server computing system (202), visualization data to display a computer-aided design model (212) in a viewing window (312, 412) of the client computing system (100), wherein the visualization data is to display the computer-aided design model; determining a set of candidate computer-aided design faces (320) of the computer-aided design model (212) displayed in the viewing window (312, 412) that satisfy a size criterion relative to a size of the viewing window (312, 412); and querying the server computing system (202) for interaction data (230) of the candidate computer-aided design faces (320) without querying the server computing system (202) for interaction data of non-candidate computer-aided design faces of the computer-aided design model (212) that do not satisfy the size criterion, and wherein the non-candidate computer-aided design faces of the computer-aided design model are also displayed in the viewing window; wherein the interaction data (230) comprises computer-aided design model data that supports user interaction with the candidate computer-aided design faces (320) of the computer-aided design model (212), and wherein the interaction data is different from the visualization data and the interaction data does not include any of the visualization data used to display the computer-aided design model. querying the server computing system (202) for selected interaction data (230) of the candidate computer-aided design faces (320) based on a current computer-aided design interaction operation with the computer-aided design model.

2. The method of claim 1, comprising: the size criterion is satisfied when a size of a given computer-aided design face exceeds a threshold percentage of a size of the viewing window (312, 412).

3. The method of claim 1, wherein, 4. The method of claim 1, further comprising: identifying movement of a cursor (414) in the viewing window (312, 412) of the client computing system (100); determining a set of proximate computer-aided design faces (420) of the computer-aided design model (212) that are within a proximity distance of the cursor (414); and further querying the server computing system (202) for interaction data (230) of the proximate computer-aided design faces (420). determining the set of proximate computer-aided design faces (420) in the computer-aided design model (212) comprises:

5. The method of claim 4, wherein, identifying computer-aided design faces of the computer-aided design model (212) that are within the proximity distance of the cursor (414) and that satisfy a second size criterion, wherein more computer-aided design faces of the computer-aided design model (212) satisfy the second size criterion than the size criterion used to determine the candidate computer-aided design faces (320) of the computer-aided design model (212). ​ 6. The method of claim 1, wherein, The interaction data (230) includes edge data, snap point data, tangent link data, feature selection data, or geometry analysis data of the computer-aided design model (212).

7. The method of claim 1, wherein, The viewing window (312, 412) is a sub-portion of an application window (210).

8. A client computing system (100) comprising: a model visualization engine (108) configured to access visualization data from a server computing system (202) remote from the client computing system (100) to display a computer-aided design model (212) in a viewing window (312, 412) of the client computing system (100), wherein the visualization data is used to display the computer-aided design model; and a model interaction engine (110) configured to query the server computing system (202) for interaction data (230) of a selected portion of the computer-aided design model (212) visible in the viewing window without querying the server computing system (202) for interaction data of other portions of the computer-aided design model (212) also visible in the viewing window, wherein the interaction data (230) includes computer-aided design model data that supports user interaction with the selected portion of the computer-aided design model (212), and wherein the interaction data is different from the visualization data and the interaction data does not include any of the visualization data used to display the computer-aided design model.

9. The system of claim 8, wherein, The model interaction engine (110) is configured to query the server computing system (202) for selected interaction data (230) of the selected portion of the computer-aided design model (212) based on a current computer-aided design interaction operation with the computer-aided design model (212).

10. The system of claim 8, wherein, The model interaction engine (110) is configured to query the server computing system (202) for the interaction data (230) of the selected portion of the computer-aided design model (212) by: determining a set of candidate computer-aided design model elements of the computer-aided design model (212) displayed in the viewing window (312, 412) that satisfy a size criterion relative to the viewing window (312, 412) as the selected portion; and querying the server computing system (202) for interaction data (230) of the candidate computer-aided design model elements without querying the server computing system (202) for interaction data of non-candidate computer-aided design model elements of the computer-aided design model (212) that do not satisfy the size criterion.

11. The system of claim 10, wherein, The size criterion is satisfied when a size of a given computer-aided design model element exceeds a threshold percentage of a size of the viewing window (312, 412).

12. The system of claim 10, wherein, The model interaction engine (110) is further configured to: identify movement of a cursor (414) in the viewing window (312, 412) of the client computing system (100); determining a set of proximate computer-aided design model elements of the computer-aided design model (212) within the proximity distance of the cursor (414); and further querying the server computing system (202) for interaction data (230) of the proximate computer-aided design model elements.

13. The system of claim 12, wherein, The model interaction engine (110) is configured to determine the set of proximate computer-aided design model elements by: identifying computer-aided design model elements of the computer-aided design model (212) within the proximity distance of the cursor (414) and that satisfy a second size criterion, wherein more computer-aided design model elements of the computer-aided design model (212) satisfy the second size criterion than the size criterion used to determine the candidate computer-aided design model elements of the computer-aided design model (212).

14. The system of claim 8, wherein, The interaction data (230) includes edge data, snap point data, tangent link data, feature selection data, or geometric analysis data of the computer-aided design model (212).

15. A non-transitory machine-readable medium (620) comprising instructions (622, 624) that, when executed by a processor (610), cause a client computing system (100) to: access, from a server computing system (202), visualization data to display a computer-aided design model (212) in a viewing window (312, 412) of the client computing system (100), wherein the visualization data is used to display the computer-aided design model; determine a set of candidate computer-aided design model elements of the computer-aided design model (212) displayed in the viewing window (312, 412) of the client computing system (100) by determining that the candidate computer-aided design model elements satisfy a size criterion with respect to the viewing window (312, 412); and query a server computing system (202) for interaction data (230) of the candidate computer-aided design model elements without querying the server computing system (202) for interaction data of non-candidate computer-aided design model elements of the computer-aided design model (212) that do not satisfy the size criterion, and wherein the non-candidate computer-aided design model elements of the computer-aided design model are also displayed in the viewing window; wherein the interaction data (230) includes computer-aided design model data that supports user interaction with the candidate computer-aided design model elements of the computer-aided design model (212), and wherein the interaction data is different from the visualization data and the interaction data does not include any of the visualization data used to display the computer-aided design model.

Citation Information

Patent Citations

  • Methods and systems for dynamically loading portions of a computer-aided design model on demand

    US20120105449A1

  • Hierarchical tile-based data structure for efficient client-server publishing of data over network connections

    US7283135B1