3D linking

文档序号:96053 发布日期:2021-10-12 浏览:22次 中文

阅读说明:本技术 3d链接 (3D linking ) 是由 M·埃珀特 S·V·萨万特 J·T·斯泰尔斯 于 2021-04-02 设计创作,主要内容包括:计算机辅助设计(CAD)系统和对应的方法使得用户能够轻松地管理和共享与三维(3D)CAD模型的3D上下文相关的信息。该方法创建针对3D上下文的3D链接。3D链接包括静态链接和可变链接。静态链接响应于用户打开3D链接而重定向到可变链接。可变链接使得(i)3D CAD模型能够被定位和打开,以及(ii)3D上下文能够在3D CAD模型内被显示。该方法将3D链接存储在数据库中。3D链接使得经由共享来自数据库的3D链接,3D上下文能够在用户之间或之中共享。3D链接通过消除创建可能变得过时的3D模型的图片或副本的需要,在帮助设计工程师协作方面起着重要的作用。(A computer-aided design (CAD) system and corresponding method enable users to easily manage and share information related to a three-dimensional (3D) context of a 3D CAD model. The method creates a 3D link for a 3D context. The 3D link includes a static link and a variable link. The static link is redirected to the variable link in response to the user opening the 3D link. The variable link enables (i) the 3D CAD model to be located and opened, and (ii) the 3D context to be displayed within the 3D CAD model. The method stores the 3D link in a database. The 3D links enable 3D context sharing between or among users via sharing 3D links from a database. 3D linking plays an important role in helping design engineers collaborate by eliminating the need to create pictures or copies of 3D models that may become obsolete.)

1. A computer-implemented method for sharing a three-dimensional (3D) context of a three-dimensional (3D) computer-aided design (CAD) model, the computer-implemented method comprising:

creating a 3D link to the 3D context within the 3D CAD model, creating including forming a static link and a variable link, the static link configured to be redirected to the variable link in response to a user opening the 3D link, the variable link enabling (i) the 3D CAD model to be located and opened, and (ii) the 3D context to be displayed within the 3D CAD model; and

storing the 3D link in a database, the 3D link enabling the 3D context to be shared between or among users via sharing the 3D link from the database.

2. The computer-implemented method of claim 1, wherein:

features of the 3D CAD model are organized in a feature tree;

the feature tree includes 3D link features for the created 3D link; and

the 3D link feature enables editing of a placement of a 3D link indicator representing the 3D link within the 3D CAD model to change a targeted 3D context, enables editing of at least one requirement of the 3D link, provides a rollback point in a history of the 3D CAD model, enables storage of user-editable information related to the 3D context, or a combination thereof.

3. The computer-implemented method of claim 1, wherein the 3D CAD model is associated with a coordinate system, and wherein the 3D context is a fixed 3D point specified by x, y, and z coordinates represented in the coordinate system of the 3D CAD model.

4. The computer-implemented method of claim 1, wherein the 3D link is represented as a text string, wherein the 3D context is a geometric entity of the 3D CAD model, wherein the static link is smaller relative to the variable link, or a combination thereof.

5. The computer-implemented method of claim 4, wherein the geometric entity comprises: a feature in the 3D CAD model, a geometry belonging to the feature, a reference plane included in the 3D CAD model, a reference line included in the 3D CAD model, a reference point included in the 3D CAD model, a sketch included in the 3D CAD model, a size element on the sketch or on a 3D entity included in the 3D CAD model, an annotation element on the sketch or on the 3D entity, or a combination thereof.

6. The computer-implemented method of claim 1, further comprising: storing the 3d cad model in the database, and wherein forming the static link comprises connecting a database address of the database and a unique identifier of the variable link.

7. The computer-implemented method of claim 1, wherein the database is a 3D link database, wherein the 3D CAD model is stored in a 3D CAD model database, and wherein forming the static link comprises connecting a database address of the 3D link database and a unique identifier of the variable link, the variable link comprising a model address of the 3D CAD model stored in the 3D CAD model database.

8. The computer-implemented method of claim 1, wherein forming the variable link comprises connecting:

a model address comprising an address of the 3D CAD model; and

(i) a core 3D address of the 3D context within the 3D CAD model, the core 3D address being relative to the model address, or (ii) a unique identifier of a 3D link attribute or a 3D link feature, wherein the core 3D address is included as metadata within the 3D link attribute or the 3D link feature, and wherein the 3D link attribute is attached to a 3D point or geometric entity of the 3D CAD model.

9. The computer-implemented method of claim 8, wherein the model address further includes an identifier of a web-based CAD application within which the 3D CAD model is to be opened in response to opening the 3D link.

10. The computer-implemented method of claim 8, further comprising: enabling a user to specify that the 3D link is to be locked to a given version or revision of the 3D CAD model, and wherein the model address further includes the given version or revision of the 3D CAD model if the 3D link is specified to be locked.

11. The computer-implemented method of claim 1, wherein storing comprises entering the 3D link into the database as a key-value pair, wherein the key-value pair comprises a key and a value, wherein the static link is the key, and wherein the variable link is the value.

12. The computer-implemented method of claim 1, wherein, in the event that a change is made to the 3D CAD model after the 3D link is created, the computer-implemented method further comprises: automatically updating the variable link in response to the change made, prompting a user for input if the change causes the 3D context to become invalid, or a combination thereof.

13. A computer-aided design (CAD) system configured to:

opening a 3D Computer Aided Design (CAD) model;

enabling a user to select a 3D context of the opened 3D CAD model;

creating a 3D link for the 3D context, the 3D link including a static link and a variable link, the static link configured to be redirected to the variable link in response to opening the 3D link, the variable link enabling (i) the 3D CAD model to be located and opened and (ii) the 3D context to be displayed within the 3D CAD model; and

storing the 3D link in a 3D link database communicatively coupled to the CAD system, the 3D link enabling the 3D context to be shared between or among users via sharing the 3D link from the 3D link database.

14. The system of claim 13, wherein the CAD system comprises a display screen configured to display the opened 3D CAD model, wherein the 3D context is a 3D point or a geometric entity, and wherein, to enable the user to select the 3D context, the CAD system is further configured to enable the user to drag and drop a pin, flag, or bookmark icon onto the 3D point or the geometric entity, the 3D point or the geometric entity being displayed on the display screen.

15. The system of claim 14, wherein the CAD system is further configured to: attaching a 3D link attribute to the 3D point or the geometric entity, or referencing the 3D point or the geometric entity via a 3D link feature for the 3D link, the 3D link feature being included in a feature tree of the 3D CAD model.

16. The system of claim 15, wherein the static link is a text string, and wherein the CAD system is further configured to: adding the text string of the static link as metadata to the 3D link attribute or the 3D link characteristic, thereby enabling the static link to be used as a key for accessing the variable link in the 3D link database.

17. The system of claim 13, wherein the CAD system comprises a display screen configured to display the opened 3D CAD model, wherein the CAD system is further configured to form the variable link by connecting:

a model address comprising an address of the 3D CAD model; and

(i) a core 3D address of the 3D context within the 3D CAD model, the core 3D address being relative to the model address, or (ii) a unique identifier of a 3D link attribute or a 3D link feature, wherein the core 3D address is included as metadata within the 3D link attribute or the 3D link feature, and wherein the 3D link attribute is attached to a 3D point or geometric entity of the 3D CAD model.

18. The system of claim 13, wherein the CAD system is further configured to: storing the 3D link in the 3D link database by entering the 3D link as a key-value pair into the 3D link database, wherein the key-value pair comprises a key and a value, wherein the static link is the key, and wherein the variable link is the value.

19. The system of claim 13, wherein the 3D CAD model is stored in a 3D CAD model database, wherein the 3D link database and the 3D CAD model database are hosted by a common cloud environment, and wherein the CAD system is configured to access the 3D link database using a given user authentication for opening the 3D CAD model stored in the 3D CAD model database.

20. A non-transitory computer-readable medium for navigating to three-dimensional (3D) linked targets within a computer-aided design (CAD) application, the non-transitory computer-readable medium having encoded thereon sequences of instructions which, when loaded and executed by at least one processor, cause the at least one processor to:

splitting the 3D link into a plurality of components, the plurality of components including a model address, a core 3D address, and view parameters;

accessing a 3D CAD model using the model address;

opening the accessed 3D CAD model;

displaying the 3D CAD model within the CAD application using the orientation of the camera and the view conditions set according to the view parameters; and

navigating to the target of the 3D link by displaying an icon at or highlighting a geometric entity or a 3D point of the 3D CAD model, the geometric entity or the 3D point being specified by the core 3D address.

Background

Computer-aided design (CAD) software allows users to construct and manipulate complex three-dimensional (3D) models. A number of different modeling techniques may be used to create the 3D model. One such technique is solid modeling, which provides a topological 3D model, where the 3D model is a collection of interconnected topological entities (e.g., vertices, edges, faces, etc.). The topological entities have corresponding supporting geometric entities (e.g., points, clipping curves, and clipping surfaces) that correspond to edge-bounded topological surfaces. The 3D CAD system can incorporate solid modeling and other modeling techniques (e.g., parametric modeling techniques) for constructing and manipulating 3D models. Parametric modeling techniques can be used to define various parameters for different features and components of a model, and to define relationships between those features and components based on relationships between the various parameters. A typical user of such a 3D CAD system may be referred to as a design engineer.

Design engineers design physical and aesthetic aspects of 3D models, and are proficient in 3D modeling techniques. The following is a definition of certain terms that may be used in describing a 3D CAD system that may be used by such a design engineer to design a 3D model.

3D model: a 3D model refers to a representation of the geometry of a solid in a CAD program. The modeled object may contain no 3D entities or one or more 3D entities and may contain no sketch or one or more sketches.

Assembly: a collection of parts and components forming a potentially complex modeled object (e.g., an automobile or aircraft). In CAD programs, an assembly is represented by a document in which parts, features, and other assemblies (subassemblies) are paired together. Parts and subassemblies may be present in documents separate from the assembly.

Attributes: most modern CAD programs have provisions for attaching attributes to any geometric entity. The attributes may contain any additional data that may be related to the geometric entity.

Main body: the entity body includes topological data and geometric data. Topological data (e.g., faces, edges, vertices, etc.) in a body of an entity have corresponding geometric data in the same body of the entity. Each vertex corresponds to a point. Each edge corresponds to a curve. Each facet corresponds to a surface.

Component (versus 3D model): any part or sub-assembly within an assembly.

The side: a single outer boundary of the feature.

An entity: discrete elements such as faces, edges, vertices, etc.

Surface: selectable regions (planes or other regions) of the model or surface having boundaries that help define the shape of the model or surface. For example, a rectangular solid has six faces, while a cylindrical solid has three faces.

The characteristics: individual shapes, which in combination with other features, constitute a part or assembly. The 3D model is modified by creating CAD features (e.g., fillets, chamfers, bumps, cuts, holes, angled drafts, etc.). Features may be interchangeably referred to herein as CAD features.

Feature nodes: the representation of a feature in a feature tree is referred to as a feature node. Most modern CAD programs associate a unique identifier (e.g., numeric or alphanumeric text) with each feature node. The feature tree may be interchangeably referred to herein as a specification tree or simply a tree.

Feature trees (i.e., canonical trees or trees): in conventional CAD programs, features in a 3D model are organized in a tree (referred to as a feature tree or canonical tree) that lists each feature and defines how the feature relates to higher-level features and lower-level features in the tree.

Geometric entity: a geometric entity may refer to a feature node or some entity within a CAD feature, such as a line, curve, plane, surface, etc. Most modern CAD programs associate a unique identifier with each geometric entity. The unique identifier may be numeric or alphanumeric text.

Large design review: a mode of assembly review that allows very large assemblies to be quickly opened, while still retaining the ability to be useful in making design reviews of the assemblies. In a large design review mode, a user may, for example: navigating a design tree of assemblies, measuring distances, creating cross-sections, hiding and displaying components, and creating, editing, and playing back a drill (walk-through). The large design review mode may also be referred to as a "graphics mode".

Parts: a single 3D object composed of features. The part may comprise a plurality of bodies. The parts may become components in an assembly. Examples of parts include, for example, bolts, pins, plates, and the like.

Plane: flat construction geometry.

Point: a single location in the 3D model.

Resolved: the state of the assembly component that is fully loaded in memory. When parsed, the model data for all components is available so their entities can be selected, referenced, edited, etc.

Subassembly: an assembly that is part of a larger assembly. For example, the steering mechanism of an automobile is a subassembly of the automobile.

Surface: a zero thickness plane or 3D solid with an edge boundary.

Vertex: a point where two or more edges intersect. Vertices may be selected for sketch, dimensioning, and other CAD operations.

As disclosed above, the CAD system can be a solid modeling system that is a feature-based 3D CAD system, wherein a 3D model of a part can be constructed using various features (e.g., bosses, fillets, chamfers, cuts, holes, shells, lofts, scans (sweep), etc.). CAD systems store the contents of parts, subassemblies, and assemblies in data files that may be referred to as CAD data files. The contents of such CAD data files may include, in addition to features, design configuration files, layouts, internal components (e.g., bodies), and graphical entities. During the design of a 3D model, design engineers may collaborate with each other on various aspects of such CAD data files.

Disclosure of Invention

Embodiments of the present invention provide an efficient and advantageous mechanism for CAD users (e.g., design engineers) to collaborate on 3D models. In particular, embodiments provide a 3D link that easily conveys a reference point context for a model part or element (referred to as a 3D context) that includes the relative 3D spatial position and orientation of the subject component of the CAD model. In this manner, embodiments of the present invention improve the accuracy of the communication and, thus, the collaboration among the CAD users on the subject CAD model.

According to an example embodiment, a computer-implemented method for sharing a three-dimensional (3D) context of a three-dimensional (3D) computer-aided design (CAD) model includes: a 3D link is created for a 3D context within the 3D CAD model. Creating includes forming static links (also interchangeably referred to herein as "external links" or "external 3D links") and variable links (also referred to herein as "internal links" or "internal 3D links"). The static link is configured to be redirected to the variable link in response to a user opening the 3D link. The variable link enables (i) the 3D CAD model to be located and opened, and (ii) the 3D context to be displayed within the 3D CAD model. The method further includes storing the 3D link in a database, the 3D link enabling sharing of the 3D context between or among users via sharing of the 3D link from the database.

The features of the 3D CAD model may be organized in a feature tree. The feature tree may include 3D link features for the created 3D link. The 3D link feature enables editing of a placement of a 3D link indicator representing the 3D link within the 3D CAD model to change a targeted 3D context, enables editing of at least one requirement of the 3D link, provides a rollback point in a history of the 3D CAD model, enables storage of user-editable information related to the 3D context, or a combination thereof.

The 3D CAD model is associated with a coordinate system. The 3D context may be a fixed 3D point specified by x, y, and z coordinates represented in the coordinate system of the 3D CAD model.

The 3D link may be represented as a text string, the 3D context may be a geometric entity of the 3D CAD model, the static link may be smaller relative to the variable link, or a combination thereof.

The geometrical entities may include: a feature in the 3D CAD model, a geometry belonging to the feature, a reference plane included in the 3D CAD model, a reference line included in the 3D CAD model, a reference point included in the 3D CAD model, a sketch included in the 3D CAD model, a size element on the sketch or on a 3D entity included in the 3D CAD model, an annotation element on the sketch or on the 3D entity, or a combination thereof.

The computer-implemented method may further include storing the 3D CAD model in a database that stores 3D links. Forming the static link may include connecting a database address of the database and a unique identifier of the variable link.

For a non-limiting example, the database may be a 3D link database that is specific or dedicated to storing 3D links of one or more 3D CAD models. The 3D CAD model may be stored in a 3D CAD model database. Forming the static link may include connecting a database address of the 3D linked database and a unique identifier of the variable link. The variable link may include a model address of the 3D CAD model stored in the 3D CAD model database.

The 3D CAD model database can be a cloud-based database, a server, or a computer.

Forming the variable link may include connecting: a model address comprising an address of the 3D CAD model; and (i) a core 3D address of the 3D context within the 3D CAD model, the core 3D address being relative to the model address, or (ii) a unique identifier of a 3D link attribute or a 3D link feature, wherein the core 3D address is included as metadata in the 3D link attribute or the 3D link feature. The 3D link attribute may be attached to a 3D point or geometric entity of the 3D CAD model.

Forming the variable link may further include linking at least one view parameter, or including in the metadata at least one view parameter, the at least one view parameter defining an orientation of the virtual camera, a view condition, or a combination thereof. At least one view parameter is optional, since the user may open the 3D model in the "default view".

The model address may further include an identifier of the web-based CAD application, and the 3D CAD model is to be opened within the web-based CAD application in response to opening the 3D link. However, it should be understood that the identifiers are not limited to identifiers of web-based CAD applications, and that the 3D CAD model is not limited to being opened by a web-based CAD application.

The computer-implemented method may further include enabling the user to specify that the 3D link is to be locked to a given version or revision of the 3D CAD model. Where the 3D link is designated as locked, the model address may further include a given version or revision of the 3D CAD model.

Storing may include entering the 3D link into the database as a key-value pair, wherein the key-value pair includes a key and a value, wherein the static link is a key, and wherein the variable link is a value of the key-value pair.

In the case where changes are made to the 3D CAD model after the 3D link is created, the computer-implemented method may further comprise: automatically updating the variable link in response to the change made, prompting a user for input in the event that the change causes the 3D context to become invalid, or a combination thereof.

According to another example embodiment, a CAD system is configured to open a 3D computer-aided design (CAD) model and enable a user to select a 3D context of the opened 3D CAD model. The CAD system is further configured to create a 3D link for the 3D context. The 3D link includes a static link and a variable link. The static link is configured to be redirected to the variable link in response to opening the 3D link. The variable link enables (i) the 3D CAD model to be located and opened, and (ii) the 3D context to be displayed within the 3D CAD model. The CAD system is further configured to store the 3D link in a 3D link database communicatively coupled to the CAD system. The 3D link enables 3D context sharing between or among users via sharing of the 3D link from a 3D link database.

The CAD system may include a display screen configured to display the opened 3D CAD model. The 3D context may be a 3D point or a geometric entity, and wherein, to enable the user to select the 3D context, the CAD system may be further configured to enable the user to drag and drop a pin, flag or bookmark icon (generally, a marker) onto the 3D point or geometric entity, the 3D point or geometric entity being displayed on the display screen.

The CAD system may be further configured to attach a 3D link attribute to the 3D point or the geometric entity, or to reference the 3D point or the geometric entity via a 3D link feature for the 3D link, the 3D link feature being included in a feature tree of the 3D CAD model.

The static link may be a text string, and the CAD system may be further configured to: the text string of the static link is added as metadata to the 3D link properties or 3D link characteristics, thereby enabling the static link to be used as a key for accessing the variable link in the 3D link database.

The CAD system may include a display screen configured to display the opened 3D CAD model. The CAD system may be further configured to form the variable link by connecting: a model address comprising an address of the 3D CAD model; and (i) a core 3D address of the 3D context within the 3D CAD model, the core 3D address being relative to the model address, or (ii) a unique identifier of a 3D link attribute or a 3D link feature, wherein the core 3D address is included as metadata within the 3D link attribute or the 3D link feature. The 3D link attribute may be attached to a 3D point or geometric entity of the 3D CAD model.

The CAD system can be further configured to: the 3D link is stored in the 3D link database by entering the 3D link as a key-value pair into the 3D link database. The key-value pair comprises a key and a value, wherein the static link is a key, and wherein the variable link is a value of the key-value pair.

The 3D CAD model may be stored in a 3D CAD model database. The 3D link database and the 3D CAD model database may be hosted by a public cloud environment. The CAD system may be configured to access the 3D link database using a given user authentication for opening the 3D CAD model stored in the 3D CAD model database.

Alternative system embodiments are similar to those described above in connection with the example method embodiments.

According to an example embodiment, a non-transitory computer-readable medium for navigating to a target of a three-dimensional (3D) link from within a computer-aided design (CAD) application has encoded thereon sequences of instructions that, when loaded and executed by at least one processor, cause the at least one processor to split the 3D link into a plurality of operational component parts or logical component parts. The plurality of operations/logic components may include a model address, a core 3D address, and view parameters. The sequence of instructions may further cause the at least one processor to access the 3D CAD model using the model address, open the accessed 3D CAD model, and display the 3D CAD model within the CAD application with the orientation of the camera and the view conditions set according to the view parameters. The sequences of instructions may further cause the at least one processor to navigate to the 3D linked target by displaying an icon at a geometric entity or 3D point of the 3D CAD model or by otherwise highlighting the geometric entity or 3D point. The geometrical entities or 3D points may be specified by core 3D addresses.

The 3D CAD model may be associated with a coordinate system. The 3D points may be fixed 3D points specified by x, y, and z coordinates represented in a coordinate system of the 3D CAD model.

The CAD application can be a CAD web application, and a name of the CAD web application can be included in the model address. The CAD web application may be selected based on the type of 3D CAD model or metadata associated with the 3D CAD model. However, it should be understood that CAD applications are not limited to web applications.

The CAD application may be selected based on the type of 3D CAD model or metadata associated with the 3D CAD model.

The 3D link may be represented as a text string. The 3D link may be provided to the CAD application via an input field of the CAD application that enables the 3D link to be input by a user.

The 3D link may be provided to the CAD application in response to the user clicking or otherwise selecting the 3D link from within another application. Clicking/user selection may cause the web browser to establish a connection to the server and provide a 3D link to the server. The address of the server may be embedded in the 3D link, and the CAD web application may be opened by the server. In this way, for non-limiting example, 3D linking may be implemented using hypertext transfer protocol hyperlink technology or equivalent.

It should be appreciated that the example embodiments disclosed herein may be implemented in the form of a method, apparatus, system, or computer readable medium having program code embodied therein.

Drawings

The foregoing will be apparent from the following more particular description of example embodiments, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating embodiments.

FIG. 1A is a block diagram of an example embodiment of a system.

