WPS
Wofür und warum
Die WELLCOM Programm Sprache – WPS wurde entwickelt, um spezifische Erweiterungen an Programmen der WELLCOM Software GmbH zu ermöglichen. Sie erlaubt dem Anwender, eigene Funktionen und Zusatzprogramme in dieser Makrosprache zu schreiben, die vollen Zugriff auf die Datenbank der Programme der WELLCOM Software haben.
Warum hat WELLCOM eine eigene Programmschnittstelle geschaffen?
Die meisten CAD-Kerne auf dessen Basis die CAD – Software von WELLCOM aufbaut, bieten bereits eine Programmierschnittstelle.
Dafür gibt es mehrere Gründe. Als erster und wichtigster Grund ist die Unabhängigkeit vom CAD-Kern zu nennen. Die Programmierschnittstellen der verschiedenen CAD – Grundprogramme sind sehr unterschiedlich. Sie basieren nur anscheinend auf einem etablierten und allgemein gültigen Sprachstandard. Es sind meist spezielle Anpassungen einer höheren Programmiersprache. So ist AutoLISP von Autodesk nur in Verbindung mit dem CAD – Programm AutoCAD benutzbar und nicht mit einem anderen LISP – Interpreter.
Dies ist die WELLCOM – Programm – Sprache zwar auch, doch passen wir, die WELLCOM Software, die Sprache an den jeweiligen CAD-Kern an. Dem Anwender bleibt somit diese Arbeit erspart. Steigt der Anwender von einer CAD – Basis auf eine andere um, können die Makros ohne Anpassung weiterhin benutzt werden.
Würde der Anwender eine vom CAD – Basisprogramm zur Verfügung gestellte Schnittstelle benutzen, ist er mit seinen Makros auf dieses Grundsystem festgelegt. Als Beispiel seien hier die User Commands von MicroStation genannt, welche in kein anderes CAD – System übertragbar sind. So sind auch die in AutoLISP geschriebenen Makros für das CAD – Programm AutoCAD praktisch auch nicht auf ein anderes System übertragbar. Selbst bei der Benutzung der meist zur Verfügung gestellten C – Schnittstellen ist eine Anpassung für einen Endanwender kaum oder nur sehr schwer möglich.
Eine vom CAD – unabhängige Schnittstelle wie Sie WELLCOM Software bietet, ist ein komplettes eigenes CAD-System mit genormten Bibliotheken, welches in vielen Mannjahren entwickelt wurde und ständiger Pflege und Betreuung unterliegt. Es sind sehr gute Kenntnisse der benutzten CAD-Kerne nötig, welche weit über das vom Anwender benötigte Wissen hinausragen.
WPS stellt auch Funktionen zur Generierung von Benutzerdialogen zur Verfügung.
Ein weiterer Grund ist die Bereitstellung vorhandener Makros von WELLCOM oder auch von Kunden untereinander. Selbst bei verschiedenen CAD – Systemen wie AutoCAD und MicroStation können Makros ohne Anpassung auf beiden Systemen benutzt werden.
Dieser Zugriff auf die Anwendungsprogramme ist mit einer fremden Programmschnittstelle für den Anwender nur schwer zu realisieren. Es sind dazu meist gute Kenntnisse der Programmsprache C erforderlich. Die Programme müssen sehr stabil und ausgereift sein.
Durch die WELLCOM – Programm – Sprache können die meisten Ungereimtheiten in Anwender Makros abgefangen werden, ähnlich wie bei der manuellen Eingabe.
Die WELLCOM Programm Sprache ist in den folgenden Modulen der ARTIFEX Reihe vorhanden:
AR_GEB Gebäudeentwurf
MATT_BEW Mattenbewehrung
STAB_BEW Stabstahlbewehrung
STAHLBAU Stahlbaumodul
Die WPS ist in der Syntax stark an die Programmiersprache Pascal angelehnt. Genau wie bei dieser höheren Programmiersprache wird hier mit Variablen, Vergleichen und Schleifen gearbeitet. Über spezielle Funktionen und spezielle Variablen wird Einfluß auf die Programme genommen. Das heißt, es gibt definierte Variablen, um die Datenbank des jeweiligen Programms zu verändern und Funktionen, um neue Datensätze der Datenbank zuzufügen.
Über Funktionsaufrufe werden neue Datensätze erzeugt und auch gleich gezeichnet. Diese speziellen Variablen und Funktionen sind für jedes Programm verschieden. Daneben gibt es noch allgemeine Funktionen und Variablen zum Aus- oder Eingeben von Werten oder zum Zwischenspeichern von Werten.
Datentypen der WPS
Die Variablen werden anhand ihres Datentyps unterschieden.
Es gibt 4 Typen. (Datentypen)
Je nachdem was in den Variablen gespeichert werden soll, unterscheidet man zwischen:
Datentyp „integer“
Ganze Zahlen. Der Typ integer wird wiederum unterschieden in
– allgemeine Variable i1 bis i99
– Applikation abhängige Variable Anzahl
– Konstanten 12 , -16 , 32
– Operatoren + , – , * ,
Beispiel:
24 – 12 + 54
i99 – i44 + 14i
35 / 24 + i71
Datentyp „real“
Gleitkomma Zahlen
Jeder i (integer) – Ausdruck ist auch ein real – Ausdruck (jedoch nicht umgekehrt!)
– allgemeine Variablen r1 – r99
– Applikation abhängige Variable abstand
– Konstanten 3.7, -12.0
– Operatoren + , – , * ,
4.5 * 9.03 – 1.5 / 3
r3 + 23.5 * r8
Datentyp „Punkt“
Punktvariablen
Hier kann ein Koordinaten Punkt gespeichert werden. Dieser Punkt p besteht aus den Komponenten p.x , p.y , p.z , für die x- , y- und z- Koordinate des Punktes.
– allgemeine Variable p1 – p99 (p1.x,p1.y,p1,z)
– Applikation abhängige Variable stabanf (stabanf.x, stabanf.y,stabanf.z)
– Operatoren +,-,. (Punktoperator)
Beispiel:
p1 + p45; (=p1.x+p45.x;p2.y+p45.y;p3.z+p45.z)
p3.x = p3.x + 20.0;
Datentyp „String“
String Variablen bzw. Zeichenkettenvariablen können Texte speichern. Ein Text besteht aus einer Folge von beliebigen, ausdruckbaren Zeichen.
– allgemeine Variable s1 -s99
– Konstanten „abc“ , „123“
– Operatoren keine
Für die Manipulation von String variablen stehen verschiedene Funktionen zur Verfügung. wie STRING_COPY oder STRING_CAT
Beispiel:
STRING_COPY (s1,“Bauherr:“); STRING_CAT (s1,“Meier“);
Zuweisungen
Um einer Variablen einen Wert zuzuweisen, wird entweder das Gleichheitszeichen „=“ oder der „Ergibt sich aus „-Operator „:=“ benutzt.
variable := ausdruck
Beispiel :
i1 := 12 ;
i1 = i2 ;
(Der Integer Variablen i1 wird der Ganz Zahlenwert 12 zugewiesen)
r44 = -3.5 ;
(Der Realvariablen r44 wird der Realzahlenwert -3.5 zugewiesen)
p5.x := (i4 * r9) + p3.z ;
p1.y := p5.x ;
i-variable := i-ausdruck
r-variable := r-ausdruck
p-variable := p-ausdruck
Man unterscheidet zwischen allgemeinen Variablen und speziellen Variablen.
Die allgemeinen Variablen sind in jedem Modul vorhanden. Sie dienen dazu, Zwischenergebnisse zu speichern, Schleifen zu programmieren oder Formeln zu berechnen. Wie vorher beschrieben, haben diese Variablen bestimmte Bezeichnungen und Typen. Es folgt eine Aufzählung der allgemeinen Variablen sowie der speziellen Variablen. Die speziellen Variablen sind nur in Verbindung mit dem dafür vorgesehenen Modul verfügbar.
Wird eine spezielle Variable für ein anderes Modul benutzt, so führt dies zu einer entsprechenden Fehlermeldung.
Die Bedeutung der speziellen Variablen wird später bei der Beschreibung der einzelnen Module mit ihren Variablen und Funktionen erläutert. Diese Aufzählung soll nur ein Überblick über die vorhandenen Variablen sein.
Um die speziellen Variablen und die speziellen Funktionen richtig zu verstehen, sind gute Kenntnisse des dafür vorgesehenen Moduls unbedingt notwendig. Man sollte also zuerst das entsprechende Handbuch des speziellen Moduls ( Gebäudeentwurf, Bewehrung oder Stahlbau) lesen, und auch praktische Erfahrung in diesem Modul haben, bevor man mit Hilfe der WELLCOM Programm Sprache seine eigenen Funktionen und Variantenkonstruktionen schreibt.
Die speziellen Variablen der einzelnen Module sind meistens die Voreinstellung Parameter (FSM) des jeweiligen Moduls. Man kann also mit Hilfe der WELLCOM Programm Sprache die gewünschten Parameter und Einstellungen in dem jeweiligen Modul vornehmen und mit einem entsprechenden Funktionsaufruf diese an ein anderes Modul weitergeben.
Allgemeine Variablen
i1 bis i199 freie Integer variablen
r1 bis r199 freie Realzahl variablen
p1 bis p149 freie Punktvariable (p1.x, p1.y, p1.z)
s1 bis s99 freie String variablen
Mit der Funktion NAME() ist es möglich, eigene Namen für die freien Variablen zu verwenden. Ein Programm ist einfacher zu lesen, wenn anstatt r1 die Bezeichnung HOEHE benutzt wird. Es darf jedoch kein Name verwendet werden, welcher schon als Bezeichnung für eine spezielle Variable eines Moduls benutzt wird. (name(r61,“hoehe))
Spezielle Variablen
Es folgt eine Auflistung der speziellen Variablen der einzelnen Modulen
Spezielle Variablen der Stabstahlbewehrung
VARIABLEN MODELLDATEN
INTEGERS
SBW_LFDM
SBWANZAN
DOUBLES
VARIABLEN DER GEOMETRIEDATEN
INTEGER
DOUBLES
VTLABST
STABZEIFAK
POSDREWI
STABEIWI
STABEIWI_Y
STABEIWI_X
VERLEGEWINKEL
VERLEGEWINKEL_Z
RADIUS
EGWI
ENDWI
PUNKTE
STABANF
LAGEPOSNR
VTLENDPKT
VTLENDPKTX
LAGEPOSTEXT
Listenausgabe INTEGER
SEITELISTANZAHLSEITE
LISTESFORMSEITE
LISTEINFPUNKT
3D Bauteile
DREIDBAUTEI;
Spezielle Variablen der Mattenbewehrung:
Ausgabe der Mattenliste INTEGER
MBWANZBIEG
MBWANZMATT
MBWANZPOSI
MBWLISTART
VARIABLEN DER MODELLDATEN
INTEGERS
MKORB
MPOSANZAHL
MBWLAGE
MANZECK
MBTANZAHL
DOUBLES
ML
MB
MKORBDXA MKORBDYA bis MKORBDXH MKORBDYH
STAFFEL_LI
STAFFEL_RE
VARIABLEN DER GEOMETRIEDATEN
INTEGER
MECK
MANSI
MATDAR
MPOSDAR
MPOSORT
MZEILAGE
DOUBLES
POSDREWI
MEIWI
MVWI
MATTZEIFAK
PUNKTE
MATTANF
MLAGEPOSNR;
Spezielle Variablen des Stahlbaumoduls
Integervariablen:
ACHSPLOT
ANZPROMO
BLICKAUS
FIXECK_EINS
FIXECK_ZWEI
HPOSNR
PEN
PROFDAR
SCHNITTART
SCHNITTSEITE
SDURCHM
SLPUANZXY
SLPUANZXZ
SPOSNR
SREIHEN
SSPALTEN
STUECKZAHL
UPOSNR
ZBAUNR
Realvariablen:
ACHSVLH
ACHSVLV
BREITE
HOEHE
LAENGE
SLAENGE
SREIHABSTAND
SSPALABSTAND
Punktvariablen:
LAGEPOSNR
PROFANF
SEINFP
SLPUNKT_1
SLPUNKT_2
SLPUNKT_3
SLPUNKT_4
SLPUNKT_5
SLPUNKT_6
SLPUNKT_7
SLPUNKT_8
Spezielle Variablen des Gebäudentwurfs
Integervariablen:
ANZEINBAU
AUFB
EINBAUTYP
FARBE
MAT
OEFFNUNG
PRIO
SCHNITT
STAT
STIRNFL_H
STIRNFL_V
TYP
Realvariablen
MASZSTAB Realvariable, gibt den aktuellen Maßstab an. 50.0 oder 100.0 etc.
ANFHOEHE
ANFNIV
BREITE
DICKE
ENDHOEHE
ENDNIV
HOEHE
LAENGE
VERSATZ
Punktvariablen:
AP
EP
EPA
EPB
EPC
EPD
EPE
EPF
EPG
EPH
Die WELLCOM Programm Sprache stellt dem Anwender Funktionen zur Verfügung. Es wird zwischen allgemeinen Funktionen und speziellen, Modul abhängigen Funktionen unterschieden.
Die allgemeinen Funktionen stehen in jedem Modul der WELLCOM Software zur Verfügung. Es sind Funktionen für die Ein- und Ausgabe, Funktionen zur Benutzeroberfläche, Funktionen zur allgemeinen Zeichnungserstellung usw.
Die speziellen Funktionen sind nur in den dafür bestimmten Modulen verfügbar. So gibt es im Programm Gebäudeentwurf (ART_GEB) Funktionen zur Generierung von Wänden, Unterzügen, Stützen usw. Bei Aufruf solch einer Funktion wird automatisch das entsprechende Bauteil in das Gebäudemodell aufgenommen und somit von dem Modul ART_GEB verwaltet.
Dies bedeutet, daß es in die Datenbank genauso aufgenommen und von dem Programm gezeichnet wird, als wenn der Anwender mit einer Funktion des Gebäudeentwurfs dieses Bauteil plaziert hätte. In den anderen Modulen sind entsprechende andere Funktionen vorhanden. Es ist also leicht möglich, was auch eines der Hauptanliegen der WELLCOM Programm Sprache ist, eigene Funktionen in die vorhandene Programme zu integrieren. Diese Funktionen sind in der Regel Variantenkonstruktionen. Auch bei parametrische Bauteilen, bei denen nur die veränderbaren Parameter über die Eingabefunktionen abgefragt werden, finden Makros ihre Anwendung.
Im folgenden sind die vorhandenen Funktionen, auch Prozeduren genannt, aufgezählt. Ihre Erklärung, das heißt der Zweck der Funktion, und ihre Parameter, falls vorhanden, werden anschließend erläutert.
Übersicht Allgemeine Funktionen/Prozeduren
Ein- Ausgabe und Benutzeroberfläche
ARTFUNC
DATOPEN
DOMASK
DOSLID
FILLMASK
FILLSLID
FORMFEED
MASKINFO
NAME
NEWMASK
NEWSLID
PROJECT
READ
READLN
STRING_CAT
STRING_COMPARE
STRING_CONTAIN
STRING_COPY
STRING_TO_REAL
STRING_PARSE
WRITE
WRITELN
ZEIGDIA
PY_STRING
PY_FILE
CANCEL_COMMAND
WCO_PICTMENU
FORMFEED
ASSERT
EXIT
RETURN
SPAWN
TEXT_AUSGABE
Erweiterte Dialoge für die Benutzeroberfläche
DLG_BUTTON
DLG_CHECKBOX
DLG_COLORPICK
DLG_EDITBOX
DLG_INIT
DLG_LABEL
DLG_LISTBOX
DLG_LIST_GET
DLG_LIST_SET
DLG_START
cFM_SEND_SQL SQL Befehl in FM an Datenbank senden
Schnittstelle zu Microsoft Excel
WCO_EXCEL
Formatierungsoptionen siehe Abschnitt „Formatierungsoptionen für Excel Schnittstelle in WPS“
Funktionen zur allgemeinen Zeichnungserstellung:
BEMASSEN
DIM_FACTOR
CIRCLE
ARC
ARCDD
DIM_FACTOR
GSL_TYPE
GSL_WEIGHT
GST_TEXTFAK
GST_COLOR
GST_HEIGHT
GST_JUSTIFY
GST_ROTATION
GST_WEIGHT
INSERT
LINE
LINIENTP
SETCOLOR
SETLAYER
TEXT
TEXTS
TEXTSTIL
ARC
INSERT_3D
GRAPHIC_GROUP
GET_VIEWROT
SKIPBLANK_TEXT
Funktionen für allgemeine Berechnungen
ANGLE
ANGLES_FROM_PTS
ASIN
ATAN
COS
DISTANCE
INTERS
POLAR
POWER
ROTATE_POINT
SIN
TAN
INTERS
ANGLE_3D
DISTANCE_DD
PTS_FROM_PLINE
STRING_TO_REAL
CALC_AREA
Für SSB Makro: Spezielle Funktionen zur automatischen Erzeugung von Randsteinen entlang von Straßenachsen
PLINE_VERSETZEN
PLINE_GLAETTEN
PLINE_KUERZEN
PLINE_PUNKT
FIRST_POINT
PLINE_ANZAHL
Funktionen für allgemeine Datenverwaltung
SAVE_FSM
RESTORE_FSM
Funktionen für mehrseitigen Ausdruck über artifex Draw
WCOPLOTPAGE
PLOTPAGE
Übersicht Anwendung spezifische – Funktionen
Funktionen der Stabstahlbewehrung:
BWFORM
SBWECKE
SBWLISTE
SBWPLBIEGE
STABGEO
STABMOD
STABMOD_VB = Verlegen Von-Bis-Eisen
SBW_SINGLEPLACE = Stab einzeln platzieren
SBW_STATIK = Einlesen statischer Tabellen bei z.B. Fertigteiltreppen.
Funktionen der Mattenbewehrung
MATTMOD
MATTGEO
MATTMOD
MATTYP
MBWBIEGEVOR
MBWLISTE
MBWPLBIEGE
MBWPOLY
Funktionen des Stahlbaumoduls
GETAKPROFMOD
PROFBEZ
PROFGEO
PROFILTYP
PROFMOD
PROFMOD
PROFMAS
SCHNITT_MIT_XY
SCHNITT_MIT_XZ
SCHRAUBENBILD
X_ROTATION
Y_ROTATION
Z_ROTATION
PROFSTAT
Funktionen des Gebäudeentwurfs
GEB
WAND_INIT
UNTZU_INIT
STUET_INIT
EINB_INIT
EINB_RAHM
RAUMVAR
SSB_STEIN
EINB_LISTE
EINB_POS
Schlüsselwörter für Fertigteilbau Funktionen
LT_STKL
LT_POS
FD_WAEHLEN
ELEMENTIERTES_FELD
POSITIONS_ERMITTLUNG
POSITION
RUNDEN
EINZELP_ERMITTLUNG
EINZELPLATTE
PLATTE_MITTE_ZU_SCHWERPUNKT
PLATTE_IM_AUSZUG_DREHEN
BETONGUETE_VON_PLATTE_IM_AUSZUG
BEWEHRUNG_OBEN_VON_PLATTE_IM_AUSZUG
BEWEHRUNG_UNTEN_VON_PLATTE_IM_AUSZUG
ANZAHL_PLATTEN_MIT_POSITIONSNUMMER
KURZBEZEICHNUNG_VON_PLATTE_IM_AUSZUG
HOLE_FELD
FELD_HOLE_WERT
FELD_NEU_ELEMENTIEREN
HOLE_AUSSPARUNG
AUSSPARUNG_HOLE_WERT
NEUE_AUSSPARUNG
HOLE_POLYGON_PUNKT
HOLE_PLATTE
PLATTE_HOLE_WERT
HOLE_PLATTEN_POSITION
PLATTEN_POSITION_HOLE_WERT
HOLE_EINBAUTEIL
EINBAUTEIL_HOLE_WERT
HOLE_LAST
LAST_HOLE_WERT
HOLE_STATIK /* („Feld|Platte“,… */
STATIK_HOLE_WERT
STATIK_REDUZIERE_BM
STATIK_PUNKT_UMRECHNEN
HOLE_STATIK_LAST /* („Erste“… */
STATIK_LAST_HOLE_WERT
HOLE_SCHNITT
SCHNITT_HOLE_WERT
HOLE_EINZEL_LAST
EINZEL_LAST_HOLE_WERT
HOLE_GLEICH_LAST
GLEICH_LAST_HOLE_WERT
HOLE_STAMM_DATEN /* Tab und key geht rein od. „Erster, Naechster“ */
STAMM_DATEN_HOLE_WERT
Allgemeine Funktionen
Es folgt nun eine Beschreibung der allgemeinen Funktionen / Prozeduren. Die Funktionen können Parameter enthalten. Diese Parameter sind Werte, Zahlen, Texte usw., welche an die Funktion übergeben werden. Eine Funktion kann auch einen Wert als Parameter nach Beendigung des Funktionsaufrufes an das Makro zurückgeben. Die WPS unterscheidet 3 Arten von Parameter Werten. Die an die Funktion übergeben und innerhalb der Funktion nicht verändert werden, heißen „Input – Parameter“. Als Output – Parameter bezeichnet man an die Funktion übergebene Variablen, die erst innerhalb der Funktion einen sinnvollen Wert erhalten. Parameter, die sowohl als Input – als auch als Output – Parameter fungieren, werden als „IN/OUT- Parameter“ bezeichnet.
Zu beachten ist, daß lediglich für die Input – Parameter auch Konstanten verwendet werden können. Ein Funktionsaufruf muß immer mit der vorgeschriebenen Parameterliste erfolgen. Entdeckt das Programm Typ -abweichungen oder eine verkehrte Anzahl der Parameter, erfolgt eine Fehlermeldung. In der anschließenden Funktionsbeschreibung gilt für die Parameterbeschreibung folgende Konvention:
=> steht für Input – Parameter
<= entspricht einem Output – Parameter
<=> ein In/Out – Parameter wird erwartet
Funktionen zur Ein- und Ausgabe
datclose ()
Diese Funktion hat keinen Parameter. Die Datei schließen>schließt die zuletzt mit dem Aufruf datopen geöffnete Datei. Alle read, write- Anweisungen erfolgen wieder auf dem Bildschirm.
siehe auch : datopen, read, readln, write, writeln
datopen (filebox, dateiname, lese_schreibe)
=> filebox Typ: Integervariable oder Zahl (–1= nur prüfen, ob Datei da ist; 0 oder 1 siehe unten)
Für –1: wcoretval 0 = Nein 1 = Ja
=> dateiname Typ: Zeichenkette oder Stringvariable
=> lese_schreibe Typ: Zeichenkette „r“ oder „w“
Diese Funktion hat drei Parameter. Sie dient zum Öffnen einer Datei öffnen>Datei. Die Datei wird im ASCII-Modus geöffnet. Die Datei kann zum Lesen oder zum Schreiben geöffnet werden. Dies hängt von dem dritten Parameter ab. Er kann „r“ zum lesen (read) oder „w“ zum schreiben (write) in eine Datei sein. Nachdem eine Datei zum lesen geöffnet ist, beziehen sich alle read – Anweisungen auf die Datei. Ist eine Datei zum schreiben geöffnet, werden alle Write – Ausgaben in die Datei umgeleitet. Der Parameter filebox dient zur Benutzereingabe des Dateinamens. Hat filebox den Wert 1, so wird vor dem Öffnen der Datei ein Dateiauswahlbox angezeigt. Der Datei (Benutzereingabe)>Benutzer kann in der Dateiauswahlbox eine vorhandene Datei anwählen oder eine neue Datei erzeugen. In diesem Falle dient die Zeichenkette dateiname als Auswahlkriterium. Es können die auf dem jeweiligen Betriebssystem gültigen Wildcards (Platzhalter) benutzt werden. Hat filebox den Wert 0, so wird versucht eine Datei mit dem Namen dateiname je nach lese – schreib – Kennung zum lesen oder zum schreiben zu öffnen. In diesem Falle muß dateiname ein gültiger Name für eine Datei sein. Ist beim Öffnen einer Datei die Datei schon vorhanden, wird sie zum Überschreiben geöffnet. Hat filebox den Wert -1, so wird nur geprüft, ob die gewählte Datei vorhanden ist.
Beispiel:
project(s1,“DEFAULTDIR“)
string_cat(s1,“\stab_bew.xls“)
writeln(„“);
DATOPEN(-1,s1,““); # -1= nur pruefen ob Datei da ist-> wcoretval 0=Nein 1=Ja
writeln(s1);
if(wcoretval = 0) then
begin
writeln(„Datei ist nicht vorhanden“);
end;
if(wcoretval <> 0) then
begin
writeln(„Datei ist vorhanden“);
end;
end.
siehe auch : datclose, read,readln, write, writeln
DLG_BUTTON (15,12,“Button1″,10,1,1);
(x,y,name,width,high,item)
Mehr Informationen über das Demomakro …\artifex\DATA\SBW\WPS\Demo_new_item.wps.
DLG_CHECKBOX (15,10,“Yes or NO“,20,i31);
(x,y,“name“,länge,integer-Variable mit Wert);
Mehr Informationen über das Demomakro …\artifex\DATA\SBW\WPS\Demo_new_item.wps.
DLG_COLORPICK (1,9,“Choose Color „,i30);
(x,y,“Label Name“,integer-Variable mit Farbnummer);
Mehr Informationen über das Demomakro …\artifex\DATA\SBW\WPS\Demo_new_item.wps.
DLG_EDITBOX (1,4,“Longer Input „,s6,30);
(x,y,“Text Frage „,Variable mit Antwort als Inhalt, Anzahl Stellen für Text);
Mehr Informationen über das Demomakro …\artifex\DATA\SBW\WPS\Demo_new_item.wps.
DLG_INIT ():
Init new Dialog
Mehr Informationen über das Demomakro …\artifex\DATA\SBW\WPS\Demo_new_item.wps.
DLG_LABEL (1,2,“Label Item only for Info“,24);
(x,y,“Labelname“,Anzahl Stellen für Text);
Mehr Informationen über das Demomakro …\artifex\DATA\SBW\WPS\Demo_new_item.wps.
DLG_LISTBOX (1,6,“Choose Entry „,30,1);
(x,y,text,width,item);
Mehr Informationen über das Demomakro …\artifex\DATA\SBW\WPS\Demo_new_item.wps.
DLG_LIST_GET (s8,i10,2);
(string,nr,item);
Mehr Informationen über das Demomakro …\artifex\DATA\SBW\WPS\Demo_new_item.wps.
DLG_LIST_SET (1,“Listbox 1 Entry 1″,1);
(nr,text,item);
Mehr Informationen über das Demomakro …\artifex\DATA\SBW\WPS\Demo_new_item.wps.
DLG_START („New Item Demo“,i5);
(„name“,choosen dialog button); 0= OK; -1=Cancel; > 0 =Button Number.
Mehr Informationen über das Demomakro …\artifex\DATA\SBW\WPS\Demo_new_item.wps.
domask()
Diese Funktion hat keine Parameter. Nach diesem Aufruf wird die Kontrolle der Maskeneingabe durch den Benutzer>Eingabemaske an den Benutzer übergeben. Nach Beendigung der Eingabemaske werden die Variablen,
welche in der Funktion fillmask() verwendet wurden, mit denen der Benutzereingabe gefüllt.
doslid (index)>doslid(index)
<= index Typ: Integervariable
Diese Funktion hat einen Parameter. Dieser Parameter ist die laufende Nummer des Eintrages, welchen der Listbox (Benutzereingabe)>Benutzer angewählt hat. Nach Aufruf dieser Funktion übernimmt das ARTIFEX – Modul die Kontrolle über die Listbox. Wählt der Benutzer einen Eintrag aus, so wird die Nummer des Eintrages an das Makro zurückgegeben. Bricht der Benutzer die Auswahl ab, so wird ein Wert kleiner oder gleich Null zurückgegeben.
siehe auch : newslid, fillslid
fillmask (x,y,frage,wert,fraglen)
x Typ: Integer
=> y Typ: Integer
=> frage Typ: Text, Zeichenkette oder Stringvariable
<=>wert Typ: Integer oder Realvariable
=> fraglen Typ: Integer
Diese Funktion hat 5 Parameter. Sie erstellt ein neues Maskenfeld erstellen>Maskenfeld. Ein Maskenfeld besteht aus einer Anfrage und einem Feld für die Benutzereingabe. Das Feld für die Benutzereingabe kann mit dem Parameter -Wert vorbelegt werden. Das Maskenfeld steht an der Stelle x,y auf dem Textbildschirm oder einer Eingabemaske in einem Window oder Fenster. Die Werte x und y sind die Spalte und die Reihe, in denen das Maskenfeld mit der Frage beginnt. Der Ursprung ist dabei links oben.
Damit kann man Masken (Eingabemasken) erzeugen. Sie funktionieren genauso wie die anderen Eingabemasken der WELLCOM Software. Der x-Wert muß zwischen 1 und 80 liegen. Es ist zu beachten, daß dies die Anfangskoordinate der Frage ist. Man muß also die Länge des Fragetextes und den Wert des Parameters berücksichtigen, um nicht über den rechten Fensterrand zu gelangen. Der Wert y muß zwischen 1 und 25 liegen. Der Text „frage“ ist die Frage des Maskenfeldes. Die Zahl „wert“ muß eine Variable sein (In/Out-Parameter). Sie kann eine allgemeine Variable i1 .. i99 , r1 .. r99, oder eine spezielle Variable eines Modules sein. Denn in diese Variable wird der neue, vom Benutzer eingebene Wert geschrieben. Es sind bis zu 50 Maskenfelder für eine Bildschirmmaske erlaubt. Die Reihenfolge in der die Funktion fillmask() aufgerufen wird, ist die Reihenfolge der Eingabefelder. Weitere Information über die Benutzung von Eingabemasken stehen im ARTIFEX – ALLGEMEINES ( Einführung / Systemübersicht / Installation ) Handbuch.
siehe auch : newmask, domask, maskinfo
fillslid(„txt“)
=> txt Typ: Stringvariable, Zeichenkette
Diese Funktion hat einen Parameter. Dieser Parameter ist ein Eintrag in der Listbox erstellen>Listbox. Die Reihenfolge in der die Einträge in der Listbox erscheinen, ist die Reihenfolge der Aufrufe dieser Funktion. Die Anzahl der Einträge ist beliebig. Es sollten jedoch nicht mehr als 30 Einträge sein, da sonst die Übersichtlichkeit einer Listbox verlorengeht. Bei mehr als 30 Auswahlmöglichkeiten sollte man eine andere Art einer Benutzerführung wählen. Jeder Eintrag in der Listbox erhält intern eine laufende Nummer.
siehe auch : newslid, doslid
formfeed()
Falls vorher eine Datei mittels „datopen“ geöffnet wurde, kann mit der paramterlosen Funktion „formfeed“ ein Seitenvorschub in der Datei erzeugt werden.
siehe auch : write, writeln, datopen
maskinfo(x,y,info)
x Typ: Integervariable oder Zahl
=> y Typ: Integervariable oder Zahl
=> text Typ: Zeichenkette oder Stringvariable
Mit dieser Funktion kann man zusätzlichen Text in eine Bildschirmmaske eintragen. Die Parameter x und y sind die Koordinaten bezüglich des linken oberen Bildschirmpunktes in Textkoordinaten. (siehe fillmask);
Der Parameter text ist der Infotext, welcher an der Stelle x,y erscheint.
Beispiel
newmask(„Demo“);
i1=12;
fillmask(5,5,“Eingabefeld 1 :“,i1,5);
abstand = 20.0;
fillmask(5,7,“Stababstand :“,abstand,7);
maskinfo(3,2,“Infotext für Handbuch“);
domask();
name(variable,“name“)
variable Typ: beliebig ixx, rxx, pxx
=> name Typ: Zeichenkette [8]
Diese Funktion hat zwei Parameter. Zuerst wird eine freie Variable z.B i56 übergeben und als zweites der von nun an dafür verwendete Name>Name. Die Länge des Namens darf 8 Buchstaben nicht überschreiten. Er darf keine Sonderzeichen und kein Leerzeichen enthalten. Auch darf er nicht im Namenskonflikt mit speziellen Variablen eines Moduls stehen. Es wird nicht zwischen Groß- und Kleinschreibung unterschieden. Beispiel
name(r60,“hoehe“);
Von nun an kann anstatt r60 auch die Bezeichnung hoehe im Programm benutzt werden.
newmask(„txt“)
txt Typ: Text, Zeichenkettevariable
Diese Funktion hat einen Parameter. Dieser Parameter ist der Titel eines Windows oder eines Fensters für eine neue Maskeneingabe. Mit dem Aufruf von newmaks() wird eine neue Maskeneingabe vorbereiten>Maskeneingabe vorbereitet. Dieser Aufruf muß unbedingt vor dem ersten Aufruf der Funktion fillmask() kommen. Bei dem Grundpaket AutoCAD wird der Textbildschirm zusätzlich gelöscht.
newslid()
Diese Funktion hat keinen Parameter. Dieser Aufruf dient lediglich als Startsignal zur Erzeugung einer neuen Listbox vorbereiten>Listbox. Eine Listbox ist eine Auswahlbox für den Benutzer. Man kann in einer Listbox eine Auswahl aus mehreren vorgegebenen Möglichkeiten wählen.
siehe auch : fillslid, doslid
project(text, kennung)
<= text Typ: text
=>kennung Typ:text
Diese Funktion liefert Werte aus der Projektverwaltung, sowie allgemeine Angaben wie der Zeichnungsname, die Werte und Pfadangaben aus der ARTIFERX.INI usw. Im ersten Parameter wird der gewünschte Wert als Text in Abhängigkeit vom zweiten Parameter KENNUNG geliefert
Beispiel
project(s1,“DEFAULTDIR“)
Das Defaultverzeichnis in der ARTIFEX.INI wird in diese String Variable s1 geholt.
Folgendes wird als Parameter KENNUNG ausgewertet
ZEICHNUNG
Name der aktuellen Zeichnung, ohne Pfad
ZEICHNDIR
Pfad zur Zeichnungsdatei
SYSDIR
Pfad aus ARTIFRX.INI [Paths] ->sysdir=c:\Artifex\system
DEFAULTDIR
Pfad aus ARTIFRX.INI [Paths] ->defaultdir=c:\Artifex\defaults
DATADIR
Pfad aus ARTIFRX.INI [Paths] ->datadir=c:\Artifex\data
ORDERDIR
Pfad aus ARTIFRX.INI [Paths] ->caddir=c:\Artifex\project
PRGDIR
Pfad aus ARTIFRX.INI [Paths] ->prgdir=c:\Artifex\prog_win
WORKDIR
Pfad aus ARTIFRX.INI [Paths] ->workdir=c:\Artifex\tmp
MY_EDITOR
aktueller Texteditor aus ARTIFEX.INI my_editor=notepad
DATE
Ausgabe des auf Rechner gespeicherten Datums in der Form dd.mm.yyy mit nnn Stellen. (-) = linksbündig (+) = rechtsbündig. (+) ist voreingestellt. dd=Tag , mm= Monat , yyy = Jahr
TIME
Ausgabe der Rechnerzeit in der Form std.min.sec.
AUFKURZ
Auftrag Kurt Bezeichnung
AUFLANG
Auftrag Langbezeichnung
BAVOR_1
BAVOR_2
BAVOR_3
Bauvorhaben Zeile 1 bis 3
BAHER_1
BAHER_2
BAHER_3
Bauherr Zeile 1 bis 3
ARCHT_1
ARCHT_2
ARCHT_3
Architekt Zeile 1 bis 3
SCHRI_1
SCHRI_2
SCHRI_3
Schriftfeld Zeile 1 bis 3
FIRMA_NAME1
FIRMA_NAME2
FIRMA_NAME3
FIRMA_ORT
FIRMA_PLZ
FIRMA_STRASSE
FIRMA_LAND
FIRMA_E_MAIL
FIRMA_TEL
Angaben aus der Datei artifex.ini. Wird bei der Installation angefragt.
read(para)
<== para Typ: beliebig
Diese Funktion hat einen Parametereingabe>Parameter. Der Typ kann eine Punktvariable, eine Integervariable, eine Stringvariable oder eine Realvariable sein. Der Typ des Parameters wird erkannt und automatisch verwendet. Das heißt, will man eine Koordinate eingeben ( read (p2) p1 bis p99 sind Punktvariablen), so wird automatisch eine Punkteingaberoutine aufgerufen.
Alle möglichen Eingabearten von Punkten dürfen verwendet werden. (Cursoreingabe, Fangmode, WELLCOM Relativ- Funktionen etc.) Außer den allgemeinen Variablen dürfen auch hier die speziellen Variablen eines bestimmten Moduls verwendet werden.
Beispiel:
write(„Anfangspunkt der Matte eingeben“);
read(mattanf);
Nach der Anfrage in der write – Anweisung erscheint das Fadenkreuz und wartet auf eine Eingabe.
Beispiel 2:
write(„Anzahl paralleler Wände“);
read(i50);
Sollte vor dem Funktionsaufruf write, die Funktion datopen() aufgerufen worden sein, so wird der Wert nicht über das Fadenkreuz bei einer Punktvariablen, oder der Wert einer anderen Variablen von der Tastatur erwartet, sondern von der durch die datopen- Funktion geöffneten Datei gelesen.
siehe auch: write, writeln, datopen, datclose
readln(para)
para Typ: beliebig
Für Dateiarbeit erscheint es sinnvoll, eine Funktion zur Verfügung zu stellen, die nach dem Lesen des gewünschten Parameters auch einen evtl. folgenden Zeilenvorschub liest. Auf diese Weise können in einer Datei Kommentare nach den eigentlichen Werten überlesen werden. Die Funktion readln stellt diese Funktionalität zur Verfügung. Im interaktiven Modus (Dialog-Abfragen) arbeitet die Funktion analog zur Funktion read.
siehe auch: read, writeln
string_compare (retivar, svar0, svar1)
<= retivar Typ: Integer
=> svar1 Typ: Zeichenkette oder Stringvariable
=> svar2 Typ: Zeichenkette oder Stringvariable
Diese Funktion hat drei Parametereingabe>Parameter. Die Zeichenketten werden miteinander verglichen. Wenn sie gleich sind wird retivar auf 1 gesetzt, sonst erhält diese Variable den Wert 0.
Beispiel:
string_compare(var1, text1, text2);
Nach dem Aufruf der Funktion enthält die Variable var1 den Wert 0 oder den Wert 1. Sind die beiden Zeichenketten gleich ist es der Wert 1 sonst der Wert 0.
string_contain (retivar, svar1, svar2)
<= retivar Typ: Integer
=> svar1 Typ: Zeichenkette oder Stringvariable
=> svar2 Typ: Zeichenkette oder Stringvariable
Diese Funktion hat drei Parametereingabe>Parameter. Es wird überprüft, ob die Zeichenkette svar2 in der Zeichenkette svar1 enthalten ist. Falls svar2 in svar1 enthalten ist, erhält retivar den Wert 1, sonst 0.
string_contain (var1, text1, text2);
Die Variable text1 enthält beispielsweise die Zeichenkette „ABCdefg“ und die Variable text2 die Kette „def“. Nach dem Aufruf der Funktion enthält die Variable var1 den Wert 0 oder den Wert 1. In diesem Beispiel wird es der Wert 1 sein, da „def Teil der Zeichenkette „ABCdefg“ ist.
string_copy (svar1, bvar2)
<= svar1 Typ: Stringvariable
=> bvar2 Typ: beliebig (außer Punkt)
Diese Funktion hat zwei Parametereingabe>Parameter. Der in eine Zeichenkette umgewandelte Wert von Parameter bvar2 wird auf den Parameter svar1 kopiert.
string_cat (svar1, bvar2)
<=> svar1 Typ: Stringvariable
=> bvar2 Typ: beliebig (außer Punkte)
Diese Funktion hat zwei Parametereingabe>Parameter. Der in eine Zeichenkette umgewandelte Wert des Parameters bvar2 wird an die Zeichenkette des Parameters svar1 angehängt.
Optional kann diese Funktion auch einen dritten Parameter erhalten. Dieser Parameter definiert Formatanweisungen für die Übertragung von bvar2 auf svar1. Folgende Syntax gilt für die Formatanweisung.
„[-]ffff.dd“
wobei ffff für die gesamte Feldbreite und dd für die Anzahl der Nachkommastellen steht. Falls die gesamte Feldbreite nicht erreicht wird (Bsp: 12.00) wird das Feld mit Leerzeichen aufgefüllt. Soll eine Ausrichtung nach links erfolgen, muß das Zeichen „-“ vorangestellt werden. Sinnvoll ist die Nutzung des Parameters ausschließlich bei Realzahlen. So kann mit der Formatanweisung „6.2“ erreicht werden, daß insgesamt 6 Zeichen dargestellt werden, wobei mindestens 2 Nachkommastellen sichtbar sind. Mit der Formatanweisung „-3.0“ kann die Ausgabe von Nachkommastellen unterdrückt werden und gleichzeitig eine Ausrichtung nach links erfolgen.
Beispiel
string_cat (s1,123.4, „-8.2″);
erzeugt die Zeichenkette “ 123.40″
STRING_TO_REAL(TEXT, wert)
=>TEXT Typ text
<=wert Typ Real
Umwandlung einer Textkette in eine Zahl. Es sind auch Operatoren erlaubt.
Bespiel
STRING_COPY(s1,“ 5+4″)
STRING_TO_REAL(s1,r1); Ergebnis r1 ist 9
STRING_PARSE(ERGEBNIS, TEXT,TRENNZEICHEN,NR)
<= ERGEBNIS Typ text
=> TEXT Typ text
=> TRENNZEICHEN Typ text
=> NR Typ INTEGER
Wertet eine Textkette aus und gibt einen bestimmten Teil zurück. Die Trennung der Teile ist in TRENNZEICHEN beschrieben. In NR wird der Teil bestimmt
Beispiel
STRING_COPY(s6,“ AAA;BBB;CCC);
STRING_PARSE(s20,s6,“;“,1) S20 ist AAA
STRING_PARSE(s20,s6,“;“,2) S20 ist BBB
write(„text“)
=> text Typ: beliebig
Die Textausgabe auf dem Bildschirm>Text „text“ wird am Textbilschirm ausgegeben. text ist eine Zeichenkette. Die Zeichenkette kann beliebige Zeichen, Zahlen, Sonderzeichen usw. enthalten. Die Länge der Zeichenkette ist auf 80 Zeichen beschränkt. Der Parameter text kann auch eine Variable sein. Es spielt keine Rolle ob es sich hierbei um eine allgemeine Variable oder eine spezielle Variable eines bestimmten Moduls handelt. Der Parameter text kann auch eine Konstante sein.
Beispiel :
write(„Geben Sie die Anzahl Eisen an:“);
Der Text in den Hochkommas wird auf dem Textbilschirm, oder in den dafür vorgesehenen Bereich des CAD-Kernsystems geschrieben.
Beispiel:
i15=5;
write(i5);
Die Zahl 5 erscheint auf dem Textschirm.
Beispiel:
abstand=15.0;
write(„Eingestellter Stababstand :“);
write(abstand);
write(“ cm“);
Dies erscheint auf dem Textbildschirm:
Eingestellter Stababstand : 15.00 cm
Sollte vor dem Funktionsaufruf write, die Funktion datopen() aufgerufen, so wird der Text nicht auf den Bildschirm, sondern in die von der datopen-Funktion geöffnete Datei geschrieben.
siehe auch : writeln, datopen,datclose
writeln („text“)
Wie Funktion write(), jedoch mit anschließendem Zeilenvorschub. Das heißt, daß nach der Textausgabe eine neue Zeile begonnen wird. Dies gilt auch, wenn durch einen vorhergehenden datopen()-Aufruf in eine Datei geschrieben wird.
siehe auch : write, datopen, datclose
wco_PictMenu (MENU;s1)
=> MENU TYP TEXT Bildmenü zum starten
<= s1 TYP Text Rückgabe der Auswahl aus Bildmenü
Erzeugen eigener Bildauswahlmenüs. Ein Beispiel mit Beschreibung haben Sie unter
:\Artifex\DATA\MBW\WPS\Bildmenu.wps
Zeigdia („name“)
=> name Typ: Zeichenkette
NUR IN AutoCAD ! Diese Funktion hat einen Parameter.
Es ist der Name eines Dias welches nach dem Aufruf im AutoCAD-Grafikfenster angezeigt wird. Nach dem Anzeigen des Dias anzeigen>Dias wartet das Programm auf eine beliebige Tastatureingabe um fortzufahren.
DELETE_FILE
Delete_File(s1)
s1 => String
Löscht die Datei mit Namen der Variablen s1
COPY_FILE
Copy_File(von,nach,failIfExists)
Von => String
Nach=> String
failIfExists =>Integer
Kopiert die Datei mit Namen der Variablen von nach Datei mit Namen nach.
Variable overwrite bestimmt ob eine Datei überschrieben wird falls diese bereits existiert. 1=Nicht überschreiben
RUN_ART_COMMAND („MATT_BEW“,“M66″)
Lädt ein Programm mit Namen des ersten Parameter, falls noch nicht geladen und führt den Befehl des zweiten Parameter aus.
Schnittstelle zu Microsoft Excel
WCO_EXCEL (para1, para2, para3)
=>para1 Typ: Zeichenkette „r“ oder „w“
=>para2 Typ: Zeichenkette „r“ oder „w“
=>para3 Typ: Zeichenkette „r“ oder „w“
Diese Funktion stellt eine Active X (früher OLE) Schnittstelle zu Microsoft Excel zur Verfügung. Das heißt, Sie können Microsoft Excel direkt aus der Makrosprache aufrufen und steuern. Der Parameter 1 gibt dabei den Befehl an. Parameter 2 und 3 sind abhängig von Parameter 1. Diese Funktion setzt die Installation von Microsoft Excel voraus.
Befehle in Parameter 1 sind:
START_EXCEL Start von Microsoft Excel
GET_WORKSHEET Lädt eine Excel Datei (Parameter 1) und einArbeitsblatt( Parameter 2,)
Ist der Dateinamen mit Endung (Z:B: c:\MeineVorgabe.XLSM) wird
und eine solche Datei ist vorhanden, wird diese Datei genommen. Ansonsten wird eine Endung .XLS zugefügt.
in Parameter 3 ist der Tabellenname für die aktuelle Sitzung
OPEN Öffnet eine Excel Datei. Dies wird normalerweise mit
GET_WORKSHEET ausgeführt.
SET_VALUE“, Übergabe einer Zahl oder Text in Zelle Parameter 2
mit Wert in Parameter 3
SET_FORMULA Übergabe einer Formel in Zelle Parameter 2
mit Wert in Parameter 3
SAVE_AS Speichert eine Excel Datei unter Parameter 1.
Parameter 2 kann ein Format Anweisung sein. Entweder in der Form
„FORMAT nn“ wobei nn eine MicroSoft XLFile Formatnummer ist.
51 = xlOpenXMLWorkbook (without macro’s in 2007-2013, xlsx)
52 = xlOpenXMLWorkbookMacroEnabled (with or without macro’s in 2007-2013, xlsm)
50 = xlExcel12 (Excel Binary Workbook in 2007-2013 with or without macro’s, xlsb)
56 = xlExcel8 (97-2003 format in Excel 2007-2013, xls)
Siehe
https://msdn.microsoft.com/de-de/library/office/ff198017.aspx XlFileFormat-Enumeration (Excel)
wco_Excel(„SAVE_AS“,s1,“Format 52″) # 52= xlsm Excel Xls mit Macro (xlOpenXMLWorkbookMacroEnabled)
Oder der Parameter ist direkt „XLS“ , „XLSM“ oder XLSX“.
Bei einer speziellen Formatanweisung sollte der Dateinamen auch noch die entsprecehnde Endung bereits beinhalten.
wco_Excel(„SAVE_AS“,“C:\MITMAKRO.XLMS,“Format 52″)
oder
wco_Excel(„SAVE_AS“,“C:¿MAIEXCLEMITMAKRO.XLMS,“XLMS“)
For example, in Excel 2007-2016, this will fail if the ActiveWorkbook is not an xlsm file.
ActiveWorkbook.SaveAs „C:\ron.xlsm“
This code will always work
ActiveWorkbook.SaveAs „C:\ron.xlsm“, Forrmat 52
‚ 52 = xlOpenXMLWorkbookMacroEnabled = xlsm (with macro’s in 2007-2016)
RELEASE_DISPATCH Beendet eine Excel Verbindung
Beispiel aus der Übergabe der Eisenliste an Excel
wco_Excel(„start_excel“,““,““)
project(s1,“DEFAULTDIR“)
string_cat(s1,“/stab_bew“)
wco_Excel(„GET_WORKSHEET“,s1,“Tabelle1″)
project(s1,“FIRMA_NAME1″)
wco_Excel(„SET_VALUE“,“Name1″,s1)
…
project(s1,“ZEICHNUNG“)
wco_Excel(„SET_VALUE“,“Zeichnung“,s1)
….
row = 13
for i88 = 1 to sbwanzpos do
begin
sbwliste(i88,“PO“,“3″,s1);
string_copy(s2,“A“); string_cat(s2,row); wco_Excel(„SET_VALUE“,s2,s1)
….
Formatierungsoptionen für Excel Schnittstelle in WPS
Die Excel Schnittstelle in der Wellcom Programm Sprache hat folgende Funktionen für die Formatierung
# Erweiterungen in der artifex WPS – Excel Schnittstelle
# Formatieren von Bereichen. In unterem Beispiel wird der Bereich G13 bis G16
# geaendert.
string_copy(s2,“G13 G16″);
wco_Excel(„SET_TEXT_BOLD“,s2,“1″) # 1=Text Fett
wco_Excel(„SET_TEXT_ITALIC“,s2,“1″) # 1=Text Kursiv
wco_Excel(„SET_TEXT_UNDERLINE“,s2,“1″) # 1=Text unterstrichen
wco_Excel(„SET_TEXT_HOR_JUSTIFY“,s2,“2″); #Text0=links 1)mittig 2=rechtsbuendig
wco_Excel(„SET_NUMBER_FORMAT“,s2,“####,#“)
# Textformat
# Siehe Excel Hilfe Information zu Zahlenformaten
# ———————————————–
# Hier ein kleiner Auszug aus der MS-Excel Online-Hilfe
# 1234,59 als 1234,6 ####,#
# 8,9 als 8,900 #,000
# ,631 als 0,6 0,#
# 12 als 12,0 und 1234,568 als 1234,57 #,0#
# 44,398, 102,65 und 2,8 mit ausgerichteten Dezimalstellen ???,???
# etc…
wco_Excel(„SET_TEXTSIZE“,s2,“12″) # Textgroesse
wco_Excel(„SET_TEXT_COLORINDEX“,s2,“4″); # Textfarbe als Index in der Farbtabelle
wco_Excel(„SET_BACK_COL_INDEX“,s2,“5″) # Farbe des Hintergrundes
wco_Excel(„SET_COLUMNWIDTH“,s2,“40″) # Spaltenbreite in Texteinheiten
Hier die Farbtabelle von MS Excel.
Funktionen zur Zeichnungserstellung
bemassen(p1,p2)
=> p1 Typ: Punktvariable
=> p2 Typ: Punktvariable
Diese Funktion hat 2 Parameter. Beide Parameter sind Punktvariablen. Es können allgemeine oder spezielle Punktvariablen sein. Eine Bemaßung erzeugen>Bemassung wird zwischen diesen beiden Punkten erzeugt. Die Auswahl, ob in Meter oder in Zentimeter vermaßt wird bzw. die Bestimmung der erforderlichen Nachkommastellen, erfolgt automatisch.
circle(p,r)
=> p Typ: Punktvariable
=> r Typ: Realvariable
Diese Funktion hat 2 Argumente. Der erste Parameter ist eine Punktvariable, der zweite Parameter ist eine Realvariable oder eine Realzahl. Es sind allgemeine und spezielle Variablen als Argument zulässig. Ein Kreis zeichnen>Kreis wird mit dem Mittelpunkt an der Stelle p mit dem Radius r gezeichnet.
siehe auch :setcolor, linientp,setlayer
Arc(mitte,radius,anfwin,endwin) – 2D Bogen
=> mitte Typ: Punktvariable
=> radius Typ: Realvariable
=> anfwin Typ: Realvariable
=> endwin Typ: Realvariable
Diese Funktion hat 4 Argumente. Der erste Parameter ist eine Punktvariable, die andren Parameter sind Realvariablen oder Realzahlen. Es sind allgemeine und spezielle Variablen als Argument zulässig. Ein Bogen zeichnen>Bogen wird mit dem Mittelpunkt an der Stelle mitte mit dem Radius radius, dem Startwinkel anfwin und dem Endwinkel endwin gezeichnet.
siehe auch :setcolor, linientp,setlayer
ArcDD(anfpunkt,punktaufbogen,endpunkt) – 3D Bogen
=> anfpunkt Typ: Punktvariable
=> punktaufbogen Typ: Punktvariable
=> endpunkt Typ: Punktvariable
Diese Funktion hat 3 Argumente. Alle Parameter sind Punktvariablen. Ein 3D Bogen zeichnen>Bogen wird über 3 Punkte im Raum von anfpunkt über punktaufbogen nach endpunkt gezeichnet.
siehe auch :setcolor, linientp,setlayer
dim_factor(p1,p2,r1)
=> p1 Typ: Punktvariable
=> p2 Typ: Punktvariable
=> r1 Typ: Realvariable
Diese Funktion entspricht der Funktion „bemassen“, wobei zusätzlich ein Faktor angegeben werden kann, durch den die Entfernung zwischen beiden Punkten geteilt wird. Demnach entspricht der Funktionsaufruf „dim_factor(p1,p2,1)“ der Funktion „bemassen(p1,p2).
siehe auch :bemassen
DELETE_LINK()
Diese Funktion hat keine Parameter. Vor der Ausgabe eines Zeichnungselementes, z.B. bei Listen unterdrückt diese Funktion das Anbinden von Zeichnungselementen an die Datenbank
gsl_type(i1)
i1 Typ: Integer-Wert
Diese Funktion legt den Linientyp für folgende line- oder circle-Anweisungen fest. Zulässige Werte für i1 sind ganze Zahlen im Bereich von 0 bis 8.
siehe auch: gsl_weight
gsl_weight(i1)
=> i1 Typ: Integer-Wert
Diese Funktion legt die Strichstärke für folgende line- oder circle-Anweisungen fest. Zulässige Werte für i1 sind Int-Zahlen im Bereich von 0 bis 255.
siehe auch :gsl_type, setcolor
gst_color(farbe)
farbe Typ: Integervariable oder Ganzzahl
Diese Funktion hat einen Parameter. Es ist eine Integervariable oder eine Zahl.
Die Farbe (Text)>Farbe mit der Nummer farbe wird für die folgende Textfarbe>Texte gesetzt. Die übergebene Zahl sollte im Bereich zwischen 0 und 255 legen. Die Farbe für Linien und Kreise wird mit der Funktion setcolor() gesetzt.
siehe auch: gst_height, gst_rotation,setcolor
gst_height(hoehe)
hoehe Typ: Realvariable oder Zahl
Diese Funktion hat einen Parameter. Es ist die Texthöhe>TextText (Höhe)>hoehe in Zentimeter für die folgenden Aufrufe der Funktion text().
siehe auch: text, gst_rotation, gst_color
gst_textfak(faktor)
faktor Typ: Realvariable oder Zahl
Diese Funktion legt den Breitenfaktor ( Textbreite ) für folgende text-Anweisungen fest.
(gst_height * gst_textfak).
Nur MicroStation !
siehe auch: text, gst_height
gst_justify(position)
=> position Typ: Integervariable oder Ganzzahl von 0 bis 8
Diese Funktion ermöglicht es, einen Text an ganz bestimmten Positionen zu fassen, um ihn ganz exakt positionieren zu können. Ein Text erhält dazu immer 8 Positionspunkte. Die Lage dieser Punkte entnehmen sie bitte folgender Zeichnung.
gst_justify (1)
Der nachfolgend ausgegebene Text wird an der Position 1 (Also die Mitte des Textes auf der Grundlinie) mit der zum Text angegebenen Position zur Deckung gebracht.
gst_rotation(winkel)
winkel Typ: Realvariable oder Zahl
Diese Funktion hat einen Parameter. Es ist der Textwinkel>TextWinkel (Text)>winkel im BOGENMASS für die folgenden Aufrufe der Funktion text.
siehe auch: text, gst_height, gst_color
gst_weight(i1)
i1 Typ: Integer-Wert
Diese Funktion legt die Strichstärke für folgende text-Anweisungen fest. Zulässige Werte für i1 sind Int-Zahlen im Bereich von 0 bis 255.
siehe auch: gst_color
insert(zelle,biblio,ep,xfac,yfac, rewi)
=>zelle Typ: beliebig (außer Punkt)
=> biblio Typ: Zeichenkette oder Stringvariable
=> ep Typ: Punktvariable
=> xfac Typ: Real-Wert
=> yfac Typ: Real-Wert
=> drehwi Typ: Real-Wert
Diese Funktion fügt an der Stelle ep die Zelle „zelle“ aus der Bibliothek „biblio“ ein, wobei die Skalierungsfaktoren xfac und yfac und der Drehwinkel beachtet werden.
Bsp: insert („pankopf“,“ARTIFEX“,50,50,0);
Insert_3d(zelle,biblio,ep,xfac,yfac,zfac,zwi,ywi,xwi)
InsertDD(zelle,biblio,ep,xfac,yfac,zfac,zwi,ywi,xwi)
=>zelle Typ: beliebig (außer Punkt)
=> biblio Typ: Zeichenkette oder Stringvariable
=> ep Typ: Punktvariable
=> xfac Typ: Real-Wert
=> yfac Typ: Real-Wert
=> zfac Typ: Real-Wert
=> zwi Typ: Real-Wert
=> ywi Typ: Real-Wert
=> xwi Typ: Real-Wert
Dies ist die 3D Version von INSERT mit Z- Skalierung und 3 Drehwinkeln
line(p1,p2)
=> p1 Typ: Punktvariable
=> p2 Typ: Punktvariable
Diese Funktion hat 2 Parameter. Beide Parameter sind Punktvariablen. Es können allgemeine oder spezielle Punktvariablen sein. Eine Linie zeichnen>Linie wird von Punkt p1 nach p2 gezeichnet.
siehe auch: setcolor, gsl_type,setlayer
linientp („ltyp“)
=> ltyp Typ: Zeichenkette
NUR IN AUTOCAD ! Diese Funktion hat einen Parameter. Es ist der Name eines Linientypes in AutoCAD. Dieser Linientyp muß in der aktuellen Zeichnung schon vorhanden sein. Es entspricht dem AutoCAD-Befehl Linientyp setzen>Linientyp setzen. Diese Funktion ist veraltet und sollte durch die Funktion gsl_type ersetzt werden.
siehe auch :line, gsl_type
setcolor(farbe)
farbe Typ: Integervariable oder Ganzzahl
Diese Funktion hat einen Parameter. Es ist eine Integervariable oder eine Zahl.
Die Farbe (allgem. Zeichenfunktionen)>Farbe mit der Nummer farbe wird gesetzt. Dies hat nur Einfluß auf die allgemeinen Zeichenfunktionen wie line, circle usw. Die Farbe für Texte wird mit der Funktion gst_color() gesetzt.
setlayer(„layer“)
=>layer Typ: Zeichenkette oder Int-Wert
Die Funktion hat einen Parameter. Eine Zeichenkette oder eine Zahl. Der Layer>Layer mit der Bezeichnung „layer“ wird als der aktuelle Layer gesetzt. Dies hat nur Einfluß auf die allgemeinen Zeichenfunktionen wie line, text, circle usw. Die von dem speziellen Modul erzeugten Zeichnungen wie Bewehrungseisen, bleiben auf ihrem normalen Layer.
text(p,text)
p Typ: Punktvariable
=> text Typ: beliebig (außer Punkt)
Diese Funktion hat 2 Argumente. Der erste Parameter ist eine Punktvariable, der zweite Parameter ist ein skalarer Typ. Es sind allgemeine und spezielle Variablen als Punkt zulässig.
Der Text einfügen in Zeichnung>Wert der Variable text wird in eine Zeichenkette umgewandelt und unten-linksbündig an der Stelle p gezeichnet.
siehe auch :gst_color, gst_height, gst_textfak, gst_rotation, textstil
texts(p,text)
NUR IN AUTOCAD ! Erstellt Mtext (ab artifex Version 15.0.2)
p Typ: Punktvariable
=> text Typ: beliebig (außer Punkt)
siehe auch :text, gst_color, gst_height, gst_textfak, gst_rotation, gst_justify, textstil
BESPIELE:
r1 = 0.3 * WCOIUF;
gst_height(r1);
gst_color(2);
gst_rotation(0.0);
gst_justify(0);
write(„Einfügepunkt“)
read(p1);
texts(p1,“TEXT“);
p1.y = p1.y – r1 * 4.0;
UNICODES FÜR SONDERZEICHEN:
# \U+2264 – kleiner gleich
# \U+2265 – größer gleich
# AutoCAD – Steuerzeichen in Bemaßungen
# \S5^ – Mit dem \S wird die nachfolgende 5, oder jegliche nachfolgende Zahl oder Text, hochgestellt zur Bemaßungsangabe.
# Das ^ Zeichen sorgt dafür das alle weitere Angaben danach wieder tiefgestellt werden.
# \P – Löst einen Zeilenvorschub/Umbruch aus und alle danach folgenden Angaben werden in eine zweite Zeile geschrieben.
# \X – Nachfolgender Text wird unterhalb der Bemassungslinie geschrieben.
# \L – Unterstreichen
#L\L\l Unterstreichen aus
# \O – Überstreichen
# \I – Kursive Schrift
# \B – Fette Schrift
p1.y = p1.y – r1 * 4.0;
text(p1,“MTEXT\PNach Zeilenvorschub/Umbruch„);
p1.y = p1.y – r1 * 4.0;
text(p1,“\LUnterstrichen\L\l\PEs folgt kleiner gleich \U+2264 nicht unterstrichen„);
Es gibt sehr viele verschiedene Formatierug über Unicodes Sonderzeichen. Am einfachsten danach googlen.
Siehe z.B: https://de.wikipedia.org/wiki/Unicodeblock_Verschiedene_technische_Zeichenhttps://de.wikipedia.org/wiki/Unicodeblock_Verschiedene_technische_Zeichen (\ vor Sonderzeichen nicht vergessen \U+2264 nicht U+2264 )
textstil („stil“)
=> stil Typ: Zeichenkette
NUR IN AUTOCAD ! Diese Funktion hat einen Parameter. Es ist der Name eines Textstil setzen>Textstiles in AutoCAD. Dieser Textstil wird als aktueller Stil gesetzt.
siehe auch :text
SKIPBLANK_TEXT(s1)
ó s1Zeichenkette
Entfernt führende Leerzeichen aus einem Text.
GRAPHIC_GROUP(1)
Schaltet eine Grafikgruppe Ein oder Aus (1 oder 0)
GET_VIEWROT(r1)
<= r1 Double
Holt den Ansichtsdrehwinkel der aktuelle Zeichnung.
Funktionen für Berechnungen
angle(p1,p2,win)
=> p1 Typ: Punktvariable
=> p2 Typ: Punktvariable
<= win Typ: Realvariable
Diese Funktion hat 3 Parameter. Die beiden Parameter sind Punktvariablen. Es können allgemeine oder spezielle Punktvariablen sein. Der Winkel>Winkel zwischen dem Punkt 1 und dem Punkt 2 wird an das Makro mit der dritten Variablen zurückgegeben. Die Einheit ist im BOGEMAß.
siehe auch :gst_rotation, polar, angles_from_pts
angles_from_pts (p1,p2,winyz, winxz,winxy)
=> p1 Typ: Punktvariable
=> p2 Typ: Punktvariable
<= winyz Typ: Realvariable ( Winkel in der Ebene YZ)
<= winxz Typ: Realvariable ( Winkel in der Ebene XZ)
<= winxy Typ: Realvariable ( Winkel in der Ebene XY)
Diese Funktion berechnet die Winkel zwischen zwei 3D-Punkten innerhalb der verschiedenen Ebenen. Die Out-Parameter entsprechen nach dem Funktionsaufruf den Ebenenwinkeln im Bogenmaß.
asin (sinwin,win)
=> sinwin Typ: Realvariable oder Zahl
<= win Typ: Realvariable oder Zahl
Die Funktion „asin“ führt die ASIN Funktion auf sinwin auf und setzt den Wert win.
siehe auch :atan
atan (tanwin,win)
=> tanwin Typ: Realvariable oder Zahl
<= win Typ: Realvariable oder Zahl
Die Funktion „atan“ führt die ATAN Funktion auf tanwin auf und setzt den Wert win.
siehe auch :asin
cos (win,coswin)
=> win Typ: Realvariable oder Zahl
<= coswin Typ: Realvariable oder Zahl
Die Funktion „cos“ berechnet den Cosinus von win und übergibt das Ergebnis an coswin
siehe auch :sin, tan
distance(p1,p2,dist)
=> p1 Typ: Punktvariable
=> p2 Typ: Punktvariable
<= win Typ: Realvariable
Diese Funktion hat 3 Parameter. Die beiden Parameter sind Punktvariablen. Es können allgemeine oder spezielle Punktvariablen sein. Die Entfernung zwischen dem Punkt 1 und dem Punkt 2 wird an das Makro in dem dritten Parameter zurückgegeben.
Dies Funktion ist 2D.
Distance_DD(p1,p2,dist)
=> p1 Typ: Punktvariable
=> p2 Typ: Punktvariable
<= win Typ: Realvariable
3D Variante von DISTANCE. Der Abstand der beiden Punkten ist der räumliche Abstand
inters(p1,p2,p3,p4,p5)
=> p1 Typ: Punktvariable Anfangspunkt Strecke s1
=> p2 Typ: Punktvariable Endpunkt Strecke s1
=> p3 Typ: Punktvariable Anfangspunkt Strecke s2
=> p4 Typ: Punktvariable Endpunkt Strecke s2
<= p5 Typ: Schnittpunkt der Strecken
Mit der Funktion „inters“ kann der Schnittpunkt zweier Strecken berechnet werden. Die ersten 4 Parameter sind jeweils die Anfangs- und Endpunkte der Strecke. Auf p5 wird der Schnittpunkt der Strecken zurückgegeben.
polar (p1,win,len,p2)
=> p1 Typ: Punktvariable
=> win Typ: Realvariable oder Zahl
=> len Typ: Realvariable oder Zahl
<= p2 Typ: Punktvariable
Diese Funktion hat 4 Parameter. Es wird der Punkt p2 berechnet, welcher von Punkt p1 im Winkel win mit der Entfernung len entfernt ist. Der Winkel win ist im Bogenmaß.
siehe auch :angle
power (basis, pot,erg)R>
=> basis Typ: Realvariable oder Zahl
=> pot Typ: Realvariable oder Zahl
<= erg Typ: Realvariable
Die Funktion „power“ potenziert den Parameter basis mit dem Wert des Parameters pot und setzt das Ergebnis in erg. Der Parameter pot kann beliebige Werte annehmen, womit auch Radizierungen möglich sind. Der Wert von basis muß nicht negativ sein.
rotate_point(p1,p2,winrot)
=> p1 Typ: Punktvariable (Punkt der um P2 gedreht wird)
=> p2 Typ: Punktvariable (Drehpunkt für P1)
=> winrot Typ: Realvariable (Winkel der Drehung um P2 in der XY-Ebene)
Diese Funktion dreht einen Punkt (P1) um den Drehpunkt (P2) mit dem Winkel (winrot) in der XY-Ebene.
sin (win,sinwin
=> win Typ: Realvariable oder Zahl
<= sinwin Typ: Realvariable oder Zahl
Die Funktion „sin“ berechnet den Sinus von win und übergibt das Ergebnis an sinwin
siehe auch :cos, tan
tan (win,tanwin)
=> win Typ: Realvariable oder Zahl
<= tanwin Typ: Realvariable oder Zahl
Die Funktion „tan“ berechnet den Tangens von win und übergibt das Ergebnis an tanwin
siehe auch :cos, sin
Calc Area (a,b ,r,p,i)
=> a Startindex Points
=> b Endindex Points
<= r Area
<= p Centroid point
<= i Direction 1=clockerwise 0=Anti-clockwise
Berechnung einer Fläche , deren Schwerpunkt und Umfahrungssinn.
Beispiel:
gst_height( wcoiuf / 10); r5 = wcoiuf * wcoiuf; # Sample 1 - Rectangle 4 Points (p50 - p54) clockwise --------------- setcolor(3); gst_color(3); p1.y = 1.0*wcoiuf; for i1 = 50 to 53 do begin set_p_var(i1,p1); end; r1 = wcoiuf; p51.y = p51.y + r1; p52.x = p52.x + r1; p52.y = p53.y + r1; p53.x = p53.x + r1; for i1 = 50 to 53 do begin get_p_var(p1,i1); text(p1,i1); end; for i1 = 50 to 52 do begin get_p_var(p1,i1); get_p_var(p2,i1+1); line(p1,p2); end; line(p53,p50); CALC_AREA(50,53,r1,p5,i1); r1 = r1 / r5; # m2 circle(p5, wcoiuf/10); string_copy(s1,"Area:"); string_cat(s1,r1,".4"); string_cat(s1," Direction: "); if(i1 = 1) then string_cat(s1," clockwise "); else string_cat(s1," anti-clockwise "); text(p5,s1); #Sample 2 - Triangle 3 Points anti-clockwise , set single ------------ p1.x = 0.0; p1.y = 0.0; p1.z = 0.0; p2 = p1; p2.x = 1 * wcoiuf; p3 = p1; p3.x = 0.5* wcoiuf; p3.y = 0.5* wcoiuf; setcolor(2); gst_color(2); line(p1,p2);line(p2,p3);line(p3,p1); text(p1,"1"); text(p2,"2"); text(p3,"3"); CALC_AREA(1,3,r1,p5,i1); r1 = r1 / r5; # m2 circle(p5, wcoiuf/10); string_copy(s1,"Area:"); string_cat(s1,r1,".4"); string_cat(s1," Direction: "); if(i1 = 1) then string_cat(s1," clockwise "); else string_cat(s1," anti-clockwise "); text(p5,s1); END.
Ergibt
Funktionen für die Datenverwaltung
save_fsm()
Diese Funktion hat keinen Parameter. Die Daten der aktuellen FSM (Finite Status Maschine) für die Programm Voreinstellung wird gesichert. Zusammen mit der Funktion restore_fsm ist es möglich, den Stand der FSM nach Beendigung eines Makros in den Zustand vor dem Makroaufruf wiederherzustellen. (Diese Funktionen werden nur von den Bewehrungsprogrammen unterstützt. Bei dem Stahlbauprogramm ist eine Sicherung des FSM und eine Wiederherstellung nach dem Makroaufruf automatisch enthalten)
siehe auch: restore_fsm
restore_fsm()
Diese Funktion hat keinen Parameter. Die Daten der aktuellen FSM (Finite Status Maschine) werden in den Zustand zurücksetzen der FSM in den Ausgangszustand>zurückgesetzt, welche bei dem Aufruf der Funktion save_fsm gültig war.
Syntax und Prozeduren
IF Anweisung
Um Vergleiche und Unterscheidungen zu programmieren gibt es die IF-Anweisung.
Syntax.
if( (arg1 VERGLEICH arg2) then
Befehl1
Befehl2
Der Vergleich in der Klammer kann Wahr oder Falsch sein. Ist er Wahr, wird der Befehl1 nach dem Wort then ausgeführt und dann bei Befehl2 weitergemacht. Ist der Vergleich Falsch wird sofort bei Befehl2 weitergemacht.
An Vergleichen ist erlaubt.
= Equal (Vergleich) Vergleich auf Gleicheit.
Wahr wenn arg1 gleich arg 2 ist.
<> Not Equal Ungleich
> Greater Than Größer als
>= Greater or Equal Größer oder gleich als
< Less Than Kleiner als
<= Less or Equal Kleiner oder gleich als
Es sind auch mehrere Vergleiche in Kombination möglich. Als Kombination können Bedingungen benutzt werden.
Beispiel
if( ( i1 > 5) AND (i2 < i3) ) then
Die if – Anweisung ist nur Wahr, wenn die Zahl in i1 größer als 5 ist, UND die Zahl in i2 kleiner als die Zahl in i3 ist.
An Bedingungen ist erlaubt.
‚|‘ und „OR“ als ODER-Bedingung.
‚&‘ und „AND“ als UND-Bedingung.
‚^‘ und „NOT“ als NICHT-Bedingung.
Anstatt nur einen Befehl nach dem Vergleich auszuführen, kann man Befehle in Gruppen zusammenfügen. Eine Gruppe von Befehlen beginnt mit begin und endet mit end.
Beispiel
if( i1 > i2) then
begin
Befehl1
Befehl2 …
..
Befehln
end
Befehln+1
Ist i1 größer als i2 werden die Befehle 1 bis n ausgeführt, ansonsten wird sofort bei Befehl n+1 weitergemacht.
Programmschleifen
Um Wiederholungen einfach zu tätigen, ist eine Programmschleife möglich.
Schleifen werden benutzt, um Befehle oder Gruppen von Befehlen mehrfach auszuführen. (zu wiederholen)
FOR Schleife
Beispiel
# Test fuer Schleifen;
for i = 1 to 5 do p1 = Q;
for i = 1 to 7 do
begin
p1.x = p1.x + 10;
p2 = p1; line (p1, p2);
end; Neben der FOR-Schleife stehen noch 2 weitere Programmschleifen
zur Verfügung
WHILE Schleife
Die WHILE Schleife, auch als anfangsgesteuerte Schleife bezeichnet,
verlangt folgende Syntax.
WHILE ( logische Bedingung ) DO Anweisungsfolge
Solange die logische Bedingung erfüllt ist, wird die Anweisungsfolge ausgeführt. Unter „logischer Bedingung“ soll ein Vergleich bzw. eine Verknüpfung von Vergleichen verstanden werden. Eine „Anweisungsfolge“ besteht entweder aus einer Anweisung oder aus einer Folge von Anweisungen, die durch die Schlüsselwörter „BEGIN“ und END“ geklammert ist.
# Test fuer While-Schleifen;
i1=0;
while ( i1 0) do
begin
writeln („Bitte Hoehe eingeben!“);
read (i1);
end<M=>
REPEAT Schleife
Eine endgesteuerte Schleife steht Ihnen mit der REPEAT-Anweisung zur Verfügung. Syntax: REPEAT
anweisung_1
.
.
; anweisungen
UNTIL (logische Bedingung)<MO>
Alle Anweisungen innerhalb der Schlüsselwörter „REPEAT“ und „UNTIL“ werden solange ausgeführt, bis die logische Bedingung erfüllt ist.
# Test fuer REPEAT-Schleifen;
repeat
writeln („Bitte Hoehe eingeben!“);
read (i1);
until ( i1>0);
Trennung von Befehlen
Jeder Befehl bzw. jede Zuweisung wird durch ein Strichpunkt (;) getrennt. In einer Zeile sind mehrere Befehle oder Zuweisungen erlaubt.
Beispiel:
write(„Stückzahl eingeben“); read(i1) ;
if( i1 = 3) ….
Groß Klein Schreibung
Es wird nicht zwischen Groß- und Kleinschreibung unterschieden.
Kommentare
Das Zeichen # steht für eine Kommentarzeile. Es sind auch Inlinekommentare erlaubt.
Beispiel :
if( i1 =>5) then begin # Bei mehr als 5 …
END Anweisung
Die Programmdatei muß als letzte Anweisung END. enthalten. Nach dieser Anweisung werden keine weiteren Programmzeilen mehr ausgeführt.
Mehrseitiger Listenausdruck über artifex Draw
In artifex Draw oder durch Doppelklick auf die Dateien ST2 oder MB2, wodurch Draw gestartet wird, kann ein mehrseitiger Ausdruck von Stahl- und Mattenlisten initiiert werden.
Hierfür gibt es die Funktion plotpage und die Konstante WCOPLOTPAGE.
Ist die Konstante WCOPLOTPAGE 0 (= Draw ist nicht geladen), so verfügt das CAD Basisprogramm nicht über Mehrseitendruck.
Es wird also nur ein Einfügepunkt angefragt wenn es keinen Mehrseitendruck gibt.
Beschreibung:
if (WCOPLOTPAGE = 0 ) then
begin
write(„Einfügepunkt Schneideskizze:“);
read(p1);
end
plotpage(nn,p1); (nn = Seitennummer – muss hochgezählt werden; p1 = Einfügepunkt der Seite).
Kann mehrmals vorkommen. Immer wenn eine Seite beginnt.
P1 oder pxx ist der Einfügepunkt. Wird gebraucht um die Druckseiten gleich auszurichten.
Diese liegen dann sozusagen in einem Buffer hintereinander, und werden beim Druck auf die erste
Seite bezüglich Größe ausgerichtet.
plotpage(0,p1); (0,p1 = konstantes Format – nicht verändern)
MUSS am Ende kommen, dann geht es gleich zum Drucken.
Die Druckseiten sind auf dem normalen Bildschirm nicht sichtbar.
Nach dem Beenden des Druckdialoges in Draw wird der Druck Buffer wieder gelöscht , es geht normal weiter. Die Druckfunktion ist beendet.
Beispiel:
Als Beispiel kann das Stahllistenmakro SofiLike_MSD.wps herangezogen werden.
Um die folgenden speziellen Variablen und Funktionen zu verstehen, ist es notwendig Kenntnisse des Bewehrungsprogrammes zu haben. Man sollte den Unterschied zwischen Modelldaten, das sind die Daten für die Stahlliste, und den Geometriedaten kennen. Die hier benutzten Variablen sind die Teile der FSM-Stabbewehrung, sowohl der Modell- als auch der Geometriedaten. Das heißt, der Inhalt der Variablen beschreibt die Art der Eisen, deren Anzal, deren Parameter sowie die Art der graphischen Darstellung auf dem Plan. Der Zweck der einzelnen Variablen sowie deren möglichen Bedeutung ist hier noch einmal beschrieben. So kann diese Übersicht für den erfahrenen Anwender des Bewehrungsprogrammes als Kurzübersicht über die möglichen Einstellungen dienen. Mögliche Einstellungen sind diejenigen, welche auf dem Papiermenü des Bewehrungsprogrammes zu sehen sind.
Spezielle Aufrufe aus externen Programmen
Um ein Makro von einem externen Programm oder ein Makro für eine Stahlliste aus einem Makro aufzurufen zu ermöglichen gib es 2 Aufrufe.
B65: Makro für Positionen etc.
Liest zuerst einen Pfadnamen aus der Datei:
/ARTIFEX/DEFAULTS/WCOSTARTWPSTXT aus.
BSP:
c:\\temp
———————————————————————————————–
In dem Pfad oben wird die Datei „wcoStartWps.TXT“ gesucht. Darin steht dann der Name des ueber den
Befehl B65 bzw. M65 auszuführenden Makros. Früher wurde direkt nach wcoStartWps.TXT gesucht,
dies geht aber nicht mehr unter Win7 da dort meist der aktuelle Arbeitspfad /Programme/Acadxx
schreibgeschützt ist.
Dann wird in diesem Pfad eine Datei mit dem Namen WCOSTARTWPS.TXT gesucht und falls vorhanden den Namen des auszuführenden Programmes gelesen.
BSP:
U-Schacht
Ohne Endung .wps
BSP:
Aufruf aus einem VBA Programm unter AutoCAD artifex Makro Starten
ThisDrawing.SendCommand „b65 “
B66: Makro für Listen
Liest ein Makronamen für eine Stahlliste aus der Datei
/ARTIFEX/DEFAULTS/WCOSBWLST.XT aus.
BSP:
Porr
Namen ohne .wps
Variablen der Modelldaten
INTEGERS (Ganzzahlvariablen)
ANZAHL
Anzahl Stäbe einer Position Die mit dieser Variable gesetzte Anzahl wird bei jedem Aufruf von stabmod() in die Datenbank eingetragen.
ANZECK
Anzahl der Parameter einer Biegeform. Diese Variable setzt die Anzahl der Parameter einer Bewehrungsform. Relevant ist diese Variable hauptsächlich bei der Form „X2“.
BTANZAHL
Anzahl der Bauteile in der diese Position verlegt ist (sh.. auch POSANZAHL)
BWLAGE
Bewehrungslage (Zahl ziwschen -32000 und +32000)
DURCHM
Stabdurchmesser
HAKENHINT
Hakenart Stabende [[o]]>Hakenart am Stabende. Es gelten die gleichen Werte wie bei der Variablen HAKENVORN
HAKENVORN
Hakenart Stabanfang [[o]]>Hakenart Stabanfang . Es sind die Zahlen von -3 bis +3 möglich.
0= kein Haken (gerades Stabende)
1=Haken
2=Winkelhaken
3=Schlaufe
die Länge der Haken ist vom Durchmesser der Stäbe und von einem Hakenfaktor abhängig. Der Hakenfaktor steht in der Vorwerte- Datei der Stabstahlbewehrung in
/ARTIFEX/BAUVOR02/STAB_BEW.V00
in der Zeile 6.
Für jede der 3 Hakenarten, Haken, Winkel oder Schlaufe kann ein eigener Faktor für den Zuschlag angegeben werden.
POSANZAHL
Anzahl pro Positionsnummer (sh.. auch BTANZAHL)
SBWANZPOS
Anzahl aller Positionsnummern bei Stahllistenausgabe
SBWANZDU
Anzahl der verschiedenen Durchmesser bei Stahllistenausgabe
DOUBLES (Gleitkommavariablen)
ABSTAND
Stababstand
PARA_A bis PARA_R
Stabparameter A bis R
STABLEN
Gesamtlänge des Stabes
TEXTABST
Abstand des Position – Textes
Variablen der Geometriedaten
INTEGERS (Ganzzahlvariablen)
ANSICHT
Ansicht aus 3=Z 2=Y 1=X + oder –
ANZSTABZEI
Anzahl Stäbe zeichnen wenn STABZEI 3 oder 4.
BOGEN
Wird die Variable BOGEN auf „1“ gesetzt, erfolgt eine Verlegung im Bogen.
POSNRLI
Erhält die Variable den Wert 1, wird der Positionstext links von Pos.-kreis gezeichnet, bei Wert 2 bestimmt die Variable LAGEPOSTEXT den Einfügepunkt des Textes.
POSNRZEI
Art der Positionsnummer 0 … 11
STABCO
Farbe des Stabes (Farbnummer)
STABECKE
Ecke zum platzieren bei STABANF
STABKREIS
1=Kreis zeichnen bei ANSICHT = 1
STABKRCO
Farbe des Positionsnummernkreises (Farbnummer)
STABKRWT
Linienbreite des Positionsnummernkreises 0 … > (nach CAD-Basis)
STABLT
Linientyp des Stabes 0 … 7
STABNRCO
Farbe der Positionsnummer (Farbnummer)
STABNRWT
Linienbreite des Positionsnummer 0 … > (nach CAD-Basis)
STABSPIEG
1=Stab spiegeln
STABTEWT
Linienbreite des Positionstextes 0 … > (nach CAD-Basis)
STABWT
Linienbreite des Stabes 0 … > (nach CAD-Basis)
STABZEI
Darstellung der. Stäbe,(1=Alle ..) 0…5
VERTEILZEI
Art der Verteillinie 0 … 4
VLPOSZEI
Art der Linie von Positionsnummer zu Verteillinie
DOUBLES (Gleitkommavariablen)
BEGWI
Bestimmt den Anfangswinkel, falls im Bogen verlegt werden soll.
ENDWI
Bestimmt den Endwinkel, falls im Bogen verlegt werden soll.
POSDREWI
Drehwinkel der Positionsnummer
RADIUS
Bestimmt den Radius, falls im Bogen verlegt werden soll.
STABEIWI
Stabeigendrehwinkel der 2D Verlegung.
STABEIWI_X
Drehung um lokale X Achse der 3D Verlegung (sh. auch STABEIWI_Y; VERLEGWINKEL_Z)
Programmbeispiel unter: …\artifex\DATA\SBW\WPS\Demo_Von_Bis.wps.
STABEIWI_Y
Drehung um lokale Y Achse der 3D Verlegung (sh. auch STABEIWI_X; VERLEGWINKEL_Z)
Programmbeispiel unter: …\artifex\DATA\SBW\WPS\Demo_Von_Bis.wps.
STABZEIFAK
Zeichenfaktor der Stäbe und Stababstände
VERANKLAENGE
Ruft den Verankerungslängen-Generator auf
VERLEGEWINKEL
Verlegewinkel der Position
VERLEGEWINKEL_Z
Drehung um lokale Z Achse der 3D Verlegung (sh. auch STABEIWI_X; STABEIWI_Y).
Programmbeispiel unter: …\artifex\DATA\SBW\WPS\Demo_Von_Bis.wps.
VTLABST
Abstand der Verteillinie von STABANF
WECO_PUNKTE Punktvariablen (3 Doubles .x.y.z)
LAGEPOSNR
Koordinate der Positionsnummer
LAGEPOSTEXT
Koordinate des Positionstextes, falls die Variable POSNRLI den Wert 2 besitzt.
STABANF
Koordinaten v. Stäben, Positionsnr., etc. [[o]]>X,Y,Z-Koordinate erster Stab (STABNF.x,.y,.z)
VTLENDPKT
Koordinate Endpunkt bei VLPOSZEI= 2
VTLENDPKTX
Koordinate Endpunkt bei VLPOSZEI= 3
Alle speziellen Variablen werden mit den aktuellen Vorwerten vorbelegt. Lediglich Änderungen zu diesen Vorwerten brauchen gesetzt werden.
Beim Erscheinen der Funktionen STABMOD() und STABGEO() werden die Variablen an die FSM (Finite Status Maschine) übergeben. Die Auswertung erfolgt analog zur Dateneingabe über eine Maske. So ist es denkbar, daß man ein Makro nur dazu benutzt, um Daten voreinzustellen, ohne die Vorwerte neu einzulesen, oder über eine Maske zu ändern.
Die Variablen ändern die aktuelle Einstellung vor dem Makroaufruf. Mit der Funktionen save_fsm() und restore_fsm() können Sie die Inhalte der FSM in einem Puffer sichern und wieder zurückholen.
Funktionen der Stabstahlbewehrung
BWFORM(„XX“)
Bewehrungsform XX wird gesetzt.
BWFORM(„A2“)
SBWECKE (ecknr,eckpos, verm)
=> ecknr Typ: Int-Wert
=> eckpos Typ: Punkt-Variable
=> verm Typ: Int-Wert
Diese Funktion ist auschließlich für benutzerdefinierte Bewehrungsformen anwendbar. Der Parameter „ecknr“ legt die Nummer des zu setzenden Eckpunktes fest. Über den Parameter „eckpos“ wird der Eckpunkt selbst festgelegt. Besitzt der Parameter „verm“ den Wert -1, wird nicht vermaßt. Bei Wert 1 erfolgt die Vermassung unterhalb des Stabes, bei 0 oberhalb. Anwendungen dieses Befehls sind in den Makros „bwf_???.wps ersichtlich.
SBWPLBIEGE(ep, posidx,breite, hoehe)
=> ep Typ: Punktvariable
=> posidx Typ: Int-Wert (Index der Positionsnummer in Liste
=> breite Typ: Real-Wert
=> hoehe Typ: Real-Wert
Diese Funktion zeichnet die Biegeliste für die Position mit dem Index posidx an der Stelle ep mit der übergebenen Höhe und Breite.
STABMOD()
Ein neuer Satz der Modelldaten zufügen [[o]]>Modelldaten wird an der Stabstahldatenbank angehängt. Die Variablen der Modelldaten werden diesem Satz zugeordnet.
STABMOD_VB(1,20,80, 2,30,60);
Parameter:
1,20,80
X-Liste Parameter 0=Nein, ansonsten 1 für A, 2 für B ….
Danach die Von und Bis Parameter: 2,30,60 (Parameter B, Länge Von, Länge Bis). Dito für Y-Liste
Beispiel:
Ein Programmbeispiel für die Verwendung der neuen Variablen finden Sie im Verzeichnis:
…\artifex\DATA\SBW\WPS unter dem Namen: Demo_Von_Bis.wps.wps.
STABGEO()
Ein neuer Satz der Geometriedaten zufügen [[o]]>Geometriedaten wird an der Stabstahldatenbank angehängt. Die Variablen der Geometriedaten werden diesem Satz zugefügt. Es wird auf den Modelldatensatz der letzten
Eintragung mit STABMOD() verwiesen. Das heißt, um eine Position zu erzeugen, setzt man zuerst die Variablen
der Modelldaten, erzeugt mit STABMOD() ein Modelldatensatz und setzt dann die Variablen für die jeweilige Darstellung und erzeugt Darstellungen mit STABGEO(). Es sollte mindestens eine Darstellung je Modelldatensatz folgen. Es können aber auch beliebig viele Darstellungen auf ein Modell folgen.
Erscheint wiederum die Funktion STABMOD(), so verweisen die folgenden Darstellungen natürlich auf das zuletzt eingetragene, neue Datenmodell.
SBW_STABEINZ(p1,0)
Platziert einen einzelnen Stab. Mit ,1) am Ende wir die Position eingetragen.
# Beispeil fuer Staebe einzeln plazieren
#
name(r51,“fak“);
fak = WCOIUF / 100.0;
save_fsm();
BWFORM(„A1“);
DURCHM=12;
ANZAHL=12;
ABSTAND=20.000000
PARA_A=50.000000
# Zuerst neues Modell
stabmod();
STABZEI=1; ANSICHT=2; STABSPIEG=0; STABECKE=1; BOGEN=0;
STABZEIFAK=1.000000; POSDREWI=0.000000;
STABEIWI=270.000000;
VERLEGEWINKEL=0.000000;
STABANF.X= 100.0*fak;
STABANF.Y= 100.0*fak;
LAGEPOSNR.X=100.0*fak;
LAGEPOSNR.Y=150.0*fak;
# Dann eine Darstellung
VERTEILZEI=4; # Verteilinie Typ 4 -> Linie zu den einzelnen Eisen
stabgeo()
# Und jetzt diese Staebe einzelnplazieren
# Die Anzahl der Staebe richtet sich nach der Einzelplazierung
# und nicht mehr nach der oben gesetzten Anzahl
# Also . soviel Staebe wie SBW_STABEINZ
p1.x = 80.0*fak;
p1.y = 50.0*fak;
SBW_STABEINZ(p1,0);
p1.x = 120.0*fak;
p1.y = 80.0*fak;
SBW_STABEINZ(p1,0);
p1.x = 140.0*fak;
p1.y = 40.0*fak;
SBW_STABEINZ(p1,1); #Letzer Stab, zweiter Parameter 1 = Position neu zechnen
restore_fsm() # gesicherte Voreinstellung holen
END.
SBWECKE(i1,p1,i2)
Wenn i1 > 1000 dann ist p1 der Eckpunkt eines 3D Bauteiles zum setzen der Punktvariable p1 in das Makro
#Aufruf aus 3D Bauteilbewehrung->Punkte sind vorgegeben.
if(DREIDBAUTEIL = 1) then
begin
sbwecke(1001,xecka,0);
sbwecke(1002,xeckb,0);
sbwecke(1003,xeckc,0);
sbwecke(1004,xeckd,0);
sbwecke(1005,xecke,0);
xhoch = xecke.z – xeckd.z;
end;
Spezielle Variablen zur Listengenerierung
SBWLISTE(posidx,art, fmt,text)
=>posidx Typ: Int-Wert (Index der Positionsnummer in Liste
=> art Typ: Zeichenkette oder Stringvariable (Art der Ausgabe)
=> fmt Typ: Z.-kette oder Stringvar. (Format-Anweisung)
<= text Typ: Stringvar. (generierter String)
Diese Funktion ermöglicht die Generierung von Ausgabelisten. Der 1.Parameter bezeichnet den Index innerhalb einer Liste von Positionen. Der Parameter „art“ enthält ein Schlüsselwort für die Variable, die zur Verfügung gestellt werden soll. Einfluß auf die Formatierung ( Art der Darstellung von Parameter 2) kann man mit dem Parameter „fmt“ nehmen. Vergleichen Sie bitte dazu die Funktion „string_cat“. Der erzeugte String wird im letzten Parameter zurückgegeben.
Für den 2. Parameter sind folgende Schlüsselwörter zulässig:
AN_A = Schraubverbinder Typ Stabanfang
AN_AL = Länge in mm, welche bei der Anfangs-Stablänge abgezogen wird,
falls Schraubverbinder eingestellt sind
AN_ARNR = Schraubverbinder Artikel Nummer
AN_DU = Schraubverbinder Durchmesser
AN_E = Schraubverbinder Typ Stabende
AN_EL = Länge in mm, welche bei der End-Stablänge abgezogen wird,
falls Schraubverbinder eingestellt sind
AN_GEW = Schraubverbinder Gewicht
AN_KTEXT = Schraubverbinder Kurztext
AN_STCK = Schraubverbinder Anzahl (Stück)
AN_TLNR = Schraubverbinder Teilenummer
ANZ = Gesamtanzahl dieser Position
APARA = Anzahl der Parameter
DG = Gesamtmasse aller Eisen eines Durchmessers
DL = Gesamtlänge aller Stäbe eines Durchmessers
DS = aktueller Durchmesser in der Durchmesser-Liste
DU = Stabdurchmesser
FORM = Bewehrungsform
KG = Masse pro Meter in kg/m(bezogen auf akt. Position)
KM = Masse pro Meter (bezogen auf den aktuellen Durchmesser)
LE = gibt die Zeichenkette lfdm aus
LG = Gesamtlänge dieser Position
PARA_A = Parameter A …
PARA_E = Parameter E
PG = Gesamtmasse der Position in kg
PO = Positionsnummer
SD = Gesamtmasse berechnet aus Einzelmassen aller Durchmesser
SHH = Hakenform hinten
SHV = Hakenform vorn
SP = Gesamtmasse aller Postionen in kg
SBWLISTE (i88,“IS_VON_BIS“,““,s1);
Bei von – bis Eisen LX, damit LX bzw. LY in Liste dargestellt wird.
sbwliste(i88,“IS_VON_BIS“,““,s22);
string_to_real(r5,s22);
if( r5 > 0) then
begin
sbwliste(i88,“LX“,“15.15″,s1);
end
ACHTUNG:
dl kann durch temporäres Setzen der Positionsnummern Art 19 an den Biegeformen in der Stahlliste dargestellt werden (siehe „setgeo“).
SBWLISTE (i88,“DLX_EINFACH“,“7.3″,s1);
Gibt dl von von-bis Formen in Excel Listen aus.
sbwliste(i88,“DLX_EINFACH“,“7.3″,s22);
string_to_real(r5,s22);
if( r5 > 0) then
begin
string_copy(s2,“I“); string_cat(s2,row); wco_Excel(„SET_VALUE“,s2,s22)
end;
SBWLISTE(i1,“VERANKLAENGE“,“0″,s1);
Diese Sonderform des Befehls „sbwliste“ ruft den Verankerungslängen-Generator auf.
SBWLISTE (0,“SETGEO“,“0″,“0″);
Diese Sonderform des Befehls „sbwliste“ ist eine Variante des Befehls „Stabgeo“.
Er ist für Stahllistenmakros konzipiert, in denen Biegeformen dargestellt werden.
Unterschied:
„Stabgeo“ setzt die eingestellten Werte und zeichnet dann eine Stabdarstellung.
„Setgoe“ setzt nur die Werte, ohne daß eine Darstellung erzeugt wird.
Beispiel:
…
save_fsm(); #Voreinstellung sichern
…
ANSICHT=3; #Ansicht aus 3=Z 2=Y 1=X + oder –
POSNRZEI=19; #Art der Positionsnummer 0 … 11
STABECKE=1; #Ecke zum platzieren bei STABANF
STABCO=4; #Farbe des Stabes (Farbnummer)
…
POSDREWI=0; #Drehwinkel der Positionsnummer
sbwliste(0,“SETGEO“,“0″,“0″);
…
restore_fsm() # Voreinstellung widerherstellen
sbwplbiege(p3,i88,i60,i61)
Plot einer Position für eine Stahlliste.
WPS Mattenbewehrung
Um die folgenden speziellen Variablen und Funktionen zu verstehen, ist es wie bei der Stabstahlbewehrung notwendig, Kenntnisse des Bewehrungsprogrammes zu haben. Die hier benutzten Variablen sind Teile der FSM-Mattenbewehrung, sowohl der Modell- als auch der Geometriedaten. Das heißt, der Inhalt der Variablen beschreibt den Mattentyp, die Mattenlänge, Mattenbreite, Korbabmessungen etc. Mögliche Einstellungen sind auf dem Papiermenü des Bewehrungsprogrammes zu sehen.
Spezielle Aufrufe aus externen Programmen
Um ein Makro von einem externen Programm oder ein Makro für eine Stahlliste aus einem Makro aufzurufen zu ermöglichen gib es 2 Aufrufe.
M65: Makro für Positionen etc.
Liest zuerst einen Pfadnamen aus der Datei:
/ARTIFEX/DEFAULTS/WCOSTARTWPSTXT aus.
BSP:
c:\\temp
———————————————————————————————–
In dem Pfad oben wird die Datei „wcoStartWps.TXT“ gesucht. Darin steht dann der Name des ueber den
Befehl B65 bzw. M65 auszuführenden Makros. Früher wurde direkt nach wcoStartWps.TXT gesucht,
dies geht aber nicht mehr unter Win7 da dort meist der aktuelle Arbeitspfad /Programme/Acadxx
schreibgeschützt ist.
Dann wird in diesem Pfad eine Datei mit dem Namen WCOSTARTWPS.TXT gesucht und falls vorhanden den Namen des auszuführenden Programmes gelesen.
BSP:
U-Schacht
Ohne Endung .wps
M66: Makro für Listen
Liest ein Makronamen für eine Stahlliste aus der Datei
/ARTIFEX/DEFAULTS/WCOMBWLST.XT aus.
BSP:
Porr
Namen ohne .wps
Variablen der Modelldaten
INTEGERS (Ganzzahlvariablen)
MANZECK
Mattenecken, Anzahl [[#]]>Anzahl der Ecken wenn Matten geschnitten ist, oder wenn ein Mattenkorb vorliegt.
MBWLAGE
Bewehrungslage [[#]]>Bewehrunglage (Zahl ziwschen -32000 und +32000)
MKORB
Mattenkorb, Typ [[#]]>Typ des Mattenkorbes: 0=kein Mattenkorb,
1=Korblänge=2.15m
2=Korblänge5m
MPOSANZAHL
Positionsanzahl [[#]]>Positionsanzahl (Anzahl mit der diese Matte abgerechnet wird)
DOUBLES (Gleitkommavariablen)
MB
Mattenbreite in cm.
ML
Mattenlänge in cm.
MKORBDXA,MKORBDYA
Wenn eine Matte geschnitten ist, oder wenn ein Mattenkorb vorliegt, sind hier die Mattenecken, Delta X / Y [[#]]>Eckpunkte beschrieben. Es ist jeweils der Delta X und Delta Y Wert vom vorherigen Punkt. Der erste Punkt ist der Mattenanfangspunkt (MATTANF.x.y.z). Es gibt die Variablen von MKORBDXA bis MKORBDXG in der Delta X Skala, und von MKORBDYA bis MKORBDYG in der Delta Y Skala.
STAFFEL_LI
Staffelungstiefe links [[#]]>Staffelungstiefe an der linken Mattenseite, bei einer Feldsparmatte.
STAFFEL_RE
Staffelungstiefe rechts [[#]]>Staffelungstiefe an der rechten Mattenseite, bei einer Feldsparmatte.
Variablen der Geometriedaten
INTEGERS (Ganzzahlvariablen)
MANSI
Ansicht aus der die Matte betrachtet wird. (3=+Z -3=-Z, 2=+Y -2=-Y, 1=+X -1=-X)
MATDAR
Nummer der Darstellung der Matte. Unterstützt wird Art der Mattendarstellung 3= Umrandung als Polygonzug und Art der Mattendarstellung=3 mit Querstrich.
MECK
fixe / feste Mattenecke [[#]]>Fixe Mattenecke, fixe / feste [[#]]>Mattenecke beim Verlegen. An der Mattenecke mit der Nummer MECK wird die Matte beim Verlegen angepackt. (MATTANF.x.y.z)
MPOSDAR
Art der Positionsnummer Darstellung. Unterstützt wird Typ 1-8.
MPOSORT
Ist dieser Wert Null, so wird der Ort der Positionsnummer vom Programm berechnet. Ist dieser Wert 1, so ist der Ort der Positionsnummer in der Punktvariablen MLAGEPOSNR.x,y,z anzugeben.
MZEILAGE
Darstellung der Zeichnung bei MZEILAGE=2 als Matte in der zweiten Lage. Der Querstrich der Matte wir in der gegenübergesetzten Lage gezeichnet.
DOUBLES (Gleitkommavariablen)
MATTZEIFAK
Zeichenfaktor für die Matte
MEIWI
Eigendrehwinkel der Matte im BOGENMAß.
MPOSDREWI
Drehwinkel der Positionsnummer im BOGENMAß. Hierzu muß die Variable MPOSDAR auf 1 gesetzt sein.
MVWI
Verlegewinkel der Matte im BOGENMAß.
WECO_PUNKTE Punktvariablen (3 Doubles .x.y.z)
MATTANF
Koordinaten v. Matten und Positionsnr. [[#]]>Mattenanfangspunkt x,y,z. Die Ecke der Matte wird in der Variablen MECK gesetzt.
MLAGEPOSNR
Lage x,y,z der Positionsnummer. Hierzu muß die Variable MPOSDAR auf 1 gesetzt sein.
Funktionen der Mattenbewehrung
MATTYP(„NAME“)
Die Mattenbezeichnung Name (Mattenbezeichnung) NAME wird als aktuelle Matte gesetzt.
MATTYP(„Q377“)
MATTGEO()
Ein neuer Satz der Geometriedaten zufügen [[#]]> Geometriedaten wird der Mattendatenbank angehängt. Es wird auf den Modelldatensatz der letzten Eintragung mit MATTMOD() verwiesen. Das heißt, um eine Position zu erzeugen, setzt man zuerst die Variablen der Modelldaten. Danach erzeugt man mit MATTMOD() einen Modelldatensatz, setzt dann die Variablen für die jeweilige Darstellung und erzeugt schließlich Darstellungen mit MATTGEO(). Es sollte mindestens eine Darstellung je Modelldatensatz folgen. Es können aber auch beliebig viele Darstellungen auf ein Modell folgen.
Erscheint wiederum die Funktion MATTMOD(), so verweisen die folgenden Darstellungen natürlich auf das neue Datenmodell.
MATTMOD()
Ein neuer Satz der Modelldaten zufügen [[#]]>Modelldaten wird an die Mattendatenbank angehängt. Die Variablen der Modelldaten werden diesem Satz zugeordnet.
MBWBIEGEVOR(fak,fr,fp,fl,fb,tha,thp,thl,thb)
=> fak Typ: Real-Wert (Faktor zum Zeichnen)
=> fr Typ: Int-Wert (Farbe für Rahmen)
=> fp Typ: Int-Wert (Farbe für Positionsnummer)
=> fl Typ: Int-Wert (Farbe für Text (Länge,Breite))
=> fb Typ: Int-Wert (Farbe für Text (Bezeichnung))
=> tha Typ: Real-Wert (Texthöhe für Auszug (0=kein Auszug))
=> thp Typ: Real-Wert (Texthöhe für Positionsnummer)
=> thl Typ: Real-Wert (Texthöhe für Text (Länge,Breite))
=> thb Typ: Real-Wert (Texthöhe für Text (Bezeichnung))
Diese Funktion setzt Vorwerte für nachfolgende Listenausgaben.
MBWLISTE(posidx,art, fmt,text)
=> posidx Typ: Int-Wert (Index der Positionsnummer in Liste
=> art Typ: Zeichenkette oder Stringvariable (Art der Ausgabe)
=> fmt Typ: Z.-kette oder Stringvar. (Format-Anweisung)
<= text Typ: Stringvar. (generierter String)
Diese Funktion ermöglicht die Generierung von Ausgabelisten. Der 1. Parameter bezeichnet den Index innerhalb einer Liste von Positionen. Der Parameter „art“ enthält ein Schlüsselwort für die Variable, die zur Verfügung gestellt werden soll. Einfluß auf die Formatierung ( Art der Darstellung von Parameter 2) kann man mit dem Parameter „fmt“ nehmen. Vergleichen Sie bitte dazu die Funktion „string_cat“. Der erzeugte String wird im letzten Parameter zurückgegeben.
Für den 2. Parameter sind folgende Schlüsselwörter zulässig:
BREITE = Breite
GANZ = Anzahl der Matten eines Typs
GBRE = Breite der Matte
GEGW = Eigenmasse der Matte
GEW = Masse einer Matte
GGEW = Gesamtgewicht aller Matten ( ungeschnitten)
GGWP = Gesamtmasse der geschnittenen Matten
GLAE = Länge der Matte
GSTUECK = Anzahl aller Matten
GTYP = Mattentyp
LAENGE = Laenge
LE_FEMA 2= FeMA 3=FeMa-dz
LM_AK = Abstand vom Anfang (Listenmatten)
LM_AL = Abstand der Längseisen (Listenmatten)
LM_AQ = Abstand der Quereisen (Listenmatten)
LM_B = Breite ( Listenmatten)
LM_DS1 = Durchmesser Längsstäbe innen ( Listenmatten)
LM_DS2 = Durchmesser Längsstäbe am Rand ( Listenmatten)
LM_DS3 = Durchmesser Querstäbe innen ( Listenmatten)
LM_DS4 = Durchmesser Querstäbe am Rand ( Listenmatten)
LM_KG_MATTE = Masse der Position (Listenmatten)
LM_KG_MATTE = Masse einer Matte (Listenmatten)
LM_L = Länge ( Listenmatten)
LM_LK = Länge der kurzen Stäbe (Listenmatten)
LM_MANF = Anzahl der Randstäbe am Anfang (Querrichtung)
LM_MEND = Anzahl der Randstäbe am Ende (Querrichtung)
LM_NLI = Anzahl der Randstäbe links (Längsrichtung)
LM_NRE = Anzahl der Randstäbe rechts (Längsrichtung)
LM_UE1 = Überstand 1 ( Listenmatten)
LM_UE4 = Überstand 4 ( Listenmatten)
MATTYP = Mattentyp
POS = Positionsnummer
STUECK = Anzahl der Matten einer Position
MBWLISTE für Biegelisten.
Die Biegeliste ist eine spezielle Liste in welcher die Matten Positionen vermasst als Korb etc. dargestellt werden.
Dazu gibt es für WPS spezielle MBWLISTE Schlüsselwörter, welche alle mit „BLIST_“ anfangen.
BLIST_DXDY: Setzt die Länge/Breite eines Kasten in dem die Matte eingepaßt wird.
MKORBDXA und MKORBDYA sind vor dem aufruf mit sen Werten zu belegen.
MKORBDXA = breite;
MKORBDYA = hoehe;
mbwliste(i1,“BLIST_DXDY“,“ „,s1);
BLIST_CALC: Startet die interne Berechnung und Sortierung.
i1=1->Alle | i1=2->Nur geschnittene | i1=3->nur gebogene | i1=4:geschnitte+gebogene
mbwliste(i1,“BLIST_CALC“,“ „,s1);
BLIST_PLOT: Plot einer Position.
MATTANF = p.. ist der Mittelpunkt des Kasten in welcher der Plot eingepaßt wird
mbwliste(i88,“BLIST_PLOT“,“ „,s1);
Daten der Matte holen.
mbwliste(i88,“BLIST_POSNR“,““,s2);
BLIST_POSNR: Positionsnummer
BLIST_ANZ: Anzahl Matten dieser Position.
BLIST_MBEZ: Bezeichnung
BLIST_ML: Länge der Matte
BLIST_MB: Breite der Matte
WPS Beispiel:
# Demo fuer Ausgabe der Biegeliste (Geschnitte , Gebogene Matten uerb Makro.
name(r46,“breite“);
name(r47,“hoehe“); #Breite /Hoehe eines ‚Kastens‘ in dem die Matte gezeichent wird
name(r48,“maszfak“);
maszfak = wcoiuf/100.0;
write(„Einfuegepunkt Biegelisten“);
read(p1);
if(wcoretval < 0) then exit;
breite = 140.0 * maszfak;
hoehe = 100.0 * maszfak;
MKORBDXA = breite;
MKORBDYA = hoehe;
mbwliste(i1,“BLIST_DXDY“,“ „,s1);
# 4 Durchlaeufe als Demo, jeweils für Alle, nur geschnittenen etc…
for i1 = 1 to 4 do
begin
# BLIST_CALC: berechnen der Liste: i1=1->Alle | i1=2->Nur geschnittene | i1=3->nur gebogene | i1=4:geschnitte+gebogene
# MBWANZBLIST wir gesetzt.
mbwliste(i1,“BLIST_CALC“,“ „,s1);
#Links oben
p2 = p1;
if( i1 = 1 ) then
string_copy(s1, „Alle“ );
else if ( i1 = 2 ) then
string_copy( s1, „Nur Geschnitten.“ );
else if ( i1 = 3 ) then
string_copy( s1, „Nur Gebogen“ );
else if ( i1 = 4 ) then
string_copy( s1, „Geschn.+Gebogen“ );
gst_justify(0);
r1 = 20.0 * maszfak;
gst_height(r1);
gst_color(4);
gst_rotation(0.0);
text(p1,s1);
for i88 = 1 to MBWANZBLIST do
begin
# Trennlinie untereinander
p3 = p2;
p3.x = p3.x + breite * 3.0;
setcolor(1);
line(p2,p3);
# Stelle MATTANF ist Mitte Kasten in dem die Matte geplottet wird.
MATTANF = p2;
MATTANF.x = p2.x + breite / 2.0;
r1 = hoehe / 2.0;
MATTANF.y = MATTANF.y – r1
mbwliste(i88,“BLIST_PLOT“,“ „,s1);
p2.y = p2.y – hoehe;
r1 = hoehe / 10.0;
p2.y = p2.y – r1;
p4 = p2;
r1 = breite + breite / 10.0;
p4.x = p4.x + r1;
p4.y = MATTANF.y
string_copy(s1,“Pos. „);
mbwliste(i88,“BLIST_POSNR“,““,s2);
string_cat(s1,s2);
gst_justify(0);
r1 = 17.5 * maszfak;
gst_height(r1);
gst_color(3);
gst_rotation(0.0);
r1 = 6 * maszfak;
p4.y = p4.y + r1;
text(p4,s1);
p4.y = p4.y – (r1*2.0);
gst_justify(6);
mbwliste(i88,“BLIST_ANZ“,“-4″,s1);
string_cat(s1,“ * „);
mbwliste(i88,“BLIST_MBEZ“,“5.5″,s2);
string_cat(s1,s2);
mbwliste(i88,“BLIST_ML“,“7.2″,s2);
string_cat(s1,s2);
string_cat(s1,“ / „);
mbwliste(i88,“BLIST_MB“,“7.2″,s2);
string_cat(s1,s2);
text(p4,s1);
end;
p3 = p2;
p3.x = p3.x + breite * 3.0;
setcolor(1);
line(p2,p3);
r1 = breite * 3.5;
p1.x = p1.x + r1;
end;
END.
MBWPLBIEGE (biegeidx,ep)
=> biegeidxTyp: Int-Wert (Index in der Biegeliste
=> ep Typ: Punktvariable (Einfügepunkt für Element
Jeweils ein Element der Biegeliste (Element mit Index „biegeidx“) wird an der Stelle „ep“ eingefügt.
Spezielle Variablen zur Listengenerierung
MBWANZBIEG
Anzahl der Einträge in der Biegeliste
MBWANZMATT
Anzahl aller verwendeten Mattentypen
MBWANZPOSI
Anzahl aller Positionen
MBWLISTART
Art der Liste ( 1=Lagermatten, 2= Listenmatten, 3=Fertigteile, 4=Abstandhalter)
Variablen des Gebäudeentwurfs
INTEGERS
ANZEINBAU
Anzahl der Einbauten
AUFB
Materialaufbau des Bauelements,
EINBAUTYP
Bestimmt den Einbautyp.
FARBE
Elementfarbe
MAT
Materialnummer des Bauelements
OEFFNUNG
Kenner für Deckenöffnung. (1=Öffnung)
PRIO
Elementpriorität
STAT
Statikkenner [[ [[]] ]]>Statikkenner des Bauelements,
1 : tragendes Außenelement,
2 : tragendes Innenelement,
11 : nicht tragendes Außenelement,
21 : nicht tragendes Innenelement
STIRNFL_H
Elementstirnflächenkenner hinten,
0 : Stirnfläche nicht zeichnen,
1 : Stirnfläche zeichnen,
STIRNFL_V
Elementstirnflächenkenner vorn,
0 : Stirnfläche nicht zeichnen,
1 : Stirnfläche zeichnen,
TYP
Bauelementtyp
1-10 : Wand,
11-20 : Unterzug,
31-30 : Stütze,
DOUBLES
ANFHOEHE
Elementhöhe am Anfangspunkt,
ANFNIV
Elementniveau am Anfangspunkt,
BREITE
Dicke eines Einbauteiles
DICKE
Dicke einer Wand
ENDHOEHE
Elementhöhe am Endpunkt,
ENDNIV
Elementniveau am Endpunkt,
HOEHE
Höhe eines Einbauteiles
LAENGE
Länge eines Einbauteiles
VERSATZ
Element Achsen Versatz in cm,
WECO_PUNKTE
AP
Anfangspunkt Elementachse,
EP
Endpunkt Elementachse;
EPA – EPH
Eckpunkte der Wand
Funktionen des Gebäudeentwurfs
WAND_INIT()
Funktionsaufrufe: Wand, Unterzug, Stütze [[ [[]] ]]>Funktionsaufruf zur Initialisierung mit den aktuellen Vorwerten eines Bauelements vom Typ Wand.
UNTERZUG_INIT()
Funktionsaufruf zur Initialisierung mit den aktuellen Vorwerten eines Bauelements vom Typ Unterzug.
STUETZE_INIT()
Funktionsaufruf zur Initialisierung mit den aktuellen Vorwerten eines Bauelements vom Typ Stütze.
GEB()
Funktionsaufruf zur Generierung eines Bauelementes des vorher eingestellten Typs.
WICHTIG: die Initialisierung MUSS vor dem Setzen der DOUBLE – oder INTEGER Variablen erfolgen, damit die aktuellen Vorwerte der .Vxx nicht die Benutzervariablen der WPS – Datei überschreiben! Die letzte Anweisung nach Setzen der Variablen zur Generierung eines Bauteils MUSS der Funktionsaufruf zur Bauteilerzeugung sein.
Beispiel:
Erzeugung einer Stütze, die außer dem Material und der Farbe die Standardstützenvorwerte erhalten soll. Anfangspunkt und Endpunkt werden in diesem Beispiel am Bildschirm abgefragt, können aber ebenso über Koordinaten, die in der WPS – Datei den Punktvariablen zugewiesen werden, spezifiziert werden.
WCOGEB_ATTRIB(-1);
Funktionsaufruf zum Setzen der aktiven Attribute der Wand oder des Einbauteils. Farbe,LT,WT,LV …
-2=Setze Attribute aktive Wand.
-1=Setze Attribute aktives Einbauelement.
RAUMVAR
Ausgabemöglichkeit der Schablonen über das Raumbuch sind jetzt auch über WPS möglich. Benutzt wird dies vor allen Dingen bei der Plazierung der Raummarkierungen. Die Schlüsselwörter sind die gleichen wie bei der Schablonenausgabe.
Beispiel ROOM4.WPS
# Macro fuer eigende Raumlegende. AP ist der Definitionspunkt.
# EP ist der Punkt der Legende
# Mir der Funktion raum_var werden die Raumvariablen geholt.
# Funktion RAUM_VAR ( => nr Typ integer :Raumnr 0=akt. Raum
# => KEY Typ String :Schluesselwort wie bei Schabl.
# => form Typ String :Formatanweisung siehe Schabl.
# <= erg TYP STRING :Ergebniss als Text.
gst_justify(0); # linksbuendig
gst_rotation(0.0);
gst_height(12.5);
gst_color(5);
gst_weight(0);
i1 = 41; setlayer(i1);
text(ep,“Raumbuchauswertung fuer:“);
ep.y = ep.y – 28;
gst_color(3);
string_cat(s1,“Raumnr.: „);
raum_var(0,“NO“,““,s2);
string_cat(s1,s2);
string_cat(s1,“ ; „);
raum_var(0,“RTYP“,““,s2);
string_cat(s1,s2);
string_cat(s1,“ ; „);
raum_var(0,“RBEZ1″,““,s2);
string_cat(s1,s2);
text(ep,s1);
….
Um die speziellen Variablen und Funktionen des Stahlbaumoduls sinnvoll benutzen zu können, ist es notwendig, gute Kenntnisse des Stahlbauprogrammes zu haben. Der Unterschied zwischen Modelldaten, also den Daten für die Stahlliste und den Geometriedaten sollte bekannt sein. Die Bedeutung der einzelnen Variablen ist im folgenden beschrieben. So kann diese Beschreibung dem erfahrenen Anwender des Stahlbaumoduls als Kurzübersicht über die Möglichkeiten der Eingabe mittels WPS dienen.
Variablen der Modelldaten
INTEGERS (Ganzzahlvariablen)
ANZPROMO
Anzahl von Profilmodellen. Diese Variable enthält die aktuelle Anzahl von Profilmodellen.
STUECKZAHL
Anzahl, wie oft eine Position vorhanden ist [[o]]>Anzahl. Diese Variable ist in Zusammenhang mit der Funktion GETAKPROFMOD(i) von Bedeutung. Die Funktion, die Daten über das Profil mit Index „i“ in der Modelldatenbank liefert, setzt auch die Variable STUECKZAHL. Sie enthält die Anzahl der Profilmodelle (Positionen), die mit der Position „i“ übereinstimmen. Näheres hierzu findet sich bei der Beschreibung der Funktion GETAKPROFMOD(i).
HPOSNR
Hauptpositionsnummer eines Profils
UPOSNR
Unterpositionsnummer eines Profils.
ZBAUNR
Zusammenbaunummer eines Profils.
SPOSNR
Schraubenpositionsnummer einer Schraube [[o]]> Schraubenpositionsnummer einer Schraube.
SDURCHM
Durchmesser einer Schraube.
SREIHEN
Reihenanzahl im Lochbild.
SSPALTEN
Spaltenanzahl im Lochbild.
SCHNITTSEITE
Profilende, an dem geschnitten wird [[o]]> Profilende, an dem geschnitten wird.
SLPUANZXY
Anzahl der Schnittpunkte für Schnitt in XY-Ebene.
SLPUANZXZ
Anzahl der Schnittpunkte für Schnitt in XZ-Ebene.
SCHNITTART
Art des Schnittes (XY-Ebene oder XZ-Ebene) [[o]]> Art des Schnittes (XY-Ebene oder XZ-Ebene).
DOUBLES (Gleitkommavariablen)
LAENGE
Länge eines Profils.
BREITE
Breite eines Profils.
HOEHE
Höhe eines Profils.
SLAENGE
Länge einer Schraube
SREIHABSTAND
Abstand zweier Lochreihen.
SSPALABSTAND
Abstand zweier Lochspalten.
WECO_PUNKTE Punktvariablen (3 Doubles .x.y.z)
SLPUNKT_1 bis SLPUNKT_8
Stützpunkte einer Schnittlinie.
SEINFP
Einfügepunkt eines Lochbildes. Referenzpunkt ist die Mitte des Lochbildes.
Variablen der Geometriedaten
INTEGERS (Ganzzahlvariablen)
PEN
Stift für Profil.
ACHSPLOT
Stift für Achse.
PROFDAR
Darstellungsart (2D/3D).
BLICKAUS
Ansicht aus +-XYZ.
FIXECK_EINS
Fixe Ecke 1.
FIXECK_ZWEI
Fixe Ecke 2.
DOUBLES (Gleitkommavariablen)
ACHSVLV
Achsverlängerung vorne.
ACHSVLH
Achsverlängerung hinten.
WECO_PUNKTE Punktvariablen (3 Doubles .x.y.z)
PROFANF
Anfangskoordinate eines Profils.
LAGEPOSNR
Lage der Positionsnummer.
Funktionen des Stahlbaumoduls
PROFMOD()
Modelldaten werden der Stahlbaudatenbank hinzugefügt. Die Variablen der Modelldaten werden diesem Satz zugeordnet.
PROFGEO()
Ein neuer Satz Geometriedaten wird der Stahlbaudatenbank hinzugefügt. Die Variablen der Geometriedaten werden diesem Satz zugefügt. Es wird auf den Modelldatensatz der letzten Eintragung mit PROFMOD() verwiesen.
Das heißt, um eine Position zu erzeugen, setzt man zuerst die Variablen der Modelldaten, erzeugt mit PROFMOD() einen Modelldatensatz, setzt dann die Variablen für die jeweilige Darstellung und erzeugt schließlich Darstellungen mit PROFGEO(). Es sollte mindestens eine Darstellung je Modelldatensatz folgen. Es können aber auch beliebig viele Darstellungen auf ein Modell folgen.
Wird wiederum die Funktion PROFMOD()aufgerufen, so verweisen die folgenden Darstellungen natürlich auf das zuletzt eingetragene neue Datenmodell.
PROFILTYP(„Name“)
=> Name Typ: Stringvariable oder Zeichenkette
Der Typ eines Profils wird auf den in der Variablen „Name“ übergebenen Wert gesetzt. Gültige Werte sind alle Bezeichnungen der in der Profilbibliothek enthaltenen Profile.
X_ROTATION(winkel)
=> winkel Typ: Realvariable oder Zahl
Der Drehwinkel um die X-Achse wird auf den in der Variablen „winkel“ übergebenen Wert gesetzt.
Y_ROTATION(winkel)
=> winkel Typ: Realvariable oder Zahl
Der Drehwinkel um die Y-Achse wird auf den in der Variablen „winkel“ übergebenen Wert gesetzt.
Z_ROTATION(winkel)
=> winkel Typ: Realvariable oder Zahl
Der Drehwinkel um die Z-Achse wird auf den in der Variablen „winkel“ übergebenen Wert gesetzt.
SCHNITT_MIT_XY()
Ein durch die Variablen SCHNITTART, SCHNITTSEITE, SLPUANXY und die Punkte SLPUNKT_1 bis SLPUNKT_8 definierter Schnitt in der XY-Ebene wird an einem Profil ausgeführt.
SCHNITT_MIT_XZ()
Ein durch die Variablen SCHNITTART, SCHNITTSEITE, SLPUANXZ und die Punkte SLPUNKT_1 bis SLPUNKT_8 definierter Schnitt in der XY-Ebene wird an einem Profil ausgeführt.
SCHRAUBENBILD()
Ein durch die Variablen SPOSNR, SDURCHM, SREIHEN, SSPALTEN, SLAENGE, SREIHABSTAND, SSPALABSTAND und den Punkt SEINFP definiertes Schraubenbild wird erzeugt.
GETAKPROFMOD(Index)
=> Index Typ: Integer
Damit können die Daten eines Profilmodells geholt werden.
Die Daten des „Index“-ten Profils in der Datenbank werden eingelesen und stehen dann im Makro zur Verfügung. In einer Schleife können so beispielsweise die Daten aller in einer Zeichnung verwendeten Profile ausgegeben werden. Dies geschieht beispielsweise im Makro „liste.wps“. Besagtes kann in zwei Varianten erfolgen: Wird vor dem Aufruf von GETAKPROFMOD mit dem Index eines Profils als Parameter die Funktion mit dem Index 0 aufgerufen, so wird eine komprimierte Liste der Profilmodelle erzeugt, in der gleiche Profile jeweils nur einmal aufgeführt werden. Andernfalls werden gleiche Profile so oft in der Liste aufgeführt, wie sie in der Zeichnung vorhanden sind. Werden anschließend alle Profile in einer Schleife ausgegeben (siehe „liste.wps“), so kann mit dem Parameter STUECKZAHL abgefragt werden, wie oft ein Profil vorhanden ist.
Anmerkung: Gegenwärtig wird bei der Generierung der komprimierten Liste nur nachgeprüft, ob der Profilbezeichnung und die Länge zweier Profile gleich sind. Andere Größen, in denen sich Profile unterscheiden, könnten zu einem späteren Zeitpunkt mit berückichtigt werden. Die Funktion GETAKPROFMOD ist hauptsächlich für die Verwendung innerhalb von Makros zur Listengenerierung gedacht, um in einer Schleife, in der alle Profilmodelle erfaßt werden, die Daten für ein Profil zu holen. Der Makro „liste.wps“ kann dazu als Beispiel dienen (Siehe Funktion „Profilliste erstellen“ im Handbuch Stahlbau).
PROFBEZ()
Damit kann die Bezeichnung des i-ten Profils in der Datenbank, das durch vorherigen Aufruf der Funktion GETAKPROFMOD (i) als aktuelles gesetzt wurde, geholt werden.
Verwendung:s1 = profbez()
Die Bezeichnung des aktuellen Profils wird der Stringvariablen s1 zugewiesen. In einer Schleife, in der alle Profile durchlaufen werden, kann somit die Bezeichnung für jedes Profil ausgegeben werden (Siehe Bemerkungen bei Funktion GETAKPROFMOD.
PROFMAS(„Param“)
=> Param Typ: Stringvariable oder Zeichenkette
Damit können alle Profilmaße und statischen Kenngrößen des i-ten Profils in der Datenbank, das durch vorherigen Aufruf der Funktion GETAKPROFMOD (i) als aktuelles gesetzt wurde, geholt werden.
Verwendung:r1 = profmas(„Param“)
Der erfragte Kennwert des aktuellen Profils wird der Realvariablen r1 zugewiesen. In einer Schleife, in der alle Profile durchlaufen werden, kann somit dieser Kennwert für jedes Profil ausgegeben werden.
(Siehe Bemerkungen bei Funktion GETAKPROFMOD.
Diese Auswahl des Kennwertes erfolgt durch die Übergabe einer Zeichenkette, welche die gesuchte Größe beschreibt. Zulässig sind hier folgende Zeichenketten, die an die Bezeichnungen in „Schneider: Bautabellen mit Berechnungshinweisen und Beispielen“ angelehnt sind.
Das „P_“ steht dabei für Profil:
Profilmasse
P_h: Hoehe bzw. Durchmesser
P_b: Breite bzw. Durchmesser
P_s: Stegdicke
P_t: Flanschdicke
P_r1: Radius
P_r2: Radius
P_r3: Radius
P_h1: Hoehe
P_e_y: Abstand zu Schwerpunkt
P_e_z: Abstand zu Schwerpunkt
Statische Kennwerte
P_A: Querschnittsflaeche
P_I_y: Flaechenmoment 2. Grades
P_W_y: Widerstandsmoment
P_i_y: Traegheitsradius
P_I_z: Flaechenmoment 2. Grades
P_W_z: Widerstandsmoment
P_i_z: Traegheitsradius
P_I_eta: Flaechenmoment 2. Grades
P_W_eta: Widerstandsmoment
P_i_eta: Traegheitsradius
P_I_zeta: Flaechenmoment 2. Grades
P_W_zeta: Widerstandsmoment
P_i_zeta: Traegheitsradius
P_I_T: Torsionsflaechenmoment 2. Grades
P_W_T: Torsionswiderstandsmoment
P_i_p: sqrt(pow(i_y, 2), pow(i_z, 2))
P_i_M: sqrt(pow(i_p, 2), pow(e_y – t/2, 2))
P_y_M: Abst. Schubmittelp. M von z-Achse bei U-Profilen.
P_v1: Achsabstand
P_v2: Achsabstand
P_alpha: Winkel zwischen eta und y bei UL-Profilen
P_w: Achsabstand
P_S_y: Flaechenmoment 1. Grades des halben Querschnitts
P_s_y: Abstand der Zug- und Druckmittelpunkte
P_g: Eigenlast je Laenge (kN/m)
P_gesg: Gesamtgewicht
P_af: Anstrichflaeche
Beispiel: profmas(„P_h“) liefert die Hoehe des aktuellen Profils zurueck.
WICHTIG : Nicht alle Größen haben für jedes Profil Bedeutung. In solch einem Fall liefert die Funktion den Wert 0 zurück (nicht gesetzt)
Anhang
Bogenmaß
Im Bogenmaß wird die Größe eines Winkels durch die Länge des zwischen den Winkelschenkeln (Radien) entsprechenden Bogens am Einheitskreis gemessen. Der volle Winkel ist im Bogenmaß durch den Umfang des Einheitskreises gegeben, d.h. durch 2π.
Umrechnung zwischen Grad- und Bogenmaß:
Ist α ein im Gradmaß gegebener Winkel, so ist sein Wert im Bogenmaß 2π × α/360°.
Umgekehrt muss ein Wert im Bogenmaß 360°/(2π) mit multipliziert werden,
um den entsprechenden Winkel im Gradmaß zu bekommen.
Bogenmaße für die Viertelteilung eines Kreises:
Grad Bogenmaß
0° 0
90° 1.5707963
180° 3.1415927
270° 4.712389
(360° 6.2831853)
Variablen für Schraubanschluss – Listen
Die Variablen für die Erstellung von Schraubanschluss – Listen finden sich unter dem Befehl SBWLISTE