Da ich den index einer Matrixvariable zur Spaltenbreiteneingabe nicht nutzen kann - hier eine Version,bei der die Spaltenbreiten des Elementes mittels extra Parameter angegeben werden.
wird A auf 0 gesetzt - werden die eingegebenen Spaltenbreiten zur Gesamtbreite Summiert
wird A angegeben, werden die Spaltenbreiten
prozentuell auf A umgerechnet
es kann auch gleichmäßig aufgeteilt werden - Parameter glm
<img src="http://www.salzburg.co.at/hmooslechner/images/GlasMatrix001c.gif" alt="" />
und hier noch der gesamte 3D-Code:
beachtet hier die Umrechnung der Spaltenbreiten am Anfang der Schleife!
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;"> !!Glsafassadenbauteil mit einfachsten Grundelementen zum Forumskurs 5/2002 Heimo Mooslechner
!Berechnung verschiedener Spaltenbreiten - Summenbildung der Spaltenbreiten
if Spalten=1 then SpSumme=s0
if Spalten=2 then SpSumme=s0+s1
if Spalten=3 then SpSumme=s0+s1+s2
if Spalten=4 then SpSumme=s0+s1+s2+s3
if Spalten=5 then SpSumme=s0+s1+s2+s3+s4
if Spalten=6 then SpSumme=s0+s1+s2+s3+s4+s5
if Spalten=7 then SpSumme=s0+s1+s2+s3+s4+s5+s6
if Spalten=8 then SpSumme=s0+s1+s2+s3+s4+s5+s6+s7
if Spalten=9 then SpSumme=s0+s1+s2+s3+s4+s5+s6+s7+s8
if Spalten=10 then SpSumme=s0+s1+s2+s3+s4+s5+s6+s7+s8+s9
if A=0 then
else !Falls A nicht 0, dann Umrechnung auf %-Werte
SPprozent=a/SpSumme
s0=SPprozent*s0
s1=SPprozent*s1
s2=SPprozent*s2
s3=SPprozent*s3
s4=SPprozent*s4
s5=SPprozent*s5
s6=SPprozent*s6
s7=SPprozent*s7
s8=SPprozent*s8
s9=SPprozent*s9
endif
!!Nochmalige Spaltensumme falls sich die geändert hat...
if Spalten=1 then SpSumme=s0
if Spalten=2 then SpSumme=s0+s1
if Spalten=3 then SpSumme=s0+s1+s2
if Spalten=4 then SpSumme=s0+s1+s2+s3
if Spalten=5 then SpSumme=s0+s1+s2+s3+s4
if Spalten=6 then SpSumme=s0+s1+s2+s3+s4+s5
if Spalten=7 then SpSumme=s0+s1+s2+s3+s4+s5+s6
if Spalten=8 then SpSumme=s0+s1+s2+s3+s4+s5+s6+s7
if Spalten=9 then SpSumme=s0+s1+s2+s3+s4+s5+s6+s7+s8
if Spalten=10 then SpSumme=s0+s1+s2+s3+s4+s5+s6+s7+s8+s9
i=0 ! Startschleife mit Stehern
for i = 0 to Spalten
if glm=1 then !
kbr=((SpSumme-BSteher)/Spalten)-Bsteher
else
if i=0 then kbr= S0-Bsteher
if i=1 then kbr= S1-Bsteher
if i=2 then kbr= S2-Bsteher
if i=3 then kbr= S3-Bsteher
if i=4 then kbr= S4-Bsteher
if i=5 then kbr= S5-Bsteher
if i=6 then kbr= S6-Bsteher
if i=7 then kbr= S7-Bsteher
if i=8 then kbr= S8-Bsteher
if i=9 then kbr= S9-Bsteher
endif
Block BSteher, Tsteher, EH ! Steher Breite, Tiefe, Elementhöhe
for z= 0 to Zeilen ! Beginn Zeilen
if i<Spalten then ! letzte Kämpferspalte verhindern
addx BSteher ! um Steherbreit nach X
Block kbr, Tsteher, Bsteher ! Kämpfer
del 1 ! zurück um Steherbreite
else
endif ! Ende letzte Zeilenreihe
addz (EH-Bsteher)/Zeilen ! Kämpferhöhe = hier Steherbreite
next z
del Zeilen+1 ! Ende Zeilen, Koordinaten-Stack zurücksetzten
Spaltenbreite=(SpSumme-BSteher)/Spalten ! (A-BSteher)=Gesamtbreite - 1x Steherbreite / Spaltenanzahl
!Breitenfaktor=
if glm=1 then
addx Spaltenbreite ! Koordinaten nach rechts schieben - gleichmäßig
else
if i=0 then addx S0
if i=1 then addx S1
if i=2 then addx S2
if i=3 then addx S3
if i=4 then addx S4
if i=5 then addx S5
if i=6 then addx S6
if i=7 then addx S7
if i=8 then addx S8
if i=9 then addx S9
if i=10 then addx S10
endif
next i ! Ende Startschleife Steher
del Spalten + 1 ! Koordinatenversatz zurücksetzen
Liest das eigentlich jemand?
AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia