You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Partially. #613 (merged as #648) gives every element a resolved =plant+location-label via the new %{structure_id} composite-text token, with a diagram-level fallback when the element's own plant/location is empty. What #648 does not do is what real panel-design tools (Promis.e, EPLAN) do with that same data: shorten the displayed designation when context already establishes part of it, so pages don't fill up with redundant =E1+A2- prefixes on every single device.
What's missing, confirmed
No page-match abbreviation.%{structure_id} (sources/autoNum/assignvariables.cpp) always renders every non-empty segment in full. There's no comparison against the diagram's own border_and_titleblock.plant()/.locmach() (sources/diagram.h:83) to decide whether the =/+ parts are redundant and can be dropped. IEC 81346 explicitly permits this: a reference designation may be written in reduced form relative to a reference point when the higher-level parts are already implied by context — here, the page.
No "reference point other than the page" concept. The only fallback source today is the diagram itself. There's no way to say "this cluster of devices belongs to a different, smaller reference point than the whole page" — e.g. a terminal box or sub-assembly documented as a single unit within a larger folio, where the individual devices only need to carry their local suffix.
QetShapeItem (the plain rectangle/shape drawing tool, sources/qetgraphicsitem/qetshapeitem.h:36) carries no identity at all — its Q_PROPERTYs are purely geometric (pen, brush, rect, line, polygon, close, xRadius, yRadius). There is nothing today that could act as that smaller reference point.
Explicitly out of scope for this discussion:#617 proposes a boundary element with real terminals and auto-wired internal connections — a connectivity feature. This discussion is about display only: a box that supplies a plant/location/prefix identity to whatever's visually inside it, with no electrical meaning and no terminals. The two are independent and, if #617 is ever built, its boundary element could potentially adopt the same reference-point mechanism proposed here rather than the other way around — but that's a future question, not part of either one's initial scope.
Proposed scope
Page-match abbreviation of %{structure_id}: compare the element's resolved plant/location (after IEC 81346 plant/location fallback and composite structure-id token (discussion #613) #648's diagram fallback already applied) against the diagram's own plant/location. Equal → drop the =/+ segments, render only -label. Different → render the full =plant+location-label, so a device that genuinely belongs elsewhere is never mistaken for a local one. Because IEC 81346 plant/location fallback and composite structure-id token (discussion #613) #648's fallback already makes "no override" resolve to the diagram's value, this makes abbreviation the automatic default for the common case with zero extra data entry — only devices with an explicit, different plant/location print in full.
%{structure_id_full}: a second token that always renders the complete, unabbreviated designation regardless of page context, for exports/BOM/nomenclature use where the page a device happens to be drawn on is irrelevant and the canonical full designation is what's needed.
A lightweight labeling box: a new box you draw around a cluster of symbols purely for documentation — it carries its own plant/location/prefix identity (not a full element, no terminals, no electrical meaning) and a bounding shape. Any element visually contained within it uses the box's identity as its reference point instead of the diagram's, so the box's label is shown once and the devices inside it get short suffixes. This is the missing piece that QetShapeItem doesn't provide today.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Checked: is this already done?
Partially. #613 (merged as #648) gives every element a resolved
=plant+location-labelvia the new%{structure_id}composite-text token, with a diagram-level fallback when the element's own plant/location is empty. What #648 does not do is what real panel-design tools (Promis.e, EPLAN) do with that same data: shorten the displayed designation when context already establishes part of it, so pages don't fill up with redundant=E1+A2-prefixes on every single device.What's missing, confirmed
%{structure_id}(sources/autoNum/assignvariables.cpp) always renders every non-empty segment in full. There's no comparison against the diagram's ownborder_and_titleblock.plant()/.locmach()(sources/diagram.h:83) to decide whether the=/+parts are redundant and can be dropped. IEC 81346 explicitly permits this: a reference designation may be written in reduced form relative to a reference point when the higher-level parts are already implied by context — here, the page.QetShapeItem(the plain rectangle/shape drawing tool,sources/qetgraphicsitem/qetshapeitem.h:36) carries no identity at all — itsQ_PROPERTYs are purely geometric (pen,brush,rect,line,polygon,close,xRadius,yRadius). There is nothing today that could act as that smaller reference point.Explicitly out of scope for this discussion: #617 proposes a boundary element with real terminals and auto-wired internal connections — a connectivity feature. This discussion is about display only: a box that supplies a plant/location/prefix identity to whatever's visually inside it, with no electrical meaning and no terminals. The two are independent and, if #617 is ever built, its boundary element could potentially adopt the same reference-point mechanism proposed here rather than the other way around — but that's a future question, not part of either one's initial scope.
Proposed scope
%{structure_id}: compare the element's resolved plant/location (after IEC 81346 plant/location fallback and composite structure-id token (discussion #613) #648's diagram fallback already applied) against the diagram's own plant/location. Equal → drop the=/+segments, render only-label. Different → render the full=plant+location-label, so a device that genuinely belongs elsewhere is never mistaken for a local one. Because IEC 81346 plant/location fallback and composite structure-id token (discussion #613) #648's fallback already makes "no override" resolve to the diagram's value, this makes abbreviation the automatic default for the common case with zero extra data entry — only devices with an explicit, different plant/location print in full.%{structure_id_full}: a second token that always renders the complete, unabbreviated designation regardless of page context, for exports/BOM/nomenclature use where the page a device happens to be drawn on is irrelevant and the canonical full designation is what's needed.QetShapeItemdoesn't provide today.Conductor/Terminalconnectivity, and explicitly not the Feature idea: composite device grouping - wrap several elements in a boundary with external terminals #617 boundary-with-terminals feature — this stays a labeling/display concern only.Happy to build this if the scope above sounds right.
All reactions