FIG. 1B is a block diagram of an example embodiment of a feature tree.

FIG. 1C is a block diagram of an example embodiment of a CAD system of the system of FIG. 1A.

FIG. 1D is a display of an example embodiment of a context menu on a feature tree.

FIG. 1E is a display of an example embodiment of a context menu for a graphics area.

FIG. 1F is a schematic illustration of a display of an example embodiment of a 3D link indicator and a mouse-over tip.

FIG. 1G is a schematic diagram of another example embodiment display of a 3D link indicator and a mouse-over tip.

Fig. 1H is a display of an example embodiment of an app toggle dialog.

FIG. 2 is a schematic diagram of a display screen showing a visualization of an example embodiment of a 3D link indicator.

FIG. 3 is a table of an example embodiment of visual icons corresponding to the status of a 3D link indicator.

FIG. 4 is a schematic illustration of an example embodiment display of information within a 3D link feature, the 3D link feature being displayed in a feature tree or graphical area via a mouse hover prompt box.

Fig. 5A is a CAD drawing of an example embodiment of a cylinder with points that are the target of a 3D link.

Fig. 5B is a CAD drawing of another exemplary embodiment of the cylinder of fig. 5A.

FIG. 5C is a CAD drawing of another example embodiment of the cylinder of FIG. 5A with a geometric entity that is the target of a 3D link.

Fig. 5D is a CAD drawing of an example embodiment of the cylinder of fig. 5C.

FIG. 5E is a CAD drawing of an example embodiment of a 3D object having protrusions.

FIG. 5F is a CAD diagram of an example embodiment of the 3D object of FIG. 5E with height-reducing protrusions.

Fig. 5G is a CAD drawing of an example embodiment of a 3D object with rounded corners.

Fig. 5H is a CAD drawing of an example embodiment of the 3D object of fig. 5G with new rounded corners.

FIG. 6 is a flow diagram of an example embodiment of a computer-implemented method for sharing a 3D context of a 3D CAD model.

FIG. 7 is a flow diagram of an example embodiment of a computer-implemented method for navigating from within a CAD application to a target of a 3D link.

FIG. 8 is a block diagram of an example embodiment of a 3D link.

FIG. 9 is a block diagram of an example internal structure of a computer, optionally within embodiments disclosed herein.

Detailed Description

The description of the example embodiments follows.

Example embodiments disclosed herein pertain to any field around Product Lifecycle Management (PLM) that processes three-dimensional (3D) data. For example, software products for product design, product review, industrial design, sketching, drawing, and communication apps that allow 3D content may advantageously employ example embodiments of 3D linking, as disclosed below. For example, such software products and communication apps may be included in a three-dimensional (3D) Computer Aided Design (CAD) system.

When working cooperatively or with external vendors, three-dimensional 3D CAD system users often need to indicate areas of a model component that require modification, require specific processing, or interface with other components. Graphs and tags may facilitate the communication of such information, but typically multiple documents are required to convey such information. During the development process, such documents may become obsolete or lost, causing errors and/or duplicative work.

For example, when working collaboratively in a team, or even during simple communication on a 3D CAD-related topic, a user (e.g., a design engineer) is typically required to reference a particular geometric entity within a particular 3D CAD model (also interchangeably referred to herein simply as a 3D model or model). For example, an employee may want to consult an administrator: how many draft angles need to be applied to a particular facet in the 3D model. With existing systems, an employee may have to take several screenshots of the face in question and send such screenshots to an administrator, for example, via electronic mail (email). A problem with this approach is that the recipient of the screenshot (e.g., an administrator) must spend time and effort to manually locate the area of interest (e.g., a particular face in the 3D model) captured by the screenshot. This process is cumbersome and error prone. Furthermore, if the host 3D model undergoes any changes during this time, the screen shot may become obsolete.

Some CAD programs allow a user to create bookmarks on a particular geometric entity. In this way, a user may, for example, create a bookmark on a particular facet in question, export or save the 3D model to a file, and then send the file to another user (e.g., an administrator) via email or File Transfer Protocol (FTP). However, a problem with this approach is that uploading or sending a file can be cumbersome, especially if the file size is large (as is often the case). Furthermore, if the master 3D model undergoes any changes during this time, the transmitted file may become obsolete. Another communication option is to send instructions via e-mail or phone, such as "navigate to this folder or workspace, then open the 3D model, then go to a special feature … … named XYZ," and so on. However, this process is also cumbersome and prone to error.

Example embodiments disclosed herein provide functionality that allows a user to create references to: a particular point (e.g., click location), a vertex, an edge, a face, a body, or a component of a 3D model. This reference may be stored with the 3D model and allow the user to add information to the reference, such as text annotations, pictures, videos, links to another model, and so forth. Since the references can be stored with the 3D model, their representations can be displayed in special folders in the specification/feature tree and can be edited for placement and content, or deleted if no longer relevant. For locations inside the 3D model, such references may be referred to herein as 3D links, and may also be interchangeably referred to herein as 3D uniform resource locators (3D-URLs). Its representation in the specification/feature tree may be referred to herein as a 3D link feature.

According to example embodiments, the 3D links enable users to easily manage and share information related to 3D contexts (e.g., specific locations and/or geometric entities within a 3D model) in a clear manner. According to an example embodiment, a 3D link may be represented as a generic address across platforms and applications that is directed to or points at a particular location within a 3D model, which may be hosted on a cloud, server, or computer. The 3D link provides a mechanism to share 3D locations among or among users.

Although example embodiments disclosed herein may be described as benefiting a user in a collaborative setting, it should be understood that such benefits are not limited thereto. For example, a single user may create a 3D link to the location of a 3D model and add annotations thereto so that they can later come back to the 3D model and recall what they are doing and what they need to do next.

According to an example embodiment, if the 3D model undergoes modification before the 3D link is opened, the 3D link allows the necessary mechanisms to keep itself active even after such modification. An example embodiment of a 3D link provides a single real source (SSOT). For example, 3D linking eliminates the need to create pictures or copies of the 3D model for communication, which is advantageous because such pictures/copies may become obsolete. According to example embodiments, the 3D link maintains a reference to or consistently points to the master 3D model, and thus, it follows the principles of SSOT.

Example embodiments of 3D links facilitate sharing. For example, 3D links allow a given user to easily share a particular 3D location (e.g., a 3D point or geometric entity) with another user. Another user, who may be located in a different geographic location relative to the given user, may open a 3D link on any device from potentially different apps/applications used by the given user at any time, and the device may open the same 3D model and display the 3D location with the same camera orientation and view conditions presented when the given user created the 3D link.

Example embodiments of 3D links assist in collaboration and play an important role in assisting user collaboration. The 3D link may accompany any medium (e.g., a web page, email, or other medium) and add valuable context thereto. For example, the 3D links disclosed herein may be added to various communication tools, such as email, chat messages, meeting invitations, and the like; added to documents such as blogs, wiki pages, slides, white papers, etc.; annotations added as references inside CAD or PLM data, e.g. in a graph or 3D model; added as a reference link to a bill of materials (BOM), and so on. However, it should be understood that the 3D link is not limited to being added thereto.

Example embodiments of 3D links facilitate organization of information. For example, a CAD user may have multiple design tasks performed at different 3D locations in one or more 3D models. According to an example embodiment, a user may create 3D links to each of those 3D locations and add those 3D links to their task list. If the user has partially performed a task for a particular location of the 3D model, the user may add an annotation to the 3D link for that location. At a later point in time, the user may click on (or otherwise user select) the 3D link, view the annotation, and continue from where the user left off.

An example embodiment of a 3D link provides easy access, for example, by reducing the entire manual workflow of "navigate to this folder or workspace, then open this 3D model, then go to a specific feature … … named XYZ" to a single click. With the increasing popularity of cloud-based CAD systems, example embodiments of 3D linking provide a mechanism for their users to manage and share 3D locations in a collaborative work environment, such as disclosed below with respect to fig. 1A.

Fig. 1A is a block diagram of an example embodiment of a system 100. In system 100, a first user 102a (e.g., a design engineer) is using a first 3D computer-aided design (CAD) system 104a and collaborates with a second user 102b on a 3D CAD model 106. It should be understood that 3D CAD model 106 of FIG. 1A is for illustrative purposes, and that the 3D CAD models disclosed herein are not limited thereto. Second user 102b is using second 3D CAD system 104b, which second 3D CAD system 104b may be the same or a different type of 3D CAD system relative to first 3D CAD system 104 a. First 3D CAD system 104a, second 3D CAD system 104b, and database 108 are communicatively coupled via network 101 in system 100. The network 101 may be any type of network (e.g., a wired or non-wired network) that allows communication between the first 3D CAD system 104a and the second 3D CAD system 104b, and further allows the first 3D CAD system 104a and the second 3D CAD system 104b to access the database 108. First 3D CAD system 104a and second 3D CAD system 104b may be referred to simply as CAD systems. 3D CAD model 106 may be referred to simply as a CAD model or model. Although example embodiments disclosed herein may be described with respect to first 3D CAD system 104a or second 3D CAD system 104b, it should be understood that first 3D CAD system 104a or second 3D CAD system 104b may employ such systems. Further, it should be understood that the actions disclosed herein with respect to the first user 102a and the second user 102b may be performed by either user.

Although database 108 is shown as storing a single 3D link (i.e., 3D link 110), it should be understood that database 108 may store multiple 3D links, and that database 108 may be a distributed or non-distributed database. The database 108 may be any type of database capable of storing 3D links, such as a cloud-based database, a server, or a computer. The database 108 may also be referred to herein as a 3D link database.

In the example embodiment of fig. 1A, first 3D CAD system 104a is configured to open 3D CAD model 106 and enable first user 102a to select 3D context 112 of the opened 3D CAD model 106. The first 3D CAD system 104a is further configured to create a 3D link 110 for a 3D context 112. The first 3D CAD system 104a is further configured to display the 3D link indicator 114, wherein a tip 115 of the 3D link indicator 114 coincides with the selected location of the 3D context 112. Although in the example embodiment of FIG. 1A, the 3D link indicator 114 is shown as a pin icon, it should be understood that the 3D link indicator 114 is not so limited and may be any visual indicator or marker for indicating that a 3D link 110 has been created for the 3D context 112.

The 3D links 110 include static links 116 (also interchangeably referred to herein as external links or external 3D links) and variable links 118 (also interchangeably referred to herein as internal links or internal 3D links). Static link 116 is configured to be redirected to variable link 118 in response to the opening (e.g., user selection and/or activation) of 3D link 110. Variable link 118 enables (i)3D CAD model 106 to be located and opened, and (ii)3D context 112 to be displayed within 3D CAD model 106. The first 3D CAD system 104a is further configured to store the 3D link 110 in a database 108, the database 108 being communicatively coupled to the first 3D CAD system 104 a. The 3D link 110 enables a 3D context 112 to be shared between the first user 102a and the second user 102b via sharing the 3D link 110 from the database 108.

In the example embodiment of fig. 1A, first 3D CAD system 104a and second 3D CAD system 104b include respective display screens, i.e., first display screen 107a and second display screen 107b, configured to display open 3D CAD model 106. The 3D context 112 may be a 3D point or a geometric entity. To enable the first user 102a to select the 3D context 112, the first 3D CAD system 104a is further configured to enable the first user 102a to drag and drop a 3D indicator (e.g., a pin, flag, bookmark icon, or other marker/visual indicator) onto a 3D point or geometric entity.

The first 3D CAD system 104a is further configured to attach a 3D link attribute (not shown) to the 3D point or geometric entity (i.e., the 3D context 112) or to reference the 3D point or geometric entity via a 3D link feature (not shown) for the 3D link 110. The attributes or 3D link features are included in a feature tree of 3D CAD model 106, such as 3D link feature 152 included in feature tree 150 of FIG. 1B, as described in further detail below.

With continued reference to fig. 1A, the static link 116 may be a text string (not shown), such as described further below, and the first 3D CAD system 104a may be further configured to add the text string of the static link 116 as metadata to a 3D link attribute or 3D link feature, such that the static link 116 can serve as a key for accessing the variable link 118 in the database 108.

The first 3D CAD system 104a can be further configured to form the variable link 118 by connecting: a model address that includes a global address or other computer network address (for non-limiting example, a web address or URL) of 3D CAD model 106, and (i) a core 3D address (not shown) of 3D context 112 within 3D CAD model 106, the core 3D address being a local memory address relative to the model address, or (ii) a unique identifier (not shown) of a 3D link attribute or 3D link feature, wherein the core 3D address is included as metadata within the 3D link attribute or 3D link feature. The 3D link properties may be attached to 3D points or geometric entities (i.e., 3D context 112) of 3D CAD model 106. The 3D link characteristics reference (i.e., point to) 3D context 112.

The first 3D CAD system 104a can be further configured to: the 3D link 110 is stored in the database 108 by entering the 3D link 110 into the database 108 as a key-value pair. The key-value pair includes a key (not shown) and a value (not shown), wherein the static link 116 is a key, and wherein the variable link 118 is a value.

The 3D CAD model 106 can be stored in a 3D CAD model database (not shown) as is common in the art. As disclosed above, the database 108 may be referred to as a 3D linked database. According to an example embodiment, the 3D link database and the 3D CAD model database may be hosted by a public cloud environment (not shown). The first 3D CAD system 104a or the second 3D CAD system 104b may be configured to access the 3D link database 108 using a given user authentication of the first user 102a or the second user 102 b. A given user authentication may be used to open 3D CAD model 106 stored in the 3D CAD model database. The features of 3D CAD model 106 may be organized in a feature tree, such as feature tree 150 of FIG. 1B, disclosed below.

FIG. 1B is a block diagram of an example embodiment of a feature tree 150. In feature tree 150, each of the features has a corresponding icon, such as physical product feature icon 154a, external reference feature icon 154b, and design guidance feature icon 154 c. It should be understood that such icons disclosed in fig. 1B are for illustrative purposes, and that the feature icons disclosed herein are not limited thereto.

The feature tree 150 includes a single 3D link feature 152. In the feature tree 150, a 3D link feature 152 is displayed at the point in the feature history where the 3D link feature 152 was created. The 3D link features 152 provide such features in the feature tree 150: which allows editing of the placement and requirements of the 3D link 110 as disclosed above with respect to fig. 1A. 3D link feature 152 provides a rollback point in the history of 3D CAD model 106 to allow a viewer (e.g., first user 104a, second user 104b, or another user) to see when/where/why 3D link 110 was created. This is to allow tracking of historical changes, manufacturing or assembly instructions, or to record design changes of 3D CAD model 106 at some point in the process. In the example embodiment of FIG. 1A disclosed above, for a non-limiting example, the first user 102a has entered an annotation 120 regarding the 3D context 112 to indicate to the second user 102b "please ensure that the surface finish is in compliance with the specification". Such annotations may be stored as part of a 3D link feature 152, which 3D link feature 152 is added to the feature tree 150, such as disclosed below with respect to fig. 1C.

Fig. 1C is a block diagram of an example embodiment of first 3D CAD system 104a of system 100 of fig. 1A. In the example embodiment of FIG. 1C, the first user 102a has created the 3D link 110 and a representation thereof (i.e., the 3D link characteristics 152) has been added to the characteristics tree 150 and is accessible to the first user 102a via the design manager menu 151 displayed on the first display screen 107 a. The 3D link feature 152 provides a point for the first user 102a to store additional information (e.g., the annotation 120 of fig. 1A) for the 3D link 110, which can be edited and created by the first user 102 a. It should be understood that such additional information is not limited to the annotation 120, and that additional information such as an indication of the cross-sectional view that was active when the 3D link 110 was created may be stored. This designation may be useful because 3D link 110 may be created with 3D link indicator 114 on an interior face of 3D CAD model 106 that is only visible during cross-sectional display, such as disclosed further below with respect to FIG. 2.

Referring to fig. 1A-C, according to an example embodiment, second 3D CAD system 104b may determine the application (i.e., app) that created 3D link 110. By determining the app that created 3D link 110, 3D link 110 may be more easily received and followed by second user 102b to quickly and easily access 3D CAD model 106 in the app within which 3D link 110 was created. This may be useful for multiple applications to be able to view and/or edit the 3D CAD model 106 in question. By directly entering the create app, the second user 102b immediately has all the tools necessary to perform any action requested through the 3D link feature 152, such as modifying the 3D context 112 to which the 3D link 110 points or attaches, or pairing components within the link to the 3D link 110 at the location where the 3D link 110 was created.

If creating the app following the 3D link 110 is not available to the second user 102b, the 3D link 110 may default to the most common application available to the second user 102b, e.g., DassaultOr may be configured as a default application or another application selected, for example, via the app toggle dialog box 180 of fig. 1H, such asAs further disclosed below. According to an example embodiment, the user preferences may be configurable to enable the second user 102b to configure the second 3D CAD system 104b to open all following 3D links in a particular application regardless of the availability of the corresponding created application.

According to an example embodiment, the first 3D CAD system 104a or the second 3D CAD system 104b may provide a 3D link command, which 3D link command may be placed on a feature tab (not shown) of an action bar within, for example, a reference geometry pop-up box (not shown). For example, a 3D link command may be provided directly below, e.g., such as xDesign or xShapex-app, othersCoordinate system commands in the x-app, or another app. However, it should be understood that the 3D link commands are not limited to being placed as described, and are not limited to being placed atProvided in the x-app. The 3D link command may be provided by any application of first 3D CAD system 104a or second 3D CAD system 104b that enables a user (e.g., first user 102a or second user 102b) to create 3D link 110.

According to an example embodiment, the first 3D CAD system 104a may provide a 3D link dialog box (not shown) with controls to allow selection of a placement location for the 3D link 110 created by the first user 102 a. This placement location may be referred to herein as a pick location (pick location) and identifies the 3D context 112 targeted by the 3D link 110. The placement location is a location in 3D CAD model 106 that is associated with 3D link 110. Such user selection of a placement location may be performed via a click point.

According to an example embodiment, the click point may be on a sketch entity (not shown). The placement position may be defined relative to the endpoints of an open contour entity (e.g., a line, a circular arc, or a spline line) and relative to a reference position, e.g., on a circle or an ellipse. According to an example embodiment, a sketch line of infinite length may not qualify as a valid target for the 3D link 110. According to an example embodiment, if a line has a reference 3D link whose target is the same and the line is converted to a line of infinite length, the target may be considered invalid and the 3D link may need to have a new location defined as its target.

According to an exemplary embodiment, the click point may be on a model edge or face of 3D CAD model 106. The placement position may be defined relative to the endpoints of an open contour entity (e.g., a line, a circular arc, or a spline line) and relative to a reference position on a circle or ellipse. According to an example embodiment, the click point may be on a plane. The placement position may be defined relative to a visible bounding box of the plane, and may be transformed with the plane if the plane is translated, rotated, or resized.

According to an example embodiment, the click point may be on an axis. The placement position may be defined relative to the visible range of the axis, and if the axis is translated, rotated, or resized, the placement position may be transformed with the axis. However, it should be understood that the click point is not limited to being on the sketch entity, the model edge or face, the plane, or the axis. The selection of placement positions may support sketch points or vertices, model vertices, reference points or coordinate systems, section plane or edges, and the selected placement positions may be retained when the section is closed.

According to an example embodiment, the selection of placement locations may be limited to entities in the same component of the 3D model. For example, according to an example embodiment, a 3D link (e.g., 3D link 110) may be limited to a given geometry that is at the same "3D hash" as other 3D links that have been created. A 3D link dialog box with controls may enable the creation of a plain text annotation (e.g., annotation 120) associated with the 3D link 110.

As disclosed above, the first 3D CAD system 104 can be configured to provide a 3D link indicator 114, which 3D link indicator 114 can be attached to a pickup location in the graphical region 111. The 3D link indicator 114 may be vertical, but is not limited thereto. The tip 115 of the 3D link indicator 114 may coincide with a user-selected location (i.e., the target 3D context 112), but is not limited thereto. The orientation of 3D link indicator 114 may be defined relative to the active/current coordinate system and may be maintained relative to the active/current coordinate system as 3D CAD model 106 is rotated. According to an example embodiment, the 3D link indicator 114 may be visible and selectable through other geometries using known techniques. The 3D link indicator 114 may be zoom invariant, similar to a reference point and coordinate system using known or common techniques.

According to an example embodiment, the first 3D CAD system 104a or the second 3D CAD system 104b may be configured to create a new 3D link feature, such as 3D link feature 152, at a point in the feature history of the feature tree 150. According to an example embodiment, the 3D link 110 may be parameterized, i.e., if the location to which the 3D link 110 is attached moves to a new location, the 3D link 110 moves therewith, i.e., the 3D link 110 may be adjusted to reference the new location based on the adjustment of the information stored in the 3D link characteristics 152. According to an example embodiment, the 3D link feature 152 may store the following with it: a placement position as disclosed above, a plain text annotation as disclosed above, a view orientation and a zoom factor when creating the 3D link 110, or a combination thereof. Furthermore, if the 3D link 110 is attached to a cut plane or cut edge, the cut plane settings may also be stored therewith. According to an example embodiment, the first 3D CAD system 104a or the second 3D CAD system 104b may be configured to provide a context menu (e.g., as disclosed below with respect to fig. 1D and 1E) for use by a user.

FIG. 1D is a display of an example embodiment of a context menu 160 on a feature tree. The feature context menu 160 enables selection of the 3D link feature 152 in the above disclosed feature tree 150 of fig. 1C, and has the ability to edit 161, hide 162 or show 163, delete 164, scroll to 165, and activate 166 or deactivate 167 the above disclosed 3D link 110.

FIG. 1E is a display of an example embodiment of a graphics area context menu 170. The graphical region context menu 170 enables selection of the 3D link 110 in the graphical region 111, for example via selection of the 3D link indicator 114 representing the 3D link 110, and has the ability to edit 171, hide 172 or display 173, select others 174, delete 175, scroll to 176, and activate 177 or deactivate 1783D link 110.

