Der Prism_ Befehl

von der Grundfunktionalität unterscheidet sich der Prism_ Befehl vom Prism Befehl nur sehr gering. Er ist lediglich eine Erweiterung um Mask-werte, die uns erlauben die Sichtbarkeit von Kanten und Flächen zu beeinflussen.

Das heißt, dass hinter jede x/y-Koordinate eine weitere Zahl zwischen 0 und 15 hinzukommt, um die Sichtbarkeit der Kanten und Flächen zu steuern. Nehmen wir unser erstes Prism-Beispiel um es in einen Prism_ Befehl umzuwandeln:

PRISM 	4, 1,  
	0, 0,  
	1, 0,  
	1, 1,  
	0, 1

Auf der Seite 38 des GDL-Handbuches finden wir die Bedeutung der Zahlen für die Maskwerte. Wenn wir also das gleiche Ergebnis wie oben wollen, müssen wir den Maskwert wählen, bei dem alle Kanten und die Fläche sichtbar ist. Das ist der Wert 15.

Das Prism wird also folgendermaßen geändert um ein Prism_ zu werden:

PRISM_ 	4, 1,  
	0, 0, 15,
	1, 0, 15,  
	1, 1, 15,  
	0, 1, 15

 

und siehe da, dasselbe Ergebnis im 3D-Fenster:

Und jetzt ist es sehr leicht, diese Mask-Werte zu verändern. Wenn wir z.B.: wollen, dass dieser Würfel auf der ersten Seite offen ist, ändern wir den Maskwert für die erste Seite entsprechend ab:

PRISM_ 	4, 1,  
	0, 0, 7,
	1, 0, 15,  
	1, 1, 15,  
	0, 1, 15

 

und das Ergebnis sieht so aus:

und wenn wir schon so gut in Fahrt sind, dann nehmen wir doch die 2. Seite auch gleich weg:

PRISM_ 	4, 1,  
	0, 0, 7,
	1, 0, 7,  
	1, 1, 15,  
	0, 1, 15

und.... und.... tata:

Allerdings ist diese Linie doch sehr störend. Aber zum Glück können wir ja auch die Kanten beeinflussen. Das ist die linke Kante der zweiten Seite, und die Schalten wir aus, indem wir die 7 auf 5 ändern:

PRISM_ 	4, 1,  
	0, 0, 7,
	1, 0, 5,  
	1, 1, 15,  
	0, 1, 15

und - oh Wunder - in 3D:

 

Na gut. Nachdem jetzt jeder weiß, wie die Verwendung der Maskwerte funktioniert, sollte es ein leichtes sein, den Code für fogendes Prisma ins Forum zu schreiben:

ich freue mich auf rege Teilnahme....

 

Das war aber noch lange nicht alles, was wir mit dem Prism_ machen können. Ähnlich wie wir in ArchiCAD Löcher in Decken erstellen können, indem wir einfach in eine Decke noch eine Decke hineinzeichen, können wir auch Löcher in Prism_ erstellen. Das soll heißen, wir konstruieren zuerst die Hauptform, sagen dem Prism_ dass es jetzt fertig ist, und konstruieren das Loch und sagen dem Prism_ wieder, dass wir fertig sind. Und im Handumdrehen haben wir folgende Figur erstellt:

 

Wie das genau geht wird jetzt erklärt.

Als Grundlage soll folgende Angabe dienen:

Das große Prisma hat eine Seitenlänge von 3mx3m. Das können wir schon leicht programmieren:

PRISM_ 4, 1, 
0, 0, 15,
3, 0, 15, 
3, 3, 15, 
0, 3, 15

und somit ist schon einmal der Grundstein gelegt. Jetzt müssen wir dem Prism_ nur noch beibringen, dass jetzt das Ende der Außenkontur kommt. Dazu können wir auch den Maskwert benutzen, und zwar mit dem Wert -1.
In unserem Beispiel heißt das, dass wir wieder den Startpunkt als Endpunkt mit dem Maskwert -1 angeben.
Achtung: dadurch erhöht sich die Anzahl der Punkte um 1!

PRISM_ 5, 1, 
0, 0, 15,
3, 0, 15, 
3, 3, 15, 
0, 3, 15,
0, 0, -1

Das führt zum selben Ergebnis wie das obere Script, das Prism_ weiß aber jetzt, dass alles was jetzt folgt, ausgeschnitten wird. Also modifizieren wir das Beispiel gleich weiter, und zwar komplett:

PRISM_ 10, 1, 
0, 0, 15,
3, 0, 15, 
3, 3, 15, 
0, 3, 15,
0, 0, -1,
1, 1, 15,
2, 1, 15,
2, 2, 15,
1, 2, 15,
1, 1, -1

Und fertig ist unser Element. Wir sehen also, dass wir auch am Ende des Loches das mit dem Maskwert -1 abschließen. Wir könnten jetzt problemlos auch ein 2. Loch erzeugen, doch das soll eure nächste Aufgabe werden:

Die Ergebnisse wie immer bitte ins Forum.

und die ganz ausgeschlafenen können sich ja mal an folgendem Beispiel versuchen:

Dafür gibt es natürlich verschiedene Lösungsansätze.

 

Und weiter geht's mit den zusätzlichen Maskwerten, Teil 1