<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Thema "Re: TIPPS + TRICKS:          ARRAYS" in Programmierung</title>
    <link>https://community.graphisoft.com/t5/Programmierung/TIPPS-TRICKS-ARRAYS/m-p/449886#M2818</link>
    <description>Interessant ist vielleicht auch, dass nicht gefüllte Arrays (in der Parameterliste) die Dateigrösse vergrössern, als wären sie gefüllt. Bei exzessiver Nutzung kann das einiges ausmachen.</description>
    <pubDate>Mon, 23 Sep 2002 09:40:00 GMT</pubDate>
    <dc:creator>kurb70</dc:creator>
    <dc:date>2002-09-23T09:40:00Z</dc:date>
    <item>
      <title>TIPPS + TRICKS:          ARRAYS</title>
      <link>https://community.graphisoft.com/t5/Programmierung/TIPPS-TRICKS-ARRAYS/m-p/449884#M2816</link>
      <description>&lt;B&gt;Was sind Arrays?&lt;/B&gt;&lt;BR /&gt; Arrays sind in tabellenartig aufgebauten Speichern abgelegte Werteansammlungen.&lt;BR /&gt; Man kann Arrays kurz als Wertetabellen übersetzen. (Im GDL-Handbuch werden sie als Ansammlungswerte bezeichnet)&lt;BR /&gt; &lt;BR /&gt; Es gibt 2 Arten von Arrays:&lt;BR /&gt; a) die direkt im Script definierten&lt;BR /&gt; b) die im Parametereingabefeld definierten.&lt;BR /&gt; &lt;BR /&gt; zu a) Die Arrays werden im 2D-Script, im 3D-Script oder im Master-Script "erklärt".&lt;BR /&gt; Dies macht man mit dem Befehl "DIM". &lt;BR /&gt; Will man eine Wertetabelle mit einer Spalte (und 9 Werten) definieren, schreibt man&lt;BR /&gt; DIM wt[9]&lt;BR /&gt; Will man eine Wertetabelle mit einer Zeile (und 9 Werten) definieren, schreibt man&lt;BR /&gt; DIM wt[1][9]&lt;BR /&gt; Will man eine Wertetabelle mit 9 Zeilen und 9 Spalten definieren, schreibt man&lt;BR /&gt; DIM wt[9][9]&lt;BR /&gt; Die Bezeichnung "wt" ist willkürlich gewählt. Sie stellt quasi den Namen der Wertetabelle dar.&lt;BR /&gt; Jede neu definierte Array muß natürlich einen eigenen Namen besitzen und darf keinen bereits verwendeten Variablen- oder Parameternamen besitzen (und keinen Befehlsnamen wie PRISM).&lt;BR /&gt; Die Zahlen müssen in eckigen Klammern stehen; die erste Zahl gibt die Anzahl der Zeilen an, die zweite die Anzahl der Spalten.&lt;BR /&gt; Nach der "Erklärung" der Arrays sind diese noch leer und müssen gefüllt werden.&lt;BR /&gt; Man kann schreiben:&lt;BR /&gt;  &amp;lt;/font&amp;gt;&amp;lt;blockquote&amp;gt;&amp;lt;font size="1" face="Verdana, Helvetica, sans-serif"&amp;gt;Code:&amp;lt;/font&amp;gt;&amp;lt;hr /&amp;gt;&amp;lt;pre style="font-size:x-small; font-family: monospace;"&amp;gt;  wt[1]=1&lt;BR /&gt; wt[2]=1.1&lt;BR /&gt; wt[3]=1.2&lt;BR /&gt; ..................usw.alternativ geht es auch mit einer Schleife: &lt;BR /&gt; &amp;lt;/font&amp;gt;&amp;lt;blockquote&amp;gt;&amp;lt;font size="1" face="Verdana, Helvetica, sans-serif"&amp;gt;Code:&amp;lt;/font&amp;gt;&amp;lt;hr /&amp;gt;&amp;lt;pre style="font-size:x-small; font-family: monospace;"&amp;gt;for k=1 TO 9&lt;BR /&gt; wt[k]=1+(k-1)*0.1&lt;BR /&gt; NEXT k Die Werte der Arrays können nicht nur Zahlen (Abmessungen, Ganzzahlen oder natürliche Zahlen) sein, sondern auch Text, Materialien etc. Es geht allerdings nicht, dass Wert 1 eine Abmessung und Wert 2 ein Textausdruck ist.&lt;BR /&gt; Wenn "wt" eine Textansammlung ist, kann der erste Wert heißen:&lt;BR /&gt; wt[1]="Guten Morgen"&lt;BR /&gt; Die Array-Werte können nach dem GDL-Kochbuch nicht mit Parametern oder veränderlichen Variablen gefüllt werden.&lt;BR /&gt; Bei einem Test in ArchiCAD 7.0 + 6.5 scheint dies allerdings doch möglich zu sein.&lt;BR /&gt; &lt;BR /&gt; zu b) Die Arrays werden im Parametereingabefeld definiert, indem man auf den Schalter mit dem Tabellensymbol klickt, der sich rechts neben dem Schalter, mit dem man den Parametertyp definiert, befindet. Es öffnet sich das Dialogfeld "Ansammlungswerte" mit einem einzigen Standardwert. Will man weitere Reihen definieren, klickt man auf die linke "1" und drückt sooft "Einfügen" bis man die gewünschte Anzahl erreicht. Für weitere Spalten klickt man entsprechend auf die obere "1".&lt;BR /&gt; Man kann anschließend die Werte für die entsprechenden Felder eingeben oder auch auf Null lassen.&lt;BR /&gt; Statt die Werte direkt einzugeben, geht dies auch im Parameter-Script mit dem PARAMETERS-Befehl, z.B. PARAMETERS wt[1]=0.5&lt;BR /&gt; Ist der Parametertyp "Länge", gibt man Längenwerte ein, ist er "Material", wählt man Materialien aus.&lt;BR /&gt; Will man später die Werte vom Parametereingabefeld aus editieren, darf man nicht erneut auf das Tabellensymbol klicken, sondern man muß ganz oben auf den Schalter "SET" klicken.&lt;BR /&gt; Ein Vorteil von Typ b) ist, dass der Anwender im Dialogfeld des Bibliothekselementes die Ansammlungswerte editieren kann.&lt;BR /&gt; Hierdurch kann man z.B. hundert Parameter in einem einzigen Parameter "komprimieren".&lt;BR /&gt; Nachteil hierbei ist allerdings, dass das ganze sehr unübersichtlich wird. Ich würde diese Art der Parametereingabe durch den Anwender nur für selten zu ändernde Parameter verwenden, wie die Daten eines Kalenders, die einmal eingegeben, ihre Gültigkeit behalten.&lt;BR /&gt; &lt;BR /&gt; Anwendung von Arrays:&lt;BR /&gt; &lt;BR /&gt; 1. Einer der wesentlichen Anwendungen, für die ich Arrays verwende, ist die Schleifenbildung mit veränderlichen Variablen.&lt;BR /&gt; Wenn man eine normale Schleife aufstellt, sind die wiederkehrenden Werte, z.B. Abmessungen immer gleich. Mit Arrays ist es möglich, z.B. eine Pfosten-Riegel-Konstruktion mit unterschiedlichen Achsmaßen zu erstellen, ohne auf ein kurzes Script mit einer Schleife verzichten zu müssen.&lt;BR /&gt; Beispiel:&lt;BR /&gt; &lt;BR /&gt; Normales 3D-Script ohne Array und Schleife:&lt;BR /&gt; Parameter: c2, c3, c4, c5, c6 (Abstände)&lt;BR /&gt; &amp;lt;/font&amp;gt;&amp;lt;blockquote&amp;gt;&amp;lt;font size="1" face="Verdana, Helvetica, sans-serif"&amp;gt;Code:&amp;lt;/font&amp;gt;&amp;lt;hr /&amp;gt;&amp;lt;pre style="font-size:x-small; font-family: monospace;"&amp;gt;CYLIND 1,0.1&lt;BR /&gt; ADDx c2&lt;BR /&gt; CYLIND 1,0.1&lt;BR /&gt; ADDx c3&lt;BR /&gt; CYLIND 1,0.1&lt;BR /&gt; ADDx c4&lt;BR /&gt; CYLIND 1,0.1&lt;BR /&gt; ADDx c5&lt;BR /&gt; CYLIND 1,0.1&lt;BR /&gt; ADDx c6&lt;BR /&gt; CYLIND 1,0.1&lt;BR /&gt; DEL TOP3D-Script mit Array und Schleife:&lt;BR /&gt; Parameter: c2, c3, c4, c5, c6 (Abstände) und (Parameter-Array mit 6 Werten)&lt;BR /&gt; &amp;lt;/font&amp;gt;&amp;lt;blockquote&amp;gt;&amp;lt;font size="1" face="Verdana, Helvetica, sans-serif"&amp;gt;Code:&amp;lt;/font&amp;gt;&amp;lt;hr /&amp;gt;&amp;lt;pre style="font-size:x-small; font-family: monospace;"&amp;gt;FOR k=1 TO 6&lt;BR /&gt; ADDx c[k]&lt;BR /&gt; CYLIND 1,0.1&lt;BR /&gt; NEXT k&lt;BR /&gt; DEL TOPWie man sieht, ist das Script sehr kurz und übersichtlich, was sich bei komplexeren Objekten noch wesentlich stärker bemerkbar macht. Allerdings gewinnt das Parameter-Script an zusätzlichem Gewicht, was wie folgt lautet:&lt;BR /&gt; &amp;lt;/font&amp;gt;&amp;lt;blockquote&amp;gt;&amp;lt;font size="1" face="Verdana, Helvetica, sans-serif"&amp;gt;Code:&amp;lt;/font&amp;gt;&amp;lt;hr /&amp;gt;&amp;lt;pre style="font-size:x-small; font-family: monospace;"&amp;gt;PARAMETERS c[1]=0&lt;BR /&gt; PARAMETERS c[2]=c2&lt;BR /&gt; PARAMETERS c[3]=c3&lt;BR /&gt; PARAMETERS c[4]=c4&lt;BR /&gt; PARAMETERS c[5]=c5&lt;BR /&gt; PARAMETERS c[6]=c6Eine komplette einfache Pfosten-Riegelkonstruktion stellt folgendes Objekt dar:&lt;BR /&gt; &amp;lt;OBJECT ID="GDLCtl" codebase="http://www.gdlcentral.com/bin/files/GDLCtl.cab#version=1,2,5,178" WIDTH="200" HEIGHT="200" CLASSID="CLSID:64D9B72C-E42A-490e-9181-221E1E035A14"&amp;gt;&amp;lt;PARAM NAME="GdllistTxt" VALUE=""&amp;gt;&amp;lt;PARAM NAME="SRC" VALUE="http://download.b-prisma.de/objekte/PR_Simple.gsm"&amp;gt;&amp;lt;embed name='GDLCtl' width='200' height='200' Src='http://download.b-prisma.de/objekte/PR_Simple.gsm' GdlListTxt=''&amp;gt;&amp;lt;/OBJECT&amp;gt;&lt;BR /&gt; &lt;BR /&gt; 2. Eine intressante Anwendung von Arrays ist die Definition von Auswahllisten für den VALUES-Befehl im Parameter-Script:&lt;BR /&gt; z.B. Kann man statt: VALUES "C" "Müller","Meier","Schulze" (wenn C ein Texttyp-Parameter ist)&lt;BR /&gt; folgendes schreiben:&lt;BR /&gt; VALUES "C" d&lt;BR /&gt; Die Namen "Müller","Meier","Schulze" würde man in einen Parameter-Array mit dem Namen "d" eintragen und das Script wäre äußerst sauber. Es ist sogar möglich, dass der Anwender in diesem Array eigene Einträge vornimmt. So könnte er dort z.B. seine 4 (oder mehr) am häufigsten verwendeten Schrifttypen eintragen (die ja bei jedem Anwender unterschiedlich sein können).&lt;BR /&gt; &lt;BR /&gt; Über Beiträge von weiteren Anwendungsmöglichkeiten von Arrays würde ich mich sehr freuen.&lt;BR /&gt;  &lt;BR /&gt;  &lt;SMALL&gt;[ 03. Juli 2005, 12:18: Beitrag editiert von: Jochen Suehlo ]&lt;/SMALL&gt;</description>
      <pubDate>Sun, 22 Sep 2002 19:18:00 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Programmierung/TIPPS-TRICKS-ARRAYS/m-p/449884#M2816</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2002-09-22T19:18:00Z</dc:date>
    </item>
    <item>
      <title>Re: TIPPS + TRICKS:          ARRAYS</title>
      <link>https://community.graphisoft.com/t5/Programmierung/TIPPS-TRICKS-ARRAYS/m-p/449885#M2817</link>
      <description>Im Moment ist die Länge von Text in Arrayfeldern noch auf 32 Zeichen beschränkt. Mit ArchiCAD 8 fällt diese Barriere zum Glück.</description>
      <pubDate>Mon, 23 Sep 2002 09:36:00 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Programmierung/TIPPS-TRICKS-ARRAYS/m-p/449885#M2817</guid>
      <dc:creator>kurb70</dc:creator>
      <dc:date>2002-09-23T09:36:00Z</dc:date>
    </item>
    <item>
      <title>Re: TIPPS + TRICKS:          ARRAYS</title>
      <link>https://community.graphisoft.com/t5/Programmierung/TIPPS-TRICKS-ARRAYS/m-p/449886#M2818</link>
      <description>Interessant ist vielleicht auch, dass nicht gefüllte Arrays (in der Parameterliste) die Dateigrösse vergrössern, als wären sie gefüllt. Bei exzessiver Nutzung kann das einiges ausmachen.</description>
      <pubDate>Mon, 23 Sep 2002 09:40:00 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Programmierung/TIPPS-TRICKS-ARRAYS/m-p/449886#M2818</guid>
      <dc:creator>kurb70</dc:creator>
      <dc:date>2002-09-23T09:40:00Z</dc:date>
    </item>
    <item>
      <title>Re: TIPPS + TRICKS:          ARRAYS</title>
      <link>https://community.graphisoft.com/t5/Programmierung/TIPPS-TRICKS-ARRAYS/m-p/449887#M2819</link>
      <description>ab welcher ac version gibt es den befehl array?&lt;BR /&gt; und kann ich eine variable[x,y] auch direkt aus den parameterfeld definieren?</description>
      <pubDate>Tue, 24 Sep 2002 15:26:00 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Programmierung/TIPPS-TRICKS-ARRAYS/m-p/449887#M2819</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2002-09-24T15:26:00Z</dc:date>
    </item>
    <item>
      <title>Re: TIPPS + TRICKS:          ARRAYS</title>
      <link>https://community.graphisoft.com/t5/Programmierung/TIPPS-TRICKS-ARRAYS/m-p/449888#M2820</link>
      <description>Den DIM-Befehl gibt es mindestens seit Version 6.0, ich schätze es gab ihn auch schon früher, weil es auch ein typischer BASIC-Befehl ist.&lt;BR /&gt; &lt;BR /&gt; Eine Variable [x,y] lässt sich auch direkt im Parameterfeld definieren. Lies oben: "zu b) Die Arrays werden im Parametereingabefeld definiert, indem man auf den Schalter mit dem Tabellensymbol klickt, der sich rechts neben dem Schalter, mit dem man den Parametertyp definiert, befindet..."</description>
      <pubDate>Tue, 24 Sep 2002 18:33:00 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Programmierung/TIPPS-TRICKS-ARRAYS/m-p/449888#M2820</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2002-09-24T18:33:00Z</dc:date>
    </item>
    <item>
      <title>Re: TIPPS + TRICKS:          ARRAYS</title>
      <link>https://community.graphisoft.com/t5/Programmierung/TIPPS-TRICKS-ARRAYS/m-p/449889#M2821</link>
      <description>ok, dann fällts für mich flach weil ichs eben nicht im gdl-handbuch gefunden hab und der befehl unter ac5 nicht läuft  &lt;!-- s:( --&gt;&lt;span class="lia-unicode-emoji" title=":enttäuschtes_Gesicht:"&gt;😞&lt;/span&gt;&lt;!-- s:( --&gt;</description>
      <pubDate>Wed, 25 Sep 2002 07:20:00 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Programmierung/TIPPS-TRICKS-ARRAYS/m-p/449889#M2821</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2002-09-25T07:20:00Z</dc:date>
    </item>
    <item>
      <title>Re: TIPPS + TRICKS:          ARRAYS</title>
      <link>https://community.graphisoft.com/t5/Programmierung/TIPPS-TRICKS-ARRAYS/m-p/449890#M2822</link>
      <description>Ich hab grad noch ne Demoversion von AC 5.0 gefunden. Der DIM-Befehl funktioniert hier schon, aber die Eingabe von Arrays im Parameterfeld ist nicht möglich.</description>
      <pubDate>Wed, 25 Sep 2002 07:29:00 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Programmierung/TIPPS-TRICKS-ARRAYS/m-p/449890#M2822</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2002-09-25T07:29:00Z</dc:date>
    </item>
    <item>
      <title>Re: TIPPS + TRICKS:          ARRAYS</title>
      <link>https://community.graphisoft.com/t5/Programmierung/TIPPS-TRICKS-ARRAYS/m-p/449891#M2823</link>
      <description>Cool,&lt;BR /&gt; &lt;BR /&gt; danke Jochen ... mit dem Befehl hatt ich mich am Wochenende befasst und mir dabei echt die Rübe zermartert ... jetzt hab ich wenigstens ne Anleitung und kann diesen Befehl mal testen ...&lt;BR /&gt; &lt;BR /&gt; Klasse - bärenstark von dir&lt;BR /&gt; &lt;BR /&gt; Ciao&lt;BR /&gt; Karin</description>
      <pubDate>Thu, 26 Sep 2002 05:35:00 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Programmierung/TIPPS-TRICKS-ARRAYS/m-p/449891#M2823</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2002-09-26T05:35:00Z</dc:date>
    </item>
  </channel>
</rss>

