Model co-processing method, device and equipment and storage medium
By creating a model data warehouse on the server side, and normalizing its data by each client and uploading it to the server, the problem of large data transmission volume and slow system response in collaborative design is solved, real-time data and Improvement of dynamic update capabilities.
Patent Information
- Application Number
- CN202510073223.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-01-16
- Publication Date
- 2025-02-21
AI Technical Summary
In the process of collaborative design, the existing technology has problems such as large data transmission volume and slow system response, which limits the real-time and dynamic update capabilities of data.
By creating a model's data warehouse on the server side, and each client normalizes its data and uploads it to the server. The server renders the merged data and sends it back to the client.
It realizes the reduction of data transmission volume and system response delay, improves the real-time and dynamic update capabilities of data, and supports multiple clients to collaborate with different model design software.
Smart Images

Figure CN119493834A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the field of computer technology, and in particular to the field of three-dimensional model collaborative design and three-dimensional modeling technology. Background Art
[0002] With the increasing complexity of the design process and the amount of data, design collaboration has become particularly critical. In a collaborative work environment, information transfer between collaborative applications usually relies on the file exchange of drawing software such as CAD. In this collaborative design process, there are problems such as large data transmission volume and slow system response, which limits the real-time and dynamic update capabilities of data. Summary of the invention
[0003] The present disclosure provides a model collaborative processing method, device, equipment and storage medium to solve or alleviate one or more technical problems in the prior art.
[0004] In a first aspect, the present disclosure provides a collaborative processing method of a model, comprising: The first client initiates a data warehouse creation request of the first model to the server, requesting to create the data warehouse of the first model in the server; The first client and / or one or more second clients receive a collaborative update request, the collaborative update request including first data of the first model requested to be updated; wherein the second client is a client capable of collaboratively updating the first model with the first client; Each client performs normalization processing on the respective first data to obtain respective second data; Each client sends the respective second data to the server; The server merges the second data of each client and stores it in the data warehouse, and after rendering the merged data, sends the rendering result to each client.
[0005] In a second aspect, the present disclosure provides a collaborative processing system for a model, comprising: A plurality of clients, including a first client and one or more second clients; wherein the second client is a client capable of updating the first model in collaboration with the first client; The first client is used to initiate a data warehouse creation request of the first model to the server, requesting to create the data warehouse of the first model in the server; The first client and / or one or more second clients are configured to receive a collaborative update request, the collaborative update request including first data of the first model requested to be updated; perform normalization processing on the respective first data to obtain respective second data; and send the respective second data to the server; The server is used to merge the second data of each client and save it in the data warehouse, and after rendering the merged data, send the rendering result to each client.
[0006] In a third aspect, an electronic device is provided, including: at least one processor; and a memory communicatively connected to the at least one processor; wherein, The memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to execute any method in the embodiments of the present disclosure.
[0007] In a fourth aspect, a non-transitory computer-readable storage medium storing computer instructions is provided, wherein the computer instructions are used to cause the computer to execute any method according to the embodiments of the present disclosure.
[0008] In a fifth aspect, a computer program product is provided, comprising a computer program, which implements any method according to the embodiments of the present disclosure when executed by a processor.
[0009] It should be understood that the content described in this section is not intended to identify the key or important features of the embodiments of the present disclosure, nor is it intended to limit the scope of the present disclosure. Other features of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] In the accompanying drawings, unless otherwise specified, the same reference numerals throughout the multiple drawings represent the same or similar parts or elements. These drawings are not necessarily drawn to scale. It should be understood that these drawings only depict some embodiments provided according to the present disclosure and should not be regarded as limiting the scope of the present disclosure.
[0011] Figure 1 is a flowchart of a collaborative processing method of a model according to an embodiment of the present disclosure; Figure 2 is a flowchart of a collaborative processing method of a model according to another embodiment of the present disclosure; Figure 3 is a flowchart of a collaborative processing method of a model according to another embodiment of the present disclosure; Figure 4 is a flowchart of a collaborative processing method of a model according to another embodiment of the present disclosure; Figure 5 is a flowchart of a collaborative processing method of a model according to another embodiment of the present disclosure; Figure 6 This is an example diagram of a tree-like description of a model; Figure 7 is a flowchart of a collaborative processing method of a model according to another embodiment of the present disclosure; Figure 8 It is an example diagram of the collaborative processing method of a model; Fig. 9 It is a schematic diagram of splitting data into component data units; Fig.10 This is an example diagram of synchronization between a server and a client; Fig.11 This is an example diagram of the synchronous core process of the server and the client; Fig.12 is a schematic diagram of a collaborative processing system of a model according to an embodiment of the present disclosure; Fig.13 is a schematic diagram of a collaborative processing system of a model according to another embodiment of the present disclosure; Fig.14 is a block diagram of an electronic device for implementing an embodiment of the present disclosure. DETAILED DESCRIPTION
[0012] The present disclosure will be further described in detail below with reference to the accompanying drawings. The same reference numerals in the accompanying drawings represent elements with the same or similar functions. Although various aspects of the embodiments are shown in the accompanying drawings, the drawings are not necessarily drawn to scale unless otherwise specified.
[0013] In addition, in order to better illustrate the present disclosure, numerous specific details are given in the following specific embodiments. It should be understood by those skilled in the art that the present disclosure can also be implemented without certain specific details. In some examples, methods, means, components and circuits well known to those skilled in the art are not described in detail in order to highlight the main purpose of the present disclosure.
[0014] Figure 1 is a flow chart of a collaborative processing method of a model according to an embodiment of the present disclosure, and the method may include: S110, the first client initiates a request to create a data warehouse of the first model to the server, requesting to create a data warehouse of the first model in the server; S120: The first client and / or one or more second clients receive a collaborative update request, where the collaborative update request includes first data of the first model requested to be updated; wherein the second client is a client capable of collaboratively updating the first model with the first client; S130, each client performs normalization processing on the respective first data to obtain respective second data; S140, each client sends the respective second data to the server; S150: The server merges the second data of each client and stores it in the data warehouse, and after rendering the merged data, sends the rendering result to each client.
[0015] In the embodiment of the present disclosure, the collaborative processing method of the model can be executed by the collaborative processing system of the model. The system may include multiple clients and may also include servers. The number of servers may be one or more. Therefore, the server may also be replaced by a server group. The multiple clients of the system may include a first client and a second client. The first client may include a client that initiates a collaborative processing task in the current collaborative task, and the second client is a client that can perform the collaborative processing task together with the first client. In different collaborative tasks, the role of the client may change. For example, among client A, client B and client C, if the collaborative task initiated by client A to the server includes a data warehouse creation request for model S1, client A is the first client; if client B initiates a collaborative task to the server including a data warehouse creation request for model S2, client B is the first client. In collaborative processing tasks involving the same model, the role of the client may also change. For example, originally client A initiated a data warehouse creation request for model S1 of the collaborative task to the server, but due to some reasons, the data warehouse of model S1 needs to be recreated. And, client B re-initiates the data warehouse creation request for model S1 to the server. In this case, the first client is transformed from client A to client B.
[0016] In the system, among multiple clients participating in the same collaborative processing task, other clients except the first client can be considered as second clients. The second client can update the data of the same model in collaboration with the first client. The first client and / or the second client updates the data of the model by performing operations such as creating, editing, modifying, deleting, and adding the model.
[0017] In the disclosed embodiments, the model design software on different clients may be the same or different. For example, some clients use SketchUP to design models, which supports formats such as .skp. Some clients use Rhino software to design models, which supports formats such as .3dm, .3dmbak, and .rws. Some clients use Blender software to design models, which supports formats such as .obj and .fbx. Some clients use 3dsMax software to design models, which supports formats such as .obj and .3ds. In order to store model data in a unified format on the server, the first data of each client's own model can be normalized to obtain their own normalized second data.
[0018] The disclosed embodiments do not require all clients participating in the collaborative processing tasks of the same model to operate the model at the same time. The client can flexibly operate the model and generate corresponding data as needed. If multiple clients operate the same model at the same time, the server can merge the data uploaded by the client to update the data stored in the data warehouse of the model. Alternatively, the server can also update the data stored in the data warehouse of the model based on the data uploaded by certain clients in priority according to rules such as client permissions. The server can synchronize the update results of the data warehouse to each client that can operate the model system. The server can also render based on the merged data in the data warehouse, and then send the rendering results to each client that can operate the model system.
[0019] According to the embodiments of the present disclosure, different clients can normalize the first data of the first model generated by themselves and save them to the data warehouse of the first model in the server, thereby decoupling the model data. It can support multiple clients to use different model design software, thereby improving the efficiency and accuracy of model collaborative processing.
[0020] In one embodiment, different clients request to update the first data in different formats. For example, the file formats of the models supported by CAD software, Blender software, SolidWorks software, etc. may not be exactly the same, and a unified data format can be obtained through normalization processing. Each client can upload the second data to the server. The server can use the second data to update the data warehouse of the model. Each client can also upload the first data generated by itself to the server.
[0021] According to the embodiments of the present disclosure, data of different formats of models using various model design software can be updated, supporting collaborative processing of more types of model design software, increasing the application scope of collaborative processing, and thereby improving system speed and efficiency.
[0022] Figure 2 is a flow chart of a collaborative processing method of a model according to another embodiment of the present disclosure, which method may include one or more features of the collaborative processing method of the above model. In one embodiment, in step S130, each client normalizes the respective first data to obtain the respective second data, including: S210: Each client decouples the service update data and / or service modeling data from the respective first data to obtain respective second data.
[0023] In the disclosed embodiments, the business update data may include personalized data generated by the client using different design software during the model design process. For example, the content of the business update data stored in the CAD file may include one or more of geometric data, manufacturing data, material properties, product data, and process data. The stored content is used to achieve functions such as accuracy, editability, multi-view support, parametric design, and data association in the design process. The business modeling data may include different personalized modeling definitions in the model design process of the client due to different design software, such as chamfering and stretching of Blender software. The client can decouple the business update data and / or business modeling data that are closely related to the business in the first data as required, and retain the neutral second data.
[0024] According to the embodiments of the present disclosure, different clients can obtain normalized second data by decoupling from their own first data, which can support multiple clients to collaboratively design the same model using different model design software, thereby improving the efficiency and accuracy of model design.
[0025] Figure 3 is a flow chart of a collaborative processing method of a model according to another embodiment of the present disclosure, and the method may include one or more features of the collaborative processing method of the model described above. In one embodiment, in step S210, each client decouples the business update data and / or business modeling data from the respective first data to obtain respective second data, including: S310, each client removes modeling process data from the respective first data to obtain respective de-modeling data, wherein the modeling process data includes business update data and / or business modeling data; S320: Each client performs structural discretization processing on the respective de-modeled data to obtain respective discretized data, wherein the discretized data includes a plurality of component data units.
[0026] In the disclosed embodiment, the client removing modeling process data may include the client removing business update data and / or business modeling data, etc., annotations, formats, material properties, dimensioning, tolerance information, design process data, manufacturing data and other data in the modeling process, and retaining the data of the model infrastructure as de-modeling data.
[0027] In the disclosed embodiment, the de-modeled data is subjected to structural discretization processing, and the model structure can be decomposed, and the obtained discretized data includes smaller components of the model. The discretized data can be divided according to component data units, and a component data unit can include one or more of geometric display data, geometric modeling data, description data, and conversion data. Multiple component data units can form a component module. For example, the discretized data includes multiple component data units C1, C2 and C3, and C1 and C2 can form component module A.
[0028] According to the embodiments of the present disclosure, by de-modeling and discretizing the business data in the model, the model data is converted into component data units, which is beneficial to normalizing the model data, thereby supporting different clients to collaboratively process the model data, thereby improving the efficiency and accuracy of model design.
[0029] In one embodiment, each client decouples the service update data and / or service modeling data from the respective first data to obtain respective second data, further comprising one or more of the following: removing repeated component data units in the discretized data; Hierarchical division of the retained component data units; Performing panelization processing on the retained component data units; Compress the data after the tile processing.
[0030] In the disclosed embodiment, the client can deduplicate the component data units in the discretized data and delete the duplicate component data units from the discretized data. For example, if the discretized data includes one C1, two C2s and three C3s as component data units, one C2 and two C3s can be removed. The internal data of the retained component data units can also be hierarchically divided. For example, the data in a component data unit can be divided into one or more of geometric display data, geometric modeling data, description data, and conversion data, and these data can continue to be divided into the next level. The retained component data units can also be patched to convert the data into the form of a triangular patch model (mesh). For example, the geometric display data in a component data unit, such as vertex features, texture coordinate features, surface features or material features, can be patched. The patched component data units can also be compressed, and the amount of data of the component data units during transmission can be reduced by compression.
[0031] According to the embodiments of the present disclosure, through various processing of component data units in discretized data, component data units in a unified format can be retained in the server, and the amount of data transmission and storage can be reduced.
[0032] In one embodiment, the method further comprises: The server performs data management on the second data; wherein the data management includes one or more of the following operations: modular management, version management, scenario management, project management, collaborative management, and authority management.
[0033] In the embodiment of the present disclosure, the component data unit to be processed can be sent as the second data to the server, and the server manages the second data. The data management methods of the server include: modular management, version management, scenario management, project management, collaborative management, and authority management. Among them, modular management includes: managing one or more component data units according to modules. For example, a data unit is regarded as a module, or multiple component data units are regarded as a module. Version management includes: generating different versions of tree descriptions according to the version iteration process of the model. For example, the model is currently a tree description of version 1. After a client performs some modification operations on the model, the server modifies part of the current tree description of the model to generate a new tree description of version 2. Scenario management includes: managing multiple models included in a scene, and different models in a scene may support update operations of different clients. For example, the scene includes models M1, M2 and M3, where M1 supports collaborative update operations of clients A, B and C, M2 supports collaborative update operations of clients B and C, and M3 supports collaborative update operations of clients A, C and D. Collaborative management includes: collaborative management of the read and write permissions of multiple clients to the model. Different clients may have different read and write permissions. For example, client A has read and write permissions to models M1 and M3, client B has read permissions to model M1 and read and write permissions to model M2, and model D has read permissions to model M3.
[0034] According to the embodiments of the present disclosure, the server is used to manage component data units in a variety of management ways, which can improve the flexibility of data management and support more application scenarios.
[0035] In one embodiment, the second data includes: one or more component data units, and a component data unit includes one or more of geometric display data, geometric modeling data, description data, and conversion data.
[0036] In the disclosed embodiments, geometric display data may include features that enable component data units to be displayed in geometric relationships, such as mesh surfaces, such as one or more of vertex features, texture coordinate features, surface features, and material features. Geometric modeling data may include modeling features that can represent component data units in geometric relationships, such as triangles, cubes, and the like. Descriptive data may include data that describes the geometric relationships of component data units. For example, if the geometric existence form of the current component data unit is a cube, the description data may record "the current component is a cube." Conversion data may include indicative data for converting component data units. For example, converting a component data unit from a cube to a sphere, converting a cubic marble brick to a cylindrical metal water pipe, and the like.
[0037] In the disclosed embodiment, the geometric display data or any feature thereof can support modification, and the geometric modeling data, description data and conversion data can also support modification.
[0038] According to the embodiments of the present disclosure, various data and features of the component data units can support flexible modification of the component data units, thereby improving the flexibility of model collaborative processing.
[0039] In one embodiment, the geometric display data includes one or more of vertex features, texture coordinate features, surface features, and material features.
[0040] In the disclosed embodiment, the vertex features may include the features of each vertex of the overall display structure of the component data unit. For example, if the component data unit is a cube, 8 vertex coordinates are required to ensure that the lengths of the sides composed of the four vertices of the same face are equal on the six surfaces of the cube. The texture coordinate features may include the texture of each face of the structure displayed by the component data unit. For example, for a two-dimensional model, two-dimensional texture coordinates (u, v) may be used. For a three-dimensional model, three-dimensional texture coordinates (u, v, w) may be used. Surface features may include features of each surface of the component data unit, such as a rough surface, a smooth surface, etc. Material features may include features of the constituent materials of the component data unit, such as using materials such as metal, marble, wood, and ceramics to define the current component data unit.
[0041] Through the embodiments of the present disclosure, the display effect of the component data unit can be accurately determined according to various characteristics of the geometric display data.
[0042] In one implementation, the second data further includes: a component module, wherein the component module is composed of one or more layers of component data units.
[0043] In the disclosed embodiments, a model may include component modules and / or component data units. A component module may include one or more layers of component data units. For example, model S1 includes component module A and component module C, and component module A includes component module B and component data units C1, C2, and C3. Among them, component data unit C1 and component data unit C2 are in the first layer of component module A, and component data unit C3 is in the second layer of component module A. For another example, component module B includes a layer of component data units C4, C5, and C6. The component data units in a component module may have an association relationship. For example, in the model, component data units that are adjacent in position constitute a component module. For another example, component data units belonging to the same layer or the same surface of a building model constitute a component module.
[0044] According to the embodiments of the present disclosure, component modules may be formed by one or more layers of component data units, and models may be formed by one or more component modules, so as to facilitate modular management according to the relevance of model data.
[0045] In one implementation, the server merges and stores the second data of each client into the data warehouse, including one or more of the following steps: In the case where the second data of each client is not repeated, the server saves the second data of each client into the data warehouse respectively; In the case where the second data of each client has duplicate content, the server removes duplicates from the second data of each client and saves the data into the data warehouse; In the case where the second data of each client conflicts, the server saves the second data of the client with the highest authority among each client into the data warehouse; Wherein, when the data in the data warehouse changes, an updated tree description of the first model is generated.
[0046] In the disclosed embodiment, before the server merges and saves the second data of different clients into the data warehouse, the second data of each client may be checked to determine whether the second data is repeated or conflicting. For example, client Client1 uploads the second data Data1 of model S1, and client Client2 uploads the second data Data2 of model S1. If Data1 and Data2 are not repeated, the server saves Data1 and Data2 respectively into the data warehouse of model S1. For another example, if Data1 and Data2 are repeated, the server removes the duplicates of Data1 and Data2 and saves Data1 or Data2 into the data warehouse of model S1. For another example, if Data1 and Data2 conflict and the client Client2 has a higher authority, the server saves Data2 into the data warehouse of model S1. Data conflicts may include conflicts in data modification content, conflicts in data modification format, conflicts in data modification quantity, etc. For example, client Client1 modifies data Data1 of model S1 including: modifying the triangular model into a cubic model. Client Client2 modifies data Data2 of model S1 including: modifying the triangular model into a spherical model. By comparing that the authority of client Client2 is higher than that of client Client1, the server saves the data Data2 of client Client2 to the data warehouse of model S1 and modifies the triangular model into a spherical model.
[0047] According to the embodiments of the present disclosure, the server performs processing such as screening, deduplication, and authentication on the data based on the duplication of the data, which can improve the security of the data and reduce the risk of data transmission in model collaboration.
[0048] Figure 4 is a flow chart of a collaborative processing method of a model according to another embodiment of the present disclosure, which method may include one or more features of the collaborative processing method of the above model. In one embodiment, it also includes: S410, the server receives a pre-submission request sent by each client, wherein the pre-submission request includes identification information of an object pre-submitted by each client for the first model; the object includes one or more of a component module, a component data unit, data in a component, and a feature in the data in the first model; S420: The server performs a difference patch correction on the identification information of the pre-submitted object based on the second data of the first model to obtain the identification information of the object to be submitted; S430, the server sends a difference patch corresponding to the identification information of the object to be submitted to each client; S440: The server receives object data corresponding to the differential patch submitted by each client.
[0049] In an embodiment of the present disclosure, after a client modifies a model, if it wants to pass it to other clients in a collaborative processing process, it needs to pre-submit the model to the server. The pre-submission operation may include the client sending a pre-submission request to the server containing identification information of the pre-submitted object.
[0050] In an embodiment of the present disclosure, the server may generate a differential patch based on the identification information of the pre-submitted object included in the pre-submitted request uploaded by the client in combination with the second data stored in the data warehouse. The pre-submitted object may include one or more of the component module, component data unit, data in the component, and features in the data in the first model that the client requests to modify. For example, the identification information of the object pre-submitted by the client Client1 to the server includes the component data units C1, C2, and C3 in the model S1, but C1 and C2 already exist in the model S1 in the second data stored in the data warehouse, but C3 does not exist. The differential patch that needs to be submitted for C3 is determined through differential patch correction. The server returns to the client Client1 the data corresponding to the differential patch that requires the client Client1 to submit C3. After the server receives the data corresponding to the differential patch of C3 sent by the client Client1, it can save C3 in the data warehouse of the model S1 and update the relevant information about C3 in the tree description of the model S1. For another example, the identification information of the object pre-submitted by the client Client2 to the server includes the features F1, F2 and F3 of the geometric display data of the component data unit C4 in the model S1, but F1 and F2 already exist in the model S1 in the second data stored in the data warehouse, but F3 does not exist. And the content of F2 in the second data is different from the pre-submitted F2. The difference patches that need to be submitted for F2 and F3 are determined through difference patch correction. The server returns to the client Client2 the data corresponding to the difference patches for F2 and F3 that the client Client2 needs to submit. After the server receives the data corresponding to the difference patches for F2 and F3 sent by the client Client2, it can save F2 and F3 in the data warehouse of the model S1, and update the relevant information about F2 and F3 in the tree description of the model S1.
[0051] According to the embodiment of the present disclosure, a difference patch is generated based on the comparison between the data pre-submitted by the client and the data stored in the data warehouse, and the object data is obtained through the difference patch, which can reduce the amount of data transmitted after the data is modified and improve the collaboration efficiency.
[0052] Figure 5is a flow chart of a collaborative processing method of a model according to another embodiment of the present disclosure, and the method may include one or more features of the collaborative processing method of the above model. In one embodiment, step S150, the server merges and saves the second data of each client into the data warehouse, including: S510: The server merges and stores the object data corresponding to the differential patch submitted by each client into the data warehouse, and generates an updated tree description of the first model.
[0053] In one embodiment, the method further comprises: The server sends the updated tree description to each client.
[0054] In the disclosed embodiment, the server can update the content related to the object data in the tree description according to the object data corresponding to the differential patch submitted by each client. And, each time the data is updated, a new version of the tree description can be generated. According to different versions of the tree description, different versions of model data can be switched. The server and the client can also synchronize the update of the model data by transmitting the tree description. For example, the tree description of model S1 is as follows: Figure 6 As shown, model S1 may include component modules A and B, component module A includes component data units C1, C2 and C3, wherein component data unit C1 and component data unit C2 are in the first layer of component module A, and component data unit C3 is in the second layer of component module A. Component module B includes component data units C4, C5 and C6. The tree description before updating is version 1, and the tree description after updating C3, F2 and F3 is version 2, and the latest storage address of the corresponding data is added to the node where C3, F2 and F3 are located in the tree description of version 2. The server can send the tree description of version 2 to all clients that are allowed to collaboratively process model S1. For example, client Client1, client Client2, client Client3, etc.
[0055] In the embodiment of the present disclosure, by using a tree-like description to represent the client's update status of the model data, the data that needs to be synchronized between the server and the client can be reduced, thereby improving the efficiency and accuracy of model collaborative processing.
[0056] In one embodiment, after receiving the tree description of the first model, the client can compare it with the tree description of the client copy to obtain the difference between the two. According to the difference, the object data of the first model in the client copy is updated, so that the client copy can synchronize the update status of the first model in a timely manner.
[0057] In one embodiment, the identification information of a client-pre-submitted object is obtained based on a comparison between the object data of the first model in the client and the object data of the first model in the client copy.
[0058] In the disclosed embodiment, the client copy may include the object data of the first model before modification. After the client modifies the first model, the difference between the object data before and after modification may be compared to obtain the identification information of the pre-submitted object. For example, the features of the component data unit C4 before modification include F1, F2, and F3, the features of the component data unit C4 after modification include F1 and F3, and the pre-submitted object identification may include the feature F2 that needs to be deleted.
[0059] According to the embodiment of the present disclosure, a copy of the model data can be saved through the client copy, and the identification information of the modified object can be obtained by comparing the model data and the model data copy, which can improve the accuracy of data modification and further improve the accuracy of model collaborative processing.
[0060] Figure 7 is a flow chart of a collaborative processing method of a model according to another embodiment of the present disclosure, and the method may include one or more features of the collaborative processing method of the model described above. In one embodiment, the server merges and saves the object data corresponding to the difference patch submitted by each client into the data warehouse, and generates an updated tree description of the first model, including: S710, merging and saving the object data corresponding to the differential patch submitted by each client into the data warehouse of the first server copy, and generating an updated tree description of the first model in the first server copy; S720: If the first server replica is updated successfully, merge and save the object data corresponding to the differential patch submitted by each client into the data warehouse of the second server replica, and generate an updated tree description of the first model in the second server replica; S730: If the second server copy is updated successfully, merge and save the object data corresponding to the differential patch submitted by each client into the data warehouse in the server, and generate an updated tree description of the first model in the second server copy; The updated tree description includes a link relationship between the nodes and the object data corresponding to the differential patch submitted by each client.
[0061] In the disclosed embodiment, the server cluster may include a server, a first server replica, and a second server replica. When the object data of the first model changes, the tree description of the first model in the first server replica and / or the second server replica may be updated first, and after the update is successful, the tree description of the first model in the server may be updated.
[0062] In the disclosed embodiment, when both the first server copy and the second server copy are successfully updated, the difference patch submitted by the client and the object data corresponding to the difference patch are merged and saved in the server to generate a tree description of the first model, which can improve the data security of the server.
[0063] As the complexity of the design process and the amount of data continue to grow, it is particularly important to achieve design collaboration. For example, design collaboration can be achieved in the following ways: Unified design platform: By integrating the development of different vertical business units on the same CAD graphics platform, the consistency of data format is ensured within the overall solution, and cross-business collaboration based on the same platform is achieved.
[0064] Unified file standards: By developing open Building Information Modeling (BIM) standards such as IFC (Industry Foundation Classes), data standardization and interoperability can be achieved, and file exchange between different software can be promoted.
[0065] Unified display format: Focuses on file-level submission and conversion, parsing files into a unified display format for quick display and understanding.
[0066] In a related collaborative work environment, information transfer between collaborative applications usually relies on the exchange of CAD files. In collaborative design with file exchange as the core, there are two main synchronization mechanisms: file ownership locking and editing operation synchronization. File ownership locking only allows a single user to edit a shared design document at the same time, with many permission restrictions. Editing operation synchronization relies on capturing all user operations and synchronizing these operations to other users through the network to achieve collaboration based on editing commands. However, different design tools have large differences in their understanding and execution of editing commands, which hinders cross-tool platform collaboration.
[0067] The disclosed embodiments can reduce data transmission volume and system response delay, improve data real-time and dynamic update capabilities, and adopt dynamic information exchange in distributed collaborative design to provide efficient and accurate data processing and data collaboration for the collaborating parties to meet the needs of frequent exchange of intermediate results.
[0068] A collaborative processing method of a model can be used in a 3D model collaborative platform. The platform can include the following parts: 1. Data generation: The solid model is the basis for achieving integration. It contains complete design information, such as mesh, metadata, geometry, topology, material, etc. It is the basis for further analysis and processing of the product. Therefore, how to process and transmit geometric data has always been one of the most important parts of collaborative design.
[0069] Examples of data generation and data management processes for entity models include Figure 8 As shown: The data generation process includes one or more of the following: CAD model, de-modeling process data, structure discretization, de-duplication of components, hierarchical partitioning, triangulation, and lossless compression.
[0070] The data management process includes one or more of the following: modular management, version management, scenario management, project management, collaborative management, and permission management.
[0071] The data in the original model is directly coupled with the business editing data and modeling features, and forms a strong dependency on the native CAD software. The client "liberates" the CAD data from the proprietary file, that is, the native CAD software, through structured semantic data parsing, and performs semantic component splitting, which can be split into component data units. The client can then send the split component data units to the server for data integration management. An example of split model data, such as Fig. 9 The model data may include multiple component data units (Component), and a component data unit may include multiple types of data, such as a mesh (Mseh), which may include vertex features (Vertices), texture coordinate features (TextureCoordinates), surface features (Faces), and material features (Material).
[0072] Using cross-graphics platform information description markup language to create documents containing structured format data can realize information transmission between the network and different CAD software.
[0073] 2. Data Collaboration In order to change the data transmission mechanism, the file stream can be converted into a component stream (parts stream). This enables asynchronous exchange of design results and incremental differential synchronous collaborative design without having to retransmit the entire modified entity model, reducing the amount of network transmission during real-time synchronous design; and enables cross-platform and cross-CAD system product data exchange.
[0074] The client and server can each maintain a copy of the model. If a brief network failure occurs, outbound or return packets may be lost. In this case, the client may stop syncing for a period of time until the connection times out. When the connection is restored at the next synchronization, the shadow will be out of sync and the full text will need to be transmitted to resynchronize. This will destroy all changes since the last successful synchronization. If this form of data loss is unacceptable, further improvements will increase guaranteed delivery, such as Fig.10 shown.
[0075] Wherein, Diff means comparing two versions of the client model and the client model copy; Edits indicates the model change differences based on the version comparison results; ΔPatch: Based on the application context, the delta patch of the model is obtained; m means: Server version; m++ indicates server-side version update; n represents the client version; n++ means Client version update.
[0076] The process of model editing synchronization between the client and server is as follows Fig.11 As shown: S1110, the user logs in to the client and creates or specifies a data source for the model; S1120, the client performs model shaping editing; S1130, the client submits a model editing instruction and submits incremental content through a DIFF mechanism; S1131, the client creates a pre-submitted project list and sends it to the server; (creates a client local copy differ); S1132, the server performs difference correction according to the version information and model copy information, generates a difference patch, outputs a list of items that need to be submitted, and transmits it back to the client; S1133, the client submits the project data corresponding to the difference patch to the server; S1134. The server saves the project data to the server data stream.
[0077] Through the embodiments of the present disclosure, it is possible to achieve: 1.CAD files are decoupled to achieve true real-time synchronization.
[0078] 2. Separate data and algorithms to maintain high efficiency.
[0079] Differentiation and patching can be expensive operations, so servers can be overloaded. Separate the database from the algorithm. This way any number of load-balanced servers can be served by one database. Clients can access any server, and as long as the view of the shared database is the same on all servers, the system remains consistent.
[0080] 3. Data synchronization is highly fault-tolerant Fig.12 is a schematic diagram of a collaborative processing system 1200 of a model according to an embodiment of the present disclosure, which may include: A plurality of clients, including a first client 1210 and one or more second clients 1220; wherein the second client 1220 is a client capable of updating the first model in collaboration with the first client 1210; The first client 1210 is used to initiate a data warehouse creation request of the first model to the server 1230, requesting to create the data warehouse of the first model in the server 1230; The first client 1210 and / or one or more second clients 1220 are configured to receive a collaborative update request, the collaborative update request including the first data of the first model requested to be updated; perform normalization processing on the respective first data to obtain respective second data; and send the respective second data to the server 1230; The server 1230 is used to merge the second data of each client and save it in the data warehouse, and after rendering the merged data, send the rendering result to each client.
[0081] Fig.13 1 is a schematic diagram of a collaborative processing system 1300 of a model according to another embodiment of the present disclosure, and the system may include one or more features of the collaborative processing system of the above model. In one implementation, the formats of the first data updated by different clients are different.
[0082] In one implementation, each client is further configured to decouple the service update data and / or service modeling data from the respective first data to obtain respective second data.
[0083] In one embodiment, each client is further configured to remove modeling process data from the respective first data to obtain respective de-modeling data, wherein the modeling process data includes business update data and / or business modeling data; Each client is also used to perform structural discretization processing on the respective de-modeled data to obtain respective discretized data, wherein the discretized data includes a plurality of component data units.
[0084] In one embodiment, each client is further configured to perform one or more of the following steps: removing repeated component data units in the discretized data; Hierarchical division of the retained component data units; Performing panelization processing on the retained component data units; Compress the data after the tile processing.
[0085] In one embodiment, the server 1230 is also used to perform data management on the second data; wherein the data management includes one or more of the following operations: modular management, version management, scenario management, project management, collaborative management, and authority management.
[0086] In one embodiment, the second data includes: one or more component data units 1341, and a component data unit includes one or more of geometric display data, geometric modeling data, description data, and conversion data.
[0087] In one embodiment, the geometric display data includes one or more of vertex features, texture coordinate features, surface features, and material features.
[0088] In one implementation, the second data further includes: a component module 1340, which is composed of one or more layers of component data units.
[0089] In one embodiment, the server 1230 is further configured to perform one or more of the following steps: When the second data of each client is not repeated, the second data of each client is stored in the data warehouse respectively; In the case where the second data of each client has duplicate content, the second data of each client is deduplicated and then stored in the data warehouse; In case that the second data of each client conflicts, the second data of the client with the highest authority among each client is saved in the data warehouse; Wherein, when the data in the data warehouse changes, an updated tree description of the first model is generated.
[0090] In one embodiment, the server 1230 is further configured to: Receiving a pre-submission request sent by each client, wherein the pre-submission request includes identification information of an object pre-submitted by each client for the first model; the object includes one or more of a component module, a component data unit, data in the component, and a feature in the data in the first model; Performing difference patch correction on the identification information of the pre-submitted object based on the second data of the first model to obtain the identification information of the object to be submitted; Sending a difference patch corresponding to the identification information of the object to be submitted to each client; Receive object data corresponding to the differential patch submitted by each client.
[0091] In one embodiment, the server 1230 is further configured to merge and save the object data corresponding to the differential patch submitted by each client into the data warehouse, and generate an updated tree description of the first model.
[0092] In one implementation, the server 1230 is further configured to send the updated tree description to each client.
[0093] In one embodiment, it further comprises: The client copy 1350 is used to store the tree description of the first model; wherein the identification information of an object pre-submitted by a client is obtained based on the comparison between the object data of the first model in the client and the object data of the first model in the client copy.
[0094] In one embodiment, it further comprises: The first server replica 1360 is used to merge and save the object data corresponding to the differential patch submitted by each client into the data warehouse of the first server replica, and generate an updated tree description of the first model in the first server replica; The second server replica 1370 is used to merge and save the object data corresponding to the differential patch submitted by each client into the data warehouse of the second server replica when the first server replica is successfully updated, and generate an updated tree description of the first model in the second server replica; The server is also used for merging and saving the object data corresponding to the differential patch submitted by each client into the data warehouse in the server when the second server copy is successfully updated, and generating an updated tree description of the first model in the server; The updated tree description includes a link relationship between the nodes and the object data corresponding to the differential patch submitted by each client.
[0095] Fig.14 FIG. 1 is a structural block diagram of an electronic device according to an embodiment of the present disclosure. Fig.14As shown, the electronic device includes: a memory 1410 and a processor 1420, and the memory 1410 stores a computer program that can be run on the processor 1420. The number of memories 1410 and processors 1420 can be one or more. The memory 1410 can store one or more computer programs. When the one or more computer programs are executed by the electronic device, the electronic device executes the method provided by the above method embodiment. The electronic device may also include: a communication interface 1430, which is used to communicate with external devices and perform data exchange transmission.
[0096] If the memory 1410, the processor 1420 and the communication interface 1430 are implemented independently, the memory 1410, the processor 1420 and the communication interface 1430 can be connected to each other through a bus and communicate with each other. The bus may include an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Fig.14 Only one thick line is used in the diagram, but this does not mean that there is only one bus or only one type of bus.
[0097] Optionally, in a specific implementation, if the memory 1410, the processor 1420 and the communication interface 1430 are integrated on a chip, the memory 1410, the processor 1420 and the communication interface 1430 can communicate with each other through an internal interface.
[0098] It should be understood that the above processor may include a central processing unit (CPU), and may also include other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor may be a microprocessor or any conventional processor, etc. It is worth noting that the processor may be a processor that supports the Advanced RISC Machines (ARM) architecture.
[0099] Further, optionally, the above-mentioned memory may include a read-only memory and a random access memory, and may also include a non-volatile random access memory. The memory may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories. Among them, the non-volatile memory may include a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may include a random access memory (RAM), which is used as an external cache. By way of example but not limitation, many forms of RAM are available. For example, static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM) and direct memory bus random access memory (DR RAM).
[0100] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer instruction is loaded and executed on a computer, the process or function according to the embodiment of the present disclosure is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network or other programmable device. The computer instruction can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instruction can be transmitted from a website site, computer, server or data center by wired (for example: coaxial cable, optical fiber, data subscriber line (Digital Subscriber Line, DSL)) or wireless (for example: infrared, Bluetooth, microwave, etc.) mode to another website site, computer, server or data center. The computer-readable storage medium can be any available medium that a computer can access, or a data storage device such as a server or data center that includes one or more available media integrations. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a digital versatile disc (DVD)), or a semiconductor medium (e.g., a solid state disk (SSD)), etc. It is worth noting that the computer-readable storage medium mentioned in the present disclosure may be a non-volatile storage medium, in other words, a non-transient storage medium.
[0101] A person skilled in the art will understand that all or part of the steps to implement the above embodiments may be accomplished by hardware or by instructing related hardware through a program, and the program may be stored in a computer-readable storage medium, and the above-mentioned storage medium may be a read-only memory, a disk or an optical disk, etc.
[0102] In the description of the embodiments of the present disclosure, the description with reference to the terms "one embodiment", "some embodiments", "example", "specific example", or "some examples" means that the specific features, structures, materials or characteristics described in conjunction with the embodiment or example are included in at least one embodiment or example of the present disclosure. Moreover, the specific features, structures, materials or characteristics described may be combined in any one or more embodiments or examples in a suitable manner. In addition, those skilled in the art may combine and combine the different embodiments or examples described in this specification and the features of the different embodiments or examples, unless they are contradictory.
[0103] In the description of the embodiments of the present disclosure, unless otherwise specified, " / " means or, for example, A / B can mean A or B. "And / or" in this article is only a way to describe the association relationship of associated objects, indicating that there can be three relationships, for example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone.
[0104] In the description of the embodiments of the present disclosure, the terms "first" and "second" are used for descriptive purposes only and are not to be understood as indicating or implying relative importance or implicitly indicating the number of the indicated technical features. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of the features. In the description of the embodiments of the present disclosure, unless otherwise specified, "plurality" means two or more.
[0105] The above description is only an exemplary embodiment of the present disclosure and is not intended to limit the present disclosure. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present disclosure shall be included in the protection scope of the present disclosure.
Claims
1. A collaborative processing method of a model, comprising: The first client initiates a data warehouse creation request of the first model to the server, requesting to create the data warehouse of the first model in the server; The first client and / or one or more second clients receive a collaborative update request, where the collaborative update request includes first data of the first model requested to be updated; The second client is a client capable of updating the first model in collaboration with the first client; Each client performs normalization processing on the first data to obtain second data; Each of the clients sends the second data to the server; The server merges the second data of each client and stores them in the data warehouse, and after rendering the merged data, sends the rendering result to each client.
2. According to the method of claim 1, the formats of the first data updated requested by different clients are different.
3. According to the method of claim 1, each client normalizes its first data to obtain its second data, comprising: Each client decouples the service update data and / or service modeling data from the respective first data to obtain the respective second data.
4. The method according to claim 3, wherein: Each client decouples the service update data and / or service modeling data from the respective first data to obtain respective second data, including: Each of the clients removes modeling process data from the respective first data to obtain respective de-modeling data, wherein the modeling process data includes business update data and / or business modeling data; Each client performs structural discretization processing on the respective de-modeled data to obtain respective discretized data, wherein the discretized data includes a plurality of component data units.
5. The method according to claim 4, wherein: Each client decouples the service update data and / or service modeling data from the respective first data to obtain respective second data, which also includes one or more of the following: Removing repeated component data units in the discretized data; Hierarchical division of the retained component data units; Performing panelization processing on the retained component data units; Compress the data after the tile processing.
6. The method according to any one of claims 1 to 5, wherein: Also includes: The server performs data management on the second data; The data management includes one or more of the following operations: modular management, version management, scenario management, project management, collaborative management, and permission management.
7. The method according to any one of claims 1 to 5, wherein: The second data includes: one or more component data units, and a component data unit includes one or more of geometric display data, geometric modeling data, description data, and conversion data.
8. The method according to claim 7, wherein: The geometric display data includes one or more of vertex features, texture coordinate features, surface features, and material features.
9. The method according to claim 7, wherein: The second data also includes: a component module, and the component module is composed of one or more layers of component data units.
10. The method according to any one of claims 1 to 5, wherein the server merges and stores the second data of each client into the data warehouse, comprising one or more of the following steps: In the case where the second data of each client is not repeated, the server saves the second data of each client into the data warehouse respectively; In the case where the second data of each client has duplicate content, the server removes duplicates from the second data of each client and saves the data in the data warehouse; In the case where the second data of each client conflict, the server saves the second data of the client with the highest authority among each client into the data warehouse; Wherein, when the data in the data warehouse changes, an updated tree description of the first model is generated.
11. The method according to any one of claims 1 to 5, further comprising: The server receives a pre-submission request sent by each client, wherein the pre-submission request includes identification information of an object pre-submitted by each client for the first model; the object includes one or more of a component module, a component data unit, data in a component, and a feature in the data in the first model; The server performs difference patch correction on the identification information of the pre-submitted object based on the second data of the first model to obtain the identification information of the object to be submitted; The server sends a difference patch corresponding to the identification information of the object to be submitted to each client; The server receives object data corresponding to the differential patch submitted by each client.
12. The method according to claim 11, wherein the server merges and stores the second data of each client into the data warehouse, comprising: The server merges and stores the object data corresponding to the differential patches submitted by each client into the data warehouse, and generates an updated tree description of the first model.
13. The method according to claim 12, further comprising: The server sends the updated tree description to each of the clients.
14. The method according to claim 12, wherein: The identification information of a client pre-submitted object is obtained based on the comparison of the object data of the first model in the client and the object data of the first model in the client copy.
15. The method according to claim 12, wherein: The server merges and stores the object data corresponding to the differential patch submitted by each client into the data warehouse, and generates an updated tree description of the first model, including: Merge and save the object data corresponding to the differential patch submitted by each client into the data warehouse of the first server copy, and generate an updated tree description of the first model in the first server copy; In the case that the first server copy is updated successfully, merging and saving the object data corresponding to the differential patch submitted by each client into the data warehouse of the second server copy, and generating an updated tree description of the first model in the second server copy; In the case that the second server copy is successfully updated, merging and saving the object data corresponding to the differential patch submitted by each client into the data warehouse in the server, and generating an updated tree description of the first model in the server; The updated tree description includes a link relationship between the nodes and the object data corresponding to the differential patch submitted by each client.
16. A collaborative processing system for a model, comprising: A plurality of clients, including a first client and one or more second clients; wherein the second client is a client capable of updating a first model in collaboration with the first client; The first client is used to initiate a data warehouse creation request of the first model to the server, requesting to create the data warehouse of the first model in the server; The first client and / or one or more second clients are configured to receive a collaborative update request, wherein the collaborative update request includes the first data of the first model requested to be updated; perform normalization processing on the respective first data to obtain respective second data; and send the respective second data to the server; The server is used to merge the second data of each client and save them in the data warehouse, and after rendering the merged data, send the rendering result to each client.
17. The system of claim 16, wherein: The formats of the first data updated by different clients are different.
18. An electronic device comprising: at least one processor; as well as a memory communicatively connected to the at least one processor; wherein, The memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to perform the method according to any one of claims 1 to 15.
19. A non-transitory computer-readable storage medium storing computer instructions, wherein: The computer instructions are used to cause the computer to execute the method according to any one of claims 1-15.
20. A computer program product comprising a computer program, which, when executed by a processor, implements the method according to any one of claims 1 to 15.
Citation Information
Patent Citations
Cloud rendering system, method, device and equipment of three-dimensional model, medium and product
CN115965732A
Method and system for data synchronization, and apparatus thereof
US20090157802A1
Real-time collaborative design platform
US20130144566A1