Benutzer:ManfredRosendahl/Parametrische Modellierung (CAD)
Parametrische Modellierung (CAD)
[Bearbeiten | Quelltext bearbeiten]Unter Parametrischer Modellierung versteht man eine Technik, die Anwendern rechnergestützt die Erstellung von geometrischen Konstruktionen ermöglicht, die später allein durch Verändern von Parametern und ohne Programmierung modifiziert werden können.
In CAD-Systemen möchte man dazu nicht nur geometrische Objekte, sondern auch funktionale Abhängigkeiten zwischen den geometrischen Objekten bzw. sonstigen Variablen, z.B. Materialkonstanten oder Belastungen, definieren. Dies geschieht mit Hilfe von so genannten Constraints. Diese können z.B. festlegen, dass der Abstand von zwei Punkten ein veränderliches Maß haben soll, oder dass zwei Linien gleichlang oder parallel sein sollen.
Die einfachste Realisierung besteht darin, dass bei der sequentiellen Konstruktion nicht nur die Geometriedaten festgehalten werden, sondern auch die jeweiligen Konstruktionsschritte. Erzeugt man bei diesem history-basierten Modellieren z.B. eine Linie als Tangente an zwei Kreisen, so hält man nicht nur die aktuellen Koordinaten fest, sondern auch die Eigenschaft der Linie, Tangente der beiden Kreise zu sein. Das erlaubt es, nach einer Änderung der Kreise die Tangente automatisch nachzuführen. Mit dem gleichen Verfahren kann man auch eine assoziative Bemaßung bzw. Schraffur realisieren.
- Beispiel
Die Kreise 1 und 4 sind gegeben. Die Linien 12-13 bzw. 6-7 liegen tangential an den Kreisen 1 und 4. Ferner liegen die Punkte 6 und 13 auf dem Kreis 1 und die Punkte 7 und 12 auf dem Kreis 4. Der Graph dazu:
Bei einer Änderung des Wertes in einem Blatt, z.B. Radius eines Kreises oder Position des Mittelpunktes, kann mit Hilfe der topologischen Sortierung, der DAG neu berechnet werden. Diese topologische Sortierung kann z.B. dadurch erfolgen, dass für jede Klasse eine Methode compute definiert ist, die zunächst compute für die referierten Elemente aufruft und dann neu berechnet. Ferner wird noch festgehalten, ob ein Knoten schon neu berechnet worden ist. Für die Knoten ohne einlaufende Kanten ist compute leer. Vorteil der azyklischen parametrischen Modellierung ist, dass man den DAG immer direkt evaluieren kann. Im obigen Beispiel hätte man z.B. für den Punkt 13 zwei Ortslinien gegeben:
- er liegt auf einer Tangente an den Kreisen 1 und 4
- er liegt auf dem Kreis 1
Analog kann man mit den anderen Punkten verfahren.
Es ist jedoch nicht einfach möglich, etwa für die Lage des Punktes 13 eine neue Koordinate vorzugeben und die Kreise entsprechend zu verändern.
Allgemein will man nach Erstellung eines Modells frei wählen können, welche Variablen vorgegeben und welche berechnet werden. Z.B. soll nicht nur ein Punkt als Schnittpunkt von zwei Linien berechnet werden, sondern bei einer Verschiebung des Schnittpunktes sollen die Linien sich adäquat bewegen.
Um nach Erstellung eines Modells frei wählen können, welche Variablen vorgegeben und welche berechnet werden - im obigen Beispiel soll etwa ein Tangentialpunkt vorgegeben werden - so sind Techniken nötig, die nicht nur die Konstruktions-Historie benutzen, sondern geometrische Constraints. Damit ist es dann auch möglich, bei der Verschiebung eines Punktes, der als Schnittpunkt von zwei Linien definiert wurde, die Linien adäquat mitzubewegen. Auch gibt es Modelle, die überhaupt nicht sequentiell konstruiert werden können.
Solche Constraints können u.a. sein:
- Zwei Linien sind parallel
- Zwei Linien bilden einen rechten Winkel
- Zwei Linien sind gleich lang
- Ein Punkt ist Schnittpunkt von zwei Linien
- Ein Punkt liegt auf einem Kreis
- Zwei Kreise sind tangential
Die Constraints können auch Bemaßungen sein, wie z.B.
- Länge einer Linie
- Radius eines Kreises
Jedes Constraint hat eine Anzahl von Parametern und einen Freiheitsgrad.
- Beispiel
Eine Linie von (x1,y1) nach (x2,y2) hat die Länge d.
Die fünf Parameter sind x1, y1, x2, y2 und d. Von den fünf Parametern können vier vorgegeben werden, aus denen dann der fünfte berechnet wird. Man kann die Koordinaten vorgeben und berechnet die Länge, man kann aber auch die Länge vorgeben und daraus einen der Koordinatenwerte berechnen. Das Constraint hat damit einen Freiheitsgrad von vier oder anders formuliert, für seine Erfüllung wird ein Freiheitsgrad konsumiert.
Ein Dreieck hat sechs Freiheitsgrade, die x- und y-Koordinaten der drei Punkte. Die Form des Dreiecks ist bestimmt durch die Länge der drei Seiten. Dadurch werden drie Freiheitsgrade konsumiert, es bleiben noch drei Freiheitsgrade übrig. Diese bestimmen hier die Lage des Dreiecks. Es kann noch ein Punkt vorgegeben werden und für einen zweiten Punkt etwa die x-Koordinate. Generell wird im zweidimensionalen Raum bei einer Konstruktion aus n Punkten die Form durch 2*n-3 Constraints, die jeweils einen Freiheitsgrad konsumieren, festgelegt.
Die Parameter in den Constraints sind die Variablen des Modells.
Die Techniken zur Lösung dieser geometrischen Constraint-Systeme können in drei Klassen eingeteilt werden:
- Gleichungsbasierte Methoden
- Regelbasierte Techniken
- Graphbasierte Techniken
Die beiden letzten Techniken basieren auf konstruktiven Methoden.
Gleichungsbasierte Methoden
[Bearbeiten | Quelltext bearbeiten]Die Benutzung von Gleichungen zur Geometrischen Modellierung wurde bereits von Sutherland [1] eingeführt. Fortgeführt wurde sie durch die Arbeiten von Light und Gossard. [2]
Hier werden die Constraints durch i.A. nichtlineare Gleichungen zwischen den Variablen dargestellt. Die Variablen sind die skalaren Größen der Objekte, also Werte wie der Abstand zweier Punkte oder bei Punkt und Kreis x- und y-Koordinaten, beim Kreis zusätzlich der Radius r.
Ein geometrisches System ist überbestimmt, wenn es mehr Gleichungen (Constraints) als freie Variablen gibt. Das System ist vollständig bestimmt, wenn die Anzahl der Variablen gleich der Anzahl der Gleichungen ist. In dem geometrischen System sind dann alle Freiheitsgrade bestimmt. Dann ist das Gleichungssystem lösbar. Hat man weniger Gleichungen als freie Variablen, muss man entweder zusätzliche Gleichungen einführen, oder für die überzähligen Variablen feste Werte annehmen.
Gleichungen für einige geometrische Bedingungen
- Horizontaler Abstand d
- Vertikaler Abstand d
- Abstand d
- Winkel der Linien von P1 nach P2 und P1 nach P3 sei phi
- Länge einer Linie von x1, y1 nach x2,y2 sei d
- Ein Punkt x1, y1 liegt auf dem Kreis mit Mittelpunkt x, y und Radius r
- Die Linie (x1,y1)nach(x2,y2) und die Linie (x3,y3) nach (x4,y4) seien orthogonal. Dann muss das Skalarprodukt 0 sein:
Für das nichtlineare Gleichungssystem wird entweder mit Hilfe des Newton-Raphson-Verfahren eine iterative Lösung gesucht [2] oder es wird eine algebraische Methode mit Hilfe von Gröbnerbasen benutzt [3] [4].
Die Lösung eines Gleichungssystems zu finden ist äquivalent dem Problem, die Nullstellen einer Menge von Funktionen mit mehreren Variablen zu finden. Im Folgenden wird vorausgesetzt, dass das Gleichungssystem genauso viele Variablen besitzt, wie es Gleichungen hat.
Zunächst wird der Fall betrachtet, die Nullstelle einer allgemeinen nichtlinearen Funktion f : D -> R zu finden. Wenn f stetig differenzierbar ist, kann die Stelle f(z) ausgehend von f(x0) über ein Taylor-Polynom approximiert werden.
Unter Fortlassung des Restgliedes R(z) lässt sich mit:
eine Näherung x1 für eine Nullstelle z von f berechnen:
Aus der Gleichung ergibt sich:
bzw. allgemein:
Die Näherung lässt sich natürlich nur berechnen, wenn die Ableitung ist und der Startwert hinreichend nahe an der Nullstelle liegt. Des Weiteren erhält man von einem Startwert ausgehend nur eine Nullstelle.
Verallgemeinert man dies auf die Lösung eines Gleichungssystems F(X)=0 mit F=(f1,...,fn) und X=(x1,...,xn) so erhält man die Gleichung:
über die sich die Näherung aus berechnen lässt. Die Berechnung einer neuen Näherung erfordert die Lösung des inhomogenen linearen Gleichungssystems:
ist die Jacobi-Matrix der Partiellen Ableitungen für i,j=1...n an der Stelle .
ist der zu bestimmende Vektor aus dem sich mit die neue Näherung berechnen lässt. ist der Vektor der Restwerte, d.h. der noch vorhandenen Fehler. Das System besitzt nur dann eine Lösung, wenn die Gleichungen nicht linear abhängig sind, d.h. die Determinante ist. Bei komplizierten Funktionen ist es i.A. nicht möglich, die Ableitungen zu berechnen. Dann benutzt man statt der Differentialquotienten die Differenzenquotienten:
um die Jacobimatrix aufzustellen.
Der Differenzenquotient kann dadurch erzeugt werden, indem man zunächst
berechnet wird. Dann wird berechnet.
ergibt den Differenzenquotienten . Die Berechnung von A und B erfolgt durch auswerten des Constraints, dass zu dieser Gleichung gehört.
Damit das Gleichungssystem eine Lösung hat, darf die Determinante der Jacobimatrix nicht 0 sein, da man die inverse Matrix bilden muss. Das bedeutet, die Matrix muss quadratisch sein, d.h. man hat so viele Gleichungen wie Variablen. Hat man weniger Gleichungen, muss man für einige Variablen den alten Wert benutzen. So hat man weniger Variablen. Hat man mehr Gleichungen als Variablen so ist das System überbestimmt und kann nicht gelöst werden. Aber auch, wenn die die Anzahl der Variablen und die Anzahl der Gleichungen gleich sind, kann die Matrix singulär sein, wenn ein Teil der Matrix überbestimmt und ein Teil unterbestimmt ist. Dies ist z.B. dann der Fall, wenn Bedingungen redundant sind, d.h. eine Bedingung genau aus der anderen folgt. Die Zeilen der Jacobi-Matrix sind dann linear abhängig. Das Gleichungssystem kann direkt gelöst werden, wenn in der Jacobimatrix nach einer geeigneten Zeilen Permutation nur die obere oder untere Dreiecksmatrix besetzt ist. Bisweilen kann die Lösung des gesamten Gleichungssystems zurückgeführt werden auf die sequentielle Lösung von zwei Teilsystemen.
|a1,1.....a1,n 0..........0 | x1 = 0 |.............. 0..........0 | .. = 0 |ai,1.....ai+1,n 0..........0 | xi = 0 |ai+1,1...ai+1,n ai+1,n+1...ai+1,m| xi+1 = bi+1 |.................................| . |aj,1.....aj,n aj,n+1... .aj,m | xj = bj
Mit den ersten i Gleichungen können die Variablen x1 bis xi gelöst werden. Diese werden in die unteren Gleichungen eingesetzt und man bekommt ein Gleichungssystem für die Variablen xi+1 bis xj.
Graphbasierte Techniken
[Bearbeiten | Quelltext bearbeiten]Im Gegensatz zur Lösung durch ein Gleichungssystem versuchen die konstruktiven Methoden, eine Folge von geometrischen Konstruktionen aus den geometrischen Objekten und den Constraints zu ermitteln, sodass die Objekte die Constraints erfüllen. Hier arbeitet man entweder mit regelbasierten oder graphbasierten Techniken.
Graphbasierte Techniken modellieren die Constraints als Hyperkanten zwischen den geometrischen oder sonstigen Variablen. Statt mit einem Hypergraphen, kann man auch mit einem bipartiten Graphen arbeiten, bei dem jeweils Constraints und Variablen durch zunächst ungerichtete Kanten verbunden sind. Entsprechend der Anzahl der Constraints können nun aus einer gegebenen Teilmenge der Variablen die übrigen berechnet werden.
Regelbasierte Techniken führen zur Konstruktion von Control Sets aus Längen und Winkeln. Diese Controls Sets definieren Dreiecke oder Vierecke, die dann zur Gesamtlösung zusammengefasst werden. Bei den Dreiecken entsprechen die Regeln den verschiedenen Möglichkeiten, aus Seite und Winkeln ein Dreieck zu konstruieren.
Um mit den Graphbasierten Techniken aus dem Modell und den festgelegten Variablen eine Berechnungsfolge zu konstruieren, wird eine Analyse der Freiheitsgrade benutzt. Ziel ist es, aus dem ungerichteten Constraint-Graphen einen gerichteten zu erzeugen. Ist eine sequentielle Berechnung möglich, soll auch ein azyklischer Graph (DAG) entstehen. In manchen Fällen, wo zyklische Abhängigkeiten bestehen, kann jedoch nur ein Graph mit Zyklen erzeugt werden. Sind zu viele Variablen festgelegt, d.h. das System ist überbestimmt, ist keine Orientierung möglich. Ansätze in dieser Richtung liefern [5], [6],[7].
Manche Konstruktionen sind allerdings überhaupt nicht in Form eines Graphen ohne Zyklen zu modellieren.
Im ersten Beispiel sind zwei Dreiecke P1, P2, P3 und P4, P5, P6 gegeben. Vom äußeren Dreieck P4, P5, P6 sind die Koordinaten gegeben. Vom inneren Dreieck sind die Seitenlängen gegeben. Das kleinere Dreieck soll so in das größere platziert werden, dass die Entfernungen (P2, P4), (P3, P5) und (P1, P6) die gegebenen Werte annehmen. Man kann sich vorstellen, dass die Dreiecke durch Schnüre verbunden sind, die stramm gezogen werden sollen.
Der entsprechende Constraint Graph hat die Form:
Wenn man einen Abstand oder einen der äußeren Punkte ändert, so ergibt sich folgender gerichteter Graph.
Im zweiten Beispiel ist sei eine Wanne gegeben. In diese Wanne soll ein Klotz mit einer gegebenen Breite d gelegt werden. Für die Berechnung von Punkt P5 benötigt man Punkt P6 und umgekehrt. Hier ist sequentiell eine Konstruktion möglich, wo P5 an einer Stelle des Bodens der Wanne gelegt wird. Dann kann P6 berechnet werden über einen Kreis um P1 mit dem Radius d. Der sich ergebende Winkel P6, P5, P4 ist jedoch nicht 90°. Die X-Koordinate von P5 muss so variiert werden, dass der rechte Winkel erreicht wird.
Diese Zyklen im Graphen können nicht durch schrittweise Evaluierung gelöst werden. Sie müssen jeweils als ganzes durch ein Gleichungssystem gelöst werden.
Man sieht, dass bei einer Änderung von d, ein entsprechender Zyklus mit den Punkten P5 und P6 und den beiden Constraints dem Abstand d und dem rechten Winkel entsteht.
Bei der Analyse der Freiheitsgrade muss berücksichtigt werden, dass manche Constraints nicht unabhängig voneinander sind. So hat ein Punkt im zweidimensionalen Raum zwar zwei Freiheitsgrade, die jedoch nicht durch zwei Constraints abgedeckt werden können, die jeweils beide nur die x- oder nur die y-Koordinate beeinflussen. Ferner dürfen die durch die Constraints gegebenen Ortskurven nicht Kreise mit dem gleichen Mittelpunkt oder parallele Linien sein. Auch können bei einem n-Eck nur maximal n-1 Winkel festgelegt werden. Des Weiteren sollen auch stark unterbestimmte Systeme ein sinnvolles Verhalten zeigen. Daher sollen die Constraints nicht nur auf die direkt berührten Punkte Auswirkungen haben, sondern sie sollen auch auf entfernter liegende Punkte propagiert werden.
Bei der Erstellung des geometrischen 2D-Modells werden hier folgende Variablen benutzt:
- Punkt: zwei Freiheitsgrade (x-, y-Koordinaten)
- Kreis: drei Freiheitsgrade (x-, y-Koordinate des Mittelpunkts, Radius)
- skalarer Wert: ein Freiheitsgrad (x-Wert)
Ein Kreis wird abgeleitet von einem Punkt, damit kann der Mittelpunkt wie ein normaler Punkt behandelt werden.
Ein Kreisbogen wird modelliert, durch einen Kreis und den Anfangs- und einen Endpunkt. Damit hat man zunächst zwar sieben Freiheitsgrade, aber zwei werden durch die beiden Constraints verbraucht, dass der Anfangs- und der Endpunkt auf dem Kreis liegen müssen. So erhält man wieder fünf Freiheitsgrade für den Kreisbogen.
Ein Skalar kann beispielsweise die Distanz von zwei Punkten oder der Radius eines Kreises sein.
Die Freiheitsgrade der Variablen werden eingeschränkt durch die zu erfüllenden Constraints. Das Constraint, das den Abstand zweier Punkte bestimmt, nimmt z.B. einen Freiheitsgrad weg. Eine Konstruktion kann also maximal so lange Constraints erfüllen, bis durch sie alle Freiheitsgrade der Variablen gebunden sind.
- Beispiel
- Eine Linie gegeben durch zwei Endpunkte.
- Vier Freiheitsgrade: (x1, y1, x2, y2)
- Gibt man die Länge vor hat man noch drei Freiheitsgrade. (Verschieben in x- und y-Richtung und Drehung)
- Fordert man, dass die Linie waagerecht ist, so bleiben noch 2 Freiheitsgrade (Verschieben in x- und y-Richtung)
Man kann jetzt noch die Koordinaten eines Punktes festlegen oder die x-Koordinate des einen und die y-Koordinate des anderen Punktes. Man kann jedoch nicht die x- oder y-Koordinaten beider Punkte festlegen, da diese durch die vorherigen Constraints bereits voneinander abhängig sind. Man muss daher beim Verfolgen der Constraints festhalten, auf welche Koordinaten der Constraint Einfluss hat. Der Constraint waagerecht beeinflusst z.B. nur die Y-Koordinaten.
Ferner muss man berücksichtigen, dass manche Constraints die Lage der Punkte untereinander beeinflussen, andere hingegen die Lage und Ausrichtung der Gesamtkonstruktion.
So beeinflusst der Abstand zweier Punkte oder der Constraint, der festlegt, dass drei Punkte einen rechten Winkel bilden, nur die Lage der Punkte zueinander. Für diese Lage zueinander, d.h. die kongruente Form, gibt es bei n Punkten jedoch nur 2n-3 Freiheitsgrade. Daher kann man bei einem Dreieck, bei drei Seitenlängen, nicht noch einen Winkel bestimmen.
Man kann aber bei einem Dreieck mit drei gegebenen Seitenlängen noch die Koordinaten eines Punktes festlegen und zusätzlich fordern, dass die eine Linie waagrecht ist.
Die Punkte, Kreise, Skalarvariablen und Constraints bilden die Knoten eines bipartiten Graphen. Die eine Knotenklasse bilden die Punkte, Kreise und die skalaren Variablen (diese Klasse wird im Folgenden Variablen genannt), die andere die Constraints. Die Kanten stellen die Beziehungen zwischen den Constraints und den Variablen dar.
- Beispiel
- 2 Punkte mit Abstand und waagerechter Ausrichtung.
Die Variablen werden später im gerichteten Graphen mit maximal so vielen einlaufenden Kanten verbunden, wie sie Freiheitsgrade haben. Ist der Wert der Variablen festgelegt, werden die adjazenten Kanten später alle als auslaufend orientiert. Wird eine Skalarvariable für mehrere Constraints genutzt, kann nur maximal eine Kante einlaufend sein.
Die Constraint-Knoten haben eine Kantenverbindung zu jeder Variablen, die durch sie beeinflusst wird. In der Literatur wird i.A. mit Constraints gearbeitet, die eine feste Anzahl von Freiheitsgraden binden. Ein Constraint, das den Abstand von 2 Punkten bestimmt, wird mit 2 Punkten und einer Skalarvariablen verknüpft. Entweder bestimmen die beiden Punkte den Abstand oder der Abstand und ein Punkt legt für den anderen Punkt eine Ortskurve fest, nämlich einen Kreis um den ersten Punkt mit dem Abstand als Radius. Man sagt dann: der Abstand-Constraint konsumiert einen Freiheitsgrad. In der hier betrachteten Modellierung konsumieren die Constraints jeweils einen Freiheitsgrad, d.h. vom Constraint führt eine auslaufende Kante zu einer Variablen, während die anderen Kanten alle einlaufend sind.
Ein Kreis kann durch jede Kombination von drei vorgegebenen Elementen festgelegt werden.
Ein Kreis kann durch Mittelpunkt und Radius gegeben sein. Für die Punkte, die auf dem Kreis liegen, ist ein Freiheitsgrad gebunden. Der andere kann noch genutzt werden, z.B. für die waagerechte bzw. senkrechte Ausrichtung.
Ein Kreis kann auch dadurch bestimmt werden, dass er tangential zu drei anderen Kreisen liegt.
Wird einer der drei Kreise verschoben, so werden für Mittelpunkt und Radius des inneren Kreises die Werte angepasst.
Es ist jedoch nicht immer möglich, den Graphen nicht-zyklisch zu orientieren. Dann werden in dem Graphen die starken Komponenten ermittelt. Das ist eine Aufteilung der Knotenmenge in Teilmengen so, dass die Zyklen alle innerhalb der starken Komponenten liegen. Die starken Komponenten mit mehr als einem Knoten werden im Allgemeinen durch eine Iteration berechnet. Da die starken Komponenten einen Graph ohne Zyklen ergeben (DAG) kann die Reihenfolge der Berechnung der starken Komponenten nach der topologischen Sortierung erfolgen.
Regelbasierte Techniken
[Bearbeiten | Quelltext bearbeiten]Regelbasierte Techniken führen zur Konstruktion von Control Sets aus Längen und Winkeln. Diese Controls Sets definieren Dreiecke oder Vierecke, die dann zur Gesamtlösung zusammengefasst werden. Bei den Dreiecken entsprechen die Regeln den verschiedenen Möglichkeiten, aus Seite und Winkeln ein Dreieck zu konstruieren.
Ansätze in dieser Richtung stammen findet man u.a. bei Brüderlin [8] bzw. Roller u.a.[9]
Der Ansatz benutzt dabei die Technik der Expertensysteme. Die geometrischen Elemente und die Constraints sind Fakten im Sinne der Expertensysteme. Durch die Anwendung von Produktionsregeln werden für bestimmte geometrische Konstellationen Koordinatenbestimmungen gemacht und damit Fakten auf einem höheren Niveau erzeugt. Dieser Prozess wird solange fortgeführt, bis entweder alle Koordinaten bestimmt sind oder keine Regel mehr angewandt werden kann.
Eine umfassende Theorie hierzu zur Zerlegen der geometrischen Modelle findet man bei Hoffman, Lomonosov, Litharam [10].
Die folgende Darstellung orientiert sich an [9] und [11].
Betrachtet werden hierbei Linien mit ihren Endpunkten und Maßrestriktionen. Liegt z.B. ein Punkt auf einem Kreis, so ist der Abstand zwischen Punkt und Mittelpunkt des Kreises identisch mit dem Radius des Kreises. Auch die Bedingung, dass zwei Kreise tangential sind, kann abgebildet werden auf die Bedingung, dass der Abstand der Mittelpunkt die Summe oder die Differenz der Radien ist. Ebenso kann die Tangentialbedingung zwischen einer Geraden und einem Kreis durch den rechten Winkel im Tangentialpunkt definiert werden.
Daher wird im Folgenden angenommen, dass alle Constraints in Maß- und Winkelrestriktionen übersetzt worden sind. Zur Beschreibung der geometrischen Beziehungen wird eine auf Sunde[12] zurückgehende Notation mit so genannten CA-Sets und CD-Sets benutzt. Dies wird auch beschrieben im Buch von Dieter Roller.[11]
Diese Control Sets sind wie folgt definiert:
- Ein CA-Set sind 3 Punkte (P1, P2, P3) und ein Winkel phi, wobei der Winkel phi zwischen P1 und P2 an der Wurzel P2 festgelegt ist.
- Ein CD-Set ist eine Menge von Punkten, deren Lage zu einander festgelegt ist. Die CD-Sets bilden jeweils einen Rigid, d.h. eine Konstruktion, die nur noch als ganzes verschoben oder gedreht werden kann.
Die Constraints definieren jeweils einen CA- oder CD-Set. Durch die Regeln werden aus zwei oder mehreren CA- oder CD-Sets jeweils neue größere CA- bzw. CD-Sets erzeugt. Das Modell ist vollständig bestimmt, wenn alle Punkte zum einem CD-Set gehören.
Die initialen Sets werden aus den Constraints abgeleitet:
- Wenn ein Winkel zwischen 3 Punkten festliegt, wird ein CA-Set erzeugt.
- Wenn ein Abstand Constraint zwischen 2 Punkten festgelegt wird, wird ein CD-Set mit diesen beiden Punkten erzeugt.
- Wenn 2 Punkte fixiert sind, wird ein CD-Set mit den beiden Punkten erzeugt. Die anderen Constraints bei zwei fixierten Punkten werden durch die Lage der Konstruktion und nicht durch die Form erfüllt.
Diese elementaren CA- und CD-Sets werden mit Hilfe der folgenden Konstruktionsregeln zusammengefasst.
Die folgenden Regeln beschreiben die Konstruktionsregeln für Dreiecke.
- WENN drei CD-Sets jeweils paarweise einen gemeinsamen Punkt haben, DANN werden die CD-Sets vereinigt. (Dreieck aus 3 Strecken SSS)
- WENN zwei CD-Sets einen gemeinsamen Punkt haben UND der gemeinsame Punkt UND jeweils ein Punkt aus beiden CD-Sets in einem CA-Set sind, DANN werden die beiden CD-Sets vereinigt. (Dreieck Strecke, Winkel, Strecke SWS)
- WENN zwei CA-Sets zwei Punkte gemeinsam haben, die in einem CD-Set sind, DANN bilden die drei Sets einen CD-Set (Dreieck Winkel, Strecke, Winkel WSW)
- WENN zwei CD-Sets einen Punkt gemeinsam haben und in beiden CD-Sets jeweils ein Punktepaar aus einem CA-Set vorkommt, DANN werden die Sets zu einem CD-Set (Dreieck Winkel, Strecke, Strecke WSS).
Zwei andere Regeln werden eingeführt, um ein Winkel-Constraint zwischen zwei nicht adjazenten CD Sets zu behandeln. Diese Regeln erzeugen ein Viereck.
- WENN die zwei CD-Sets, (A, B) und (C, D), keinen Punkt gemeinsam haben und zwischen ihnen die CA-Sets (A, B, C), (B, C, D) und (C, D, A) existieren, dann werden die Sets zu einem CD-Set vereinigt. (Viereck WSWWS).
- WENN ein Viereck durch drei adjazente CD Sets und durch zwei mit der nicht festgelegten Seite adjazente CA-Sets bestimmt wird, DANN ergibt dies einen CD-Set der vier Punkte. (Viereck WSSSW)
- Beispiel für ein Viereck WSWWS
Die Konstruktion des CD Sets (A, B, C, D) ist wie folgt möglich:
- C und D seien vorgegeben.
- B liegt auf einer Linie, die durch C, D und den Winkel 107 gegeben ist.
- A liegt auf einer Linie, die durch C, D und den Winkel 93 gegeben ist.
- Der Abstand von A zur Linie B, C ist 72.8*sin(99).
- Damit liegt A auf einer Parallelen zu B, C mit diesem Abstand. Damit ist A bestimmt.
- Der Abstand von B zu A, D ist 72.8*sin(360-99-107-93). Damit liegt B auf einer Parallelen zu A, D mit diesem Abstand.
Damit ist B bestimmt.
- Beispiel für ein Viereck WSSSW
Dieses Viereck kann wie folgt berechnet werden:
- Zunächst wird angenommen, dass (0) im Nullpunkt liegt und die (1) auf der X-Achse
- Dann ist die Position von (3) bestimmt: X=D1*cos(w1), Y=D1*sin(w1).
- Der Y Koordinate von (2) ergibt sich aus d2*sin(w2)
- Ferner liegt (2) auf dem Kreis um (3) mit dem Radius d3
- Aus (2) lässt sich mit die X Koordinate von (1) berechnen:X1:= X2-d2*cos(w2).
Durch Transformation und Drehung kann aus der speziellen Lösung die allgemeine Lösung bestimmt werden.
Bestimmen der Gesamtlösung
Die durch die Constraints gegebenen CD- und CA-Sets werden untersucht, ob eine der obigen Regeln angewandt werden kann. Falls ja, werden die Sets, die in die Regel eingehen durch den sich ergebenden CD-Set ersetzt. Dies wird so lange gemacht, bis entweder nur noch ein CD-Set übrig bleibt oder keine Regel angewandt werden kann. Kann keine Regel mehr angewandt werden, so gibt es mit dem obigen Verfahren keine Lösung, ansonsten ist die Lage der Punkte zueinander durch das CD-Set gegeben.
- Beispiel
Mit CD[12] CD[23] und CA[123] kann CD[123] bestimmt werden (Dreieck SWS). Damit ist der Abstand 13 bestimmt.
Aus CD[123], CD[14] und CA[134] könnte man CD[1234] berechnen (Dreieck SSW). Gegeben ist aber CA[234]. Aus CD[123] kann jedoch der Winkel 231 berechnet werden. Der Winkel 134 ist dann Winkel 234 – Winkel 231. Damit kann CA[234] ersetzt werden durch CA[134] und damit aus CD[123], CD[14] und CA[134] das Ergebnis CD[1234] berechnet werden (Dreieck SSW).
Anwendungen
[Bearbeiten | Quelltext bearbeiten]Die Parametrische bzw. Constraint basierte Modellierung wird von fast allen modernen 3D CAD Systemen bei der der Erstellung der Skizzen benutzt, z.B. in SolidWorks oder Autodesk Inventor.
Es gibt auch einige kostenlose 2D Systeme mit Constraint basierter Modellierung. Nach entsprechender Registrierung kann man bei der LEDAS LTD (Novosibirsk) das Programm LGS 2D [13] runterladen. Es benutzt sowohl Graphbasierte als auch Gleichungsbasierte Techniken.
Ein Beispiel für ein System, das Gleichungssysteme benutzt ist das System Solvespace.[14]. Es kann herunter geladen werden und nach Beendigung der Probezeit ist der 2D Teil immer noch nutzbar.
Das 2D Cad System VarioCAD hat ein Zusatzmodul Kogge, das es erlaubt Zeichnungen mit Constraints zu erstellen. Es kann herunter geladen werden unter [15]. Eine Beschreibung des KOGGE Moduls findet man unter [16]
Anmerkungen und Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ Sutherland. I., Sketchpad, a man-machine graphical communication system, in: Spring Joint Computer Conference, S.329-346, Detroit, Michigan, USA, Proceedings 1963
- ↑ a b R. Light , D. Gossard. Modification of geometric models through variational geometry. Computer Aided Design, 14:209--214, July 1982
- ↑ C.M. Hoffmann. Geometric & Solid Modeling. Morgan Kaufmann,1989, Seite 257.
- ↑ K. Kondo. Algebraic method for manipulation of dimensional relationships in geometric models. Computer Aided Design, 24(3):141--147, March 1992.
- ↑ Roland Berling, Eine Constraint-basierte Modellierung für Geometrische Objekte, Koblenzer Schriften zur Informatik(Fölbach), 1995
- ↑ I. Fudos and C. M. Hoffmann: A Graph-constructive Method to Solving systems of Geometric Constraints - ACM Transactions of Graphics, Vol. 16(2), pp. 179-216
- ↑ C. Hsu, B. Brüderlin. "A Hybrid Constraint Solver Using Exact and Iterative Geometric Constructions," in CAD Systems Development -- Tools and Methods, D. Roller, P. Brunet, eds., Springer Verlag, 1997.
- ↑ Brüderlin, B.: Using geometric rewrite rules for solving geometric problems symbolically, Theoretical Computer Science 116, Elsvier, 1993, S.291-303
- ↑ a b A. Verroust, F. Schonek, and D. Roller. Rule-oriented method for parameterized Computer-aided design. Computer Aided Design, 24 (10):531-540,October 1992.
- ↑ C. M. Hoffmann and A. Lomonosov and M. Sitharam , Decomposition plans for geometric constraint systems, Journal of Symbolic Computation, 2001
- ↑ a b Dieter Roller: CAD : effiziente Anpassungs- und Variantenkonstruktion, Berlin [u.a.] : Springer, 1995., ISBN 3540587799
- ↑ Sunde, G.: A CAD system with declarative specification of shape, Eurographics Workshop on Intelligent CAD Systems, The Netherlands, 1987, S.90-104.
- ↑ Download LEDAS 2D unter http://ledas.com/products/lgs2d/
- ↑ Download Solvespace unter http://solvespace.com
- ↑ Download VarioCAD unter http://uni-koblenz.de/~ros/variocad.html
- ↑ Beschreibung KOGGE unter http://uni-koblenz.de/~ros/kogge.html