fritzing / fritzing-app

Fritzing desktop application
http://fritzing.org
Other
3.98k stars 826 forks source link

Add function to lock all connectors to avoid changing the schematic view #3743

Open NilsRo opened 3 years ago

NilsRo commented 3 years ago

Problem

During designing the PCB it sometimes happens that accidentally a new connection is created between components. Within complex circuits this is possibly overseen if there is a new connection indirectly created in schematic view.

Proposed Solution

Make it possible to "lock" the schematics that no new connection between components can be created in all views (and perhaps also components). This will assure that the PCB matches the circuit designed in the schematics and avoid unwanted connectors which will break the PCB.

failiz commented 8 months ago

I think this feature would be very nice, but it should lock any of the views. An user could design something in the breadboard, and then lock the breadboard before going to draw the schematics or the PCB.

KjellMorgenstern commented 8 months ago

There might be a misunderstanding of the concept. Adding a connection in the PCB view does not change the Schematic. However, connections from other views are indicated as dotted lines in the schematic.

Can you please show an example were you think the schematic is changed?

Depending on the outcome of this, implementations of this "lock connections" feature might differ quite a bit.

If your schematic is already finalized, and you have ratsnest lines in the schematic, then this indicates that you have a unwanted connection either in the PCB or the breadboard view.

Right now, this unrouted connections count is not very prominent during editing the PCB: You need to switch to the schematic, and check the bottom bar for the number of unrouted connnections.

When adding a part, also duplicating or switching its package, this change is immediately reflected in all views. I think that would be a different issue (e.g. locking the parts list)

failiz commented 8 months ago

As I see this, locking a schematic view (or any other) would mean that you can only implement the rastnests in BB and BB view. Any attempt to add new connections that are not present in the SCH will trigger a warning message and will not be created (warning message example: "You have attempted to create a new connection that is not defined in the SCH view, which is locked. The connection will not be created. If you want to add this connection, add the connection in the SCH view or unlock the SCH view. This message will only be shown once in this session."). The issue is that when working in the PCB or BB view, unwanted new connections (connections that deviate from the SCH) will not be seen easily in that view. And when you change to the SCH view the rastnests can be difficult to see and difficult to know when that connection was added in the other view (and which view is responsible for that rastnet).

Even if the new connections in the PCB view do not change the SCH, they change the circuit as Fritzing takes into account all connections made in all the views. So, the simulator will produce different results if a new connection is added.

I think it is related to https://github.com/fritzing/fritzing-app/issues/3685 This issue provides a mechanism to force all the views to follow the netlist defined in one of the views. https://github.com/fritzing/fritzing-app/issues/3685 tries to warn and highlight misalignments between the views (unwanted or made on purpose)

But maybe @NilsRo has another opinion.