Referring back to fig. 1C, according to an example embodiment, the first 3D CAD system 104a may be configured to provide dynamic and selective cross-highlighting within the feature tree 150 and/or the graphical region 111. The first 3D CAD system 104a can be configured to allow renaming of the 3D link features 152 in the feature tree 150. It should be understood that the name "3D link.1" is for illustrative purposes and the name of the 3D link feature 152 in the feature tree 150 is not limited thereto. However, such renaming may be implemented so that it does not disrupt the ability of 3D link feature 152 to find the 3D link 110 from which the 3D link feature 152 was created unless, for example, 3D CAD model 106 or 3D link feature 152 is to be deleted.

According to an example embodiment, the first 3D CAD system 104a may be configured to allow the 3D link 110 to be shared on the same tenant on which the 3D CAD model 106 resides, including, for example, "See what You mean" (SwYm) posts, instant messages, and hyperlinks in various other widgets, and the like. The first 3D CAD system 104a can be configured to allow 3D links to be created between model components at different levels of an assembly. For example, first 3D CAD system 104a can allow 3D link 110 to be created in a 3D hope of one model component, the 3D hope being attached to a location in the 3D hope of another component.

According to an example embodiment, the first 3D CAD system 104a may be configured to enable the respective first user 102a to include information with 3D link features 152, such as a picture, a video, a link to another model component, or a combination thereof.

According to an example embodiment, the first 3D CAD system 104a may be configured to associate a thumbnail (not shown) with the 3D link 110, and the 3D link feature 152 may store a reference to the thumbnail. If first user 102a has not created their own thumbnail, first 3D CAD system 104a may create the thumbnail based on the "OK" input received from first user 102a in response to a query about first user 102. The first 3D CAD system 104a can be configured to display a dialog box (not shown) that asks the first user 102a whether to create a thumbnail. If so, the 3D link 110 may be associated with a user-created thumbnail and the 3D link feature 152 may reference the thumbnail.

Referring to fig. 1A-C, according to example embodiments, the first 3D CAD system 104a or the second 3D CAD system 104b may display a thumbnail in a mouse-over prompt box (not shown) in the feature tree 150 and/or may display a thumbnail when the 3D link 110 is published in, for example, a SwYm message, an instant message, or another type of electronic message. According to an example embodiment, the 3D link feature 152 may store a cut-away view state (not shown) therewith, which exists when the 3D link 110 is created and/or the thumbnail image is referenced, as disclosed above.

According to an example embodiment, the 3D link 110 may be represented in the form of a text string. The 3D link (e.g., 3D link 110) is directed to a 3D context 112, which 3D context 112 includes 3D locations, such as points or geometric entities of the subject CAD model and its environment. For example, the target of the 3D link may be a fixed 3D point specified by x, y, z coordinates represented in the coordinate system of 3D CAD model 106. Alternatively, the target of 3D link 110 may be any of the following geometric entities contained within 3D CAD model 106: characteristic; geometric structures in 3D CAD model 106, such as faces, edges, or vertices belonging to features; a reference plane; a reference line; a reference point; a sketch; size elements on sketch or 3D entities; annotation elements on sketches or 3D entities; or a combination thereof.

Variable link 118 may contain the entire address (not shown) needed to be able to locate 3-D CAD model 106 in a model database (not shown) and to locate the target geometric entity (i.e., 3-D context 112) within 3-D CAD model 106. For non-limiting examples, the entire address includes a web address (e.g., a URL), a network computer memory address, a server or other computer memory address, a local memory address, and so forth. The static link 118 may be shorter in link length relative to the variable link 118 and may serve as an alternate entry (alias) to the variable link 118 that is redirected to the variable link 118.

Any modifications that a user (e.g., first user 102a or second user 102b) may make to 3-D CAD model 106 may render variable link 118 invalid because modifications to 3-D CAD model 106 may cause the target geometric entity to change, as further disclosed below with respect to FIGS. 5C-H. In this case, the variable link 118 would need to be modified. According to an example embodiment, the static link 116 is permanent and remains unchanged.

According to an example embodiment, as disclosed above, the static links 116 and corresponding variable links 118 are stored in the database 108 (which database 108 may be referred to as a 3D link database) and may be stored in the form of key-value pairs, where the static 3D links are keys and the variable 3D links are values. If the variable link 118 needs to be updated due to modifications made to the 3D CAD model 106, the text value of the corresponding variable link 118 entry may be updated in the 3D link database (i.e., database 108). However, the static link 116 in the entry may remain unchanged.

According to an example embodiment, the 3D link database (i.e., database 108) may be co-located with a 3D model database that stores 3D CAD models 106. Thus, if the 3D model database is hosted in a certain cloud environment, the 3D link database will be hosted on that same cloud environment. This allows either first 3D CAD system 104a or second 3D CAD system 104b to access the 3D link database with the same user authentication that was used to open 3D CAD model 106 from the 3D model database.

The 3D link database 108 may act as a single dedicated storage for the latest text strings of all variable 3D links created on 3D CAD models belonging to a certain 3D CAD model database. The 3D link database 108 may also act as a directory such that given a static link (e.g., static link 116), the 3D link database allows for searching for the latest corresponding variable link (e.g., variable link 118). Static links 116 may serve as keys for searching variable links 118. The search may be expedited by using standard database indexing techniques.

According to an example embodiment, the variable link 118 may include three components (working parts) that may be connected together to form the variable link 118, such as a model address, a core 3D address, and optionally view parameters. However, it should be understood that the variable link 118 is not limited to its connection. The model address may include an address of 3-D CAD model 106 in a 3-D CAD model database (global computer network address, server or other computer memory address, etc.). The model address may include version/revision information for 3D CAD model 106. The model address may also include additional details, such as the name of the CAD web app (or a text string that may serve as an identifier for the CAD web app) in which the 3D CAD model 106 is to be opened when a user (e.g., first user 102a or second user 102b) opens the 3D link 110.

The core 3D address may include a local memory address of a target location (i.e., 3D context 112) within 3D CAD model 106. The core 3D address may be relative in that it may inherit the address context from the model address. The target (i.e., context 112) may be a fixed 3D point or a geometric entity. If the target is a fixed 3D point, the core 3D address may be referred to herein as a "core 3D point address". If the target is a geometric entity, the core 3D address may be referred to herein as a "core 3D entity address.

The view parameters (not shown) may include necessary parameters required to define the orientation (not shown) of the camera (not shown) and the view conditions (not shown). Orientation determination of the camera: when 3D CAD model 106 is opened in a CAD program using 3D link 110, how the target will be displayed on a screen such as first display 107a or second display 107 b.

According to an example embodiment, the 3D CAD system (e.g., first 3D CAD system 104a or second 3D CAD system 104b) may allow the user to specify that 3D link 110 is locked to a particular version/revision of 3D CAD model 106, in which case the model address may additionally include information of the version/revision of 3D CAD model 106. By locking 3D link 110 to a particular CAD model version, 3D link 110 may be protected from modifications made to 3D CAD model 106 in future revisions and versions. The 3D link 110 will remain active as long as the version/revision in question remains available in the CAD system.

According to an example embodiment, the model address may be implemented as a URL of the 3D CAD model 106 stored on the cloud, along with the name of the default web app in which the 3D CAD model 106 is opened. For a non-limiting example, "http:// 3 dexperiod.3ds.com/model _ id:1234/webapp _ name: xdesign". According to another example embodiment, the model address may be implemented as a URL of the 3D CAD model 106, with the 3D CAD model 106 stored in a database (e.g., database 108 or other database) accessible from a web server (not shown). For a non-limiting example, "http:// 12.23.34.45/model _ id: 1234". Most modern CAD databases on servers or clouds have provided support for including the address (e.g., URL) of the 3D model in the database. According to another example embodiment, the model address may include a query to retrieve the 3D CAD model 106, such as a Structured Query Language (SQL) query or a REST GET request Application Programming Interface (API) query.

While the model address may include a Universal Naming Convention (UNC) path or a Portable Operating System Interface (POSIX) path of the 3D CAD model 106 that may be stored on a computer within the user network, alternative implementations of the model address may be used for sharing within the local network.

According to an example embodiment, model addresses may be skipped entirely when sharing 3D CAD model 106 in a file attached to an email or FTP. In this case, the 3D CAD system may form the 3D link 110 by connecting the two remaining components/parts of the 3D link 110 (i.e., the "core 3D address" and the "view parameters"). In this case, no model address is needed, since the CAD model itself is being sent to the user in some form.

According to an example embodiment, the "core 3D point address" may be implemented as the x, y, z coordinates of a fixed 3D point represented in the coordinate system of the 3D model. The text string for the "core 3D point address" may look similar to "/x: 10.5/y:20.0/z: 0.0". However, it should be understood that the core 3D point address is not limited thereto.

According to an example embodiment, in an implementation for a "core 3D entity address," the 3D CAD system may choose to attach a property (referred to herein as a 3D link property) to the target geometric entity (i.e., 3D context 112). In this case, the "core 3D entity address" may include a unique identifier of the 3D link attribute. In a non-limiting example embodiment, the metadata in the 3D link properties may preserve the static link 116. Most modern CAD systems allow for such a mechanism: geometric entities are quickly accessed based on any attributes attached thereto. In this case, the text string of the "core 3D entity address" may look similar to "/3 DURL _ attrib _ id: 9876". However, it should be understood that the text string is not limited thereto.

In another possible implementation, the 3D CAD system 104a, 104b may choose to create a new 3D link feature 152 in the feature tree 150 that points to the geometric entity (i.e., the 3D context 112). The 3D link feature 152 may remain hidden such that a user (e.g., the first user 102a or the second user 102b) may not be able to see it in the first display screen 107a or the second display screen 107b, respectively. Alternatively, the 3D link feature 152 may be visible to the user. For example, the CAD program may also choose to display the 3D link feature 152 in the feature tree 150. The metadata of the 3D link characteristics 152 may preserve the static link 116. In this case, the "core 3D entity address" may comprise a unique identifier of the 3D link feature 152, and its text string may look like "/feature _ id: 9876". However, it should be understood that the text string thereof is not limited thereto.

In another possible implementation, the "core 3D entity address" may be defined as an entity path. According to an example embodiment, the entity path includes an ordered list of unique identifiers of feature nodes that need to be traversed starting from the root of the feature tree 150 to the node representing the desired geometric entity (i.e., the feature node corresponding to the 3D link feature 152). This ordered list may also include a unique identifier of the target geometric entity (i.e., 3D context 112). In this case, the text string for the "core 3D entity address" may look like "/subassemmy _ id:123/instance _ id: 234/filet _ id: 345". However, it should be understood that the text string thereof is not limited thereto.

According to example embodiments, implementations of "view parameters" may include camera orientation parameters, parameters specifying view conditions, or a combination thereof. Such camera orientation parameters may include the coordinate axis system of the virtual camera, the camera type, the principal point of the picture plane (required for the perspective view), or a combination thereof, when creating the 3D link 110.

The coordinate axis system may include: an origin indicating an eye position or an optical center of the camera, an x-axis direction indicating a horizontal direction, a y-axis direction indicating a vertical direction, a z-axis direction indicating a view direction or an optical axis direction, or a combination thereof. The camera type may be "parallel" or "perspective". Such aspects of the coordinate system and virtual camera are implemented using conventional techniques and techniques known in the art.

