1. Koblenzer Graph Generator (KOGGE) 

Kogge ist ein Constraint basiertes 2D CAD System, das als VarioCAD Zusatzprogramm realisiert ist. Das System hat 2 besondere Fähigkeiten. Zu einem dient es als Constraint basiertes 2D CAD System. Ähnlich wie bei den Sketch Editoren können dabei geometrische Elemente mit Beziehungen definiert werden. Ändert man einzelne Elemente in Position oder Wert so verändert sich die Zeichnung bzw. das Modell nur so, dass diese Beziehungen erhalten bleiben. Ist das nicht möglich wird die Operation nicht ausgeführt und ein Fehler gemeldet.

Der zweite Schwerpunkt ist die Erstellung von Diagrammen. Diese Diagramme bestehen aus Knoten und Kanten. Die Kanten stellen jeweils eine Verbindung zwischen 2 Knoten dar. Für die Knoten gibt es verschiedene vordefinierte Formen, u.a. Punkte, Kreise, Ovale, Rechtecke. Man kann auch eigene Formen definieren. Diese Formen können mit editierbaren Texten, auch mehrzeilig, gefüllt werden. Für die Kanten gibt es ebenfalls vordefinierte Typen, wie einfache Linien, Pfeile, Doppelpfeile, Ovale als auch selbst definierte Kantenarten. Für den Anschluss der Kanten an die Knoten gibt es auch mehrere vordefinierte Arten. Die Kanten können auf die Mitten der Knoten zulaufen und werden dabei jeweils am Knotenrand abgeschnitten. Sie können aber auch als Manhattan Kanten ausgebildet werden. Dabei läuft ein Teil waagrecht und der andere Teil senkrecht. Die dritte Form sind orthogonale Kanten. Dabei werden 2 senkrechte Teile durch einen waagrechten Teil verbunden, wenn der senkrechte Abstand der Knoten größer als der waagrechte Abstand ist oder umgekehrt, wenn der waagrechte Abstand größer ist. Die Position der orthogonal einlaufenden Kanten am Knoten wird dabei so platziert, dass es keine Überschneidungen gibt. Werden Knoten verschoben, so wird diese Platzierung automatisch angepasst.

Für die Positionierung der Knoten kann wiederum auch auf das Constraint System zurück gegriffen werden. So können z.B. Knoten senkrecht, waagrecht oder mit gleichem Abstand ausgerichtet werden. Diese Kombination von Diagramm Erstellung und Constraint System erlaubt es Diagramme nicht nur einfach zu erstellen sondern sie auch einfach und konsistent zu modifizieren.

Constraint System

Das Constraint System besteht aus geometrischen und skalaren Objekten, die die Knoten des Systems bilden. Die Constraints definieren die Beziehungen zwischen den adjazenten Knoten. Der Graph ist ein Digraph, wobei jeweils ein Objektknoten mit einem Constraint Knoten verbunden ist. Bei der Lösung des Constraint Systems muss dieser ungerichtete Graph unter Beachtung der Randbedingungen orientiert werden. Ist dies nicht möglich ist das Modell über-definiert (over-constrained)

Die geometrischen Objekte sind Punkte (x,y), davon abgeleitet Kreise (x,y,r).

Die Position der Punkte wird bestimmt durch ihre X und Y Koordinaten.

Von diesen Punktknoten abgeleitet sind die Kreise. Diese haben als zusätzliche Komponente den Radius.

Ein weiteres geometrisches Objekt sind die Geraden. Sie sind gegeben durch Winkel und länge des Lotes vom Nullpunkt.

Eine weitere Objektklasse sind die skalaren Variablen, die jeweils einen Wert repräsentieren. Dies kann entweder ein geometrischer Wert sein z.B. Radius eines Kreises, Abstand zweier Punkte oder eine externe Größe, die Einfluss auf die Geometrie hat. Der wert des Skalars kann festgelegt sein, dann ist das ein steuerndes Maß, oder er ist frei, dann ist das ein gesteuertes Maß, das z.B. den Abstand zweier Punkte anzeigt. Bei der Bearbeitung kann jeweils festgelegt werden welche Werte vorgegeben sind und welche frei sind.

 

Diese vier Klassen Punkt,Kreis,Gerade,Skalar (Objekte) bilden eine Knotenklasse im Constraint Graphen. Die Constraints bilden die zweite Klasse in dem Digraphen. Die Kanten in dem Constraint Graphen bilden die Beziehungen zwischen den Constraints und den Objekten dar. Die Kanten verbinden jeweils ein geometrisches Objekt mit einem Constraint.

Diese Objekte haben jeweils folgende Freiheitsgrade:

Skalar 1

Punkt, Gerade 2

Kreis 3

Zwischen den Zeichnungselementen können folgende Beziehungen (Constraints) definiert werden.

 

 tangenten.kog
 

Die Tangenten werden nicht nur nachgeführt, wenn ein Mittelpunkt verschoben wird, sondern auch die Tangentialpunkte können verschoben werden. Hier wird durch Anpassen der Radien auf die Veränderung des Tangentialpunktes reagiert.

 
 tangenten2.kog
 

Wird der Radius festgehalten, werden die Mittelpunkte verschoben

 bohrer.kog
 

Eine Konstruktion kann bemaßt werden. Es können so viele Maße festgelegt werden, wie Freiheitsgrade vorhanden sind. Die restlichen Maße werden als gesteuerte Maße definiert.

Später kann variiert werden, welche Maße vorgegeben sind.

Bei dieser über-definierten Konstruktion, können jeweils 2 beliebige Maße festgelegt werden.

 demoskizze.kog
 

