Post on 08-Mar-2021
Baubemaßung in CAD
Studienarbeit
Juniorprofessur CAD in der Bauinformatik
Fakultat Bauingenieurwesen
Bauhaus-Universitat Weimar
vorgelegt von
Christian Koch (Matr.-Nr. 980014)
Betreuer:
Jun. Prof. Dr.-Ing. Berthold Firmenich
Prof. Dr.-Ing. Karl Beucke
Dipl.-Ing. Daniel G. Beer
letzte Bearbeitung: 18. August 2003
Inhaltsverzeichnis
0 Einleitung 8
1 Anforderungen an eine Baubemaßung 9
1.1 Allgemeine Anforderungen . . . . . . . . . . . . . . . . . . . . 10
1.2 Bemaßungsarten . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3 Anforderungen an eine Kettenbemaßung . . . . . . . . . . . . 15
2 Konzept fur die Kettenbemaßung 20
2.1 Variantendiskussion . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1.1 Einzelne Gesamtkomponente . . . . . . . . . . . . . . . 20
2.1.2 Mittler zwischen mehreren Einzelmaß-Komponenten . . 22
2.2 Mediatorkonzept . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3 Einzelmaß-Komponente . . . . . . . . . . . . . . . . . . . . . 27
2.3.1 Eigenschaften . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.2 Funktionalitat . . . . . . . . . . . . . . . . . . . . . . . 30
2.4 Kettenmaß-Komponente . . . . . . . . . . . . . . . . . . . . . 32
2.4.1 Eigenschaften . . . . . . . . . . . . . . . . . . . . . . . 33
2.4.2 Funktionalitat . . . . . . . . . . . . . . . . . . . . . . . 33
3 Prototypische Umsetzung der Kettenbemaßung 36
3.1 Systemarchitektur des CAD-Prototyps . . . . . . . . . . . . . 36
3.2 Umsetzung der Einzelmaß-Komponente . . . . . . . . . . . . . 38
3.2.1 Komponente”ComponentDimSingle“ . . . . . . . . . . 38
3.2.2 Befehl”AddDimSingle“ . . . . . . . . . . . . . . . . . . 44
3.2.3 Befehl”SetDimPoints“ . . . . . . . . . . . . . . . . . . 46
3.3 Umsetzung des Bemaßungsstils . . . . . . . . . . . . . . . . . 47
3.3.1 Komponente”DimParManager“ . . . . . . . . . . . . . 47
4
INHALTSVERZEICHNIS 5
3.3.2 Befehl”SetDefaultDimParSet“ . . . . . . . . . . . . . 52
3.3.3 Befehl”SetDimParams“ . . . . . . . . . . . . . . . . . . 52
3.4 Umsetzung der Kettenmaß-Komponente . . . . . . . . . . . . 53
3.4.1 Komponente”ComponentDimChain“ . . . . . . . . . . . 53
3.4.2 Befehl”CreateDimChain“ . . . . . . . . . . . . . . . . 56
3.5 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4 Fazit und Ausblick 62
Abbildungsverzeichnis
1 Normen ⇔ freie Parametrisierung . . . . . . . . . . . . . . . . 9
2 Maßstab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3 Maßeinheiten . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4 Kettenbemaßung . . . . . . . . . . . . . . . . . . . . . . . . . 12
5 Radien- und Durchmesserbemaßung . . . . . . . . . . . . . . . 13
6 Winkel- und Bogenbemaßung . . . . . . . . . . . . . . . . . . 13
7 Basislinienbemaßung . . . . . . . . . . . . . . . . . . . . . . . 14
8 Koordinatenbemaßung . . . . . . . . . . . . . . . . . . . . . . 14
9 Hohenbemaßung . . . . . . . . . . . . . . . . . . . . . . . . . 15
10 Komponenten – Einzelmaß . . . . . . . . . . . . . . . . . . . . 16
11 Geometrische Parameter . . . . . . . . . . . . . . . . . . . . . 16
12 Maßbegrenzungssymbole . . . . . . . . . . . . . . . . . . . . . 17
13 Einzelne Gesamtkomponente . . . . . . . . . . . . . . . . . . . 21
14 Mehrere Einzelmaße als Kettenmaß . . . . . . . . . . . . . . . 22
15 Abhangigkeit – Balken → Last . . . . . . . . . . . . . . . . . 24
16 Wechselbeziehung zwischen vielen Objekten . . . . . . . . . . 25
17 Mediatorobjekt . . . . . . . . . . . . . . . . . . . . . . . . . . 26
18 Umsetzung – Mediatorkonzept . . . . . . . . . . . . . . . . . . 27
19 Eigenschaften – Einzelmaß-Komponente . . . . . . . . . . . . 28
20 Randbedingungen – Kettenmaß-Komponente . . . . . . . . . . 33
21 Eigenschaften – Kettenmaß-Komponente . . . . . . . . . . . . 34
22 Systemarchitektur – CAD-Prototyp . . . . . . . . . . . . . . . 36
23 Klassendiagramm – ComponentDimSingle . . . . . . . . . . . 39
24 Algorithmus – Bestimmung des Maßtextes fur [cm/m] . . . . . 43
25 Klassendiagramm – AddDimSingle . . . . . . . . . . . . . . . 45
26 Klassendiagramm – DimParManager . . . . . . . . . . . . . . . 48
6
ABBILDUNGSVERZEICHNIS 7
27 Klassendiagramm – ComponentDimChain . . . . . . . . . . . . 54
28 Rollen – Einzelmaß und Kettenmaß . . . . . . . . . . . . . . . 56
29 Klassendiagramm – CreateDimChain . . . . . . . . . . . . . . 57
30 Screenshot – Einzelmaß . . . . . . . . . . . . . . . . . . . . . . 59
31 Screenshot – Bemaßungsstil . . . . . . . . . . . . . . . . . . . 60
32 Screenshot – Kettenmaß . . . . . . . . . . . . . . . . . . . . . 61
33 Screenshot – Kettenmaß verandert . . . . . . . . . . . . . . . 61
0 EINLEITUNG 8
0 Einleitung
Gegenstand dieser Arbeit ist es, sich im Rahmen einer Studienarbeit mit
dem Thema”Baubemaßung in CAD1“ auseinanderzusetzen. Hierzu sollen
zunachst die Anforderungen an eine Baubemaßung in CAD beschrieben wer-
den. In einem zweiten Schritt ist ein Konzept fur die Kettenbemaßung zu
erstellen und dieses in einem bestehenden CAD-Prototyp beispielhaft umzu-
setzen. Der zu verwendende CAD-Prototyp ist vollstandig in Sun Microsys-
tems’ JAVA� geschrieben.
Technische Zeichnungen dienen im Bauwesen zur Kommunikation zwischen
Ingenieuren. Auf diesen Zeichnungen sind in zweidimensionaler Form zu er-
richtende Bauwerke, oder Teile davon maßstablich dargestellt. Um deren reale
Abmessungen anzugeben, enthalten Zeichnungen außerdem Bemaßungen in
Form von Linien, Symbolen und Texten. Solche Technischen Zeichnungen
konnen manuell am Zeichenbrett oder seit dem Beginn der grafischen Daten-
verarbeitung (etwa 1980) computergestutzt, unter Verwendung von CAD-
Systemen erstellt werden.
Unter Baubemaßung in CAD ist also die Gesamtheit aller grafischen Ob-
jekte zu verstehen, die notwendig sind, um ein im Computer modelliertes
Bauwerk, oder Teile davon, zu bemaßen. Das heißt, die Maße bzw. Abmaße
des bauspezifischen Objektes werden durch die Bemaßung grafisch darge-
stellt.
1Computer Aided Design, Computer Aided Drafting
1 ANFORDERUNGEN AN EINE BAUBEMASSUNG 9
1 Anforderungen an eine Baubemaßung
Im Bauwesen legt die Norm DIN 1356 Teil 1 Arten und Inhalte von Bau-
zeichnungen fur die Objekt- und Tragwerksplanung sowie Grundregeln fur
die Darstellung in Bauzeichnungen fest. Da diese Norm sowohl bei manueller
als auch bei computergestutzter Zeichnungserstellung gilt, leiten sich aus ihr
die fachlichen Anforderungen an ein CAD-Zeichnungsmodell ab.
Die Anforderungen an eine Baubemaßung, als ein Teil des CAD-Zeichnungsmo-
dells, ergeben sich somit einerseits durch die landerspezifischen Normen. An-
dererseits ist es notwendig, die Baubemaßung firmen- und projektspezifisch
anzupassen (s. Abbildung 1).
Abbildung 1: Normen ⇔ freie Parametrisierung
Zeichnungen mussen, um als Kommunikationsmittel zu dienen, Normen-kon-
form sein, das heißt einem durch eine landerspezifische Norm festgelegten
Standard entsprechen. Um computergestutzt Zeichnungen erstellen zu konnen,
sollte das verwendete Bemaßungswerkzeug demnach diesen Standard kennen.
Auf der anderen Seite muss jedoch von diesem Standard abgesehen werden,
wenn es beispielsweise gilt, internationale Projekte zu planen. Hierzu sollte
1 ANFORDERUNGEN AN EINE BAUBEMASSUNG 10
das Bemaßungswerkzeug anwenderspezifisch konfiguriert werden konnen.
1.1 Allgemeine Anforderungen
Im Folgenden werden allgemeine Anforderungen an eine bauspezifische Be-
maßung konstatiert.
Maßstab
Die Bemaßungsobjekte sind auf der ausgedruckten Zeichnung, unabhangig
vom verwendeten Plotmaßstab, in einer festgelegten Große darzustellen (s.
Abbildung 2). Der Anwender sollte seine Zeichnungsobjekte einfach bema-
ßen konnen, ohne vorher maßstabsbezogene Umrechnungen vornehmen zu
mussen.
Abbildung 2: Maßstab
Maßeinheiten
Weiterhin muss ein Bemaßungswerkzeug dem Anwender die Moglichkeit bie-
ten, die Maßeinheiten fur die Bemaßung frei zu wahlen (s. Abbildung 3).
Wahrend im Mauerwerksbau alle Abmessungen in cm/m angegeben werden,
1 ANFORDERUNGEN AN EINE BAUBEMASSUNG 11
sind im Stahlbau alle Zeichnungsobjekte in mm zu bemaßen. Das Bema-
ßungstool sollte demnach selbstandig Umrechnungen vornehmen konnen.
Abbildung 3: Maßeinheiten
Hochgestellte ’5’
Des Weiteren ist an dieser Stelle die fur die Baubemaßung typische”hochge-
stellte 5“ fur halbe Zentimeter zu erwahnen. Das Bemaßungswerkzeug sollte
selbstandig runden und entscheiden, wann eine hochgestellte ’5’ an die Maß-
zahl anzuhangen ist (s. Abbildung 3).
Layer
Zur besseren Strukturierung einer Zeichnung ist es oft sinnvoll, alle der Be-
maßung zugehorigen Objekte auf einen einzelnen Layer, beispielsweise dem
Bemaßungslayer, abzulegen. Demnach muss es moglich sein, die vom Bema-
ßungstool erstellten Objekte einem im CAD-System definierten Layer zuzu-
orden.
1 ANFORDERUNGEN AN EINE BAUBEMASSUNG 12
1.2 Bemaßungsarten
Je nach Art des geometrischen Zeichnungsobjektes lassen sich die im Folgen-
den aufgefuhrten Bemaßungsarten definieren.
Kettenbemaßung
Die Kettenbemaßung stellt eine Folge von linearen Einzelmaßen mit gemein-
samer Maßlinie dar (s. Abbildung 4). Die Bemaßung kann parallel zu den
Bemaßungspunkten2, unter einem beliebigen Winkel, horizontal oder verti-
kal erfolgen.
Abbildung 4: Kettenbemaßung
Radien- und Durchmesserbemaßung
Mit Hilfe der Radien- bzw. Durchmesserbemaßung werden kreisformige Zeich-
nungsobjekte (Kreise und Kreisbogen) bemaßt (s. Abbildung 5).
Winkel- und Bogenbemaßung
Die Winkelbemaßung stellt die Bemaßung durch die Angabe eines Winkels
zwischen zwei Linien, zwischen einer Linie und der Horizontalen, zwischen
einer Linie und der Vertikalen oder fur einen Bogenabschnitt dar. Die Bema-
2Anfangs- und Endpunkt der zu bemaßenden Geometrie
1 ANFORDERUNGEN AN EINE BAUBEMASSUNG 13
Abbildung 5: Radien- und Durchmesserbemaßung
ßung der Lange eines Bogens kann mit Hilfe der Bogenbemaßung erfolgen.
(s. Abbildung 6)
Abbildung 6: Winkel- und Bogenbemaßung
Basislinienbemaßung
Die Basislinienbemaßung stellt eine lineare Bemaßung des Abstandes meh-
rerer Punkte von einem Bezugspunkt dar (s. Abbildung 7).
Koordinatenbemaßung
Mit Hilfe der Koordinatenbemaßung konnen die lotrechten Abstande von ei-
nem Bezugspunkt in X- und Y-Richtung bemaßt werden (s. Abbildung 8).
1 ANFORDERUNGEN AN EINE BAUBEMASSUNG 14
Abbildung 7: Basislinienbemaßung
Abbildung 8: Koordinatenbemaßung
Hohenbemaßung
Die Hohenangaben fur die Oberflache von Fertig- und Rohkonstruktion in
Schnitten konnen durch die Hohenbemaßung unter Verwendung von Hohen-
koten erfolgen (s. Abbildung 9).
1 ANFORDERUNGEN AN EINE BAUBEMASSUNG 15
Abbildung 9: Hohenbemaßung
1.3 Anforderungen an eine Kettenbemaßung
Wie im vorangegangen Abschnitt bereits erwahnt ist ein Kettenmaß eine
Aneinanderreihung von linearen Einzelmaßen mit gemeinsamer Maßlinie. Aus
diesem Grund leitet sich ein Teil der Anforderungen an die Kettenbemaßung
aus den Eigenschaften der Einzelbemaßung ab. Ein solches Einzelmaß setzt
sich aus folgenden Komponenten zusammen (s. Abbildung 10):
� 1 Maßline
� 2 Maßhilfslinien
� 2 Maßbegrenzungssymbole (Maßlinienbegrenzung)
� 1 Maßzahl bzw. Maßtext.
Diese Komponenten weisen neben geometrischen Eigenschaften (z.B. Langen,
Abstande) (s. Abbildung 11) auch semantische Eigenschaften (z.B. Sichtbar-
keit, Art) auf. Im Folgenden werden nun mogliche Bemaßungsparameter fur
ein Einzelmaß beschrieben (angelehnt an [2] Seite 235 ff.).
1 ANFORDERUNGEN AN EINE BAUBEMASSUNG 16
Abbildung 10: Komponenten – Einzelmaß
Abbildung 11: Geometrische Parameter
Maßlinie
Die Maßlinie einer Einzelbemaßung liegt entweder horizontal, vertikal, par-
allel zu einer fiktiven Linie, die durch die Bemaßungspunkte definiert ist,
oder in einem beliebigen Winkel. Folgende Eigenschaften lassen sich fur die
Maßlinie formulieren:
� Darstellung: Sichtbarkeiten einzelner Teile [lm]
� Abstand: Abstand von Bezugslinie [am]
1 ANFORDERUNGEN AN EINE BAUBEMASSUNG 17
� Uberstand: Lange der Uberstande uber Maßhilfslinie [um]
� Hinweislinie: Art der zu erzeugenden Hinweislinie zum Maßtext.
Maßhilfslinie
Die Maßhilfslinie ist rechtwinklig zur Maßlinie angeordnet und entspricht
jeweils einem Bemaßungspunkt. Sie besitzt folgende Parameter:
� Darstellung: Sichtbarkeiten einzelner Teile [lm]
� Abstand: Abstand von Bemaßungspunkten [ah] bzw. Lange der Maß-
linie [lh]
� Uberstand: Lange der Uberstande uber Maßlinie [uh].
Maßbegrenzungssymbol / Maßlinienbegrenzung
Das Maßbegrenzungssymbol kennzeichnet den Schnittpunkt von Maßlinie
und Maßhilfslinie und lasst sich durch nachstehende Parameter beschreiben:
� Darstellung: Sichtbarkeit einzelner Symbole
� Art: Art einzelner Symbole (s. Abbildung 12)
� Uberstand: evtl. Lange des Uberstandes uber Maßhilfslinie.
Abbildung 12: Maßbegrenzungssymbole
Maßzahl / Maßtext
Die Maßzahl bzw. der Maßtext stellt in der Regel den Wert des Abstandes der
1 ANFORDERUNGEN AN EINE BAUBEMASSUNG 18
Bemaßungspunkte in der spezifizierten Maßeinheit dar und sollte von unten
und von rechts lesbar sein. Wahlweise kann auch alternativer Text angezeigt
werden. Folgende Eigenschaften sind dem Maßtext zuzuordnen:
� Darstellung: Font; Hohe [ht] und davon abhangige Wichte [wt]; Son-
derzeichen (z.B. ±)
� Ermittlung: Berechnung, Runden, Einheiten (Lange, Winkel), Alter-
nativtext
� Lage: Neigung bzw. Drehung (von unten und rechts lesbar!); Position:
zwischen, uber oder unter Maßlinie
� Abstand: Abstand von Maßlinie [at]
� Genauigkeit: Dezimalzeichen: Punkt, Komma; Runden, Nachkom-
mastellen,”hochgestelle 5“.
Setzt man nun aus mehreren (n) Einzelmaßen ein Kettenmaß zusammen
ergeben sich folgende Komponenten fur ein Kettenmaß (s. Abbildung 4 Seite
12):
� 1 Maßlinie
� (n+1) Maßhilfslinien
� (n+1) Maßbegrenzungssymbole
� n Maßtexte
Innerhalb eines Kettenmaßes besitzen alle Maßhilfslinien, alle Maßbegren-
zungssymbole und alle Maßtexte jeweils dieselben Eigenschaften. Das bedeu-
tet, dass in einem Kettenmaß beispielsweise alle Maßbegrenzungssymbole
von derselben Art sind und alle Maßtexte denselben Font besitzen.
1 ANFORDERUNGEN AN EINE BAUBEMASSUNG 19
Ein Kettenmaß muss in beide Richtungen beliebig erweiterbar sein, d.h. ihm
mussen neue Bemaßungspunkte hinzugefugt werden konnen.
Des Weiteren sollte dem Anwender die Moglichkeit geboten werden, einzelne
Teile des Kettenmaßes zu manipulieren (andern, verschieben, loschen usw.),
wobei jedoch die Konsistenz des Kettenmaßes zu gewahrleisten ist. Wird bei-
spielsweise ein Einzelmaß einer Maßkette verschoben, mussen alle weiteren
Einzelmaße des Kettenmaßes analog verschoben werden, um keinen Sprung
in der gemeinsamen Maßlinie zu erzeugen.
2 KONZEPT FUR DIE KETTENBEMASSUNG 20
2 Konzept fur die Kettenbemaßung
In diesem Teil der Arbeit soll ein Konzept fur die Kettenbemaßung bzw. Ket-
tenbemaßungskomponente entwickelt werden. Hierzu werden zunachst zwei
Modellierungsansatze untersucht und bewertet. Anschließend werden der fa-
vorisierte Ansatz naher beleuchtet und prinzipielle Entwurfsentscheidungen
getroffen.
2.1 Variantendiskussion
Ein Kettenmaß kann softwaretechnisch auf verschiedene Art und Weise mo-
delliert werden. Der Abbildung als einheitliche Gesamtkomponente steht die
Modellierung durch eine den Teilkomponenten ubergeordnete Koordinations-
einheit gegenuber.
2.1.1 Einzelne Gesamtkomponente
Da, wie bereits erwahnt, ein Kettenmaß genau eine Maßlinie besitzt, erscheint
es sinnvoll, ein Kettenmaß als eine Gesamtkomponente zu betrachten und
dementsprechend zu modellieren. Die Abbildung 13 soll diesen Sachverhalt
illustrieren und zeigen, welche Eigenschaften der Kettenmaß-Komponente zu-
geordnet werden. Um ein aus n Einzelmaßen zusammengesetztes Kettenmaß
eindeutig abzubilden, sind (n+2) Kontrollpunkte und ein Neigungswinkel fur
die Maßlinie notwendig. Hieraus konnen dann eine Maßlinie, (n+1) Maßhilfs-
linien, (n+1) Maßbegrenzungssymbole und n Maßtexte bestimmt werden.
Diese einzelne Gesamtkomponente besitzt somit alle zur Darstellung eines
Kettenmaßes notwendigen Eigenschaften und enthalt samliche Berechnungs-
methoden zur Bestimmung von Linien, Symbolen und Text. Schon im Hin-
blick auf die Umsetzung im bestehenden CAD-Prototyp lassen sich folgende
2 KONZEPT FUR DIE KETTENBEMASSUNG 21
Abbildung 13: Einzelne Gesamtkomponente
Vor- und Nachteile dieses Ansatzes konstatieren:
� Vorteile:
– nur eine Komponente implementieren
– einfache Verwaltung der Eigenschaften innerhalb der Komponente
– kein”Ubermalen“ bei der Darstellung
� Nachteile:
– sehr komplexe, evtl. unubersichtliche Komponente
– das Selektieren (und somit auch Loschen und Modifizieren) von
Einzelmaßen ist nicht moglich
2 KONZEPT FUR DIE KETTENBEMASSUNG 22
2.1.2 Mittler zwischen mehreren Einzelmaß-Komponenten
Ein Kettenmaß setzt sich wie bereits erwahnt aus mehrenen Einzelmaßen zu-
sammen. Wird davon ausgegangen, dass schon eine vollstandige Komponente
zur Einzelbemaßung existiert, scheint es sinnvoll, eine Komponente zur Ket-
tenbemaßung zu schaffen, die die Eigenschaften und die Funktionalitat der
bestehenden Einzelmaß-Komponente verwendet. Das bedeutet, die Kompo-
nente fur die Kettenbemaßung kennt alle zu ihr gehorenden Einzelmaße und
sorgt dafur, dass diese genau so aneinandergefugt werden, dass ein Ketten-
maß entsteht (s. Abbildung 14). Die Kettenmaß-Komponente selbst nimmt
somit eine Art”Mittler“-Rolle zwischen den Einzelmaßen ein und koordiniert
diese.
Abbildung 14: Mehrere Einzelmaße als Kettenmaß
Folgende Vor- und Nachteile lassen sich fur diesen Modellierungsansatz fin-
den:
2 KONZEPT FUR DIE KETTENBEMASSUNG 23
� Vorteile:
– Verwendung der Eigenschaften und Funktionalitat von Einzelmaß-
Komponente
– uberschaubare, kleinere Koordinationskomponente implementie-
ren
– Selektion (und somit auch Loschen und Modifizieren) von Einzel-
maßen ist moglich
� Nachteile:
– Einzelmaße”ubermalen“ sich bei der Darstellung
– evtl. komplizierte Koordinierungsaufgabe
Da die Moglichkeit des Selektierens, Modifizierens und Loschen von Einzel-
maßen innerhalb eines Kettenmaßes als wesentlich erachtet wird, kommt fur
die Umsetzung der Kettenbemaßungskomponente nur dieser zweite Model-
lierungsansatz infrage.
Im Hinblick auf die softwaretechnische Umsetzung dieses Ansatzes wird im
folgenden Absatz das Mediatorkonzept vorgestellt, welches als Entwurfs-
muster fur die Abbildung einer Koordinierungskomponente (Kettenmaß) fur
gleichrangige, in Wechselbeziehung stehende Objekte (Einzelmaße) herange-
zogen werden kann.
2.2 Mediatorkonzept
Gegenstand
In der objektorientierten3 Softwareentwicklung werden Sachverhalte in Ob-
3Abkurzung: oo
2 KONZEPT FUR DIE KETTENBEMASSUNG 24
jekten (kleine, uberschaubare Modellierungseinheiten) abgebildet. Diese Ob-
jekte sind das Ergebnis einer Abstraktion des abzubildenden Stucks Realitat,
besitzen Eigenschaften, welche das Objekt beschreiben bzw. kennzeichnen
und ein Verhalten, um mit anderen Objekten zu kommunizieren. Um Bezie-
hungen und Abhangigkeiten zwischen Objekten abbilden zu konnen, mussen
sich die betroffenen Objekte untereinander kennen, beispielsweise kennt ein
Balken die auf ihm stehenden Lasten. Andert sich der Wert und/oder der
Ort einer Last, andern sich auch die Auflagerkrafte des Balkens (s. Abbil-
dung 15). Diese Abbhangigkeit besteht nur in einer Richtung, vom Balken
zur Last. Die Lasten untereinander beeinflussen sich nicht, sind demnach
voneinander unabhangig.
Abbildung 15: Abhangigkeit – Balken → Last
Wenn aber beispielsweise eine Vielzahl von untereinander abhangigen, also
in Wechselbeziehung stehenden Objekten abgebildet werden soll, muss jedes
einzelne Objekte alle anderen Objekte, von denen es selbst abhangt, kennen.
Dabei wird dann das gesamte System sehr komplex und unubersichtlich,
was gerade durch den oo-Ansatz vermieden werden sollte (s. Abbildung 16).
Andert sich eine Stelle im System (z.B. das Verhalten eines Objektes), mussen
alle involvierten Teile des Gesamtsystems (alle anderen, abhangigen Objek-
2 KONZEPT FUR DIE KETTENBEMASSUNG 25
te) angepasst werden. Das wiederum entspricht nicht der Forderung nach Er-
weiterbarkeit, Wiederverwendung und Wartbarkeit von oo-Softwaresystemen
und ist somit nicht zweckmaßig, da jegliche Beziehungen angepasst werden
mussen.
Abbildung 16: Wechselbeziehung zwischen vielen Objekten
An dieser Stelle schafft das Mediatorkonzept Abhilfe. Es stellt ein softwa-
retechnisches Entwurfsmuster 4 dar, welches beschreibt, wie ein Objekt ab-
gebildet wird, welches fur die Kontrolle und Koordination von Wechselbe-
ziehungen innerhalb einer Gruppe von Objekten verantwortlich ist. Dieses
Objekt wird als”Mediator“5 bezeichnet und kapselt das Kollektiv-Verhalten
der beteiligten Objekte in einem separaten, zentralen Objekt (s. Abbildung
17). Der Mediator bildet somit eine lose Verknupfung zwischen Objekten
ab, indem er diese explizit referenziert. Die voneinander abhangigen Objek-
te mussen sich untereinander nicht kennen, sondern nur ihr gemeinsames
Mediator-Objekt. Die Beschreibung der Wechselbeziehung zwischen Objek-
ten kann somit unabhangig von den Objekten selbst erfolgen, was bedeutet,
4engl.: design pattern5[lat.] Mittelsperson, Vermittler
2 KONZEPT FUR DIE KETTENBEMASSUNG 26
Abbildung 17: Mediatorobjekt
dass bei Anderungen an einer Stelle im System nur das Mediator-Objekt ak-
tualisiert werden muss. Die uberwachten, untereinander abhangigen Objekte
werden dabei als”Colleague“6 oder Teilnehmer bezeichnet.
Umsetzung
Die softwaretechnische Umsetzung des Mediatorkonzeptes lehnt sich an das
Beobachter-Konzept an. Der Mediator uberwacht, beobachtet seine Collea-
gues, wird bei Anderung der Eigenschaften eines Teilnehmers benachrichtigt
und fuhrt Anderungsaktionen bezuglich der anderen Colleagues aus. Dabei
ubergibt das sich andernde Colleague-Objekt beim Aufruf der Benachrich-
tigungsmethode des Mediator sich selbst als Ubergabeparameter, damit der
Mediator den Sender der Nachricht identifizieren kann (s. Abbildung 18).
Vor- und Nachteile
An dieser Stelle folgen nun sowohl vorteil- als auch nachteilhafte Eigenschaf-
ten des Mediator-Entwurfsmusters:
6[engl.] Kollege
2 KONZEPT FUR DIE KETTENBEMASSUNG 27
Abbildung 18: Umsetzung – Mediatorkonzept
� Vorteile:
– Abbildung der Wechselbeziehungen innerhalb einer zentralen Media-
tor-Klasse
– bei Beziehungssystem-Modifizierung nur Mediator-Klasse andern
– (1-n)-Beziehung ist einfacher abzubilden als (m-n)-Beziehung
– lose Kopplung zwischen Mediator und Colleagues erlaubt unabhangi-
ges Modifizieren von Mediator- und Colleague-Klassen
� Nachteile:
– Gefahr einer zu komplexen und zu monolithischen Mediator-Klasse
2.3 Einzelmaß-Komponente
In diesem Abschnitt wird das Konzept zur Abbildung einer linearen Einzelmaß-
Komponente, welche sowohl separat als auch innerhalb eines Kettenmaßes zu
verwenden ist, beschrieben. Die Abbildung 19 illustriert neben der grafischen
Reprasentation einige Eigenschaften dieser Komponente.
2 KONZEPT FUR DIE KETTENBEMASSUNG 28
Abbildung 19: Eigenschaften – Einzelmaß-Komponente
2.3.1 Eigenschaften
Die einzelnen Teilkomponenten (Linien, Symbole und Text) wurden bereits
in Abschnitt 1.3 aufgezeigt. Zur eindeutigen Bestimmung der Eigenschaften
dieser Teilkomponenten sind folgende Attribute notwendig:
� 2 Geometrie-Referenzpunkte (Bemaßungspunkte)
� 1 Punkt fur die Lage der Maßlinie
� 1 Winkel fur die Neigung der Maßlinie
� ein Parametersatz mit geometrischen (Abstande, Langen,...) und se-
mantischen (Sichtbarkeiten, ...) Attributen
� der Koordinatenraum des CAD-Zeichnungsmodells
� der dem ubergeordneten Kettenmaß entsprechende Mediator
2 KONZEPT FUR DIE KETTENBEMASSUNG 29
Kontrollpunkte
Die Geometrie-Referenzpunkte definieren die zu bemaßende Geometrie und
stellen somit die Bemaßungspunkte dar. Durch einen weitereren Kontroll-
punkt ist die Lage der Maßlinie festgelegt.
Neigungswinkel
Wie bereits erwahnt kann eine lineare Einzelbemaßung horizontal, vertikal,
parallel zu den Bemaßungspunkten oder auch unter beliebigem Winkel erfol-
gen. Wahrend der Winkel bei horizontaler (0°), vertikaler (90°) und beliebiger
(x°) Richtung der Maßlinie festgelegt ist, muss er fur ein paralleles Einzelmaß
aus den beiden Geometrie-Referenzpunkten berechnet werden.
Parametersatz
Der Parametersatz enthalt samtliche Informationen zu geometrischen und
semantischen Eigenschaften bezuglich der Linien-, Symbolkomponenten und
der Textkomponente eines Einzelmaßes in Form von Attribut-Wert-Paaren
und stellt somit den Bemaßungsstil dar. Zur Modellierung ist ein Parameter-
satz-Manager in einer separaten Klasse vorzusehen, der sowohl Parametersatz-
Definitionen als auch eigentliche Parametersatze verwaltet. Die genauere Um-
setzung dieses Managers zur Abbildung des Bemaßungsstils ist im Abschnitt
3.3 naher beleuchtet.
Koordinatenraum
Der Koordinatenraum des CAD-Zeichnungsmodells verwaltet neben dem sys-
teminternen Skalierfaktor bezuglich Nutzer- und Welteinheiten eine Transfor-
mationsmatrix fur ein Nutzerkoordinatensystem und zwei weitere hinsichtlich
der Umrechnungen von Welt- in Nutzerkoordinaten bzw. Nutzer- in Weltko-
2 KONZEPT FUR DIE KETTENBEMASSUNG 30
ordinaten.
Mediator
Ist das Einzelmaß Bestandteil eines Kettenmaßes, erhalt es eine Referenz
auf den ubergeordneten Mediator Kettenmaß-Komponente, um diesen bei
Zustandsanderungen benachrichtigen zu konnen.
2.3.2 Funktionalitat
Die gesamte Funktionalitat der Einzelmaß-Komponente ist in seinen Metho-
den abgebildet. Diese lassen sich wie im Folgenden dargelegt klassifizieren
und beschreiben.
Zugriffsmethoden
Mit Hilfe der Zugriffsmethoden konnen die Attribute der Einzelmaß-Kompo-
nente geschrieben (set) und gelesen (get) werden.
Berechnungsmethoden
Die Eigenschaften der Linien, Symbole und des Textes des Einzelmaßes sind
aus den Kontrollpunkten, dem Neigungswinkel der Maßlinie, dem Parame-
tersatz und dem Koordinatenraum zu bestimmen. Zu Zwecken der Ubersicht-
lichkeit und Erweiterbarkeit ist jeweils eine Methode fur die Berechnung der
Eigenschaften (Koordinaten)
� der Maßlinie,
� der Maßhilfslinie 1,
� der Maßhilfslinie 2,
� des Maßbegrenzungssymbols 1,
2 KONZEPT FUR DIE KETTENBEMASSUNG 31
� des Maßbegrenzungssymbols 2 und
� des Maßtextes
vorzusehen.
Modifikationsmethoden
Die Modifikationsmethoden erlauben das Andern einzelner Parameter des
Einzelmaßes wie beispielsweise:
� Position eines Kontrollpunktes,
� Position des Maßtextes und
� Richtung der Maßlinie (Neigungswinkel).
Die Eigenschaften der Linien-, Symbolkomponenten und der Textkomponen-
te sind entsprechend zu aktualisieren, indem die Berechnungsmethoden ge-
rufen werden.
Schnittstellenmethoden
In den Schnittstellenmethoden erfolgt die Bestimmung der grafischen Re-
prasentation des Einzelmaßes. Hierbei werden alle Linien- und Symbolobjek-
te und der Text in einer im System vereinheitlichten Form an das aufrufende
Objekt zuruckgegeben. Des Weiteren ist zu den Schnittstellenmethoden die
Methode zur Transformation des gesamten Einzelmaßes zu zahlen. Wenn
diese von außen gerufen wird, mussen die Kontrollpunkte und der Neigungs-
winkel der Maßlinie entsprechend transformiert werden, anschließend sind
analog den Modifikationsmethoden die Berechnungsmethoden auszufuhren,
um die Eigenschaften der Linien-, Symbolkomponenten und der Textkompo-
nente zu aktualisieren.
2 KONZEPT FUR DIE KETTENBEMASSUNG 32
Benachrichtigungsmethoden
Ist ein Einzelmaß Bestandteil eines ubergeordneten Kettenmaßen informieren
die von außen nicht sichtbaren Benachrichtigungsmethoden das Mediator-
Objekt uber Zustandsanderungen. Sie werden intern gerufen, wenn die Be-
rechnungsmethoden die Linien-, Symbol- und Texteigenschaften der Einzelmaß-
Komponente modifizieren.
2.4 Kettenmaß-Komponente
In diesem Abschnitt wird das Konzept fur die Kettenmaß-Komponente als
Mediator bezuglich der das Kettenmaß bildenden Einzelmaße vorgestellt.
Diese Komponente besitzt keine grafische Reprasentation, hat aber die Auf-
gabe, die beteiligten Einzelmaß-Objekte so zu koordinieren, zu manipulieren,
dass jederzeit die Einhaltung folgender Randbedingungen garantiert ist:
� alle Einzelmaße besitzen den gleichen Parametersatz
� Ubereinstimmung des Bemaßungspunktes 2 des i-ten Einzelmaßes mit
dem Bemaßungspunkt 1 des (i+1)-ten Einzelmaßes
� Ubereinstimmung des Bemaßungspunktes 1 des i-ten Einzelmaßes mit
dem Bemaßungspunkt 2 des (i-1)-ten Einzelmaßes
� Ubereinstimmung der Maßlinien-Punkte des (i-1)-ten, i-ten und (i+1)-
ten Einzelmaßes
� Ubereinstimmung der Neigungswinkel der Maßlinie des (i-1)-ten, i-ten
und (i+1)-ten Einzelmaßes
Diesen Sachverhalt illustriert die Abbildung 20.
2 KONZEPT FUR DIE KETTENBEMASSUNG 33
Abbildung 20: Randbedingungen – Kettenmaß-Komponente
2.4.1 Eigenschaften
Die Kettenmaß-Komponente besitzt fur ihre Koordinierungsaufgabe die Men-
ge aller von einander abhangigen Einzelmaß-Komponenten, die zu einem Ket-
tenmaß zusammengefugt werden sollen. Hierzu wird ein Attribut in Form
einer doppelt verketteten Liste angelegt, da es fur die Aufgabe der Koordi-
nierung sinnvoll erscheint, wenn jedes beteiligte Einzelmaß seinen Vorganger
und Nachfolger kennt. Hinsichtlich des beschriebenden Mediatorkonzeptes
enthalt diese Liste somit alle zu uberwachenden Colleagues in ihrer geome-
triebezogenen Reihenfolge (s. Abbildung 21).
2.4.2 Funktionalitat
Die Abbildung der Wechselbeziehungen zwischen den das Kettenmaß bilden-
den Einzelmaßen erfolgt in den Methoden der Kettenmaß-Komponente. Um
die beschriebenen Randbedingungen einzuhalten, werden neben den ublichen
2 KONZEPT FUR DIE KETTENBEMASSUNG 34
Abbildung 21: Eigenschaften – Kettenmaß-Komponente
Zugriffsmethoden (Lesen und Schreiben des Listen-Attributes), die im Fol-
genden beschriebenen Methoden bereitgestellt.
Verwaltungsmethoden
Verwaltungsmethoden sind diejenigen Methoden, die vom System gerufen
werden konnen, um ein Einzelmaß dem Kettenmaß
� am Anfang bzw.
� am Ende
hinzuzufugen. Hierbei wird das neue Einzelmaß an das Vorganger- bzw.
Nachfolger-Einzelmaß in der Maßkette den Randbedingungen entsprechend
angepasst.
Beim Loschen eines Einzelmaßes aus der Maßkette sorgt das System dafur,
dass das entfernte Objekt nicht mehr dargestellt wird. Die Kettenmaß-Kompo-
nente behalt jedoch das entfernte Einzelmaß als Colleague, um konsistent
bezuglich seiner Randbedingungen zu bleiben. Als Ergebnis entsteht in der
grafischen Darstellung ein Kettenmaß mit Lucke.
Koordinierungsmethoden
Die Koordinierungsmethoden bilden die fur einen Mediator typische Funk-
tionalitat der Aktualisierung aller Colleagues bei Benachrichtung uber eine
2 KONZEPT FUR DIE KETTENBEMASSUNG 35
Zustandsanderung an einem einzelnen Colleague ab. Das heißt, diese Metho-
den konnen von den beteiligten Einzelmaß-Komponenten gerufen werden.
Andert sich beispielsweise der Geometrie-Referenzpunkt 1 des i-ten Einzel-
maßes, wird die Kettenmaß-Komponenten uber diese Zustandsanderung be-
nachrichtigt, erhalt als Ubergabeparameter den Sender (hier das i-te Einzel-
maß) und kann nun unter Beachtung der Randbedingungen den Geometrie-
Referenzpunkt 2 des (i-1)-ten Einzelmaßes aktualisieren.
Je Randbedingung existiert somit eine Methode, die Aktualisierungsalgo-
rithmen ausfuhrt, wenn sie von demjenigen Colleague gerufen wird, der eine
bestimmte Zustandsanderung erfahren hat.
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 36
3 Prototypische Umsetzung der Kettenbema-
ßung
In diesem Abschnitt der Arbeit wird erlautert, wie das oben beschriebene
Konzept fur eine Kettenbemaßung umgesetzt und in den bestehenden CAD-
Prototyp integriert wird. Hierzu werden zunachst allgemeine Aussagen uber
die Systemarchitektur des zu verwendenden CAD-Prototyps gemacht und
anschließend darauf aufbauend zu implementierende Systemteile, welche die
Einzelmaß-Komponente, den Bemaßungsstil und die Kettenmaßkomponente
abbilden, vorgestellt. Abschließend soll an einigen Beispielen die Funktions-
weise des CAD-Prototyps hinsichtlich der Kettenbemaßung veranschaulicht
werden.
3.1 Systemarchitektur des CAD-Prototyps
Die grundlegende Systemarchitektur des, um ein Bemaßungswerkzeug zu er-
weiternden CAD-Prototyps ist in Abbildung 22 illustriert.
Abbildung 22: Systemarchitektur – CAD-Prototyp
CAD-Modell
Das CAD-Modell7 enthalt die Menge der Zeichnungskomponenten, den Ko-
ordinatenraum, den Namensraum und die Menge der Layer in der CAD-
7auch Zeichnungsmodell
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 37
Anwendung. Zu den Zeichnungskomponenten zahlen u.a. die grafischen bzw.
geometrischen Primitiva wie Linie, Kreis usw., aber auch die Bemaßung. Um
eine weitere Komponente anzulegen, existiert im Prototyp eine Schnittstel-
le8 Component, die von allen Zeichnungskomponenten zu implementieren ist.
Das Zeichnungsmodell ist derjenige Teil des Gesamtsystems der persistent in
einer Datei gespeichert wird.
Befehle
Die Befehle reprasentieren Nutzereingaben, operieren auf dem CAD-Modell
und halten es konsistent, indem sie
� Objekte dem Zeichnungsmodell hinzufugen,
� Objekte aus dem Zeichnungsmodell entfernen oder
� Objekte im Zeichnungsmodell andern.
Bezuglich eines Bemaßungswerkzeuges ist der Prototyp, demnach um Befehle
fur das Erzeugen und das Andern einer Bemaßung und auch fur das Andern
eines Bemaßungsstils zu erweitern. Jeder Befehl im CAD-Prototyp entspricht
einer Klasse, welche die vorhandene Schnittstelle Cmd implementiert. Ein Be-
fehl besteht jeweils aus einem DO-, UNDO- und REDO-Teil, um Befehle
auszufuhren, ruckgangig zu machen bzw. wiederherzustellen. Werden neue
Befehlsklassen angelegt, mussen sie dem System verfugbar gemacht werden,
in dem sie in die Kommandotabelle der Shell eingetragen werden.
Shell / GUI
Zur Kommunikation mit dem CAD-System erlaubt die Shell eine Nutzerein-
8engl.: interface
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 38
gabe alphanumerischer Art, die GUI9 hingegen stellt eine grafische, intuitiv
bedienbare Benutzerschnittstelle dar. Dieser Teil des Systems kennt alle Be-
fehle, um Nutzereingaben in systeminterne Befehle zu uberfuhren und stellt
auch eine alphanumerische bzw. grafische Sicht auf das CAD-Modell dar.
3.2 Umsetzung der Einzelmaß-Komponente
Im folgenden Abschnitt wird die Integration der Einzelmaß-Komponente in
den CAD-Prototyp beschrieben. Wie bereits erwahnt mussen dazu eine Zeich-
nungskomponente und zugehorige Befehle erzeugt werden.
3.2.1 Komponente”ComponentDimSingle“
Die Klasse ComponentDimSingle reprasentiert die Zeichnungskomponente
fur ein Einzelmaß und wird dem Paket cib.cad.db.comp zugeordnet. Ein
Objekt dieser Klasse stellt somit ein lineares Einzelmaß mit horizontaler,
vertikaler, paralleler oder auch beliebiger Ausrichtung dar. Die Einbettung
in das bestehende System wird in Abbildung 23 verdeutlicht.
Schnittstellen
Um dem Anspruch einer neuen Zeichnungskomponente gerecht zu werden,
implementiert die Klasse die Schnittstellen cib.cad.db.comp.Component
und java.io.Serializable. Außerdem wird das Interface ColleagueDim-
Chain implementiert, um als Bestandteil einer Kettenmaß-Komponente ver-
wendet werden zu konnen.
Eigenschaften
Die Einzelmaß-Komponente besitzt zunachst diejenigen Attribute, die not-
9Graphical User Interface
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 39
Abbildung 23: Klassendiagramm – ComponentDimSingle
wendig sind, um die Geometrie eines Einzelmaßes bezuglich der Linien, der
Symbole und des Text eindeutig festzulegen. Sie werden in Weltkoordinaten
hinsichtlich des verwendeten Koordinatenraumes (cib.util.CoordSpace)
abgelegt.
� Koordinaten des Startpunktes10 (m xs, m ys)
� Koordinaten des Endpunktes11 (m xe, m ye)
� Koordinaten des Distanzpunktes12 (m xd, m yd)
� Winkel der Maßlinie (m angleDim)
� Koordinatenraum (m cs)
� Parametersatz (Bemaßungsstil) (m par)
10entspricht Geometrie-Referenzpunkt 111entspricht Geometrie-Referenzpunkt 212entspricht Maßlinien-Punkt
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 40
� evtl. Mediator (Kettenmaß-Komponente) (m mediator)
Des Weiteren werden”Hilfs“-Attribute zur grafischen Reprasentation des
Einzelmaßes verwendet, um die Linien, die Symbole und den Text in Objek-
ten handhaben zu konnen. Somit sind die Maßlinie und die beiden Maßhilfs-
linien vom Typ java.awt.geom.Line2D, die Maßbegrenzungssymbole vom
Typ java.awt.Shape und der Text eine Auspragung der Klasse cib.util.Att-
ributedText. Diese Attribute werden ebenfalls in Weltkoordinaten vorgehal-
ten.
Zugriffsmethoden
Die Zugriffsmethoden sind als offentlich deklarierte Methoden, die mit Aus-
nahmen den Lese- und Schreibzugriff auf die”Primar“-Attribute erlauben.
Es erscheint beispielsweise nicht sinnvoll, den Bemaßungswinkel nach der In-
itialisierung eines Einzelmaß-Objektes zu verandern. Deshalb kann auf das
Attribut m angleDim nur lesend zugegriffen werden.
Berechnungsmethoden
Zur Attributierung der Linien- und Symbol-Objekte und des Text-Objektes
dienen unter Verwendung des Koordinatenraums und des Parametersatzes
die Berechnungsmethoden. Sie berechnen demnach
� die Koordinaten der Maßlinie,
� die Koordinaten der beiden Maßhilfslinien,
� die geometrische Form der Maßbegrenzungssymbole und
� den Wert, die Form und die Position des Maßtextes.
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 41
Diese Berechnung wird mit der Validierungsmethode validate() gestartet.
Um den Implementierungsaufwand komplexer trigonometrischer Berechnun-
gen, beispielsweise bei beliebig geneigter Maßlinie, zu umgehen, wird der im
Folgenden beschriebene Algorithmus favorisiert und implementiert. Die Idee
ist die, dass das Nutzerkoordinatensystem in den Startpunkt des Einzelmaßes
verschoben und um den Neigungswinkel der Maßlinie gedreht wird. Folglich
konnen die Maßlinie horizontal und die Maßhilfslinien vertikal”gezeichnet“
und jegliche, im Parametersatz definierte Abstande und Langen direkt uber-
nommen werden. Abschließend muss das Nutzerkoordinatensystem wieder
in seine ursprungliche Lage zurucktransformiert werden. Zusammenfassend
werden folgende Schritte in der validate()-Methode abgearbeitet
1. Transformationsmatrix des aktuellen Nutzerkoordinatensystems mer-
ken
2. Nutzerkoordinatensystem in den Startpunkt verschieben und um den
Neigungswinkel der Maßlinie drehen
3. jeweilige (private) Methoden zur Berechnung der Linien, Symbole und
des Textes rufen
4. Nutzerkoordinatensystem in Ursprungslage zurucksetzen
Linien-Objekte
Die Maßlinie und die beiden Maßhilfslinien werden unter Verwendung des
Parametersatzes, welcher Abstande, Langen, Sichtbarkeiten usw. festlegt (s.
Abschnitt 3.3), berechnet. Es entstehen also drei attributierte Linien-Objekt
von Typ java.awt.geom.Line2D.
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 42
Symbol-Objekte
Maßbegrenzungssymbole konnen Linien, Pfeile oder auch Kreise sein (vgl.
Abschnitt 1.3). Um beliebige geometrische Formen annehmen zu konnen, sind
die beiden Maßbegrenzungssymbole vom Typ java.awt.Shape. In Abhangig-
keit vom Parametersatz werden Linien-, Pfeil- oder Kreis-Objekte, welche
jedoch gleichzeitig auch Shape-Objekte sind, erzeugt.
Text-Objekt
Der Maßtext bzw. die Maßzahl ist wie bereits erwahnt vom Typ Attributed-
Text und besitzt somit als Eigenschaften einen attributierbaren String und
seine Position. Wahrend die Position analog der Linien- und Symbol-Objekte
bestimmt wird, muss der Text-String selbst gesondert zusammengesetzt wer-
den. Seine Einheit wird im Parametersatz festgelegt. Das Runden der Maß-
zahl kann relativ einfach uber die Klasse java.text.DecimalFormat erfol-
gen. Um zu bestimmen, wann bei zu verwendender Maßeinheit [cm/m] eine
”hochgestellte 5“ an den Maßtext anzuhangen ist, wird der in der Abbildung
24 dargestellte Algorithmus verwendet und implementiert.
Andern sich Eigenschaften wie
� der Skalierfaktor,
� die Koordinaten der Kontrollpunkte oder
� der Parametersatz
wird die Validierungsmethode invalidate() gerufen, welche die Attribu-
te zur grafischen Reprasentation des Einzelmaßes ungultig erklart, das heißt
die Linien-, Symbol-Objekte und das Text-Objekt mit dem Wert null belegt.
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 43
Abbildung 24: Algorithmus – Bestimmung des Maßtextes fur [cm/m]
Modifikationsmethoden
Wie in Abschnitt 2.3.2 beschrieben dienen die Modifikationsmethoden bei-
spielsweise dazu, die Kontrollpunkte eines Einzelmaßes zu modifizieren. Im
Rahmen dieser Arbeit wurden hierzu die als offentlich deklarierten Metho-
den setStartPoint(), setEndPoint() und setDistancePoint() imple-
mentiert. Auf eine Methode zur Positionierung des Maßtextes wurde ver-
zichtet. Diese kann jedoch relativ einfach der Klasse ComponentDimSingle
hinzugefugt werden.
Schnittstellenmethoden
Die Schnittstellenmethoden geben zum einen die grafische Reprasentation
der Linien-, Symbol-Objekte und des Text-Objektes, nach vorheriger Trans-
formation in Nutzerkoordinaten, an den View-Teil des CAD-Prototyps wei-
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 44
ter. Zum anderen zahlt hierzu die Methode zur Transformation (Transla-
tion, Rotation) der gesamten Einzelmaß-Komponente im Koordinatenraum
des CAD-Systems. Hierbei werden die einzelnen Kontrollpunkte entprechend
transformiert und anschließend die Linien-, Symbol-Objekte und das Text-
Objekt neu berechnet.
Benachrichtigungsmethoden
Im Falle der Zugehorigkeit eines Einzelmaßes zu einer Maßkette fungiert die
Einzelmaß-Komponente als Colleague-Objekt des ubergeordneten Mediator-
Objektes Kettenmaß-Komponente. Aufgrund der Anforderungen (s. Abschnitt
1.3) und der Randbedingungen (s. Abschnitt 2.4) hinsichtlich der Ketten-
bemaßung muss die Kettenmaß-Komponente (Mediator) uber Anderungen
der Eigenschaften seiner Einzelmaße (Colleague) informiert werden. Dies ge-
schieht uber die Beachrichtigungsmethoden
� changedStartPoint(),
� changedEndPoint(),
� changedDistancePoint() und
� changedDimParSet(),
welche aus der Schnittstelle cib.cad.db.comp.ColleagueDimChain zu im-
plementieren sind. In diesen Methoden wird die entsprechende Methode des
Mediator-Objektes gerufen, um auf diese Anderungen zu reagieren.
3.2.2 Befehl”AddDimSingle“
Um dem Zeichnungsmodell des CAD-Prototyps eine Einzelmaß-Komponente,
also ein Objekt der Klasse ComponentDimSingle hinzuzufugen, wird die Be-
fehlsklasse AddDimSingle angelegt, welche dem Paket cib.cad.shell.cmds
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 45
zuzuordnen ist (s. Abbildung 25). Diese fragt vom Nutzer ab, ob er horizontal,
Abbildung 25: Klassendiagramm – AddDimSingle
vertikal, parallel oder unter beliebigem Winkel bemaßen mochte. Im letzteren
Fall wird zusatzlich noch der Winkel der Maßlinie abgefragt. Nachstehende
weitere Schritte werden anschließend in der doCmd()-Methode abgearbeitet.
1. Kopie des als aktuell eingestellten Parametersatzes anlegen (vgl. Abb-
schnitt 3.3)
2. Referenz auf den Bemaßungslayer holen, diesen entsprechend dem Pa-
rametersatz anpassen und als aktuellen Layer setzen
3. in Abhangigkeit von den Kontrollpunkten und dem Maßlinienwinkel
die Rollen des Start-, End- und Distanzpunktes bestimmen
4. eine Einzelmaß-Komponente erzeugen und Koordinatenraum, Parame-
tersatz, Maßlinienwinkel und Start-, End- und Distanzpunkt ubergeben
5. ursprunglich aktuellen Layer als aktuellen Layer setzen
Nahere Erlauterungen zum Bemaßungslayer und zum Bemaßungsstil (Para-
metersatz) sind im Abschnitt 3.3 zu finden.
Die angesprochene Rollenverteilung innerhalb der Kontrollpunkte muss des-
halb erfolgen, weil der Maßtext immer von unten und von rechts zu lesen
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 46
sein soll, und der Startpunkt somit immer links bezuglich des Maßtextes lie-
gen muss. Hierzu mussen einige Falle unterschieden werden, innerhalb derer,
der Bemaßung unter beliebigem Winkel besondere Beachtung zu schenken
ist. Darauf genauer einzugehen wurde jedoch den Rahmen dieses Dokumen-
tes sprengen. An dieser Stelle sei deshalb auf den dokumentierten Quellcode
verwiesen.
Weiterhin werden die vom cib.util.cmd.Cmd-Interface geforderten Metho-
den undoCmd() und undoCmd() in der Befehlsklasse implementiert. Diese
sorgen fur das Ruckgangigmachen bzw. Wiederherstellen der in der doCmd()-
Methode definierten Operationen.
3.2.3 Befehl”SetDimPoints“
Um nachtraglich die Kontrollpunkte eines Einzelmaßes zu modifizieren bzw.
neu zu setzen, wird die Befehlsklasse SetDimPoints angelegt. Diese imple-
mentiert analog zu anderen Befehlsklassen die Schnittstelle cib.util.cmd.Cmd
und die darin definierten Methoden. Folgende Aktionen werden von der
doCmd()-Methode dieser Befehlsklasse ausgefuhrt:
1. Prufen, ob genau eine Zeichnungskomponente vom Typ ComponentDim-
Single selektiert ist; wenn nein: Abbruch
2. Abfrage, welcher Kontrollpunkt neu gesetzt werden soll (Start-, End-
oder Distanzpunkt)
3. Einlesen des neuen Punktes und Rufen der entsprechenden Methode
der Zeichnungskomponente zum Setzen des neuen Punktes
In einem Attribut dieser Befehlsklasse wird der alte Punkt gespeichert, um
den Befehl in der undoCmd()- und in der redoCmd-Methode ruckgangig zu
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 47
machen bzw. wiederherzustellen.
3.3 Umsetzung des Bemaßungsstils
Im Abschnitt 1 dieser Arbeit wird dargelegt, warum eine Bemaßung konfi-
gurierbar sein muss. Dieser Anforderung kann durch die Einfuhrung eines
parametrisierbaren Bemaßungsstils Rechnung getragen werden. In den fol-
genden Abschnitten wird beschrieben, wie ein Bemaßungsstil in den CAD-
Prototyp integriert wird. Hierzu werden sogenannte Parametersatze genutzt,
welche von einem”Bemaßungsstil-Manager“ verwaltet werden. Wird dem
Zeichnungsmodell eine neue Einzelmaß-Komponente hinzugefugt, erhalt die-
se eine Kopie des als aktuell eingestellten Bemaßungsstils. Durch entspre-
chende Befehle konnen andere Bemaßungsstile als aktuell gesetzt, oder ganze
Parametersatze verandert werden.
3.3.1 Komponente”DimParManager“
Zur Abbildung eines Bemaßungsstil-Managers wird die Klasse DimParManager
implementiert. Diese hat die Aufgabe, die Definitionen fur Parametersatze
und die eigentlichen Parametersatze zu verwalten. Sie ist wie in Abbildung
26 dargestellt in das bestehende CAD-System integriert und besitzt folgende
Eigenschaften:
� die Definitionen fur die Parametersatze (parDefs)
� den als aktuellen eingestellten Parametersatz (defaultDimParSet)
� einen fest definierten, und nicht veranderbaren Parametersatz, welcher
die Vorschriften der DIN 1356-1 reprasentiert (dimParSet DIN)
� einen freien, veranderbaren Parametersatz (dimParSet STD)
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 48
Abbildung 26: Klassendiagramm – DimParManager
Um den Bemaßungsstil-Manager inklusive seiner Parametersatze in die Men-
ge der Zeichnungskomponenten eintragen und somit persistent speichern zu
konnen, implementiert dieser die Schnittstellen cib.cad.db.comp.Component
und java.io.Serializable. Das bedeutet, dass die Schnittstellenmethoden
hinsichtlich des Interfaces Component implementiert werden mussen, obwohl
der Bemaßungsstil-Manager selbst keine geometrische bzw. grafische Re-
prasentation besitzt. Das heißt, die entsprechenden Methoden bleiben”leer“
bzw. geben”leere“ Attribute an das aufrufende Objekt zuruck.
Die Definitionen fur die Parametersatze und die Parametersatze selbst wer-
den, wie im Folgenden beschrieben, jeweils in einer inneren Klasse modelliert.
Innere Klasse DimParSetDefinitions
Wie bereits in Abschnitt 1.3 beschrieben gibt es eine Vielzahl von Parame-
tern, um das Aussehen der Bemaßungskomponente zu steuern. Diese Para-
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 49
meter lassen sich in zwei Arten unterteilen.
Zum einen gibt es”geometrische“ Parameter. Diese Parameter legen die geo-
metrischen Eigenschaften eines Einzelmaßes zahlenmaßig fest. Hierzu sind
folgende Eigenschaften zu zahlen und als geometrische Parameter in Form
einer Menge (java.util.Set) implementiert (vgl. Abbildung 26):
� Uberstand der Maßlinie uber Maßhilfslinie (Extension BaseLine)
� Uberstand der Maßhilfslinien uber die Maßlinie (Extension HelpLine)
� Abstand der Maßhilfslinie vom Kontrollpunkt (Distance HelpLine)
� Abstand des Maßtextes von der Maßlinie (Distance Text BaseLine)
� . . .
Da diese Definitionen zur Laufzeit des Programms nicht verandert werden
sollen, wird diese Menge durch programmierungstechnische Hilfsmittel unmo-
difizierbar gemacht (java.util.Collections.unmodifiableSet(Set s)).
Die Eintrage in dieser Menge dienen nun als Schlussel fur entsprechenden
Parameter in den Parametersatzen. Das heißt, es konnen nur diejenigen Pa-
rameter in den Parametersatzen mit Werten belegt werden, fur die laut der
Definitionen ein Schlussel existiert.
Auf der anderen Seite konnen”semantische“ Parameter unterschieden wer-
den. Diese legen Sichtbarkeiten, Ausrichtungen usw. fest. Die Definitionen
fur diese Art von Parametern werden wie folgt abgebildet. Analog zu den
geometrischen Parametern existiert ein Schlussel, der den Parameter cha-
rakterisiert. Weiterhin wird an dieser Stelle ein Wertebereich fur jeden se-
mantischen Parameter festgelegt, um von der Bemaßungskomponente inter-
pretiert werden zu konnen. Programmierungstechnisch kann dieser Sachver-
halt in Form einer Abbildung: Schlussel → Wertebereich unter Verwendung
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 50
der Klasse java.util.Map modelliert werden (vgl. Abbildung 26). Analog
zu den geometrischen Parametern sollte diese Map als unmodifizierbar er-
klart werden (java.util.Collections.unmodifiableMap(Map m)). Nach-
stehend sind einige solche Parameter mit ihren Wertebereichen aufgelistet.
� Einheit des Maßtextes (Text Units: {cm/m, mm, cm, m, km})
� Ausrichtung des Maßtextes zwischen den Maßhilfslinien (Text Align-
ment: {Center, Left, Right})
� Sichtbarkeiten der Maßbegrenzungssymbole (LimitSymbol Visibility:
{Both, Left, Right, None})
� . . .
Innere Klasse DimParSet
Die eigentlichen Parametersatze, das heißt die Attribut/Schlussel-Wert-Zuord-
nungen werden durch die innere Klasse DimParSet modelliert (vgl. Abbildung
26) und entsprechend der Definitionen fur die Parametersatze instanziert. Ein
Parametersatz besitzt demnach folgende Eigenschaften:
� Bezeichnung bzw. Bedeutung des Parametersatzes (semantics)
� Abbildungstabelle fur geometrische Paramter (geomParams)
� Abbildungstabelle fur semantische Paramter (semaParams).
Wahrend die Abbildungstabelle fur geometrische Parameter eine Zuordung
der Form java.lang.String → java.lang.Double ist, werden bei den se-
mantischen Parameter zwei Objekte der Klasse java.lang.String aufein-
ander abgebildet.
Die geometrischen Parameter werden bei der Erzeugung eines Parametersat-
zes mit sinnvollen Werten vorbelegt, konnen aber vom Nutzer des Programms
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 51
zur Laufzeit beliebig verandert werden, solange der Schlussel in den Definitio-
nen fur die geometrischen Parameter existiert und der Wert des Parameters
eine Zahl darstellt. Hinsichtlich der semantischen Parameter ist festzuhal-
ten, dass der Nutzer die vorbelegten Werte fur die Parameter zur Laufzeit
nur in dem in den Definitionen festgeschriebenen, zulassigen Wertebereich
verandern kann. Hierzu sind die Methoden
� setGeomParameter(String key, double value)
� setSemaParameter(String key, String value)
implementiert. Des Weiteren sind fur den lesenden Zugriff auf die Eigenschaf-
ten eines Parametersatzes entsprechende Zugriffsmethoden vorgesehen.
An dieser Stelle sei auf folgende Problematik bezuglich der Anwendung der
Parametersatze hingewiesen. Einige geometrischen Parameter wie Hohe des
Maßtextes und Linienwichte der Linien-Objekte konnen nicht von der Be-
maßungskomponente selbst umgesetzt werden. Diese Eigenschaften beziehen
sich auf einen Layer, welchem entsprechende Zeichnungskomponenten zuge-
ordnet werden konnen. Das bedeutet, dass fur die Umsetzung der angespro-
chenen Eigenschaften ein spezieller Bemaßungslayer angelegt wird, der eben
die entsprechenden Parameter aus dem Bemaßungsstil abbilden kann. Das
wurde bedeuten, dass fur jeden Parametersatz ein entsprechender Layer an-
zulegen und zur Laufzeit zu verwalten ist. Wird davon abgesehen und davon
ausgegangen, dass auf einer Zeichnung nur unter Verwendung eines einzigen
Parametersatzes Bemaßungskomponenten erstellt werden, ist es ausreichend,
nur einen einzigen Bemaßungslayer zu definieren. Dieser wird uber einen fest
definierten Namen (hier: dimLayer) im Namensraum des CAD-Systems ab-
gelegt und kann somit zur Laufzeit gefunden und manipuliert werden (wenn
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 52
sich beispielsweise der aktuelle Parametersatz andert). Es konnen jedoch
mit den eben angesprochenen Einschrankungen verschiedene Auspragungen
eines Parametersatzes in einer Zeichnung verwendet werden. Dies ist da-
durch moglich, dass nur Kopien des als aktuell eingestellten Parametersat-
zes an die Bemaßungskomponenten ubergeben werden und keine Referen-
zen. Deshalb ist es notwendig, dass die Klasse DimParSet die Schnittstelle
java.lang.Cloneable und deren Methoden implementiert (vgl. Abbildung
26).
3.3.2 Befehl”SetDefaultDimParSet“
Wie eben erwahnt wird bei der Erstellung einer Einzelmaß-Komponente ei-
ne Kopie des als aktuell eingestellten Parametersatzes ubergeben. Soll nun
aber ein anderer Bemaßungsstil zum Bemaßen verwendet werden, muss die-
ser als aktueller Parametersatz definiert werden. Hierzu wird die Befehls-
klasse SetDefaultDimParSet implementiert. Diese fragt den Nutzer ab und
setzt den entsprechenden Parametersatz als”default“. Wie bereits beschrie-
ben besitzt der Bemaßungsstil-Manager nur zwei Parametersatze. Dies sind
zum einen ein der DIN 1356-1 entsprechende und zum anderen ein”frei-
er“ Parametersatz. Somit kann sich der Anwender zwischen diesen beiden
Bemaßungsstilen entscheiden.
3.3.3 Befehl”SetDimParams“
Um einzelne Parameter des freien, modifizierbaren Parametersatz zu verandern,
den Wunschen des Nutzers anzupassen, wird die Befehlsklasse SetDimParams
in den CAD-Prototyp integriert. In der doCmd()-Methode wird zunachst
uberpruft, ob der als aktuell eingestellte Parametersatz nicht der fest defi-
nierte DIN-Parametersatz ist. Ist das der Fall werden anschließend die neuen
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 53
Werte fur die einzelnen Parameter nacheinander abgefragt und mit Hilfe der
entsprechenden Methoden der Klasse DimParManager.DimParSet geandert.
Des Weiteren wird der Bemaßungslayer bezuglich der ihn betreffenden Pa-
rameter aktualisiert. Die ursprunglichen Einstellungen werden vorgehalten,
um das Modifizieren des Parametersatzes ruckgangig zu machen bzw. wie-
derherzustellen.
3.4 Umsetzung der Kettenmaß-Komponente
Dieser Abschnitt der Arbeit soll die Integration einer Kettenmaß-Komponente
hinsichtlich des im Abschitt 2 erstellten Konzeptes verdeutlichen. Hierzu sind
wiederum eine Zeichnungskomponente und ein zugehoriger Befehl zu imple-
mentieren.
3.4.1 Komponente”ComponentDimChain“
Die Klasse ComponentDimChain reprasentiert die Zeichnungskomponente fur
ein Kettenmaß und wird analog der Klasse ComponentDimSingle dem Paket
cib.cad.db.comp zugeordnet. Die Abbildung 27 illustriert die Integration
dieser Klasse in den CAD-Prototyp.
Schnittstellen
Um mit der Menge aller Zeichnungskomponenten persistent gespeicher wer-
den zu konnen, implementiert die Klasse ComponentDimChain die Schnittstel-
len cib.cad.db.comp.Component und java.io.Serializable. Die Ketten-
maß-Komponente selbst besitzt keine geometrische bzw. grafische Reprasen-
tation, da diese ja schon Eigenschaft der das Kettenmaß bildenden Einzelmaß-
Komponenten ist. Die Randbedingungen hinsichtlich eines Kettenmaßes (vgl.
Abschnitt 2.4) zu erfullen, ist die Aufgabe der Kettenmaß-Komponente. Diese
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 54
Abbildung 27: Klassendiagramm – ComponentDimChain
implementiert dementsprechend die Schnittstelle cib.cad.db.comp.Mediator-
DimChain und kann somit als Mediator bezuglich der Einzelmaß-Komponenten
fungieren.
Eigenschaften
Die Kettenmaß-Komponente besitzt als einziges Attribut eine doppelt-verket-
tete Liste aller ihr zugeordneten Einzelmaß-Komponenten. Die Umsetzung
dieser Liste erfolgt durch ein Objekt der Klasse java.util.LinkedList(s.
Abbildung 27). Die einzelnen Einzelmaße sind in dieser Liste entsprechend
ihrer geometrischen Lage eingetragen.
Verwaltungsmethoden
Hinsichtlich der im Abschnitt 1.3 beschriebenen Anforderung an ein Ketten-
maß werden folgende Methoden in der Klasse ComponentDimChain imple-
mentiert, die die Liste der Einzelmaße verwalten (s. Abbildung 27).
� Methode zum Hinzufugen eines neuen Einzelmaßes am Anfang
(addColleagueLeft())
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 55
� Methode zum Hinzufugen eines neuen Einzelmaßes am Ende
(addColleagueRight())
� Methode zum Entfernen eines Einzelmaßes (removeColleague())
Koordinierungsmethoden
Die Koordinierungsmethoden sind diejenigen Methoden, die aus der Schnitt-
stelle cib.cad.db.comp.MediatorDimChain zu implementieren sind und die
Aufgabe haben, bei Anderung der Eigenschaften eines Einzelmaßes andere
Einzelmaße entsprechend der im Abschnitt 2.4 dargelegten Randbedingungen
zu aktualisieren. Hierzu zahlen die Methoden
� collChangedStartPoint(ColleagueDimChain coll),
� collChangedEndPoint(ColleagueDimChain coll),
� collChangedDistancePoint(ColleagueDimChain coll) und
� collChangedDimParSet(ColleagueDimChain coll).
Andert sich beispielsweise der Startpunkt eines Einzelmaßes aus der Liste
der Colleagues, meldet dieses Einzelmaß diese Anderung seinem ubergeord-
netem Kettenmaß, indem es die Methode collChangedStartPoint(this)
ruft und dabei eine Referenz auf sich selbst der Kettenmaß-Komponente
liefert. Der Mediator Kettenmaß kann nun innerhalb dieser Methode die Po-
sition des aufrufenden Einzelmaßes in der Liste der Colleagues bestimmen
und den Endpunkt des nachsten Einzelmaßes in dieser Liste mit dem neuen
Startpunkt des aufrufenden Einzelmaßes abgleichen. Analog ist die Methode
collChangedEndPoint(...) zu implementieren.
Andert sich jedoch ein Distanzpunkt einer Einzelmaß-Komponente hat das
zur Folge, dass die Distanzpunkte aller weiteren Einzelmaße in der Liste der
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 56
Colleagues die Koordintaten des neuen Distanzpunktes erhalten.
Wird einem Einzelmaß ein neuer Parametersatz zugeordnet, meldet das Ein-
zelmaß diese Anderung der ubergeordneten Kettenmaß-Komponente, welches
wiederum allen weiteren Einzelmaßen diese neue Eigenschaft zuordnet.
Die Rolle der Einzelmaß-Komponente als Colleague und die Rolle der Ketten-
maß-Komponente als Mediator sollen in der Abbildung 28 illustriert werden.
Abbildung 28: Rollen – Einzelmaß und Kettenmaß
3.4.2 Befehl”CreateDimChain“
Um dem Zeichnungsmodell des CAD-Prototyps eine Kettenmaß-Komponente,
also ein Objekt der Klasse ComponentDimChain hinzuzufugen, wird die Be-
fehlsklasse CreateDimChain erstellt, welche dem Paket cib.cad.shell.cmds
zuzuordnen ist (s. Abbildung 29). Diese implementiert der Schnittstelle
cib.util.cmd.Cmd entsprechend die doCmd()-Methode, in der folgende Ope-
rationen abgearbeitet werden:
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 57
Abbildung 29: Klassendiagramm – CreateDimChain
1. Prufen, ob genau eine Zeichnungskomponente vom Typ ComponentDim-
Single selektiert ist; wenn nein: Abbruch
2. Referenz auf deren Mediator-Objekt holen bzw. neues Mediator-Objekt
anlegen und setzen
3. Prufen, ob selektierte Komponente am Anfang oder am Ende in der
Colleague-Liste des Mediators steht; wenn nein: Abbruch
4. Abfrage, in welche Richtung Einzelmaß erweitert werden soll
5. neues Einzelmaß entsprechend Randbedingungen eines Kettenmaßes
(s. Abbschnitt 2.4) anlegen und in Menge der Zeichnungskomponenten
eintragen
6. angelegtes Einzelmaß in Liste des Mediators eintragen.
Wahrend bei der Erzeugung eines Einzelmaßes durch den Befehl AddDim-
Single eine Kopie des als aktuell eingestellten Parametersatzes angelegt und
dem Einzelmaß ubergeben wird, ist bei der Erzeugung einer Maßkette dem
neu angelegten Einzelmaß die Referenz auf den Bemaßungsstil des zu er-
weiternden Einzelmaßes zu ubergeben. Das liegt darin begrundet, dass alle
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 58
Einzelmaße laut Konvention denselben Parametersatz verwenden sollen.
Weiterhin werden die vom cib.util.cmd.Cmd-Interface geforderten Metho-
den undoCmd() und undoCmd() in der Befehlsklasse implementiert. Diese
sorgen fur das Ruckgangigmachen bzw. Wiederherstellen der in der doCmd()-
Methode definierten Operationen.
3.5 Beispiele
Im folgenden Abschnitt soll nun anhand von Beispielen und Screenshots ver-
deutlicht werden, wie die Bemaßungskomponente im CAD-Prototyp verwen-
det werden kann.
Einzelmaß
In einem ersten Beispiel wird die Einzelmaß-Komponente vorgestellt. In Ab-
bildung 30 ist zu sehen, wie sich die Ausrichtung der Maßlinie auf die Be-
maßung selbst auswirkt. Im Fall der beliebigen Ausrichtung der Maßlinie
betragt deren Winkel 60°.
Bemaßungsstil
Die Auswirkungen verschiedener Auspragungen der Parametersatze auf die
Bemaßung wird in einem weiteren Beispiel illustriert (s. Abbildung 31).
Wahrend das untere horizontale Einzelmaß den fest vordefinierten DIN-
Parametersatz verwendet, ist den anderen Einzelmaßen eine jeweils unter-
schiedliche Auspragung des freien Parametersatzes zugeordnet.
Kettenmaß
In einem letzten Beispiel soll verdeutlicht werden, wie ein Kettenmaß seine
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 59
Abbildung 30: Screenshot – Einzelmaß
Einzelmaße uberwacht und diese den Randbedingungen entsprechend kon-
sistent halt. In der Abbildung 32 ist ein Kettenmaß bestehend aus drei Ein-
zelmaßen dargestellt.
Wird nun der Endpunkt des mittleren Einzelmaßes verandert, passt das
rechte Einzelmaß den Konventionen entsprechend seinen Startpunkt an (s.
Abbildung 33 ).
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 60
Abbildung 31: Screenshot – Bemaßungsstil
3 PROTOTYPISCHE UMSETZUNG DER KETTENBEMASSUNG 61
Abbildung 32: Screenshot – Kettenmaß
Abbildung 33: Screenshot – Kettenmaß verandert
4 FAZIT UND AUSBLICK 62
4 Fazit und Ausblick
Zusammenfassung
Zusammenfassend konnen folgende Ergebnisse festgehalten werden. Im ersten
Teil dieser Arbeit wurden die Anforderungen an eine Baubemaßung in CAD
analysiert und umfangreich beschrieben. Ausgehend von diesen Anforderun-
gen wurde anschließend ein Konzept zur Erstellung einer Kettenbemaßung
entwickelt. Dieses Konzept bildet die Ausgangslage fur die im dritten Teil
der Arbeit beschriebene prototypische Umsetzung einer Kettenbemaßungs-
Komponente im CAD-Prototyp. Mit Hilfe der entstandenen Bemaßungskom-
ponente gelingt es, lineare Einzel- und Kettenmaße mit horizontaler, verti-
kaler, paralleler oder beliebiger Ausrichtung zu erzeugen.
An dieser Stelle sei kritisch vermerkt, dass bei abschließenden Tests des Pro-
totyps folgende Fehler aufgetreten sind, welche den Einsatz der implemen-
tierten Bemaßungskomponente erheblich einschranken. Das Bemaßen funk-
tioniert nur dann, wenn Richtung und Ursprung des aktuellen Nutzerko-
ordinatensystems mit Richtung und Ursprung des Weltkoordinatensystems
ubereinstimmen. Das bedeutet, dass die zu bemaßenden Geometrie-Objekte
in einem beliebigen Nutzerkoordinatensystem erstellt werden konnen. Sol-
len diese jedoch bemaßt werden, so ist das Nutzerkoordinatensystem in sei-
ne Ausgangslage zu bringen. Wahrscheinlich ist dieser Fehler in der Umset-
zung der Bemaßungskomponente darauf zuruckzufuhren, dass zur einfacheren
Konstruktion der Linien-, Symbol-Objekte und des Text-Objektes das Nut-
zerkoordinatensystem verwendet wurde.
Da der Bearbeitungszeitraum dieser Arbeit begrenzt ist und der angespro-
chen Fehler erst am Ende dieses Zeitraumes bemerkt wurde, kann an dieser
Stelle nur darauf aufmerksam gemacht, der Fehler jedoch nicht mehr besei-
tigt werden.
4 FAZIT UND AUSBLICK 63
Erweiterbarkeit
Zur Erweiterbarkeit des CAD-Prototyps sei nur soviel vermerkt, dass die im
Abschnitt 1 aufgezahlten Bemaßungsarten analog der implementierten Ket-
tenbemaßung in das Gesamtsystem integriert werden konnen. Der Bema-
ßungsstil musste jedoch dahingehend erweitert werden, dass neue Attribut-
Wert-Paare hinzukommen.
Probleme
An dieser Stelle sollen kurz einige Probleme aufgezeigt werden, die es durch
anschließende Arbeiten zu losen gilt.
Ein erstes Problem betrifft die bereits angesprochene Tatsache, dass einige
Eigenschaften von Zeichnungsobjekte wie Linienwichte, Linienart, Textgroße,
Linien- und Textfarbe nur in den Layern des CAD-Systems abgelegt werden
konnen. Es ist also nicht moglich, die erwahnten grafischen Attribute einem
Zeichnungsobjekt selbst zuzuordnen. Das mundet darin, dass fur die Bema-
ßung ein festdefinierter Layer angelegt werden muss, um die im Bemaßungs-
stil definierten Festlegungen fur Linienwichte, Texthohe usw. umzusetzen.
Der Anwender ist also beschrankt im Hinblick auf die Wahl bzw. Definition
eines eigenen Bemaßungslayers.
Ein weiteres Problem besteht darin, dass erzeugte Mediator-Objekte (Ketten-
maß-Komponenten) in der Menge der Zeichnungskomponenten eingetragen
sind, jedoch keine grafische Reprasentation besitzen. Das fuhrt zu dem Pro-
blem, das sie durch den Befehl selectAll auch mit selektiert werden.
Sind alle Einzelmaße eines Kettenmaßes aus der Menge der Zeichungskompo-
nenten ausgetragen, dann sollte auch die Kettenmaß-Komponente ausgetra-
gen werden, da ansonsten die Mediator-Objekte inklusive ihrer Einzelmaß-
Komponenten bei der Speichung der Zeichnung serialisiert wurden. Das ist in
4 FAZIT UND AUSBLICK 64
der derzeitigen Implementierung noch nicht der Fall, da das Mediator-Objekt
zwar uber das Austragen seiner Colleagues aus der Menge der Zeichungskom-
ponenten informiert werden, sich selbst jedoch nicht ohne Weiteres austragen
kann.
Assoziative Bemaßung
Nachdem die eben angesprochenen Probleme weitgehend gelost worden sind,
kann man in einem nachsten Schritt untersuchen, wie die Eigenschaften ei-
ner assoziativen Bemaßung in den CAD-Prototyps zu integrieren sind. Wie
bis hierhin implementiert fehlt jeder Zusammenhang zwischen der Bemaßung
und den zu bemaßenden Geometrie-Objekten. Die Assoziative Bemaßung je-
doch bildet genau diesen Zusammenhang ab und aktualisiert automatisch
die Bemaßung, wenn sich die Eigenschaften der zu bemaßenden Geometrie
andern.
Literatur
[1] Beucke, K.: CAE im Planungsprozess, Skriptum, Bauhaus-Universitat
Weimar, 2002
[2] HOCHTIEF Software GmbH.: Grundsystem, Benutzerhandbuch unicad,
Version 6.6
[3] Balzert H.: Lehrbuch der Software-Technik, 2. Auflage, Spektum Akade-
mischer Verlag GmbH, Berlin, 2001
[4] Gamma E. et al.: Entwurfsmuster: Elemente wiederverwendbarer objekt-
orientierter Software, Deutsche Ubersetzung von Dirk Riehle, 1. Auflage,
Addison-Wesley (Deutschland) GmbH, Bonn, 1996
[5] Gopalan Suresh Raj: The Mediator (Behavioral) Design Pattern,
Internet-Dokument,
http://my.execpc.com/ gopalan/design/behavioral/mediator/mediator.html,
1998
65