The parameters specifying the view condition may include: a type of shading (e.g., a "wire frame" mode, a "shading silhouette/outline" mode, a "shading no silhouette/outline" mode, etc.), an environmental parameter (e.g., background color, shadow on/off, etc.), a transparency/opacity level, or a combination thereof.

However, it should be understood that the view parameters are not limited to camera orientation parameters and/or parameters specifying the view conditions disclosed above. The text string of "view parameters" may look similar to: "/ox: 1.0/oy:2.0/oz:0.0/axx:1.0/axy:0.0/axz:0.0/ayx:0.0/ayy:1.0/ayz:0.0/cam: parallel/clipping: wireframe/". However, it should be understood that the text strings of view parameters are not so limited.

The text string of variable link 118 may look similar to: "http:// 3dexperience.3ds.com/model _ id:1234/webapp _ name: xdesign/3DURL _ attrib _ id:9876/ox:1.0/o y:2.0/oz:0.0/axx:1.0/axy:0.0/axz:0.0/ayx:0.0/ayy:1.0/ayz:0.0/cam: parallel/shadow g: wireframe/". However, it should be understood that the text strings of variable links 118 are not so limited.

Although the above example shows the 3D link 110 being represented as a hypertext transfer protocol (HTTP) address, it should be understood that the 3D link 110 is not limited to being represented as an HTTP address. For example, the 3D link 110 can be composed in any form, such as JavaScript object notation (JSON), extensible markup language (XML), or any other format that a CAD system can parse to extract individual addressing components from.

According to an example embodiment, the static link 116 may include two components/work portions. However, it should be understood that the static link 116 is not limited to including two components/portions. According to an example embodiment, the static link 116 may include an address to a 3D linked database (i.e., database 108) that contains a mapping from the static link 116 to the variable link 118, and a unique persistent key/identifier that contains a corresponding entry (in the 3D linked database) of the text string of the variable link 118.

The first 3D CAD system 104a that created the 3D link 110 can be configured to ensure that the static link 116 is unique. One way to ensure this uniqueness is to use a Universally Unique Identifier (UUID) that is generated using any well-known standard method. It should be understood, however, that the first 3D CAD system 104a is not limited to employing a UUID generator (not shown) to ensure that the static link 116 is unique. The text string of static link 116 may look similar to: "http:// short3durl.3ds. com/3durl _ uuid:123e4567-e89b-12d3-a 456-426655440000/". However, it should be understood that the text string is not limited thereto.

According to an example embodiment, creating the 3-D link 110 for a given target (i.e., the 3-D context 112) may begin with the first 3-D CAD system 104a enabling the first user 102a to select a target geometry. This can be achieved by: enabling first user 102a to select a geometric entity in the currently open 3D CAD model 106 and drag and drop 3D link indicator 114, which may be a pin, flag, bookmark icon, or other indicator/marker, onto the selected geometric entity. First 3D CAD system 104a can attach a 3D link attribute to the selected geometric entity or create a new 3D link feature (e.g., 3D link feature 152) that points to the selected geometric entity.

The first 3-D CAD system 104a that created the 3-D link 110 can be configured to compute components/parts of the variable link 118 for the geometric entity. For example, the first 3D CAD system 104a may be configured to compute components/parts, such as model addresses, core 3D addresses, view parameters, or combinations thereof, of the current view disclosed above. First 3D CAD system 104a may be configured to connect components/parts that are calculated to form variable links 118. The first 3D CAD system 104a can be configured to create a static link 116 for the variable link 118 and enter key-value pairs into a 3D link database (i.e., database 108), where the keys are the static links 116 and the values are the variable links 118. The text string of the static link 116 may be added as metadata to the 3D link properties or 3D link characteristics 152.

The first 3D CAD system 104a can add the static link 116 to the 3D link attribute or 3D link feature 152 so that using the static link 116 as a key, the corresponding variable link 118 can be accessed from the 3D link database (i.e., database 108) at any time as needed. This need may arise when modifications to 3D CAD model 106 make it necessary to modify variable links 118, such as is further disclosed below. Adding static links 116 as metadata to the 3D link properties or 3D link features 152 allows the first 3D CAD system 104a to keep the variable links 118 in the database 108 in sync with modifications to the 3D CAD model 106, as further disclosed below.

As a variation of the embodiment, additional information may be stored together with the 3D link attribute or the 3D link characteristic 152. This information may be any content of the 3D context 112 that the user may want to attach to the 3D link 110. For example, this information may be text (e.g., annotations 120), a URL to a website that is somehow related to the 3D context 112, or it may be a picture (image file), audio file, etc. of something that is used as a reference for modeling the features of the 3D context 112.

According to an example embodiment, right-clicking (or other user interaction command) on the 3D link indicator 114 (e.g., pin/flag/other) may open a menu (not shown) that provides commands that may be performed on the 3D link 110, such as "edit", "delete", "copy", and so forth. For example, by clicking (user interactively selecting) an edit command, the first user 102a or the second user 102b may edit additional information associated with the 3D link, such as user-specified comments/text/others. Clicking (user interactively selecting) the delete command may delete the 3D link and remove the corresponding 3D link indicator 114 from display. Clicking (user interactively selecting) the copy command may copy the text string representing the 3D link 110 to the clipboard so that the text string representation may be pasted elsewhere, for example, in a blog post, email, or other file.

As disclosed above, thumbnail images of 3D locations of 3D CAD model 106 may be stored with 3D link attributes or 3D link characteristics 152. A new link may be generated for the thumbnail image and such link may also be stored with the 3D link properties or 3D link characteristics 152. When the 3D link 110 is embedded in some content, such as a web page, email, or other medium, then the thumbnail image may be displayed along with the 3D link 110.

The pin/flag/bookmark icon or other visual indicator/marker may be used to help a user (e.g., first user 102a or second user 102b) easily identify all geometric entities in the currently open 3D CAD model 106 for which a 3D link (e.g., 3D link 110) has been created. Such 3D link indicators may allow user interaction. For example, the user may hover over a particular 3D link indicator (e.g., 3D link indicator 114, which may be a pin/flag/bookmark icon or other visual indicator/marker) using a mouse or other pointing device, and the app may display additional information (e.g., user-specified annotations/text (e.g., annotations 120) or other information) associated with 3D link 110 corresponding to 3D link indicator 114, such as disclosed below with respect to fig. 1F.

FIG. 1F is a schematic illustration of a display of an example embodiment of the 3D link indicator 114 and a mouse-over tip. In the example embodiment of FIG. 1F, a first mouse-over tip 119 is displayed in the feature tree 150, and a second mouse-over tip 119' is displayed in the graphical area 111. According to an example embodiment, only one prompt box will be displayed at a time depending on the position at which a cursor or pointer controlled by a cursor control device (e.g., a mouse (not shown)) is hovering. For example, a first mouse-hover prompt box 119 may be displayed in response to a cursor hovering over the 3D link indicator 114 in the graphical area 111, and a second mouse-hover prompt box 119' may be displayed by the 3D link feature 152 in the feature tree 150 in response to the cursor hovering over the 3D link indicator 114. Selection in the graphical region 111 may highlight the 3D link indicator 114 in the feature tree 152 and vice versa. Example embodiments of highlighting 113 for different states of the 3D link indicator 114 are shown. However, it should be understood that the different states of the 3D link indicator 114 are not limited thereto or to its highlighting 113. In the example embodiment of FIG. 1F, a legend 117 is included, the legend 117 illustrating various icons for representing planes, axes, points, coordinate systems, and 3D links (e.g., 3D link 110 of FIG. 1A) in a display or current screen view.

FIG. 1G is a schematic diagram of another example embodiment display of the 3D link indicator 114 and the mouse-over-tip box 129. As disclosed above, the user may click on a 3D link command (not shown) on an action bar (not shown). The user may have pre-selected the reference, i.e. the 3D context 112 on which the 3D link 110 disclosed above was created. In response, the 3D CAD systems 104a, 104b can be configured to display a 3D linking dialog 130. If the preselection 134 is made by the user, the location selection list 132 can be populated with the preselection 134. If the user has previously selected a plurality of items, only the first previously selected item may be populated according to an example embodiment, but is not limited thereto. If the user does not pre-select a desired location of 3D link 110 to be created on 3D CAD model 106, the user may select one such location.

Once the location has been selected, a preview 114' of the 3D link indicator 114 may be displayed at the selected location, i.e., proximate to the 3D context 112 in an example embodiment. The user may select to add a plain text annotation (e.g., annotation 120 disclosed above) to the 3D link 110 by clicking (interactively selecting) the add annotation button 136. Once clicked, the add notes button 136 may display a re-sizable plain text field, enabling users to type their desired text in the plain text field. Pressing Enter in the text field may Enter instead of exiting from the entry.

According to an example embodiment, the user may select the copy 3D link 110 by pressing the copy URL button 138, the 3D link 110 being represented as a URL in an example embodiment. The user can click on OK (not shown) to create: (i)3D link 110, (ii) corresponding 3D link indicator 114 in graphics area 111, and (iii) associated 3D link feature 152 in feature tree 150 as disclosed above with respect to fig. 1A-1C. The 3D link feature 152 may store information entered by the user via the add comment button 136. The user may edit 3D link feature 152 and change the location or text annotation, however, 3D link 110 may remain unchanged even if its corresponding 3D link feature 152 is modified, since 3D link 110 identifies 3D link feature 152 and 3D CAD model 106.

The copied 3D link 110, which may be a URL, may then be pasted in a place like an email, a SWYM post, an instant message, etc., as disclosed above. Assuming that the recipient of the 3D link 110 (e.g., the second user 102b of fig. 1A disclosed above) has proper access to the tenant and collaboration space where the linked model (i.e., the 3D CAD model 106) exists, the recipient should be brought to the platform and the 3D CAD model 106 opened for the user in an app (e.g., xDesign or another app). Such an opening process may include: the recipient logs onto the CAD platform, his or her rights are checked, locates 3D CAD model 106 in the model database, and opens 3D CAD model 106 in the CAD application. According to an example embodiment, the application may be xDesign, xShape, xgenative Design, or another app, such as disclosed above, and in the event that the recipient does not have access to such an app, the 3D CAD model 106 may be opened in the 3D DPlay. To open the 3D CAD model 106 in the app selected by the user, a dialog box similar to the app toggle dialog box may be displayed to allow the recipient to select the desired app. An example embodiment of such a dialog box is shown in FIG. 1H.

FIG. 1H is a display of an example embodiment of an app toggle dialog 180 that allows a user (e.g., first user 102a or second user 102b) to open the 3D CAD model 106 disclosed above with reference to FIG. 1A in an xD Design 181, xShape182, xGenerateive Design 183, or 3DPlay application 184. Once the app is user-selected in dialog box 180, the 3D CAD model is displayed within the corresponding selected CAD application, which in turn navigates to the target of the subject 3D link 110. According to an example embodiment, the target may be an internal face of a 3D CAD model, such as disclosed below with respect to fig. 2.

Fig. 2 is a schematic diagram of a display screen 207 showing a visualization of an example embodiment of a 3D link indicator 214. In the non-limiting exemplary embodiment of FIG. 2, 3D link indicator 214 is located on an interior face 215 of 3D CAD model 206 that is visible only during the cross-sectional display. The screen view or display 207 shows the 3D link indicator 214 created perpendicular to the interior face 215 to which it is attached, and recalls the cross-sectional view that was active at the time it was created.

The same icon for the 3D link feature 252 in the feature tree 250 may be used for the 3D link indicator 214, which is a visual representation of the 3D link feature 252 in the graphical region 211, and its corresponding 3D link. As such, example embodiments of CAD systems (e.g., first 3D CAD system 104a or second 3D CAD system 104b) may be configured to support multiple visualizations of 3D link indicator 214 to indicate different states of 3D link indicator 214.

For example, a visualization may exist to indicate a create/edit mode, and dynamic highlighting may be used between the feature tree 250 and the graphical region 211 for cross-reference purposes. The selection highlighting may be used to convey a process being performed on the 3D link indicator 214, such as editing, deleting, or other process. According to an example embodiment, an error/warning indication for the 3D link indicator 214 may be employed for the purpose of easily identifying that the 3D link feature 252 and its corresponding 3D link have lost the respective reference (i.e., its target 3D context, e.g., the inner face 215).

According to an example embodiment, the 3D link indicator 214 may have a different orientation relative to the subject 3D CAD model 206. For example, by pointing the normal to a point on a line/edge, face, plane, etc., the 3D link indicator 214 may "point" to that location (i.e., the 3D context) to help convey the importance of the orientation of the information included in the plain text annotation 220, or how/where to pair another model component (not shown) linked in the 3D link. By always keeping the 3D link indicator 214 oriented "vertically" on the display screen 207, it may allow the 3D link indicator to be more easily identified regardless of the orientation of the 3D CAD model 206. As disclosed above, multiple visualizations of the 3D link indicator 214 may be used to indicate different conditions, modes, or states of the 3D link indicator 214, such as disclosed in the table 300 of fig. 3 disclosed below.

FIG. 3 is a table 300 of a non-limiting example embodiment of a visual icon 314 corresponding to a state 317 of a 3D link indicator. The various states (i.e., 317-1, 317-2, 317-3, 317-4, 317-5 and 317-6) may be represented for the 3D link indicator with various visual icons (i.e., 314-1, 314-2, 314-3, 314-4, 314-5 and 314-6), respectively, and may be shown in a graphical area, such as graphical area 211 and feature tree 250 disclosed above with respect to fig. 2. However, it should be understood that state 317 and corresponding visual icon 314 of table 300 are for illustrative purposes, and that the 3D link indicators (e.g., 114, 214 of fig. 1A-1C and 2) and states thereof disclosed herein are not limited thereto.

As disclosed above, the 3D link indicator may be used to represent both the 3D link and its corresponding 3D link characteristics in the feature tree. The 3D link characteristics may include additional information associated with the 3D link. Such additional information may be displayed to the end user, for example as disclosed below with respect to fig. 4.

FIG. 4 is a schematic illustration of an example embodiment display of information 420 and 420 'being displayed within a 3D link feature 452 in a feature tree 450 or a graphical area 411 via a mouse-over tip box 419 or 419'. By allowing for inclusion of content such as images, video, audio tracks, documents, and links to other models, the 3D link feature can be used as a tool to assist the user by retaining relevant information contained within the 3D link feature 452, thus making it easy for the user to find and update when needed. By retaining the information contained within 3D link feature 452, the information can be "moved" with the CAD model in the event the CAD model is shared via export from one tenant and import into another tenant.

As disclosed in example embodiments, a prompt box 419 or 419' may be displayed in the feature tree 450 or the graphical region 411 depending on the position of a cursor (not shown), such as a mouse cursor, pointer, or other indicator for the current location of user interaction on the display device. The information 420 and 420' relates to a target point or geometric entity targeted by a 3D link indicator, such as the 3D context 112 targeted by the 3D link 110 of fig. 1A disclosed above.

Referring back to FIG. 1A, 3D CAD model 106 may be modified after 3D link 110 has been created. If the target location (i.e., 3D context 112, for example) is a fixed point in 3D CAD model 106, then according to an example embodiment, the target location/3D context remains unchanged even if 3D CAD model 106 undergoes a modification, as disclosed below with respect to FIGS. 5A and 5B. Alternatively, if the target location of 3D link 110 is a geometric entity in 3D CAD model 106, the target location/3D context may change depending on the modifications made to 3D CAD model 106, such as disclosed below with respect to FIGS. 5C-H.

Fig. 5A is a CAD drawing of an example embodiment of a cylinder 507 with a point 512 that is the target of a 3D link (not shown). The position of point 512 is fixed in the coordinate system of the CAD drawing. When the height 513 of the cylinder 507 is lowered, the position of the point 512 is not affected, as disclosed below with respect to fig. 5B.

Fig. 5B is a CAD drawing of an example embodiment of the cylinder 507 of fig. 5A. In the example embodiment of fig. 5B, the height 513 of the cylinder 507 in fig. 5A has been reduced to a height 513'. However, the position of point 512 has not been affected relative to its position in FIG. 5A.

Fig. 5C is a CAD drawing of another exemplary embodiment of the cylinder 507 of fig. 5A. In the example embodiment of fig. 5C, geometric entity 515 (i.e., the highlighted surface of cylinder 507) is the target of the 3D link, and cylinder 507 has height 513.

Fig. 5D is a CAD drawing of an example embodiment of the cylinder 507 of fig. 5C. In the example embodiment of fig. 5D, the height 513 of the cylinder 507 in fig. 5C has been reduced to a height 513'. In this case, the CAD drawing coordinate system position of the target surface (i.e., geometric entity 515) changes to account for the reduced height of cylinder 507.

Fig. 5E is a CAD drawing of an example embodiment of a 3D object 525 with protrusions 526. According to an example embodiment, the 3D link may be for a 3D context, e.g., as a geometric entity of the top surface 527 of the protrusion 526. If the user decreases the height 533 of the protrusion, the top surface 527 may have to be replaced with a copy of the top surface 527 at a smaller height 533' relative to the height 533. The first unique identifier (not shown) of the top surface 527 may be different from the second unique identifier (not shown) of a copy of the top surface 527, such as the copy of the top surface 527' disclosed below with respect to fig. 5F. After such a high degree of modification, the 3D link pointing to the older geometric entity (i.e., the top surface 527 of fig. 5E) becomes invalid because the geometric entity it points to may no longer be present in the current 3D CAD model (i.e., as modified).

Fig. 5F is a CAD drawing of an example embodiment of 3D object 525 of fig. 5E, where protrusion 526 has a reduced height 533' relative to height 533 in fig. 5E. In the example embodiment of fig. 5F, the top surface 527 of the projection 526 of fig. 5E has been replaced with a copy 527 'at a smaller height 533'. It should be understood that the geometric solid is not limited to a top surface and may be any type of geometric solid, such as the rounded corners 528 disclosed below with respect to fig. 5G and 5H, or other types of geometric solid.

Fig. 5G is a CAD drawing of an example embodiment of a 3D object 535 with rounded corners 528. According to an example embodiment, the target geometric entity of the 3D link may be a rounded corner 528. If the user reduces the radius of the rounded corner 528, the rounded corner 528 may be replaced by a new rounded corner having a smaller radius, such as the new rounded corner 528' disclosed below with respect to FIG. 5H. The respective unique identifiers of the rounded corners 528 and the new rounded corners 528' may be different from each other.

Fig. 5H is a CAD diagram of an example embodiment of the 3D object 535 of fig. 5G with new rounded corners 528'. After such modification, the 3D link pointing to the older geometric entity (i.e., rounded corner 528 of FIG. 5G) becomes invalid because the geometric entity to which the 3D link points no longer exists in the 3D CAD model. According to an example embodiment, the 3D link properties or 3D link characteristics disclosed above with reference to fig. 1A-C (e.g., 3D link characteristics 152 associated with 3D link 110) may be used to address the same issues.

For example, referring back to fig. 1A-C, once 3D CAD model 106 undergoes some modification that causes a geometric entity to be replaced by a new geometric entity, most modern CAD systems have built-in mechanisms that responsively transfer attributes attached to the old geometric entity to the new geometric entity. Such known (or equivalent) techniques may be used to allow the 3D link 110 to remain unchanged. As disclosed above, if the "core 3D address" of the 3D link 100 contains an entity path, the 3D CAD systems 104a, 104b can additionally update the entity path to point to the new geometric entity once the attributes are transferred.

Most modern CAD systems implement the functionality to perform feature tree updates (which may alternatively be referred to as feature tree reconstruction) with geometry modifications, which ensures that all features affected by the geometry modifications are reconstructed to ensure that they map to the correct updated geometric entities. This mechanism (known or common techniques and equivalents) may also be used to automatically update the 3D link features 152 as appropriate, thereby ensuring that the 3D link features 152 point to the new geometric entity.

In some cases, it may be desirable to update variable links 118 stored as entries in database 108 in order to keep variable links 118 up-to-date in the event that modifications are made to 3D CAD model 106. In particular, the "core 3D address" in the variable link 118 may need to be updated. For example, as disclosed above, if the "core 3D address" of the variable link 118 contains an entity path, the CAD systems 104a, 104b may need to update the entity path in the "core 3D address" of the variable link 118 to point to the new geometric entity. Furthermore, if the "core 3D address" of the variable link 118 contains an identifier of a 3D link attribute or 3D link feature 152, and if the 3D CAD system modifies its corresponding identifier when the 3D CAD model 106 is modified, the 3D CAD system may need to update the identifier in the "core 3D address" of the variable link 118 to point to the new identifier.

Referring to fig. 1A, according to an example embodiment, updating the "core 3D address" in the variable link 118 stored in the 3D link database (i.e., database 108) may include: retrieving the static link 116 from the metadata of the 3D link attribute or 3D link characteristic 152, querying the 3D link database with the static link 116 as a key, accessing the corresponding database entry, and updating the "core 3D address" in the variable link 118 stored in the database entry. In this way, the static link 116, which is stored as metadata along with the 3D link properties or 3D link characteristics 152, may be used to keep the 3D link database (i.e., database 108) up to date.

However, there are cases where: wherein managing the 3D link 110 is not required even if modifications have been made to the 3D CAD model 106. For a non-limiting example, the 3D link 110 may be locked to a particular frozen version of the 3D CAD model 106 and therefore need not be managed, as any modification to the 3D CAD model 106 will only cause newer versions of the 3D CAD model 106 to be created/modified without affecting the particular frozen version. Furthermore, if the target 3D context 112 of 3D link 110 is a fixed 3D point, there is no need to manage 3D link 110, since the fixed 3D point (fixed in coordinate system position) is not affected by any modifications to 3D CAD model 106, as disclosed above with respect to FIGS. 5A and 5B.

