Claims
- 1. A method for editing a printed circuit board design, comprising:
(a) receiving design data at each of first and second clients, wherein:
the design data includes graphically displayable information regarding a pattern of electronic components and connections between those components for at least a portion of the printed circuit board design, the design data includes data corresponding to a shared area, and the shared area is simultaneously editable by both of the clients; (b) receiving a user instruction at the first client to protect a portion of the shared area from editing by the second client; (c) transmitting an edit request from the second client regarding the protected portion; and (d) receiving data at the second client reflecting rejection of the edit request.
- 2. The method of claim 1, further comprising:
(e) receiving at the second client data indicating the presence of the protected portion.
- 3. The method of claim 1, further comprising:
(e) detecting user actions at each of the clients during an editing session, the user actions pertaining to portions of the shared area not within the protected portion; (f) transmitting, during the editing session, edit requests corresponding to the actions detected in step (e); (g) receiving synchronization data messages at the clients during the editing session, the synchronization data permitting update of displays at the first and second clients to reflect application to the shared area of at least one of the transmitted edit requests which did not violate a design rule; and (h) receiving rejection notification data at one of the clients during the editing session, wherein:
the client receiving the rejection notification data transmitted, in step (f), an edit request violating a design rule, and the rejection notification data indicates non-application to the shared area of the edit request violating the design rule.
- 4. The method of claim 1, further comprising:
(e) detecting, subsequent to step (b), multiple user actions made through the first client including edits to the protected portion of the shared area; and (f) incorporating, into a copy of the design data stored at the first client, local edits corresponding to the user actions detected in step (e), wherein:
edit requests corresponding to the local edits are not transmitted from the first client prior to receipt of a specific instruction, and the specific instruction is independent of the actions detected in step (e).
- 5. The method of claim 4, further comprising:
(g) receiving at the first client an instruction to transmit an edit request corresponding to one or more of the local edits; and (h) transmitting an edit request in response to the instruction received in step (g).
- 6. The method of claim 5, wherein steps (g) and (h) further comprise:
receiving an instruction to transmit a first edit request corresponding to one of the local edits,
transmitting the first edit request, receiving an instruction to transmit a second edit request corresponding to another of the local edits, and transmitting the second edit request.
- 7. The method of claim 5, wherein steps (g) and (h) further comprise:
receiving an instruction to transmit a single edit request corresponding to plural local edits,
transmitting the single edit request.
- 8. The method of claim 5, wherein steps (g) and (h) further comprise:
receiving a single instruction to transmit plural edit requests corresponding to plural local edits,
transmitting, in response to the single instruction, plural edit requests corresponding to the plural local edits.
- 9. The method of claim 4, further comprising:
(g) saving the design data copy with the local edits incorporated in step (f); (h) repeating steps (e) and (f) for a second copy of the design data; and (i) saving, without discarding the copy saved in step (g), the second design data copy with the local edits incorporated in step (h).
- 10. The method of claim 9, further comprising:
(j) receiving at the first client a selection of the copy saved in step (g) or the copy saved in step (i); and (k) transmitting edit requests corresponding to the copy selected in step 0).
- 11. The method of claim 4, wherein step (b) comprises receiving an instruction to position a protection border such that a portion of a design object is inside the protection border and a portion of the design object is outside the protection border, and further comprising:
(g) automatically expanding the protected portion to include the entire design object.
- 12. A method for editing a printed circuit board design, comprising:
(a) receiving design data at a first client, wherein:
the design data includes graphically displayable information regarding a pattern of electronic components and connections between those components for at least a portion of the printed circuit board design, the design data includes data corresponding to a shared area, and the shared area is simultaneously editable by the first client and one or more other clients; (b) receiving a user instruction at the first client to protect a portion of the shared area from editing by the one or more other clients; and (c) transmitting, in response to the instruction received in step (b) and for broadcast to the one or more other clients, a protection border reserving the protected portion of the shared area for the first client.
- 13. The method of claim 12, further comprising:
(d) receiving, while the protected portion of the shared area is reserved for the first client, synchronization data messages permitting update of a first client display to reflect application to a non-protected portion of the shared area of at least one edit request from one of the one or more other clients, said applied edit request not violating a design rule.
- 14. The method of claim 12, further comprising:
(d) detecting, subsequent to step (b), multiple user actions made through the first client including edits to the protected portion of the shared area; and (e) incorporating, into a local copy of the design data stored at the first client, local edits corresponding to the user actions detected in step (d), wherein:
edit requests seeking incorporation of the local edits into a master design database are not transmitted from the first client prior to receipt of a specific instruction, and the specific instruction is independent of the actions detected in step (d).
- 15. The method of claim 14, further comprising:
(f) receiving at the first client one or more instructions to transmit one or more edit requests corresponding to one or more of the local edits; and (g) transmitting one or more edit requests in response to the one or more instructions received in step (f).
- 16. The method of claim 14, further comprising:
(f) saving the design data copy with the local edits incorporated in step (e); (g) repeating steps (d) and (e) for a second copy of the design data; and (h) saving, without discarding the copy saved in step (f), the second design data copy with the local edits incorporated in step (g).
- 17. The method of claim 16, further comprising:
(i) receiving at the first client a selection of the copy saved in step (f) or the copy saved in step (h); and (j) transmitting one or more edit requests corresponding to the copy selected in step (i).
- 18. The method of claim 12, wherein step (b) comprises receiving an instruction to position a protection border such that a portion of a design object is inside the protection border and a portion of the design object is outside the protection border, and further comprising:
(d) automatically expanding the protected portion to include the entire design object.
- 19. A method for editing design data for a printed circuit board, comprising:
(a) transmitting the design data to each of first and second clients, wherein:
the design data includes graphically displayable information regarding a pattern of electronic components and connections between those components for at least a portion of the design, the design data includes data corresponding to at least a portion of a shared area of the design, and the shared area is simultaneously editable by both of the clients; (b) receiving from the first client a protection border reserving a protected portion of the shared area for the first client; (c) transmitting the protection border to the second client for display thereon; and (d) preventing the second client from editing parts of the shared area within the protected portion.
- 20. The method of claim 19, further comprising:
(e) receiving a request from the second client to edit a part of the shared area within the protected portion; and (f) transmitting notification to the second client of rejection of the edit request received in step (e).
- 21. The method of claim 19, further comprising:
(e) receiving a request from the second client to edit a part of the shared area not within the protected portion; and (f) transmitting synchronization data to the first client, said synchronization data permitting update of a first client display to reflect application to the shared area of the edit request received in step (e).
- 22. The method of claim 19, further comprising:
(e) receiving from the first client one or more requests to edit parts of the shared area within the protected portion; and (f) applying to the protected portion the one or more edit requests received in step (e).
- 23. A machine-readable medium having stored thereon data representing sequences of instructions which, when executed by a processor, cause the processor to perform steps of method for editing a printed circuit board design, the steps comprising:
(a) receiving design data at each of first and second clients, wherein:
the design data includes graphically displayable information regarding a pattern of electronic components and connections between those components for at least a portion of the printed circuit board design, the design data includes data corresponding to a shared area, and the shared area is simultaneously editable by both of the clients; (b) receiving a user instruction at the first client to protect a portion of the shared area from editing by the second client; (c) transmitting an edit request from the second client regarding the protected portion; and (d) receiving data at the second client reflecting rejection of the edit request.
- 24. The machine-readable medium of claim 23, comprising further instructions for performing steps comprising:
(e) receiving at the second client data indicating the presence of the protected portion.
- 25. The machine-readable medium of claim 23, comprising further instructions for performing steps comprising:
(e) detecting user actions at each of the clients during an editing session, the user actions pertaining to portions of the shared area not within the protected portion; (f) transmitting, during the editing session, edit requests corresponding to the actions detected in step (e); (g) receiving synchronization data messages at the clients during the editing session, the synchronization data permitting update of displays at the first and second clients to reflect application to the shared area of at least one of the transmitted edit requests which did not violate a design rule; and (h) receiving rejection notification data at one of the clients during the editing session, wherein:
the client receiving the rejection notification data transmitted, in step (f), an edit request violating a design rule, and the rejection notification data indicates non-application to the shared area of the edit request violating the design rule.
- 26. The machine-readable medium of claim 23, comprising further instructions for performing steps comprising:
(e) detecting, subsequent to step (b), multiple user actions made through the first client including edits to the protected portion of the shared area; and (f) incorporating, into a copy of the design data stored at the first client, local edits corresponding to the user actions detected in step (e), wherein:
edit requests corresponding to the local edits are not transmitted from the first client prior to receipt of a specific instruction, and the specific instruction is independent of the actions detected in step (e).
- 27. The machine-readable medium of claim 26, comprising further instructions for performing steps comprising:
(g) receiving at the first client an instruction to transmit an edit request corresponding to one or more of the local edits; and (h) transmitting an edit request in response to the instruction received in step (g).
- 28. The machine-readable medium of claim 27, wherein steps (g) and (h) further comprise:
receiving an instruction to transmit a first edit request corresponding to one of the local edits, transmitting the first edit request, receiving an instruction to transmit a second edit request corresponding to another of the local edits, and transmitting the second edit request.
- 29. The machine-readable medium of claim 27, wherein steps (g) and (h) further comprise:
receiving an instruction to transmit a single edit request corresponding to plural local edits, transmitting the single edit request.
- 30. The machine-readable medium of claim 27, wherein steps (g) and (h) further comprise:
receiving a single instruction to transmit plural edit requests corresponding to plural local edits, transmitting, in response to the single instruction, plural edit requests corresponding to the plural local edits.
- 31. The machine-readable medium of claim 26, comprising further instructions for performing steps comprising:
(g) saving the design data copy with the local edits incorporated in step (f); (h) repeating steps (e) and (f) for a second copy of the design data; and (i) saving, without discarding the copy saved in step (g), the second design data copy with the local edits incorporated in step (h).
- 32. The machine-readable medium of claim 31, comprising further instructions for performing steps comprising:
(j) receiving at the first client a selection of the copy saved in step (g) or the copy saved in step (i); and (k) transmitting edit requests corresponding to the copy selected in step (j).
- 33. The machine-readable medium of claim 26, wherein step (b) comprises receiving an instruction to position a protection border such that a portion of a design object is inside the protection border and a portion of the design object is outside the protection border, and comprising further instructions for performing steps comprising:
(g) automatically expanding the protected portion to include the entire design object.
- 34. A machine-readable medium having stored thereon data representing sequences of instructions which, when executed by a processor, cause the processor to perform steps of method for editing a printed circuit board design, the steps comprising:
(a) receiving design data at a first client, wherein:
the design data includes graphically displayable information regarding a pattern of electronic components and connections between those components for at least a portion of the printed circuit board design, the design data includes data corresponding to a shared area, and the shared area is simultaneously editable by the first client and one or more other clients; (b) receiving a user instruction at the first client to protect a portion of the shared area from editing by the one or more other clients; and (c) transmitting, in response to the instruction received in step (b) and for broadcast to the one or more other clients, a protection border reserving the protected portion of the shared area for the first client.
- 35. The machine-readable medium of claim 34, comprising further instructions for performing steps comprising:
(d) receiving, while the protected portion of the shared area is reserved for the first client, synchronization data messages permitting update of a first client display to reflect application to a non-protected portion of the shared area of at least one edit request from one of the one or more other clients, said applied edit request not violating a design rule.
- 36. The machine-readable medium of claim 34, comprising further instructions for performing steps comprising:
(d) detecting, subsequent to step (b), multiple user actions made through the first client including edits to the protected portion of the shared area; and (e) incorporating, into a local copy of the design data stored at the first client, local edits corresponding to the user actions detected in step (d), wherein:
edit requests seeking incorporation of the local edits into a master design database are not transmitted from the first client prior to receipt of a specific instruction, and the specific instruction is independent of the actions detected in step (d).
- 37. The machine-readable medium of claim 36, comprising further instructions for performing steps comprising:
(f) receiving at the first client one or more instructions to transmit one or more edit requests corresponding to one or more of the local edits; and (g) transmitting one or more edit requests in response to the one or more instructions received in step (f).
- 38. The machine-readable medium of claim 36, comprising further instructions for performing steps comprising:
(f) saving the design data copy with the local edits incorporated in step (e); (g) repeating steps (d) and (e) for a second copy of the design data; and (h) saving, without discarding the copy saved in step (f), the second design data copy with the local edits incorporated in step (g).
- 39. The machine-readable medium of claim 38, comprising further instructions for performing steps comprising:
(i) receiving at the first client a selection of the copy saved in step (f) or the copy saved in step (h); and (j) transmitting one or more edit requests corresponding to the copy selected in step (i).
- 40. The machine-readable medium of claim 34, wherein step (b) comprises receiving an instruction to position a protection border such that a portion of a design object is inside the protection border and a portion of the design object is outside the protection border, and comprising further instructions for performing steps comprising:
(d) automatically expanding the protected portion to include the entire design object.
- 41. A machine-readable medium having stored thereon data representing sequences of instructions which, when executed by a processor, cause the processor to perform steps of method for editing a printed circuit board design, the steps comprising:
(a) transmitting design data to each of first and second clients, wherein:
the design data includes graphically displayable information regarding a pattern of electronic components and connections between those components for at least a portion of the design, the design data includes data corresponding to at least a portion of a shared area of the design, and the shared area is simultaneously editable by both of the clients; (b) receiving from the first client a protection border reserving a protected portion of the shared area for the first client; (c) transmitting the protection border to the second client for display thereon; and (d) preventing the second client from editing parts of the shared area within the protected portion.
- 42. The machine-readable medium of claim 41, comprising further instructions for performing steps comprising:
(e) receiving a request from the second client to edit a part of the shared area within the protected portion; and (f) transmitting notification to the second client of rejection of the edit request received in step (e).
- 43. The machine-readable medium of claim 41, comprising further instructions for performing steps comprising:
(e) receiving a request from the second client to edit a part of the shared area not within the protected portion; and (f) transmitting synchronization data to the first client, said synchronization data permitting update of a first client display to reflect application to the shared area of the edit request received in step (e).
- 44. The machine-readable medium of claim 41, comprising further instructions for performing steps comprising:
(e) receiving from the first client one or more requests to edit parts of the shared area within the protected portion; and (f) applying to the protected portion the one or more edit requests received in step (e).
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation-in-part of U.S. patent application Ser. No. 10/780,902, filed Feb. 19, 2004 and titled “Parallel Electronic Design Automation: Shared Simultaneous Editing,” which application is a continuation of U.S. patent application Ser. No. 10/269,614, filed Oct. 10, 2002 and also titled “Parallel Electronic Design Automation: Shared Simultaneous Editing” (now U.S. Pat. No. 6,708,313), which application claims the benefit of U.S. Provisional Application Ser. No. 60/341,037, filed Dec. 10, 2001. This application also claims the benefit of U.S. Provisional Application Ser. No. 60/523,697 (attorney docket number 003921.00181), filed Nov. 21, 2003, titled “A Revolutionary Design Technology.” All of said applications are hereby incorporated by reference in their entireties.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60341037 |
Dec 2001 |
US |
|
60523697 |
Nov 2003 |
US |
Continuations (1)
|
Number |
Date |
Country |
Parent |
10269614 |
Oct 2002 |
US |
Child |
10780902 |
Feb 2004 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
10780902 |
Feb 2004 |
US |
Child |
10869923 |
Jun 2004 |
US |