User tracing method, system, device, medium and computer program product
By using dictionary technology and the method of storing user IDs in CAD software, the problem of accurately positioning element designers in the existing technology is solved, rapid traceability and efficient data storage are achieved, and the performance and collaborative operation capabilities of CAD software are improved.
Patent Information
- Application Number
- CN202410853862.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-06-28
- Publication Date
- 2025-05-06
- Estimated Expiration
- 2044-06-28
AI Technical Summary
Existing CAD software cannot accurately locate element designers, especially in the case of multi-person collaboration and complex three-dimensional model drawing, which makes drawing error traceability difficult.
Dictionary technology is used to combine version number and handle information to associate and store user IDs. By defining a multi-layer data structure layer, recording the mapping relationship between user ID and primitives, quickly positioning primitive designers.
It improves the data serialization speed, avoids array reordering operations caused by entity deletion, meets the recording needs of the main modification personnel information in engineering drawings, supports accurate traceability under the collaboration of multiple parties, and does not over-consuming the performance of CAD software.
Smart Images

Figure CN118820189B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to computer-aided design (CAD), and in particular to a user tracing method, system, device, medium and computer program product. Background Art
[0002] With the development of society and the advancement of technology, engineering drawings are becoming more and more complex, and it often requires multiple people to collaborate to draw CAD drawings. Due to the increase in the complexity of drawings, drawing errors are inevitable. When problems occur, it is necessary to be able to trace the responsible person for problem analysis and responsibility division. However, existing CAD software cannot accurately locate the graphic element designer.
[0003] CN112286881A discloses a document authentication and tracing method and device, the method comprising: receiving a document tracing request; according to the tracing request, querying the modification record description block and the first authentication identifier of the document from the local data table, wherein the modification record description block records the modification record for the document, and the first authentication identifier is the identification code of the modification record description block in the blockchain system; calculating the hash summary of the modification record description block; according to the hash summary of the modification record description block and the first authentication identifier, sending a modification record authentication request to the blockchain system; receiving the modification record authentication result sent by the blockchain system. Thus, the first authentication identifier traces the modification record of the document and the personnel information who executes the modification record from the blockchain system, so that the reliability of the document modification record and the personnel information who executes the modification record is guaranteed by the blockchain system.
[0004] However, as engineering drawings become more and more complex and involve collaborative drawing by multiple people, the amount of data involved in a CAD drawing is very large. In addition, the drawing of complex three-dimensional models (such as large buildings and bridge modeling) consumes a lot of performance in data storage or search, which also puts extremely high demands on computer performance.
[0005] Therefore, conventional personnel tracing methods in the prior art will be difficult to apply to CAD software. Summary of the invention
[0006] The object of the present invention is to provide a user tracing method, system, device, medium and computer program product, which partially solve or alleviate the above-mentioned deficiencies in the prior art and can quickly locate the designer of the graphic elements for different versions of drawings.
[0007] In order to solve the above-mentioned technical problems, the present invention specifically adopts the following technical solutions:
[0008] A first aspect of the present invention is to provide a user tracing method, comprising:
[0009] S200 obtains the drawing file;
[0010] S201 defines at least one first data structure layer in a naming dictionary of the drawing file, the first data structure layer being a sub-dictionary, wherein the drawing file includes: at least one version of the file;
[0011] S202 associates at least one of the first data structure layers with at least one corresponding file, wherein the first data structure layer is named by a version number of the file, and the file includes at least one graphic element;
[0012] S203: detecting an incremental drawing operation of a user on at least one of the primitives in the file corresponding to the current version number, and recording a current user ID and the primitive;
[0013] S204: further define at least one second data structure layer in the first data structure layer, wherein the second data structure layer is used to store an array recording a mapping relationship between the user ID and the graphic element;
[0014] S205 defines at least one array for at least one of the graphic elements in the second data structure layer, wherein the array stores a first node and a second node in sequence, wherein the first node is used to record the user ID, and the second node is used to record the handle information of the graphic element.
[0015] In some embodiments, it also includes:
[0016] S206: When it is detected that the version number of the file triggering the incremental drawing operation is switched, at least one new first data structure layer is named using the current version number.
[0017] In some embodiments, it also includes:
[0018] S207: obtaining a search instruction issued by the user, wherein the search instruction includes: the version number and the image element information;
[0019] S208 searches for the corresponding user ID from the naming dictionary according to the search instruction.
[0020] In some embodiments, the version number is the version number of the copy file, or the version number of the incremental file. Correspondingly, S203 includes the steps of:
[0021] In response to the incremental drawing operation issued by the user to the drawing file, at least one copy file and at least one incremental file are recorded; the copy file includes at least one copy file of the drawing file at a first moment, and at least one incremental file includes incremental data generated from the first moment to a second moment, and the incremental file correspondingly includes: header information and data information, and the header information includes: the version number of the corresponding copy file, the version number and the number of pages of the incremental file; the data information includes: the operation type, data segment and handle information of the graphic element.
[0022] In some embodiments, S203 further includes the steps of:
[0023] S21 creates a copy file and creates an incremental file associated with the current copy file;
[0024] S22 determines whether the storage index of the current incremental file is greater than a preset storage threshold; wherein the storage index includes one or more of the following: file size, number of primitives, and file creation time;
[0025] If the result of S22 is no, then executing step S24; S24 stores the data related to the current incremental drawing operation into the current incremental file;
[0026] If the result of S22 is yes, execute step S25; S25 determines whether the incremental index of at least one incremental file associated with the current copy file is greater than a preset incremental threshold; wherein the incremental index includes one or more of the following: the number of incremental files, or the total file size of multiple incremental files;
[0027] If the result of S25 is no, then execute step S23; S23 creates a new incremental file corresponding to the current copy file, and stores the data related to the current incremental drawing operation in the new incremental file.
[0028] The present invention also provides a user tracing system correspondingly, comprising:
[0029] Drawing acquisition module, used to acquire drawing files;
[0030] A first definition module is used to define at least one first data structure layer in a naming dictionary of the drawing file, wherein the first data structure layer is a sub-dictionary, wherein the drawing file includes: at least one version of the file;
[0031] a naming module, configured to associate at least one of the first data structure layers with at least one corresponding file, wherein the first data structure layer is named by a version number of the file, and the file includes at least one graphic element;
[0032] A first detection module, used for detecting an incremental drawing operation of a user on at least one of the primitives in the file corresponding to the current version number, and recording a current user ID and the primitive;
[0033] A second definition module, used to further define at least one second data structure layer in the first data structure layer, wherein the second data structure layer is used to store an array recording a mapping relationship between the user ID and the graphic element;
[0034] The third definition module is used to define at least one array for at least one of the graphic elements in the second data structure layer, and the array stores a first node and a second node in sequence. The first node is used to record the user ID, and the second node is used to record the handle information of the graphic element.
[0035] In some embodiments, it also includes:
[0036] The second detection module is configured to name at least one new first data structure layer using the current version number when detecting that a version number of the file triggering the incremental drawing operation is switched.
[0037] The present invention further provides an electronic device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the method described in any embodiment of the present invention when executing the computer program.
[0038] The present invention further provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the method described in any embodiment of the present invention is implemented.
[0039] The present invention also provides a computer program product, which is tangibly stored on a non-transitory computer-readable medium and includes machine-executable instructions for executing the method according to any embodiment of the present invention.
[0040] Beneficial technical effects:
[0041] It should be noted that, especially when it involves multi-party collaboration, the amount of data in the entire CAD drawing is very large. Therefore, when modifying the data of the CAD drawing (such as incremental drawing), once the modification is large, it will consume a lot of software performance. At this time, if the user ID of each element (that is, the designer involved in the modification) is recorded one by one, it is also very easy to cause problems such as software jamming. However, if the modified data is not recorded more comprehensively, it will be very unfavorable for the subsequent traceability analysis of the drawings.
[0042] This embodiment proposes a method of associating and storing user IDs using dictionary technology combined with limited dimensions such as version numbers and handle information, which can not only improve the data serialization speed, but also avoid array re-arrangement operations caused by entity deletion.
[0043] After application testing, the applicant found that this method of associating and storing user IDs based on limited dimensions such as version numbers and handle information can basically meet the needs of recording personnel information involved in major modifications during the engineering drawing stage. At the same time, the associative storage method adopted is conducive to accurate traceability under the collaboration of multiple parties, and it will not generate excessive data calculations during the data storage process, so it will not excessively consume the performance of the CAD software and interfere with the user's normal drawing work.
[0044] Furthermore, the traceability solution formed by the coordinated use of this associative storage method and incremental technology can reasonably optimize the real-time storage information generated during the drawing process, reduce the consumption of CAD software performance, and at the same time make a relatively complete record of the main changes involved in the entire drawing process, making it easier for later personnel (such as reviewers) to accurately trace and locate early drawing problems. BRIEF DESCRIPTION OF THE DRAWINGS
[0045] In order to more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings required for use in the embodiments or the prior art descriptions are briefly introduced below. In all the drawings, similar elements or parts are generally identified by similar reference numerals. In the drawings, each element or part is not necessarily drawn according to the actual scale. Obviously, the drawings described below are some embodiments of the present invention. For those of ordinary skill in the art, other drawings can also be obtained based on these drawings without paying creative labor.
[0046] Figure 1 It is a schematic flow chart of a drawing processing method in an exemplary embodiment of the present invention;
[0047] Figure 2 A schematic flow chart of the steps of incremental drawing in an exemplary embodiment of the present invention;
[0048] Figure 3 It is a schematic diagram of the incremental display principle in an exemplary embodiment of the present invention;
[0049] Figure 4 A schematic diagram of a data structure in an exemplary embodiment of the present invention;
[0050] Figure 5 The figure is a flowchart of a tracing method in an exemplary embodiment of the present invention. DETAILED DESCRIPTION
[0051] In order to make the purpose, technical solution and advantages of the embodiments of the present invention clearer, the technical solution in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative work are within the scope of protection of the present invention.
[0052] Herein, suffixes such as "module", "component" or "unit" used to represent elements are only used to facilitate the description of the present invention, and have no specific meanings by themselves. Therefore, "module", "component" or "unit" can be used mixedly.
[0053] In this document, the terms "upper", "lower", "inner", "outer", "front", "back", "one end", "the other end" and the like indicate positions or positional relationships based on the positions or positional relationships shown in the drawings, and are only for the convenience of describing the present invention and simplifying the description, and do not indicate or imply that the devices or elements referred to must have a specific orientation, be constructed and operate in a specific orientation, and therefore cannot be understood as limiting the present invention. In addition, the terms "first" and "second" are used for descriptive purposes only and cannot be understood as indicating or implying relative importance.
[0054] In this document, unless otherwise clearly specified and limited, the terms "installed", "provided with", "connected", etc. should be understood in a broad sense. For example, "connected" can be a fixed connection, a detachable connection, or an integral connection; it can be a mechanical connection, a direct connection, or an indirect connection through an intermediate medium, or it can be the internal communication of two components. For ordinary technicians in this field, the specific meanings of the above terms in the present invention can be understood according to specific circumstances.
[0055] Herein "and / or" includes any and all combinations of one or more of the associated listed items.
[0056] Herein, "plurality" means two or more than two, ie, it includes two, three, four, five, etc.
[0057] It should be noted that, in this article, the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the sentence "comprises a ..." does not exclude the existence of other identical elements in the process, method, article or device including the element.
[0058] As used in this specification, the term "about" typically means + / - 5% of the stated value, more typically + / - 4% of the stated value, more typically + / - 3% of the stated value, more typically + / - 2% of the stated value, even more typically + / - 1% of the stated value, and even more typically + / - 0.5% of the stated value.
[0059] In this specification, some embodiments may be disclosed in a format of being within a certain range. It should be understood that such description of "being within a certain range" is only for convenience and brevity, and should not be interpreted as a rigid limitation on the disclosed range. Therefore, the description of the range should be considered to have specifically disclosed all possible sub-ranges and independent numerical values within this range. For example, the range The description of should be considered to have specifically disclosed sub-ranges such as from 1 to 3, from 1 to 4, from 1 to 5, from 2 to 4, from 2 to 6, from 3 to 6 etc., as well as individual numbers within this range, for example, 1, 2, 3, 4, 5, and 6. The above rules apply regardless of the breadth of the range.
[0060] Glossary:
[0061] In this article, the data in the drawing mainly includes: data objects and auxiliary data. Among them, "data objects" mainly include: objects, entities, tables, system variables and other data; and auxiliary data mainly include: thumbnails, signatures, encryption and configuration information and other data. For example, "editing objects" refers to data such as objects, entities, tables or system variables. For example, drawings can refer to CAD drawings (or CAD drawing files).
[0062] In this article, the incremental file is preferably organized in a continuous data stream (such as using the DWI format). In addition, the incremental file is simplified in this article to mainly include two data structures: header information and data information. The data information may include any of the above data objects to record the modification information of the data object.
[0063] In this paper, the incremental technique mainly focuses on the variables of data objects and core auxiliary data (such as thumbnails and configuration information) during the user editing process.
[0064] In this article, a data segment refers to an area in an incremental file used to store entity data information, which consists of a segment name and an entity object value.
[0065] In this article, handle information refers to a unique index or number used to identify an editing object (such as an object graphic) in a CAD drawing, which is automatically generated and allocated by a system (such as CAD software).
[0066] In this article, the drawing database is the CAD database, which refers to a data storage system used to store and manage all graphic data information, integrating various graphic objects, entities, symbol table records, dictionaries, etc.
[0067] In this article, Block Table Record refers to the key part of the drawing database used to manage block definitions and block references. The record stores all information related to the block. Each block definition and block reference in CAD has a unique corresponding block table record in the block table. The block table is an important part of the CAD database, which stores the metadata and reference information of all blocks.
[0068] In this article, the header information mainly includes the basic description of the incremental file, including the copy file version number, incremental file version number, page number and application name (fixed character content), etc.
[0069] In this article, data information mainly describes all the metadata in the incremental file, including the handle information of the primitive, operation type (including addition, deletion, modification), data length, data segment, string segment (similar to the data segment, saves string information), etc. The incremental file provides a specific data segment for data storage and saves the variable information set in the current version.
[0070] In this article, system variables can be settings that control how certain commands in CAD software work, helping users customize and optimize the CAD working environment. For example, there are many types of system variables, and common data types in dwg files include 2D point coordinates, 3D point coordinates, 2D vectors, 3D vectors, integers, floating point numbers, strings, and so on.
[0071] "Entity": In this article, an entity refers to the graphic data on a CAD file that is displayed on the CAD drawing interface. An entity has attributes, which are data values that control specific visual characteristics of an entity or element (such as visibility, color, and line style). In different embodiments, an entity may also be referred to as a "pixel" or "element".
[0072] "Object": In this article, objects refer to information on CAD files that will not be displayed in the CAD drawing interface, such as layers, text styles, dimension styles, etc. In this article, "style" refers to a named collection of attributes used to classify and define specific geometric and text elements (such as line styles or text styles).
[0073] "Element": In this article, element refers to all possible information on a CAD file, including "entities" and "objects", and can also be blocks, groups, and unit definitions based on "entities" and / or "objects".
[0074] "File": In this article, file refers to various files that can be run in the CAD system and are used to draw, edit, modify, store, and view CAD drawings. Common CAD file formats include, but are not limited to, DWG, DXF, DWT, DWF, DWL, DWS, DWX, MNU, MNC, MNL, MNS, CUI, CUIX, SHX, PAT, LIN, CTB, STB, PLT, PC3, etc.
[0075] This application provides a custom binary incremental protocol format, including header information, data information, etc., to save incremental files in binary form. The file version can be quickly upgraded or rolled back by adding an initial file to an independent incremental file.
[0076] This application restores drawings based on original CAD drawings and incremental files. By reading the types of graphic element operations recorded in the incremental files, graphics elements are added, deleted, and modified on the original drawings, and the restoration process is performed locally.
[0077] Herein, a user ID (also known as a user identifier or a user authentication code) is a unique identifier assigned to an individual within a computer system, network or online platform.
[0078] In this article, a user may be referred to as a user, which refers to a person who uses a computer or network service, usually has a user account and is identified by a user ID. Alternatively, a user may also refer to a computer device used to issue control instructions / signals.
[0079] Example 1
[0080] like Figure 1-3 As shown, the present invention provides a drawing processing method based on incremental technology, comprising:
[0081] S100 obtains a first drawing file;
[0082] S101 performs at least one incremental drawing (also referred to as an incremental drawing operation) on the first drawing file, wherein the incremental drawing is used to draw at least one first editing object A;
[0083] The editing object may be a data object in the drawing file (eg, object, entity, table, system variable, etc.), or the editing object may also refer to auxiliary data (eg, thumbnail, signature, encryption and configuration information, etc.).
[0084] S102 records at least one copy file and at least one incremental file, wherein the at least one copy file includes: a first drawing file; the incremental file includes: header information and data information, and the header information includes: a version number of the corresponding copy file, a version number of the incremental file, and a number of pages; the data information includes: an operation type of the first editing object A (such as deletion, addition, rotation, scaling, etc. performed by the user on the editing object), a data segment, and handle information;
[0085] The header information and the data information are the image metadata; the image metadata is distributed and stored through the header information and the data information, and the header information and the data information are paging-compressed according to the number of pages to form an incremental file.
[0086] During the recording process, one or more copy files may be generated, and one copy file is associated with one or more incremental files.
[0087] For example, in some embodiments, the copy file refers to a file with the same data content as the first drawing file in S101. For example, when the user performs incremental drawing on the first drawing file, a copy file may be generated based on the current first drawing file at regular intervals, wherein the copy file is a copy file of the first drawing file at the current moment.
[0088] S103, in response to a display operation of the user (for example, the user can select a version number of one of the duplicate files or the incremental files to display files with different version numbers), selects the duplicate file and at least one of the incremental files for incremental display; wherein S103 includes:
[0089] S31 searches the drawing database of the copy file through the handle information to see whether there is a second editing object B corresponding to the first editing object A; if yes, execute S32; if no, execute S33;
[0090] S32: acquiring the second editing object B from the drawing database, and generating the first editing object A according to the data information and the second editing object B;
[0091] S33 creates a first editing object A according to the data information;
[0092] S34 mounts the first editing object A obtained in S32 or S33 to the corresponding copy file to complete the incremental display.
[0093] For drawing scenarios involving modifications by multiple parties and with a very high amount of modified data, the present invention proposes a distributed incremental storage technology.
[0094] It should be noted that the distributed incremental storage technology in the present invention performs distribution (or partition) management at least on two levels: 1) in text version management, multiple copy files and associated incremental files are created, and the corresponding relationship between the incremental files and the copy files is used to jointly display the drawings after incremental modifications; wherein the copy files and incremental files will independently store the original data and incremental data; 2) in the incremental files, key information in the metadata (such as the version number of the copy file, the version number of the incremental file, the number of pages, the user's operation type, etc.) is further distributed and stored, which, on the one hand, ensures the accuracy and completeness of the incremental data records, and on the other hand, can efficiently display the final drawings through the gradual reading / analysis of the incremental data.
[0095] Therefore, especially when faced with the storage scenario of drawing files that have been modified multiple times, this distributed incremental storage technology can, on the one hand, reduce the necessary data storage volume while ensuring accurate recording of modification traces; at the same time, this technology for partitioned storage of key data can also display the final drawings more efficiently, reducing the time consumed in the drawing display process (that is, reducing the necessary amount of calculation).
[0096] In some embodiments, when there are multiple copy files, S103 further includes the steps of:
[0097] A copy file that is closest to the incremental file is selected from multiple copy files.
[0098] Preferably, in some embodiments, a segmented storage solution is used in S102 to manage the creation of multiple copy files and multiple incremental files involved.
[0099] For example, S102 includes the following steps:
[0100] S21: when receiving a user's incremental drawing operation on the at least one first editing object A, creating a copy file, and creating an incremental file associated with the current copy file (ie, the current incremental file);
[0101] S22 determines whether the storage index of the current incremental file is greater than a preset storage threshold; wherein the storage index includes one or more of the following: file size, the number of the first editing objects, and file creation time (i.e., the time difference between the file creation time and the current time);
[0102] If (for example, in some embodiments, the creation time of the current incremental file is long, or the amount of modification involved is large and the file size is therefore large), then S23 is executed: a new incremental file is created corresponding to the current copy file, and subsequent incremental data (such as header information and incremental data) is stored in the new incremental file;
[0103] If not, then executing S24: continuing to save the incremental data generated by the drawing process into the copy file;
[0104] And before S23, the step may also include: S25 determines whether the incremental index of at least one incremental file associated with the current copy file is greater than a preset incremental threshold; wherein the incremental index may include one or more of the following: the number of incremental files, or the total file size of multiple incremental files;
[0105] If so (for example, three incremental files have been created for the copy file A1), then S26 is executed: a new copy file is created, and the process returns to S21 again;
[0106] If not, return to S21 or S22, such as continuing to create a new incremental file.
[0107] The file size may refer to a metric used to measure the amount of data contained in the incremental file or the storage space occupied. For example, the file size is usually expressed in a unit of measurement based on bytes.
[0108] That is to say, for this new partition incremental storage technology, the present invention further provides a segmented file creation scheme for partition files. This segmented file creation scheme can more comprehensively display the historical modification records of drawing files, and facilitate users to flexibly perform upgrades and rollbacks with the help of segmented files, that is, it can switch back and forth between different versions more flexibly.
[0109] Moreover, this partitioned incremental storage technology implemented based on segmented file creation only requires local data modification when performing incremental upgrades or rollbacks, and this local data modification is coordinated with the incremental drawing logic used in S103, which can effectively reduce the necessary computing required for upgrades or rollbacks and improve the efficiency of upgrades or rollbacks.
[0110] For example, in some embodiments, the final saved drawing file package is divided into a copy file (dwg) and multiple incremental files (dwi). The copy file is a complete drawing file. In this embodiment, the copy file generation logic is to generate a copy every 4 files, then A1 (copy), A2 (increment), A3 (increment), A4 (increment), A5 (copy), A6 (increment). If A3 rolls back to A2, it is preferred to find the copy closest to A2 (A1 in this embodiment), and upgrade to A2 through A1.
[0111] For example, in some embodiments, A5 (copy) may be a drawing file containing all data of historical incremental drawing.
[0112] It should be noted that, in order to facilitate orderly management of different replica files and incremental files in partition storage, each replica or incremental file has a corresponding version number. In addition, corresponding to different display versions (i.e., the drawing version at a certain stage that the user specifically wants to display on the interface), the replica version number of the corresponding replica file and the incremental version number of the incremental file are associated.
[0113] Similarly, taking the above drawing file package as an example: A1+A2 can be the first display version (its corresponding copy version number is A1, and the corresponding incremental file version number is A2), A1+A2+A3 can be the second display version, A1+A2+A3+A4 can be the third display version, A5 can be the fourth display version, and A6 can be the fifth display version. Among them, under different display versions, the copy version number and incremental version number information are recorded accordingly.
[0114] For example, in some embodiments, the method further comprises:
[0115] (1) obtaining a switching operation signal of the user and a display version number I (or display version) of a currently displayed drawing file (for example, the first drawing file of different versions);
[0116] (2) acquiring the switching version information and display version information of the corresponding switching version number II according to the switching operation signal and the display version number I (such as the first or second display version, etc.); wherein:
[0117] The switching version information of the version that the user wishes to switch to includes: a first incremental version number of an incremental file associated with the current switching version;
[0118] The displayed version information of the version displayed on the current interface includes: the second copy version number of the currently displayed copy file, and the second incremental version number of the incremental file corresponding to the displayed version;
[0119] (3) obtaining a third replica version number of a replica file that is adjacent to the second replica version number along the switching direction (such as an upgrade or rollback indication given in the switching operation signal);
[0120] (4) calculating a first amount of data required to be processed for updating to the switch version through a first update path, wherein the first update path refers to directly updating from the third replica version number to the first incremental version number, and calculating a second amount of data required to be processed for updating to the switch version through a second update path, wherein the second update path refers to directly updating from the second incremental version number to the first incremental version number;
[0121] (5) Selecting an update path corresponding to the smallest one of the first data amount and the second data amount as a recommended update path.
[0122] In some embodiments, the data amount may be an estimated data amount used to complete the switching display calculation.
[0123] Alternatively, in other embodiments, the data volume may refer to data of incremental files involved in upgrading or rolling back.
[0124] Alternatively, in other embodiments, the data volume may refer to the total file size of the incremental files involved in the upgrade or rollback calculation.
[0125] It can be understood that the expression of the incremental version number or the current version number used in this embodiment is used to refer to the display status.
[0126] The selection of the update path is described below through a specific embodiment:
[0127] In this embodiment, during the modification process, the user generates multiple files such as A1 (copy), A2 (increment), A3 (increment), A4 (increment), A5 (copy), A6 (increment), A7 (increment), A8 (increment), and A9 (copy).
[0128] Among them, A1+A2 is the first display version, A1+A2+A3 is the second display version, A1+A2+A3+A4 is the third display version (or A5 is the third display version), A5+A6 is the fourth display version, A5+A6+A7 is the fifth display version, A5+A6+A7+A8 is the sixth display version...
[0129] Switching Example 1:
[0130] The current interface displays the fourth display version (A5+A6, equivalent to the current display version), and the user switching operation indicates switching from the fourth display version (equivalent to rolling back) to the third display version (A1+A2+A3+A4, equivalent to the switching version, which is referred to as A4 in Example 1);
[0131] At this time, the copy file adjacent to A5 in the fourth display version along the switching direction (rollback) is A1 (corresponding to the third copy version number);
[0132] If you upgrade from A1 to A4 (equivalent to the first update path), you need to complete the drawing of the new content of the incremental data in A2, A3, and A4 based on A1; if you roll back from A6 to A4 (equivalent to the second update path), you can undo the incremental data in A6; at this time, the amount of calculation required for undo is less than the amount of calculation required for drawing the new content, so it is recommended that users use the undo (that is, the second update path) method to update.
[0133] Switch Example 2:
[0134] The current interface displays the fourth display version (A5+A6, equivalent to the current display version), and the user switching operation indicates switching from the fourth display version to the first display version (A1+A2, equivalent to the switching version, which is referred to as A2 in Example 2);
[0135] At this time, the copy file adjacent to A5 in the fourth display version along the fallback direction is A1 (corresponding to the third copy version number);
[0136] If you upgrade from A1 to A2 (equivalent to the first update path), you need to complete the drawing of the new content of the incremental data in A2 based on A1; if you directly roll back from A6 to A2 (equivalent to the second update path), you need to undo the incremental data in A3, A4, and A6; at this time, the amount of calculation required for undoing is greater than the amount of calculation required for drawing the new content, so it is recommended that users use the upgrade (that is, the first update path) method to update.
[0137] In this embodiment, the switching direction refers to the switching instruction given in the user's switching operation instruction. For example, when it is necessary to upgrade from A1 to A2, from the user's perspective, the switching direction is upgrading. The update path refers to the underlying update logic in the drawing. For example, in order to quickly display A2, it can be updated by incrementally drawing A2 on A1, or by rolling back A3 on the A1+A2+A3 file.
[0138] In some embodiments, the steps include:
[0139] S105: displaying one of the copy files, wherein the copy file is associated with at least one incremental file;
[0140] S106 performs incremental drawing on the copy file, and determines whether the incremental drawing conflicts with the corresponding incremental file; if so, executes S107;
[0141] S107 sends a prompt signal to the user.
[0142] For example, in some embodiments, the original drawing is A1, and now A1 and the incremental data B1 generated thereon are sent to the engineer. At this time, the engineer only focuses on A1, and does not incrementally display the content of B1. Therefore, when the engineer performs incremental drawing, the drawing content may conflict with the incremental data B1.
[0143] For example, in some embodiments, a conflict may be that two or more physical objects are drawn repeatedly or overlapped in the same area. For example, in a building model, when it is detected that an engineer adds doors and windows to a location where doors and windows have already been drawn, the engineer is prompted that a conflict may exist. For another example, when it is detected that an engineer opens a hole at a location where a drainage pipe or circuit line is set, the engineer also needs to be prompted that a conflict may exist.
[0144] It is understandable that the conflict detection function in existing software may be used to perform conflict judgment, and the present invention does not limit this.
[0145] And when a conflict is detected, it can be coordinated in the following ways:
[0146] The first one is applied remotely (B1), and when this solution is used, the local changes will be overwritten;
[0147] The second is applied locally (A1), and B1 is discarded when this solution is used;
[0148] The third type requires the user to compare the contents of A1 and B1 to resolve it.
[0149] In some embodiments, the operation type includes one or more of the following: adding, deleting, and modifying.
[0150] See also Figure 3 As shown, an exemplary method of the present application is described:
[0151] During the CAD drawing process, new or modified element data is added based on the basic version (equivalent to the first drawing file), triggering the incremental processing mechanism to record the element data. The element data is divided into multiple parts for saving. The header information saves the version, file status, number of pages, etc. of this incremental version; the data information saves the specific operation type, data segment, handle and other information. Subsequently, the incremental drawing saves the recorded element data, saves the initial and final state data of the element, and generates an incremental file after paging and compressing the data. Finally, the incremental drawing result is displayed through incremental merging.
[0152] Furthermore, when the drawing version is upgraded, the drawing version is incrementally upgraded from V1 (such as the first drawing file) to V2 (reference Figure 3, such as the second drawing file). After opening the original drawing (such as the first drawing file), read the initial and final states of the data from the upgrade document for upgrade or rollback processing, and add, delete, and modify entities according to the entity operation type. When performing an incremental upgrade, it is necessary to instantiate the entity information read from the incremental file and then mount it in the BlockTableRecord under V1. The handle information of the entity is saved in the incremental file, and the handle information is used to query whether the entity exists in the drawing database. If so, the entity object is returned, otherwise it is created. After this process is completed, it also indicates that there is an object associated with the handle in the drawing database. Then, the corresponding entity object is constructed by obtaining the entity type information in the incremental file, and the object is bound to the created entity object. A usable entity object is constructed, thus completing the incremental upgrade process.
[0153] Binding is to associate the same data object based on the object handle. For example, the original data of entity C is saved in the dwg file, the first modification is saved in the first dwi file, and the second modification is saved in the second dwi file. When we perform incremental recovery, we need to correspond these three copies of data to the original entity object C.
[0154] Preferably, in order to process large drawing files when the drawing files are stored, the stored data needs to be divided into multiple smaller parts (called pages), and each page needs to be compressed. For example, when saving incremental files, data is obtained from the linked list of the incremental entity and written to the page. When the amount of data reaches the storage size of the defined page, it is compressed and written to the file stream. After the stream is written, the above process is repeated until all the incremental lists of the records are processed.
[0155] It is worth noting that, different from the existing timeline management method (such as patent application CN110232047A), the present invention proposes a new incremental technology storage method.
[0156] In the existing timeline management method, a data summary file (including a first data item index table and first data summary information) is used to manage the incremental database. Specifically, the prior art adopts a "global timeline" approach, that is, each restore point (including a baseline restore point) contains a complete set of related CAD drawings (for example, architectural drawings, water supply and drainage drawings, electrical drawings, HVAC drawings, etc., all related to an engineering project). In other words, the prior art establishes a timeline for the entire set of CAD drawings, rather than establishing a separate timeline for each CAD drawing - the advantage of such a global timeline is that CAD users can obtain a full set of CAD drawings related to the project at each restore point, which is conducive to the overall management of CAD drawings of multiple people, multiple professions, and multiple versions, and avoids confusion.
[0157] In the present invention, the distributed incremental storage technology can be used to directly record the modification records at different modification stages relatively completely, and this distributed incremental storage technology can effectively reduce the pressure of data recording. Therefore, in the present invention, there is no need to create an additional data summary file (full-text snapshot method), which reduces the calculation and storage of unnecessary information.
[0158] Example 2
[0159] The present invention also provides a drawing processing system based on incremental technology, comprising:
[0160] A drawing acquisition module is configured to acquire a first drawing file;
[0161] A drawing module, configured to perform at least one incremental drawing on the first drawing file, wherein the incremental drawing is used to draw at least one first editing object A;
[0162] The storage module is configured to record at least one copy file and at least one incremental file, wherein the at least one copy file includes: a first drawing file; the incremental file includes: header information and data information, and the header information includes: a version number of the corresponding copy file, a version number of the incremental file, and a number of pages; the data information includes: an operation type, a data segment, and handle information of the first editing object A;
[0163] An incremental display module is configured to select the copy file and at least one incremental file for incremental display in response to a display operation of a user; wherein the incremental display module comprises:
[0164] A retrieval unit configured to retrieve, through the handle information, whether there is a second editing object B corresponding to the first editing object A in the drawing database of the copy file;
[0165] A first creating unit is configured to obtain the second editing object B from a drawing database, and generate the first editing object A according to the data information and the second editing object B;
[0166] A second creating unit is configured to create a first editing object A according to the data information when the second editing object B is not retrieved;
[0167] The display unit is configured to mount the first editing object A into the corresponding copy file to complete incremental display.
[0168] In some embodiments, when there are multiple copy files, the system further includes:
[0169] A signal acquisition module, configured to acquire a user's switching operation signal and a display version number I of a currently displayed drawing file;
[0170] The first data acquisition module is configured to acquire the corresponding switching version information and display version information according to the switching operation signal and the display version number I, respectively; wherein the switching version information includes: the first incremental version number of the incremental file associated with the current switching version; the display version information includes: the second copy version number of the copy file currently displayed, and the second incremental version number of the incremental file corresponding to the display version;
[0171] A second data acquisition module is configured to acquire a third copy version number of the copy file adjacent to the second copy version number along the switching direction indicated in the switching operation signal;
[0172] an update calculation module, configured to calculate a first amount of data required to be processed for updating to a switching version through a first update path, wherein the first update path refers to updating from the third replica version number to the first incremental version number; and calculate a second amount of data required to be processed for updating to the switching version through a second update path, wherein the second update path refers to updating from the second incremental version number to the first incremental version number;
[0173] The update recommendation module is configured to select an update path corresponding to a smallest one of the first data amount and the second data amount as a recommended update path.
[0174] In some embodiments, the storage module includes:
[0175] A first file creation unit is configured to create a copy file and create an incremental file associated with the current copy file;
[0176] A first judgment unit is configured to judge whether a storage index of a current incremental file is greater than a preset storage threshold; wherein the storage index includes one or more of the following: file size, the number of the first editing objects, and file creation time;
[0177] If the judgment result of the first judgment unit is no, the steps are executed: storing the data related to the current incremental drawing into the current incremental file;
[0178] If the judgment result of the first judgment unit is yes, then enter the second judgment unit, which is configured to judge whether the incremental index of at least one incremental file associated with the current copy file is greater than a preset incremental threshold; wherein the incremental index includes one or more of the following: the number of the incremental files, or the total file size of multiple incremental files;
[0179] If the judgment result of the second judgment unit is no, the second file creation unit is entered, and the second file creation unit is configured to create a new incremental file corresponding to the current copy file, and store the data related to the current incremental drawing in the new incremental file.
[0180] On the one hand, the present invention further provides an electronic device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the method described in any embodiment when executing the computer program.
[0181] In one aspect, the present invention further provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the method described in any of the above embodiments is implemented.
[0182] The present invention also provides a computer program product, which is tangibly stored on a non-transitory computer-readable medium and includes machine-executable instructions for executing the method of any embodiment of the present invention.
[0183] Example 3
[0184] In order to solve the problem of designer tracing after multiple revisions, the present invention also provides a multi-layer storage path based on dictionary technology to ensure the stability and reliability of personnel tracing through limited information records.
[0185] See also Figure 4-Figure 5 As shown, the present invention provides a user tracing method, comprising:
[0186] S200 obtains the drawing file;
[0187] S201 defines at least one first data structure layer in a naming dictionary of the drawing file, the first data structure layer being a sub-dictionary, wherein the drawing file includes: at least one version of the file;
[0188] For example, in some embodiments, as a user performs multiple incremental drawings on a drawing file, different versions of the file (such as copy files or incremental files) may be generated at different time points.
[0189] For example, in some embodiments, at regular intervals, a corresponding copy file is generated based on the current drawing file, and the version number of the corresponding copy file is recorded.
[0190] S202 associates at least one of the first data structure layers with at least one corresponding file; preferably, the first data structure layer is named by the version number of the file, and the file includes at least one graphic element;
[0191] S203: detecting an incremental drawing operation of a user on at least one of the primitives in the file corresponding to the current version number, and recording the current user ID and the primitive;
[0192] S204: further define at least one second data structure layer in the first data structure layer, wherein the second data structure layer is used to store an array recording a mapping relationship between the user ID and the graphic element;
[0193] S205 defines at least one array for at least one of the graphic elements in the second data structure layer, and the array that records the mapping relationship between the user ID and the graphic element stores a first node and a second node in sequence, wherein the first node is used to record the user ID, and the second node is used to record the handle information of the graphic element.
[0194] In some embodiments, it also includes:
[0195] S205: when it is detected that the version number triggering the incremental drawing operation is switched, naming at least one new first data structure layer using the current version number.
[0196] In some embodiments, it also includes:
[0197] S206: obtaining a search instruction issued by the user, wherein the search instruction includes: the version number and the image element information;
[0198] S207 searches for the corresponding user ID from the naming dictionary according to the search instruction.
[0199] In some embodiments, a primitive refers to an entity, and correspondingly, the primitive information may be the name of the primitive, the handle information of the primitive, and the like.
[0200] For example, the corresponding user ID can be quickly retrieved from the naming dictionary using the version number and the name of the entity.
[0201] In some embodiments, a second data structure layer may be created for one graphic element. Correspondingly, the graphic element information may also be a storage address, name or number of the second data structure layer for searching for information of the second data structure layer.
[0202] In this article, the naming dictionary (also called the named object dictionary) is used to store global information in drawings and to store various non-graphic objects related to the drawing database, including layers, linear, text styles, etc. Sub-dictionaries are components of the naming dictionary and are used to further subdivide and organize different categories of named objects. Named objects are non-graphic objects with unique names. They are stored in the drawing database and are used to define and manage specific elements in the drawing.
[0203] For example, CAD creates a dictionary called a naming dictionary for the drawing database when a new drawing file or a new entity is created. The naming dictionary can be thought of as a "table of contents" for all dictionaries related to the database. Users can create new dictionaries in the naming object dictionary and then add new database objects (e.g., entities) to it.
[0204] Specifically, the user ID storage and search process provided by the present invention includes:
[0205] A sub-dictionary is defined in the naming dictionary of the CAD drawing. In the sub-dictionary, the version ID (equivalent to the version number) is used as the sub-item name, and the relationship information between the user and all entities (equivalent to the primitives) processed by the user is saved under this item. The data structure adopted is as follows: This structure can clearly indicate which entities the user has modified in the i-th version. When opening the CAD drawing, the current user information (such as the user ID) is obtained. When parsing the naming dictionary area of the drawing, the mapping relationship between the primitives in the drawing and the user ID in the current version is obtained. The user ID is written into the handle information of the primitive. When the drawing version is switched, the mapping relationship between the primitive and the user is re-imported and written into the handle information of the primitive. When the user clicks on the primitive, the user information saved in the primitive is obtained for display. It can be displayed in the form of custom attributes (such as text boxes) or in other visible ways. When the user operates a primitive, the user ID information is written to the primitive's handle information. When saving, a new version sub-item is added to the traceability sub-dictionary, and the current user ID is appended as the first node of the array. At the same time, the modified primitive is appended as a new node after the user node, and then the sub-dictionary data is written to the drawing file.
[0206] This embodiment proposes a method for associating and storing user IDs based on limited dimensions such as version numbers and handle information, which can not only improve the data serialization speed, but also avoid array re-arrangement operations caused by entity deletion.
[0207] After application testing, the applicant found that this method of associating and storing user IDs based on limited dimensions such as version numbers and handle information can basically meet the needs of recording personnel information involved in major modifications during the engineering drawing stage. At the same time, the associative storage method adopted is conducive to accurate traceability under the collaboration of multiple parties, and it will not generate excessive data calculations during the data storage process, so it will not excessively consume the performance of the CAD software and interfere with the user's normal drawing work.
[0208] In some embodiments, the version number is the version number of the copy file, or the version number of the incremental file. Correspondingly, S203 includes the steps of:
[0209] In response to the user's incremental drawing operation, at least one copy file and at least one incremental file are recorded; wherein the copy file is a copy file of the first drawing file at a certain moment; the incremental file includes: header information and data information, and the header information includes: the version number of the corresponding copy file, the version number of the incremental file, and the number of pages; the data information includes: the operation type, data segment and handle information of the primitive.
[0210] In some embodiments, S203 further includes the steps of:
[0211] S21 creates a copy file and creates an incremental file associated with the current copy file;
[0212] S22 determines whether the storage index of the current incremental file is greater than a preset storage threshold; wherein the storage index includes one or more of the following: file size, the number of primitives (or editing objects), and file creation time;
[0213] If the result of S22 is no, then execute step S24; S24 stores the data related to the current incremental drawing into the current incremental file;
[0214] If the result of S22 is yes, then execute step S25; S25 determines whether the incremental index of at least one incremental file associated with the current copy file is greater than a preset incremental threshold; wherein the incremental index may include one or more of the following: the number of incremental files, or the total file size of multiple incremental files;
[0215] If the result of S25 is no, then execute step S23; S23 creates a new incremental file corresponding to the current copy file, and stores the data related to the current incremental drawing in the new incremental file.
[0216] It should be noted that, especially when it involves multi-party collaboration, the amount of data in the entire CAD drawing is very large. Therefore, when modifying the data of the CAD file (such as incremental drawing), once the modification is large, it will consume a lot of software performance. At this time, if the user ID of each element (that is, the designer involved in the modification) is recorded one by one, it is also very easy to cause problems such as software jamming. However, if the modified data is not recorded more comprehensively, it will be very unfavorable for the subsequent traceability analysis of the drawings.
[0217] In this regard, the applicant also combines the user ID tracing method proposed in the present invention with the incremental rendering technology, for example, using the file version generated in the incremental rendering technology as a trigger condition for creating a sub-dictionary (for example, creating a sub-dictionary for a newly added incremental file). Similarly, through actual testing, the applicant found that this coordination method can effectively coordinate the data record of the modification of the primitives under the massive version files.
[0218] Moreover, the use of the above-mentioned multi-layer data structure to associate and store version numbers, graphics elements and other dimensions with user IDs is more in line with engineers' drawing analysis ideas in the actual process. Therefore, on the basis of recording the modification history as completely as possible (that is, recording the designer's ID from the graphics element dimension), it is also convenient for engineers to quickly find and locate issues of concern.
[0219] Example 4
[0220] The present invention also provides a user tracing system, comprising:
[0221] Drawing acquisition module, used to acquire drawing files;
[0222] A first definition module is used to define at least one first data structure layer in a naming dictionary of the drawing file, wherein the first data structure layer is a sub-dictionary, wherein the drawing file includes: at least one version of the file;
[0223] a naming module, configured to associate at least one of the first data structure layers with at least one corresponding file, wherein the first data structure layer is named by a version number of the file, and the file includes at least one primitive;
[0224] A detection module, used to detect an incremental drawing operation performed by a user on at least one of the primitives in the file corresponding to the current version number, and record the current user ID and the primitive;
[0225] A second definition module, used to further define at least one second data structure layer in the first data structure layer, wherein the second data structure layer is used to store an array recording a mapping relationship between the user ID and the graphic element;
[0226] The third definition module is used to define at least one array for at least one of the graphic elements in the second data structure layer, and the array stores a first node and a second node in sequence. The first node is used to record the user ID, and the second node is used to record the graphic element handle of the graphic element.
[0227] In some embodiments, it also includes:
[0228] The second detection module is configured to name at least one new first data structure layer using the current version number when detecting that a version number triggering the incremental drawing operation is switched.
[0229] In some embodiments, it also includes:
[0230] The search module is used to obtain a search instruction issued by a user, wherein the search instruction includes: the version number and the image element information; and search the corresponding user ID from the naming dictionary according to the search instruction.
[0231] In CAD drawings, the relationship between version ID, user ID and graphics is stored through a custom sub-dictionary. When the CAD drawing is opened, the relevant user information can be quickly written for each graphics element by parsing the sub-dictionary. When it is necessary to trace the graphics element modification record, the designer of each version of each graphics element can be quickly and accurately located, so that the problem can be quickly solved and the responsibility for the problem can be clarified.
[0232] Moreover, this data storage mode combined with dictionary technology, on the one hand, has a relatively limited amount of calculation involved in the user ID recording process, while also being able to record it more comprehensively.
[0233] It should be noted that, in this article, the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the sentence "comprises a ..." does not exclude the existence of other identical elements in the process, method, article or device including the element.
[0234] Through the description of the above implementation methods, those skilled in the art can clearly understand that the above-mentioned embodiment methods can be implemented by means of software plus a necessary general hardware platform, and of course by hardware, but in many cases the former is a better implementation method. Based on such an understanding, the technical solution of the present invention, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product, which is stored in a storage medium (such as ROM / RAM, a magnetic disk, or an optical disk), and includes a number of instructions for a computer terminal (which can be a mobile phone, a computer, a server, or a network device, etc.) to execute the methods described in each embodiment of the present invention.
[0235] The embodiments of the present invention are described above in conjunction with the accompanying drawings, but the present invention is not limited to the above-mentioned specific implementation modes, which are merely illustrative rather than restrictive. Under the guidance of the present invention, ordinary technicians in this field can also make many forms without departing from the scope of protection of the present invention and the claims, all of which are within the protection of the present invention.
Claims
1. A user tracing method, characterized in that: include: S200 obtains the drawing file; S201 defines at least one first data structure layer in a naming dictionary of the drawing file, the first data structure layer being a sub-dictionary, wherein the drawing file includes: at least one version of the file; S202 associates at least one of the first data structure layers with at least one corresponding file, wherein the first data structure layer is named by a version number of the file, and the file includes at least one graphic element; S203 detects the user's incremental drawing operation on at least one of the primitives in the file corresponding to the current version number, and records the current user ID and the primitive; the version number is the version number of the copy file, or the version number of the incremental file. Correspondingly, S203 includes the steps of: In response to the incremental drawing operation issued by the user to the drawing file, at least one copy file and at least one incremental file are recorded; the copy file includes at least one copy file of the drawing file at a first moment, and at least one incremental file includes incremental data generated from the first moment to a second moment, and the incremental file correspondingly includes: header information and data information, and the header information includes: the version number of the corresponding copy file, the version number of the incremental file, and the number of pages; the data information includes: the operation type, data segment and handle information of the primitive; S204: further define at least one second data structure layer in the first data structure layer, wherein the second data structure layer is used to store an array recording a mapping relationship between the user ID and the graphic element; S205 defines at least one array for at least one of the graphic elements in the second data structure layer, wherein the array stores a first node and a second node in sequence, wherein the first node is used to record the user ID, and the second node is used to record the handle information of the graphic element.
2. A user tracing method according to claim 1, characterized in that: Also includes: S206: When it is detected that the version number of the file triggering the incremental drawing operation is switched, at least one new first data structure layer is named using the current version number.
3. A user tracing method according to claim 1, characterized in that: Also includes: S207: obtaining a search instruction issued by the user, wherein the search instruction includes: the version number and the image element information; S208 searches for the corresponding user ID from the naming dictionary according to the search instruction.
4. A user tracing method according to claim 3, characterized in that: S203 further includes the steps of: S21 creates a copy file and creates an incremental file associated with the current copy file; S22 determines whether the storage index of the current incremental file is greater than a preset storage threshold; wherein the storage index includes one or more of the following: file size, number of primitives, and file creation time; If the result of S22 is no, then executing step S24; S24 stores the data related to the current incremental drawing operation into the current incremental file; If the result of S22 is yes, execute step S25; S25 determines whether the incremental index of at least one incremental file associated with the current copy file is greater than a preset incremental threshold; wherein the incremental index includes one or more of the following: the number of incremental files, or the total file size of multiple incremental files; If the result of S25 is no, then execute step S23; S23 creates a new incremental file corresponding to the current copy file, and stores the data related to the current incremental drawing operation in the new incremental file.
5. A user tracing system, characterized in that: include: Drawing acquisition module, used to acquire drawing files; A first definition module is used to define at least one first data structure layer in a naming dictionary of the drawing file, wherein the first data structure layer is a sub-dictionary, wherein the drawing file includes: at least one version of the file; a naming module, configured to associate at least one of the first data structure layers with at least one corresponding file, wherein the first data structure layer is named by a version number of the file, and the file includes at least one graphic element; The first detection module is used to detect the incremental drawing operation of the user on at least one of the primitives in the file corresponding to the current version number, and record the current user ID and the primitive; the version number is the version number of the copy file or the version number of the incremental file. Correspondingly, the first detection module is used to perform the following steps: In response to the incremental drawing operation issued by the user to the drawing file, at least one copy file and at least one incremental file are recorded; the copy file includes at least one copy file of the drawing file at a first moment, and at least one incremental file includes incremental data generated from the first moment to a second moment, and the incremental file correspondingly includes: header information and data information, and the header information includes: the version number of the corresponding copy file, the version number of the incremental file, and the number of pages; the data information includes: the operation type, data segment and handle information of the primitive; A second definition module, used to further define at least one second data structure layer in the first data structure layer, wherein the second data structure layer is used to store an array recording a mapping relationship between the user ID and the graphic element; The third definition module is used to define at least one array for at least one of the graphic elements in the second data structure layer, and the array stores a first node and a second node in sequence. The first node is used to record the user ID, and the second node is used to record the handle information of the graphic element.
6. A user tracing system according to claim 5, characterized in that: Also includes: The second detection module is configured to name at least one new first data structure layer using the current version number when detecting that a version number of the file triggering the incremental drawing operation is switched.
7. An electronic device, characterized in that: The method comprises a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the method according to any one of claims 1 to 4 when executing the computer program.
8. A computer-readable storage medium storing a computer program, characterized in that: When the computer program is executed by a processor, the method according to any one of claims 1 to 4 is implemented.
9. A computer program product tangibly stored on a non-transitory computer readable medium and comprising machine executable instructions, characterized in that, The machine executable instructions are used to perform the method according to any one of claims 1 to 4.
Citation Information
Patent Citations
Timeline management system and method for CAD file, computer readable storage medium and computer terminal
CN110232047A
Document authentication traceability method and device
CN112286881A