According to an example embodiment, opening the 3D link 110 may include: the target 3D context 112 of the 3D link 110 is navigated to in response to the user providing the 3D link 110 to the 3D CAD system. The 3D link 110 may be provided, for example, as disclosed below, but is not limited thereto.

According to an example embodiment, in the case of a native CAD application, the 3D CAD system (e.g., the first 3D CAD system 104a or the second 3D CAD system)104b) An input field may be provided into which a user (e.g., the first user 102a or the second user 102b) may fill in a 3D link 110 (which is represented as a text string), such as disclosed above. According to an example embodiment, in a CAD web app (e.g.,xDesign or another CAD web app), the user may click (or otherwise interactively select) the 3D link 110 from another application (e.g., an email client, web browser, or other application). Upon clicking on the 3D link 110, a web browser may open (if not already open), and such a web browser may establish a connection with a system, such as a server (not shown), whose address is embedded in the 3D link 110. The 3D CAD system may, in turn, receive the 3D link 110, and may extract a model address of the 3D CAD model from the 3D link 110.

The 3D CAD system can extract the name of the CAD web application (if available) in the model address. If the name of the CAD web application is not available in the model address, the 3D CAD system may select the predetermined CAD web application based on the type of 3D CAD model or based on any other metadata associated with the 3D CAD model.

The system may open a CAD web application. The CAD web application may be provided with a 3D link 110. The CAD web application can split the 3D link into its individual components/parts, i.e., "model address", "core 3D address", and "view parameters" (if present). The CAD web application may access the "model address" and open 3D CAD model 106. The CAD web application may use the "view parameters" to set the orientation of the camera and to display the view conditions of the obtained 3D CAD model 106. Alternatively, default view parameters may be employed. The CAD web application may optionally highlight or show a 3D link indicator 114 (e.g., a pin or other visual indicator) at the 3D context 112 (i.e., the geometric entity or 3D point specified by the "core 3D address").

Example embodiments provide security aspects of 3D CAD model 106. For example, a user who clicks on 3D link 110 may be required to log into the 3D CAD system before the 3D CAD system opens 3D CAD model 106. If the user does not have authorization or access to view 3D CAD model 106, 3D CAD model 106 will not be opened, and a "deny access" message may be displayed to the user.

According to an example embodiment, if 3D link 110 becomes invalid, accessing the target of 3D link 110 may fail, for example, if target 3D CAD model 106 has been deleted from the CAD model database, or if 3D CAD model 106 has been modified in the following manner: the target geometric entity (i.e., the 3D context) no longer exists in 3D CAD model 106, this may occur, as discussed above with respect to fig. 5A-5H.

FIG. 6 is a flow diagram 600 of an example embodiment of a computer-implemented method for sharing a three-dimensional (3D) context of a 3D computer-aided design (CAD) model. The method begins (602) and creates a 3D link for a 3D context within a 3D CAD model, the creating including forming a static link and a variable link (604). The static link is configured to be redirected to the variable link in response to a user opening the 3D link. The variable link enables (i) the 3D CAD model to be located and opened, and (ii) the 3D context to be displayed within the 3D CAD model. In an example embodiment, the method stores the 3D link in a database, the 3D link enables 3D context sharing between or among users via sharing the 3D link from the database (606), and the method ends thereafter (608).

The computer-implemented method may further include storing the 3D CAD model in a database. Forming the static link may include connecting a database address of the database and a unique identifier of the variable link.

The database may be a 3D linked database. The 3D CAD model may be stored in a 3D CAD model database. Forming the static link may include connecting a database address of the 3D linked database and a unique identifier of the variable link. The variable link may include a model address of the 3D CAD model stored in the 3D CAD model database.

Forming the variable link may include connecting: a model address comprising an address of the 3D CAD model, and (i) a core 3D address of a 3D context within the 3D CAD model, the core 3D address being opposite to the model address, or (ii) a unique identifier of a 3D link attribute or a 3D link feature, wherein the core 3D address is included as a 3D link attribute or metadata within the 3D link. The 3D link attribute may be attached to a 3D point or geometric entity of the 3D CAD model.

Forming the variable link may further include linking at least one view parameter, or including at least one view parameter in the metadata, the at least one view parameter defining an orientation of the camera, a view condition, or a combination thereof. At least one view parameter is optional because the user may open the 3D CAD model in a "default view".

The computer-implemented method may further include enabling the user to specify that the 3D link is locked to a given version or revision of the 3D CAD model. Where the 3D link is designated as locked, the model address may further include a given version or revision of the 3D CAD model.

Storing may include entering the 3D link into the database as a key-value pair, wherein the key-value pair includes a key and a value, wherein the static link is a key, and wherein the variable link is a value.

In the case where changes are made to the 3D CAD model after the 3D link is created, the computer-implemented method may further comprise: automatically updating the variable link in response to the change made, prompting a user for input in the event that the change causes the 3D context to become invalid, or a combination thereof. The variable links may be automatically updated based on attribute delivery mechanisms and feature update/reconstruction mechanisms provided by most CAD systems, such as disclosed above.

FIG. 7 is a flowchart 700 of an example embodiment of a computer-implemented method for navigating to a three-dimensional (3D) linked target (e.g., a point or geometric entity) from within a computer-aided design (CAD) application. The computer-implemented method begins (702) with a given or received 3D link and splits the 3D link into multiple components/portions. The plurality of components/parts includes a model address, a core 3D address, and view parameters. The computer-implemented method 700 accesses the 3D CAD model using the model address (706). Method 700 opens the accessed 3D CAD model (708). The method displays the accessed 3D CAD model within the CAD application using the orientation of the virtual camera and the view conditions set according to the view parameters (710). The computer-implemented method navigates (712) to the target of the given 3D link by displaying an icon or highlighting a geometric entity or 3D point of the 3D CAD model being accessed, the geometric entity or 3D point being specified by the core 3D address. In an example embodiment, the computer-implemented method ends thereafter (714).

According to an example embodiment, a non-transitory computer-readable medium may have encoded thereon sequences of instructions which, when loaded and executed by at least one processor, cause the at least one processor to perform the computer-implemented method 700 of fig. 7.

The CAD application can be a CAD web application, and a name of the CAD web application can be included in the model address. The CAD application may be a CAD web application selected based on a type of the 3D CAD model or metadata associated with the 3D CAD model.

The 3D link may be represented as a text string, and the 3D link may be provided to the CAD application via an input field of the CAD application that enables the 3D link to be input by a user.

The 3D link may be provided to the CAD web application in response to a user clicking/interactively selecting the 3D link from within another application. However, it should be understood that CAD applications are not limited to web applications. For example, a web browser may provide a native app that starts with a 3D link text string as a parameter. According to an example embodiment, the click/user selection may cause the web browser to establish a connection to a server and provide a 3D link to the server, the address of the server being embedded in the 3D link, and wherein the CAD web application is opened by the server.

The geometric entity may include a feature in the 3D CAD model, a geometric structure belonging to the feature, a reference plane included in the 3D CAD model, a reference line included in the 3D CAD model, a reference point included in the 3D CAD model, a sketch included in the 3D CAD model, a size element on the sketch or on the 3D entity included in the 3D CAD model, an annotation element on the sketch or on the 3D entity, or a combination thereof.

FIG. 8 is a block diagram 800 of a non-limiting example embodiment of a 3D link 810 and supporting logical structures in software for implementing the 3D link 810. As shown in block 800, a 3D link 810 may include multiple forms 812 of a link, and various operations 814 may be performed with respect to the 3D link 810. For example, the 3D link 810 may include: static link 816, also interchangeably referred to herein as an external link or an external 3D link; and a variable link 818, also interchangeably referred to herein as an internal link or an internal 3D link. Static link 816 may include a 3D link database address 820 and a unique identifier 822 of variable link 818.

The changeable link 818 includes a model address 822 and a core 3D address 826 of the 3D context for which the 3D link 810 is intended. The 3D context (i.e., target) may be a point 828 of the 3D CAD model or a geometric entity 830. Variable link 818 may further optionally include view parameters 832. The view parameters 832 may include camera orientation 834, view conditions 836, or a combination thereof.

Operations 814 that may be performed with respect to the 3D link 810 include: create 838, manage 840, and open 8423D link 810. It should be understood that the operation 814 with respect to the 3D link 810 is not limited thereto. Creating 8383D link 810 may include: attributes and/or features are created 844 and an entry for the 3D link 810 is added 846 to the 3D link database. Managing 8403D link 810 may include updating 848 the entity path, as disclosed above. Opening 8423D link 810 may include locating 8503D model, app, and the 3D location of the target. Opening 8423D link 810 may further include opening the 3D model in the app and highlighting the 3D location 852.

Fig. 9 is a block diagram of an example of the internal structure of a computer 900, in which computer 900 various embodiments of the present disclosure may be implemented. Computer 900 contains system bus 902, where a bus is a set of hardware lines used for data transfer among the components of a computer or digital processing system. The system bus 902 is essentially a shared conduit that connects different elements of a computer system (e.g., processor, disk storage, memory, input/output ports, network ports, etc.) that enables the transfer of information between the elements. Coupled to system bus 902 is I/O device interface 904 for connecting various input and output devices (e.g., keyboard, mouse, displays, printers, speakers, etc.) to computer 900. Network interface 906 allows computer 900 to connect to various other devices attached to a network (e.g., a global computer network, a wide area network, a local area network, etc.). Memory 908 provides volatile and non-volatile storage for computer software instructions 910 and data 912 that may be used to implement embodiments of the present disclosure, where volatile and non-volatile memory is an example of non-transitory media. Disk storage 914 provides non-volatile storage for computer software instructions 910 and data 912 that may be used to implement embodiments of the present disclosure. Central processor unit 918 is also coupled to system bus 902 and provides for the execution of computer instructions.

Further example embodiments disclosed herein may be configured using a computer program product; for example, the controls may be programmed in software for implementing example embodiments. Further example embodiments may include a non-transitory computer readable medium containing instructions executable by a processor, and which when loaded and executed, cause the processor to perform the method described herein. It should be understood that elements of the block diagrams and flow diagrams may be implemented in software or hardware, e.g., via one or more arrangements of the circuits of fig. 9 disclosed above or equivalents thereof, firmware, combinations thereof, or other similar implementations as determined in the future.

Additionally, the elements of the block diagrams and flow diagrams described herein may be combined or separated in any manner in software, hardware, or firmware. If implemented in software, the software may be written in any language that can support the example embodiments disclosed herein. The software may be stored in any form of a computer readable medium (e.g., Random Access Memory (RAM), Read Only Memory (ROM), compact disc read only memory (CD-ROM), etc.). In operation, a general-purpose or special-purpose processor or processing core loads and executes software in a manner well known in the art. It will be further appreciated that the block diagrams and flow diagrams may include more or fewer elements arranged or oriented in different ways or represented in different ways. It is to be understood that the embodiments may specify block diagrams, flowcharts, and/or network diagrams, and the number of block diagrams and flowcharts illustrating the performance of the embodiments disclosed herein.

The teachings of all patents, published applications and references cited herein are incorporated by reference in their entirety.

While example embodiments have been particularly shown and described, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of embodiments encompassed by the appended claims.

41页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种三维空间物品规划的方法和系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类