Linien und Bogen können beliebig tangential ausgerichtet werden.

Werden ein oder mehrere Punkte verschoben bleiben diese Bedingungen erhalten.

 

 motor.kog
 

Bei diesem Kurbeltrieb kann nicht nur bei Drehen der Kurbel der Kolben bewegt werden, sondern auch umgekehrt.

 
 lampe.kog
 

Bei diesem Scherengetriebe kann ein beliebiger Punkt verschoben werden.

 fahrw.kog
 

Auch bei diesem Fahrwerkschema können Maße oder Punkte geändert werden.

 

 

Die Objekt Knoten können bei der Lösung des Constraint Systems maximal so viele einlaufende Kanten haben, wie sie Freiheitsgrade haben. Sind bei einem Objekt Komponenten schon festgelegt, weil etwas der ein Punkt fixiert ist oder der ein Skalar Wert festliegt, verringert sich die Anzahl entsprechend.

Zwischen den Knoten können Beziehungen (Constraints) definiert werden.

Bei der Evaluierung eines Modells wird ein gerichteter Graph erzeugt, der folgende Bedingungen erfüllt:

Jedes Objekt hat maximal so viele einlaufende Kanten, wie sein Freiheitsgrad ist.

Ein Skalar eine, Punkte und Geraden zwei und Kreise drei. Bei einem Punkt oder Kreis kann die X und/oder Y Koordinate fixiert werden, dann verringert sich die Anzahl der maximal einlaufenden Kanten entsprechend.

Die Constraints:

haben 3 Kanten, von denen zwei einlaufend und eine auslaufend sind. Der Constraint Abstand von 2 Punkten kann bestimmt sein entweder von 2 Punkten einlaufend, dann bestimmen die Punkte den Abstand oder durch den Abstand und einen Punkt. Dann ist für den anderen Punkt als Ortslinie ein Kreis gegeben dessen Mittelpunkt der erste Punkt ist und dessen Radius der Abstand ist. Der Constraint rechter Winkel von 3 Punkten hat Kanten zu 3 Punkten, dem Scheitelpunkt und den beiden Randpunkten. Es müssen 2 Kanten einlaufend und eine auslaufend sein. Sind die beiden Randpunkte gegeben liegt der Scheitelpunkt auf dem Thales Kreis der beiden Randpunkte. Ist ein Randpunkt und der Scheitelpunkt gegeben liegt der andere Randpunkte auf einer Geraden, die durch den Scheitelpunkt geht und orthogonal zu der Geraden zwischen dem Scheitelpunkt und anderem anderen Randpunkt ist.

Liegen 3 oder 4 Punkte in einem bestimmten Winkel hat das Constraint 4 bzw. 5 Kanten, die Punkte und der Winkel.

Andere Constraints:

haben 2 Kanten, von denen eine einlaufend und eine auslaufend ist.

Alle diese Constraints haben jeweils eine auslaufende Kante. Dann konsumiert der Constraint einen Freiheitsgrad.

Einige Constraints (Waagrecht, Senkrecht, konstanter Abstand) können beliebig viele Kanten haben. Davon ist jeweils eine einlaufend und der Rest auslaufend. Die eingehende Kante bestimmt den Wert für die auslaufenden Kanten.

Komplexere Operationen werden durch mehrere Constraints realisiert. Zwei Linien tangential an zwei Kreise werden dargestellt durch 4 Constraints Gerade tangential an Kreis und die Tangentialpunkte sind jeweils inzident zu Kreis und Gerade.

 

Der Constraint Graph beim Verschieben von 4 sieht dann so aus:

 

 

Falls das Constraint System durch sequentielle Berechnung gelöst werden kann, findet der benutzte Algorithmus eine Orientierung des Graphen ohne Zyklen. Die Knoten können dann in der Reihenfolge der topologischen Sortierung berechnet werden. Aber nicht jedes Modell ist Zyklen frei orientier-bar und damit auch nicht sequentiell berechenbar.Die Knoten werden dann zerlegt in starke Komponenten. Diese enthalten entweder einen einzelnen Knoten oder einen Zyklus aus mehreren Knoten. Diese staken Komponenten enthalten untereinander keine Zyklen mehr und können so sequentiell berechnet werden. .

Diagramm System

Das Constraint basiertes CAD System kann auch zur Erzeugung und Manipulation von Diagrammen genutzt werden.

 

Es werden 2 Objektarten erstellt:

Knoten: Dies können Punkte oder andere Konturen (Kreise, Ovale, Boxen) sein, die Texte enthalten können.

 

 

Mit dem Constraint System nichts zu tun haben die dargestellten Kanten. Diese dienen der zeichnerischen Darstellung der Konstruktionen speziell der Diagramme.

Diese Kanten: verbinden die Punkte und können aus verschiedenen Formen bestehen.

 

 

Es können insbesondere so genannte Manhattan Kanten erzeugt werden, diese verbinden die Punkte durch eine waagrechte und eine senkrechte Linie.

 

Des Weiteren die orthogonale Kanten, die die Knoten durch 3 orthogonale Linien verbinden.

 

 

Eine oder mehrere Knoten können verschoben werden. Die Kanten laufen entsprechend jeweils nach und wechseln dabei auch wenn nötig, die Seite an dem Knoten. Die bei einem Knoten ein- bzw. auslaufenden Kanten werden dabei jeweils so angeordnet, dass die Überkreuzungen minimiert werden.

 

Beispiel:

Ausgangsgraph:

 

Nach Verschieben mehrerer Knoten kann sich folgende Situation ergeben:

 

 

Die Knoten 1-4 laufen nun alle am unteren Rand von ABCDE ein und werden so angeordnet, dass keine Überkreuzungen stattfinden.

 

