MWT Syntax-Block SOLLWERTE: Unterschied zwischen den Versionen
Claude (Diskussion | Beiträge) MWT-Syntax-Referenz: regelbasierte Seite aus Task MWT_Syntax (Quellen: Compiler-Code + Bestands-MWTs) |
Claude (Diskussion | Beiträge) MWT-Syntax-Referenz: regelbasierte Seite aus Task MWT_Syntax (Quellen: Compiler-Code + Bestands-MWTs) |
||
| Zeile 1: | Zeile 1: | ||
{{DISPLAYTITLE: | {{DISPLAYTITLE:Block SOLLWERTE}} | ||
Der Block SOLLWERTE entspricht syntaktisch vollständig dem Block [[MWT Syntax-Block VORGABEN|VORGABEN]]. Zusätzlich setzt der Compiler in '''jedem''' Punkt automatisch die Soll-Kennung (interne Flags <code>ifDesiredYX</code>/<code>ifDesiredZ</code>, entspricht Flag <code>S</code>) — der Block enthält also ausschließlich vorgegebene Sollkoordinaten. | Der Block SOLLWERTE entspricht syntaktisch vollständig dem Block [[MWT Syntax-Block VORGABEN|VORGABEN]]. Zusätzlich setzt der Compiler in '''jedem''' Punkt automatisch die Soll-Kennung (interne Flags <code>ifDesiredYX</code>/<code>ifDesiredZ</code>, entspricht Flag <code>S</code>) — der Block enthält also ausschließlich vorgegebene Sollkoordinaten. | ||
| Zeile 62: | Zeile 62: | ||
* <code>lokal_DE</code>-Variante nur Sachsen-Anhalt (wie VORGABEN). | * <code>lokal_DE</code>-Variante nur Sachsen-Anhalt (wie VORGABEN). | ||
== Quellen im Code | == Entwicklerhinweise == | ||
''Diese Angaben richten sich an Entwickler bzw. eine KI mit Zugriff auf den VermCad-Quellcode; für die reine Nutzung der MWT-Syntax sind sie nicht nötig. Unit-Namen und besonders Zeilennummern können sich durch die laufende Weiterentwicklung verschieben - sie dienen als Einstieg, nicht als exakte Fundstelle.'' | |||
'''Quellen im Code:''' | |||
* VCSCHMWT.PAS:4396-4607 — gemeinsamer CASE-Zweig kSollwerte/kVorgaben (Systemangabe, Header) | * VCSCHMWT.PAS:4396-4607 — gemeinsamer CASE-Zweig kSollwerte/kVorgaben (Systemangabe, Header) | ||
* VCSCHMWT.PAS:4709-4710 — <code>IF BlockKind = kSollwerte THEN DataPunkt.SetFlags([ifDesiredYX, ifDesiredZ], TRUE)</code> | * VCSCHMWT.PAS:4709-4710 — <code>IF BlockKind = kSollwerte THEN DataPunkt.SetFlags([ifDesiredYX, ifDesiredZ], TRUE)</code> | ||
| Zeile 69: | Zeile 72: | ||
{{Hilfe:NachOben}} | {{Hilfe:NachOben}} | ||
[[Kategorie:MWT Syntax]] | [[Kategorie:MWT Syntax|Block SOLLWERTE]] | ||
Version vom 20. Juli 2026, 12:32 Uhr
Der Block SOLLWERTE entspricht syntaktisch vollständig dem Block VORGABEN. Zusätzlich setzt der Compiler in jedem Punkt automatisch die Soll-Kennung (interne Flags ifDesiredYX/ifDesiredZ, entspricht Flag S) — der Block enthält also ausschließlich vorgegebene Sollkoordinaten.
Syntaxregel
SOLLWERTE [<Systemangabe>] [, <HeaderInfo>]*
{<Datenzeile> ;}*
END[;]
<Systemangabe> ::= LS <n> [HS <n>] | HS <n> [LS <n>] | KOORDINATENSYSTEM <n> | lokal | lokal_DE
<Datenzeile> ::= <PunktIdent> { <Bezeichner> = <Wert> }*
Systemangabe, Header-Infos und Datenzeilen sind identisch zu VORGABEN (dort dokumentiert).
Parameter
| Parameter | Syntax | Pflicht | Bedeutung | Bundesland |
|---|---|---|---|---|
| alle VORGABEN-Header | siehe VORGABEN bzw. Blockkopf-Parameter | nein | Shift-Koordinaten (y,x[,z]), A=, AT, M=, ZP=, VRK, NE, REM=, DATUM=/ZEIT=/DEV=/PNR= … |
alle |
Datenzeilen
Wie bei VORGABEN:
<PunktIdent> Y = <w> X = <w> [Z = <w>] [SYM = <code>] [REM = '…'] ;
- Das Flag
Smuss nicht angegeben werden — es gilt implizit für jeden Punkt des Blocks (Lage und Höhe). - Weitere Flags (insbesondere
Afür Anschlusspunkte) sind zusätzlich möglich: ein Sollwert ohne FlagAist keine Anschlusskoordinate.
Unterschied VORGABEN ↔ SOLLWERTE
| VORGABEN | SOLLWERTE | |
|---|---|---|
| Soll-Kennung (Flag S) | nur wenn je Punkt explizit gesetzt | automatisch für alle Punkte (ifDesiredYX/ifDesiredZ) |
| zulässige Punktarten | gemischte Vorgaben: Sollwerte (S), Bedingungskoordinaten (B), „vorgegebene Messwerte" (ohne Flag) | nur Sollkoordinaten |
| Veränderbarkeit der Punkte | Punkte ohne S/B können durch Messung/Berechnung neu bestimmt werden | Koordinaten werden angehalten; Änderung nur über # hinter der Punktnummer bzw. Flag B*
|
Alles Übrige (Systemangaben, Transformationslogik, Header) ist identisch.
Beispiele
Beispiel (Thüringen)
SOLLWERTE LS 489 40 2 20025 010 S Y =32694311.438 X =5590447.132 SYM = 101; END
Beispiel (Verschiebung, konstruiert nach Regel)
SOLLWERTE, (3000, 1000, 100) xx x 70 x A Y = 0.000 X = 316.576; xx x 10 x A Y = 0.000 X = 0.000; END
(VermCad ergänzt beim Speichern binäre Codierungszeilen; sie sind hier weggelassen.)
Verfügbarkeit und Besonderheiten
- Technisch in allen Bundesland-Versionen verfügbar; in der Praxis vor allem in Thüringen und Sachsen verbreitet (Kontroll-Sollwerte).
- ALKIS-Hinweis: Punkte ohne endgültige ALKIS-ID sollten nicht als gegebene Sollpunkte geführt werden (Widersprüche in ALKIS-Projekten).
lokal_DE-Variante nur Sachsen-Anhalt (wie VORGABEN).
Entwicklerhinweise
Diese Angaben richten sich an Entwickler bzw. eine KI mit Zugriff auf den VermCad-Quellcode; für die reine Nutzung der MWT-Syntax sind sie nicht nötig. Unit-Namen und besonders Zeilennummern können sich durch die laufende Weiterentwicklung verschieben - sie dienen als Einstieg, nicht als exakte Fundstelle.
Quellen im Code:
- VCSCHMWT.PAS:4396-4607 — gemeinsamer CASE-Zweig kSollwerte/kVorgaben (Systemangabe, Header)
- VCSCHMWT.PAS:4709-4710 —
IF BlockKind = kSollwerte THEN DataPunkt.SetFlags([ifDesiredYX, ifDesiredZ], TRUE) - VCSCHMWT.PAS:2418-2845 — ReadBlockHeaderInfos
- GlobalTypes.pas:1516 ff. — TBlockKind (kSollwerte)