← Back to the workshop
Cross-references

The cross-reference was still there, you just could not hit it any more

How cross-references and break points came about in Sketrix: built on the first attempt, sharpened months later against the structure, and then hit by a rebuild next door.

What it does → Schematic editor

Before Sketrix existed I drew my schematics on a Windows machine, at work with EPLAN and at home with QElectroTech, and both of them could do cross-references. The difference only showed once you actually worked with them: in the free program the cross-reference at the coil sits there as text, fully worked out, and it tells you which sheet the contacts are on, but clicking it right there on the sheet does not take you anywhere, you find your own way over.

I was used to something else from work, where you click the contact and you are at the coil, you click the break point and you are where the wire carries on, and once you have had that in your fingers for a few years, paging through by hand feels like going backwards. For a long time I put that down to convenience, but there is more hanging off it, because anyone who can click sees straight away when a link is wrong: you land somewhere you did not expect, and you know in that same second that something is off. Without the click, a mistake like that only surfaces on site.

Two things that find each other

In Sketrix all of this hangs on two things, on names and on structure. For the contact mirror you place the coil and the contacts, and if they share a name and sit in the same structure, they belong together without you entering that anywhere. The mirror then appears by itself at a fixed height below the coil, and every line in it is clickable, there and back.

Break points work the same way: both ends are called -L1, and that is what holds them together. If the connection has to cross a structure boundary, you write the structure on one side and leave it off on the other, and if you would rather click than type, you just take the picker tree next to the field.

One thing mattered to me here: the order the structure is written in should be up to the user, plant before location or location before plant, and levels can be switched off entirely. The standard allows it, and whoever draws the schematic should be allowed to lay it out the way they need it.

The awkward part comes later

The connection system took me months and I nearly threw it in halfway, but this one was different: the cross-references stood in February, clickable navigation and PDF output came in the same go, and I cannot remember any struggle.

One spot was stubborn all the same, and it only turned up two months later. When several functions sit in one cabinet and the coils are named accordingly, the contacts were sorted correctly but the assignment would not come out right first time, and my records have it in April on two consecutive days, first matching across function boundaries with its tests, then carrying that along when a page gets moved.

That was it, really. What came after in the way of repairs concerned the break points, and none of it was a fault in the linking, they were finds from the foundation rebuild, where structure and break points got in each other’s way. The numbers show the slope quite well: cross-reference and contact mirror come to about 1,100 lines across five files, break points to 5,700 across twenty-two, plus 143 tests for them alone.

It got hit anyway

In August a test run was going, and all of a sudden the click on the orange cross-reference did nothing any more, on one symbol only the old spot still responded and on a second one nothing at all, even though it had worked before.

At first I thought the app was remembering something wrong internally, but what I found was something else. A cross-reference like this is made of two parts, the label you see and an invisible area above it that recognises the click, and the two are calculated in different places in the program. During a clean-up a few months earlier only one of them had been renewed, and from then on the two worked out the position differently, so the visible text sat in one spot and the clickable area in another. Because the offset grew with the width of the label, a wide designation ended up with two hundred points between them, so you clicked right on the text and hit nothing.

I measured that on a real project across every page, and when I then looked into my notes from that clean-up, it was already in there that this second spot had deliberately been left open. So I had written it down for myself half a year before it hurt.

What tells me the thing carries is precisely this: when the click failed, it went straight to the top of my list of faults instead of sitting further down as a footnote. I missed it before I could name what was gone.

And now

The function stands, the surface does not. Click the coil and a small picker window appears even though everything already hangs off the link, the break point’s input field shows only -L1 without the full origin while the sheet itself shows all of it, and after a jump a frame lays itself over the target to show where you came out, but it looks bad and it is going. Selecting the other end after the jump will probably do.

All of that comes with the rework of the interface, and I would have cleared it away sooner if it hurt. It does not hurt, it just does not look good, and so it has waited.

Martin

Sketrix is electrical CAD (E-CAD) for circuit diagrams, control systems and switchgear — with symbols based on IEC 60617. Not a PCB / circuit-board tool like KiCad or Eagle, but the software for control cabinets, terminal plans and electrical installation.