Bei den Diagrammen können die Knoten einen beliebigen Text darstellen, der jeweils ein Rechteck einnimmt. Um dies zu formatieren gibt es die Constraints:

 

Knoten können dabei so angeordnet werden, dass sie waagrecht oder senkrecht eine Kette bilden, d.h. direkt nebeneinander liegen.

 

 

Beim Verändern des Textfelds eines Knoten, wird der Knoten automatisch angepasst. Auch bleiben bestehende Constraints erhalten.

 

Die Attribute der Knoten und Kanten können mit einer Maske geändert werden. Dabei kann der Textfont gewählt werden und auch Schraffur bzw. Füllung der Knoten und Kanten kann gewählt werden.

 

 

Befehle des Kogge Moduls:

 

Öffnen KOG       

Damit kann eine Kogge Datei (.kog) geladen werden. Die Kogge Dateien können nicht mit dem normalen Laden Befehl von VarioCAD  geladen werden, da die Kogge Dateien neben den normalen CAD Elementen Zusatzinformationen enthalten.

 

Sichern KOG

Das Diagramm wird als Kogge Datei unter dem aktuellen Namen abgespeichert.

 

Sichern als KOG

Das Diagramm wird als Kogge Datei unter neuem Namen abgespeichert.

 

Dump

Die Objektstruktur der Zeichnung wird als Ascii Datei ausgegeben

 

Ausg.Graph

Der Objekt Graph wird als Liste  ausgegeben

 

AnzeigeGraph

Der Objekt Graph wird als Liste in einem Fenster dargestellt

 

ElementInfo

Vom ausgewählten Element wird die Struktur angezeigt

 

Bild Löschen [bildl]

Das Diagramm wird gelöscht

 

Freih.Grad zeigen.

Für alle Knoten wird der Freiheitsgrad angezeigt.

Grün=2 oder mehr, Gelb=1, Rot=0 Freiheitsgrade

 

Solids zeigen

Es wird die Knotenmenge dargestellt, die ein Solid bildet, d.h. die Position der Knoten zueinander liegt fest.

 

Constraint Graph

Es werden die Variablen und Constraints mit ihren Beziehungen angezeigt. Nach einer Operation wird der gerichtete Graph angezeigt.

 

Bereinigen

Es werden alle Knoten, die nicht über Variablen oder Constraints erreichbar sind, gelöscht.

 

Undo

Der letzte Kogge Schritt wird rückgängig gemacht

 

Redo

Das letzte Undo wird rückgängig gemacht

 

Optionen

Es können Optionen für das Modul ein- bzw. ausgeschaltet werden

 

SkizzeausPIC

Aus einer VarioCAD Zeichnung wird eine Kogge Skizze erzeugt. Aus orthogonal ausgerichteten Linien werden rechte Winkel und Linien erzeugt. Horizontale und vertikale Ausrichtung werden erkannt

 

SkizzeWSausPIC

Aus einer VarioCAD Zeichnung wird eine Kogge Skizze erzeugt. Bei orthogonal ausgerichteten Kanten werden die Constraints Waagrecht und Senkrecht erzeugt

 

Beispiel:

Gegeben sei folgende VarioCAD Zeichnung:

Mit der Funktion SkizzeausPIC entsteht folgende Kogge Skizze:
 
Der 4. rechte Winkel im Viereck wird nicht gesetzt, da dann die Skizze überbestimmt wäre.
 

Mit der Funktion SkizzeWSausPIC entsteht folgende Kogge Skizze:

 

 

SegmentDefintion[pic2segment]

Aus einer VarioCAD Zeichnung wird ein Kogge Segment mit 1-3 Referenzpunkten erzeugt. Über den ersten Referenzpunkt wird die Position bestimmt. Über die 2 Referenzpunkte wird Größe und Richtung des Segments bestimmt.

Beispiel:

Es soll die Vorlage für einen Kolben erzeugt werden. Für eine Instanz sind dann folgende Parameter wichtig: Position, Richtung, Größe. Diese Parameter werden durch 2 Punkte bestimmt. Der 1. Punkt legt die Position fest, der 2. Punkt die Richtung und die Größe.

 

Mit VarioCAD ist ein Kolben gezeichnet worden.

In der VarioCAD Zeichnung wird der Kolben gepickt. Als Bezugspunkt für die Position wird die Mitte des Kreises genommen. Als Referenzpunkt für die Größe die Mitte auf dem Kolbenboden rechts. Über den Objektsnap auf die Mitte von VarioCAD können die beiden Punkte leicht ausgewählt werden. Das Segment wird dann in einer .shg Datei abgespeichert. Daraus kann dann eine Instanz erzeugt werden.(s.unten)
 

SegmentDef.XY[pic2segment3]

Aus einem Segment in einer VarioCAD Zeichnung wird eine Kogge Segment mit 3 Referenzpunkten erzeugt. Mit den 3 Referenzpunkte kann die Richtung und die Größe in X und Y Richtung bestimmt werden. Der 1. Referenz Punkt bestimmt die Position, der 2. Referenzpunkt die Ausrichtung und die Größe in X Richtung. Der Abstand des 3. Referenzpunktes zur Linie zwischen 1. und. 2 bestimmt die Größe in Y Richtung.

 

Beispiel:

Im obigen Kolben ändert sich Kolbenhöhe und Kolbendurchmesser jeweils gleich, entsprechend dem Abstand des 2. Punktes. Durch Angabe eines 3. Referenzpunktes, auf dem Rand des Kolbens, kann die Höhe unabhängig vom Durchmesser geändert werden.

 

Kogge Zeichnen

 

Erstellen der Knoten

Knoten [knoten]

Ein Knoten des aktuellen Knotentyps wird erzeugt. Der Text kann in einem Editor eingegeben werden.

 

Knotentyp [knotentyp]

Es wird der aktuelle Knotentyp ausgewählt

 

Knot.Kreis [kreis]

Es wird ein Kreis als Knoten erzeugt

 

Knot.Rechteck [recht]

Es wird ein Rechteck als Knoten erzeugt

 

Knot.Oval [oval]

Es wird ein Oval als Knoten erzeugt

 

Knot.Abgeru. [rund]

Es wird ein Rechteck mit abgerundeten Ecken als Knoten erzeugt

 

Knot.Punkt [punkt]

Es wird ein Punkt als Knoten erzeugt

 

Knot.NurText [nurtext]

Es wird ein Knoten erzeugt, der nur aus dem Textfeld besteht

 

Linienbox

Es wird ein Rechteck erzeugt. Die Diagolpunkte können entweder vorhandene Punkte sein oder sie werden bestimmt. Das Rechteck hat 3 Constraints rechter Winkel und zwei Abstand Constraints.

 

 

Dieses Rechteck kann später verschoben und gedreht werden.

 

Linienbox2

 

Diese Linienbox ist durch die Länge einer Seite und die gleiche Länge der benachbarten Seiten festgelegt. Auch dues Rechteck kann verschoben nd gedreht werden.

 

Quadrat

Mit zwei Punkten wird eine Seite bestimmt. Durch Constraints haben die anderen Seiten die gleiche Länge, ferner gibt es noch ein Rechtwinklig Constraint zwischen 2 Seiten. Hier hat man 4 Punkte und damit 8 Freiheitsgrade. Ferner hat man 5 Constraints (4 Distanz, 1 Winkel) bleiben somit 3 Freiheitsgrade. Daher kann man das Quadrat noch verschieben und drehen.

 

Frame [frame]

Es wird ein Knoten erzeugt, der aus einem rechteckigem Rahmen besteht, der wiederum einen Teil des Graphen enthalten kann. Im Dialog werden die Eckpunkte des rechteckigen Rahmens bestimmt. Wird anschließend der Rahmen verschoben wandern die enthaltenen Knoten automatisch mit. Ebenso passt sich beim verschieben der enthaltenen Knoten der Rahmen automatisch an.

Soll später der Frame-Knoten ausgewählt werden, muss an einer Stelle im Rahmen geklickt werden, wo sich kein Knoten befindet. Klickt man auf einen Knoten im Frame, wird dieser Knoten ausgewählt.

 

 

MultiBoxHorizo. [mrecht]

Es wird ein Knoten erzeugt, der mehrere Textfelder nebeneinander enthält. Dabei wird die Höhe jeder Box an der Box mit der größten Höhe ausgerichtet. Wird später ein Textfeld geändert, werden die anderen ebenfalls wieder automatisch angepasst.

Im Editor beim Erstellen der Textfelder steht eine Zeile nur mit # für ein neues Feld.

Eine Zeile nur mit / erzeugt ein Feld mit dem LISP Zeiger NIL.

Beispiel: Die MultiBox unten links wird erzeugt mit:

123

456

#

abc

def

xyz

 

MultiBoxVertik. [mrechty]

Analog wie MultiBox, jedoch werden die Textfelder vertikal angeordnet. Hier wird die Breite der Boxen an der Box mit der größten Breite ausgerichtet.  

Beispiel: Die MultiBox unten rechts wird erzeugt mit:

890

#

456

#

123

 

 

 

LISP [lisp]

Es wird ein Knoten aus 2 Rechtecken erzeugt, wie bei der Darstellung von LISP Ausdrücken. Das linke Feld kann später mit Text versehen werden.

 

LISP-NIL [lispnil]

Wie bei LISP, jedoch enthält das rechte Feld einen Querstrich (Zeichen für NIL in LISP)

 

 

Polygon [polygon]

Es wird ein Polygon aus Punktknoten und verbindenden Linien erzeugt.

 

Polygon.Constr. [polyc]

Sind beim Erstellen des Polygons 2 Knoten horizontal oder vertikal ausgerichtet wird automatisch ein entsprechendes Constraint erzeugt.

Erstellen der Kanten

 

Linie [edge]

Es wird zwischen 2 Knoten eine Linie oder ein Bogen erzeugt. Nach der Bestimmung des Startortes wird die Art der Verbindung durch folgende Zeichen bei der Eingabe festgelegt:

v: Es wird eine gerade Linie zwischen 2 Knoten erzeugt (Standard)

o: Es wird eine Linie erzeugt, die tangential an das letzte Element anschließt.

b: Es wird ein Bogen erzeugt, der tangential an das letzte Element anschließt.

r: Es wird ein Bogen mit einem einzugebendem Radius erzeugt.

w: Es wird ein Bogen mit einzugebendem Winkel und Radius erzeugt.

l oder ESC:  Die Funktion wird beendet.

Der Startwinkel wird durch die Lage des Startpunktes bestimmt.

Wird auf den Endpunkt einer Linie oder eines Bogen geklickt, wird die Richtung der Linie bzw. des Bogens an dieser Stelle genommen. Ist der Punkt Endpunkt mehrerer Elemente, kann man auf das gewünschte Element in der Nähe des Endpunktes klicken. Der zugehörige Endpunkt ist der Startpunkt, das Element bestimmt die Richtung.

 

LinienFolge [edgef]

Es wird eine Folge von Linien und Bögen  erzeugt.

Das Vefahren läuft ab, wie bei der Funktion Linie. Der Endpunkt einer erzeugten Linie ist der Startpunkt des nächsten Elementes. Durch Eingabe von

v,o,b,r,w kann wie bei der Funktion Linie die Art des nächsten Elements bestimmt werden.

Zusätzlich kann eingegeben werden:

s: Die Folge wird mit einer Linie zum Stattpunkt geschlossen.

l oder ESC:  Die Folge wird beendet

Bei der Erzeugung der Elemente werden zusätzlich entsprechende Constraints erzeugt, die dafür sorgen, dass bei der Verschiebung von Punkten die Tangential Bedingungen eingehalten werden. Es werden folgende Constraints erzeugt:

Tangential sollen sein:

2 Bogen: Die Mittelpunkte der Bogen und der gemeinsame Punkt sind auf einer Linie

Linie und Bogen: Der Mittelpunkt des Bogens muss rechtwinklig zur Linie sein.(Rechter Winkel)

2 Linien: Die Endpunkte der Linien müssen auf einer Linie liegen (In Line)

 

Kante [vector]

Wie die Funktion Linie. Die Linien sind jeweils Kanten mit dem aktuellen Typ

 

Kantenfolge [vectorf]

Wie die Funktion LinienFolge. Die Linien sind jeweils Kanten mit dem aktuellen Typ

 

Tangente [edget]

Es wird eine tangentiale Linie zwischen 2 Punkten oder Kreisen erzeugt

 

Kantentyp [kantentyp]

Der aktuelle Kantentyp wird eingestellt

LinieStützp. [edge2]

Beim Erzeugen der Linie zwischen 2 Knoten können neue Punkt-Knoten als Stützpunkte eingefügt werden.

 

KanteStützp.[vektor2]

Beim Erzeugen der Kante zwischen 2 Knoten können neue Punkt-Knoten als Stützpunkte eingefügt werden.

 

Manha.waag. [manhx]

Es wird eine Manhattankante mit einer waagrechten und einer senkrechten Linie erzeugt, wobei vom Quellknoten zunächst waagrecht gegangen wird.

 

Manha.senk [manhy]

Es wird eine Manhattankante erzeugt, wobei vom Quellknoten zunächst senkrecht gegangen wird.

 

KanteOrtho [edgeo]

Ist der vertikale Abstand der Knoten größer als der horizontale, wird zunächst bis zur Mitte senkrecht gegangen, dann waagrecht und wieder senkrecht. Ist der horizontale größer erfolgt die Konstruktion umgekehrt.

 

KanteEcke [eedge]

Die Kante verbindet zwei Knoten über ihre Eckpunkte statt über die Verbindung der Mittelpunkte abgeschnitten an den Seiten der Knoten

 

Link [link]

Es wird eine Linie mit Pfeil erzeugt, die im Startknoten beginnt.

 

 

Manh.Link w [linkmw]

Das Gleiche als Manhattan Kante, die horizontal beginnt.

 

Manh.Link s [linkms]

Das Gleiche als Manhattan Kante, die vertikal beginnt.

 

OrthoLink [linko]

Das Gleiche als Orthogonal Kante.

 

Kreis[ckreis]

Es wird aus dem Mittelpunkt und dem Radius bzw. einem Punkt auf dem Kreis, ein Kreis erzeugt. Der Mittelpunkt kann ein Vorhandener Punkt sein oder ein vorhandener Kreis. Dann ist der neue Kreis konzentrisch. Wird nach festlegen des Mittelpunktes kein Randpunkt ausgewählt sonder ENTER betätigt kann der Radius frei festgelegt werden.

 

Bogen[bogen]

Es wird aus dem Mittelpunkt, dem Startpunkt und dem Endpunkt, ein Bogen erzeugt. Je nach Fixierung werden entweder der Mittelpunkt oder die Randpunkt verschoben. Der Radius ergibt sich dann aus Mittelpunkt und Randpunkten. Der Bogen verläuft gegen den Uhrzeigersinn vom Startpunkt zum Endpunkt.

 

Halbkreis[halbkreis]

Zwischen 2 Punkten wird ein Halbkreis gegen den Uhrzeigersinn erzeugt.

 

BogenAnf.Endpunkt[kreisbogen]

Zwischen 2 Punkten wird ein Bogen gegen denUhrzeigersinn erzeugt. Der Öffnungswinkel wird abgefragt.

 

Bogen.Tangential[bogent]

Es wird Bogen tangential zu 2 gewählten Linien oder Kreisen erzeugt. Der Radius wird abgefragt und die ungefähre Lage des Mittelpunktes um die richtige Variante zu wählen.

 

Verrundung [runden]

Zwischen 2 Linien wird eine Verrundung mit einem einzugebenden Radius erzeugt

Beispiel:

Gegeben sei folgendes Rechteck:

 

An der oberen Ecke wird verrundet:

 

Beim Verschieben der Punkte bleibt die Verrundung erhalten.

 

Lot vonPunktanLinie[lot]

Es wird ein Lot von einem Punkt an eine Linie erzeugt.

Tangente zwei Kreise

Es werden 2 Kreise ausgewählt und eine Tangente an die beiden Kreise erzeugt. Die richtige variante wird durch die Punkte bestimmt an denen die Kreise gepickt wurden, und zwar so das die Tangentialpunkte möglichst nach an den Pick Punkten liegen.

Tangente Punkt/Kreis

 

Segment[segment]

Ist wird eine neue Instanz aus einem Segment in einer Segmentdatei (*.shg) erzeugt. Es können 1 bis 3 Referenzpunkte angegeben werden, die dann Position, Ausrichtung und Größe bestimmen.

 

Beispiel:

Es soll eine Instanz des oben definierten Kolbens erzeugt werden.

 

 

Nach Auswahl der .shg Datei werden die Punkte 1,2 und 3 festgelegt. Damit kann Position, Höhe und Durchmesser bestimmt werden. Die entsprechenden Parameter können auch noch bemaßt werden.

 

Durch ändern der Maße können neue Varianten erzeugt werden.
 

Der Vorteil ist, dass in Kogge nicht so viele Elemente definiert werden müssen, sondern die ausschmückenden Elemente nur in der VarioCAD Zeichnung vorhanden sind. So kann z.B. ein ganzer Motor beschrieben werden:

 

Er ist erzeugt mit den Segmenten Kurbel,Pleuel und Kolben. Durch ändern des Winkels in der Kurbel (W272) kann der Motor gedreht werden. Z.B. mit der Funktion Bewegen auch endlos.

 

Segment in Zeichnung[segment]

Ist wird eine neue Instanz aus einem Segment der aktuellen Zeichnung erzeugt. Es können 1 bis 3 Referenzpunkte angegeben werden, die dann Position, Ausrichtung und Größe bestimmen.

 

PIC2Knotentyp [pic2node]

Mit PIC2Knoten kann aus einem VarioCAD Bild ein neuer Knotentyp erzeugt werden.

 

 

 

Im Beispiel wird das Haus als Polygon gezeichnet und bei der Funktion PIC2Knoten ausgewählt und als Haus.shp abgespeichert.

 

PIC2Kantentyp [pic2edge]

Mit PIC2Kante kann aus einem VarioCAD Bild ein neuer Kantentyp erzeugt werden.

 

Freiheitsgrad

Es werden für alle Knoten die Freiheitsgrade angezeigt.

Grün: 2 Freiheitsgrade

Gelb: 1  Freiheitsgrad

Rot:   keine Freiheitsgrade

 

Bearbeiten

 

Versch.1Knoten [move]

Es wird ein Knoten ausgewählt, der dann verschoben werden kann. Es kann jeweils nur so verschoben werden, dass alle Constraints eingehalten werden. Die zugehörigen Kanten werden automatisch nachgeführt. Hat der Knoten nur einen Freiheitsgrad wird automatisch nur in X oder Y Richtung verschoben.

 

Versch.1Knoten-X [movex]

Es wird ein Knoten ausgewählt, der dann in X-Richtung verschoben werden kann. Es kann jeweils nur so verschoben werden, dass alle Constraints eingehalten werden. Die zugehörigen Kanten werden automatisch nachgeführt.

 

Versch.1Knoten-Y [movey]

Es wird ein Knoten ausgewählt, der dann in Y-Richtung verschoben werden kann. Es kann jeweils nur so verschoben werden, dass alle Constraints eingehalten werden. Die zugehörigen Kanten werden automatisch nachgeführt.

 

Versch.Knoten [movem]

Analog können auch mehrere Knoten gleichzeitig verschoben werden.

 

Maß Ändern[massaen]

Eine Bemaßung wird in einem Dialog geändert.

 

Dabei kann das Maß auch zwischen einem gesteuerten und einem steuernden Maß (fixed) gewechselt werden.

 

Maße fixieren [massfix]

Ein oder mehrere Maße werden fixiert.

 

Maße lösen [massloes]

Bei einem oder mehreren Maßen wird die Fixierung aufgelöst.

 

KnotenText [text]

Der dem Knoten zugeordnete  Text wird editiert

 

KantenText [etext]

Der der Kante zugeordnete  Text wird editiert

 

ÄndereKnotenTyp [changentyp]

Der Knotentyp wird geändert

 

ÄndereKantenTyp [changeetyp]

Der Kantentyp wird geändert

 

KnotenAttribut [attr]

Mit einer Maske können die Attribute des Knotens, wie z.B. Farbe, Schraffur, Linienstärke geändert werden.

 

KantenAttribut [attre]

Mit einer Maske können die Attribute der Kante, wie z.B. Farbe, Schraffur, Linienstärke geändert werden.

Ä.Kantenrichtung

Viele Kantentypen sind nicht symmetrisch, z.B. ein Pfeil. Mit dieser Funktion kann die Richtung umgedreht werden.

 

ElementInfo [info]

Die Information über die ausgewählten Knoten wird angezeigt

 

Update Graph [update]

Die Constraints werden neu berechnet

 

Lö.Punkt Constraint [lnodconstr]

Die zu einem Knoten gehörenden Constraints werden gelöscht

 

LöscheKante [ledge]

Die ausgewählten Kanten werden gelöscht

 

LöscheKnoten [lnode]

Die ausgewählten Knoten werden gelöscht. Gleichzeitig werden auch alle ein- oder auslaufenden Kanten und alle betroffenen Constraints gelöscht

 

LöscheConstraint [lconst]

Die ausgewählten Constraints werden gelöscht. Dazu muss die Constraint Anzeige eingeschaltet sein.

 

Lö.Constr.Pu.auf Kreis[lnodconst]

Der Constraint, dass ein Punkt auf einem Kreis liegt wird gelöscht. Durch diese spezielle Funktion wird das Problem gelöst dass man beim Picken nicht Kreis und Punkt auf dem Kreis unterscheiden kann. Bei dieser Funktion werden nur Punkte gepickt.

Gemein.Maß

Die ausgewählten Maße bekommen alle den gleichen Wert. Dieses ist flexibel, wenn alle ausgewählten Maße gesteuerte Maße waren. Dann kann sich das Maß zwar ändern, aber alle erhalten den gleichen Wert. So kann man z.B. ein gleichseitiges Dreieck mit variabler Seitenlänge definieren. Ist eins der ausgewählten Maße fixiert werden alle auf diesen Wert fixiert.

 

TrenneGemein.Maß[tgemeinsam]

Zwei Maße, die einen gemeinsamen Wert haben, werden unabhängig.

 

LöscheSegment[lsegment]

Eine Instanz eines Segmentes wird gelöscht.

 

KopiereKnoten [knode]

Ein ausgewählter Knoten wird kopiert und an einer ausgewählten Position platziert.

 

KopiereGraph [kgraph]

Die ausgewählten Knoten und die zwischen ihnen verlaufenden Kanten werden kopiert. In dem Dialog kann der Weg von der ursprünglichen Instanz und der neuen bestimmt werden.

 

FrameZentrieren[zframe]

Ein Frame wird auf eine minimale Größe ausgerichtet, so dass alle Knoten enthalten sind.

 

Constr.Anzeigen [constra]

Das Anzeigen der Constraints wird eingeschaltet. Beim Bearbeiten es vorteilhaft die Constraints zu sehen.

 

Constr.NichtAnz [constrn]

Das Anzeigen der Constraints wird ausgeschaltet werden. Es ist auszuschalten, wenn das Diagramm ausgedruckt wird.

 

Bewegen[bewegen]

Ein ausgewähltes Maß wird zwischen 2 Werten mit der eingegebenen Schrittzahl variiert. Mit Endlos wird der Vorgang wiederholt, bis ESC eingegeben wird. Bei OhneConstr. werden während der Bewegung keine Constraint und Maße angezeigt.

 

Kanten Fixieren[kantenfix]

Eine Kante wird auf die aktuelle Länge fixiert.

 

AlleConstr.Lösch [allecl]

Alle Constraints werden gelöscht

 

Knotennum.[knotennum]

Die Knoten werden durchnummeriert. Dies dient vor allem zu Testzwecken. Das Modell sollte vorher gesichert werden.

 

Knotenindex[knotenindex]

Die Knoten werden mit ihrem Index in der Objektliste nummeriert. Dies dient vor allem zu Testzwecken. Das Modell sollte vorher gesichert werden.

 

Constraints

 

KnotenFixieren [nodefix]

Die Koordinaten eines Knoten werden fixiert. Er kann dann zwar noch explizit verschoben werden, er verschiebt sich jedoch nicht mehr, wenn andere Knoten verschoben werden. Besteht zwischen 2 Knoten ein fester Abstands und so können nicht beide Knoten fixiert werden.

 

Kno.Fix.X [nodefixx]

Wie oben, es wird jedoch nur die X-Koordinate fixiert

 

Kno.Fix.Y [nodefixy]

Es wird die Y-Koordinate fixiert.

 

KnotenFix.Lösen

Die Fixierung eines Knoten wird aufgehoben

 

Maße fixieren

Die ausgewählten Maße werden fixiert. Es wird dabei wie bei allen Fixierngen getestet ob genügend Freiheitsgrade in der Zeichnung sind.

 

Maße lösen

Die ausgewählten Maße werden zu einem gesteuerten Maß.

 

In Linie [linie]

Zwischen 3 oder mehr Knoten wird festgelegt, dass sie immer auf einer Geraden liegen müssen. Wird einer der Knoten verschoben, werden die anderen automatisch angepasst.

 

Horizo.Glei.Abstand [waag2]

3 oder mehr Knoten sind nicht nur waagrecht ausgerichtet, sondern auch der Abstand zwischen 2 Knoten ist jeweils gleich. Wird etwa der mittlere Knoten verschoben, wir der rechte so angepasst, dass der Abstand jeweils gleich bleibt.

 

Vertik.Glei.Abstand [senk2]

Das gleiche analog für die senkrechte Ausrichtung.

 

Gleicher X-Abstand [waag3]

Hierbei werden die Knoten zwar nicht waagrecht ausgerichtet, aber ihre X-Koordinaten müssen jeweils die gleiche Differenz haben.

 

Gleicher Y-Abstand [senk3]

Analog mit den Y-Koordinaten

 

BreiteAusrichten [bausr]

2 oder mehr Knoten werden in der Breite und der X-Koordinate ausgerichtet.

Die Breite orientiert sich jeweils an dem breitesten Knoten. Wird das Textfeld eines Knotens später geändert, wird wieder neu ausgerichtet.

 

HöheAusrichten [hausr]

Analog wird in der Höhe und der Y-Koordinate ausgerichtet.

 

KetteHorizontal [kettex]

2 oder mehr Knoten werden so ausgerichtet, dass sie die gleiche Höhe haben und horizontal direkt aneinander anschließen. Wird später einer der Knoten, z.B. durch Verändern des Textfeldes in seiner Ausdehnung geändert wird automatisch angepasst. Zwischen den Knoten einer Multibox besteht diese Beziehung.

 

KetteVertikal [kettey]

Analog werden 2 oder mehr Knoten so ausgerichtet, dass sie die gleiche Breite haben und vertikal direkt aneinander anschließen. Zwischen den Knoten einer vertikalen Multibox besteht diese Beziehung

 

Parallell[parallel]

Für 2 Kanten wird festgelegt, dass sie immer parallel verlaufen müssen. Wird später einer der adjazenten Knoten verschoben, wandern die anderen automatisch angepasst.

 

ParallelAbstand

Für 2 Kanten bzw. geraden wird festelegt, dass sie Parallel mit einem bestimmten Abstand sind.

 

GleichesMaß [gleichesm]

Für 2 oder mehr definierte Maße wird festgelegt, dass sie immer gleich sein müssen. Ändert sich ein Maß, z.B. durch Verschieben eines Knoten, werden die am anderen Maß beteiligten Knoten automatisch nachgeführt.

 

Distanz [distanz]

Zwischen 2 Knoten wird der Abstand festgelegt. Wird später das Maß geändert, werden die Knoten automatisch verschoben.

 

X-Distanz [distanzx]

Analog wird der horizontale Abstand zwischen  Knoten festgelegt

 

Y-Distanz [distanzy]

Analog wird der vertikale Abstand zwischen  Knoten festgelegt

 

Dist.LiniePunkt[distanzlp]

Der Abstand zwischen einer Kante/Gerade bzw. der Verbindung zweier Punkte und einem Punkt wird festgelegt.

 

Knot.AnKreisLinie[nodeancl]

Es wird bestimmt, dass ein Punkt auf einem Kreis oder einer Linie liegen muss.

 

Linie/Kreis tangen.[tanglk]

Für 2 Kreis bzw. einen Kreis und eine Linie wird festgelegt, dass sie tangential sind.

 

Schnittpunkt[schnittp]

Ein Punkt wird als Schnittpunkt von 2 Linien bzw. Kreisen festgelegt. Wird der Schnittpunkt verschoben, werden die Endpunkte angepasst. Wird ein Endpunkt verschoben, wird der Schnittpunkt angepasst.

 

Mittelpunkt[mittelp]

Ein Punkt wird als Mittelpunkt einer Linie, bzw. zwischen 2 Punkten festgelegt. Dies wird realisiert dadurch das die 3 Punkte auf einer Linie leigen und der Abstand zum Mittelpunkt jeweils gleich ist.

LinieTang.2Kreise[ltang2c]

Für eine Linie wird festgelegt, dass sie tangential an zwei Kreise ist.

 

2 Punkte symmetrisch

Es wird eine Linie/gerade ausgewählt (Symmetrieachse) und zwei Punkte. Die Punkte sind dann symmetrisch zur Achse.

Waagrecht [waag]

Zwischen  2 oder mehr Knoten wird eine horizontale (waagrechte) Ausrichtung festgelegt. Ändert einer der Knoten seine Y-Koordinate, wandern die anderen automatisch mit. Dies wird realisiert durch eine waagrechte Gerade auf der die Punkte liegen müssen.

 

Waagrecht2P

Zwischen  2 Knoten wird eine horizontale (waagrechte) Ausrichtung festgelegt. Ändert einer der Knoten seine Y-Koordinate, wandern der andere automatisch mit. Dies wird realisiert durch eine Constraint waagrecht das für die gleiche Y Koordinate der beiden Punkte sorgt.

 

Senkrecht [senk]

Analog wird eine vertikale (senkrechte) Ausrichtung festgelegt. Ändert einer der Knoten seine X-Koordinate, wandern die anderen automatisch mit.

 

Senkrecht2P

Zwischen  2 Knoten wird eine vertikale (senkrechte) Ausrichtung festgelegt. Ändert einer der Knoten seine X-Koordinate, wandern der andere automatisch mit. Dies wird realisiert durch eine Constraint senkrecht das für die gleiche X Koordinate der beiden Punkte sorgt.

RechterWinkel 2Linien

Es werden 2 Linien ausgewählt, die dann rechtwinklig zu einander stehen

 

Winkel 2 Linien

Es werden 2 Linien ausgewählt. Die dann einzugebende Grad Zahl ist der Winkel gegen den Uhrzeiger von der ersten zur zweiten Linie

 

Rechter Winkel 3 Punkte

Es wird ein rechter Winkel zwischen 3 Punkten festgelegt. Zunächst wird der Ursprungspunkt abgefragt, dann die beiden Endpunkte.

Winkel3Punkte[winkel3p]

Es wird der Winkel zwischen 3 Punkten festgelegt. Zunächst wird der Ursprungspunkt abgefragt, dann die beiden Endpunkte. Der Winkel wird im mathematisch positiven Sinne zwischen dem 1. und dem 2. Endpunkt genommen.

 

Winkel4Punkte[winkel4p]

Es wird der Winkel zwischen 2 Linien, die durch jeweils 2 Punkten genommen werden festgelegt. Zunächst werden die Punkte der ertsten Linie, dann der 2. Linie abgefragt. Der Winkel wird im mathematisch positiven Sinne zwischen der 1. und der 2. Linie genommen.

Winkel2Punkte[winkel2p]

Es wird der Richtung zwischen 2 Punkten festgelegt. Abgefragt werden entweder 2 Punkte oder eine Linie.

 

Formel[formel]

Für ein Maß oder einen Radius kann eine Formel eingegeben werden. In der Formel kann man sich mit [<Zahl>] auf den Wert des Maßes mit der Index <Zahl> beziehen. Den Index erhält man über die Funktion Constraint Graph oder über über die Funktion Knotenindex. Die Formel kann neben den Referenzen Zahlen, die arithmetischen Operationen +,-,*,/ und Klammern enthalten.

 

 

Beispiel für Constraints:

 

 

Zwischen den Knoten der obersten Zeile wurde das Constraint waagrecht, gleicher Abstand definiert. Analog zwischen den Knoten der ersten Spalte senkrecht, gleicher Abstand.

Zwischen den Knoten der anderen Zeilen wurde waagrecht und zwischen den Knoten der anderen Spalten wurde senkrecht definiert.

Wird nun z.B. der Knoten 4 verschoben, wandern mit Ausnahme von Knoten 0 alle anderen so mit, dass die Constraints erhalten bleiben.

 

 

Am Beispiel einer Skizze soll die sukzessive Einschränkung der Freiheitsgrade gezeigt werden.

 

Beispiel\skizze.kog