Cloud collaborative design method and system based on desktop three-dimensional CAD
By introducing a cloud-based collaborative design method in three-dimensional CAD collaborative design, the correlation between collaborative channels and desktop CAD processes is used to solve the problem of limited parallel speed of collaborative design in the existing technology, efficient data interaction and model synchronization are achieved, and design efficiency is significantly improved.
Patent Information
- Application Number
- CN202510293273.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-03-13
- Publication Date
- 2025-06-24
AI Technical Summary
In the prior art, three-dimensional CAD collaborative design mainly relies on model locking method, resulting in limited parallel speed of collaborative design and low design efficiency.
The cloud-based collaborative design method based on desktop three-dimensional CAD is adopted. By allocating the corresponding collaborative channels to each user and establishing communication connections, each collaborative channel is associated with the corresponding desktop CAD process, and multiple users are able to operate simultaneously and reduce frequent locking.
It improves the parallel speed of collaborative design, realizes efficient data interaction, enables the user to update lightweight models in a timely manner, keeps the model status synchronized, and greatly improves product design efficiency.
Smart Images

Figure CN120197253A_ABST
Abstract
Description
Technical Field
[0001] The present invention generally relates to the technical field of computer-aided design, and particularly relates to a cloud-based collaborative design method and system based on desktop 3D CAD. Background Art
[0002] With the continuous development of computer technology, 3D computer-aided design (CAD) has been increasingly applied in the daily product design of various different fields, such as machinery, automotive, aviation and other fields, due to its accurate and intuitive design expression, efficient design process, and powerful analysis and modeling capabilities. In the process of increasingly fierce market competition, the complexity of products is also continuously increasing, and multiple designers are often required to jointly participate in the design and development of products, which makes collaborative design a key means to improve design efficiency, integrate various resources, and ensure product quality. In order to ensure that the product improves design efficiency while meeting the standard requirements, the research on how to perform collaborative design based on 3D CAD is particularly important.
[0003] Currently, in the related technology, desktop 3D CAD can achieve collaborative design to a certain extent with the help of PLM / PDM; and a 3D CAD prototype system supporting collaborative design is used for modeling design. However, the collaborative mode in this solution is relatively simple, mainly realizing the serial design of multiple people through the model locking method, which requires the model to be locked frequently, greatly limiting the parallel speed of collaboration and resulting in low product design efficiency. Summary of the Invention
[0004] In view of the above-mentioned defects or deficiencies in the prior art, it is expected to provide a cloud-based collaborative design method and system based on desktop 3D CAD.
[0005] In a first aspect, the present invention provides a cloud-based collaborative design method based on desktop 3D CAD, which is applied to a collaborative server and includes:
[0006] Receiving and responding to a modeling instruction sent by at least one client; the collaborative server includes a plurality of collaborative channels, and each client is assigned a corresponding collaborative channel and establishes a communication connection with the collaborative channel; the modeling instruction carries an instruction triple formed based on a lightweight proxy model, and the instruction triple includes an instruction identifier, an operation object identifier, and instruction parameters;
[0007] Sending the modeling instruction to a CAD server; the CAD server includes a plurality of desktop CAD processes, and each collaborative channel is associated with a corresponding desktop CAD process;
[0008] Receive the modeling result returned by the CAD server, and broadcast the modeling result to the client through the collaboration channel, so that the client updates the lightweight proxy model according to the modeling result; the modeling result is determined by the CAD service parsing the modeling instruction to determine the operation object, and when the operation object evaluation is successful, according to the instruction triple.
[0009] In a second aspect, an embodiment of the present application provides a cloud-based collaborative design method based on desktop 3D CAD. The method is applied to a CAD server and includes:
[0010] Receive a modeling instruction sent by a collaboration server; the modeling instruction is sent by at least one client to the collaboration server. The collaboration server includes multiple collaboration channels, and each client is assigned a corresponding collaboration channel and establishes a communication connection with the collaboration channel; the modeling instruction carries an instruction triple formed based on a lightweight proxy model, and the instruction triple includes an instruction identifier, an operation object identifier, and instruction parameters; the CAD server includes multiple desktop CAD processes, and each collaboration channel is associated with a corresponding desktop CAD process;
[0011] Parse the modeling instruction to determine the operation object. When the operation object evaluation is successful, determine the modeling result according to the instruction triple, and send the modeling result to the collaboration server, so that the collaboration server broadcasts the modeling result to the client.
[0012] In a third aspect, an embodiment of the present application provides a cloud-based collaborative design method based on desktop 3D CAD. The method is applied to at least one client and includes:
[0013] Generate a modeling instruction based on the lightweight proxy model and send it to the collaboration server, so that the collaboration server sends the modeling instruction to the CAD server; the modeling instruction carries an instruction triple formed based on the lightweight proxy model, and the instruction triple includes an instruction identifier, an operation object identifier, and instruction parameters; the collaboration server includes multiple collaboration channels, and each client is assigned a corresponding collaboration channel and establishes a communication connection with the collaboration channel; the CAD server includes multiple desktop CAD processes, and each collaboration channel is associated with a corresponding desktop CAD process;
[0014] Receive the modeling result broadcast by the collaboration server; the modeling result is determined by the CAD server parsing the modeling instruction to determine the operation object, and when the operation object evaluation is successful, according to the instruction triple;
[0015] Update the lightweight proxy model according to the modeling result.
[0016] Fourthly, an embodiment of the present application provides a cloud-based collaborative design system based on desktop 3D CAD, which includes at least one client, a collaborative server, and a CAD server;
[0017] The at least one client is configured to generate a modeling instruction based on a lightweight proxy model and send it to the collaborative server, and to update the lightweight proxy model according to the modeling result; the modeling instruction carries an instruction triple formed based on the lightweight proxy model, and the instruction triple includes an instruction identifier, an operation object identifier, and instruction parameters; the collaborative server includes a plurality of collaborative channels, and each client is assigned a corresponding collaborative channel and establishes a communication connection with the collaborative channel;
[0018] The collaborative server is configured to send the modeling instruction to the CAD server, and to broadcast the modeling result to the client; the CAD server includes a plurality of desktop CAD processes, and each collaborative channel is associated with a corresponding desktop CAD process;
[0019] The CAD server is configured to parse the modeling instruction to determine the operation object, and when the operation object evaluation is successful, determine the modeling result according to the instruction triple and send it to the collaborative server.
[0020] Fifthly, an embodiment of the present application provides a computer device, including: a memory, a processor, and a computer program stored on the memory and executable on the processor, and the processor executes the computer program to implement the cloud-based collaborative design method based on desktop 3D CAD provided in the above embodiment.
[0021] Sixthly, an embodiment of the present application provides a computer-readable storage medium, on which a computer program is stored, and when the computer program is executed by a processor, it implements the cloud-based collaborative design method based on desktop 3D CAD provided in the above embodiment.
[0022] According to the specific embodiments provided by the present application, the following technical effects are disclosed in the present application:
[0023] The cloud-based collaborative design method and system based on desktop 3D CAD provided by the embodiments of the present application, the method includes: receiving and responding to modeling instructions sent by at least one client, the collaborative server includes multiple collaborative channels, each client is assigned a corresponding collaborative channel and establishes a communication connection with the collaborative channel, the modeling instruction carries an instruction triple formed based on a lightweight proxy model, the instruction triple includes an instruction identifier, an operation object identifier, and instruction parameters, sending the modeling instruction to the CAD server, the CAD server includes multiple desktop CAD processes, each collaborative channel is associated with a corresponding desktop CAD process, receiving the modeling result returned by the CAD server, and broadcasting the modeling result to the client through the collaborative channel so that the client can update the lightweight proxy model according to the modeling result; the modeling result is determined by the CAD service parsing the modeling instruction to determine the operation object and, when the operation object evaluation is successful, according to the instruction triple. Compared with the prior art, this technical solution assigns a corresponding collaborative channel to each client and establishes a communication connection, and each collaborative channel is associated with a corresponding desktop CAD process, which can enable multiple users to operate simultaneously, reduce frequent locking restrictions, improve the collaborative parallel speed, and the client sends the modeling instruction carrying the instruction triple formed based on the lightweight proxy model to the collaborative server, enabling the collaborative server to accurately convey the user operation intention to the CAD server, facilitating the accurate parsing and processing by the CAD server to obtain the modeling result, and then broadcasting the modeling result to the client through the collaborative server, realizing efficient data interaction, enabling the client to update the lightweight model in a timely manner according to the modeling result, maintaining the model state synchronization, and greatly improving the product design efficiency. BRIEF DESCRIPTION OF THE DRAWINGS
[0024] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the following will briefly introduce the drawings required to be used in the embodiments. Obviously, the drawings in the following description are only some embodiments of the present application. For those of ordinary skill in the art, without creative efforts, other drawings can be obtained based on these drawings.
[0025] Figure 1 It is an application environment diagram of the cloud-based collaborative design method based on desktop 3D CAD provided in an embodiment of the present application;
[0026] Figure 2 It is a structural schematic diagram of the cloud-based collaborative design system based on desktop 3D CAD provided in an embodiment of the present application;
[0027] Figure 3 It is a flowchart of a cloud-based collaborative design method based on desktop 3D CAD provided in an embodiment of the present application;
[0028] Figure 4Schematic diagram of data interaction among the client, collaborative channel, and desktop CAD process provided by an embodiment of the present application;
[0029] Figure 5 Schematic diagram of the structure of the lightweight proxy model provided by an embodiment of the present application;
[0030] Figure 6 Schematic diagram of the structure for performing a fillet operation with a constant radius on the opposite side e1 provided by an embodiment of the present application;
[0031] Figure 7 Schematic diagram of data interaction between Web user - X and collaborative channel - X provided by an embodiment of the present application;
[0032] Figure 8 Schematic diagram of the main interface of the cloud - based collaborative design system based on desktop 3D CAD provided by an embodiment of the present application;
[0033] Figure 9 Schematic diagram of data interaction among Web user - X, collaborative channel - X, and desktop CAD process - X provided by an embodiment of the present application;
[0034] Figure 10 Schematic diagram of the method for judging instruction conflicts based on the permanent naming mechanism of topological objects provided by an embodiment of the present application;
[0035] Figure 11 Schematic diagram of the structure for performing fillet and groove operations on a cube provided by an embodiment of the present application;
[0036] Figure 12 Schematic diagram of the process of the cloud - based collaborative design method based on desktop 3D CAD provided by an embodiment of the present application;
[0037] Figure 13 Schematic diagram of the main interface of the cloud - based collaborative design system based on desktop 3D CAD provided in an embodiment of the present application;
[0038] Figure 14 Schematic diagram of the functional modules of a cloud - based collaborative design device based on desktop 3D CAD provided by an embodiment of the present application;
[0039] Figure 15 Schematic diagram of the functional modules of a cloud - based collaborative design device based on desktop 3D CAD provided by another embodiment of the present application;
[0040] Figure 16 Schematic diagram of the functional modules of a cloud - based collaborative design device based on desktop 3D CAD provided by yet another embodiment of the present application;
[0041] Figure 17A schematic structural diagram of a computer device provided by an embodiment of the present application. Detailed implementation manners
[0042] Next, the technical solutions in the embodiments of the present application will be clearly and completely described in conjunction with the accompanying drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the protection scope of the present application.
[0043] To make the above objects, features, and advantages of the present application more obvious and understandable, the present application will be further described in detail below with reference to the accompanying drawings and specific implementation manners.
[0044] It can be understood that in the related art, a 3D CAD prototype system supporting collaborative design is used for modeling design. However, the collaborative mode in this solution is relatively simple, mainly realizing serial design of multiple people through the model locking method, that is, only one designer is allowed to edit the model at the same time, and others can only wait until the lock is unlocked to continue working, which makes the model need to be locked frequently, greatly limiting the parallel speed of collaboration and resulting in low product design efficiency.
[0045] Based on the above defects, the present application provides a cloud-based collaborative design method based on desktop 3D CAD. Compared with the prior art, this technical solution assigns corresponding collaborative channels to each user terminal and establishes a communication connection, and each collaborative channel is associated with the corresponding desktop CAD process, enabling multiple users to operate simultaneously, reducing the frequent locking restrictions, improving the parallel speed of collaboration, and the user terminal sends a modeling instruction carrying an instruction triple formed based on a lightweight proxy model to the collaborative server, enabling the collaborative server to accurately convey the user operation intention to the CAD server, facilitating accurate parsing and processing by the CAD server to obtain a modeling result, and then broadcasting the modeling result to the user terminal through the collaborative server, realizing efficient data interaction, enabling the user terminal to update the lightweight model in a timely manner according to the modeling result, and keeping the model state synchronized, greatly improving the product design efficiency.
[0046] Please refer to Figure 1 as shown Figure 1 which shows the architecture diagram of the cloud-based collaborative design system based on desktop 3D CAD provided by the embodiment of the present application. As Figure 1 shown, the system architecture includes: at least one user terminal 10, a collaborative server 20, and a CAD server 30. The number of the user terminals 10 can be one, two or more, or even more.
[0047] Among them, the user side is the application or device side where the user operates. The above user side includes multiple Web users participating in product collaborative design, accessing through different terminals and completing collaborative design operations on the web page. The terminal can include but is not limited to various desktop computers, laptop computers, smart phones, tablet computers, etc.
[0048] The collaborative server 20 refers to the server for performing collaborative operations, which can be configured on a server. The server can be an independent server or a server cluster composed of multiple servers, or a distributed system, or a cloud server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, CDN, as well as big data and artificial intelligence platforms.
[0049] The CAD server 30 refers to the server for providing CAD process operations, which can be configured on a server. The server can be an independent server or a server cluster composed of multiple servers, or a distributed system, or a cloud server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, CDN, as well as big data and artificial intelligence platforms.
[0050] Among them, the above user side 10 can include a configuration interface. The user side can communicate with the collaborative server 20 through this configuration interface, and this communication connection can be a WebSocket link. The user side configuration interface can be a Web application programming interface (API) interface or a graphical user interface (GUI) interface. The collaborative server 20 can include a configuration interface and communicate with the CAD server 30 through the configuration interface. The configuration interface of the collaborative server can be, for example, a remote procedure call (PRC) interface.
[0051] Please refer to Figure 2As shown, at least one client includes multiple Web users participating in product collaborative design, namely Web User 1, Web User 2, Web User 3, ..., Web User n. Each Web user maintains a lightweight proxy model representing the designed product to achieve realistic 3D display of the product and operations on it; the Web users send operation instructions such as registration, login, and joining collaboration to the collaborative server through the Web API interface; and it is used to convert the operations based on the lightweight proxy model into modeling instructions, send, wait for, and receive modeling results through the WebSocket connection to the collaborative channel, and then update the lightweight proxy model and refresh the 3D view display.
[0052] The collaborative server includes functional modules such as user management and collaborative channel scheduling. The user management module is responsible for user registration and login verification; the collaborative server is used to receive operation instructions sent from the Web client and execute corresponding operations according to the instruction types in the operation instructions; if it is a login instruction, the collaborative channel scheduling module will create a collaborative channel for the Web user and create a WebSocket connection between the Web client and the collaborative channel. At the same time, the collaborative channel in the collaborative server will send an instruction to apply for a desktop CAD process to the CAD server and associate it with the collaborative channel; if it is an instruction for a user to join another user's collaborative channel, the collaborative channel scheduling will add the Web user to the target collaborative channel and create a WebSocket connection between the Web client and the target collaborative channel. Among them, the above-mentioned collaborative channel scheduling module includes multiple collaborative channels, namely Collaborative Channel 1, Collaborative Channel 2, ..., Collaborative Channel n.
[0053] The CAD server includes a session management module, a cloud data management module, and a desktop CAD process scheduling module. When the CAD server receives an instruction to apply for a desktop CAD process sent from the collaborative channel, through the session management module and the desktop CAD process scheduling module, it creates and associates a desktop CAD process for the collaborative channel; and the desktop CAD process in the CAD server is used to receive and process modeling instructions from the collaborative channel and return modeling results to it. The desktop CAD process scheduling module includes multiple desktop CAD processes, namely Desktop CAD Process 1, Desktop CAD Process 2, ..., Desktop CAD Process n. Each desktop CAD process is used to implement sketch design, part design, assembly design, etc., and interacts with the product design model, and the cloud data management module establishes a connection with the cloud storage.
[0054] In an exemplary embodiment, as Figure 3 shown, a cloud-based collaborative design method based on desktop 3D CAD is provided. This method is executed by the collaborative server and includes the following steps S201 to step S203.
[0055] Wherein:
[0056] Step S201, receiving and responding to a modeling instruction sent by at least one client; there are multiple collaboration channels included in the collaboration server, and each client is assigned a corresponding collaboration channel and establishes a communication connection with the collaboration channel; the modeling instruction carries an instruction triple formed based on a lightweight proxy model, and the instruction triple includes an instruction identifier, an operation object identifier, and instruction parameters.
[0057] It should be noted that the above collaboration channel is a communication channel or mechanism, and its role is to realize the collaboration and information interaction between different systems, processes, or modules. Each client is assigned a corresponding collaboration channel and establishes a WebSocket connection with the corresponding collaboration channel. This WebSocket connection is a network communication protocol based on the TCP protocol, which provides a way for two-way data transmission on a single TCP connection, enabling real-time and two-way communication between the client and the collaboration server, breaking the limitations of the traditional HTTP protocol request-response mode.
[0058] During the process of product design by the client, an instruction triple is generated based on the operation of the lightweight proxy model and encapsulated as a modeling instruction and sent to the collaboration server, so that the collaboration server receives and responds to the modeling instruction sent by at least one client. The client is a Web client participating in product collaborative design. The instruction identifier is used to uniquely represent the identity information of the modeling instruction, the operation object identifier is used to uniquely represent the identity information of the operation object, and the instruction parameters are the parameters for modeling and designing the product.
[0059] In one embodiment, before receiving and responding to the modeling instruction sent by at least one client, the above method further includes:
[0060] Receiving and responding to an operation instruction sent by at least one client; there are a user management module and a collaboration channel scheduling module included in the collaboration server, and the operation instruction carries an operation type and a user identifier, and the operation type includes a registration type, a login type, and a collaboration join type.
[0061] When the operation type is the registration type, the user management module performs a registration operation according to the user identifier; when the operation type is the login type, the collaboration channel scheduling module creates a corresponding collaboration channel for the client and establishes a communication connection between the collaboration channel and the client; when the operation type is the collaboration join type, the target collaboration channel is determined according to the user identifier, and a communication connection between the target collaboration channel and the client is established; the target collaboration channel is the collaboration channel that the client corresponding to the user identifier requests to join other users.
[0062] In this embodiment, when the collaborative server receives an operation instruction of the registration type sent by the user terminal, the operation instruction of the registration type includes: a user identifier. The user management module performs a registration operation according to the user identifier. After the registration is completed, the user terminal sends a login instruction to the collaborative server. The collaborative channel scheduling module creates a collaborative channel for the user terminal and creates a WebSocket connection between the user terminal and the collaborative channel. If a user joins the collaborative channel of another user, that is, the collaborative server receives an operation instruction of the collaborative join type, the collaborative channel scheduling module adds the Web user to the target collaborative channel and creates a WebSocket connection between the Web user and the target collaborative channel.
[0063] Step S202: Send a modeling instruction to the CAD server; the CAD server includes multiple desktop CAD processes, and each collaborative channel is associated with a corresponding desktop CAD process.
[0064] After the collaborative server receives the modeling instruction sent by the user terminal through the WebSocket connection, it can send the modeling instruction to the CAD server. The above-mentioned desktop CAD process is the specific execution unit of the modeling instruction and is a process of an application program that transforms the existing desktop 3D CAD software through cloudification and adds a Remote Procedure Call (RPC) interface. Through this desktop CAD process, the design model of the product is maintained, the modeling instruction is executed, a lightweight proxy model is generated, and the product model data is stored in the cloud storage, etc.; the desktop CAD process generally can include functional modules such as sketch design, part design, assembly design, sheet metal design, and electrical wiring design.
[0065] After the collaborative server creates a collaborative channel for the Web user of the user terminal and creates a WebSocket connection between the Web user and the collaborative channel, it can send a process request instruction to the CAD server. The CAD server applies for a desktop CAD process and establishes a communication connection between the collaborative channel and the desktop CAD process.
[0066] Please refer to Figure 4As shown, the client includes Web User 1, Web User 2, ..., Web User m. Web User 1, Web User 2, ..., Web User m respectively establish WebSocket connections with collaboration channel X, and collaboration channel X establishes a communication connection with desktop CAD process X through the PRC interface. Web User 1, Web User 2, ..., Web User m send modeling instructions to collaboration channel X in the collaboration server. Collaboration channel X sends the modeling instructions to desktop CAD process X. Desktop CAD process X generates a modeling result according to the modeling instructions and sends the modeling result to collaboration channel X, so that collaboration channel X broadcasts the modeling result to Web User 1, Web User 2, ..., Web User m.
[0067] Step S203: Receive the modeling result returned by the CAD server, and broadcast the modeling result to the client through the collaboration channel, so that the client updates the lightweight proxy model according to the modeling result; the modeling result is determined by the CAD service parsing the modeling instruction to determine the operation object, and when the operation object evaluation is successful, according to the instruction triple.
[0068] After receiving the modeling instruction, the CAD server can parse the modeling instruction to determine the operation object, judge whether the operation object evaluation is successful. When the operation object evaluation is successful, determine the modeling result according to the instruction triple and send it to the collaboration server, so that the collaboration server obtains the modeling result. When the operation object evaluation fails, skip the modeling instruction and generate a failure prompt instruction to send to the collaboration server, so that the collaboration server sends the failure prompt instruction to the client; the failure prompt instruction is used to represent the prompt information of the user operation failure.
[0069] In an embodiment of the present application, the above modeling result includes view synchronization information. Receiving the modeling result returned by the CAD server includes:
[0070] Obtain the modeling mode corresponding to the modeling instruction; the modeling mode includes conference-style modeling and division-of-labor modeling; the division-of-labor modeling is used to represent that each client displays according to its own view content; when the modeling mode is conference-style modeling, determine the target clients participating in the collaborative design, and broadcast the view synchronization information to the target clients through the collaboration channel, so that the target clients display according to the same view content.
[0071] Specifically, taking the client corresponding to a Web user as an example, a multi-user collaborative modeling mode is adopted among the Web user, the collaborative channel, and the CAD server. This modeling mode can include: conference-style modeling and division-of-labor modeling. Conference-style modeling supports view synchronization, and division-of-labor modeling supports non-view synchronization. The Web users participating in the collaborative product design send modeling instructions to the assigned collaborative channel through a WebSocket connection. The collaborative channel in the collaborative server receives the modeling results sent by the CAD server.
[0072] After receiving the modeling results sent by the CAD server, the collaborative server determines whether to broadcast view synchronization information to the client according to the modeling mode. When the modeling mode is conference-style modeling, it determines the target clients (target Web users) participating in the collaborative design and broadcasts the view synchronization information to the target clients through the collaborative channel, so that the target clients can display according to the same view content. The view synchronization information can include: information such as view size, zoom ratio, and viewing direction, so as to keep the view content of the target Web users participating in the collaboration completely consistent. When the modeling mode is division-of-labor modeling, the collaborative channel does not broadcast view synchronization information, and only keeps the lightweight proxy models of the target Web users participating in the collaboration consistent, and each can be presented with different viewing angles and zoom ratios.
[0073] For example, when 10 target clients for collaborative design send modeling instructions to the collaborative server, if the modeling mode is conference-style modeling, the collaborative channel in the collaborative server broadcasts the view synchronization information to these 10 target clients, so that the view content of the clients participating in the collaboration is kept completely consistent; if the modeling mode is division-of-labor modeling, the collaborative server does not broadcast the view synchronization information, and only keeps the lightweight proxy models of the 10 target clients participating in the collaboration consistent, and each can be presented with different viewing angles and zoom ratios.
[0074] It can be understood that the above lightweight proxy models include: part models and assembly models. Both the part models and the assembly models include: topological objects, geometric objects, and other objects. The modeling instructions are generated by the client based on the topological objects, geometric objects, and other objects.
[0075] Please refer to Figure 5As shown, the lightweight proxy model is a structured data model used to represent product designs, including part models and assembly models. The part model is a collection of objects such as bodies, sketches, PMI, materials, and attributes; the assembly model is a collection of components, and a component is an instantiated object of a part or sub-assembly with a transformation matrix. Among them, a body is a collection of faces, edges, and vertices, and a sketch is a collection of sketch curves; the geometry of a face is a collection of discretized triangular facets, the geometry of a sketch curve is a discretized polyline, and the geometry of a vertex is a point; in addition, a triangular facet contains three points, and a polyline is composed of several points.
[0076] Topological objects are the basic constituent elements of part models. The combination of topological objects such as vertices, edges, and faces determines the part's topological structure. The topological relationships between edges and faces can also define the attributes and features of parts, such as the positions of chamfers and fillets, and affect the calculation of surface area, volume, and machining process planning. Topological objects can also be used to describe the connection and mating relationships between parts or components, such as face fitting and edge alignment, to determine the position and orientation of components, and also help to express the overall structure and hierarchical relationship of the assembly model, assist in assembly process planning and virtual assembly simulation, and detect interference and other problems in advance.
[0077] Geometric objects endow part models with precise dimension and shape information. Geometric objects precisely describe the shape of parts through mathematical expressions. For example, a cylinder is defined by geometric parameters such as radius and height, and these parameters determine the precise form of the part. They cooperate with topological objects, where topological objects determine the structural framework, and geometric objects endow precise dimension and shape details. Geometric objects provide precise dimension parameters for the mating and installation between components at the assembly level. For example, in mechanical assembly, the geometric dimensions of shafts and holes determine whether they can be correctly assembled. The dimension accuracy, tolerance, and other information of geometric objects affect the performance and quality of the assembly, and at the same time, they also participate in analyses such as the spatial layout and interference check of the assembly.
[0078] Other objects in the part model include material property objects, texture objects, etc., enriching the part model information. For example, the material property object determines the physical properties of the part, such as strength, hardness, etc., affecting the performance of the part under different working conditions; the texture object is used for appearance simulation and visualization, making the part model more realistic in the virtual environment. Other objects in the assembly model include assembly constraint objects, motion objects, etc. The assembly constraint object defines the assembly relationship and constraint conditions between components, such as fixed, rotational, etc. constraints; the motion object describes the motion characteristics of components in the assembly, such as motion trajectory, speed, etc., and is used for motion simulation and analysis to assist in product function design and optimization.
[0079] Among them, the Web user corresponding to the client realizes the collaborative design of the product by processing the operation objects of the lightweight proxy model. For example, by drawing geometric objects such as faces, edges, vertices, etc., the three-dimensional realistic display of the product model is realized, and the picking of the associated topological objects is realized by picking the geometric objects, so as to accurately realize the collaborative design of the product.
[0080] In one embodiment, the above modeling result includes an incremental data set; receiving the modeling result returned by the CAD server, and broadcasting the modeling result to the client through the collaborative channel, including:
[0081] Receiving the incremental data sets of each changed object returned by the CAD server; the incremental data set of each changed object is represented by a variable triple, and the variable triple includes: changed object identifier, data change type, changed data content; sending the incremental data set to the client through the collaborative channel in a broadcast manner.
[0082] Specifically, the above modeling instruction is formed by the client executing corresponding operations based on the operation objects of the lightweight proxy model. The modeling instruction can be defined as an instruction triple (command, {Ids}, {Parameters}), where command is the instruction identifier, {Ids} is the object identifier, and {Parameters} is the instruction parameter. When the operation object includes topological objects, {Ids} can include multiple topological object identifiers, that is, a topological object identifier set, and {Parameters} can include multiple instruction parameters, that is, an instruction parameter set.
[0083] After the desktop CAD process in the CAD server executes a modeling instruction and changes the product model, a new lightweight proxy model needs to be generated for Web users. To reduce data transmission volume and improve response efficiency, the desktop CAD process only returns the incremental data of the lightweight proxy model, i.e., the incremental data set {Delta} of each changed object, to the collaboration channel in the collaboration server. The incremental data set of each changed object can be represented by a variable triple (Id, type, {data}). Among them, Id is the identifier of the changed object and is the unique identity information of the changed object; type is the type of data change, and this type of data change can include but is not limited to: add (new), update (update), delete (delete); data is the specific content of the changed data. Therefore, the incremental data set of each changed object in the lightweight proxy model is {Delta} = {(Id, type, {data})}.
[0084] Exemplarily, please refer to Figure 6 As shown, when the user needs to perform a constant-radius fillet operation on the common edge e1 of face f1 and face f2, the user terminal corresponding to the Web user picks up edge e1 in the view, clicks the fillet command button, enters a fillet radius of 5 mm, and clicks the confirmation button. Then a modeling instruction including the instruction triple (round, {e1}, {5mm}) is generated and sent to the collaboration channel assigned to the web user terminal in the collaboration server. The collaboration channel then sends the modeling instruction to the desktop CAD process in the CAD server associated with it. The desktop CAD process in the CAD server receives the modeling instruction, finds the original topological edge corresponding to the product model according to the Id of edge e1, and performs a constant-radius fillet operation on it. The desktop CAD process in the CAD server analyzes the modeling operation and collects the change information of each changed object, generates the incremental data set of the lightweight proxy model, and then returns the incremental data set to the corresponding collaboration channel in the collaboration server. Then the collaboration channel broadcasts the incremental data set to the user terminal corresponding to the Web user participating in the collaboration, so that the user terminal corresponding to the Web user updates the local lightweight proxy model according to the incremental data set and updates the view display.
[0085] It should be noted that please continue to refer to Figure 6 As shown Figure 6 The left side is a schematic diagram of the product structure without performing a constant-radius fillet operation on edge e1 Figure 6 The right side is a schematic diagram of the product structure after performing a constant-radius fillet operation on edge e1. For the fillet operation of edge e1, the data of faces f1 and f2 and their discretized small patches facet need to be updated, edge e1 will be deleted, and edges e2, e3 and face f3 are all newly added. That is, the incremental data set {Delta} of the lightweight proxy model corresponding to this operation can be represented by the following variable triple:
[0086] {(f1, update, {data_f1}), (f1 - facet, update, {data_fct1}),
[0087] (f2, update, {data_f2}), (f2 - facet, update, {data_fct2}),
[0088] (e1, delete, {}), (e1 - polyline, delete, {}),
[0089] (e2, add, {data_e2}), (e2 - polyline, add, {data_pl2}),
[0090] (e3, add, {data_e3}), (e3 - polyline, add, {data_pl3}),
[0091] (f3, add, {data_f3}), (f3 - facet, add, {data_fct3})}
[0092] Among them, f1, f2, f3, e1, e2, e3, f1 - face, f2 - facet, f3 - facet, e1 - polyline, e2 - polyline, and e3 - polyline are identifiers of the changed objects, update, delete, and add are data change types, and data_f1, data_f2, data_f3, data_e2, data_e3, data_fct1, data_fct2, data_fct3, data_pl2, and data_pl3 are the contents of the changed data.
[0093] In the embodiment of the present application, the collaborative server receives the incremental data sets of each object returned by the CAD server and broadcasts the incremental data sets to the client through the collaborative channel, enabling the client to update the lightweight proxy model in a timely manner according to the incremental data sets, thereby improving the product design efficiency.
[0094] In one of the embodiments, the above - mentioned collaborative channel includes: a first data processor and a first data center. The first data center includes a first instruction queue, a first data transceiver, and a first result queue;
[0095] When there are multiple modeling instructions, the first data transceiver is used to perform enqueueing or dequeueing of the modeling instructions in the first instruction queue based on the multi-threaded parallel processing of the producer-consumer model; when there are multiple modeling results, the first data transceiver is used to perform enqueueing or dequeueing of the modeling results in the first result queue based on the multi-threaded parallel processing of the producer-consumer model.
[0096] The first data processor is used to process the data of the modeling instructions and send the modeling instructions to the first instruction queue, and receive the modeling results sent by the first result queue; the first instruction queue is used to receive the modeling instructions sent by the first data processor and send them to the first data transceiver; the first result queue is used to receive the modeling results sent by the first data transceiver and send them to the first data processor.
[0097] Specifically, please refer to Figure 7 As shown in the figure, taking the client as Web user - X and the collaborative channel as collaborative channel - X as an example, Web user - X establishes a communication connection with collaborative channel - X. The collaborative channel - X includes a data processor and a first data center. The first data center includes a first instruction queue, a first data transceiver, and a first result queue. Web user - X generates modeling instructions based on the lightweight proxy model and sends the modeling instructions to collaborative channel - X. After processing the modeling instructions through the first data processor, collaborative channel - X places them in the first instruction queue in sequence, and sends the modeling instructions to the desktop CAD process - X in the CAD server through the first data transceiver. The desktop CAD process - X generates modeling results according to the modeling instructions and sends them to collaborative channel - X. The first data transceiver in collaborative channel - X sends the modeling results to the first result queue, and then sends the modeling results to Web user - X. Among them, the first data transceiver enqueues or dequeues in parallel based on the multi-threaded producer-consumer model, realizing efficient and orderly data flow and instruction processing, and preventing unnecessary collaborative conflicts or incorrect results due to disordered instruction sequences.
[0098] It can be understood that the above producer-consumer model is a classic multithreaded design pattern. There are two types of roles in this model, including producers and consumers. Among them, the producer is responsible for generating data. For example, in the scenario of data reception and transmission, it may obtain data (including modeling instructions or modeling results) from external devices or other systems. The consumer is responsible for processing data, such as performing operations like parsing and storing the obtained data. Data interaction between the producer and the consumer is carried out through a shared buffer (queue). The producer puts data into the queue (enqueues), and the consumer takes data out of the queue (dequeues). Multithreaded parallelism means that the first data transceiver utilizes multiple threads to work simultaneously. Based on the producer-consumer model, multiple producer threads can enqueue data simultaneously, and multiple consumer threads can also dequeue data from the queue simultaneously to obtain data for processing.
[0099] In the embodiments of this application, by adopting multithreaded parallel processing of modeling instructions or modeling results based on the producer-consumer model, the performance of the multi-core processor can be fully utilized, the efficiency of data processing can be improved, the speed of data reception, transmission, and processing can be accelerated, the performance bottleneck that may occur during single-threaded processing can be avoided, so that the modeling instructions sent by different user terminals can be quickly enqueued by the producer threads, and the operation of processing the instructions can be parallelly processed by the consumer threads after taking the instructions out of the queue, enhancing the response speed and processing capacity of the entire system.
[0100] The cloud-based collaborative design method based on desktop 3D CAD provided by the embodiments of the present application includes: receiving and responding to modeling instructions sent by at least one client. The collaborative server includes multiple collaborative channels, and each client is assigned a corresponding collaborative channel and establishes a communication connection with the collaborative channel. The modeling instructions carry an instruction triple formed based on a lightweight proxy model. The instruction triple includes an instruction identifier, an operation object identifier, and instruction parameters. Sending the modeling instructions to the CAD server. The CAD server includes multiple desktop CAD processes, and each collaborative channel is associated with a corresponding desktop CAD process. Receiving the modeling result returned by the CAD server, and broadcasting the modeling result to the clients through the collaborative channel so that the clients can update the lightweight proxy model according to the modeling result. The modeling result is determined by the CAD service parsing the modeling instructions to determine the operation object and, when the evaluation of the operation object is successful, according to the instruction triple. Compared with the prior art, this technical solution assigns corresponding collaborative channels to each client and establishes a communication connection, and each collaborative channel is associated with a corresponding desktop CAD process, enabling multiple users to operate simultaneously, reducing frequent locking restrictions, improving the collaborative parallel speed, and the clients send modeling instructions carrying the instruction triple formed based on the lightweight proxy model to the collaborative server, enabling the collaborative server to accurately convey the user operation intention to the CAD server, facilitating the accurate parsing and processing by the CAD server to obtain the modeling result, and then broadcasting the modeling result to the clients through the collaborative server, realizing efficient data interaction, enabling the clients to update the lightweight model in a timely manner according to the modeling result, maintaining the synchronization of the model state, and greatly improving the product design efficiency.
[0101] On the other hand, the embodiments of the present application also provide a cloud-based collaborative design method based on desktop 3D CAD. Please refer to Figure 8 as shown in Figure 8 which is a schematic flowchart of the cloud-based collaborative design method based on desktop 3D CAD provided by the embodiments of the present application. This method is applied to the CAD server and includes:
[0102] Step S301, receiving the modeling instructions sent by the collaborative server. The modeling instructions are sent by at least one client to the collaborative server. The collaborative server includes multiple collaborative channels, and each client is assigned a corresponding collaborative channel and establishes a communication connection with the collaborative channel. The modeling instructions carry an instruction triple formed based on a lightweight proxy model. The instruction triple includes an instruction identifier, an operation object identifier, and instruction parameters. The CAD server includes multiple desktop CAD processes, and each collaborative channel is associated with a corresponding desktop CAD process.
[0103] Step S302: Parse the modeling instruction to determine the operation object. When the operation object evaluation is successful, determine the modeling result according to the instruction triple, and send the modeling result to the collaboration server so that the collaboration server broadcasts the modeling result to the user side.
[0104] It should be noted that the above CAD server includes multiple desktop CAD processes, and each collaboration channel corresponds to a desktop CAD process. For example, when there are n collaboration channels in the collaboration server, namely collaboration channel 1, collaboration channel 2,..., collaboration channel n, there are n corresponding desktop CAD processes, namely desktop CAD process 1, desktop CAD process 2,..., desktop CAD process n, and a communication connection is established between the collaboration channel and the corresponding desktop CAD process, that is, a communication connection is established between collaboration channel 1 and desktop CAD process 1, a communication connection is established between collaboration channel 2 and desktop CAD process 2,..., and a communication connection is established between collaboration channel n and desktop CAD process n.
[0105] The above CAD server includes a session management module and a desktop CAD process scheduling module, and a communication connection is established between the session management module and the desktop CAD process scheduling module. Before receiving the modeling instruction sent by the collaboration server, the above method further includes: receiving and responding to the process request instruction sent by the collaboration server; the process request instruction is sent to the CAD server after the collaboration channel in the collaboration server creates a collaboration channel for the user side and establishes a communication connection between the collaboration channel and the user side; creating a desktop CAD process for the collaboration channel and establishing a communication connection between the collaboration channel and the desktop CAD process through the session management module and the desktop CAD process scheduling module.
[0106] Specifically, when the collaboration server creates a collaboration channel for the user side and establishes a communication connection between the user side and the collaboration channel, the collaboration channel in the collaboration server generates a process request instruction and sends it to the CAD server, so that the CAD server creates a desktop CAD process for the collaboration channel and establishes a communication connection between the system channel and the desktop CAD process through the session management module and the desktop CAD process scheduling module. The desktop CAD process receives and processes the modeling instruction from the collaboration channel and returns the modeling result to it. For example, when the collaboration channel is collaboration channel 1, create the corresponding desktop CAD process 1 for collaboration channel 1 and establish a communication connection between collaboration channel 1 and desktop CAD process 1.
[0107] After the collaboration channel in the collaboration server sends the modeling instruction to the CAD server, the desktop CAD process connected to the collaboration channel in the CAD server receives the modeling instruction, parses the modeling instruction, and determines the operation object, which can be a topological object. Then, an evaluation process is performed on the topological object to determine whether the evaluation of the topological object is successful. When the evaluation of the topological object is successful, the modeling result is determined according to the instruction triple, and the modeling result is sent to the collaboration channel in the collaboration server through the desktop CAD process, so that the collaboration server broadcasts the modeling result to the client.
[0108] In one embodiment, the above-mentioned modeling result includes an incremental data set. Performing a modeling operation according to the instruction triple to obtain a modeling result includes:
[0109] Performing a modeling operation according to the instruction triple, and analyzing the modeling operation to obtain the incremental data set of each changed object; the incremental data set includes: changed object identifier, data change type, and changed data content; sending the incremental data set to the collaboration server through the desktop CAD process, so that the collaboration server sends the incremental data set to the client in a broadcast manner through the collaboration channel. Among them, the changed object identifier is used to uniquely represent the identity information of the changed object, the data change type includes types such as deletion and addition, and the changed data content refers to the data content that has changed.
[0110] Exemplarily, for example, if a user wants to perform a constant-radius fillet operation on the common edge e1 of face f1 and face f2, the client generates a modeling instruction and sends the modeling instruction (round,{e1},{5mm}) to the assigned collaboration channel. round is the instruction identifier, e1 is the object identifier, and 5mm is the instruction parameter. The collaboration channel then sends the modeling instruction to the associated desktop CAD process in the CAD server. After receiving the modeling instruction sent by the collaboration channel, the desktop CAD process in the CAD server finds the original topological edge corresponding to the product model according to the Id of edge e1, and performs a constant-radius fillet operation on it. The desktop CAD process analyzes the modeling operation and collects object change information, generates an incremental data set of the lightweight proxy model, returns the incremental data set to the collaboration channel by the desktop CAD process, and then the collaboration channel broadcasts the incremental data set to the clients participating in the collaboration. The client updates the local lightweight proxy model according to the incremental data set and updates the view display.
[0111] In the embodiment of the present application, the desktop CAD process obtains the incremental data set of each changed object by analyzing the modeling operation, and sends the incremental data set to the collaboration server through the desktop CAD process, which enables the collaboration server to send the incremental data set to the client through the collaboration channel, facilitating the client to update the local lightweight proxy model in a timely manner.
[0112] In one embodiment, the desktop CAD process includes: a second data processor, an instruction executor, and a second data center. The second data center includes a second instruction queue, a second data transceiver, and a second result queue;
[0113] When there are multiple modeling instructions, the second data transceiver is used to perform multi-threaded parallel processing of the enqueueing or dequeueing of the modeling instructions in the second instruction queue based on the producer-consumer model; when there are multiple modeling results, the second data transceiver is used to perform multi-threaded parallel processing of the enqueueing or dequeueing of the modeling results in the second result queue based on the producer-consumer model.
[0114] The second instruction queue is used to receive the modeling instructions sent by the second data transceiver and send them to the second data processor; the second result queue is used to receive the modeling results sent by the second data processor and send them to the second data transceiver; the instruction executor is used to parse and process the modeling instructions to obtain an instruction triple and send it to the second data processor; the second data processor is used to receive the modeling instructions sent by the second instruction queue, process them and send them to the instruction executor, and obtain the modeling results according to the instruction triple and send them to the second result queue.
[0115] Specifically, please refer to Figure 9 As shown, taking the user side as Web user - X and the collaborative channel as collaborative channel - X as an example, Web user - X establishes a communication connection with collaborative channel - X, and collaborative channel - X establishes a communication connection with the desktop CAD process - X. The desktop CAD process - X includes a second data processor, an instruction executor, and a second data center. The second data center includes a second instruction queue, a second data transceiver, and a second result queue. Collaborative channel - X sends the modeling instructions to the desktop CAD process - X. The second data transceiver in the desktop CAD process - X receives the modeling instructions and stores them in the second instruction queue in sequence, and sends them from the second instruction queue to the second data processor, so that the second data processor processes the modeling instructions and sends them to the instruction executor. The instruction executor parses and processes the modeling instructions to obtain an instruction triple and sends it to the second data processor. The second data processor sends the modeling results to the second result queue, and the second result queue sends them to the second data transceiver, so that the second data transceiver sends the modeling results to collaborative channel - X. Among them, the second data transceiver enqueues or dequeues in a multi-threaded parallel manner based on the producer-consumer model, realizing efficient and orderly data flow and instruction processing, and preventing unnecessary collaborative conflicts or incorrect results from being returned due to disordered instruction sequences.
[0116] In one embodiment of the present application, please refer to Figure 10As shown, the desktop CAD process in the above CAD server can implement a collaborative conflict resolution strategy without model locking by using the topological object permanent naming mechanism. This permanent naming mechanism is used to determine whether the modeling instruction is in a conflict state or a compatible state.
[0117] After receiving the modeling instruction sent by the collaborative server, the method further includes: when the evaluation of the operation object fails, skipping the modeling instruction and generating a failure prompt instruction to be sent to the collaborative server, so that the collaborative server sends the failure prompt instruction to the user side; the failure prompt instruction is used to represent the prompt information of the user operation failure.
[0118] Specifically, in the desktop CAD process, when the instruction executor receives the modeling instruction, it obtains the topological object of the modeling instruction and inputs the topological object into the topological object permanent naming mechanism for object evaluation judgment; it judges whether the modeling instruction is in a conflict state or a compatible state. When the evaluation of the topological object fails, it indicates that the modeling instruction is in a conflict state, skips the modeling instruction and generates a failure prompt instruction to be sent to the collaborative server, so that the collaborative server sends the failure prompt instruction to the user side to prompt the user that the operation fails and continue to try in the updated lightweight proxy model. When the evaluation of the topological object is successful, it indicates that the modeling instruction is in a compatible state, then determines the modeling result according to the instruction triple and sends the modeling result to the collaborative server, so that the collaborative server broadcasts the modeling result to the user side.
[0119] Exemplarily, please refer to Figure 11 as shown Figure 11 On the left is a schematic structural diagram of the original cube provided by the embodiment of the present application. Taking the Web user as the user side as an example, it includes Web user 1 and Web user 2. Web user 1 generates modeling instruction 1 (performing a fillet operation with a radius of 5 mm on edge e1), and Web user 2 generates modeling instruction 2 (creating a groove feature in face f1). For a certain moment when Web user 1 and Web user 2 simultaneously send their respective modeling instructions to the system collaborative server, due to different network latencies, the arrival order of modeling instruction 1 and modeling instruction 2 at the collaborative channel in the collaborative server may be different.
[0120] As an implementable way, if modeling instruction 1 arrives at the collaborative channel in the collaborative server before modeling instruction 2, as Figure 11 (1) shows, the desktop CAD process in the CAD server first executes modeling instruction 1, performing the modeling operations of deleting edge e1 and adding fillet face f2; since the Id of face f1 has not changed, then modeling instruction 2 can be normally executed, performing the operation of splitting face f1 into face f11 and face f12.
[0121] As another implementation, if the modeling instruction 2 arrives at the collaboration channel in the collaboration server before the modeling instruction 1, then as shown in Figure 11 (2), the desktop CAD process in the CAD server first executes the modeling instruction 2, creates a groove feature on f1, splits the edge e1 into e11 and e12, and splits the face f1 into f11 and f12; then executes the modeling instruction 1. The instruction triple corresponding to this modeling instruction 1 is (round, {e1}, {5mm}). Since the edge e1 no longer exists at this time, it is necessary to query the updated topological object using the topological object evaluation ability of the topological object permanent naming mechanism of the desktop 3D CAD. In this case, the inherited objects e11 and e12 of the edge e1 can be successfully obtained, then modify the modeling instruction 1 to (round, {e11, e12}, {5mm}), and perform the modeling operation on it, so as to obtain the expected result. It can be seen from this that the above modeling instruction 1 and modeling instruction 2 are compatible and can be executed in any order without affecting the result.
[0122] In the embodiment of the present application, by using the topological object permanent naming mechanism, it is possible to maximize the effective solution of collaboration conflicts, and there is no need to frequently lock the model. Only by evaluating the topological object, it can be judged whether the modeling instruction is compatible or conflicting, which has quite high convenience and feasibility, avoids the cumbersome model locking / unlocking steps, and at the same time supports the high-concurrency modeling operations of multiple users.
[0123] On the other hand, the embodiment of the present application also provides a cloud-based collaborative design method based on desktop 3D CAD. Please refer to Figure 12 as shown in Figure 12 which is a schematic flowchart of the cloud-based collaborative design method based on desktop 3D CAD provided by the embodiment of the present application. This method is applied to at least one client, and this method includes:
[0124] Step S401, generating a modeling instruction based on the lightweight proxy model and sending it to the collaboration server, so that the collaboration server sends the modeling instruction to the CAD server; the modeling instruction carries an instruction triple formed based on the lightweight proxy model, and the instruction triple includes an instruction identifier, an operation object identifier, and an instruction parameter; there are multiple collaboration channels in the collaboration server, and each client is assigned a corresponding collaboration channel and establishes a communication connection with the collaboration channel; the CAD server includes multiple desktop CAD processes, and each collaboration channel is associated with a corresponding desktop CAD process.
[0125] Step S402, receiving the modeling result broadcast by the collaboration server; the modeling result is determined by the CAD server parsing the modeling instruction to determine the operation object and, when the operation object evaluation is successful, according to the instruction triple.
[0126] Step S403, updating the lightweight proxy model according to the modeling result.
[0127] It should be noted that at least one of the above user terminals can be at least one Web user. At least one Web user establishes a communication connection with the collaboration server, and each Web user establishes a communication connection with a corresponding collaboration channel in the collaboration server.
[0128] Specifically, the user terminal can execute corresponding operations based on the lightweight proxy model on the terminal to generate a modeling instruction, and then send the modeling instruction to the corresponding collaboration channel in the collaboration server, so that the collaboration channel in the collaboration server sends the modeling instruction to the CAD server.
[0129] Before the user terminal sends a modeling instruction to the collaboration server, it needs to first send an operation instruction to the collaboration server. The operation instruction carries an operation type and a user identifier. Among them, the operation type includes a registration type, a login type, and a collaboration join type. When the user terminal clicks the "Register" button on the main interface of the terminal, that is, when sending an operation instruction carrying the registration type to the collaboration server, the collaboration server performs a registration operation according to the user identifier through the user management module. When the user terminal clicks the "Login" button on the main interface of the terminal, that is, when sending an operation instruction carrying the login type to the collaboration server, a corresponding collaboration channel is created for the user terminal through the collaboration channel scheduling module, and a communication connection is established between the collaboration channel and the user terminal. When the user clicks the "Collaboration Join" button on the main interface of the terminal, that is, when sending an operation instruction carrying the collaboration join type to the collaboration server, the collaboration server determines the target collaboration channel according to the user identifier, and establishes a communication connection between the target collaboration channel and the user terminal; the target collaboration channel is a collaboration channel that the user terminal corresponding to the user identifier requests to join other users.
[0130] Please refer to Figure 13 as shown in Figure 13 It is a schematic diagram of the main interface of the cloud-based collaborative design system for desktop 3D CAD provided in the embodiment of the present application. The main interface includes a general motor and a "Start Collaboration" button. Through this main interface, it supports multi-person collaborative sketch design, part design, and assembly design. Taking the user terminal as a Web user as an example, after the Web user clicks the "Start Collaboration" button and enters a collaboration name, other Web users can join the collaborative operation through this collaboration name, so as to realize multi-person division of labor and cooperation to jointly complete the modeling design of a product, which can greatly improve the design efficiency and better support the design and research and development of large-scale project products. For example, taking the pipeline structure part in the product general motor as an example, after the Web user clicks the "Start Collaboration" button of the motor and enters a collaboration name, other Web users are allowed to join the collaborative operation. Each can click buttons such as "File", "Sketch", "Feature", "Undo", "Redo", etc., generate corresponding modeling instructions and send them to the collaboration server.
[0131] After the client sends the modeling instruction to the collaborative server, the collaborative channel corresponding to the client in the collaborative server receives the modeling instruction, sends the modeling instruction to the CAD server, and the CAD server parses the modeling instruction to determine the operation object. When the operation object evaluation is successful, the modeling result is determined according to the instruction triple, and the modeling result is sent to the collaborative server, so that the collaborative server broadcasts the modeling result to the client. The client receives the modeling result broadcast by the collaborative server and updates the lightweight proxy model according to the modeling result.
[0132] When the modeling result includes the incremental data sets of each changed object, the client receives the incremental data sets of each changed object broadcast by the collaborative server, updates the lightweight proxy model according to the incremental data sets, and updates the 3D view display on the main interface.
[0133] Based on the same inventive concept, an embodiment of the present application further provides a cloud-based collaborative design device for desktop 3D CAD for implementing the above-mentioned cloud-based collaborative design method for desktop 3D CAD. The implementation solution provided by this device to solve the problem is similar to the implementation solution described in the above method. Therefore, the specific limitations in one or more embodiments of the cloud-based collaborative design device for desktop 3D CAD provided below can refer to the limitations on the cloud-based collaborative design method for desktop 3D CAD in the above text, and will not be repeated here.
[0134] In an exemplary embodiment, as Figure 14 shown, a cloud-based collaborative design device for desktop 3D CAD is provided. The device is located in the collaborative server and includes:
[0135] A first receiving module 710, configured to receive and respond to a modeling instruction sent by at least one client; there are multiple collaborative channels in the collaborative server, and each client is assigned a corresponding collaborative channel and establishes a communication connection with the collaborative channel; the modeling instruction carries an instruction triple formed based on the lightweight proxy model, and the instruction triple includes an instruction identifier, an operation object identifier, and instruction parameters;
[0136] A first sending module 720, configured to send the modeling instruction to the CAD server; the CAD server includes multiple desktop CAD processes, and each collaborative channel is associated with a corresponding desktop CAD process;
[0137] A broadcasting module 730, configured to receive the modeling result returned by the CAD server, and broadcast the modeling result to the client through the collaborative channel, so that the client updates the lightweight proxy model according to the modeling result; the modeling result is determined by the CAD service parsing the modeling instruction to determine the operation object and, when the operation object evaluation is successful, according to the instruction triple.
[0138] As an optional implementation manner, the broadcast module 730 is specifically configured to:
[0139] Obtain a modeling mode corresponding to a modeling instruction; the modeling mode includes conference-style modeling and division-of-labor modeling; the division-of-labor modeling is used to represent that each client displays according to its respective view content;
[0140] When the modeling mode is conference-style modeling, determine target clients participating in collaborative design, and broadcast view synchronization information to the target clients through a collaborative channel, so that the target clients display according to the same view content.
[0141] As an optional implementation manner, the broadcast module 730 is further configured to:
[0142] Receive an incremental data set of each changed object returned by the CAD server; the incremental data set of each changed object is represented by a variable triple, and the variable triple includes: a changed object identifier, a data change type, and changed data content;
[0143] Send the incremental data set to the client through the collaborative channel in a broadcast manner.
[0144] As an optional implementation manner, the collaborative channel includes: a first data processor and a first data center, and the first data center includes a first instruction queue, a first data transceiver, and a first result queue;
[0145] When there are multiple modeling instructions, the first data transceiver is used to perform multi-threaded parallel processing on the enqueueing or dequeueing of multiple modeling instructions in the first instruction queue based on the producer-consumer model;
[0146] When there are multiple modeling results, the first data transceiver is used to perform multi-threaded parallel processing on the enqueueing or dequeueing of multiple modeling results in the second result queue based on the producer-consumer model;
[0147] The first data processor is used to process the data of the modeling instruction and send the modeling instruction to the first instruction queue, and receive the modeling result sent by the first result queue;
[0148] The first instruction queue is used to receive the modeling instruction sent by the first data processor and send it to the first data transceiver;
[0149] The first result queue is used to receive the modeling result sent by the first data transceiver and send it to the first data processor.
[0150] As an optional implementation manner, the device is further configured to:
[0151] Receive and respond to operation instructions sent by at least one client; collaborate with a server that includes a user management module and a collaborative channel scheduling module. The operation instructions carry an operation type and a user identifier, and the operation types include a registration type, a login type, and a collaborative join type;
[0152] When the operation type is the registration type, perform a registration operation according to the user identifier through the user management module;
[0153] When the operation type is the login type, create a corresponding collaborative channel for the client through the collaborative channel scheduling module, and establish a communication connection between the collaborative channel and the client;
[0154] When the operation type is the collaborative join type, determine the target collaborative channel according to the user identifier, and establish a communication connection between the target collaborative channel and the client; the target collaborative channel is the collaborative channel that the client corresponding to the user identifier requests to join other users.
[0155] In an exemplary embodiment, as Figure 15 shown, a cloud-based collaborative design device based on desktop 3D CAD is provided. The device is located in the CAD server and includes:
[0156] A second receiving module 810, configured to receive a modeling instruction sent by the collaborative server; the modeling instruction is sent by at least one client to the collaborative server. The collaborative server includes multiple collaborative channels, and each client is assigned a corresponding collaborative channel and establishes a communication connection with the collaborative channel; the modeling instruction carries an instruction triple formed based on a lightweight proxy model, and the instruction triple includes an instruction identifier, an operation object identifier, and instruction parameters; the CAD server includes multiple desktop CAD processes, and each collaborative channel is associated with a corresponding desktop CAD process;
[0157] A parsing module 820, configured to parse the modeling instruction to determine the operation object. When the operation object evaluation is successful, determine the modeling result according to the instruction triple, and send the modeling result to the collaborative server so that the collaborative server broadcasts the modeling result to the client.
[0158] As an optional implementation manner, the parsing module 820 is specifically configured to:
[0159] Perform a modeling operation according to the instruction triple, and analyze the modeling operation to obtain an incremental data set of each changed object; the incremental data set includes: a changed object identifier, a data change type, and changed data content;
[0160] Send the incremental data set to the collaborative server through the desktop CAD process, so that the collaborative server sends the incremental data set to the client in a broadcast manner through the collaborative channel.
[0161] As an alternative embodiment, the desktop CAD process includes: a second data processor, an instruction executor, and a second data center. The second data center includes a second instruction queue, a second data transceiver, and a second result queue;
[0162] When there are multiple modeling instructions, the second data transceiver is used to perform multi-threaded parallel processing of the enqueueing or dequeueing of multiple modeling instructions in the second instruction queue based on the producer-consumer model;
[0163] When there are multiple modeling results, the second data transceiver is used to perform multi-threaded parallel processing of the enqueueing or dequeueing of multiple modeling results in the second result queue based on the producer-consumer model;
[0164] The second instruction queue is used to receive the modeling instructions sent by the second data transceiver and send them to the second data processor;
[0165] The second result queue is used to receive the modeling results sent by the second data processor and send them to the second data transceiver;
[0166] The instruction executor is used to parse and process the modeling instructions, obtain an instruction triple, and send it to the second data processor;
[0167] The second data processor is used to receive the modeling instructions sent by the second instruction queue, process them, and send them to the instruction executor, and obtain a modeling result according to the instruction triple and send it to the second result queue.
[0168] As an alternative embodiment, the device is further used for:
[0169] Receiving and responding to a process request instruction sent by the collaboration server; the process request instruction is sent to the CAD server by the collaboration channel in the collaboration server after creating a collaboration channel for the user side and establishing a communication connection between the collaboration channel and the user side;
[0170] Creating a desktop CAD process for the collaboration channel through the session management module and the desktop CAD process scheduling module, and establishing a communication connection between the collaboration channel and the desktop CAD process.
[0171] As an alternative embodiment, the device is further used for:
[0172] When the evaluation of the operation object fails, skipping the modeling instruction and generating a failure prompt instruction to send to the collaboration server, so that the collaboration server sends the failure prompt instruction to the user side; the failure prompt instruction is used to represent the prompt information of the user operation failure.
[0173] In an exemplary embodiment, as Figure 16 shown, there is provided a cloud-based collaborative design device based on desktop 3D CAD. The device is located in at least one user side and includes:
[0174] A second sending module 910 generates a modeling instruction based on the lightweight proxy model and sends it to the collaborative server, so that the collaborative server sends the modeling instruction to the CAD server; the modeling instruction carries an instruction triple formed based on the lightweight proxy model, and the instruction triple includes an instruction identifier, an operation object identifier, and instruction parameters; the collaborative server includes multiple collaborative channels, and each client is assigned a corresponding collaborative channel and establishes a communication connection with the collaborative channel; the CAD server includes multiple desktop CAD processes, and each collaborative channel is associated with a corresponding desktop CAD process;
[0175] A third receiving module 920 receives the modeling result broadcast by the collaborative server; the modeling result is determined by the CAD server parsing the modeling instruction to determine the operation object and, when the operation object evaluation is successful, according to the instruction triple;
[0176] An update module 930 is used to update the lightweight proxy model according to the modeling result.
[0177] Among them, implementing this implementation manner, the cloud-based collaborative design device based on desktop 3D CAD can enable multiple users to operate simultaneously by assigning corresponding collaborative channels to each client and establishing communication connections, and each collaborative channel is associated with a corresponding desktop CAD process, reducing frequent locking restrictions, improving the collaborative parallel speed, and the client sends a modeling instruction carrying an instruction triple formed based on the lightweight proxy model to the collaborative server, enabling the collaborative server to accurately convey the user operation intention to the CAD server, facilitating the CAD server to accurately parse and process, obtain the modeling result, and then broadcast the modeling result to the client through the collaborative server, realizing efficient data interaction, enabling the client to update the lightweight model in a timely manner according to the modeling result, maintaining the model state synchronization, and greatly improving the product design efficiency.
[0178] In an exemplary embodiment, a computer device is provided. The computer device can be a server or a terminal, and its internal structure diagram can be as Figure 17As shown in the figure. The computer device includes a processor, a memory, an input / output interface (Input / Output, abbreviated as I / O), and a communication interface. Among them, the processor, the memory, and the input / output interface are connected through a system bus, and the communication interface is connected to the system bus through the input / output interface. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program, and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The database of the computer device is used to store video tag processing data. The input / output interface of the computer device is used to exchange information between the processor and external devices. The communication interface of the computer device is used to communicate with external terminals through a network connection. When the computer program is executed by the processor, it implements a cloud-based collaborative design method based on desktop 3D CAD.
[0179] Those skilled in the art can understand that Figure 17 the structure shown in the figure is only a block diagram of some structures related to the solution of this application, and does not constitute a limitation on the computer device to which the solution of this application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine some components, or have different component arrangements.
[0180] In an exemplary embodiment, a computer device is further provided, including a memory and a processor. A computer program is stored in the memory. When the processor executes the computer program, the steps in the above method embodiments are implemented.
[0181] In an exemplary embodiment, a computer-readable storage medium is provided, storing a computer program. When the computer program is executed by the processor, the steps in the above method embodiments are implemented.
[0182] In an exemplary embodiment, a computer program product is provided, including a computer program. When the computer program is executed by the processor, the steps in the above method embodiments are implemented.
[0183] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use, and processing of relevant data need to comply with relevant regulations.
[0184] Those of ordinary skill in the art can understand that all or part of the processes in the methods of the above embodiments can be completed by instructing relevant hardware through a computer program. The computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above methods. Among them, any reference to a memory, database, or other medium used in the various embodiments provided in the present application can include at least one of non-volatile and volatile memories. Non-volatile memories can include read-only memory (ROM), magnetic tapes, floppy disks, flash memories, optical memories, high-density embedded non-volatile memories, resistive random access memories (ReRAM), magnetoresistive random access memories (MRAM), ferroelectric random access memories (FRAM), phase change memories (PCM), graphene memories, etc. Volatile memories can include random access memory (RAM) or external cache memories, etc. By way of illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM), etc.
[0185] The databases involved in the various embodiments provided in the present application can include at least one of relational databases and non-relational databases. Non-relational databases can include distributed databases based on blockchain, etc., without limitation. The processors involved in the various embodiments provided in the present application can be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, data processing logics based on quantum computing, etc., without limitation.
[0186] The technical features of the above embodiments can be combined arbitrarily. For the sake of brevity of description, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, it should be considered as the scope described in this specification.
[0187] Specific examples are used in this article to elaborate on the principles and implementation manners of the present application. The descriptions of the above embodiments are only used to help understand the method and its core idea of the present application; at the same time, for those of ordinary skill in the art, according to the idea of the present application, there will be changes in the specific implementation manners and application scopes. In summary, the content of this specification should not be construed as a limitation to the present application.
Claims
1. A cloud-based collaborative design method based on desktop 3D CAD, characterized in that: The cloud-based collaborative design method based on desktop 3D CAD is applied to a collaborative server, and the method includes: Receive and respond to a modeling instruction sent by at least one user terminal; the collaborative service terminal includes a plurality of collaborative channels, each of the user terminals is assigned a corresponding collaborative channel and establishes a communication connection with the collaborative channel; the modeling instruction carries an instruction triple formed based on a lightweight proxy model, and the instruction triple includes an instruction identifier, an operation object identifier, and an instruction parameter; Sending the modeling instruction to a CAD server; the CAD server includes a plurality of desktop CAD processes, and each of the collaborative channels is associated with a corresponding desktop CAD process; Receive the modeling result returned by the CAD server, and broadcast the modeling result to the user terminal through a collaborative channel, so that the user terminal updates the lightweight proxy model according to the modeling result; the modeling result is determined by the CAD service parsing the modeling instruction to determine the operation object, and when the operation object is successfully evaluated, it is determined according to the instruction triplet.
2. The cloud-based collaborative design method based on desktop 3D CAD according to claim 1, characterized in that: The modeling result includes view synchronization information, and broadcasting the modeling result to the user terminal through the collaborative channel includes: Acquire a modeling mode corresponding to the modeling instruction; the modeling mode includes conference modeling and division of labor modeling; the division of labor modeling is used to represent that each user terminal displays according to its own view content; When the modeling mode is conference modeling, the target user terminals participating in the collaborative design are determined, and the view synchronization information is broadcast to the target user terminals through the collaborative channel, so that the target user terminals display the same view content.
3. The cloud-based collaborative design method based on desktop 3D CAD according to claim 1, characterized in that: The modeling result includes an incremental data set; receiving the modeling result returned by the CAD server, and broadcasting the modeling result to the user terminal through the collaborative channel, including: Receive the incremental data set of each changed object returned by the CAD server; each incremental data set of the changed object is represented by a variable triplet, and the variable triplet includes: a changed object identifier, a data change type, and a changed data content; The incremental data set is sent to the user terminal through the collaborative channel in a broadcasting manner.
4. The cloud-based collaborative design method based on desktop 3D CAD according to claim 1, characterized in that: The collaborative channel includes: a first data processor and a first data center, wherein the first data center includes a first instruction queue, a first data transceiver, and a first result queue; When there are multiple modeling instructions, the first data transceiver is used for processing multiple modeling instructions in parallel in a multi-threaded manner based on a producer-consumer model, and enqueuing or dequeuing the multiple modeling instructions in the first instruction queue; When there are multiple modeling results, the first data transceiver is used for processing multiple modeling results in parallel in a multi-threaded manner based on a producer-consumer model, and enqueuing or dequeuing the multiple modeling results in the first result queue; The first data processor is used for performing data processing on the modeling instruction and sending the modeling instruction to the first instruction queue, and receiving the modeling result sent by the first result queue; The first instruction queue is used to receive the modeling instruction sent by the first data processor and send it to the first data transceiver; The first result queue is used to receive the modeling result sent by the first data transceiver and send it to the first data processor.
5. The cloud-based collaborative design method based on desktop 3D CAD according to claim 1, characterized in that: Before receiving and responding to the modeling instruction sent by at least one user terminal, the method further includes: Receive and respond to an operation instruction sent by at least one user terminal; the collaborative server includes a user management module and a collaborative channel scheduling module, the operation instruction carries an operation type and a user identifier, and the operation type includes a registration type, a login type, and a collaborative joining type; When the operation type is a registration type, performing a registration operation according to the user identifier through the user management module; When the operation type is a login type, a corresponding collaborative channel is created for the user terminal through the collaborative channel scheduling module, and a communication connection is established between the collaborative channel and the user terminal; When the operation type is a collaborative joining type, a target collaborative channel is determined according to the user identifier, and a communication connection is established between the target collaborative channel and the user terminal; the target collaborative channel is a collaborative channel that the user terminal corresponding to the user identifier requests to join other users.
6. A cloud-based collaborative design method based on desktop 3D CAD, characterized in that: The cloud-based collaborative design method based on desktop 3D CAD is applied to a CAD server, and the method includes: Receive a modeling instruction sent by a collaborative server; the modeling instruction is sent by at least one user terminal to the collaborative server, the collaborative server includes a plurality of collaborative channels, each of the user terminals is assigned a corresponding collaborative channel and establishes a communication connection with the collaborative channel; the modeling instruction carries an instruction triple formed based on a lightweight proxy model, the instruction triple includes an instruction identifier, an operation object identifier and an instruction parameter; the CAD server includes a plurality of desktop CAD processes, each of the collaborative channels is associated with a corresponding desktop CAD process; The modeling instruction is parsed to determine the operation object. When the operation object is successfully evaluated, a modeling result is determined according to the instruction triplet, and the modeling result is sent to the collaborative server, so that the collaborative server broadcasts the modeling result to the user end.
7. The cloud-based collaborative design method based on desktop 3D CAD according to claim 6, characterized in that: The modeling result includes an incremental data set; the modeling operation is performed according to the instruction triple to obtain the modeling result, including: Execute a modeling operation according to the instruction triplet, and analyze the modeling operation to obtain an incremental data set of each changed object; the incremental data set includes: a changed object identifier, a data change type, and a changed data content; The incremental data set is sent to the collaborative server through the desktop CAD process, so that the collaborative server sends the incremental data set to the user terminal through the collaborative channel in a broadcasting manner.
8. The cloud-based collaborative design method based on desktop 3D CAD according to claim 6, characterized in that: The desktop CAD process includes: a second data processor, an instruction executor, and a second data center, wherein the second data center includes a second instruction queue, a second data transceiver, and a second result queue; When there are multiple modeling instructions, the second data transceiver is used for processing multiple modeling instructions in parallel in a multi-threaded manner based on a producer-consumer model, and enqueuing or dequeuing the multiple modeling instructions in the second instruction queue; When there are multiple modeling results, the second data transceiver is used for processing multiple modeling results in parallel in a multi-threaded manner based on a producer-consumer model, and enqueuing or dequeuing the multiple modeling results in the second result queue; The second instruction queue is used to receive the modeling instruction sent by the second data transceiver and send it to the second data processor; The second result queue is used to receive the modeling result sent by the second data processor and send it to the second data transceiver; The instruction executor is used to parse and process the modeling instruction, obtain an instruction triplet and send it to the second data processor; The second data processor is used for receiving the modeling instruction sent by the second instruction queue, processing the modeling instruction and sending the modeling instruction to the instruction executor, and obtaining the modeling result according to the instruction triple and sending the modeling result to the second result queue.
9. A cloud-based collaborative design method based on desktop 3D CAD, characterized in that: The cloud-based collaborative design method based on desktop 3D CAD is applied to at least one user terminal, and the method includes: Generate a modeling instruction based on a lightweight proxy model and send it to the collaborative server, so that the collaborative server sends the modeling instruction to the CAD server; the modeling instruction carries an instruction triple formed based on the lightweight proxy model, and the instruction triple includes an instruction identifier, an operation object identifier and an instruction parameter; the collaborative server includes a plurality of collaborative channels, each of the user terminals is allocated a corresponding collaborative channel and establishes a communication connection with the collaborative channel; the CAD server includes a plurality of desktop CAD processes, and each of the collaborative channels is associated with a corresponding desktop CAD process; Receiving the modeling result broadcasted by the collaborative server; the modeling result is determined by the CAD server parsing the modeling instruction to determine the operation object, and when the operation object is successfully evaluated, it is determined according to the instruction triplet; The lightweight proxy model is updated according to the modeling result.
10. A cloud-based collaborative design system based on desktop 3D CAD, characterized in that: The cloud-based collaborative design system based on desktop 3D CAD includes: at least one user terminal, a collaborative server terminal and a CAD server terminal; The at least one user terminal is used to generate a modeling instruction based on the lightweight proxy model and send it to the collaborative server, and to update the lightweight proxy model according to the modeling result; the modeling instruction carries an instruction triple formed based on the lightweight proxy model, and the instruction triple includes an instruction identifier, an operation object identifier and an instruction parameter; the collaborative server includes a plurality of collaborative channels, each of the user terminals is allocated a corresponding collaborative channel and establishes a communication connection with the collaborative channel; The collaborative server is used to send the modeling instruction to the CAD server, and to broadcast the modeling result to the user end; the CAD server includes a plurality of desktop CAD processes, and each collaborative channel is associated with a corresponding desktop CAD process; The CAD server is used to parse the modeling instruction to determine the operation object, and when the operation object is successfully evaluated, determine the modeling result according to the instruction triple and send it to the collaborative server.
Citation Information
Cited By
Geometric modeling kernel data management method and device, equipment, medium and CAD modeling method
CN121387496A