CN109241571B - CRDT-based real-time collaborative editing method for CAD model supporting features - Google Patents

CRDT-based real-time collaborative editing method for CAD model supporting features Download PDF

Info

Publication number
CN109241571B
CN109241571B CN201810890392.1A CN201810890392A CN109241571B CN 109241571 B CN109241571 B CN 109241571B CN 201810890392 A CN201810890392 A CN 201810890392A CN 109241571 B CN109241571 B CN 109241571B
Authority
CN
China
Prior art keywords
operations
key
modeling
linked list
empty
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810890392.1A
Other languages
Chinese (zh)
Other versions
CN109241571A (en
Inventor
何发智
吕晓
程媛
蔡维纬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN201810890392.1A priority Critical patent/CN109241571B/en
Publication of CN109241571A publication Critical patent/CN109241571A/en
Application granted granted Critical
Publication of CN109241571B publication Critical patent/CN109241571B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The invention provides a real-time collaborative editing method of a support feature CAD model based on CRDT, which links newly inserted modeling operation to double chained list according to the whole sequence in the local operation processing and remote operation processing processes; the invention can support multi-user real-time collaborative editing of the shared CAD model in a large-scale peer-to-peer network environment; the invention can ensure the consistency of the CAD model of multi-user collaborative editing and the consistency of the CAD modeling history; the invention can provide good user interactivity.

Description

CRDT-based real-time collaborative editing method for CAD model supporting features
Technical Field
The invention belongs to the technical field of information, relates to a computer-supported cooperative working method, and particularly relates to a real-time cooperative editing method for supporting a feature CAD model based on CRDT.
Background
Real-time collaborative CAD systems are an important application area in computer-supported collaborative work. Real-time collaborative CAD systems differ from traditional distributed systems by allowing designers in different geographic locations to edit the same CAD model at the same time, with each collaborative site storing a copy of the shared CAD model. Maintaining consistency of a shared CAD model presents challenges because multiple users can edit copies of the shared CAD model simultaneously.
The exchangeable Replicated Data Type (CRDT) method is an emerging consistency maintenance method in recent years. The main idea is that the consistency of operation intents can be maintained and the result of consistency can be converged by assigning unique global ID to the operation object and mapping the operation object into an internal data structure in a full order. Compared with the traditional consistency maintenance method, the CRDT method has higher calculation efficiency and better operation responsiveness. However, most CRDT methods are used in collaborative text editing systems, and few studies have been made to apply CRDT methods to collaborative CAD systems.
Disclosure of Invention
The invention aims to provide a CRDT-based real-time collaborative editing method for a CAD model supporting features, which can not only maintain the consistency of the CAD model, but also realize the consistency of the CAD modeling history; the method can provide good operation responsiveness and is suitable for a large-scale collaborative CAD editing environment.
The technical scheme adopted by the invention is as follows: a real-time collaborative editing method for a CAD model supporting features based on CRDT is characterized in that: each site distributes and manages a feature dependent graph CoFDG, a hash table, a double linked list and an interaction overview in real time; the characteristic dependency graph CoFDG is a tuple (n, p), wherein n is a set of characteristic nodes, and p is a set of pointers for pointing to the characteristic nodes; storing modeling characteristics and dependency relations among the characteristics in the CoFDG; the hash table randomly stores all modeling operations; the double linked list stores all modeling operations in full order; the interaction interface provides an interactive interface of the collaborative designer; assigning a unique identifier ID to each modeling operation;
defining a characteristic dependency ≠ t: given the two characteristic nodes node1 and node2 in the CoFDG, node1 and node2 have a characteristic dependence written as node1 × node2, if and only if: (1) there is a pointer from node1 to node 2; (2) there is node3 in the CoFDG, one pointer from node1 to node3 and one pointer from node3 to node 2; (3) node1 and node2 are the same characteristic node;
defining dependency conflict relationships
Figure GDA0003558247500000021
Given that the two modeling operations MO1 and MO2 are from the same state S, they have a dependency-conflict relationship written as
Figure GDA0003558247500000022
If and only if: (1) there is a dependency between their target characteristics; (2) s (MO1, MO2) ≠ S (MO2, MO 1);
defining mutually exclusive relationships
Figure GDA0003558247500000023
Given that the two modeling operations MO1 and MO2 are from the same state S, they have mutually exclusive relationshipsMaking
Figure GDA0003558247500000024
If and only if there is only one operation performed in the S state;
define compatible relationship [: given that two modeling operations MO1 and MO2 come from the same state S, they have a compatible relationship as MO1 |, MO2, if and only if:
Figure GDA0003558247500000025
Figure GDA0003558247500000026
defining a complete order relation: given any three operations MO1, MO2, and MO3, if a full-order relationship exists, if and only if: (1)
Figure GDA0003558247500000027
or
Figure GDA0003558247500000028
(2) Exist of
Figure GDA0003558247500000029
Figure GDA00035582475000000211
Then
Figure GDA00035582475000000210
Defining a modeling operation MO: MO is a tuple < t, l, t _ key, c _ key, pre _ key, visible, next, prior, link, l _ key, s >; wherein, (1) t is the operation type of MO, including insert operation, delete operation and modify operation; (2) l is a Boolean variable with a value of true or false, wherein the value of true represents local operation, and the value of false represents remote operation; (3) t _ key is an identifier of the target modeling operation; (4) c _ key is the unique identifier of MO; (5) pre _ key is the unique identifier of the previous operation, used for integrating the local operation; (6) the visibility is the visibility of the MO, and when the MO is an unreasonable operation, the visibility is 0, otherwise, the visibility is 1; (7) next is a pointer pointing to the modeling operation of the next link in the double linked list; (8) the prior is a pointer and points to the modeling operation of the previous link in the double linked list; (9) link is a pointer for modeling operation in the link hash table; (10) l _ key is the identifier of the dependent sub-operation of the MO; (11) s is the current state of the CAD model when MO is executed;
the method comprises a local operation process and a remote operation process;
the local operation processing comprises the following substeps:
step A1: judging whether the double linked list is empty or not, if so, executing a local operation MO and linking the local operation MO to the back of a head node in the double linked list; if not, go to step A2;
step A2: executing the local operation MO and linking the local operation MO to a tail node of the double linked list;
the remote operation processing comprises the following substeps:
step B1: finding a target modeling operation Tar of the MO through the hash table and the MO.t _ key, and marking the subsequent operation of the Tar as NT (NT is equal to tar.next);
step B2: judging whether Tar is tombstone operation, if yes, MO cannot be executed, meanwhile, MO is also set as tombstone operation and inserted into a corresponding position in a double linked list; if Tar is not a tombstone operation, proceed to step B3;
step B3: judging whether NT is empty, if NT is empty, executing MO and linking MO to the rear of Tar; if NT is not empty, go to step B4;
and step B4: the MO target execution position is found in the double linked list, and then the MO is executed and linked to the back of the target execution position.
The invention has the beneficial effects that: the invention can support collaborative editing based on the characteristic CAD model; the consistency of the result of the CAD model can be achieved, and the consistency of the CAD modeling history can be guaranteed.
Drawings
FIG. 1 is a schematic diagram of the overall framework and control process of an embodiment of the invention;
FIG. 2 is a schematic diagram of a first cooperative working scenario of three sites according to an embodiment of the present invention;
fig. 3 is a schematic diagram of a second cooperative working scenario of three stations according to an embodiment of the present invention.
Detailed Description
In order to facilitate the understanding and implementation of the present invention for those of ordinary skill in the art, the present invention is further described in detail with reference to the accompanying drawings and examples, it is to be understood that the embodiments described herein are merely illustrative and explanatory of the present invention and are not restrictive thereof.
Referring to fig. 1, the real-time collaborative editing method for a support feature CAD model based on CRDT according to the present invention is characterized in that: each site distributes and manages a feature dependent graph CoFDG, a hash table, a double linked list and an interaction overview in real time; the characteristic dependency graph CoFDG is a tuple (n, p), wherein n is a set of characteristic nodes, and p is a set of pointers for pointing to the characteristic nodes; storing modeling characteristics and dependency relations among the characteristics in the CoFDG; the hash table randomly stores all modeling operations; the double linked list stores all modeling operations in full order; the interaction interface provides an interactive interface of the collaborative designer; assigning a unique identifier ID to each modeling operation;
defining a characteristic dependency ≠ t: given the two characteristic nodes node1 and node2 in the CoFDG, node1 and node2 have a characteristic dependence written as node1 × node2, if and only if: (1) there is a pointer from node1 to node 2; (2) there is node3 in the CoFDG, one pointer from node1 to node3 and one pointer from node3 to node 2; (3) node1 and node2 are the same characteristic node;
defining dependency conflict relationships
Figure GDA0003558247500000041
Given that the two modeling operations MO1 and MO2 are from the same state S, they have a dependency-conflict relationship written as
Figure GDA0003558247500000042
If and only if: (1) there is a dependency between their target characteristics; (2) s (MO1, MO2) ≠ S (MO2, MO 1); (the same result is obtained by executing MO1 and MO2 in S state as executing MO2 and MO1 in S state.)
Defining mutually exclusive relationships
Figure GDA0003558247500000043
Given that the two modeling operations MO1 and MO2 are from the same state S, they have a mutually exclusive relationship denoted as
Figure GDA0003558247500000044
If and only if there is only one operation performed in the S state;
define compatible relationship [: given that two modeling operations MO1 and MO2 come from the same state S, they have a compatible relationship as MO1 | -MO 2, if and only if:
Figure GDA0003558247500000045
Figure GDA0003558247500000046
(dependency conflict relationships and mutual exclusion relationships have been defined above, so that a compatible relationship therein indicates that two operations are compatible if neither a dependency conflict relationship nor a mutual exclusion relationship exists)
Defining a complete order relation: given any three operations MO1, MO2, and MO3, if a full-order relationship exists, if and only if: (1)
Figure GDA0003558247500000047
or
Figure GDA0003558247500000048
(2) Exist of
Figure GDA0003558247500000049
Figure GDA00035582475000000410
Then
Figure GDA00035582475000000411
(
Figure GDA00035582475000000412
Typical is a partial order relationship)
Defining a modeling operation MO: MO is a tuple < t, l, t _ key, c _ key, pre _ key, visible, next, prior, link, l _ key, s >; wherein, (1) t is the operation type of MO, including insert operation, delete operation and modify operation; (2) l is a Boolean variable with a value of true or false, wherein the value of true represents local operation, and the value of false represents remote operation; (3) t _ key is an identifier of the target modeling operation; (4) c _ key is the unique identifier of MO; (5) pre _ key is the unique identifier of the previous operation, used for integrating the local operation; (6) the visibility is the visibility of the MO, and when the MO is an unreasonable operation, the visibility is 0, otherwise, the visibility is 1; (7) next is a pointer, pointing to the modeling operation of the next link in the double linked list; (8) the prior is a pointer and points to the modeling operation of the previous link in the double linked list; (9) link is a pointer for modeling operation in the link hash table; (10) l _ key is an identifier of a dependent sub-operation of the MO; (11) s is the current state of the CAD model when MO is executed;
the method comprises a local operation process and a remote operation process;
the local operation processing comprises the following substeps:
step A1: judging whether the double linked list is empty or not, if so, executing a local operation MO and linking the local operation MO to the back of a head node in the double linked list; if not, go to step A2;
step A2: executing the local operation MO and linking the local operation MO to a tail node of the double linked list;
the specific implementation comprises the following substeps:
step A2.1: if the MO, pre _ key is empty, executing MO and linking the MO to the rear of the tail node by scanning a double linked list until the tail node is found;
step A2.2: and if the MO.pre _ key is not empty, after finding the target node through the hash table and the MO.pre _ key, executing the MO and linking the MO to the back of the target node.
The remote operation processing comprises the following substeps:
step B1: finding a target modeling operation Tar of the MO through the hash table and the MO.t _ key, and marking the subsequent operation of the Tar as NT (NT is equal to tar.next);
step B2: judging whether the Tar is the tombstone operation or not, if so, not executing the MO, setting the MO as the tombstone operation, and inserting the MO into a corresponding position in the double linked list; if Tar is not a tombstone operation, proceed to step B3;
step B3: judging whether NT is empty, if NT is empty, executing MO and linking MO to the rear of Tar; if NT is not empty, go to step B4;
and step B4: finding an MO target execution position in a double linked list, then executing the MO, and linking the MO behind the target execution position;
the specific implementation comprises the following substeps:
step B4.1: if NT is not empty and NT.c _ key < MO.c _ key, go to step B4.2; otherwise, turning to the step B4.3;
step B4.2:
(1) if it is not
Figure GDA0003558247500000061
Calling a conflict function MutualExclusionResolve of the mutual exclusion relationship to solve the mutual exclusion conflict of the NT and the MO, and turning to the step B4.3;
(2) if it is not
Figure GDA0003558247500000062
And then divided into two cases: if the target feature of NT depends on the target feature of MO, NT ═ nt.next, go to step B4.1; otherwise, withdraw NT, carry out MO, carry out NT again, before linking MO to NT, turn to step B4.3;
(3) if NT | _ MO, then NT ═ NT. next, go to step B4.1;
step B4.3: if NT is empty, MO is executed and the process goes to step B4.5 before MO is linked to NT; if NT is not empty, go to step B4.4;
step B4.4: judging the conflict relationship between NT and MO, if
Figure GDA0003558247500000063
Calling a conflict function MutualExclusionResolve of the mutual exclusion relationship to solve the mutual exclusion conflict of the NT and the MO, and turning to the step B4.5; if it is not
Figure GDA0003558247500000064
Calling a dependency conflict resolution function dependencyconflictresve to resolve the dependency conflict between NT and MO, and turning to step B4.5; if NT | _ MO, call compatiblesesolve to resolve the compatibility between NT and MO, go to step B4.5;
step B4.5: and recursively detecting whether the dependent sub-operations of the NT and the MO are reasonable operations or not in sequence, canceling the unreasonable sub-operations, and setting the abnormal sub-operations as tombstone operations.
Reasonable operation: it is sequentially recursively detected whether dependent sub-operations of the NT and MO become non-executable operations due to the execution of the NT and MO (non-executable operations means that these operations cannot be executed because they cannot find the target feature due to the execution of the NT and MO), and if the sub-operations are non-executable operations, they are revoked and set as tombstone operations.
Fig. 2 is a first cooperative work scenario of three sites in a session. Assume that the session count is 1 and the site number size is site1<site2<site 3. Here, the modeling operations that have been performed are connected with "-", where L represents the modeling history,
Figure GDA0003558247500000066
represents the jth state of the ith station,
Figure GDA0003558247500000065
the representative MO is a tombstone. Three sites generate local operations as MO1=create(Cut1),MO2=create(Extrude2);MO3Delete (extreme 1). SV of each operation is SV (MO)1)=(1,0,0),SV(MO2)=(0,1,0),SV(MO3) (0,0, 1). The ID assigned to each operation object is ID MO1=(1,1,1),IDMO2=(1,1,2),IDMO3=(1,1,3)。
The first collaborative work scenario is performed as follows.
At site1, when the MO is executed1,L1=MO1. When receiving MO2,MO2Post-execution linking to MOs1After, L1=MO1-MO2. When receiving MO3,MO3Not allowed to execute, set as tombstone and linked to MO2After that, the air conditioner is started to work,
Figure GDA0003558247500000071
at site2, when the MO is executed2,L2=MO2. When receiving MO1Withdrawing MO2Execute MO1Then, MO is executed2,L2=MO1-MO2. When receiving MO3,MO3Disallow execution, set to link to MO behind tombstone2After that, the air conditioner is started to work,
Figure GDA0003558247500000072
at site3, when the MO is executed3,L3=MO3. When receiving MO1Withdrawing MO3Execute MO1,MO3Set as a tombstone and linked to an MO1After that, the air conditioner is started to work,
Figure GDA0003558247500000073
when receiving MO2Execute MO2Mixing MO2Linking to MO1After that, the air conditioner is started to work,
Figure GDA0003558247500000074
fig. 3 is a second cooperative working scenario of three sites in a session. Assume that the session count is 2 and the site number size is site1<site2<site 3. Three sites generate local operations ofMO4=create(Extrude3),MO5=modify(Extrude2);MO6Create (fillet). SV of each operation is SV (MO)4)=(2,1,1),SV(MO5)=(1,2,1),SV(MO6) (1,1, 2). The ID assigned to each operation object is IDMO4=(2,4,1),IDMO5=(2,4,2),IDMO6=(2,4,3)。
The second collaborative work scenario is performed as follows.
At site1, when the MO is executed4
Figure GDA0003558247500000075
When receiving MO5,MO5Post-execution linking to MOs4After that, the air conditioner is started to work,
Figure GDA0003558247500000076
when receiving MO36Execute MO6And linked to MO5After that, the air conditioner is started to work,
Figure GDA0003558247500000077
at site2, when the MO is executed5
Figure GDA0003558247500000078
When receiving MO4Withdrawing MO5Execute MO4Then, MO is executed5
Figure GDA0003558247500000079
When receiving MO6Execute MO6And linked to MO5After that, the air conditioner is started to work,
Figure GDA00035582475000000710
at site3, when the MO is executed6
Figure GDA00035582475000000711
When receiving MO4Withdrawing MO6Execute MO4Then, MO is executed6
Figure GDA00035582475000000712
When receiving MO5Withdrawing MO6Execute MO5Execute MO6Mixing MO6Linking to MO5After that, the air conditioner is started to work,
Figure GDA00035582475000000713
Figure GDA00035582475000000714
through the two cooperative working scenes, the sites are converged to a consistent CAD model and a modeling history
Figure GDA00035582475000000715
It should be understood that parts of the specification not set forth in detail are well within the prior art.
It should be understood that the above description of the preferred embodiments is given for clarity and not for any purpose of limitation, and that various changes, substitutions and alterations can be made herein without departing from the spirit and scope of the invention as defined by the appended claims.

Claims (4)

1. A real-time collaborative editing method for a CAD model supporting features based on CRDT is characterized in that: each site distributes and manages a feature dependent graph CoFDG, a hash table, a double linked list and an interaction overview in real time; the characteristic dependency graph CoFDG is a tuple (n, p), wherein n is a set of characteristic nodes, and p is a set of pointers for pointing to the characteristic nodes; storing modeling characteristics and dependency relations among the characteristics in the CoFDG; the hash table randomly stores all modeling operations; the double linked list stores all modeling operations in full order; the interaction interface provides an interactive interface of the collaborative designer; assigning a unique identifier ID to each modeling operation;
defining a characteristic dependency ≠ t: given the two characteristic nodes node1 and node2 in the CoFDG, node1 and node2 have a characteristic dependence written as node1 × node2, if and only if: (1) there is a pointer from node1 to node 2; (2) there is node3 in the CoFDG, one pointer from node1 to node3 and one pointer from node3 to node 2; (3) node1 and node2 are the same characteristic node;
defining dependency conflict relationships
Figure FDA0003558247490000011
Given that the two modeling operations MO1 and MO2 are from the same state S, they have a dependency-conflict relationship written as
Figure FDA0003558247490000012
MO2 if and only if: (1) there is a dependency between their target characteristics; (2) s (MO1, MO2) ≠ S (MO2, MO 1);
defining mutually exclusive relationships
Figure FDA0003558247490000013
Given that the two modeling operations MO1 and MO2 are from the same state S, they have a mutually exclusive relationship denoted as
Figure FDA0003558247490000014
If and only if there is only one operation performed in the S state;
define compatible relationship [: given that two modeling operations MO1 and MO2 come from the same state S, they have a compatible relationship as MO1 | -MO 2, if and only if: (1)
Figure FDA0003558247490000015
(2)
Figure FDA0003558247490000016
Figure FDA0003558247490000017
defining a complete order relation: given any three operations MO1, MO2, and MO3, if a full-order relationship exists, if and only if: (1)
Figure FDA0003558247490000018
or
Figure FDA0003558247490000019
(2) Exist of
Figure FDA00035582474900000110
Figure FDA00035582474900000111
Then
Figure FDA00035582474900000112
Defining a modeling operation MO: MO is a tuple < t, l, t _ key, c _ key, pre _ key, visible, next, prior, link, l _ key, s >; wherein, (1) t is the operation type of MO, including insert operation, delete operation and modify operation; (2) l is a Boolean variable with a value of true or false, wherein the value of true represents local operation, and the value of false represents remote operation; (3) t _ key is an identifier of the target modeling operation; (4) c _ key is the unique identifier of MO; (5) pre _ key is the unique identifier of the previous operation, used for integrating the local operation; (6) the visibility is the visibility of the MO, and when the MO is an unreasonable operation, the visibility is 0, otherwise, the visibility is 1; (7) next is a pointer, pointing to the modeling operation of the next link in the double linked list; (8) the prior is a pointer and points to the modeling operation of the previous link in the double linked list; (9) link is a pointer for modeling operation in the link hash table; (10) l _ key is the identifier of the dependent sub-operation of the MO; (11) s is the current state of the CAD model when MO is executed;
the method comprises a local operation process and a remote operation process;
the local operation processing comprises the following substeps:
step A1: judging whether the double linked list is empty or not, if so, executing a local operation MO and linking the local operation MO to the back of a head node in the double linked list; if not, go to step A2;
step A2: executing the local operation MO and linking the local operation MO to a tail node of the double linked list;
the remote operation processing comprises the following substeps:
step B1: finding a target modeling operation Tar of the MO through the hash table and the MO.t _ key, and marking the subsequent operation of the Tar as NT (NT is equal to tar.next);
step B2: judging whether Tar is tombstone operation, if yes, MO cannot be executed, meanwhile, MO is also set as tombstone operation and inserted into a corresponding position in a double linked list; if Tar is not a tombstone operation, proceed to step B3;
step B3: judging whether NT is empty, if NT is empty, executing MO and linking MO to the rear of Tar; if NT is not empty, go to step B4;
and step B4: the MO target execution position is found in the double linked list, and then the MO is executed and linked to the back of the target execution position.
2. The CRDT-based real-time collaborative editing method for feature-supported CAD models according to claim 1, wherein the detailed implementation of step a2 includes the following sub-steps:
step A2.1: if MO, pre _ key is empty, executing MO and linking MO to the back of the tail node by scanning double linked list until the tail node is found;
step A2.2: and if the MO.pre _ key is not empty, after finding the target node through the hash table and the MO.pre _ key, executing the MO and linking the MO to the back of the target node.
3. The CRDT-based real-time collaborative editing method for feature-supported CAD models according to claim 1, wherein the detailed implementation of step B4 comprises the following sub-steps:
step B4.1: if NT is not empty and NT.c _ key < MO.c _ key, go to step B4.2; otherwise, turning to the step B4.3;
step B4.2:
(1) if it is not
Figure FDA0003558247490000031
Calling a conflict function MutualExclusionResolve of the mutual exclusion relationship to solve the mutual exclusion conflict of the NT and the MO, and turning to the step B4.3;
(2) if it is not
Figure FDA0003558247490000032
And then divided into two cases: if the target feature of NT depends on the target feature of MO, NT ═ nt.next, go to step B4.1; otherwise, withdraw NT, carry out MO, carry out NT again, before linking MO to NT, turn to step B4.3;
(3) if NT ═ MO, then NT ═ NT. next, go to step B4.1;
step B4.3: if NT is empty, MO is executed and the process goes to step B4.5 before MO is linked to NT; if NT is not empty, go to step B4.4;
step B4.4: judging the conflict relationship between NT and MO, if
Figure FDA0003558247490000033
Calling a conflict function MutualExclusionResolve of the mutual exclusion relationship to solve the mutual exclusion conflict of the NT and the MO, and turning to the step B4.5; if it is not
Figure FDA0003558247490000034
Calling a dependency conflict resolution function dependencyconflictresve to resolve the dependency conflict between NT and MO, and turning to step B4.5; if NT | _ MO, call compatiblesesolve to resolve the compatibility between NT and MO, go to step B4.5;
step B4.5: and detecting whether the dependent sub-operations of the NT and the MO are reasonable operations or not in sequence recursively, canceling the unreasonable sub-operations, and setting the sub-operations as tombstone operations.
4. The CRDT-based method for collaborative editing in real-time of feature-enabled CAD models according to claim 3, wherein: the rational operation described in step B4.5, in turn, recursively detects whether dependent sub-operations of NT and MO become unexecutable operations due to execution of NT and MO, the unexecutable operations meaning that these operations cannot be executed because the target characteristics cannot be found by the execution of NT and MO, and if the sub-operations are unexecutable, they are revoked and set as tombstone operations.
CN201810890392.1A 2018-08-07 2018-08-07 CRDT-based real-time collaborative editing method for CAD model supporting features Active CN109241571B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810890392.1A CN109241571B (en) 2018-08-07 2018-08-07 CRDT-based real-time collaborative editing method for CAD model supporting features

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810890392.1A CN109241571B (en) 2018-08-07 2018-08-07 CRDT-based real-time collaborative editing method for CAD model supporting features

Publications (2)

Publication Number Publication Date
CN109241571A CN109241571A (en) 2019-01-18
CN109241571B true CN109241571B (en) 2022-05-13

Family

ID=65069980

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810890392.1A Active CN109241571B (en) 2018-08-07 2018-08-07 CRDT-based real-time collaborative editing method for CAD model supporting features

Country Status (1)

Country Link
CN (1) CN109241571B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112738234B (en) * 2020-12-29 2022-08-23 中国人民解放军海军工程大学 Lightweight asynchronous mobile collaborative editing method based on CRDT

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101894186A (en) * 2010-07-02 2010-11-24 武汉大学 Operation transformation method based on three-dimensional semantic in cooperative computer-aided design editing system
CN104142813A (en) * 2014-08-06 2014-11-12 武汉大学 Concurrency control method for replicated collaborative CAD system
CN105955828A (en) * 2016-04-18 2016-09-21 武汉大学 Real-time cooperative editing consistency maintenance method supporting string operation

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5067131B2 (en) * 2007-11-07 2012-11-07 富士通セミコンダクター株式会社 Semiconductor memory, semiconductor memory operating method and system
US9648059B2 (en) * 2013-02-05 2017-05-09 Brigham Young University System and methods for multi-user CAx editing conflict management

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101894186A (en) * 2010-07-02 2010-11-24 武汉大学 Operation transformation method based on three-dimensional semantic in cooperative computer-aided design editing system
CN104142813A (en) * 2014-08-06 2014-11-12 武汉大学 Concurrency control method for replicated collaborative CAD system
CN105955828A (en) * 2016-04-18 2016-09-21 武汉大学 Real-time cooperative editing consistency maintenance method supporting string operation

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CRDT-based conflict detection and resolution for massive-scale real-time collaborative CAD systems;Xiao Lv等;《Proceedings of the 12th Chinese Conference on Computer Supported Cooperative Work and Social Computing》;20170922;全文 *
支持操作意图一致性的实时协同编辑算法综述;何发智等;《计算机学报》;20170120;全文 *

Also Published As

Publication number Publication date
CN109241571A (en) 2019-01-18

Similar Documents

Publication Publication Date Title
US9648059B2 (en) System and methods for multi-user CAx editing conflict management
JP2016505930A (en) System, method, and apparatus for collaborative CAX editing
CN102170462B (en) Remote collaboration method of product design model
CN110866320A (en) Intelligent platform area graph automatic generation method and system
US20160098494A1 (en) Integration of analysis with multi-user cad
CN102866944A (en) Pressure testing system and method
CN102984737B (en) A kind of improve parameter unification collocation method of wireless network and device
US10706020B2 (en) Data sharing in CAx applications
CN109241571B (en) CRDT-based real-time collaborative editing method for CAD model supporting features
CN101119365B (en) Cooperation interaction optimizing method under vast scale cooperative surroundings
CN110569615B (en) Multi-source heterogeneous embedded software collaborative simulation test method
CN105955828B (en) A kind of Real-time co-authoring consistency maintaining method for supporting string operation
CN105242958A (en) Virtual testing system and HLA simulation system data exchange method
CN114239237A (en) Power distribution network simulation scene generation system and method supporting digital twinning
CN107391136A (en) A kind of programing system and method based on streaming
Cai et al. A semi-transparent selective undo algorithm for multi-user collaborative editors
CN115934637A (en) Drawing file management method and device, storage medium and electronic equipment
CN112765766B (en) Dynamic interactive fine-grained discrete event system time sequence advancing method
CN111880883B (en) Dynamic combination primitive realization method based on equipment object
CN113568921A (en) Multi-person cooperative operation method for geographic information data production and update
CN113730920B (en) Method and system for presetting component synchronization attribute
US20150271221A1 (en) Selection triggered collaborative cax editing
Nédelec et al. Concurrency effects over variable-size identifiers in distributed collaborative editing
CN112738234B (en) Lightweight asynchronous mobile collaborative editing method based on CRDT
CN116992514B (en) Three-dimensional CAD collaborative design method and system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant