- 13 May 2024
- 5 Minutes to read
- Print
- DarkLight
- PDF
Zentrale Stammdaten
- Updated on 13 May 2024
- 5 Minutes to read
- Print
- DarkLight
- PDF
AUTOBEMASSUNG.BAS
AUTOBEMASSUNG.INITBEMASSUNG(CBEMASSUNG)
Diese Prozedur ist die Voraussetzung damit ein Objekt bemaßt werden kann. Hier werden auf einer globalen Variablen alle notwendigen Attribute gesetzt die später verwendet werden. Je nach Projekt können hier Einstellungen verändert werden, wie z.B.:
pBemassung.Abstaende.AbstandVonGrafikOBEN = 120
pBemassung.Abstaende.AbstandVonGrafikRECHTS = 120
pBemassung.Abstaende.AbstandVonGrafikUNTEN = 120
pBemassung.Abstaende.AbstandVonGrafikLINKS = 120
pBemassung.Abstaende.AbstandZwischenLinienOBEN(k) = 100
pBemassung.Abstaende.AbstandZwischenLinienRECHTS(k) = 100
pBemassung.Abstaende.AbstandZwischenLinienUNTEN(k) = 100
pBemassung.Abstaende.AbstandZwischenLinienLINKS(k) = 100
AUTOBEMASSUNG.NEHMEFIGURAUF(CBEMASSUNG, LSTOUTLINE)
Um eine Figur bemaßen zu können muss das Profil (Outline) der Figur übergeben werden, damit später bei der Bemaßung die Umrandung richtig gerechnet werden kann.
!Voraussetzung ist immer .InitBemassung
Outlines(1) = Points2Outline({[ 0, 0], [ 400, 0],
[ 400, 300], [ 0, 400]})
!Outlines(1) = {SEGMENT([0,0],[400,0]), SEGMENT([400,0], [400,300]), …
RUN AUTOBEMASSUNG.NehmeFigurAuf(cBemassung, Outlines(1))
6.1.3 AUTOBEMASSUNG.NEUEBEMASSUNG<POSITION> (CBEMASSUNG, STRECKE)
Wurde eine Figur aufgenommen, so kann jede Strecke entweder unten, rechts, oben oder links bemaßt werden, dies geschieht über die Prozeduren:
AUTOBEMASSUNG.NeueBemassungUnten (cBemassung, Strecke)
AUTOBEMASSUNG.NeueBemassungRechts (cBemassung, Strecke)
AUTOBEMASSUNG.NeueBemassungOben (cBemassung, Strecke)
AUTOBEMASSUNG.NeueBemassungLinks (cBemassung, Strecke)
Bsp.:
RUN AUTOBEMASSUNG.NeueBemassungUnten (cBemassung, Outlines(2)[1])
RUN AUTOBEMASSUNG.NeueBemassungOben (cBemassung,SEGMENT([Outlines(2)[2].x1,0],[Outlines(2)[2].x2,0]))
6.1.4 AUTOBEMASSUNG.ZEICHNEBEMASSUNGSFELD(CBEMASSUNG)
Nachdem alle zu bemaßenden Figuren aufgenommen worden sind, kann ein Rechteck gezeichnet werden, welches all die zu bemaßenden Körper umhüllt. Dieses dient, auch wenn es nicht gezeichnet wird, dazu, um die Eckpunkte zu eruieren, damit die Bemaßungsabstände eingehalten werden können.
6.1.5 AUTOBEMASSUNG.KALKULIERESTRECKEN(CBEMASSUNG)
Diese Prozedur muss vor .ZeichneBemassung aufgerufen werden, damit die zu bemaßenden Strecken auch an der richtigen Ebene (max. 10 je Seite (unten, rechts, oben, links)) gezeichnet werden. Hier wird nachgesehen ob z.b. eine Bemaßung unten in der Ebene 1 noch Platz findet, wenn nicht, dann wird in der 2-ten Ebene nachgesehen. Ist dort Platz wird diese Stelle belegt, usw. usw…
6.1.6 AUTOBEMASSUNG.STRECKENAUFFUELLEN (CBEMASSUNG)
Diese Prozedur kann vor der dem eigentlichen Bemaßen aufgerufen werden. Durch diesen Aufruf werden die Lücken zwischen einzelnen Bemaßungslinien geschlossen.
6.1.7 AUTOBEMASSUNG.ZEICHNEBEMASSUNG (CBEMASSUNG)
Durch diesen Aufruf werden alle aufgenommen Strecken der einzelnen Figuren bemaßt. Sollt anstatt der Kugel bei den Anfang bzw. Endpunkten ein Strich gezeichnet werden, so kann dies durch Schalter in der Initialisierung verändert werden:
pBemassung.EbeneOben(k).Strecken.Bemassungslinie = 1 !0 ... Std
pBemassung.EbeneRechts(k).Strecken.Bemassungslinie = 1
pBemassung.EbeneUnten(k).Strecken.Bemassungslinie = 0
pBemassung.EbeneLinks(k).Strecken.Bemassungslinie = 0
Nun werden alle Bemaßungen oben und rechts mit Querstrichen anstatt mit Kugeln gezeichnet.
Diese Bemaßungsart ist sehr sehr performancelastig! Generell sollte man diese nur bei eher wenigen Bemaßungen verwenden.
6.2 GRAPHPROCS.BAS UND GRAPHPROCSF.BAS
Diese Datei enthält Prozeduren welche oft in Grafikprogrammierung gebraucht werden. Gelöst sind hier Profilveränderungen (Drehen, Spiegeln oder Erhöhungen), allgemeine Polygonfunktionen (Fläche und Umfang) und dergleichen. Diese werden erst in speziellen Workshops behandelt und würden den Rahmen diese Dokumentation sprengen.
6.5 LIB3D.BAS UND LIB3DF.BAS
Die Datei LIB3D.BAS wurde schon im Kapitel 3 Standardprozeduren ausführlich behandelt. Die Datei LIB3Df.BAS enthält elementare Funktionen für Punkte und Streckenzüge.
6.7 PLATTEN.BAS
Diese Datei enthält Prozeduren die für Erstellung von Arbeitsplatten notwendig sind. Hierbei sind Abrundungen, Ausnehmungen, Bohrungen und Kombinationen gemeint.
Falls man Arbeitsplatten konfiguriert, müssen diese oft zugeschnitten oder an den Ecken bearbeitet werden. Diese Zuschneidungen können positive oder negative Herdanschlüsse sein oder bei Eckbearbeitungen Abschrägungen, Ausklinkungen (rechteckig oder schräg) mit oder ohne Bohrungen (bei Glas) oder Abrundungen sein.
Nachfolgende Prozeduren gehen immer von einer rechteckigen Arbeitsplatte aus, deren Streckenzug links unten beginnt:
6.7.1 SCHRITT 1: INITIALISIERUNG
Voraussetzung für diese Prozeduren ist immer die Grundinitialisierung einer globalen Variablen. Diese wird mit einem Namen und einer wie oben beschriebenen Streckenzugliste (Outline) initialisiert und die notwendigen Attribute werden hier gesetzt.
Bsp.:
lstViereck = {SEGMENT([0,0], [FpBreite,0]),
SEGMENT([FpBreite,0], [FpBreite,FpHoehe]),
SEGMENT([FpBreite, FpHoehe], [0, FpHoehe]),
SEGMENT([0, FpHoehe], [0,0])}
Platte = ""
RUN InitialisierePlatte(Platte, "Meine Platte", lstViereck)
6.7.2 SCHRITT 2: STRECKENBEARBEITUNGEN
Es gibt 2 Streckenbearbeitungen, nämlich den negativen Herdanschluss sowie den positiven Herdanschluss.
Negativer Herdanschluss: 1
Positiver Herdanschluss: 2
Mit folgenden Aufruf definiert man die Herdanschlüsse:
RUN UebertrageHauptstreckenBearbeitungen(Platte, 1, 2, 400, 0, 100, 150, 100)
!Glob. Variable, Nr, Art, PosX, PosY, FpX, FpY, Laenge
Platte - Globale Variable, wird bei der Initialisierung definiert
Nr - Nummer des Streckenzuges (1 ist untere, 2 der rechte, …)
Art - 1 … negativer Herdanschluss
2 ... positiver Herdanschluss
PosX - wo beginnt auf der X-Achse der Herdanschluss ausgehen vom linken unteren Punkt
PosY - wo beginnt auf der Y-Achse der Herdanschluss ausgehen vom linken unteren Punkt
FpX - beschreibt die Steigung (x-Achse)
FpY - beschreibt die Steigung (y-Achse)
Laenge - Länge der Strecke (Innen bei neg. und Aussen bei pos. Herdanschluss!)
Man kann diese Bearbeitungen auch kombinieren:
Bsp.:
RUN UebertrageHauptstreckenBearbeitungen(Platte, 1, 2, 400, 0, 100, 150, 100)
RUN UebertrageHauptstreckenBearbeitungen(Platte, 2, 2, 0, 250, 100, 150, 200)
RUN UebertrageHauptstreckenBearbeitungen(Platte, 3, 1, 300, 0, 600, 200, 200)
RUN UebertrageHauptstreckenBearbeitungen(Platte, 4, 1, 0, 300, 150, 100, 200)
RUN ErstelleArbeitsplatte(Platte, lstStreckenZug)
idP = 0
RUN Y_Extrusion(idP, lstViereck, 10, "", 0, 10, 0)
idK = 0
RUN Y_Extrusion(idK, lstStreckenZug, 10, "Rot")
6.7.3 SCHRITT 3: PUNKTBEARBEITUNGEN
Es gibt 4 Punktbearbeitungen:
Abschrägungen
Rechteckige Ausklinkungen und rechteckige Ausklinkungen mit Bohrungen
Ausklinkungen mit einer Schräge
Abrunden (kreis- oder ellipsenförmig)
Wenn man Streckenbearbeitungen mit Punktbearbeitungen kombinieren will so müssen die Streckenbearbeitungen zuerst aufgerufen werden!
Abschrägungen
! GlobVar,Nr, Art, FpX, FpY
RUN UebertragePunktBearbeitungen(Platte, 1, 1, 100, 100)
RUN UebertragePunktBearbeitungen(Platte, 2, 1, 200, 100)
RUN UebertragePunktBearbeitungen(Platte, 3, 1, 100, 200)
RUN UebertragePunktBearbeitungen(Platte, 4, 1, 300, 400)
Ausklinkungen
Rechtwinkelige Ausklinkungen mit oder ohne Bohrungen
! GlobVar,Nr, Art, FpX, FpY, 0, 0, Radius
RUN UebertragePunktBearbeitungen(Platte, 1, 2, 100, 100, 0, 0, 13)
RUN UebertragePunktBearbeitungen(Platte, 2, 2, 200, 100 !Keine Bohrung
RUN UebertragePunktBearbeitungen(Platte, 3, 2, 100, 200, 0, 0, 25)
RUN UebertragePunktBearbeitungen(Platte, 4, 2, 300, 400, 0, 0, 80)
Schräge Ausklinkungen
! GlobVar,Nr, Art, FpX, FpY, FpX2
RUN UebertragePunktBearbeitungen(Platte, 1, 2, 100, 100, 100)
RUN UebertragePunktBearbeitungen(Platte, 2, 2, 200, 100, 100)
RUN UebertragePunktBearbeitungen(Platte, 3, 2, 100, 200, 100)
RUN UebertragePunktBearbeitungen(Platte, 4, 2, 300, 400, 100)
Abrunden
! GlobVar,Nr, Art, FpX, FpY
RUN UebertragePunktBearbeitungen(Platte, 1, 3, 400, 400)
RUN UebertragePunktBearbeitungen(Platte, 2, 3, -200, -400) !Innen
RUN UebertragePunktBearbeitungen(Platte, 3, 3, 200, 400)
RUN UebertragePunktBearbeitungen(Platte, 4, 3, -200, -400) !Innen
Sind FpX und FpY negativ bzw. ist ein Wert davon negativ so erfolgt die Rundung nach innen!
6.7.4 SCHRITT 4: ARBEITSPLATTE (OUTLINE) ERSTELLEN
Nachdem man alle Bearbeitungen übertragen hat kann mittels dem Prozeduraufruf
lstStreckenZug = {}
RUN ErstelleArbeitsplatte(Platte, lstStreckenZug)
der endgültige Streckenzug ermittelt werden. Diese Outline kann dann via Extrusionsbefehle grafisch dargestellt werden.
6.7.5 WEITERE BEISPIELE
Positiver Herdanschluss vorne und hinten, eine Eckausnehmung hinten recht s und die linke hintere Ecke wird gerundet:
RUN UebertrageHauptstreckenBearbeitungen(Platte, 1, 2, 600, 0, 300, 200, 200)
RUN UebertragePunktBearbeitungen(Platte, 3, 2, 200, 200, 100,0)
RUN UebertragePunktBearbeitungen(Platte, 4, 3, 200, 200, 0,0)
Vier negative Herdanschlüsse mit 4 Innenausrundungen an jeder Ecke:
RUN UebertrageHauptstreckenBearbeitungen(Platte, 1, 1, 500, 0, 300, 200, 200)
RUN UebertrageHauptstreckenBearbeitungen(Platte, 2, 1, 0, 250, 300, 200, 200)
RUN UebertrageHauptstreckenBearbeitungen(Platte, 3, 1, 500, 0, 300, 200, 200)
RUN UebertrageHauptstreckenBearbeitungen(Platte, 4, 1, 0, 250, 300, 200, 200)
RUN UebertragePunktBearbeitungen(Platte, 1, 3, -100, -100)
RUN UebertragePunktBearbeitungen(Platte, 2, 3, -100, -100)
RUN UebertragePunktBearbeitungen(Platte, 3, 3, -100, -100)
RUN UebertragePunktBearbeitungen(Platte, 4, 3, -100, -100)
Ein negativer Herdanschluss unten und oben und eine Eckausnehmung mit Bohrung links unten, rechts unten eine schräge Ausklinkung , rechts oben eine Abschrägung und links oben wird nach innen gerundet.
RUN UebertrageHauptstreckenBearbeitungen(Platte, 1, 1, 700, 0, 200, 200, 200)
RUN UebertrageHauptstreckenBearbeitungen(Platte, 3, 1, 700, 0, 200, 200, 200)
RUN UebertragePunktBearbeitungen(Platte, 1, 2, 300, 400, 0, 0, 80)
RUN UebertragePunktBearbeitungen(Platte, 2, 2, 200, 200, 200)
RUN UebertragePunktBearbeitungen(Platte, 3, 1, 300, 200)
RUN UebertragePunktBearbeitungen(Platte, 4, 3, -400, -400)