Zum Inhalt springen
Fragen?
< Alle Themen
Drucken

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

    ANZAHL

    HAKENVORN

    HAKENHINT

    DURCHM

    POSANZAHL

    BWLAGE

    ANZECK

    SBWANZPOS

    SBWANZDU

    SBW_LFDM

    BTANZAHL

    SBWANZAN

DOUBLES

    ABSTAND

    TEXTABST

    STABLEN

    PARA_A bis PARA_R

VARIABLEN DER GEOMETRIEDATEN

INTEGER

    STABZEI

    ANZSTABZEI

    POSNRZEI

    VERTEILZEI

    VLPOSZEI

    ANSICHT

    STABSPIEG

    STABKREIS

    STABECKE

    BOGEN

    POSNRLI

    STABCO

    STABLT

    STABWT

    STABKRCO

    STABKRWT

    STABNRCO

    STABNRWT

    STABTEWT

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

DATCLOSE

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

Inhaltsverzeichnis