| Bartels :: Bartels AutoEngineer :: BAE Dokumentation :: User Language Programmierhandbuch :: Systemfunktionen |
Bartels User Language - ProgrammierhandbuchAnhang C
|
Dieser Anhang beschreibt die in der Bartels User Language eingebundenen Systemfunktionen. Die Funktionen sind dabei gegliedert nach den jeweiligen Aufruftypen in Referenzlisten aufgeführt und anschließend in Form eines Nachschlagewerks in alphabetischer Reihenfolge beschrieben.
| C.1 | Funktionsübersicht |
| C.1.1 | Standard Systemfunktionen (STD) |
| C.1.2 | Schematic Capture Systemfunktionen (CAP) |
| C.1.3 | Schematic Editor Systemfunktionen (SCM) |
| C.1.4 | Layout Systemfunktionen (LAY) |
| C.1.5 | Layouteditor Systemfunktionen (GED) |
| C.1.6 | Autorouter Systemfunktionen (AR) |
| C.1.7 | CAM-Prozessor Systemfunktionen (CAM) |
| C.1.8 | CAM-View Systemfunktionen (CV) |
| C.1.9 | IC Design Systemfunktionen (ICD) |
| C.1.10 | Chip Editor Systemfunktionen (CED) |
| C.2 | Standard-Systemfunktionen |
| C.3 | SCM-Systemfunktionen |
| C.3.1 | Schaltplan-Datenzugriffsfunktionen |
| C.3.2 | Schaltplaneditor-Funktionen |
| C.4 | PCB-Design-Systemfunktionen |
| C.4.1 | Layout-Datenzugriffsfunktionen |
| C.4.2 | Layouteditor-Funktionen |
| C.4.3 | Autorouter-Funktionen |
| C.4.4 | CAM-Prozessor-Funktionen |
| C.4.5 | CAM-View-Funktionen |
| C.5 | IC-Design-Systemfunktionen |
| C.5.1 | IC-Design-Datenzugriffsfunktionen |
| C.5.2 | Chipeditor-Funktionen |
Jede in der Bartels User Language definierte Systemfunktion ist genau einem der Aufruftypen STD, CAP, LAY, SCM, GED, AR, CAM, CV, ICD oder CED zugeordnet. Dieser Abschnitt enthält eine Übersicht über die zum jeweiligen Aufruftyp definierten Systemfunktionen.
Für in den nachfolgenden Kapiteln dieses Anhangs beschriebene Funktion ist der zu dieser Funktion definierte Aufruftyp sowie eine formale Deklaration der Funktion und ihrer Parameter angegeben. Mit dem Datentyp der Systemfunktion ist auch der jeweilige Datentyp des zugehörigen Rückgabewertes definiert; ist der Datentyp einer Funktion
void, dann gibt diese Funktion keinen Wert an den Aufrufer zurück. Wo nötig wird die Arbeitsweise einer Funktion durch nähere Angaben erläutert bzw. durch Beispiele veranschaulicht.
Bei der Deklaration der Parameter wird wenn nötig ein Wertebereich angegeben. Die Angabe erfolgt dabei mit unterer und oberer Grenze des Parameterbereichs. Für die untere Grenze sind folgende Angaben möglich:
[ L | Wert >= untere Grenze L |
] L | Wert > untere Grenze L |
] | keine Beschränkung nach unten |
Für die obere Grenze sind entsprechend folgende Angaben möglich:
U ] | Wert <= obere Grenze U |
U [ | Wert < obere Grenze U |
[ | keine Beschränkung nach oben |
Die Wertebereichsgrenzen werden durch
, getrennt. Die Parameterdeklaration
double ]0.0,[;
gibt z.B. an, dass der Parameter vom Datentyp
double und größer als 0.0 sein muss. Dem
User Language Compiler sind die so definierten Parameterwertebereiche bekannt; er gibt ggf. eine Fehlermeldung aus, wenn er erkennt, dass ein Parameterwert außerhalb des gültigen Wertebereichs liegt.
Ist einem Parameter das Zeichen
& vorangestellt, dann bedeutet dies, dass der Wert dieses Parameters durch die Systemfunktion gesetzt bzw. verändert wird. Dem
User Language Compiler ist diese Parametereigenschaft bekannt; er gibt ggf. eine Warnmeldung aus, wenn er erkennt, dass ein konstanter Wert oder ein Berechnungsergebnis an einen solchen Parameter übergeben wird.
Ist einem Parameter das Zeichen
* vorangestellt, dann handelt es sich bei diesem Parameter um die Referenz auf eine Anwenderfunktion; in diesem Fall wird zusätzlich die vorgeschriebene Deklaration dieser Anwenderfunktion mit aufgeführt. Die Systemfunktion aktiviert von sich aus die entsprechende Anwenderfunktion, sofern diese im
User Language-Programm definiert ist. Unter Umständen ist die Referenzierung von Anwenderfunktionen optional; wenn in diesem Fall eine entsprechende Anwenderfunktion nicht aktiviert werden soll, dann ist für den entsprechenden Parameter das Schlüsselwort
NULL einzutragen. Bei der Deklaration referenzierter Anwenderfunktionen sollte mit größter Sorgfalt vorgegangen werden, da erst zur Laufzeit (also durch den
User Language Interpreter) festgestellt werden kann, ob die Konventionen hinsichtlich des Datentyps und der Parameterdeklarationen für die Anwenderfunktion eingehalten wurden (ist dies nicht der Fall, dann kommt es zu einem Laufzeitfehler); auch das Setzen des Rückgabewertes der referenzierten Anwenderfunktion sollte unbedingt entsprechend den vorgegebenen Konventionen erfolgen, da sich sonst u.U. fatale Nebeneffekte ergeben, die man auf Anhieb gar nicht erkennen (geschweige denn abfangen) kann.
Einen weiteren Spezialfall für die Parameter von Systemfunktionen stellt schließlich der Datentyp
void dar, der angibt, dass der betreffende Parameter von einem beliebigen Datentyp sein kann. Die Spezifikation des Parametertyps
[] schließlich gibt an, dass die Funktion an dieser Stelle optional eine beliebige Anzahl von Parametern vom Datentyp
void erwartet.
Die nachfolgend aufgelisteten Systemfunktionen sind dem Aufruftyp STD zugeordnet, d.h. diese Funktionen können in allen definierten Interpreterumgebungen aufgerufen werden:
| abs | Absolutwert eines Ganzzahlwertes |
| acos | Arcuscosinus berechnen |
| angclass | Winkelklassifizierung |
| arylength | Arraylänge bestimmen |
| asin | Arcussinus berechnen |
| askcoord | Benutzereingabe X-/Y-Koordinatenwerte |
| askdbl | Benutzereingabe Gleitkommazahlwert |
| askdist | Benutzereingabe Distanzwert |
| askint | Benutzereingabe Ganzzahlwert |
| askstr | Benutzereingabe Zeichenkette |
| atan | Arcustangens berechnen |
| atan2 | Arcustangens eines punktbestimmten Winkels |
| atof | Umwandlung Zeichenkette in Gleitkommazahlwert |
| atoi | Umwandlung Zeichenkette in Ganzzahlwert |
| bae_askddbename | BAE DDB-Elementnamensabfrage |
| bae_askddbfname | BAE DDB-Dateinamensabfrage |
| bae_askdirname | BAE Dateiverzeichnisnamensabfrage |
| bae_askfilename | BAE Dateinamensabfrage |
| bae_askmenu | BAE Menüabfrage |
| bae_askname | BAE Dialog zur Namensauswahl aktivieren |
| bae_asksymname | BAE DDB-Bibliothekselementabfrage |
| bae_callmenu | BAE Menüfunktion aufrufen |
| bae_charsize | BAE Text-/Zeichengröße abfragen |
| bae_cleardistpoly | Internes BAE Distanzabfragepolygon löschen |
| bae_clearpoints | BAE Polygonpunktliste löschen |
| bae_clriactqueue | BAE Interaktionsvorgaben löschen |
| bae_crossarcarc | Schnittpunkt(e) zwischen Kreisbögen bestimmen |
| bae_crosslineline | Schnittpunkt zwischen Liniensegmenten mit Breite bestimmen |
| bae_crosslinepoly | Schnittpunkt zwischen Liniensegment mit Breite und Polygon bestimmen |
| bae_crosssegarc | Schnittpunkt zwischen Liniensegment und Kreisbogen bestimmen |
| bae_crosssegseg | Schnittpunkt zwischen Liniensegmenten/Linien bestimmen |
| bae_dashpolyline | Gestricheltes BAE Polygon vektorisieren |
| bae_deffuncprog | BAE Funktionstaste programmieren |
| bae_defkeyprog | BAE Standardtaste programmieren |
| bae_defmenu | BAE Standardmenüdefinition starten |
| bae_defmenuprog | BAE Menüfunktion programmieren |
| bae_defmenusel | BAE Menüabfrage Vorauswahl |
| bae_defmenutext | BAE Menütext definieren |
| bae_defselmenu | BAE Submenüdefinition starten |
| bae_dialaddcontrol | BAE Dialogelement definieren |
| bae_dialadvcontrol | Erweitertes BAE-Dialogelement setzen |
| bae_dialaskcall | BAE Dialog mit Listboxelement-Callbackfunktion aktivieren |
| bae_dialaskparams | BAE Dialog aktivieren |
| bae_dialbmpalloc | BAE Dialogbitmap erzeugen |
| bae_dialboxbufload | BAE Dialogboxdaten aus Buffer holen |
| bae_dialboxbufstore | BAE Dialogboxdaten in Buffer sichern |
| bae_dialboxperm | Eigenständigen BAE Dialog aktivieren |
| bae_dialclr | BAE Dialogelemente löschen |
| bae_dialgetdata | BAE Dialogelementdaten abfragen |
| bae_dialgettextlen | BAE Dialogtextlänge abfragen |
| bae_dialsetcurrent | Aktuelle BAE-Dialogbox setzen |
| bae_dialsetdata | BAE Dialogelementdaten setzen |
| bae_endmainmenu | BAE Hauptmenüdefinition beenden |
| bae_endmenu | BAE Menüdefinition beenden |
| bae_fontcharcnt | BAE Anzahl Zeichensatzzeichen |
| bae_fontname | BAE Zeichensatzname abfragen |
| bae_getactmenu | BAE aktives Menü abfragen |
| bae_getanglelock | BAE Winkelfreigabeflag abfragen |
| bae_getbackgrid | BAE Hintergrundraster abfragen |
| bae_getcasstime | Zeitpunkt des letzten Projektnetzlistenupdates durch Packager/Backannotation ermitteln |
| bae_getclassbitfield | BAE DDB-Klasse Bearbeitungsschlüssel abfragen |
| bae_getcmdbuf | BAE Kommandohistorie abfragen |
| bae_getcolor | BAE Farbwert abfragen |
| bae_getcoorddisp | BAE Koordinatenanzeige abfragen |
| bae_getdblpar | BAE Doubleparameter abfragen |
| bae_getfuncprog | BAE Funktionstastenprogrammierung abfragen |
| bae_getgridlock | BAE Rasterfreigabeflag abfragen |
| bae_getgridmode | BAE Rasterabhängigkeitsmodus abfragen |
| bae_getinpgrid | BAE Eingaberaster abfragen |
| bae_getintpar | BAE Integerparameter abfragen |
| bae_getinvcolor | BAE Farbinvertierungsmodus abfragen |
| bae_getkeyprog | BAE Standardtastenprogrammierung abfragen |
| bae_getmenubitfield | BAE Menüfunktion Bearbeitungsschlüssel abfragen |
| bae_getmenuitem | BAE Menüeintrag abfragen |
| bae_getmenuprog | BAE Menüprogrammierung abfragen |
| bae_getmenutext | BAE Menütext abfragen |
| bae_getmoduleid | BAE Modulbezeichnung abfragen |
| bae_getmsg | BAE HighEnd Message empfangen |
| bae_getpackdata | Daten des letzten Projekt-Packagerlaufs ermitteln |
| bae_getpacktime | Datum/Uhrzeit des letzten Projekt-Packagerlaufs ermitteln |
| bae_getpolyrange | Bereich der internen BAE-Polygonpunktliste abfragen |
| bae_getstrpar | BAE Stringparameter abfragen |
| bae_inittextscreen | BAE Textbildschirm initialisieren/löschen |
| bae_inpoint | BAE Eingabe Punkt mit Maus |
| bae_inpointmenu | BAE Eingabe Punkt mit Maus und Callbackfunktion für rechte Maustaste |
| bae_language | BAE Benutzeroberfläche Landessprache abfragen |
| bae_loadcoltab | BAE Farbtabelle laden |
| bae_loadelem | BAE Element laden |
| bae_loadfont | BAE Zeichensatz laden |
| bae_menuitemhelp | Onlinehilfe zu BAE-Menüelement anzeigen |
| bae_msgbox | BAE Info-Popup aktivieren |
| bae_msgboxverify | BAE Info-Popup mit Ja/Nein-Abfrage aktivieren |
| bae_msgboxverifyquit | BAE Info-Popup mit Ja/Nein/Abbruch-Abfrage aktivieren |
| bae_msgprogressrep | BAE-Fortschrittsanzeige aktivieren/aktualisieren |
| bae_msgprogressterm | BAE-Fortschrittsanzeige beenden |
| bae_mtpsize | BAE Popup Anzeigebereichsdimensionen abfragen |
| bae_nameadd | BAE Namensauswahlliste Element hinzufügen |
| bae_nameclr | BAE Namensauswahlliste löschen |
| bae_nameget | BAE Namensauswahlliste Element abfragen |
| bae_numstring | Numerische Zeichenkette erzeugen |
| bae_peekiact | BAE Interaktionsvorgaben abfrage |
| bae_plainmenutext | BAE Menütext konvertieren |
| bae_planddbclass | BAE Elementklasse abfragen |
| bae_planename | BAE Elementname abfragen |
| bae_planfname | BAE Dateiname abfragen |
| bae_plannotsaved | BAE Element ungesichert Flag abfragen |
| bae_plansename | BAE Zielelementname abfragen |
| bae_plansfname | BAE Zieldateiname abfragen |
| bae_planwslx | BAE Element linke Elementgrenze abfragen |
| bae_planwsly | BAE Element untere Elementgrenze abfragen |
| bae_planwsnx | BAE Element X-Bezugskoordinate abfragen |
| bae_planwsny | BAE Element Y-Bezugskoordinate abfragen |
| bae_planwsux | BAE Element rechte Elementgrenze abfragen |
| bae_planwsuy | BAE Element obere Elementgrenze abfragen |
| bae_popareachoice | BAE Popupmenü Selektionsbereich definieren |
| bae_popcliparea | BAE Popupmenü Clippingbereich definieren |
| bae_popclrtool | BAE Toolbar-Popupmenübereich löschen |
| bae_popcolbar | BAE Popupmenü Farbbalkenanzeige definieren |
| bae_popcolchoice | BAE Popupmenü Farbbalkenselektion definieren |
| bae_popdrawpoly | BAE Popupmenü Polygon-/Grafikanzeige |
| bae_popdrawtext | BAE Popupmenü Textanzeige |
| bae_popmouse | BAE Popup/Toolbar Mausposition abfragen |
| bae_poprestore | BAE Popupmenübereich reaktivieren |
| bae_popsetarea | BAE Popupmenübereich aktivieren/selektieren |
| bae_popshow | BAE Popupmenü aktivieren |
| bae_poptext | BAE Popupmenü Textanzeige definieren |
| bae_poptextchoice | BAE Popupmenü Textselektion definieren |
| bae_postprocess | BAE Postprozessorlauf |
| bae_progdir | BAE Programmverzeichnis ermitteln |
| bae_prtdialog | BAE Dialogtextausgabe in Statuszeile |
| bae_querydist | BAE Punkt-zu-Polygon Distanzabfrage |
| bae_readedittext | BAE Texteingabe/-anzeige |
| bae_readtext | BAE Texteingabe mit optionalem Popupmenü |
| bae_redefmainmenu | BAE Hauptmenüdefinition starten |
| bae_redefmenu | BAE Menüfunktion umprogrammieren |
| bae_resetmenuprog | BAE Menüprogrammierung zurücksetzen |
| bae_sendmsg | BAE HighEnd Message senden |
| bae_setanglelock | BAE Winkelfreigabeflag setzen |
| bae_setbackgrid | BAE Hintergrundraster setzen |
| bae_setclipboard | Textstring in BAE-Zwischenablage speichern |
| bae_setcolor | BAE Farbwert setzen |
| bae_setcoorddisp | BAE Koordinatenanzeige setzen |
| bae_setdblpar | BAE Doubleparameter setzen |
| bae_setgridlock | BAE Rasterfreigabeflag setzen |
| bae_setgridmode | BAE Rasterabhängigkeitsmodus setzen |
| bae_setinpgrid | BAE Eingaberaster setzen |
| bae_setintpar | BAE Integerparameter setzen |
| bae_setmoduleid | BAE Modulbezeichnung setzen |
| bae_setmousetext | BAE Mausklick-Eingabetext definieren |
| bae_setplanfname | BAE Projektdateiname setzen |
| bae_setpopdash | BAE Popup/Toolbar Parameter für gestrichelte Linien setzen |
| bae_setstrpar | BAE Stringparameter setzen |
| bae_settbsize | BAE Toolbarbereich definieren/anzeigen |
| bae_storecmdbuf | BAE Kommando in Kommandohistorie speichern |
| bae_storedistpoly | Internes BAE Distanzabfragepolygon speichern |
| bae_storeelem | BAE Element speichern |
| bae_storekeyiact | BAE Tasteneingabe vorgeben |
| bae_storemenuiact | BAE Menüwahl vorgeben |
| bae_storemouseiact | BAE Mauseingabe vorgeben |
| bae_storepoint | Punkt in BAE-Punktliste eintragen |
| bae_storetextiact | BAE Texteingabe vorgeben |
| bae_swconfig | BAE Softwarekonfiguration abfragen |
| bae_swversion | BAE Softwareversion abfragen |
| bae_tbsize | BAE Toolbardimensionen abfragen |
| bae_twsize | BAE Textarbeitsbereichsgröße abfragen |
| bae_wsmouse | BAE Arbeitsbereich Mausposition abfragen |
| bae_wswinlx | BAE Arbeitsbereich linke Grenze abfragen |
| bae_wswinly | BAE Arbeitsbereich untere Grenze abfragen |
| bae_wswinux | BAE Arbeitsbereich rechte Grenze abfragen |
| bae_wswinuy | BAE Arbeitsbereich obere Grenze abfragen |
| catext | Dateinamenserweiterung an Dateiname anhängen |
| catextadv | Dateinamenserweiterung optional an Dateiname anhängen |
| ceil | Gleitkommazahl aufrunden |
| clock | Verbrauchte CPU-Zeit ermitteln |
| con_clear | Interne Logische Netzliste löschen |
| con_compileloglib | Logische Bibliotheksdefinition kompilieren |
| con_deflogpart | Logische Bauteildefinition speichern |
| con_getddbpattrib | Bauteil-/Pinattribut in DDB-Datei abfragen |
| con_getlogpart | Logische Bauteildefinition abfragen |
| con_setddbpattrib | Bauteil-/Pinattribut in DDB-Datei setzen |
| con_storepart | Interne Logische Netzliste Bauteil speichern |
| con_storepin | Interne Logische Netzliste Pin speichern |
| con_write | Interne Logische Netzliste auf Datei ausgeben |
| convstring | Zeichenkette konvertieren |
| cos | Cosinus berechnen |
| cosh | Hyberbolischen Cosinus berechnen |
| cvtangle | Winkel in andere Einheit umwandeln |
| cvtlength | Länge in andere Einheit umwandeln |
| ddbcheck | DDB-Dateielement auf Verfügbarkeit prüfen |
| ddbclassid | DDB-Elementklasse Bezeichnung abfragen |
| ddbclassscan | DDB-Elementklasse abarbeiten |
| ddbcopyelem | DDB-Dateielement kopieren |
| ddbdelelem | DDB-Dateielement löschen |
| ddbelemrefcount | DDB-Dateielement Referenzanzahl abfragen |
| ddbelemrefentry | DDB-Dateielement Referenzeintrag abfragen |
| ddbgetelemcomment | DDB-Dateielement Kommentartext abfragen |
| ddbgetlaypartpin | DDB-Dateielement Layoutbauteilpindaten abfragen |
| ddbrenameelem | DDB-Dateielement umbenennen |
| ddbupdtime | DDB-Dateielement Änderungsdatum abfragen |
| ddbsetelemcomment | DDB-Dateielement Kommentartext setzen |
| dirscan | Dateiverzeichniseinträge abarbeiten |
| existddbelem | DDB-Dateielement Existenz prüfen |
| exit | Programm verlassen |
| exp | Exponentialfunktion |
| fabs | Absolutwert eines Gleitkommawertes |
| fclose | Datei schließen |
| fcloseall | Alle offenen Dateien schließen |
| feof | Prüfen ob Dateiende erreicht |
| fgetc | Zeichen aus Datei einlesen |
| fgets | Zeichenkette aus Datei einlesen |
| filemode | Dateimodus abfragen |
| filesize | Dateigröße abfragen |
| filetype | Dateityp abfragen |
| floor | Gleitkommawert abrunden |
| fmod | Gleitkommadivision Rest berechnen |
| fopen | Datei öffnen |
| fprintf | Formatierte Ausgabe auf Datei |
| fputc | Zeichen in Datei schreiben |
| fputs | Zeichenkette in Datei schreiben |
| frexp | Exponentialdarstellung ermitteln |
| fseterrmode | Dateifehler-Behandlungsmodus setzen |
| get_date | Systemdatum ermitteln |
| get_time | Systemuhrzeit ermitteln |
| getchr | Zeichen einlesen |
| getcwd | Pfadname des Arbeitsverzeichnisses abfragen |
| getenv | Umgebungsvariable abfragen |
| getextprog | Dateitypspezifische Applikation ermitteln |
| getstr | Zeichenkette einlesen |
| isalnum | Prüfen ob Zeichen alphanumerisch |
| isalpha | Prüfen ob Zeichen Buchstabe |
| iscntrl | Prüfen ob Zeichen Kontrollzeichen |
| isdigit | Prüfen ob Zeichen Ziffer |
| isgraph | Prüfen ob Zeichen sichtbares Zeichen |
| islower | Prüfen ob Zeichen Kleinbuchstabe |
| isprint | Prüfen ob Zeichen druckbares Zeichen |
| ispunct | Prüfen ob Zeichen Satzzeichen |
| isspace | Prüfen ob Zeichen Zwischenraumzeichen |
| isupper | Prüfen ob Zeichen Großbuchstabe |
| isxdigit | Prüfen ob Zeichen Hex-Ziffer |
| kbhit | Prüfen ob Taste betätigt |
| kbstate | Umschalt-/Steuerungs-Tastenstatus abfragen |
| launch | Betriebssystemkommando absetzen ohne Ausführung abzuwarten |
| ldexp | Gleitkommamultiplikation mit 2^n |
| localtime | Systemdatum und Systemzeit abfragen |
| log | Logarithmus zur Basis e |
| log10 | Logarithmus zur Basis 10 |
| mkdir | Dateiverzeichnis anlegen |
| modf | Gleitkommazahl Vor- und Nachkommastellen |
| namestrcmp | Namensvergleich |
| numstrcmp | Numerischer Zeichenkettenvergleich |
| perror | Fehlermeldung in Statuszeile ausgeben |
| pow | Potenzfunktion x^y |
| printf | Formatierte Ausgabe |
| programid | Programmname abfragen |
| putchr | Zeichen ausgeben |
| putenv | Umgebungsvariable setzen |
| puts | Zeichenkette mit Zeilenabschluss ausgeben |
| putstr | Zeichenkette ausgeben |
| quicksort | Indexliste sortieren |
| remove | Datei oder Verzeichnis löschen |
| rename | Datei umbenennen |
| rewind | Auf Dateianfang positionieren |
| rulecompile | Regeldefinition kompilieren |
| rulesource | Regeldefinitionsquellcode abfragen |
| scanddbenames | Inhalt Datenbank abfragen |
| scandirfnames | Inhalt Dateiverzeichnis abfragen |
| setprio | BAE Prozesspriorität setzen |
| sin | Sinus berechnen |
| sinh | Hyberbolischen Sinus berechnen |
| sprintf | Formatierte Ausgabe auf Zeichenkette |
| sqlcmd | SQL Kommando ausführen |
| sqlerr | SQL Fehlerstatus abfragen |
| sqlinit | SQL Datenbank initialisieren |
| sqrt | Quadratwurzel berechnen |
| strcmp | ASCII-Zeichenkettenvergleich |
| strcspn | Zeichenkette Länge Startmuster berechnen |
| strdelchr | Zeichenkette Zeichenmenge entfernen |
| strextract | Zeichenkette Sub-Zeichenkette extrahieren |
| strextractfilepath | Verzeichnisname aus Dateipfadname extrahieren |
| strgetconffilename | Konfigurationsdateiname mit optionaler Umgebungsvariable bestimmen |
| strgetvarfilename | Dateiname aus Umgebungsvariable ableiten |
| strgetpurefilename | Dateiname aus Dateipfadname extrahieren |
| strlen | Länge Zeichenkette ermitteln |
| strlistitemadd | String in Stringliste eintragen |
| strlistitemchk | String in Stringliste suchen |
| strlower | Zeichenkette in Kleinbuchstaben umwandeln |
| strmatch | Zeichenkette Musterabfrage |
| strnset | Zeichenkette mit n Zeichen füllen |
| strreverse | Zeichenkette Zeichenreihenfolge umdrehen |
| strscannext | Zeichen in Zeichenkette vorwärts suchen |
| strscanprior | Zeichen in Zeichenkette rückwärts suchen |
| strset | Zeichenkette mit Zeichen füllen |
| strspn | Zeichenkette Länge bis Endmuster ermitteln |
| strupper | Zeichenkette in Großbuchstaben umwandeln |
| syngetintpar | BNF/Scanner Integerparameter abfragen |
| synparsefile | BNF/Parser Datei einlesen |
| synparseincfile | BNF/Parser Includedatei einlesen |
| synparsestring | BNF/Parser Zeichenkette abarbeiten |
| synscaneoln | BNF/Scanner Zeilenendeerkennung setzen |
| synscanigncase | BNF/Scanner Schlüsselworterkennungsmodus setzen |
| synscanline | BNF/Scanner Eingabezeilennummer abfragen |
| synscanstring | BNF/Scanner Eingabestring abfragen |
| synsetintpar | BNF/Scanner Integerparameter setzen |
| system | Betriebssystemkommando absetzen und Ausführung abwarten |
| tan | Tangens berechnen |
| tanh | Hyberbolischen Tangens berechnen |
| tolower | Zeichen in Kleinbuchstaben umwandeln |
| toupper | Zeichen in Großbuchstaben umwandeln |
| uliptype | User Language Interpreterumgebung abfragen |
| ulipversion | User Language-Interpreterversion abfragen |
| ulproginfo | User Language-Programm Info abfragen |
| ulsystem | User Language-Programm aufrufen |
| ulsystem_exit | User Language-Programm nach Beendigung des aktuellen User Language-Programms aufrufen |
| vardelete | Globale User Language-Variable löschen |
| varget | Globale User Language-Variable abfragen |
| varset | Globale User Language-Variable setzen |
Die nachfolgend aufgelisteten Systemfunktionen sind dem Aufruftyp CAP zugeordnet, d.h. diese Funktionen können im Schaltplaneditor aufgerufen werden:
| cap_blockname | Schaltplan Blockname abfragen |
| cap_blocktopflag | Schaltplan Blockhierarchieebene abfragen |
| cap_figboxtest | SCM-Elementüberschneidung Rechteck prüfen |
| cap_findblockname | SCM-Blockschaltbild mit angegebenem Blocknamen suchen |
| cap_findlayconpart | Bauteilindex aus Layoutnetzliste ermitteln |
| cap_findlayconpartpin | Bauteilpinindex aus Layoutnetzliste ermitteln |
| cap_findlaycontree | Netznamens-Netzindex aus Layoutnetzliste ermitteln |
| cap_getglobnetref | Globale Netznamensreferenz abfragen |
| cap_getlaytreeidx | Netznummer-Netzindex aus Layoutnetzliste ermitteln |
| cap_getpartattrib | SCM-Bauteilattributwert abfragen |
| cap_getrulecnt | SCM-Element Regelanzahl abfragen |
| cap_getrulename | SCM-Element Regelname abfragen |
| cap_getscbustapidx | Aktuell gescannten SCM-Busanschluß ermitteln |
| cap_getscclass | Aktuell gescannte SCM-Elementklasse ermitteln |
| cap_getscrefpidx | Aktuell gescanntes SCM-Bibliothekselement ermitteln |
| cap_getscstkcnt | Schaltplan Scanfunktion Stacktiefe abfragen |
| cap_gettagdata | Schaltplan Tagsymbol Zieldaten abfragen |
| cap_lastconseg | Zuletzt modifiziertes SCM-Verbindungssegment ermitteln |
| cap_lastfigelem | Zuletzt modifiziertes SCM-Element ermitteln |
| cap_layconload | Layoutnetzliste laden |
| cap_maccoords | Schaltplan Makrokoordinaten abfragen |
| cap_macload | SCM-Symbol in den Arbeitsspeicher laden |
| cap_macrelease | SCM-Symbol aus Arbeitsspeicher löschen |
| cap_mactaglink | Schaltplan Makro-Tagverweisdaten abfragen |
| cap_nrefsearch | Schaltplan Name auf Plan suchen |
| cap_partplan | Schaltplan Bauteilplanname abfragen |
| cap_pointpoolidx | Schaltplan Verbindungspunktpoolelement ermitteln |
| cap_ruleconatt | SCM-Regelsystem Fehlerstatus abfragen |
| cap_rulecondet | Regelzuweisung an SCM-Verbindungssegment |
| cap_ruleerr | Regelzuweisungen von SCM-Verbindungssegment lösen |
| cap_rulefigatt | Regelzuweisung an SCM-Figurenelement |
| cap_rulefigdet | Regelzuweisungen von SCM-Figurenelement lösen |
| cap_ruleplanatt | Regelzuweisung an aktuell geladenes SCM-Element |
| cap_ruleplandet | Regelzuweisungen von aktuell geladenem SCM-Element lösen |
| cap_rulequery | SCM-Element Regelabfrage durchführen |
| cap_scanall | Schaltplan Scan über alle Elemente |
| cap_scanfelem | Schaltplan Scan über Figurenelement |
| cap_scanpool | Schaltplan Scan über Poolelement |
| cap_vecttext | Schaltplan Text vektorisieren |
Die nachfolgend aufgelisteten Systemfunktionen sind dem Aufruftyp SCM zugeordnet, d.h. diese Funktionen können im Schaltplaneditor aufgerufen werden:
| scm_askrefname | SCM Referenznamensabfrage |
| scm_asktreenam | SCM Netznamensabfrage |
| scm_attachtextpos | Textverschiebung an SCM-Element anfügen |
| scm_checkbustapplot | SCM-Busanschluß Plotstatus abfragen |
| scm_checkjunctplot | SCM-Verbindungspunktmarker Plotstatus abfragen |
| scm_chkattrname | SCM-Attributname validieren |
| scm_conseggrpchg | SCM Verbindungssegment Gruppenflag ändern |
| scm_deflibname | SCM Setup default Bibliothek |
| scm_defloglname | SCM Setup default Packager Bibliothek |
| scm_defsegbus | SCM Verbindungssegment Busdefinition |
| scm_delconseg | SCM Verbindungssegment löschen |
| scm_delelem | SCM Element löschen |
| scm_drawelem | SCM Elementanzeige aktualisieren |
| scm_elemangchg | SCM Elementwinkel ändern |
| scm_elemgrpchg | SCM Element Gruppenflag ändern |
| scm_elemmirrchg | SCM Elementspiegelung ändern |
| scm_elemposchg | SCM Elementposition ändern |
| scm_elemsizechg | SCM Elementgröße ändern |
| scm_findpartplc | Layoutbauteil Platzierungsstatus abfragen (BAE HighEnd) |
| scm_getdblpar | SCM Doubleparameter abfragen |
| scm_getgroupdata | SCM Gruppenplatzierungsdaten abfragen |
| scm_gethighlnet | SCM Netz Highlightmodus abfragen |
| scm_gethpglparam | SCM HP-GL-Plotparameter abfragen |
| scm_getinputdata | SCM Eingabedaten abfragen |
| scm_getintpar | SCM Integerparameter abfragen |
| scm_getstrpar | SCM Stringparameter abfragen |
| scm_highlnet | SCM Netz Highlightmodus setzen |
| scm_pickanyelem | Beliebiges SCM Element selektieren |
| scm_pickbustap | SCM Bustap selektieren |
| scm_pickconseg | SCM Verbindungssegment selektieren |
| scm_pickelem | SCM Element selektieren |
| scm_setdblpar | SCM Doubleparameter setzen |
| scm_setintpar | SCM Integerparameter setzen |
| scm_setpartattrib | SCM Bauteilattribut setzen |
| scm_setpickconseg | SCM Defaultverbindungspickelement setzen |
| scm_setpickelem | SCM Defaultpickelement setzen |
| scm_setstrpar | SCM Stringparameter setzen |
| scm_settagdata | SCM Tagsymbolpin Zieldaten setzen |
| scm_storecon | SCM Verbindung platzieren |
| scm_storelabel | SCM Label platzieren |
| scm_storepart | SCM Bauteil platzieren |
| scm_storepoly | SCM Polygon platzieren |
| scm_storetext | SCM Text platzieren |
Die nachfolgend aufgelisteten Systemfunktionen sind dem Aufruftyp LAY zugeordnet, d.h. diese Funktionen können im Layouteditor, im Autorouter und im CAM-Prozessor aufgerufen werden:
| lay_defelemname | Layout Setup default Elementname |
| lay_deflibname | Layout Setup default Bibliothek |
| lay_defusrunit | Layout Setup default Benutzereinheitensystem |
| lay_doclayindex | Layout Dokumentarlagenanzeigeindex |
| lay_doclayname | Layout Setup Name Dokumentarlage |
| lay_doclayside | Layout Setup Seitenmodus Dokumentarlage |
| lay_doclaytext | Layout Setup Textmodus Dokumentarlage |
| lay_figboxtest | Layout Elementüberschneidung Rechteck prüfen |
| lay_findconpart | Layout Bauteil in Netzliste suchen |
| lay_findconpartpin | Layout Bauteilpin in Netzliste suchen |
| lay_findcontree | Layout Netz in Netzliste suchen |
| lay_getplanchkparam | Layout DRC Abstände abfragen |
| lay_getpowplanetree | Layout Netznummer in Versorgungslage abfragen |
| lay_getpowpolystat | Layout Versorgungslagenpolygonstatus abfragen |
| lay_getrulecnt | Layoutelement Regelanzahl abfragen |
| lay_getrulename | Layoutelement Regelname abfragen |
| lay_getscclass | Aktuell gescannte Layoutelementklasse ermitteln |
| lay_getscpartrpidx | Aktuell gescanntes Layoutbauteil ermitteln |
| lay_getscrefpidx | Aktuell gescanntes Layoutbibliothekselement ermitteln |
| lay_getscstkcnt | Layout Scanfunktion Stacktiefe abfragen |
| lay_getsctextdest | Zielpunkt des gescannten Layouttextes abfragen |
| lay_gettreeidx | Layout Netznummer in Netzliste suchen |
| lay_grpdisplay | Layout Setup Gruppenlage abfragen |
| lay_lastfigelem | Zuletzt modifiziertes Layoutelement ermitteln |
| lay_maccoords | Layout Makrokoordinaten abfragen |
| lay_macload | Layoutsymbol in den Arbeitsspeicher laden |
| lay_macrelease | Layoutsymbol aus Arbeitsspeicher löschen |
| lay_menulaylinecnt | Lagenmenüzeilenanzahl abfragen |
| lay_menulaylinelay | Lagennummer der angegebenen Lagenmenüzeile abfragen |
| lay_menulaylinename | Lagenname der angegebenen Lagenmenüzeile abfragen |
| lay_nrefsearch | Layout Name auf Plan suchen |
| lay_planmidlaycnt | Layout Innenlagenanzahl abfragen |
| lay_plantoplay | Layout oberste Lage abfragen |
| lay_pltmarklay | Layout Setup Passermarkenlage abfragen |
| lay_ruleerr | Layout-Regelsystem Fehlerstatus abfragen |
| lay_rulefigatt | Regelzuweisung an Layout-Figurenelement |
| lay_rulefigdet | Regelzuweisungen von Layout-Figurenelement lösen |
| lay_rulelaysatt | Regelzuweisung an Layoutlagenaufbau |
| lay_rulelaysdet | Regelzuweisungen von Layoutlagenaufbau lösen |
| lay_ruleplanatt | Regelzuweisung an aktuell geladenes Layoutelement |
| lay_ruleplandet | Regelzuweisungen von aktuell geladenem Layoutelement lösen |
| lay_rulequery | Layoutelement Regelabfrage durchführen |
| lay_scanall | Layout Scan über alle Elemente |
| lay_scanfelem | Layout Scan über Figurenelement |
| lay_scanpool | Layout Scan über Poolelement |
| lay_setfigcache | Layout-Cache für den schnellen Zugriff auf Figurenlistenelemente aufbauen |
| lay_setplanchkparam | Layout DRC Parameter setzen |
| lay_toplayname | Layout Setup Name oberste Lage abfragen |
| lay_vecttext | Layout Text vektorisieren |
Die nachfolgend aufgelisteten Systemfunktionen sind dem Aufruftyp GED zugeordnet, d.h. diese Funktionen können im Layouteditor aufgerufen werden:
| ged_asklayer | GED Lagenauswahl |
| ged_askrefname | GED Referenznamensabfrage |
| ged_asktreeidx | GED Netzabfrage |
| ged_attachtextpos | Textverschiebung an Layoutelement anfügen |
| ged_delelem | GED Element löschen |
| ged_drawelem | GED Elementanzeige aktualisieren |
| ged_drcerrorhide | GED DRC-Fehlerakzeptanzmodus setzen/rücksetzen |
| ged_drcpath | GED Designregelprüfung für Leiterbahn-Testplatzierung |
| ged_drcpoly | GED Designregelprüfung für Polygon-Testplatzierung |
| ged_drcvia | GED Designregelprüfung für Via-Testplatzierung |
| ged_elemangchg | GED Elementwinkel ändern |
| ged_elemfixchg | GED Element fixiert-Flag ändern |
| ged_elemgrpchg | GED Element Gruppenflag ändern |
| ged_elemlaychg | GED Elementlage ändern |
| ged_elemmirrchg | GED Elementspiegelung ändern |
| ged_elemposchg | GED Elementposition ändern |
| ged_elemsizechg | GED Elementgröße ändern |
| ged_getautocornins | GED Modus für automatische Eckpunktgenerierung abfragen |
| ged_getdblpar | GED Doubleparameter abfragen |
| ged_getdrcmarkmode | GED DRC Fehleranzeigemodus abfragen |
| ged_getdrcstatus | GED DRC Vollständigkeitsstatus abfragen |
| ged_getgroupdata | GED Gruppenplatzierungsdaten abfragen |
| ged_gethighlnet | GED Netz Highlightmodus/Farbe abfragen |
| ged_getinputdata | GED Eingabedaten abfragen |
| ged_getintpar | GED Integerparameter abfragen |
| ged_getlaydefmode | GED Lagendefaultmodus abfragen |
| ged_getlayerdefault | GED Defaultlage abfragen |
| ged_getmincon | GED Mincon-Funktion abfragen |
| ged_getpathwidth | GED Bahnenstandardbreiten abfragen |
| ged_getpickmode | GED Elementpickmodus abfragen |
| ged_getpickpreflay | GED Vorzugslage abfragen |
| ged_getpowlayerrcnt | GED Versorgungslagenfehleranzahl abfragen |
| ged_getsegmovmode | GED Leiterbahnsegmentbewegungsmodus abfragen |
| ged_getstrpar | GED Stringparameter abfragen |
| ged_getviaoptmode | GED Leiterbahnviaoptimierungsmodus abfragen |
| ged_getwidedraw | GED Breitendarstellung abfragen |
| ged_groupselect | GED Gruppenselektion |
| ged_highlnet | GED Netz Highlightmodus/Farbe setzen |
| ged_layergrpchg | GED Gruppenselektion nach Lage |
| ged_partaltmacro | GED Bauteilgehäusetyp ändern |
| ged_partnamechg | GED Bauteilname ändern |
| ged_pickanyelem | Beliebiges GED Element selektieren |
| ged_pickelem | GED Element selektieren |
| ged_setautocornins | GED Modus für automatische Eckpunktgenerierung setzen |
| ged_setdblpar | GED Doubleparameter setzen |
| ged_setdrcmarkmode | GED DRC Fehleranzeigemodus setzen |
| ged_setintpar | GED Integerparameter setzen |
| ged_setlaydefmode | GED Lagendefaultmodus setzen |
| ged_setlayerdefault | GED Defaultlage setzen |
| ged_setmincon | GED Mincon-Funktion setzen |
| ged_setnetattrib | GED Netzattribut setzen |
| ged_setpathwidth | GED Bahnenstandardbreiten setzen |
| ged_setpickelem | GED Defaultpickelement setzen |
| ged_setpickmode | GED Elementpickmodus setzen |
| ged_setpickpreflay | GED Vorzugslage setzen |
| ged_setplantoplay | GED oberste Lage setzen |
| ged_setsegmovmode | GED Leiterbahnsegmentbewegungsmodus setzen |
| ged_setstrpar | GED Stringparameter setzen |
| ged_setviaoptmode | GED Leiterbahnviaoptimierungsmodus setzen |
| ged_setwidedraw | GED Breitendarstellung setzen |
| ged_storedrill | GED Bohrung platzieren |
| ged_storepart | GED Bauteil platzieren |
| ged_storepath | GED Bahn platzieren |
| ged_storepoly | GED Fläche platzieren |
| ged_storetext | GED Text platzieren |
| ged_storeuref | GED Via bzw. Pad platzieren |
Die nachfolgend aufgelisteten Systemfunktionen sind dem Aufruftyp AR zugeordnet, d.h. diese Funktionen können im Autorouter aufgerufen werden:
| ar_asklayer | Autorouter Lagenauswahl |
| ar_delelem | Autorouter Element löschen |
| ar_drawelem | Autorouter Elementanzeige aktualisieren |
| ar_elemangchg | Autorouter Elementwinkel ändern |
| ar_elemfixchg | Autorouter Element fixiert-Flag ändern |
| ar_elemmirrchg | Autorouter Elementspiegelung ändern |
| ar_elemposchg | Autorouter Elementposition ändern |
| ar_elemsizechg | Autorouter Elementgröße ändern |
| ar_getdblpar | Autorouter Doubleparameter abfragen |
| ar_getintpar | Autorouter Integerparameter abfragen |
| ar_getmincon | Autorouter Mincon-Funktion abfragen |
| ar_getpickpreflay | Autorouter Vorzugslage abfragen |
| ar_getstrpar | Autorouter Stringparameter abfragen |
| ar_getwidedraw | Autorouter Breitendarstellung abfragen |
| ar_highlnet | Autorouter Highlight Netz ein/aus |
| ar_partnamechg | Autorouter Bauteilname in Netzliste ändern |
| ar_pickelem | Autorouter Element mit Maus selektieren |
| ar_setdblpar | Autorouter Doubleparameter setzen |
| ar_setintpar | Autorouter Integerparameter setzen |
| ar_setmincon | Autorouter Mincon-Funktion setzen |
| ar_setnetattrib | Autorouter Netzattribut setzen |
| ar_setpickpreflay | Autorouter Vorzugslage setzen |
| ar_setplantoplay | Autorouter oberste Lage setzen |
| ar_setstrpar | Autorouter Stringparameter setzen |
| ar_setwidedraw | Autorouter Breitendarstellung setzen |
| ar_storepart | Autorouter Bauteil platzieren |
| ar_storepath | Autorouter Bahn platzieren |
| ar_storeuref | Autorouter Via bzw. Pad platzieren |
Die nachfolgend aufgelisteten Systemfunktionen sind dem Aufruftyp CAM zugeordnet, d.h. diese Funktionen können im CAM-Prozessor aufgerufen werden:
| cam_askplotlayer | CAM Plotlagenauswahl |
| cam_getdblpar | CAM Doubleparameter abfragen |
| cam_getdrlaccuracy | CAM Bohrwerkzeugtoleranz abfragen |
| cam_getgenpltparam | CAM allgemeine Plotparameter abfragen |
| cam_getgerberapt | CAM Gerberblendendefinition abfragen |
| cam_getgerberparam | CAM Gerber-Parameter abfragen |
| cam_gethpglparam | CAM HP-GL-Plotparameter abfragen |
| cam_getintpar | CAM Integerparameter abfragen |
| cam_getplotlaycode | CAM Plotlagencode abfragen |
| cam_getpowpltparam | CAM Versorgungslagen-Parameter abfragen |
| cam_getwidedraw | CAM Breitendarstellung abfragen |
| cam_plotgerber | CAM Gerber-Ausgabe |
| cam_plothpgl | CAM HP-GL-Ausgabe |
| cam_setdblpar | CAM Doubleparameter setzen |
| cam_setdrlaccuracy | CAM Bohrwerkzeugtoleranz setzen |
| cam_setgenpltparam | CAM allgemeine Plotparameter setzen |
| cam_setgerberapt | CAM Gerberblende definieren |
| cam_setintpar | CAM Integerparameter setzen |
| cam_setplotlaycode | CAM Plotlagencode setzen |
| cam_setpowpltparam | CAM Versorgungslagen-Parameter setzen |
| cam_setwidedraw | CAM Breitendarstellung setzen |
Die nachfolgend aufgelisteten Systemfunktionen sind dem Aufruftyp CV zugeordnet, d.h. diese Funktionen können im CAM-View-Modul aufgerufen werden:
| cv_aptgetcolor | CAM-View Blendenfarbe abfragen |
| cv_aptsetcolor | CAM-View Blendenfarbe setzen |
| cv_deldataset | CAM-View Datensatz löschen |
| cv_getdblpar | CAM-View Doubleparameter abfragen |
| cv_getintpar | CAM-View Integerparameter abfragen |
| cv_movedataset | CAM-View Datensatz verschieben |
| cv_setdblpar | CAM-View Doubleparameter setzen |
| cv_setintpar | CAM-View Integerparameter setzen |
Die nachfolgend aufgelisteten Systemfunktionen sind dem Aufruftyp ICD zugeordnet, d.h. diese Funktionen können im Chipeditor aufgerufen werden:
| icd_altpinlay | IC Design Setup Alternativpinlayer |
| icd_cellconlay | IC Design Setup Lage interne Zellverbindungen |
| icd_cellscan | IC Design Setup DRC auf Zellebene |
| icd_cellshr | IC Design Setup Zellsperrflächenoffset |
| icd_ciflayname | IC Design Setup CIF-Ausgabelage abfragen |
| icd_cstdsiz | IC Design Setup Standardzellenhöhe abfragen |
| icd_defelemname | IC Design Setup default Elementname |
| icd_deflibname | IC Design Setup default Bibliothek |
| icd_drcarc | IC Design Setup DRC Kreisbögen abfragen |
| icd_drcgrid | IC Design Setup DRC Raster abfragen |
| icd_drclaymode | IC Design Setup DRC Lagenberücksichtigung |
| icd_drcmaxpar | IC Design Setup DRC Parallelcheck abfragen |
| icd_drcminwidth | IC Design Setup Lage minimale Strukturgröße |
| icd_drcrect | IC Design Setup DRC Orthogonalcheck abfragen |
| icd_ecnlaymode | IC Design Setup Lagenconnectivity abfragen |
| icd_findconpart | IC Design Bauteil in Netzliste suchen |
| icd_findconpartpin | IC Design Bauteilpin in Netzliste suchen |
| icd_findcontree | IC Design Netz in Netzliste suchen |
| icd_getrulecnt | IC Design-Element Regelanzahl abfragen |
| icd_getrulename | IC Design-Element Regelname abfragen |
| icd_gettreeidx | IC Design Netznummer in Netzliste suchen |
| icd_grpdisplay | IC Design Setup Gruppenlage abfragen |
| icd_lastfigelem | Zuletzt modifiziertes IC Design Element ermitteln |
| icd_maccoords | IC Design Makrokoordinaten abfragen |
| icd_nrefsearch | IC Design Name auf Plan suchen |
| icd_outlinelay | IC Design Setup Zellumrandung Lage abfragen |
| icd_pindist | IC Design Setup Pinaussparung abfragen |
| icd_plcxgrid | IC Design Setup Platzierungsraster abfragen |
| icd_plcxoffset | IC Design Setup Platzierungsoffset abfragen |
| icd_routcellcnt | IC Design Setup Anzahl Stromversorgungszellen |
| icd_routcellname | IC Design Setup Name Stromversorgungszelle |
| icd_ruleerr | Regelsystem Fehlerstatus abfragen |
| icd_rulefigatt | Regelzuweisung an Figurenelement |
| icd_rulefigdet | Regelzuweisungen von Figurenelement lösen |
| icd_ruleplanatt | Regelzuweisung an aktuell geladenes Element |
| icd_ruleplandet | Regelzuweisungen von aktuell geladenem Element lösen |
| icd_rulequery | IC Design-Element Regelabfrage durchführen |
| icd_scanall | IC Design Scan über alle Elemente |
| icd_scanfelem | IC Design Scan über Figurenelement |
| icd_scanpool | IC Design Scan über Poolelement |
| icd_stdlayname | IC Design Setup Standardlayer Name abfragen |
| icd_stdpinlay | IC Design Setup Standardpinlayer |
| icd_vecttext | IC Design Text vektorisieren |
Die nachfolgend aufgelisteten Systemfunktionen sind dem Aufruftyp CED zugeordnet, d.h. diese Funktionen können im Chipeditor aufgerufen werden:
| ced_asklayer | CED Lagenauswahl |
| ced_delelem | CED Element löschen |
| ced_drawelem | CED Elementanzeige aktualisieren |
| ced_elemangchg | CED Elementwinkel ändern |
| ced_elemfixchg | CED Element fixiert-Flag ändern |
| ced_elemgrpchg | CED Element Gruppenflag ändern |
| ced_elemlaychg | CED Elementlage ändern |
| ced_elemmirrchg | CED Elementspiegelung ändern |
| ced_elemposchg | CED Elementposition ändern |
| ced_elemsizechg | CED Elementgröße ändern |
| ced_getlaydispmode | CED Lagenanzeigemodus abfragen |
| ced_getmincon | CED Mincon-Funktion abfragen |
| ced_getpathwidth | CED Bahnenstandardbreiten abfragen |
| ced_getpickpreflay | CED Vorzugslage abfragen |
| ced_getwidedraw | CED Breitendarstellung abfragen |
| ced_groupselect | CED Gruppenselektion |
| ced_highlnet | CED Highlight Netz ein/aus |
| ced_layergrpchg | CED Gruppenselektion nach Lage |
| ced_partaltmacro | CED Bauteilzellentyp ändern |
| ced_partnamechg | CED Bauteilname in Netzliste ändern |
| ced_pickelem | CED Element selektieren |
| ced_setlaydispmode | CED Lagenanzeigemodus setzen |
| ced_setmincon | CED Mincon-Funktion setzen |
| ced_setpathwidth | CED Bahnenstandardbreiten setzen |
| ced_setpickpreflay | CED Vorzugslage setzen |
| ced_setwidedraw | CED Breitendarstellung setzen |
| ced_storepart | CED Bauteil platzieren |
| ced_storepath | CED Bahn platzieren |
| ced_storepoly | CED Fläche platzieren |
| ced_storetext | CED Text platzieren |
| ced_storeuref | CED Via bzw. Subbauteil platzieren |
In diesem Abschnitt werden (in alphabetischer Reihenfolge) die in der Bartels User Language definierten Standard-Systemfunktionen beschrieben. Beachten Sie bitte die Konventionen zur Funktionsbeschreibung in Anhang C.1.
int abs( // Berechnungsergebnis
int; // Eingabewert
);
Der Rückgabewert der Funktion abs entspricht dem Absolutwert des übergebenen Ganzzahlwertes.
double acos( // Berechnungsergebnis (STD3)
double [-1.0,1.0]; // Cosinus-Wert
);
Der Rückgabewert der Funktion acos entspricht dem Arcuscosinus des übergebenen Gleitkommawertes. Der Winkel wird in Bogenmaßeinheiten angegeben.
int angclass( // Winkelklasse
double; // Winkel (STD3)
);
Der Rückgabewert der Funktion angclass gibt die Winkelklasse eines Winkels an. Mögliche Klassenwerte sind 0 für 0 Grad Winkel, 1 für einen 90 Grad Winkel, 2 für einen 180 Grad Winkel, 3 für einen 270 Grad Winkel und (-1) für andere Winkel. Der übergebene Gleitkommawert wird als Bogenmaßangabe interpretiert.
int arylength( // Feldlänge
void; // Array beliebigen Typs
);
Der Rückgabewert der Funktion arylength entspricht der Länge des übergebenen Arrays.
double asin( // Berechnungsergebnis (STD3)
double [-1.0,1.0]; // Sinus-Wert
);
Der Rückgabewert der Funktion asin entspricht dem Arcussinus des übergebenen Gleitkommawertes. Der Winkel wird in Bogenmaßeinheiten angegeben.
int askcoord( // Status
& double; // Rückgabe X-Koordinate (STD2)
& double; // Rückgabe Y-Koordinate (STD2)
int [0,1]; // Eingabemodus:
// 0 = Koordinaten relativ zu letzter Position
// 1 = Koordinaten absolut
);
Die Funktion askcoord aktiviert einen Dialog zur Abfrage von X- und Y-Koordinatenwerten. Der Eingabemodus gibt an, ob Relativkoordinaten () oder Absolutkoordinaten () abgefragt werden sollen. Die eingegebenen Koordinatenwerte werden über die ersten beiden Funktionsparameter an den Aufrufer zurückgegeben. Bei der Abfrage von Absolutkoordinaten fungieren diese Parameter auch als Eingabeparameter für voreingestellte Koordinatenwerte. Der Funktionsrückgabewert ist Null bei erfolgreicher Koordinateneingabe oder ungleich Null wenn die Koordinateneingabe abgebrochen wurde.
int askdbl( // Status
& double; // Rückgabe Gleitkommawert
string; // Eingabeaufforderung
int; // Maximale Eingabelänge
);
Die Funktion askdbl fordert den Benutzer in der Eingabezeile mit der übergebenen Promptzeichenkette zur Eingabe eines Gleitkommawertes auf. Der vom Benutzer eingegebene Wert wird im Rückgabeparameter zurückgegeben. Ein Funktionsrückgabewert ungleich Null gibt an, dass kein gültiger Gleitkommawert eingegeben wurde.
int askdist( // Status:
// -1 = Eingabe ungültig/abgebrochen
// 0 = Gültige Distanzwerteingabe
// 1 = Gültige Distanzwerteingabe,
// Eckpunktschaltfläche gedrückt
& double; // Rückgabe Distanzwert
string; // Eingabeaufforderung
int [0,15]; // Eingabekontrolle:
// 1 = Negative Werte zulässig
// 2 = Kreisbögen zulässig
// 4 = Eingabeaufferdoerung für Zeichenketten
// 8 = Schaltfläche für runde Ecken
);
Die Funktion askdist fordert den Benutzer in der Eingabezeile mit der übergebenen Promptzeichenkette zur Eingabe eines Distanzwertes auf. Der vom Benutzer eingegebene Wert wird im Default-User-Einheitensystem interpretiert und im Rückgabeparameter in der Einheit Meter zurückgegeben. Der dritte Parameter dient der Konfiguration der zulässigen Eingaben. Der Funktionsrückgabewert ergibt sich zu Null wenn ein gültiger Distanzwert eingegeben wurde, 1 bei erfolgreicher Distanzwerteingabe mit gedrückter Eckpunktschaltfläche, oder (-1) wenn die kein gütiger Wert eingegeben bzw. die Eingabe abgebrochen wurde.
int askint( // Status
& int; // Rückgabe Ganzzahlwert
string; // Eingabeaufforderung
int; // Maximale Eingabelänge
);
Die Funktion askint fordert den Benutzer in der Eingabezeile mit der übergebenen Promptzeichenkette zur Eingabe eines Ganzzahlwertes auf. Der vom Benutzer eingegebene Wert wird im Rückgabeparameter zurückgegeben. Ein Funktionsrückgabewert ungleich Null gibt an, dass keine gültiger Ganzzahlwert eingegeben wurde.
string askstr( // Zeichenkette
string; // Eingabeaufforderung
int; // Maximale Eingabelänge
);
Die Funktion askstr fordert den Benutzer in der Eingabezeile mit der übergebenen Promptzeichenkette zur Eingabe einer Zeichenkette auf. Der Rückgabewert dieser Funktion entspricht der vom Benutzer eingegebenen Zeichenkette.
double atan( // Berechnungsergebnis
double; // Winkel (STD3)
);
Der Rückgabewert der Funktion atan entspricht dem Arcustangens des übergebenen Gleitkommawertes. Der Winkel wird in Bogenmaßeinheiten angegeben.
double atan2( // Berechnungsergebnis (STD3)
double; // Y-Koordinate
double; // X-Koordinate
);
Der Rückgabewert der Funktion atan2 entspricht dem Winkel, den die Ursprungshalbgerade durch den angegebenen Punkt mit der positiven X-Achse einschließt. Der Winkel wird in Bogenmaßeinheiten angegeben.
double atof( // Gleitkommawert
string; // Zeichenkette
);
Der Rückgabewert der Funktion atof entspricht dem Gleitkommawert, der in der übergebenen Zeichenkette in ASCII-Darstellung angegeben ist.
int atoi( // Ganzzahlwert
string; // Zeichenkette
);
Der Rückgabewert der Funktion atoi entspricht dem Ganzzahlwert, der in der übergebenen Zeichenkette in ASCII-Darstellung angegeben ist.
! prefix save else load, empty if std. message
int bae_askddbename( // Status
& string; // Rückgabe Elementname
string; // Dateiname
int ]0,[; // Elementklasse (STD1)
string; // Eingabeaufforderung
// Leerstring: Standarddateidialog
// !-Präfix: Dateisicherungsdialog
// sonst: Dateiladedialog
);
Die Funktion bae_askddbename erlaubt dem Benutzer einen DDB-Datei Elementnamen wahlweise mit der Maus in einem Popupauswahlfenster aus der Liste der vorhandenen Elemente zu selektieren oder per Tastatur in der Eingabezeile einzugeben. Wird für die Eingabeaufforderung ein Leerstring angegeben, so wird der Standardprompt für DDB-Elementnamensabfragen verwendet. Über den ersten Parameter kann ein Name übergeben werden, der in der Abfrage als Vorauswahl erscheint, d.h. wenn keine Vorauswahl möglich bzw. erlaubt ist, dann ist ein Leerstring zu übergeben. Der Rückgabewert ist ungleich Null, wenn kein gültiges Element gewählt wurde.
int bae_askddbfname( // Status
& string; // Rückgabe Dateiname
int [0,3]; // Modus Dateinamensdialog (Bitmuster):
// 1 = Prüfen, ob Datei existiert
// 2 = angegebener Dateiname ist Default
string; // Eingabeaufforderung
// Leerstring: Standarddateidialog
// !-Präfix: Dateisicherungsdialog
// sonst: Dateiladedialog
);
Die Funktion
bae_askddbfname erlaubt dem Benutzer einen DDB-Dateinamen wahlweise mit der Maus in einem Popupauswahlfenster aus der Liste der vorhandenen DDB-Dateien zu selektieren oder per Tastatur in der Eingabezeile einzugeben. Wird für die Eingabeaufforderung ein Leerstring angegeben, dann wird der BAE-Standardprompt für DDB-Dateinamensabfragen verwendet. Ist das erste Zeichen der Eingabeaufforderung ein Ausrufezeichen
(!), dann wird dieses ausgeblendet, und unter Windows wird im Dateiabfragedialog anstelle des Bestätigungsbuttons
der Button
angezeigt. Der Rückgabewert ist ungleich Null, wenn kein gültiger DDB-Dateiname gewählt wurde bzw. die Existenzprüfung auf eins gesetzt ist und die angegebene Datei nicht existiert.
int bae_askdirname( // Status
& string; // Rückgabe Dateiverzeichnisname
string; // Startverzeichnispfad
string; // Eingabeaufforderung
);
Die Funktion bae_askdirname erlaubt dem Benutzer einen Dateiverzeichnisnamen wahlweise mit der Maus in einem Popupauswahlfenster aus der Liste der vorhandenen Verzeichnisse zu selektieren oder per Tastatur in der Eingabezeile einzugeben. Der Startverzeichnispfad gibt das Verzeichnis an ab dem im Popupauswahlfenster Unterverzeichnisse angezeigt werden. Wird für die Eingabeaufforderung ein Leerstring angegeben, so wird der Standardprompt für Dateiverzeichnisabfragen verwendet. Der Rückgabewert ist ungleich Null, wenn kein gültiger Verzeichnisname gewählt wurde.
int bae_askfilename( // Status
& string; // Rückgabe Dateiname
string; // Dateinamensendung
string; // Eingabeaufforderung
// Leerstring: Standarddateidialog
// !-Präfix: Dateisicherungsdialog
// sonst: Dateiladedialog
);
Die Funktion bae_askfilename aktiviert einen Dialog zur Dateinamensabfrage. Über den Parameter für die Dateinamensendung kann ein Dateinamensfilter gesetzt werden. Ein Leerstring bewirkt die Anzeige aller verfügbaren Dateien. Bei Angabe einer Dateinamenserweiterung (z.B..ddb,.dat,.txt,.,.*, usw.) werden nur die Dateien mit der angegebenen Endung angezeigt. Bei Eingabe eines Minuszeichens (-) für die Dateinamenserweiterung werden alle Dateien mit BAE-System- bzw. Datendateiendungen (.ass,.con,.ddb,.def,.exe,.fre,.ulcund.usf) aus dem Dateinamensmenü ausgeblendet (dieser Mechanismus eignet sich insbesondere für Ausgabe- bzw. Plotdateiabfragen, bei welchen keine System-, Bibliotheks- oder Projektdateien selektiert werden dürfen). Wird für die Eingabeaufforderung ein Leerstring angegeben, dann wird der BAE-Standardprompt für Dateinamensabfragen verwendet. Ist das erste Zeichen der Eingabeaufforderung ein Ausrufezeichen (!), dann wird dieses ausgeblendet, und unter Windows wird im Dateiabfragedialog anstelle des Bestätigungsbuttons der Button angezeigt. Der Rückgabewert ist ungleich Null, wenn kein gültiger Dateiname gewählt wurde.
int bae_askmenu( // Rückgabe selektierter Menüeintrag, (0..49)
// oder (-1) bei Abbruch der Menüauswahl
int [1,50]; // Anzahl Menüeinträge
string; // Menütext erster Menüeintrag
[] // Weitere Menütexte
);
Die Funktion bae_askmenu ermöglicht die Definition und Aktivierung eines anwenderspezifischen Menüs mit mausselektierbaren Menüeinträgen. Der Rückgabewert gibt den vom Benutzer gewählten Menüeintrag an oder ergibt sich zu (-1), wenn die Menüauswahl abgebrochen wurde. Die Nummerierung der Menüeinträge beginnt bei Null.
Funktion bae_defmenusel.
int bae_askname( // Status
& string; // Rückgabe selektierter Name
string; // Eingabeaufforderung (oder Leerstring)
int; // Maximale Eingabestringlänge
);
Die Funktion bae_askname aktiviert einen Dialog zur Selektion eines Namens aus der aktuell mit bae_nameadd definierten Namensliste. Über den zweiten Funktionsparameter kann eine anwendungsspezifische Eingabeaufforderung angegeben werden. Wird hierfür ein Leerstring angegeben, dann benutzt bae_askname einen vordefinierten Standardprompt. Der dritte Funktionsparameter definiert die maximal zulässige Stringlänge für die Benutzereingabe. Bei erfolgter Namensauswahl wird der selektierte Name im ersten Funktionsparameter zurückgegeben. Der Funktionsrückgabewert ergibt ist Null bei erfolgreicher Namensselektion oder ungleich Null wenn die Funktion ohne Namensselektion abgebrochen wurde.
Funktionen bae_nameadd, bae_nameclr, bae_nameget.
int bae_asksymname( // Status
& string; // Rückgabe Elementname
& string; // Rückgabe DDB-Bibliotheksdateiname
int ]0,[; // Datenbankklasse (STD1)
string; // Bibliotheksverzeichnis
string; // Standard-Bibliotheksdateiname
string; // Standard-Symbol-/Elementname
);
Die Funktion bae_asksymname aktiviert einen Dialog zur Auswahl eines Bibliothekselements der angegeben Datenbankklasse aus einer selektierbaren Bibliotheksdatei. Der Funktionsrückgabewert ist Null bei erfolgreicher Auswahl oder ungleich Null wenn der Anwender den Dialog ohne gültige Elementauswahl beendet.
int bae_callmenu( // Status
int [0,9999]; // Menüfunktion (STD4)
);
Die Funktion bae_callmenu aktiviert die angegebene Menüfunktion. Der Rückgabewert ist ungleich Null, wenn bei der Ausführung der Menüfunktion ein Fehler aufgetreten ist oder eine ungültige bzw. unbekannte Menüfunktion spezifiziert wurde.
void bae_charsize(
& double; // Rückgabe Zeichenbreite (Pixelanzahl)
& double; // Rückgabe Zeichenhöhe (Pixelanzahl)
);
Die Funktion bae_charsize gibt in den beiden Parametern die aktuell im AutoEngineer eingestellte Text- bzw. Zeichengröße, d.h. die Pixelanzahl pro Zeichen in X- bzw. Y-Richtung zurück.
void bae_cleardistpoly(
);
Die Funktion bae_cleardistpoly löscht das mit bae_storedistpoly erzeugte Distanzabfragepolygon.
Funktion bae_storedistpoly.
void bae_clearpoints(
);
Die Funktion bae_clearpoints löscht die zum Aufbau von Polygonen verwendete interne Punktliste. Dies ist prinzipiell vor dem ersten Aufruf von bae_storepoint zum Aufbau einer Punktliste notwendig um evtl. vorhandene alte Punkte zu löschen.
Funktionen bae_getpolyrange, bae_storedistpoly, bae_storepoint.
void bae_clriactqueue(
);
Die Funktion bae_clriactqueue löscht die in der Interaktionsqueue gespeicherten Vorgaben. Die Interaktionsqueue dient dazu, die Benutzereingaben für die über die Funktion bae_callmenu aufgerufenen Menüfunktionen ganz oder teilweise vorzugeben.
int bae_crossarcarc( // Anzahl Schnittpunkte
double; // Kreisbogen 1 Start X-Koordinate (STD2)
double; // Kreisbogen 1 Start Y-Koordinate (STD2)
double; // Kreisbogen 1 Mittelpunkt X-Koordinate (STD2)
double; // Kreisbogen 1 Mittelpunkt Y-Koordinate (STD2)
int [1,2]; // Kreisbogen 1 Mittelpunkt Typ (STD15)
double; // Kreisbogen 1 Endpunkt X-Koordinate (STD2)
double; // Kreisbogen 1 Endpunkt Y-Koordinate (STD2)
double; // Kreisbogen 2 Startpunkt X-Koordinate (STD2)
double; // Kreisbogen 2 Startpunkt Y-Koordinate (STD2)
double; // Kreisbogen 2 Mittelpunkt X-Koordinate (STD2)
double; // Kreisbogen 2 Mittelpunkt Y-Koordinate (STD2)
int [1,2]; // Kreisbogen 2 Mittelpunkt Typ (STD15)
double; // Kreisbogen 2 Endpunkt X-Koordinate (STD2)
double; // Kreisbogen 2 Endpunkt Y-Koordinate (STD2)
& double; // Schnittpunkt 1 X-Koordinate (STD2)
& double; // Schnittpunkt 1 Y-Koordinate (STD2)
& double; // Schnittpunkt 2 X-Koordinate (STD2)
& double; // Schnittpunkt 2 Y-Koordinate (STD2)
);
Die Funktion bae_crossarcarc führt eine Schnittpunktbestimmung für die beiden angegebenen Kreisbögen durch. Der Funktionsrückgabewert gibt die Anzahl der Schnittpunkte an (0, 1 oder 2). Die ermittelten Schnittpunktkoordinaten werden ggf. in den entsprechenden Funktionsparametern zurückgegeben.
Funktionen bae_crosslineline, bae_crosslinepoly, bae_crosssegarc, bae_crosssegseg.
int bae_crosslineline( // Schnittflag
double; // Linie 1 Start X-Koordinate (STD2)
double; // Linie 1 Start Y-Koordinate (STD2)
double; // Linie 1 Endpunkt X-Koordinate (STD2)
double; // Linie 1 Endpunkt Y-Koordinate (STD2)
double ]0.0,[; // Linie 1 Breite (STD2)
double; // Linie 2 Start X-Koordinate (STD2)
double; // Linie 2 Start Y-Koordinate (STD2)
double; // Linie 2 Endpunkt X-Koordinate (STD2)
double; // Linie 2 Endpunkt Y-Koordinate (STD2)
double ]0.0,[; // Linie 2 Breite (STD2)
);
Die Funktion bae_crosslineline prüft ob sich die beiden angegebenen Liniensegmente schneiden. Der Funktionsrückgabewert ist 1 wenn sich die Segmente schneiden oder Null andernfalls.
Funktionen bae_crossarcarc, bae_crosslinepoly, bae_crosssegarc, bae_crosssegseg.
int bae_crosslinepoly( // Schnittflag
double; // Linie Start X-Koordinate (STD2)
double; // Linie Start Y-Koordinate (STD2)
double; // Linie Endpunkt X-Koordinate (STD2)
double; // Linie Endpunkt Y-Koordinate (STD2)
double ]0.0,[; // Linie Breite (STD2)
);
Die Funktion bae_crosslinepoly prüft ob das angegebene Liniensegmente das mit bae_storepoint aktuell erzeugte Polygon schneidet. schneiden. Der Funktionsrückgabewert ist 1 wenn sich das Liniensegmente mit dem Polygon schneidet oder Null andernfalls.
Funktionen bae_crossarcarc, bae_crosslineline, bae_crosssegarc, bae_crosssegseg, bae_storepoint.
int bae_crosssegarc( // Anzahl Schnittpunkte
double; // Segment Start X-Koordinate (STD2)
double; // Segment Start Y-Koordinate (STD2)
double; // Segment Endpunkt X-Koordinate (STD2)
double; // Segment Endpunkt Y-Koordinate (STD2)
double; // Kreisbogen Start X-Koordinate (STD2)
double; // Kreisbogen Start Y-Koordinate (STD2)
double; // Kreisbogen Mittelpunkt X-Koordinate (STD2)
double; // Kreisbogen Mittelpunkt Y-Koordinate (STD2)
int [1,2]; // Kreisbogen Mittelpunkt Typ (STD15)
double; // Kreisbogen Endpunkt X-Koordinate (STD2)
double; // Kreisbogen Endpunkt Y-Koordinate (STD2)
int [0,1]; // Schnittpunktprioritätsflag
& double; // Schnittpunkt 1 X-Koordinate (STD2)
& double; // Schnittpunkt 1 Y-Koordinate (STD2)
& double; // Schnittpunkt 2 X-Koordinate (STD2)
& double; // Schnittpunkt 2 Y-Koordinate (STD2)
);
Die Funktion bae_crosssegarc führt eine Schnittpunktbestimmung für das angegebene Segment und den angegebenen Kreisbogen durch. Der Funktionsrückgabewert gibt die Anzahl der Schnittpunkte an (0, 1 oder 2). Die ermittelten Schnittpunktkoordinaten werden ggf. in den entsprechenden Funktionsparametern zurückgegeben.
Funktionen bae_crossarcarc, bae_crosslineline, bae_crosslinepoly, bae_crosssegseg.
int bae_crosssegseg( // Schnittflag
int [0,1]; // Geradenvergleichsflag
double; // Linie 1 Start X-Koordinate (STD2)
double; // Linie 1 Start Y-Koordinate (STD2)
double; // Linie 1 Endpunkt X-Koordinate (STD2)
double; // Linie 1 Endpunkt Y-Koordinate (STD2)
double; // Linie 2 Start X-Koordinate (STD2)
double; // Linie 2 Start Y-Koordinate (STD2)
double; // Linie 2 Endpunkt X-Koordinate (STD2)
double; // Linie 2 Endpunkt Y-Koordinate (STD2)
& double; // Schnittpunkt X-Koordinate (STD2)
& double; // Schnittpunkt Y-Koordinate (STD2)
);
Die Funktion bae_crosssegseg prüft ob sich die beiden angegebenen Segmente bzw. Geraden schneiden. Der erste Funktionsparameter gibt an ob ein Geraden- oder ein Streckenvergleich durchgeführt werden soll. Der Funktionsrückgabewert ist 1 wenn ein Schnittpunkt ermittelt wurde oder Null andernfalls. Wenn ein Schnittpunkt ermittelt werden konnte, dann werden dessen Koordinaten über die letzten beiden Funktionsparameter zurückgegeben.
Funktionen bae_crossarcarc, bae_crosslineline, bae_crosslinepoly, bae_crosssegarc.
int bae_dashpolyline( // Status
int; // Polygonstrichelungsmodus:
// 0 = durchgezogene Linie (keine Strichelung)
// 1 = gestrichelte Linie
// 2 = gepunktete Linie
// 3 = gestrichelte/gepunktete Linie
double ]0.0,[; // Polygonbasisstrichlänge (STD2)
double ]-0.5,0.5[; // Relativer Polygonstrichabstand
* int; // Polygonlinienscanfunktion
* int; // Polygonbogenscanfunktion
);
Die Funktion bae_dashpolyline vektorisiert das zuvor mit bae_storepoint gespeicherte interne Polygon unter Berücksichtigung der spezifizierten Strichelungsparameter. Die Polygonlinienscanfunktion und die Polygonbogenscanfunktion werden jeweils automatisch für die im Polygon enthaltenen Linien bzw. Bögen aufgerufen. Der Funktionsrückgabewert ist Null bei erfolgreicher Vektorisierung oder ungleich Null im Fehlerfall bzw. wenn die Vektorisierung abgebrochen wurde.Polygonlinienscanfunktion
int polylinescanfuncname( double xs, // Linienstartpunkt X-Koordinate (STD2) double ys, // Linienstartpunkt Y-Koordinate (STD2) double xe, // Linienendpunkt X-Koordinate (STD2) double ye // Linienendpunkt Y-Koordinate (STD2) ) { // Polygon line scan function statements : return(status); }Die Polygonlinienscanfunktion sollte den Wert Null zurückgeben wenn die Abarbeitung erfolgreich war. Im anderen Fall (bei Fehlern bzw. zum Abbruch des Scans) sollte ein Wert ungleich Null zurückgegeben werden.
Polygonbogenscanfunktion
int polylinescanfuncname( double xs, // Bogenstartpunkt X-Koordinate (STD2) double ys, // Bogenstartpunkt Y-Koordinate (STD2) double xe, // Bogenendpunkt X-Koordinate (STD2) double ye // Bogenendpunkt Y-Koordinate (STD2) double xc, // Bogenmittelpunkt X-Koordinate (STD2) double yc // Bogenmittelpunkt Y-Koordinate (STD2) int cwflag; // Bogendrehrichtung: // 0 = Bogen im Gegenuhrzeigersinn // sonst = Bogen im Uhrzeigersinn ) { // Polygon arc scan function statements : return(status); }Die Polygonbogenscanfunktion sollte den Wert Null zurückgeben wenn die Abarbeitung erfolgreich war. Im anderen Fall (bei Fehlern bzw. zum Abbruch des Scans) sollte ein Wert ungleich Null zurückgegeben werden.
Funktionen bae_clearpoints, bae_storepoint.
int bae_deffuncprog( // Status
int [1,128]; // Funktionstastennummer
string; // User Language-Programmname oder
// # gefolgt von Menünummer (STD4)
);
Die Funktion bae_deffuncprog ordnet einer Funktionstaste das namentlich angegebene User Language-Programm bzw. die numerisch spezifizierte BAE-Menüfunktion zu. Durch die Spezifikation eines Leerstrings für den Programmnamen kann die aktuelle Zuordnung zurückgesetzt werden. Der Rückgabewert ist ungleich Null, wenn ungültige Parameter übergeben wurden, oder wenn die zurückzusetzende Funktionstaste nicht belegt ist.
Funktionen bae_getfuncprog, bae_resetmenuprog.
int bae_defkeyprog( // Status
int; // Tastenzeichen
string; // User Language-Programmname oder
// # gefolgt von Menünummer (STD4)
);
Die Funktion bae_defkeyprog ordnet einer Standardtaste das namentlich angegebene User Language-Programm bzw. die numerisch spezifizierte BAE-Menüfunktion zu. Durch die Spezifikation eines Leerstrings für den Programmnamen kann die aktuelle Zuordnung zurückgesetzt werden. Der Rückgabewert ist ungleich Null, wenn ungültige Parameter übergeben wurden, oder wenn die zurückzusetzende Standardtaste nicht belegt ist.
Funktionen bae_getkeyprog, bae_resetmenuprog.
int bae_defmenu( // Status
int [0,999]; // Menücode
int [0,999]; // Menübereichscode:
// 1 = Hauptmenü
// 101 = erstes Untermenü
// 102 = zweites Untermenü
// : = : Untermenü
);
Die Funktion bae_defmenu startet die Definition eines Standardmenüs im aktuell aktiven BAE-Modul. Der Rückgabewert der Funktion bae_defmenu ist (-1), wenn ein Fehler aufgetreten ist oder Null andernfalls. Im Anschluss an den Aufruf der Funktion bae_defmenu sollten durch wiederholten Aufruf der Funktion bae_defmenutext die einzelnen Menüeinträge definiert werden. Die mit bae_defmenu eingeleitete Menüdefinition muss durch einen Aufruf der Funktion bae_endmenu beendet werden. Mit der Funktion bae_resetmenuprog können sämtliche Menübelegungen wieder zurückgesetzt werden.
Funktionen bae_defmenuprog, bae_defmenutext, bae_endmenu, bae_redefmenu, bae_resetmenuprog.
int bae_defmenuprog( // Selectionscode or (-1) on error
int [0,999]; // Menünummer
int [0,99]; // Menüzeile
string; // Menütext
string; // User Language-Programmname oder
// # gefolgt von Menünummer (STD4)
int; // Menüeintrag Bearbeitungsschlüssel:
// 8000000h = immer aktivierbar
// 7FFFFFFh = für jeden Elementtyp
// aktivierbar
// sonstige = (kombinierter)
// DDB-Klassen-Schlüssel
);
Die Funktion bae_defmenuprog ordnet einem Menüeintrag den spezifizierten Menütext sowie das namentlich angegebene User Language-Programm bzw. die numerisch spezifizierte BAE-Menüfunktion zu. Die Menünummer gibt die Nummer des Hauptmenüs an, die Menüzeile die Position im zugehörigen Submenü. Durch die Spezifikation eines Leerstrings für den Programmnamen kann die aktuelle Zuordnung zurückgesetzt werden. Der Bearbeitungsschlüssel dient der Konfiguration von sogenannten Ghostmenüs. Hierfür ist ein kodierter Integerwert einzutragen, wie er mit den Funktionen bae_getclassbitfield oder bae_getmenubitfield ermittelt bzw. definiert werden kann (im Zweifelsfall empfiehlt sich die Verwendung des Hexadezimalwertes 80000000h, um sicherzustellen, dass die Funktion immer aktivierbar ist). Der Rückgabewert der Funktion bae_defmenuprog ist ungleich Null, wenn ungültige Parameter übergeben wurden, oder wenn der zurückzusetzende Menüeintrag nicht belegt ist.
Funktionen bae_getclassbitfield, bae_getmenubitfield, bae_getmenuprog, bae_getmenutext, bae_redefmenu, bae_resetmenuprog.
void bae_defmenusel(
int [-1,29]; // Menüindex
// oder (-1) für Selektionstextspeicher
);
Die Funktion bae_defmenusel setzt die Vorauswahl bzw. Selektionsanzeige für den nächsten Aufruf von bae_askmenu. Damit lässt sich in Auswahlmenüs die aktuell selektierte Option kennzeichnen. In den BAE-Windowsversionen erfolgt die Selektionsmarkierung durch ein Häkchen, in den Motifversionen durch Grauunterlegung und in den DOS-Versionen bzw. Seitenmenükonfigurationen durch Vorauswahl des über den Funktionsparameter spezifizierten Menüpunkts. Die Anzeige bzw. Auswahl ist nur für den nächsten bae_askmenu-Aufruf gültig, d.h. nach dem bae_askmenu-Aufruf ist die Vorauswahl zurügesetzt und ist nach Bedarf mit bae_defmenusel neu zu setzen.
Funktion bae_askmenu.
int bae_defmenutext( // Status
int [0,99]; // Menüzeile
string; // Menütext
int; // Menüeintrag Bearbeitungsschlüssel:
// 8000000h = immer aktivierbar
// 7FFFFFFh = für jeden Elementtyp
// aktivierbar
// sonstige = (kombinierter)
// DDB-Klassen-Schlüssel
);
Die Funktion bae_defmenutext kann im Anschluss an den Aufruf einer der Funktionen bae_defmenu oder bae_defselmenu wiederholt ausgeführt werden, um an der jeweils angegebenen Menüzeile der aktuellen Menüdefinition den spezifizierten Menütext einzutragen. Ist das erste Zeichen des Menütexts ein Prozentzeichen (%), dann wird vor dem zu definierenden Pulldownmenüeintrag eine Menütrennzeile eingefügt. Das kommerzielle Und-Zeichen&dient der Definition von sogenannten Menübeschleunigern in Pulldownmenüs. Das auf das&-Zeichen folgende Zeichen definiert dabei eine Taste zur schnellen Selektion des Menüeintrags über die Tastatur. Der Bearbeitungsschlüssel dient der Konfiguration von sogenannten Ghostmenüs. Hierfür ist ein kodierter Integerwert einzutragen, wie er mit den Funktionen bae_getclassbitfield oder bae_getmenubitfield ermittelt bzw. definiert werden kann (im Zweifelsfall empfiehlt sich die Verwendung des Hexadezimalwertes 80000000h, um sicherzustellen, dass die Funktion immer aktivierbar ist). Der Funktionsrückgabewert ergibt sich zu (-1), wenn ein Fehler aufgetreten ist oder zu Null andernfalls. Mit der Funktion bae_resetmenuprog können sämtliche Menübelegungen wieder zurückgesetzt werden.
Funktionen bae_defmenu, bae_defselmenu, bae_getclassbitfield, bae_getmenubitfield, bae_plainmenutext, bae_redefmenu, bae_resetmenuprog.
int bae_defselmenu( // Status
int [0,999]; // Menücode
int [0,999]; // Menübereichscode:
// 1 = Hauptmenü
// 101 = erstes Untermenü
// 102 = zweites Untermenü
// : = : Untermenü
int [0,99]; // Menüstartzeilennummer
);
Die Funktion bae_defselmenu startet die Definition eines Untermenüs im aktuell aktiven BAE-Modul. Der Rückgabewert der Funktion bae_defselmenu ist (-1), wenn ein Fehler aufgetreten ist oder Null andernfalls. Im Anschluss an den Aufruf der Funktion bae_defselmenu sollten durch wiederholten Aufruf der Funktion bae_defmenutext die einzelnen Menüeinträge definiert werden. Die mit bae_defselmenu eingeleitete Menüdefinition muss durch einen Aufruf der Funktion bae_endmenu beendet werden. Mit der Funktion bae_resetmenuprog können sämtliche Menübelegungen wieder zurückgesetzt werden.
Funktionen bae_defmenuprog, bae_defmenutext, bae_endmenu, bae_redefmenu, bae_resetmenuprog.
int bae_dialaddcontrol( // Dialogelementindex oder (-1) im Fehlerfall
int [0,[; // Parametertyp (STD5)
int; // Minimum int-Parameterwert
int; // Maximum int-Parameterwert
int; // Vorgabe int-Parameterwert
double; // Minimum double-Parameterwert
double; // Maximum double-Parameterwert
double; // Vorgabe double-Parameterwert
string; // Vorgabe string-Parameterwert
int [0,[; // Maximallänge string-Parameterwert
double; // Dialogelement X-Position [character-Einheiten]
double; // Dialogelement Y-Position [character-Einheiten]
double; // Dialogelement Dimension [character-Einheiten]
string; // Parameterbezeichnung/Eingabeaufforderung
);
Die Funktion bae_dialaddcontrol definiert ein Dialogelement für den angegebenen Parametertyp. Das Dialogelement wird im nachfolgend mit der Funktion bae_dialaskparams aktivierten Dialog an den angegebenen Koordinaten und in der angegebenen Größe angezeigt und mit dem über den Funktionsparameter für die Parameterbezeichnung spezifierten Text nach Bedarf beschriftet. Die Parameterwertvorgaben für das neue Dialogelement sind über die dem angegebenen Parametertyp entsprechenden Funktionsparameter zu übergeben. Das Funktioneergebnis ergibt sich zu (-1) wenn die Generierung des Dialogelements fehlschlägt. Bei erfolgreicher Generierung des Dialogelements wird ein nichtnegativer Dialogelementindex als Funktionsergebnis zurückgeliefert. Dieser Index ist als Selektionsparameter zur Auswahl des Dialogelements bei nachfolgenden Aufrufen der Funktionen bae_dialgetdata und bae_dialsetdata zu verwenden. Mit bae_dialaddcontrol erzeugte Dialogelemente sind bis zum nächsten Aufruf der Funktion bae_dialclr gültig bzw. verfügbar.
Funktionen bae_dialadvcontrol, bae_dialaskparams, bae_dialbmpalloc, bae_dialboxbufload, bae_dialboxbufstore, bae_dialclr, bae_dialgetdata, bae_dialsetdata.
int bae_dialadvcontrol( // Returns new dialog control index or (-1) on error
int [0,[; // Parametertyp (STD5)
int; // Minimum int-Parameterwert
int; // Maximum int-Parameterwert
int; // Vorgabe int-Parameterwert
double; // Minimum double-Parameterwert
double; // Maximum double-Parameterwert
double; // Vorgabe double-Parameterwert
string; // Vorgabe string-Parameterwert
int [0,[; // Maximallänge string-Parameterwert
double; // Dialogelement X-Position [character-Einheiten]
double; // Dialogelement Y-Position [character-Einheiten]
double; // Dialogelement Breite [character-Einheiten]
double; // Dialogelement Höhe [character-Einheiten]
string; // Parameterbezeichnung/Eingabeaufforderung
);
Die Funktion bae_dialadvcontrol definiert ein erweitertes Dialogelement (mit Elementhöhenangabe) für den angegebenen Parametertyp. Das Dialogelement wird im nachfolgend mit der Funktion bae_dialaskparams aktivierten Dialog an den angegebenen Koordinaten und in der angegebenen Breite und Höhe angezeigt und mit dem über den Funktionsparameter für die Parameterbezeichnung spezifierten Text nach Bedarf beschriftet. Die Parameterwertvorgaben für das neue Dialogelement sind über die dem angegebenen Parametertyp entsprechenden Funktionsparameter zu übergeben. Das Funktioneergebnis ergibt sich zu (-1) wenn die Generierung des Dialogelements fehlschlägt. Bei erfolgreicher Generierung des Dialogelements wird ein nichtnegativer Dialogelementindex als Funktionsergebnis zurückgeliefert. Dieser Index ist als Selektionsparameter zur Auswahl des Dialogelements bei nachfolgenden Aufrufen der Funktionen bae_dialgetdata und bae_dialsetdata zu verwenden. Mit bae_dialaddcontrol erzeugte Dialogelemente sind bis zum nächsten Aufruf der Funktion bae_dialclr gültig bzw. verfügbar.
Funktionen bae_dialaddcontrol, bae_dialaskparams, bae_dialbmpalloc, bae_dialboxbufload, bae_dialboxbufstore, bae_dialclr, bae_dialgetdata, bae_dialsetdata.
int bae_dialaskcall( // Positiver Aktionscode, oder
// ( 0) bei Betätigung von , oder
// (-1) bei Betätigung von oder Fehler
string; // Dialogtitel
int [0,3]; // Ausgabeeinheiten für Distanzabfragen:
// 0 = mm
// 1 = Inch
// 2 = mil
// 3 = um
double ]0.0,[; // Dialogbreite [character-Einheiten]
double ]0.0,[; // Dialoghöhe [character-Einheiten]
* int; // Listboxelement-Callbackfunktion
);
Die Funktion bae_dialaskcall aktiviert einen Dialog mit den über die Funktion bae_dialaddcontrol definierten Dialogelementen. In der Titelleiste des Dialogfensters wird der über den ersten Funktionsparameter angegebene Dialogtitel angezeigt. Die Größe des angezeigten Dialogfensters kann über die entsprechenden Funktionsparameter für die Dialogbreite und die Dialoghöhe gesteuert werden. Der Funktionsrückgabewert ergibt sich zu Null wenn die Dialogeingaben über den -Button bestätigt wurden. Bei Betätigung einer Schaltlfäche mit einem zugewiesenen positiven Aktionscode gibt bae_dialaskcall den entsprechenden Aktionscode zurück. Im Fehlerfall bzw. bei Betätigung des Buttons wird der Wert (-1) zurückgegeben. Im Anschluss an einen erfolgreichen Aufruf der Funktion bae_dialaskcall können die im Dialog gesetzten Parameterwerte mit der Funktion bae_dialgetdata abgefragt werden. Distanz- bzw. Längenangaben werden dabei automatisch entsprechend dem für die Ausgabeeinheiten spezifizierten Parameter der Funktion bae_dialaskcall angezeigt bzw. umgerechnet. Der letzte Parameter gestattet die Angabe einer Callbackfunktion die automatisch bei Selektion eines Elements einer im Dialog mit dem TypPA_MCALLBACKdefinierten Listbox aufgerufen wird.Listboxelement-Callbackfunktion
int callbackfuncname( int reason, // Grund für Callbackfunktionsaufruf int boxidx, // Dialog Index int itemidx, // Listenelement Index int itemid, // Listenelement Id string itemstr // Listenelement Text ) { // Verarbeitungsprogramm : return(errstat); }Der Rückgabewert der Callbackfunktion sollte Null sein bei erfolgreicher Abarbeitung. Im Fehlerfall sollte ein Wert ungleich Null zurückgegeben werden.
Funktionen bae_dialaddcontrol, bae_dialadvcontrol, bae_dialaskparams, bae_dialbmpalloc, bae_dialboxparam, bae_dialboxperm, bae_dialclr, bae_dialgetdata, bae_dialsetdata.
int bae_dialaskparams( // Positiver Aktionscode, oder
// ( 0) bei Betätigung von , oder
// (-1) bei Betätigung von oder Fehler
// (-2) bei Dialogdimensionsänderung
string; // Dialogtitel
int [0,3]; // Ausgabeeinheiten für Distanzabfragen:
// 0 = mm
// 1 = Inch
// 2 = mil
// 3 = um
double ]0.0,[; // Dialogbreite [character-Einheiten]
double ]0.0,[; // Dialoghöhe [character-Einheiten]
);
Die Funktion bae_dialaskparams aktiviert einen Dialog mit den über die Funktion bae_dialaddcontrol definierten Dialogelementen. In der Titelleiste des Dialogfensters wird der über den ersten Funktionsparameter angegebene Dialogtitel angezeigt. Die Größe des angezeigten Dialogfensters kann über die entsprechenden Funktionsparameter für die Dialogbreite und die Dialoghöhe gesteuert werden. Der Funktionsrückgabewert ergibt sich zu Null wenn die Dialogeingaben über den -Button bestätigt wurden. Bei Betätigung einer Schaltlfäche mit einem zugewiesenen positiven Aktionscode gibt bae_dialaskparams den entsprechenden Aktionscode zurück. Im Fehlerfall bzw. bei Betätigung des Buttons wird der Wert (-1) zurückgegeben. Bei einer Änderung der Dialoggröße; wird der Wert (-2) zurückgegeben. Im Anschluss an einen erfolgreichen Aufruf der Funktion bae_dialaskparams können die im Dialog gesetzten Parameterwerte mit der Funktion bae_dialgetdata abgefragt werden. Distanz- bzw. Längenangaben werden dabei automatisch entsprechend dem für die Ausgabeeinheiten spezifizierten Parameter der Funktion bae_dialaskparams angezeigt bzw. umgerechnet.
Funktionen bae_dialaddcontrol, bae_dialadvcontrol, bae_dialaskcall, bae_dialbmpalloc, bae_dialboxperm, bae_dialclr, bae_dialgetdata, bae_dialsetdata.
int bae_dialbmpalloc( // Nicht-negative Bitmap-Id oder (-1) im Fehlerfall
double ]0.0,[; // Gewünschte Bitmapbreite [character-Einheiten]
double ]0.0,[; // Gewünschte Bitmaphöhe [character-Einheiten]
int [2,31]; // Bitmap-Id
& int; // Erzeugte Bitmapbreite [Pixel]
& int; // Erzeugte Bitmaphöhe [Pixel]
);
Mit der Funktion bae_dialbmpalloc können Bitmaps mit den angegebenen Parametern in einer nachfolgend mit bae_dialaskparams zu aktivierenden Dialogbox angelegt werden. Der Funktionsrückgabewert ist (-1) bei fehlgeschlagener Bitmapgenerierung oder eine nicht-negative Bitmapidentifikationsnummer bei erfolgreicher Bitmapgenerierung (wobei dann auch die tatsächlich erzeugten Bitmapdimensionen über die entsprechenden Parameter zurückgegeben werden). Nach erfolgreicher Generierung der Bitmap kann diese mit der Funktion bae_popsetarea als Grafikausgabeeinheit für die Funktionen bae_popdrawtext und bae_popdrawpoly selektiert werden.
Funktionen bae_dialaddcontrol, bae_dialadvcontrol, bae_dialaskcall, bae_dialaskparams, bae_dialboxperm, bae_dialclr, bae_popdrawpoly, bae_popdrawtext, bae_popsetarea.
int bae_dialboxbufload( // Status
int [1,[; // Dialogbox Buffer-Id
);
Die Funktion bae_dialboxbufload dient dazu, zuvor mit bae_dialboxbufstore gespeicherte Dialogboxdefinition zu laden. Der Funktionsrückgabewert ist Null wenn der Ladevorgang erfolgreich war oder ungleich Null im Fehlerfall.
Funktionen bae_dialaddcontrol, bae_dialadvcontrol, bae_dialboxbufstore, bae_dialclr.
int bae_dialboxbufstore( // Dialogbox Id (>0) oder (-1) im Fehlerfall
);
Die Funktion bae_dialboxbufstore sichert die aktuellen Dialogboxdefinitionen in einem temporären Speicher. Der Funktionsrückgabewert ist ein positiver Integerwert zur Identifikation des benutzten Zwischenspeichers oder (-1) im Fehlerfall. Diese Identifikationsnummer ist in nachfolgenden bae_dialboxbufload zum Laden der Dialogboxdaten anzugeben.
Funktionen bae_dialaddcontrol, bae_dialadvcontrol, bae_dialboxbufload, bae_dialclr.
int bae_dialboxperm( // Positive Dialog-Id, oder
// (-1) wenn Dialoganzeige fehlgeschlagen, oder
// (-2) wenn maximale Dialoganzahl erreicht
string; // Dialogtitel
int [0,3]; // Ausgabeeinheiten für Distanzabfragen:
// 0 = mm
// 1 = Inch
// 2 = mil
// 3 = um
double ]0.0,[; // Dialogbreite [character-Einheiten]
double ]0.0,[; // Dialoghöhe [character-Einheiten]
);
Die Funktion bae_dialboxperm aktiviert einen eigenständigen ("modeless") Dialog mit den über die Funktion bae_dialaddcontrol definierten Dialogelementen. In der Titelleiste des Dialogfensters wird der über den ersten Funktionsparameter angegebene Dialogtitel angezeigt. Die Größe des angezeigten Dialogfensters kann über die entsprechenden Funktionsparameter für die Dialogbreite und die Dialoghöhe gesteuert werden. Bei erfolgreicher Generierung der Dialogbox gibt die Funktion die positive Identifikationsnummer für diesen Dialog zurück. Im Fehlerfall wird ein negativer Wert zurückgegeben. Im Anschluss an einen erfolgreichen Aufruf der Funktion bae_dialboxperm können (nach Aktivierung dieses Dialogs mit bae_dialsetcurrent) die im Dialog gesetzten Parameterwerte mit der Funktion bae_dialgetdata abgefragt werden. Distanz- bzw. Längenangaben werden dabei automatisch entsprechend dem für die Ausgabeeinheiten spezifizierten Parameter der Funktion bae_dialboxperm angezeigt bzw. umgerechnet.
Funktionen bae_dialaddcontrol, bae_dialadvcontrol, bae_dialaskcall, bae_dialaskparams, bae_dialbmpalloc, bae_dialclr, bae_dialgetdata, bae_dialsetcurrent, bae_dialsetdata.
int bae_dialclr( // Status
);
Die Funktion bae_dialclr löscht alle zuvor mit bae_dialaddcontrol erzeugten Dialogelemente. Der Funktionsrückgabewert ist ungleich Null, wenn Dialoge in der aktuellen BAE-Benutzeroberfläche nicht unterstützt werden. Es empfiehlt sich, diese Funktion vor der Neudefinition eines Dialogs auszuführen, um eventuell vorhandene Dialogelemente aus zuvor definierten Dialogen zuverlässig zu löschen. Das Funktionsergebnis sollte ebenfalls geprüft werden, damit bei fehlendem Dialogsupport auf andere interaktive Abfragemechanismen ausgewichen werden kann.
Funktionen bae_dialaddcontrol, bae_dialadvcontrol, bae_dialaskcall, bae_dialaskparams, bae_dialbmpalloc, bae_dialboxbufload, bae_dialboxbufstore, bae_dialboxperm, bae_dialgetdata, bae_dialsetdata.
int bae_dialgetdata( // Status
int [0,[; // Dialogelementindex
& int; // Dialogelement integer-Wert
& double; // Dialogelement double-Wert
& string; // Dialogelement string-Wert
);
Mit der Funktion bae_dialgetdata können nach einem erfolgreichen Aufruf der Funktion bae_dialaskparams, die vom Anwender gesetzten Dialogparameterwerte abgefragt werden. Die Auswahl des abzufragenden Dialogelements erfolgt durch Spezifikation des von bae_dialaddcontrol, gelieferten Dialogelementindex. Die Rückgabe des ermittelten Parameterwertes erfolgt über den Funktionsparameter, der dem Datentyp des abgefragten Dialogelements entspricht. Der Funktionsrückgabewert ist Null bei erfolgreicher Parameterabfrage bzw. ungleich Null bei fehlgeschlagener Abfrage.
Funktionen bae_dialaddcontrol, bae_dialadvcontrol, bae_dialaskparams, bae_dialclr, bae_dialsetdata.
double bae_dialgettextlen( // Rückgabe Textlänge [character-Einheiten]
int [0,[; // Dialogtexttyp bzw. Zeichensatztyp
string; // Dialogtextzeichenkette
);
Die Funktion bae_dialgettextlen ermittelt den Platzbedarf für den angegebenen Dialogtext.
int bae_dialsetcurrent( // Status
int [0,[; // Dialogbox-Id
);
Die Funktion bae_dialsetcurrent aktiviert die über die Identifikationsnummer angebebene (eigenständige) Dialogbox für nachfolgende Dialogboxfunktionen. Bei erfolgreicher Dialogauswahl ergibt sich der Funktionsrückgabewert zu Null. Bei fehlgeschlagener Dialogauswahl wird ein Wert ungleich Null zurückgegeben.#
Funktionen bae_dialaddcontrol, bae_dialadvcontrol, bae_dialaskcall, bae_dialaskparams, bae_dialbmpalloc, bae_dialboxperm, bae_dialclr, bae_dialgetdata, bae_dialsetdata.
int bae_dialsetdata( // Status
int [0,[; // Dialogelement Index
int [0,[; // Dialogelement Parametertyp (STD5)
int; // Dialogelement integer-Wert
double; // Dialogelement double-Wert
string; // Dialogelement string-Wert
);
Die Funktion bae_dialsetdata dient dazu, Parametertypen bzw. Parameterwerte für zuvor mit bae_dialaddcontrol definierte Dialogelemente zu setzen. Die Auswahl des zu ändernden Dialogelements erfolgt durch Spezifikation des von bae_dialaddcontrol, gelieferten Dialogelementindex. Der neue Parameterwert ist über den dem angegebenen Parametertyp entsprechenden Funktionsparameter zu übergeben. Der Funktionsrückgabewert ist Null bei erfolgreicher Änderung des Dialogelements bzw. ungleich Null im Fehlerfall.
Funktionen bae_dialaddcontrol, bae_dialadvcontrol, bae_dialaskparams, bae_dialclr, bae_dialgetdata.
int bae_endmainmenu( // Status
);
Die Funktion bae_endmainmenu beendet die im aktuell aktiven BAE-Modul mit der Funktion bae_redefmainmenu eingeleitete Neudefinition des Hauptmenüs. Der Rückgabewert der Funktion bae_endmainmenu ist (-1), wenn ein Fehler aufgetreten ist oder Null andernfalls. Mit der Funktion bae_resetmenuprog können sämtliche Menübelegungen wieder zurückgesetzt werden.
Funktionen bae_redefmainmenu, bae_resetmenuprog.
int bae_endmenu( // Status
);
Die Funktion bae_endmenu beendet die im aktuellen BAE-Modul mit einer der Funktionen bae_defmenu oder bae_defselmenu eingeleitete Menüdefinition. Der Rückgabewert der Funktion bae_endmenu ist (-1), wenn ein Fehler aufgetreten ist oder Null andernfalls. Mit der Funktion bae_resetmenuprog können sämtliche Menübelegungen wieder zurückgesetzt werden.
Funktionen bae_defmenu, bae_defselmenu, bae_resetmenuprog.
int bae_fontcharcnt( // Zeichenanzahl
);
Der Rückgabewert der Funktion bae_fontcharcnt entspricht der Anzahl der im aktuell geladenen Zeichensatz definierten Zeichen.
string bae_fontname( // Zeichensatzname
);
Der Rückgabewert der Funktion bae_fontname entspricht dem Namen des für das aktuell geladene AutoEngineer Planelement gültigen Zeichensatzes.
int bae_getactmenu( // Menüfunktion (STD4)
);
Der Rückgabewert der Funktion bae_getactmenu entspricht der im AutoEngineer aktuell aktiven Menüfunktion (STD4) oder (-1) wenn keine Menüfunktion abgearbeitet wird. Diese Funktion wird benötigt für Programme, die auf Tasten gelegt werden.
int bae_getanglelock( // Winkelfreigabe Flag (STD9)
);
Der Rückgabewert der Funktion bae_getanglelock entspricht dem im AutoEngineer aktuell eingestellten Wert des Winkelfreigabeflags (0=Winkel freigeben, 1=Winkel einhalten).
Funktion bae_setanglelock.
void bae_getbackgrid(
& double; // X-Hintergrundraster (STD2)
& double; // Y-Hintergrundraster (STD2)
);
Die Funktion bae_getbackgrid gibt in den beiden Parametern die Werte des aktuell im AutoEngineer eingestellten Hintergrundrasters für X- und Y-Richtung zurück. Werte von Null spezifizieren, dass kein Hintergrundraster angezeigt wird.
Funktion bae_setbackgrid.
string bae_getcasstime( // Rückgabe Packager-Netzlistenname
& int; // Rückgabe Zeitangabe Sekunde
& int; // Rückgabe Zeitangabe Minute
& int; // Rückgabe Zeitangabe Stunde
& int; // Rückgabe Datumsangabe Tag
& int; // Rückgabe Datumsangabe Monat
& int; // Rückgabe Datumsangabe Jahr
);
Mit der Funktion bae_getcasstime kann der Zeitpunkt des zuletzt durch Packager bzw. erfolgten Projektnetzlistenupdates ermittelt werden.
Funktionen bae_getpackdata, bae_getpacktime.
int bae_getclassbitfield( // Rückgabe Bearbeitungsschlüssel
int ]0,[; // DDB-Datenbankklasse (STD1)
);
Die Funktion bae_getclassbitfield ermittelt den Bearbeitungsschlüssel, der der spezifizierten DDB-Datenbankklasse zugewiesen ist. Der Rückgabewert der Funktion bae_getclassbitfield ist (-1) bei Spezifikation einer ungültigen bzw. unbekannten Datenbankklasse.Der Bearbeitungsschlüssel ist ein kodierter Integerwert, der innerhalb eines BAE-Moduls für jede bearbeitbare DDB-Klasse eindeutig ist. Durch bitweises Verodern dieser Kodierungen können weitere Bearbeitungsschlüssel generiert und anschließend mit einer der Funktionen bae_defmenutext, bae_defmenuprog oder bae_redefmenu selektiv an Menüeinträge zugewiesen werden. Damit können Menüfunktionen so konfiguriert werden, dass sie nur auf bestimmte Datenbankklassen anwendbar sind.
Funktionen bae_defmenuprog, bae_defmenutext, bae_getmenubitfield, bae_redefmenu.
int bae_getcmdbuf( // Status
int [-50,2099]; // Kommandospeicherindex 0 bis 49
// oder 1000 bis 1099 für Undo-Einträge 1 bis 100
// oder 2000 bis 2099 für Redo-Einträge 1 bis 100
// oder negativer Wert für Meldungshistorie
& string; // Kommando- bzw. Kommandosequenzzeichenkette
& string; // Kommandoanzeigetext
);
Die Funktion bae_getcmdbuf dient dazu, die Kommandohistorie für das aktuelle Kontextmenü abzufragen. Dies ist die Liste der zuletzt über die rechte Maustaste aktivierten Kommandos. Der Kommandospeicherindex gibt die Position des abzufragenden Kommandos an (Null ist das zuletzt ausgeführte Kommando). Die Kommando- bzw. Kommandosequenzzeichenkette und der Kommandoanzeigetext (entsprechend der Titelleistenanzeige) werden über den zweiten und dritten Funktionsparameter an den Aufrufer zurückgegeben. Der Funktionsrückgabewert ist 1 wenn die Abfrage erfolgreich war oder Null wenn ein ungültiger Kommandospeicherindex angegeben wurde.
Funktion bae_storecmdbuf.
int bae_getcolor( // Farbwert (STD18)
int; // Anzeigeelementtyp (SCM1|LAY9|ICD9)
);
Die Funktion bae_getcolor ermittelt den Farbwert für den angegebenen Anzeigeelementtyp. Der Wert für den Anzeigeelementtyp muss entsprechend der aktuellen Interpreterumgebung gesetzt sein.
Funktion bae_setcolor.
int bae_getcoorddisp( // Koordinatenanzeigemodus (STD7)
);
Der Rückgabewert der Funktion bae_getcoorddisp entspricht dem im AutoEngineer aktuell eingestellten Koordinatenanzeigemodus, wobei der Wert 0 für mm-Einheiten (bzw. Mikrometer-Einheiten im IC-Design System) und der Wert 1 für Inch-Einheiten (bzw. mil-Einheiten im IC-Design System) steht.
Funktion bae_setcoorddisp.
int bae_getdblpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = maximale Dialogboxbreite
// 1 = maximale Dialogboxhöhe
// 2 = Grafikanzeige Zoomfaktor
// 3 = Gummibandeckradius (STD2)
// 4 = Gummiband X-Vektorkoordinate (STD2)
// 5 = Gummiband Y-Vektorkoordinate (STD2)
// 6 = Fixierte X-Pickkoordinate (STD2)
// 7 = Fixierte Y-Pickkoordinate (STD2)
// 8 = Dialogboxbreite
// 9 = Dialogboxhöhe
// 10 = Bildschirmpickbereich (STD2)
// 11 = Elementauswahl relativer Vorschaubereich [0.05, 0.95]
// 12 = Dialogbox X-Einheiten Pixel
// 13 = Dialogbox Y-Einheiten Pixel
& double; // Rückgabe Parameterwert
);
Die Funktion
bae_getdblpar dient der Abfrage von im
Bartels AutoEngineer gesetzten Parametern vom Typ
double. Der Funktionsrückgabewert ist Null bei erfolgreicher Abfrage oder (-1) im Fehlerfall.
Funktionen bae_getintpar, bae_getstrpar, bae_setdblpar, bae_setintpar, bae_setstrpar.
string bae_getfuncprog( // Programmname
int [1,128]; // Funktionstastennummer
);
Die Funktion
bae_getfuncprog ermittelt den Namen des
User Language-Programms, welches der angegebenen Standardtaste zugewiesen ist. Ist der Taste eine BAE-Menüfunktion zugewiesen, dann wird die entsprechende BAE-Menüfunktionsnummer mit einem vorangestellten Hashzeichen
(#) zurückgegeben. Der Funktionsrückgabewert ist ein Leerstring, wenn keine Zuweisung für die Funktionstaste definiert ist bzw. wenn eine ungültige Funktionstastennummer spezifiziert wurde.
Funktionen bae_deffuncprog, bae_resetmenuprog.
int bae_getgridlock( // Rasterfreigabe Flag (STD8)
);
Der Rückgabewert der Funktion bae_getgridlock entspricht dem im AutoEngineer aktuell eingestellten Wert des Rasterfreigabeflags (0=Raster freigeben, 1=Raster einhalten).
Funktion bae_setgridlock.
int bae_getgridmode( // Rückgabe Modus für automatische Rastereinstellung:
// 0x01: Eingaberaster = 0.25 × Hintergrundraster
// 0x02: Eingaberaster = 0.50 × Hintergrundraster
// 0x04: Eingaberaster = 1.00 × Hintergrundraster
// 0x08: Eingaberaster = 2.00 × Hintergrundraster
// 0x10: Hintergrundraster = 0.25 × Eingaberaster
// 0x20: Hintergrundraster = 0.50 × Eingaberaster
// 0x40: Hintergrundraster = 1.00 × Eingaberaster
// 0x80: Hintergrundraster = 2.00 × Eingaberaster
);
Die Funktion bae_getgridmode dient der Abfrage des aktuell aktiven BAE Rasterabhängigkeitsmodus.
Funktion bae_setgridmode.
void bae_getinpgrid(
& double; // X-Eingaberaster (STD2)
& double; // Y-Eingaberaster (STD2)
);
Die Funktion bae_getinpgrid gibt in den beiden Parametern die Werte des aktuell im AutoEngineer eingestellten Eingaberasters für X- und Y-Richtung zurück.
Funktion bae_setinpgrid.
int bae_getintpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = Koordinateneingaben Bereichsprüfung:
// 0 = Bereichsprüfung aktiviert
// 1 = Bereichsprüfung deaktiviert
// 1 = Modulwechsel Autosavemodus:
// 0 = Autosave ohne Benutzerabfrage
// 1 = Benutzerabfrage vor Autosave
// 2 = Anzeigedeaktivierungsmodus:
// 0 = Anzeige aktiviert
// 1 = Anzeige deaktiviert
// 3 = Benutzeroberfläche Menü-/Mausmodus:
// 0 = Seitenmenü-Konfiguration
// 1 = Pulldownmenü, LMB-Kontext
// 2 = Pulldwonmenü, RMB-Kontext
// 4 = Arbeitsbereichstext Farbauswahl:
// 0 = Standardfarben
// 1 = invertierte Standardfarben
// 2 = arbeitsbereichsspezifische Farben
// 5 = Element Laden Anzeigemodus:
// 0 = Übersichtsanzeige nach Laden
// 1 = Anzeige aktiviert durch bae_load
// 6 = Dateiauswahl Dialogmodus:
// 0 = alte BAE-Dateiauswahl
// 1 = Explorer Standardansicht
// 2 = Explorer Listenansicht
// 3 = Explorer Detailansicht
// 4 = Exploreransicht kleine Piktogramme
// 5 = Exploreransicht große Piktogramme
// 6 = Standard-Stil und Standard-Größe benutzen
// 7 = Elementauswahl Dialogmodus:
// 0 = nur Name anzeigen
// 1 = Name und Datum anzeigen
// 8 = Elementauswahl Sortierfunktion:
// 0|1 = Sortierung nach Name
// 2 = Sortierung numerisch
// 3 = Sortierung nach Datum
// 9 = Anzeigemodus Platzierung:
// 0 = platzierte Elemente sichtbar
// 1 = unplatzierte Elemente sichtbar
// 10 = Letzter Dateisystemfehler
// 11 = Kommandohistorie Modus:
// 0 = Kommandohistorie aktiviert
// 1 = Kommandohistorie deaktiviert
// 12 = Popupmenü Mauswarpmodus:
// 0 = Kein Popupmenü Mauswarp
// 1 = Popupmenü Mauswarp erstes Element
// 2 = Popupmenü Mauswarp vorselektiertes Element
// +4 = Mauspositionsrestore-Warp
// +8 = Elementpickpositions-Warp
// 13 = Sicherungsmodus:
// 0 = Sicherung aktiviert
// 1 = Sicherung deaktiviert
// 14 = Minimalgröße Mausrechteck:
// ]0,[ = minimale Mausrechteckgröße
// 15 = Mausinfo-Anzeigemodus:
// 0 = Tooltip-Infoanzeige
// 1 = Kontinuierliche Fadenkreuz-Infoanzeige
// 2 = Fadenkreuz-Infoanzeige mit Strg
// 16 = Nächste Dialogbox-Identifikationsnummer
// 17 = Zuletzt erzeugte Tooltipidentifikationsnummer
// 18 = Polygonverwurfsanzahl
// 19 = Polygonprüfungsabschaltung:
// 0 = Polygonprüfung aktiv
// 1 = Polygonprüfung abgeschaltet
// 20 = Kursortastenrastermodus:
// 0 = Eingaberaster
// 1 = Pixelraster
// 21 = Flag - Element nicht gesichert
// 22 = Elementbatchlademodus:
// 0 = keinen Batch laden
// 1 = Batch laden
// 2 = Batch laden, Zoomfenster restaurieren
// 23 = Rasterlinienanzeige:
// 0 = Punktraster
// 1 = Linienraster
// 24 = Flag - Spiegelungsanzeige
// 25 = Flag - Eingaberasteranzeige
// 26 = Mausfunktionswiederholungsmodus:
// 0 = Menüfunktion wiederholen
// +1 = Tastenfunktion wiederholen
// +2 = Kontextmenüfunktion wiederholen
// 27 = Maximale Undo-Redo-Anzahl
// 28 = Menübaumansichtsmodus:
// 0 = Kein Menübaumfenster
// 1 = Menübaumfenster links
// 2 = Menübaumfenster rechts
// 29 = Menübaumansicht Pixelbreite
// 30 = Flag - Meldungshistorie deaktiviert
// 31 = Elementlademeldungsmodus:
// 0 = Standardmeldung
// 1 = Benutzerspezifische Meldung
// 2 = Benutzerspezifische Fehlermeldung
// 32 = Pickmarkeranzeigemodus:
// 0 = Kreismarker
// 1 = Diamantmarker
// 33 = Mausdrag-Status:
// 0 = Kein Mausdrag
// 1 = Mausdragangeforderung
// 2 = Mausdrag durchgeführt
// 3 = Mausdragfreigabeanforderung
// 34 = Flag - Menüfunktionswiederholung angefordert
// 35 = Flag - Funktion abgebrochen
// 36 = Flag - Planauswahlvorschau
// 37 = Dateizugriffsfehler-Anzeigemodus:
// 0 = Nur Statuszeilenanzeige
// 1 = Bestätigungsabfrage
// 38 = Elementauswahl-Referenzanzeigemodus:
// 0 = Projektdatei-Referenzen anzeigen
// 1 = Bibliotheksdatei-Referenzen anzeigen
// 39 = Maus-Doppelklick-Modus:
// 0 = Doppelklick und Selektion von 0 an rechte Maustaste zuweisen
// 1 = Doppelklick ignorieren
// 2 = Doppelklick an rechte Maustaste zuweisen
// 40 = Mauspick-Doppelklick-Modus:
// 0 = Doppelklick an rechte Maustaste zuweisen
// 1 = Doppelklick ignorieren
// 41 = Flags - Dialogelementunterstützung:
// 0 = Keine Dialogelemente unterstützt
// |1 = Dialogbasiselemente unterstützt
// |2 = Listenanzeige unterstützt
// |4 = Fortschittsanzeige unterstützt
// |8 = Werkzeugleistenschaltfläche unterstützt
// 42 = Fortschrittsanzeigemodus:
// 0 = Keine Fortschrittsanzeige
// 1 = Fortschrittsanzeige
// 43 = Abbruchanforderungsflag für Fortschrittsanzeige
// 44 = Flag - Mittlere Maustaste deaktiviert
// 45 = Anzahl aktueller Undo-Elemente
// 46 = Flag - Datei Drag-und-Drop Operation
// 47 = Flag - Automatische BAE-Fensteraktivierung
// 48 = Anzahl aktive Menüfunktionen
// 49 = Anzahl Punkte in interner Polygonliste
// 50 = Priorit&auuml;t alternative Konfigurationsdatei
// 51 = Sicherungsmodus für Dialogposition:
// 0 = Absolutkoordinaten specihern
// 1 = Hauptfenster-Relativkoordinaten speichern
// 2 = Hauptfenster-Monitorabsolutkoordinaten speichern
// 52 = Message-Box Default-Button-Index:
// (-1) = Kein Default (Abbruch oder No
// 0-2 = Default-Button-Index
& int; // Rückgabe Parameterwert
);
Die Funktion bae_getintpar dient der Abfrage von im Bartels AutoEngineer gesetzten Integerparametern. Der Funktionsrückgabewert ist Null bei erfolgreicher Abfrage oder (-1) im Fehlerfall.
Funktionen bae_getdblpar, bae_getstrpar, bae_setdblpar, bae_setintpar, bae_setstrpar.
int bae_getinvcolor( // Rückgabe Farbeinvertierungsmodus
);
Die Funktion
bae_getinvcolor überprüft, ob die BAE-Systemfarbpalette "invertiert" ist. Die Systemfarbpalette wird als invertiert betrachtet, wenn die dunkelste Farbe in der aktuell (über die Datei
bae.col im BAE-Programmverzeichnis) definierten Systemfarbpalette nicht schwarz ist. Die Funktion gibt einen Wert ungleich Null zurück, wenn die BAE-Systemfarbpalette invertiert ist; andernfalls ist der Funktionsrückgabewert Null.
int bae_getmenubitfield( // Rückgabe Bearbeitungsschlüssel
int [0,999]; // Menücode
int [0,99]; // Menüzeile
);
Die Funktion bae_getmenubitfield ermittelt den Bearbeitungsschlüssel, der dem angegebenen Menüeintrag zugewiesen ist. Die Spezifikation des Menüeintrags erfolgt durch die Angabe der Hauptmenünummer über den Parameter für den Menücode sowie durch die Angabe der Menüzeile im zugehörigen Untermenü. Der Rückgabewert der Funktion bae_getmenubitfield ist (-1), wenn die Spezifikation des Menüeintrags ig ist.Der Bearbeitungsschlüssel ist ein kodierter Integerwert, der angibt, für welche aktuell geladenen Elemente die Menüfunktion aufgerufen werden kann. Mit Hilfe dieses Schlüssels können Menüeinträge im Bartels AutoEngineer in Abhängigkeit vom Typ des aktuell geladenen Elements wahlweise aktiviert bzw. deaktiviert werden. Dieser Mechanismus kommt insbesondere bei der Konfiguration der sogenannten Ghostmenüs in den Windows-Versionen der BAE-Software zur Anwendung. Ist der Bearbeitungschlüssel mit dem Hexadezimalwert 80000000h kodiert, dann kann die entsprechende Funktion immer (d.h. auch wenn kein Element geladen ist) aktiviert werden. Der Hexadezimalwert 7FFFFFFFh gibt an, dass die Funktion für jeden beliebigen geladenen Elementtyp aufgerufen werden kann. Weitere Kodierungen sind in den einzelnen BAE-Modulen in Abhängigkeit von den bearbeitbaren DDB-Datenbankklassen definiert. Die Kodierung für jede einzelne Datenbankklasse kann mit der Funktion bae_getclassbitfield ermittelt werden. Durch bitweises Verodern dieser Kodierungen können weitere Bearbeitungsschlüssel generiert und anschließend mit einer der Funktionen bae_defmenutext, bae_defmenuprog oder bae_redefmenu selektiv an Menüeinträge zugewiesen werden. Damit ist die Konfiguration benutzerdefinierter Ghostmenüs möglich.
Funktionen bae_defmenuprog, bae_defmenutext, bae_getclassbitfield, bae_redefmenu.
string bae_getkeyprog( // Programmname
int; // Tastenzeichen
);
Die Funktion
bae_getkeyprog ermittelt den Namen des
User Language-Programms, welches der angegebenen Standardtaste zugewiesen ist. Ist der Taste eine BAE-Menüfunktion zugewiesen, dann wird die entsprechende BAE-Menüfunktionsnummer mit einem vorangestellten Hashzeichen
(#) zurückgegeben. Der Funktionsrückgabewert ist ein Leerstring, wenn keine Zuweisung für die Standardtaste definiert ist bzw. wenn ein iges Tastenzeichen spezifiziert wurde.
Funktionen bae_defkeyprog, bae_resetmenuprog.
int bae_getmenuitem( // Status
& int; // Menücode
& string; // Menütext(e)
& string; // Menükommando
);
Die Funktion
bae_getmenuitem ermöglicht die Anwahl einer BAE-Menüfunktion zur Abfrage der Eigenschaften des selektierten Menüeintrags. Im Menücodeparameter wird der Aufrufcode für den selektierten Menüeintrag zurückgeliefert. Im Parameter für den Menütext werden getrennt durch
-> die zur Selektion des Menüeintrags angewählten Menütext(e) der hierarchischen Menüstruktur zurückgeliefert. Im Parameter für das Menükommando wird die dem Menüeintrag zugewiesene Menükommandosequenz zurückgeliefert. Der Funktionsrückgabewert ist Null bei erfolgreicher Abfrage, oder ungleich Null bei fehlgeschlagener bzw. abgebrochener Abfrage.
Funktionen bae_callmenu, bae_defmenuprog, bae_getmenuprog, bae_getmenutext.
string bae_getmenuprog( // Programmname
int [0,999]; // Menücode
int [0,99]; // Menüzeile
);
Die Funktion
bae_getmenuprog ermittelt den Namen des
User Language-Programms, welches dem angegebenen Menüeintrag zugewiesen ist. Ist dem Menüeintrag eine BAE-Menüfunktion zugewiesen, dann wird die entsprechende BAE-Menüfunktionsnummer mit einem vorangestellten Hashzeichen
(#) zurückgegeben. Der Menücode gibt die Nummer des Hauptmenüs an, die Menüzeile die Position im zugehörigen Submenü. Der Funktionsrückgabewert ist ein Leerstring, wenn keine Zuweisung für den Menüeintrag definiert ist bzw. wenn die Spezifikation des Menüeintrags ig ist.
Funktionen bae_defmenuprog, bae_getmenuitem, bae_getmenutext, bae_resetmenuprog.
string bae_getmenutext( // Menütext
int [0,999]; // Menücode
int [0,99]; // Menüzeile
);
Die Funktion bae_getmenutext ermittelt den Anzeigetext, der dem angegebenen Menüeintrag zugewiesen ist. Der Menücode gibt die Nummer des Hauptmenüs an, die Menüzeile die Position im zugehörigen Submenü. Der Funktionsrückgabewert ist ein Leerstring, wenn die Spezifikation des Menüeintrags ig ist bzw. der spezifizierte Menüeintrag nicht existiert.
Funktionen bae_defmenuprog, bae_getmenuitem, bae_getmenuprog, bae_plainmenutext, bae_resetmenuprog.
string bae_getmoduleid( // Modulbezeichnung
);
Die Funktion bae_getmoduleid ermittelt die (mit bae_setmoduleid gesetzte) Bezeichnung des aktuell aktiven BAE-Programmmoduls.
Funktion bae_setmoduleid.
string bae_getmsg( // Rückgabe Messagestring
);
Die Funktion bae_getmsg ist nur in BAE HighEnd verfügbar. Mit bae_getmsg können Nachrichten empfangen werden, die zuvor mit der Funktion bae_sendmsg an die anderen Module eine BAE HighEnd-Sitzung abgesendet wurden. Zu einer Sitzung gehören alle Programminstanzen, die ausgehend von einem BAE-Aufruf über die Funktion aus dem BAE-Hauptmenü oder dem Schaltplaneditor gestartet wurden. In den addressierten Modulen wird bei Ankunft einer Nachricht automatisch das User Language-Programm bae_msg gestartet. Ist bae_msg nicht verfügbar, dann erfolgt der Aufruf eines User Language-Programms mit modulspezifischem Namen (scm_msg im Schaltplaneditor, ged_msg im Layouteditor, ar_msg im Autorouter, etc.). Das automatisch gestartete User Language-Programm muss die Nachrichtmit der Funktion bae_getmsg entgegennehmen. Die Nachricht steht nur während der Dauer dieses Programmaufrufs zur Verfügung. Wird die Nachricht von dem *_msg-Programm nicht angenommen, dann geht sie verloren. Der Inhalt der Nachricht kann dazu benutzt werden, eine spezielle Aktion im empfangenden Modul auszulösen.
Funktion bae_sendmsg.
int bae_getpackdata( // Status
string; // Projektdateiname
& string; // Rückgabe Layoutbibliotheksdatei
& string; // Rückgabe Netzlistenname
);
Die Funktion bae_getpackdata ermittelt die Parameter Layoutbibliotheksdateiname und Netzlistename des für die angebene Projektdatei zuletzt durchgeführten Packager-Laufs. Der Funktionsrückgabewert ist Null bei erfolgreicher Abfrage oder ungleich Null wenn die Parameterdaten nicht gefunden werden konnten.
Funktionen bae_getcasstime, bae_getpacktime.
int bae_getpacktime( // Status
string; // Projektdateiname
& int; // Rückgabe Zeitangabe Sekunde
& int; // Rückgabe Zeitangabe Minute
& int; // Rückgabe Zeitangabe Stunde
& int; // Rückgabe Datumsangabe Tag
& int; // Rückgabe Datumsangabe Monat
& int; // Rückgabe Datumsangabe Jahr
);
Die Funktion bae_getpacktime ermittelt das Datum und die Uhrzeit des für die angebene Projektdatei zuletzt durchgeführten Packager-Laufs. Der Funktionsrückgabewert ist Null bei erfolgreicher Abfrage oder ungleich Null wenn die Zeitangaben nicht ermittelt werden konnten.
Funktionen bae_getcasstime, bae_getpackdata.
int bae_getpolyrange( // Status
& double; // Rückgabe linke Polygongrenze
& double; // Rückgabe untere Polygongrenze
& double; // Rückgabe rechte Polygongrenze
& double; // Rückgabe obere Polygongrenze
);
Die Funktion bae_getpolyrange dient der Abfrage der Ausdehnung bzw. Begrenzung des mit bae_storepoint definierten internen Polypons. Der Funktionsrückgabewert ist Null bei erfolgreicher Abfrage oder ungleich Null im Fehlerfall.
Funktionen bae_clearpoints, bae_storepoint.
int bae_getstrpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = Aktueller Element-Kommentartext
// 1 = Aktuelle Element-Spezifikation
// 2 = Letzte Dateizugriffsfehler-Datei
// 3 = Letztes Dateizugriffsfehler-Element
// [ 4 = Systemparameter - kein Lesezugriff ]
// [ 5 = Systemparameter - kein Lesezugriff ]
// 6 = zuletzt geladene Farbtabelle
// 7 = Menütext der zuletzt aufgerufenen Funktion
// 8 = Aktueller Menüitemelementtext
// 9 = Aktuelle benutzerspezifische Elementlademeldung
// 10 = Zwischenablage-Textstring
// 11 = Modulaufruf nächstes Dateiargument
// 12 = Modulaufruf nächstes Elementargument
// 13 = Modulaufruf nächstes Kommando-/Typargument
// 14 = Letzter Ausgabedateiname
// 15 = Hostname
// [ 16 = Systemparameter - kein Lesezugriff ]
// 17 = Datenverzeichnis für alle Benutzer
// 18 = Datenverzeichnis für aktuellen Benutzer
// 19 = Alternatives Verzeichnis für Konfigrationsdaten
// 20 = Spalte lokale Daten
// 21 = Spalt globale Daten
& string; // Rückgabe Parameterwert
);
Die Funktion bae_getstrpar dient der Abfrage von im Bartels AutoEngineer gesetzten Stringparametern. Der Funktionsrückgabewert ist Null bei erfolgreicher Abfrage oder (-1) im Fehlerfall.
Funktionen bae_getdblpar, bae_getintpar, bae_setdblpar, bae_setintpar, bae_setstrpar.
void bae_inittextscreen(
);
Die Funktion bae_inittextscreen löscht den Grafikarbeitsbereich für die Textausgabe. Der Textausgabecursor wird auf die linke obere Ecke gesetzt.
int bae_inpoint( // Status
double; // Start X-Koordinate (STD2)
double; // Start Y-Koordinate (STD2)
& double; // Rückgabe X-Koordinate (STD2)
& double; // Rückgabe Y-Koordinate (STD2)
int; // Zeichenmodus:
// 0 = keine Anzeige
// 1 = dynamische Rahmenanzeige
// 2 = dynamische Linienanzeige
// 3 = dynamische Kreisanzeige
// 4 = Gummibandabstandsanzeige
// 5 = Gummibandzoomfensteranzeige
// 6 = Gummibandquadratanzeige
// 7 = Gummibandquadratanzeige zentriert
// 8 = Gummibandfensteranzeige zentriert
// 9 = Gummibandpolygonlinienanzeige
// 10 = Gummibandumrandungspolygonanzeigey
// 11 = Gummibandkreisanzeige zentriert
// 12 = Gummiband fixiert
// 13 = Gummiband zentriertes Zoomfenster
// 14 = Keine Fensteranzeige, RMB unmittelbarer Abbruch
// 15 = Anzeige mit festem Offset
);
Die Funktion bae_inpoint dient zur Wahl von Koordinaten mit der Maus. Die beiden Startkoordinaten definieren den Ausgangspunkt für Kommandos. In den beiden Rückgabeparametern wird das mit Maustastendruck gewählte Koordinatenpaar zurückgegeben. Ist der Zeichenmodus 1, dann wird bei der Koordinatenwahl dynamisch ein Rahmen von den Startkoordinaten zu den aktuellen Mauskoordinaten gezeichnet. Ist der Zeichenmodus 2, dann wird während der Koordinatenwahl dynamisch eine Linie von den Startkoordinaten zu den aktuellen Mauskoordinaten gezeichnet. Der Rückgabewert ist (-1) beim Abbruch der Eingabe oder Null wenn ein Koordinatenpaar gewählt wurde.
Funktion bae_inpointmenu.
int bae_inpointmenu( // Status
double; // Start X-Koordinate (STD2)
double; // Start Y-Koordinate (STD2)
& double; // Rückgabe X-Koordinate (STD2)
& double; // Rückgabe Y-Koordinate (STD2)
int; // Zeichenmodus:
// 0 = keine Anzeige
// 1 = dynamische Rahmenanzeige
// 2 = dynamische Linienanzeige
// 3 = dynamische Kreisanzeige
// 4 = Gummibandabstandsanzeige
// 5 = Gummibandzoomfensteranzeige
// 6 = Gummibandquadratanzeige
// 7 = Gummibandquadratanzeige zentriert
// 8 = Gummibandfensteranzeige zentriert
// 9 = Gummibandpolygonlinienanzeige
// 10 = Gummibandumrandungspolygonanzeigey
// 11 = Gummibandkreisanzeige zentriert
// 12 = Gummiband fixiert
// 13 = Gummiband zentriertes Zoomfenster
// 14 = nicht benutzt
// 15 = Anzeige mit festem Offset
* int; // Callbackfunktion für rechte Maustaste
);
Die Funktion bae_inpointmenu dient zur Wahl von Koordinaten mit der Maus. Die beiden Startkoordinaten definieren den Ausgangspunkt für Kommandos. In den beiden Rückgabeparametern wird das mit Maustastendruck gewählte Koordinatenpaar zurückgegeben. Ist der Zeichenmodus 1, dann wird während der Koordinatenwahl dynamisch ein Rahmen von den Startkoordinaten zu den aktuellen Mauskoordinaten gezeichnet. Ist der Zeichenmodus 2, dann wird während der Koordinatenwahl dynamisch eine Linie von den Startkoordinaten zu den aktuellen Mauskoordinaten gezeichnet. Der letzte Funktionsparameter ermöglicht die Spezifikation einer Callbackfunktion zur Aktivierung beim Drücken der rechten Maustasten (z.B. zur Anzeige spezifischer Optionsmenüs). Der Rückgabewert ist (-1) beim Abbruch der Eingabe oder Null wenn ein Koordinatenpaar gewählt wurde.Definition der Callkbackfunktion für die rechte Maustaste
int callbackfunction( // Status double x // Aktuelle Eingabe-X-Koordinate double y // Aktuelle Eingabe-Y-Koordinate ) { // Verarbeitungsprogramm : return(status); }Der Rückgabewert der Callbackfunktion sollte 0 sein zur Signalisierung der Komplettierung der Eingabe, 1 wenn die Eingabe fortzusetzen ist, oder ein beliebiger anderer Wert bei Abbruch der Eingabe. Bei Komplettierung der Eingabe (Rückgabewert 0) können geänderte Parameterwerte für die X- und Y-Koordinaten zurückgegeben werden.
Funktion bae_inpoint.
string bae_language( // Rückgabe Landessprachencode:
// DE = deutsch
// EN = englisch
// für künftige Anwendungen
// FR = französisch
// IT = italienisch
// SP = spanisch
// SV = schwedisch
);
Die Funktion bae_language gibt einen Code zur Identifikation der in der BAE-Benutzeroberfläche verwendeten Landessprache zurück. Diese Information kann dazu verwendet werden, Meldungen und Menüs dynamisch an die jeweilige Landessprache anzupassen.
int bae_loadcoltab( // Status
string; // Farbtabellenname
);
Mit der Funktion bae_loadcoltab wird die in der übergebenen Zeichenkette angegebene Farbtabelle geladen. Der Rückgabewert ist ungleich Null, wenn der Ladevorgang nicht erfolgreich war.
int bae_loadelem( // Status
string; // Elementdateiname
string; // Elementname
int [100,[; // Elementklasse (STD1)
);
Die Funktion bae_loadelem lädt im AutoEngineerr ein Planelement in den Speicher. Im Schaltplaneditor sind die möglichen Werte für die Klassenangabe gegeben durch 800, 801, 802 oder 803 für SCM Stromlaufblatt, SCM Symbol, SCM Marker oder SCM Label. In den Layoutmodulen sind die zulässigen Werte für die Klassenangabe gegeben durch 100, 101, 102 oder 103 für Layout, Layout Bauteil, Layout Padstack oder Layout Pad. Im IC-Design System sind die zulässigen Werte für die Klassenangabe gegeben durch 1000, 1001 oder 1002 für IC-Layout, IC-Zelle oder IC-Pin. Der Rückgabewert ist Null, wenn keine Fehler aufgetreten sind, (-2) bei ungültiger Elementklassenangabe, (-1) bei Dateizugriffsfehlern, 1 wenn der Zeichensatz nicht geladen werden konnte, 2 wenn einzelne referenzierte Makros (Bibliothekselemente) nicht geladen werden konnten, oder 3 bei unplatzierten Bauteilen bzw. fehlenden Pins, d.h. wenn auf einem Layoutplan platzierte Gehäusetypen nicht mit den in der Netzliste eingetragenen Typen übereinstimmen.
Bei Angabe der Elementklasse 100 für Layouts kann wahlweise ein Leerstring für den Elementnamen übergeben werden. In diesem Fall wird automatisch das Layoutelement mit dem im System eingestellten Default-Layoutelementnamen geladen (siehe hierzu KommandoLAYDEFELEMENTfür bsetup).
Beim Laden von Stromlaufblättern in den Schaltplaneditor führt bae_loadelem automatisch eine Backannotation durch sofern dies aufgrund vorheriger Netzlistenmodifikationen im Layout erforderlich ist.
Diese Funktion ändert sämtliche im Speicher vorhandenen Elementdaten und damit die Gültigkeit der Indexvariablen und sollte daher nur außerhalb jeglicher Programmblöcke mit Zugriff auf Indexvariablen (forall-Schleifen) aufgerufen werden. Vor Aufruf dieser Funktion sollte auf jeden Fall mit bae_plannotsaved nachgeprüft werden, ob das aktuelle Element mit allen Änderungen gesichert ist, da ein nach bae_loadelem nicht möglich ist.
int bae_loadfont( // Status
string; // Zeichensatzname
);
Mit der Funktion bae_loadfont wird der Zeichensatz mit dem in der übergebenen Zeichenkette spezifizierten Namen geladen. Der Rückgabewert ist ungleich Null, wenn der Ladevorgang nicht erfolgreich war.
int bae_menuitemhelp( // Status
int [0,9999]; // Menücode (STD4)
string; // Help-Dateiname (Windows .hlp-Datei)
);
Die Funktion bae_menuitemhelp zeigt die Onlinehilfe zu dem über den Menücode angegebenen Topic an. Der Rückgabewert ist ungleich Null, wenn ungültige Parameter spezifiziert wurden.
bae_menuitemhelp ist nur unter Windows funktionsfähig.
void bae_msgbox(
int; // Info-Popup Stil/Piktogramm:
// 0 = Info (Information)
// 1 = Warnung (Ausrufezeichen)
// 2 = Fehler (Fragezeichen)
// 3 = Fataler Fehler (Stoppzeichen)
// sonst = kein Piktogramm
string; // Info-Popup Text
string; // Info-Popup Titel
);
Die Funktion bae_msgbox aktiviert ein Info-Popupfenster mit einer Bestätigungsabfrage (Schaltfläche ). Auf das Erscheinungsbild des Info-Fensters kann über den ersten Parameter Einfluss genommen werden. Der angegeben Text wird innerhalb des Popupfensters angezeigt. Der Titel erscheint als Überschrift in der Titelleiste des Popupfensters. Das Erscheinungsbild bzw. das Layout des Popupfensters (Fensterposition, Titelanzeige, Schaltflächensymbole, Textausrichtung, Zeilenumbruch, usw.) kann je nach Betriebssystemplattform variieren.
Funktionen bae_msgboxverify, bae_msgboxverifyquit.
int bae_msgboxverify( // Rückgabe Antwortcode:
// 1 = Ja
// 0 = Nein (Default)
string; // Info-Popup Text
string; // Info-Popup Titel
);
Die Funktion bae_msgboxverify aktiviert ein Info-Popupfenster mit einer Ja/Nein-Abfrage. Der Funktionsrückgabewert ergibt sich zu 1 bei Eingabe bzw. Selektion von "Ja" und zu Null bei allen anderen Eingaben. Der angegeben Text wird innerhalb des Popupfensters angezeigt. Der Titel erscheint als Überschrift in der Titelleiste des Popupfensters. Das Erscheinungsbild bzw. das Layout des Popupfensters (Fensterposition, Titelanzeige, Schaltflächensymbole, Textausrichtung, Zeilenumbruch, usw.) kann je nach Betriebssystemplattform variieren.
Funktionen bae_msgbox, bae_msgboxverifyquit.
int bae_msgboxverifyquit( // Rückgabe Antwortcode:
// 1 = Ja
// 0 = Nein
// sonst = Abbruch (Default)
string; // Info-Popup Text
string; // Info-Popup Titel
);
Die Funktion bae_msgboxverifyquit aktiviert ein Info-Popupfenster mit einer Ja/Nein/Abbruch-Abfrage. Der Funktionsrückgabewert ergibt sich zu 1 bei Eingabe bzw. Selektion von und zu Null bei Eingabe bzw. Selektion von . Alle anderen Eingaben werden als Abbruchanforderung interpretiert. Der angegeben Text wird innerhalb des Popupfensters angezeigt. Der Titel erscheint als Überschrift in der Titelleiste des Popupfensters. Das Erscheinungsbild bzw. das Layout des Popupfensters (Fensterposition, Titelanzeige, Schaltflächensymbole, Textausrichtung, Zeilenumbruch, usw.) kann je nach Betriebssystemplattform variieren.
Funktionen bae_msgbox, bae_msgboxverify.
int bae_msgprogressrep( // Rückgabe Status
string; // Fortschrittsanzeige Text
int [0,258]; // Fortschrittsanzeige Typ:
// 1 : Prozentualer Fortschritt
// 2 : Fortschrittsschiebebalken
// |256 : Abbruchschaltfläche anzeigen
int [0,10000]; // Fortschrittsanzeige Komplettierungsstatus [%*100]
int [0,[; // Fortschrittsanzeige Minimalbreite [in Zeichen]
);
Die Funktion bae_msgprogressrep aktiviert bzw. aktualisiert die BAE-Fortschrittsanzeige mit den angegebenen Parametern. Der Funktionsrückgabewert ist Null, wenn die Funktion erfolgreich ausgeführt wurde, oder ungleich Null im Fehlerfall (bei Spezifikation ungültiger Parameter). Eine mit bae_msgprogressrep kann mit bae_msgprogressterm wieder beendet werden.
Funktion bae_msgprogressterm.
void bae_msgprogressterm(
);
Die Funktion bae_msgprogressterm beendet die mit bae_msgprogressrep aktivierte BAE-Fortschrittsanzeige.
Funktion bae_msgprogressrep.
void bae_mtpsize(
& int; // Rückgabe Popupmenü Textspaltenanzahl
& int; // Rückgabe Popupmenü Textzeilenanzahl
);
Die Funktion bae_mtpsize ermittelt die Größe des maximal verfügbaren Anzeigebereichs zur Definition von Popupmenüs oder Toolbars mit Hilfe der Funktionen bae_popshow und bae_settbsize. Die Breite des Anzeigebereichs wird im Parameter für die Textspaltenanzahl zurückgegeben, während die Höhe des Anzeigebereichs im Parameter für die Textzeilenanzahl zurückgegeben wird. Mit Hilfe der Funktion bae_charsize können diese Werte in Standardlängeneinheiten umgerechnet werden.
Funktionen bae_charsize, bae_popshow, bae_settbsize, bae_twsize.
int bae_nameadd( // Namenslistenindex/ID oder (-1) im Fehlerfall string; // Name string; // Datumsstring string; // Datumssortierstring int; // Sortiermodus: // 0 = anfügen (keine Sortierung) // 1 = Sortierung alphanumerisch // 2 = Sortierung numerisch // 3 = Sortierung nach Datum // 4 = Sortierung für ID-Generierung );
Die Funktion bae_nameadd fügt einen Eintrag in die interne BAE-Namensauswahlliste ein. Diese Liste wird von der Funktion bae_askname zur Aktivierung von Namensauswahldialogen benutzt. Die Funktion bae_nameclr kann bzw. sollte vor dem ersten Aufruf von bae_nameadd benutzt werden, um eventuell von vorhergehenden Applikationen vorhandene Namenseinträge aus der Namensauswahlliste zu entfernen. Die Funktion gibt den ermittelten Namenslistenindex bzw. eine ID zurück wenn die Operation erfolgreich oder (-1) im Fehlerfall.
Funktionen bae_askname, bae_nameclr, bae_nameget.
void bae_nameclr(
);
Die Funktion bae_nameclr löscht die aktuell mit bae_nameadd definierte Namensliste aus dem Arbeitsspeicher.
Funktionen bae_askname, bae_nameadd, bae_nameget.
int bae_nameget( // Status
int; // Namenslistenindex
& string; // Rückgabe Name
& string; // Rückgabe Datumsstring
& string; // Rückgabe Datumssortierstring
& string; // Rückgabe Kommentar
& int; // Rückgabe Namenseintraganzahl oder Namens-ID
);
Die Funktion bae_nameget dient der Abfrage von zuvor mit bae_nameadd definierten Einträgen in der BAE-Namensauswahlliste. Der Funktionsrückgabewert ist Null bei erfolgreicher Abfrage oder ungleich Null im Fehlerfall.
Funktionen bae_askname, bae_nameadd, bae_nameclr.
string bae_numstring( // Rückgabe numerische Zeichenkette
double; // Eingabewert
int [0,[; // Maximale Genauigkeit/Nachkommastellen
);
Die Funktion bae_numstring konvertiert den Eingabewert in eine numerische Zeichenkette mit der über die maximale Genauigkeit angegebenen Zahl von Nachkommastellen.
int bae_peekiact( // Rückgabe Interaktionsstatus/-modus:
// 0 = Keine automatische Interaktion anstehend
// 1 = Mausinteraktion anstehend
// 2 = Textinteraktion anstehend
// 3 = Menüinteraktion anstehend
// 4 = Tastaturinteraktion anstehen
);
Mit der Funktion bae_peekiact können die aktuellen Interaktionsvorgaben überprüft werden. Der Funktionsrückgabewert ist der Typcode der nächsten anstehenden automatischen Interaktion oder Null wenn keine automatisch Interaktion ansteht.
Funktionen bae_storekeyiact, bae_storemenuiact, bae_storemouseiact, bae_storetextiact.
string bae_plainmenutext( // Zeichenkette
string; // Menütext
);
Die Funktion bae_plainmenutext wandelt den über den Funktionsparameter übergebenen Menütext in normalen Text ohne Sonderzeichen für Menütrennzeilen (%), Beschleuniger (&), usw. um. Die resultierende Zeichenkette wird als Funktionsergebnis an den Aufrufer zurückgegeben.
Funktionen bae_defmenutext, bae_getmenutext.
int bae_planddbclass( // Elementklasse (STD1)
);
Der Rückgabewert der Funktion bae_planddbclass entspricht der Datenbankklasse des aktuell geladenen Elements. Die im Schaltplaneditor möglichen Rückgabewerte 800, 801, 802 und 803 stehen für SCM Stromlaufblatt, SCM Symbol, SCM Marker und SCM Label. Die in den Layoutmodulen möglichen Rückgabewerte 100, 101, 102 und 103 stehen für Layout, Layout Bauteil, Layout Padstack und Layout Pad. Die im IC-Design möglichen Rückgabewerte 1000, 1001 und 1002 stehen für IC-Layout, IC-Zelle und IC-Pin. Der Rückgabewert (-1) gibt an, dass kein Element geladen ist.
string bae_planename( // Elementname
);
Der Rückgabewert der Funktion bae_planename entspricht dem Elementnamen des aktuell geladenen Elements oder der Nullzeichenkette, wenn kein Element geladen ist.
Funktion bae_plansename.
string bae_planfname( // Element Dateiname
);
Der Rückgabewert der Funktion bae_planfname entspricht dem Dateinamen des aktuell geladenen Elements oder der Nullzeichenkette, wenn kein Element geladen ist.
Funktionen bae_plansfname, bae_setplanfname.
int bae_plannotsaved( // Element ungesichert Flag:
// 0 = Element gesichert
// 1 = Element nicht gesichert
);
Der Rückgabewert der Funktion bae_plannotsaved gibt an, ob das aktuell geladene Element gesichert ist. Der Wert ist ungleich Null, wenn seit dem letzten Speichern des aktuellen Elements Änderungen an diesem vorgenommen wurden.
string bae_plansename( // Zielelementname
);
Der Rückgabewert der Funktion bae_plansename entspricht dem Zielelementnamen des aktuell geladenen Elements oder der Nullzeichenkette, wenn kein Element geladen ist. Diese Funktion kann für Elementnamensabfragen während der Ausführung der Funktion benutzt werden.
Funktion bae_planename.
string bae_plansfname( // Zieldateiname
);
Der Rückgabewert der Funktion bae_plansfname entspricht dem Zieldateinamen des aktuell geladenen Elements oder der Nullzeichenkette, wenn kein Element geladen ist. Diese Funktion kann für Elementdateinamensabfragen während der Ausführung der Funktion benutzt werden.
Funktion bae_planfname.
double bae_planwslx( // Koordinatenwert (STD2)
);
Der Rückgabewert der Funktion bae_planwslx entspricht der linken Begrenzungskoordinate des aktuell geladenen Elements.
double bae_planwsly( // Koordinatenwert (STD2)
);
Der Rückgabewert der Funktion bae_planwsly entspricht der untereb Begrenzungskoordinate des aktuell geladenen Elements.
double bae_planwsnx( // Koordinatenwert (STD2)
);
Der Rückgabewert der Funktion bae_planwsnx entspricht dem X-Koordinatenbezugspunkt des aktuell geladenen Elements.
double bae_planwsny( // Koordinatenwert (STD2)
);
Der Rückgabewert der Funktion bae_planwsny entspricht dem Y-Koordinatenbezugspunkt des aktuell geladenen Elements.
double bae_planwsux( // Koordinatenwert (STD2)
);
Der Rückgabewert der Funktion bae_planwsux entspricht der rechten Begrenzungskoordinate des aktuell des aktuell geladenen Elements.
double bae_planwsuy( // Koordinatenwert (STD2)
);
Der Rückgabewert der Funktion bae_planwsuy entspricht der oberen Begrenzungskoordinate des aktuell geladenen Elements.
int bae_popareachoice( // Status
double [0.0,[; // Startzeilennummer
double [0.0,[; // Startspaltennummer
double [0.0,[; // Endzeilennummer
double [0.0,[; // Endspaltennummer
string; // Antwort-Zeichenkette
);
Die Funktion bae_popareachoice definiert einen rechteckförmigen Selektionsbereich innerhalb des aktuell aktiven Popupmenübereichs. Der aktive Popupmenübereich wird mit der Funktion bae_popsetarea selektiert und ist entweder der mit bae_popshow definierte Popupmenübereich oder der mit bae_settbsize definierte Toolbarbereich. Der Selektionsbereich wird mit den Funktionsparametern für die Zeilen- bzw. Spaltenbereiche definiert, wobei Zeilen von oben nach unten und Spalten von links nach rechts gezählt werden. Mit der Funktion bae_tbsize kann die aktuelle Toolbargröße ermittelt werden. Mit Hilfe der Funktion bae_charsize können Textkoordinaten in Standardlängeneinheiten konvertiert werden. Der Parameter für die Anwort-Zeichenkette definiert den Text, der später bei Selektionen im definierten Selektionsbereich durch die Funktion bae_readtext zurückzugeben ist. Der Rückgabewert der Funktion bae_popareachoice ist (-1) im Fehlerfall, 1 bei erfolgreicher Generierung einer Schaltfläche, oder Null bei erfolgreicher Definition des Selektionsbereichs.
Funktionen bae_charsize, bae_popcolbar, bae_popcolchoice, bae_popsetarea, bae_popshow, bae_poptext, bae_poptextchoice, bae_readtext, bae_settbsize, bae_tbsize.
void bae_popcliparea(
int [0,1]; // Clippingmodus:
// 0 = Clipping deaktivieren
// 1 = Clipping aktivieren
double [0.0,[; // Startzeilennummer
double [0.0,[; // Startspaltennummer
double [0.0,[; // Endzeilennummer
double [0.0,[; // Endspaltennummer
);
Die Funktion bae_popcliparea aktiviert (Clippingmodus 1) bzw. deaktiviert (Clippingmodus 0) das sogenannte Clipping innerhalb des aktuell aktiven Popupmenübereichs. Der aktive Popupmenübereich wird mit der Funktion bae_popsetarea selektiert und ist entweder der mit bae_popshow definierte Popupmenübereich oder der mit bae_settbsize definierte Toolbarbereich. Mit dem Clippingverfahren können Grafikausgaben in den Popupmenüs bzw. Toolbars automatisch auf spezielle Teilbereiche der Anzeige beschränkt werden, was insbesondere bei der Generierung von Ausschnittszeichnungen mit Hilfe der Funktion bae_popdrawpoly von besonderem Nutzen ist. Der Clippingbereich wird mit den Funktionsparametern für die Zeilen- bzw. Spaltenbereiche definiert, wobei Zeilen von oben nach unten und Spalten von links nach rechts gezählt werden. Mit Hilfe der Funktion bae_charsize können Textkoordinaten in Standardlängeneinheiten konvertiert werden.
Funktionen bae_charsize, bae_popdrawpoly, bae_popsetarea, bae_popshow, bae_settbsize.
void bae_popclrtool(
);
Mit der Funktion bae_popclrtool können sämtliche Anzeigen im aktuellen Toolbarbereich gelöscht bzw. deaktiviert werden.
Funktionen bae_popsetarea, bae_settbsize.
int bae_popcolbar( // Status
double [0.0,[; // Startzeilennummer
double [0.0,[; // Startspaltennummer
double [0.0,[; // Endzeilennummer
double [0.0,[; // Endspaltennummer
int [0,[; // Farbwert (STD18)
);
Die Funktion bae_popcolbar definiert einen nicht selektierbaren Farbbalken innerhalb des zuvor mit bae_popshow aktivierten Popupmenüs. Die Größe und die Position für die Anzeige des Farbbalkens ergeben sich aus den übergebenen Zeilen- und Spaltenparametern; die Koordinate [0,0] bezieht sich dabei auf die linke obere Ecke des Popupbereiches. Der Farbwert-Parameter definiert die Farbe des Farbbalkens. Der Rückgabewert der Funktion ist ungleich Null, wenn fehlerhafte Parameter übergeben wurden.
Funktionen bae_popareachoice, bae_popcolchoice, bae_popshow, bae_poptext, bae_poptextchoice.
int bae_popcolchoice( // Status
double [0.0,[; // Startzeilennummer
double [0.0,[; // Startspaltennummer
double [0.0,[; // Endzeilennummer
double [0.0,[; // Endspaltennummer
int [0,[; // Farbwert (STD18)
string; // Antwort-Zeichenkette
);
Die Funktion bae_popcolchoice definiert einen maus-selektierbaren Farbbalken innerhalb des zuvor mit bae_popshow aktivierten Popupmenüs. Die Größe und die Position für die Anzeige des Farbbalkens ergeben sich aus den übergebenen Zeilen- und Spaltenparametern; die Koordinate [0,0] bezieht sich dabei auf die linke obere Ecke des Popupbereiches. Der Farbwert-Parameter definiert die Farbe des Farbbalkens. Der Rückgabewert der Funktion ist ungleich Null, wenn fehlerhafte Parameter übergeben wurden. Die Selektion des mit bae_popcolchoice definierten Farbbalkens ist nach einer Aktivierung der Funktion bae_readtext möglich. Durch die Selektion des Farbbalkens wird die Funktion bae_readtext beendet; der Rückgabewert von bae_readtext ergibt sich dabei automatisch aus der Antwort-Zeichenkette, die beim Aufruf der Funktion bae_popcolchoice angegeben wurde.
Funktionen bae_popareachoice, bae_popcolbar, bae_popshow, bae_poptext, bae_poptextchoice, bae_readtext.
int bae_popdrawpoly( // Status
int [0,[; // Polygon Farbe (STD18)
int [0,3]; // Polygon Zeichenmodus (STD19)
int [0,15]; // Polygon Füllmodus (STD20)
);
Die Funktion bae_popdrawpoly bildet das mit bae_storepoint generierte interne Polygon in der angegebenen Farbe und unter Berücksichtigung der spezifizierten Parameter für den Zeichen- und Füllmodus im aktuell aktiven Popupmenübereich ab. Der aktive Popupmenübereich wird mit der Funktion bae_popsetarea selektiert und ist entweder der mit bae_popshow definierte Popupmenübereich oder der mit bae_settbsize definierte Toolbarbereich. Die Polygonanzeige kann mit Hilfe der Funktion bae_popcliparea auf einen speziellen Teilbereich des Popupmenüs beschränkt werden. Mit Hilfe der Funktion bae_popareachoice können ein oder mehrere Teilbereiche der Polygonanzeige für eine spätere Selektion durch die Funktion bae_readtext vorgesehen werden. Zur Vorbereitung der Definition neuer Polygone kann das aktuell generierte, interne Polygon mit der Funktion bae_clearpoints gelöscht werden. Die Basislänge für die Ausgabe gestrichelter Linienzüge kann mit Hilfe der Funktion bae_setpopdash gesetzt werden. Der Rückgabewert der Funktion bae_popdrawpoly ist Null, wenn die Polygongenerierung erfolgreich durchgeführt wurde, oder ungleich Null im Fehlerfall.
Funktionen bae_clearpoints, bae_dialbmpalloc, bae_popareachoice, bae_popcliparea, bae_popcolbar, bae_popcolchoice, bae_popdrawtext, bae_popsetarea, bae_popshow, bae_readtext, bae_setpopdash, bae_settbsize, bae_storepoint.
int bae_popdrawtext( // Status
int; // Text Zeile
int; // Text Spalte
int [0,[; // Text Farbe (STD18)
int [0,[; // Text Hintergrundfarbe (STD18)
string; // Text String
);
Die Funktion bae_popdrawtext zeigt den angegebenen Text an den spezifizierten Zeilen- und Spaltenkoordinaten im aktuell aktiven Popupmenübereich an, wobei zur Darstellung die angegebenen Farben für den Text bzw. den Texthintergrund verwendet werden. Der aktive Popupmenübereich wird mit der Funktion bae_popsetarea selektiert und ist entweder der mit bae_popshow definierte Popupmenübereich oder der mit bae_settbsize definierte Toolbarbereich. Mit Hilfe der Funktion bae_charsize können Textkoordinaten in Standardlängeneinheiten konvertiert werden. Mit Hilfe der Funktion bae_popareachoice können ein oder mehrere Teilbereiche der Textanzeige für eine spätere Selektion durch die Funktion bae_readtext vorgesehen werden. Der Rückgabewert der Funktion bae_popdrawtext ist Null, wenn die Textgenerierung erfolgreich durchgeführt wurde, oder ungleich Null im Fehlerfall.
Funktionen bae_charsize, bae_dialbmpalloc, bae_popareachoice, bae_popdrawpoly, bae_popsetarea, bae_popshow, bae_readtext, bae_settbsize.
void bae_popmouse(
& double; // Rückgabe Maus-X-Koordinate/Spalte
& double; // Rückgabe Maus-Y-Koordinate/Reihe
& int; // Rückgabe Mausstatus:
// Bit 1 : linke Maustaste gedrückt
// Bit 2 : rechte Maustaste gedrückt
// Bit 3 : mittlere Maustaste gedrückt
);
Mit der Funktion bae_popmouse können die aktuellen Mauskoordinaten (Spalte und Reihe) innerhalb des Popup- bzw. Toolbarbereichs ermittelt werden. Der Parameter zur Rückgabe des Mausstatus gibt an, welche Maustasten gerade gedrückt sind.
Funktion bae_wsmouse.
void bae_poprestore(
);
Die Funktion bae_poprestore deaktiviert das zuvor mit bae_popshow aktivierte Popupmenü und reaktiviert ggf. wieder die Anzeige des durch das Popupmenü überdeckten Grafikarbeitsbereiches.
Funktion bae_popshow.
void bae_popsetarea(
int // Popupbereich:
// 0 = Popupmenübereich
// 1 = Toolbarbereich
// 2..31 = Dialogbitmapbereich
);
Die Funktion bae_popsetarea dient dazu, wahlweise das Standard-Popupmenü (Popupbereich 0), die Toolbar (Popupbereich 1) oder eine Dialogbitmap (Popupbereich bzw. Popupbitmapnummer 2 bis 31) für nachfolgende Popupoperationen wie z.B. bae_popareachoice, bae_popcliparea, bae_popdrawpoly oder bae_popdrawtext zu aktivieren. Die Definition bzw. Anzeige des Standard-Popupmenübereichs erfolgt mit Hilfe der Funktion bae_popshow. Die Definition bzw. Anzeige des Toolbar-Popupmenübereichs erfolgt mit Hilfe der Funktion bae_settbsize. Wenn mit bae_popsetarea kein Popupmenübereich explizit aktiviert wurde, dann ist zunächst das Standard-Popupmenü für Popupoperationen selektiert.
Funktionen bae_dialbmpalloc, bae_popareachoice, bae_popcliparea, bae_popdrawpoly, bae_popdrawtext, bae_popshow, bae_settbsize.
int bae_popshow( // Status
& double [0.0,[; // Popup-Zeilenanzahl
& double [0.0,[; // Popup-Spaltenanzahl
& double [0,1.0]; // Linke Popup-Begrenzung
& double [0,1.0]; // Untere Popup-Begrenzung
& double [0,1.0]; // Rechte Popup-Begrenzung
& double [0,1.0]; // Obere Popup-Begrenzung
);
Die Funktion bae_popshow erzeugt ein Popupmenü in der angegebenen Größe. Die Position sowie die maximale Ausdehnung des Popupmenüs ergeben sich aus den Popup-Begrenzungsparametern; die angegebenen Werte verstehen sich dabei als Relativwerte in Bezug auf die Größe des zur Verfügung stehenden Grafikarbeitsbereiches; der Wert 0.0 steht dabei für Minimalgröße, der Wert 1.0 für Maximalgröße. Die Anzahl der maximal anzeigbaren Spalten und Zeilen kann mit der Funktion bae_mtpsize ermittelt werden. Die Parameter für die Popupzeilen- und Popupspaltenanzahl definieren als Eingabeparameter die gewünschte Größe des Popupmenüs. Die innerhalb der angegebenen Popupbegrenzung tatsächlich darstellbaren Zeilen und Spalten werden durch die Funktion bae_popshow automatisch berechnet und in den entsprechenden Parametern an den Aufrufer wieder zurückgegeben. Der Rückgabewert der Funktion bae_popshow ist ungleich Null, wenn ungültige oder sich widersprechende Parameter übergeben wurden. Die Menüfarben für Texte, Hintergrund und Rahmen des Popups ergeben sich aus den mit dem Utilityprogramm bsetup im BAE Setup entsprechend eingetragenen Farbwerten. Nach dem Aufruf der Funktion bae_popshow können mit den Funktionen bae_popareachoice, bae_popcolbar, bae_popcolchoice, bae_popdrawpoly, bae_popdrawtext, bae_poptext und bae_poptextchoice selektierbare und nicht selektierbare Farbbalken, Anzeigetexte, Grafiken und Selektionsbereiche definiert werden. Die Popupmenüauswahl kann anschließend mit der Funktion bae_readtext aktiviert werden.
Zur Freigabe eines durch ein Popupmenü belegten Grafikarbeitsbereiches ist die Funktion bae_poprestore zu benutzen.
Funktionen bae_mtpsize, bae_popareachoice, bae_popcliparea, bae_popcolbar, bae_popcolchoice, bae_popdrawpoly, bae_popdrawtext, bae_poprestore, bae_popsetarea, bae_poptext, bae_poptextchoice, bae_readtext, bae_settbsize sowie BAE Utilityprogramm bsetup.
int bae_poptext( // Status
double [0.0,[; // Zeilennummer
double [0.0,[; // Spaltennummer
string; // Anzeige-Zeichenkette
);
Die Funktion bae_poptext definiert einen nicht selektierbaren Text innerhalb des zuvor mit bae_popshow aktivierten Popupmenüs. Die Position für die Anzeige des Textes ergibt sich aus den übergebenen Zeilen- und Spaltenparametern; die Koordinate [0,0] bezieht sich dabei auf die linke obere Ecke des Popupbereiches. Der im Popupmenü anzuzeigende Text wird durch die Anzeige-Zeichenkette definiert. Der Rückgabewert der Funktion ist ungleich Null, wenn fehlerhafte Parameter übergeben wurden.
Funktionen bae_popcolbar, bae_popcolchoice, bae_popshow, bae_poptextchoice.
int bae_poptextchoice( // Status
double [0.0,[; // Zeilennummer
double [0.0,[; // Spaltennummer
string; // Anzeige-Zeichenkette
string; // Antwort-Zeichenkette
);
Die Funktion bae_poptextchoice definiert einen maus-selektierbaren Text innerhalb des zuvor mit bae_popshow aktivierten Popupmenüs. Die Position für die Anzeige des Textes ergibt sich aus den übergebenen Zeilen- und Spaltenparametern; die Koordinate [0,0] bezieht sich dabei auf die linke obere Ecke des Popupbereiches. Der im Popupmenü anzuzeigende Text wird durch die Anzeige-Zeichenkette definiert. Der Rückgabewert der Funktion ist ungleich Null, wenn fehlerhafte Parameter übergeben wurden. Die Selektion der mit bae_poptextchoice definierten Textanzeige ist nach einer Aktivierung der Funktion bae_readtext möglich. Durch die Selektion des Anzeigetextes wird die Funktion bae_readtext beendet; der Rückgabewert von bae_readtext ergibt sich dabei automatisch aus der Antwort-Zeichenkette, die beim Aufruf der Funktion bae_poptextchoice angegeben wurde.
Funktionen bae_popcolbar, bae_popcolchoice, bae_popshow, bae_poptext, bae_readtext.
void bae_postprocess(
);
Die Funktion bae_postprocess führt einen BAE-Prostprozesslauf für das aktuell geladene Element durch. Auf Layoutebene wird damit die eine Aktualisierung der Connectivity und eine Prüfung der Designregeln erzwungen.
string bae_progdir( // BAE-Programmverzeichnis-Name
);
Der Rückgabewert der Funktion bae_progdir entspricht dem aktuell gültigen Namen für das BAE-Programmverzeichnis. Diese Information ist insbesondere dann von Nutzen, wenn auf spezielle Daten aus dem BAE-Programmverzeichnis zugegriffen werden soll (z.B. zum Laden von Farbtabellen, für den Zugriff auf Blendentabellen, usw.).
void bae_prtdialog(
string; // Anzeige-Zeichenkette
);
Die Funktion bae_prtdialog gibt die übergebene Anzeige-Zeichenkette in der Statuszeile der BAE-Benutzeroberfläche aus.
Funktion perror.
int bae_querydist( // Status
double; // Abfrage X-Koordinate (STD2)
double; // Abfrage Y=Koordinate (STD2)
& double; // Rückgabe Distanz (STD2)
);
Mit der Funktion bae_querydist kann der Abstand zwischen dem über die Parameter für die X- und Y-Koordinaten gegebenen Punkt und das zuvor mit bae_storedistpoly gespeicherte interne Distanzabfragepolygon ermittelt werden. Die ermittelte Distanz wird im letzten Funktionsparameter zurückgegeben. Positive Werte geben dabei Abstände zu Punkten außerhalb des Distanzabfragepolygons an, negative Werte werden für Abstände zu Punkten innerhalb des Polygons zurückgegeben. Der Funktionsrückgabewert ist Null bei erfolgreicher Distanzabfrage oder ungleich Null wenn ein Fehler aufgetreten ist (fehlendes Distanzabfragepolygon).
Funktion bae_storedistpoly.
string bae_readedittext( // Zeichenkette
string; // Eingabeaufforderung
// !-Präfix: Mehrzeilentexteingabe
// sonst: Einzelzeilentexteingabe
string; // Default-Rückgabezeichenkette
int [0,[; // Maximale Eingabelänge
);
Die Funktion
bae_readedittext aktiviert einen Dialog zum Anzeigen und Editieren von Texten. Die über den ersten Funktionsparameter angegebene Eingabeaufforderung wird in der Titelleiste des Dialogs angezeigt. Ist das erste Zeichen der Eingabeaufforderung ein Ausrufungszeichen
(!), dann wird ein Dialog mit einem mehrzeiligem Editierfenster aktiviert, ansonsten erfolgt die Eingabe über einen Dialog mit einem einzeiligen Editierfenster.
Das Dialogfenster für mehrzeilige Texteingaben ist in der Größe veränderbar.
Nach dem Aufruf der Funktion wird im Editierfenster die angegebene Rückgabezeichenkette angezeigt. Der Dialog enthält Schaltflächen zur Bestätigung
() und zum Abbruch
() der Texteingabe. Im Dialog für die mehrzeilige Texteingabe werden außerdem Schaltflächen zum Laden des Inhalts einer selektierbaren Datei
() und zum Speichern des aktuell editierten Texts in eine Ausgabedatei
() angeboten. Der Rückgabewert dieser Funktion entspricht der vom Benutzer editierten Zeichenkette wenn die Eingabe mit
bestätigt wurde. Dabei ist die eingebbare maximale Länge der Antwortzeichenkette durch den entsprechenden Funktionsparameter festgelegt. Bei Betätigung von
wird die Default-Rückgabezeichenkette an den Aufrufer zurückgegeben.
Unter BAE Demo steht die Option zum Speichern des aktuell bearbeiteten Texts nicht zur Verfügung, und die üblicherweise über die rechte Maustaste unter Windows verfügbare Funktion zum Kopieren des aktuell bearbeiteten Texts in das Clipboard ist ebenfalls deaktiviert.
Funktion bae_readtext.
string bae_readtext( // Zeichenkette
string; // Eingabeaufforderung
int; // Maximale Eingabelänge
);
Die Funktion bae_readtext fordert den Benutzer in der Eingabezeile mit der übergebenen Promptzeichenkette zur Eingabe einer Zeichenkette auf. Der Rückgabewert dieser Funktion entspricht der vom Benutzer eingegebenen Zeichenkette, wobei die über Tastatur eingebbare maximale Länge der Antwortzeichenkette durch den entsprechenden Funktionsparameter definiert wird. Wurde vor dem bae_readtext-Aufruf mit bae_setmousetext die Möglichkeit der Textübergabe per Mausklick aktiviert, dann ist parallel zur Tastatureingabe die Betätigung einer Maustaste möglich; der Rückgabewert der Funktion bae_readtext ergibt sich dann aus der mit bae_setmousetext definierten Antwortzeichenkette. Nach Ablauf der Funktion bae_readtext wird die mit bae_setmousetext definierte Möglichkeit der Mausklickeingabe wieder deaktiviert. Wurde vor dem bae_readtext-Aufruf mit bae_popshow ein Popupmenü aktiviert (ohne dass eine Mausklickeingabe mit bae_setmousetext aktiviert wurde), dann ist parallel zur Tastatureingabe die Mausselektion eines der innerhalb des Popupmenüs mit bae_popcolchoice bzw. mit bae_poptextchoice definierten Selektionselemente (Farbbalken bzw. Texte) möglich, wobei sich dann die entsprechend definierten Zeichenketten-Rückgabewerte ergeben.
Die Funktion bae_readtext deaktiviert alle zuvor mit bae_popcolchoice, bae_poptextchoice und bae_setmousetext aktivierten Selektionsalternativen.
Funktionen bae_popcolchoice, bae_popshow, bae_poptextchoice, bae_readedittext, bae_setmousetext.
int bae_redefmainmenu( // Status
);
Die Funktion bae_redefmainmenu startet die (Neu-)Definition des Hauptmenüs im aktuell aktiven BAE-Modul. Der Rückgabewert der Funktion bae_redefmainmenu ist (-1), wenn ein Fehler aufgetreten ist oder Null andernfalls. Im Anschluss an den Aufruf der Funktion bae_redefmainmenu sollten über die Funktion bae_defmenu (zu beenden mit bae_endmenu) zumindest die Hauptmenüeinträge definiert werden. Wahlweise können anschließend auch die Untermenüs über die Funktion bae_defselmenu (zu beenden mit bae_endmenu) konfiguriert werden. Zwischen den Funktionsaufrufen für bae_defmenu bzw. bae_defselmenu einerseits und der Funktion bae_endmenu sind mit durch wiederholten Aufruf der Funktion bae_defmenutext die einzelnen Menüeinträge zu definieren. Die Definition des Hauptmenüs muss mit der Funktion bae_endmainmenu beendet werden. Mit der Funktion bae_resetmenuprog können sämtliche Menübelegungen wieder zurückgesetzt werden.
Funktionen bae_defmenu, bae_defmenuprog, bae_defmenutext, bae_defselmenu, bae_endmainmenu, bae_endmenu, bae_redefmenu, bae_resetmenuprog.
int bae_redefmenu( // Status
int [0,999]; // Menünummer
int [0,99]; // Menüzeile
string; // Menütext
int; // BAE-Menüfunktion (STD4)
int; // Menüeintrag Bearbeitungsschlüssel:
// 8000000h = immer aktivierbar
// 7FFFFFFh = für jeden Elementtyp
// aktivierbar
// sonstige = (kombinierter)
// DDB-Klassen-Schlüssel
);
Die Funktion bae_redefmenu ordnet einem Menüeintrag den angegebenen Menütext sowie die numerisch spezifizierte BAE-Menüfunktion zu. Die Menünummer gibt die Nummer des Hauptmenüs an, die Menüzeile die Position im zugehörigen Submenü. Der Bearbeitungsschlüssel dient der Konfiguration von sogenannten Ghostmenüs. Hierfür ist ein kodierter Integerwert einzutragen, wie er mit den Funktionen bae_getclassbitfield oder bae_getmenubitfield ermittelt bzw. definiert werden kann (im Zweifelsfall empfiehlt sich die Verwendung des Hexadezimalwertes 80000000h, um sicherzustellen, dass die Funktion immer aktivierbar ist). Der Rückgabewert der Funktion bae_redefmenu ist (-1), wenn ein Fehler aufgetreten ist oder Null andernfalls. Mit der Funktion bae_resetmenuprog können sämtliche Menübelegungen wieder zurückgesetzt werden.
Funktionen bae_defmenuprog, bae_getclassbitfield, bae_getmenubitfield, bae_resetmenuprog.
void bae_resetmenuprog(
);
Die Funktion bae_resetmenuprog setzt sämtliche mit bae_deffuncprog, bae_defkeyprog, bae_defmenuprog, bae_redefmainmenu, bae_defmenu, bae_defselmenu, bae_defmenutext, bae_redefmenu vorgenommenen Tasten- und Menüdefinitionen zurück und versetzt das System so in den Default Anfangszustand.
Funktionen bae_deffuncprog, bae_defkeyprog, bae_defmenu, bae_defmenuprog, bae_defmenutext, bae_defselmenu, bae_redefmainmenu, bae_redefmenu.
int bae_sendmsg( // Status
string; // Meldung Textstring
int [0,1]; // Flag - projektspezifische Nachricht
);
Die Funktion bae_sendmsg ist nur in BAE HighEnd verfügbar. Wenn die Funktion nicht in BAE HighEnd aufgerufen wird, oder wenn Parameterangaben ungültig oder unvollständig sind, dann wird ein Wert ungleich Null zurückgegeben. Mit bae_sendmsg wird ein Messagestring an die anderen Module eine BAE HighEnd-Sitzung übermittelt. Dabei kann über den zweiten Funktionsparameter angegeben werden, ob alle Module die Nachricht erhalten sollen, oder ob die Nachricht nur an die Module geschickt werden soll, in denen gerade Elemente derselben DDB-Datei bearbeitet werden. Zu einer Sitzung gehören alle Programminstanzen, die ausgehend von einem BAE-Aufruf über die Funktion aus dem BAE-Hauptmenü oder dem Schaltplaneditor gestartet wurden. In den addressierten Modulen wird bei Ankunft einer Nachricht automatisch das User Language-Programm bae_msg gestartet. Ist bae_msg nicht verfügbar, dann erfolgt der Aufruf eines User Language-Programms mit modulspezifischem Namen (scm_msg im Schaltplaneditor, ged_msg im Layouteditor, ar_msg im Autorouter, etc.). Das automatisch gestartete User Language-Programm muss die Nachricht mit der Funktion bae_getmsg entgegennehmen. Die Nachricht steht nur während der Dauer dieses Programmaufrufs zur Verfügung. Wird die Nachricht von dem *_msg-Programm nicht angenommen, dann geht sie verloren. Der Inhalt der Nachricht kann dazu benutzt werden, eine spezielle Aktion im empfangenden Modul auszulösen.
Funktion bae_getmsg.
int bae_setanglelock( // Status
int [0,1]; // Winkelfreigabe Flag (STD9)
);
Die Funktion bae_setanglelock setzt den Wert des Winkelfreigabeflags im AutoEngineer (0=Winkel freigeben, 1=Winkel einhalten). Es wird ein Wert ungleich Null zurückgegeben, wenn ein ungültiger Flagwert angegeben wurde.
Funktion bae_getanglelock.
int bae_setbackgrid( // Status
double [0.0,[; // X-Hintergrundraster (STD2)
double [0.0,[; // Y-Hintergrundraster (STD2)
);
Die Funktion bae_setbackgrid setzt die Werte für das Hintergrundraster im AutoEngineer. Werte von Null spezifizieren, dass kein Hintergrundraster angezeigt werden soll. Es wird ein Wert ungleich Null zurückgegeben, wenn ungültige Rasterwerte spezifiziert wurden.
Funktion bae_getbackgrid.
int bae_setclipboard( // Status
string; // Textstring
);
Die Funktion bae_setclipboard speichert den ügergebenen Textstring in der Windows-Zwischenablage. Der Funktionsrückgabewert ist Null bei erfolgreicher Ausführung der Funktion oder ungleich Null im Fehlerfall.
int bae_setcolor( // Status
int; // Anzeigeelementtyp (SCM1|LAY9|ICD9)
int; // Farbwert (STD18)
);
Die Funktion bae_setcolor setzt den Farbwert für den angegebenen Anzeigeelementtyp. Der Wert für den Anzeigeelementtyp muss entsprechend der aktuellen Interpreterumgebung gesetzt sein. Der Rückgabewert ist ungleich Null, wenn der Farbwert nicht gesetzt werden konnte.
Um beim Umdefinieren von Farbtabellen unnötige Bildneuaufbauten zu vermeiden, führt die Funktion bae_setcolor keinen automatischen Bildneuaufbau durch. Es liegt somit in der Verantwortung des Aufrufers, den erforderlichen Bildneuaufbau nach einer mit bae_setcolor durchgeführten Farbtabellendefinitionssequenz auszulösen.
Funktion bae_getcolor.
int bae_setcoorddisp( // Status
int [0,1]; // Koordinatenanzeigemodus (STD7)
);
Die Funktion bae_setcoorddisp setzt den Koordinatenanzeigemodus im AutoEngineer, wobei der Wert 0 für mm-Einheiten (bzw. Mikrometer-Einheiten im IC-Design System) und der Wert 1 für Inch-Einheiten (bzw. mil-Einheiten im IC-Design System) anzugeben ist. Es wird ein Wert ungleich Null zurückgegeben, wenn ein ungültiger Modus angegeben wurde.
Funktion bae_getcoorddisp.
int bae_setdblpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = maximale Dialogboxbreite
// 1 = maximale Dialogboxhöhe
// 2 = Grafikanzeige Zoomfaktor
// 3 = Gummibandeckradius (STD2)
// 4 = Gummiband X-Vektorkoordinate (STD2)
// 5 = Gummiband Y-Vektorkoordinate (STD2)
// 6 = Fixierte X-Pickkoordinate (STD2)
// 7 = Fixierte Y-Pickkoordinate (STD2)
// [ 8 = Systemparameter - kein Schreibzugriff ]
// [ 9 = Systemparameter - kein Schreibzugriff ]
// 10 = Bildschirmpickbereich (STD2)
// 11 = Elementauswahl relativer Vorschaubereich [0.05, 0.95]
// [ 12 = Systemparameter - kein Schreibzugriff ]
// [ 13 = Systemparameter - kein Schreibzugriff ]
double; // Parameterwert
);
Die Funktion
bae_setdblpar dient dazu, Systemparameter vom Typ
double im
Bartels AutoEngineer zu setzen. Der Funktionsrückgabewert ist Null bei erfolgreicher Parameterzuweisung oder (-1) im Fehlerfall. Die Werte von mit
bae_setdblpar gesetzten Systemparametern können mit der Funktion
bae_getdblpar abgefragt werden.
Funktionen bae_getdblpar, bae_getintpar, bae_getstrpar, bae_setintpar, bae_setstrpar.
int bae_setgridlock( // Status
int [0,1]; // Rasterfreigabe Flag (STD8)
);
Die Funktion bae_setgridlock setzt den Wert des Rasterfreigabeflags im AutoEngineer (0=Raster freigeben, 1=Raster einhalten). Es wird ein Wert ungleich Null zurückgegeben, wenn ein ungültiger Flagwert angegeben wurde.
Funktion bae_getgridlock.
int bae_setgridmode( // Status
int [0,255]; // Modus für automatische Rastereinstellung:
// 0x01: Eingaberaster = 0.25 × Hintergrundraster
// 0x02: Eingaberaster = 0.50 × Hintergrundraster
// 0x04: Eingaberaster = 1.00 × Hintergrundraster
// 0x08: Eingaberaster = 2.00 × Hintergrundraster
// 0x10: Hintergrundraster = 0.25 × Eingaberaster
// 0x20: Hintergrundraster = 0.50 × Eingaberaster
// 0x40: Hintergrundraster = 1.00 × Eingaberaster
// 0x80: Hintergrundraster = 2.00 × Eingaberaster
);
Die Funktion bae_setgridmode setzt den BAE Rasterabhängigkeitsmodus. Der Funktionsrückgabewert ist ungleich Null wenn ein ungültiger Rasterabhängigkeitsmodus spezifiziert wurde.
Funktion bae_getgridmode.
int bae_setinpgrid( // Status
double [0.0,[; // X-Eingaberaster (STD2)
double [0.0,[; // Y-Eingaberaster (STD2)
);
Die Funktion bae_setinpgrid setzt die Werte für das Eingaberaster im AutoEngineer. Es wird ein Wert ungleich Null zurückgegeben, wenn ungültige Rasterwerte spezifiziert wurden.
Funktion bae_getinpgrid.
int bae_setintpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = Koordinateneingaben Bereichsprüfung:
// 0 = Bereichsprüfung aktivieren
// 1 = Bereichsprüfung deaktivieren
// 1 = Modulwechsel Autosavemodus:
// 0 = Autosave ohne Benutzerabfrage
// 1 = Benutzerabfrage vor Autosave
// 2 = Anzeigedeaktivierungsmodus:
// 0 = Anzeige aktiviert Prüfung
// 1 = Anzeige deaktivieren
// [ 3 = Benutzeroberfläche Menü-/Mausmodus: ]
// [ Systemparameter schreibgeschützt ]
// 4 = Arbeitsbereichstext Farbauswahl:
// 0 = Standardfarben
// 1 = invertierte Standardfarben
// 2 = arbeitsbereichsspezifische Farben
// 5 = Element Laden Anzeigemodus:
// 0 = Übersichtsanzeige nach Laden
// 1 = Anzeige aktiviert durch bae_load
// 6 = Dateiauswahl Dialogmodus:
// 0 = alte BAE-Dateiauswahl
// 1 = Explorer Standardansicht
// 2 = Explorer Listenansicht
// 3 = Explorer Detailansicht
// 4 = Exploreransicht kleine Piktogramme
// 5 = Exploreransicht große Piktogramme
// 6 = Standard-Stil und Standard-Größe benutzen
// 7 = Elementauswahl Dialogmodus:
// 0 = nur Name anzeigen
// 1 = Name und Datum anzeigen
// 8 = Elementauswahl Sortierfunktion:
// 0|1 = Sortierung nach Name
// 2 = Sortierung numerisch
// 3 = Sortierung nach Datum
// 9 = Anzeigemodus Platzierung:
// 0 = platzierte Elemente sichtbar
// 1 = unplatzierte Elemente sichtbar
// [ 10 = Letzter Dateisystemfehler: ]
// [ Systemparameter schreibgeschützt ]
// 11 = Kommandohistorie Modus:
// 0 = Kommandohistorie aktiviert
// 1 = Kommandohistorie deaktiviert
// 12 = Popupmenü Mauswarpmodus:
// 0 = Kein Popupmenü Mauswarp
// 1 = Popupmenü Mauswarp erstes Element
// 2 = Popupmenü Mauswarp vorselektiertes Element
// +4 = Mauspositionsrestore-Warp
// +8 = Elementpickpositions-Warp
// 13 = Sicherungsmodus:
// 0 = Sicherung aktiviert
// 1 = Sicherung deaktiviert
// 14 = Minimalgröße Mausrechteck:
// ]0,[ = minimale Mausrechteckgröße
// 15 = Anzeigemodus Mausinfo:
// 0 = keine kontinuierliche Infoanzeige
// 1 = kontinuierliche Infoanzeige
// 16 = Nächste Dialogbox-Identifikationsnummer
// 17 = Zuletzt erzeugte Tooltipidentifikationsnummer
// 18 = Polygonverwurfsanzahl
// 19 = Polygonprüfungsabschaltung:
// 0 = Polygonprüfung aktivieren
// 1 = Polygonprüfung abschalten
// 20 = Kursortastenrastermodus:
// 0 = Eingaberaster
// 1 = Pixelraster
// 21 = Flag - Element nicht gesichert
// 22 = Elementbatchlademodus:
// 0 = keinen Batch laden
// 1 = Batch laden
// 2 = Batch laden, Zoomfenster restaurieren
// 23 = Rasterlinienanzeige:
// 0 = Punktraster
// 1 = Linienraster
// 24 = Flag - Spiegelungsanzeige
// 25 = Flag - Eingaberasteranzeige
// 26 = Mausfunktionswiederholungsmodus:
// 0 = Menüfunktion wiederholen
// +1 = Tastenfunktion wiederholen
// +2 = Kontextmenüfunktion wiederholen
// [ 27 = Maximale Undo-Redo-Anzahl: ]
// [ Systemparameter schreibgeschützt ]
// 28 = Menübaumansichtsmodus:
// 0 = Kein Menübaumfenster
// 1 = Menübaumfenster links
// 2 = Menübaumfenster rechts
// 29 = Menübaumansicht Pixelbreite
// 30 = Flag - Meldungshistorie deaktiviert
// 31 = Elementlademeldungsmodus:
// 0 = Standardmeldung
// 1 = Benutzerspezifische Meldung
// 2 = Benutzerspezifische Fehlermeldung
// 32 = Pickmarkeranzeigemodus:
// 0 = Kreismarker
// 1 = Diamantmarker
// 33 = Mausdrag-Status:
// 0 = Kein Mausdrag
// 1 = Mausdragangeforderung
// 2 = Mausdrag durchgeführt
// 3 = Mausdragfreigabeanforderung
// 34 = Flag - Menüfunktionswiederholung angefordert
// 35 = Flag - Funktion abgebrochen
// 36 = Flag - Planauswahlvorschau
// 37 = Dateizugriffsfehler-Anzeigemodus:
// 0 = Nur Statuszeilenanzeige
// 1 = Bestätigungsabfrage
// 38 = Elementauswahl-Referenzanzeigemodus:
// 0 = Projektdatei-Referenzen anzeigen
// 1 = Bibliotheksdatei-Referenzen anzeigen
// 39 = Maus-Doppelklick-Modus:
// 0 = Doppelklick und Selektion von 0 an rechte Maustaste zuweisen
// 1 = Doppelklick ignorieren
// 2 = Doppelklick an rechte Maustaste zuweisen
// 40 = Mauspick-Doppelklick-Modus:
// 0 = Doppelklick an rechte Maustaste zuweisen
// 1 = Doppelklick ignorieren
// [ 41 = Flags - Dialogelementunterstützung: ]
// [ Systemparameter schreibgeschützt ]
// 42 = Fortschrittsanzeigemodus:
// 0 = Keine Fortschrittsanzeige
// 1 = Fortschrittsanzeige
// 43 = Abbruchanforderungsflag für Fortschrittsanzeige:
// 44 = Flag - Mittlere Maustaste deaktiviert:
// [ 45 = Anzahl aktueller Undo-Elemente: ]
// [ Systemparameter schreibgeschützt ]
// [ 46 = Flag - Datei Drag-und-Drop Operation: ]
// [ Systemparameter schreibgeschützt ]
// 47 = Flag - Automatische BAE-Fensteraktivierung
// [ 48 = Anzahl aktive Menüfunktionen ]
// [ Systemparameter schreibgeschützt ]
// [ 49 = Anzahl Punkte in interner Polygonliste ]
// [ Systemparameter schreibgeschützt ]
// 50 = Priorit&auuml;t alternative Konfigurationsdatei
// 51 = Sicherungsmodus für Dialogposition:
// 0 = Absolutkoordinaten specihern
// 1 = Hauptfenster-Relativkoordinaten speichern
// 2 = Hauptfenster-Monitorabsolutkoordinaten speichern
// 52 = Message-Box Default-Button-Index:
// (-1) = Kein Default (Abbruch oder No
// 0-2 = Default-Button-Index
int; // Parameterwert
);
Die Funktion
bae_setintpar dient dazu, Systemparameter vom Typ
int im
Bartels AutoEngineer zu setzen. Der Funktionsrückgabewert ist Null bei erfolgreicher Parameterzuweisung oder (-1) im Fehlerfall. Die Werte von mit
bae_setintpar gesetzten Systemparametern können mit der Funktion
bae_getintpar abgefragt werden.
Funktionen bae_getdblpar, bae_getintpar, bae_getstrpar, bae_setdblpar, bae_setstrpar.
int bae_setmoduleid( // Rückgabe Status
string; // Modulbezeichnung
);
Die Funktion bae_setmoduleid setzt die Bezeichnung des aktuell aktiven BAE-Programmmoduls. Der Funktionsrückgabewert ist Null bei erfolgreicher Zuweisung der Modulbezeichnung oder ungleich NUll im Fehlerfall.
Funktion bae_getmoduleid.
int bae_setmousetext( // Status
string; // Antwort-Zeichenkette
);
Die Funktion bae_setmousetext definiert die übergebene Antwort-Zeichenkette als Default-Rückgabewert bei Aktivierung einer Maustaste für einen nachfolgenden Aufruf der Funktion bae_readtext. Ein Aufruf der Funktion bae_readtext deaktiviert gleichzeitig auch wieder die zuvor mit bae_setmousetext definierte Möglichkeit der Mausklick-Eingabe.
Funktion bae_readtext.
int bae_setplanfname( // Status
string; // BAE-Projektdateiname
);
Die Funktion
bae_setplanfname setzt den BAE-Projektdateinamen. Die Dateinamenserweiterung
.ddb wird automatisch angefügt, wenn ein BAE-Projektdateiname ohne Dateinamenserweiterung spezifiziert wurde. Der Rückgabewert der Funktion ergibt sich zu Null, wenn der BAE-Projektdateiname erfolgreich gesetzt wurde, zu 1 bei fehlendem bzw. falschem Funktionsparameter oder zu 2, wenn durch ein geladenes Element bereits ein BAE-Projektdateiname definiert ist.
Funktion bae_planfname.
void bae_setpopdash(
double ]0.0,[; // Basisstrichlinie (STD2)
double ]-0.5,0.5[; // Relativer Strichabstand
);
Die Funktion bae_setpopdash setzt die Basislänge und den relativen Strichabstand für die Ausgabe gestrichelter Linien in Popupmenüs bzw. Toolbars.
Funktion bae_popdrawpoly.
int bae_setstrpar( // Status int [0,[; // Parametertyp/-nummer: // 0 = Aktueller Element-Kommentartext // 1 = Aktuelle Element-Spezifikation // [ 2 = Systemparameter - kein Schreibzugriff ] // [ 3 = Systemparameter - kein Schreibzugriff ] // 4 = Fadenkreuz-Infotext // 5 = Tooltip text // [ 6 = Systemparameter - kein Schreibzugriff ] // 7 = Menütext der aktuell aktiven Funktion // 8 = Aktueller Menüitemelementtext // 9 = Aktuelle benutzerspezifische Elementlademeldung // 10 = Zwischenablage-Textstring // 11 = Modulaufruf nächstes Dateiargument // 12 = Modulaufruf nächstes Elementargument // 13 = Modulaufruf nächstes Kommando-/Typargument // 14 = Letzter Ausgabedateiname // [ 15 = Systemparameter - kein Schreibzugriff ] // 16 = Werkzeugleistenschaltfläche Zeichen/Resourceelement // [ 17 = Systemparameter - kein Schreibzugriff ] // [ 18 = Systemparameter - kein Schreibzugriff ] // 19 = Alternatives Verzeichnis für Konfigrationsdaten // 20 = Spalte lokale Daten // 21 = Spalt globale Daten string; // Parameterwert );
Die Funktion
bae_setstrpar dient dazu, Systemparameter vom Typ im
string im
Bartels AutoEngineer zu setzen. Der Funktionsrückgabewert ist Null bei erfolgreicher Parameterzuweisung oder (-1) im Fehlerfall. Die Werte von mit
bae_setstrpar gesetzten Systemparametern können mit der Funktion
bae_getstrpar abgefragt werden.
Funktionen bae_getdblpar, bae_getintpar, bae_getstrpar, bae_setdblpar, bae_setintpar.
void bae_settbsize(
double [0.0,[; // Toolbargröße
int [0,3]; // Toolbar Anordnung/Ausrichtung:
// 0 = horizontal an unterer
// Arbeitsbereichsbegrenzung
// 1 = vertikal an rechter
// Arbeitsbereichsbegrenzung
// 2 = horizontal an oberer
// Arbeitsbereichsbegrenzung
// 3 = vertikal an linker
// Arbeitsbereichsbegrenzung
);
Mit der Funktion bae_settbsize kann eine Werkzeugleiste definiert bzw. angezeigt werden. Der erste Parameter gibt dabei in Abhängigkeit vom zweiten Parameter die gewünschte Größe des Toolbarbereichs an. Bei vertikaler Ausrichtung der Toolbar wird dieser Wert als Spaltenanzahl interpretiert, bei horizontaler Ausrichtung hingegen als Zeilenanzahl. Durch die Angabe des Wertes Null für die Toolbargröße kann eine bereits definierte Toolbar wieder ausgeblendet werden. Die Dimension des verfügbaren Grafikarbeitsbereichs zur Anzeige von Toolbars kann mit der Funktion bae_mtpsize ermittelt werden. Mit der Funktion bae_tbsize kann die tatsächliche Größe einer mit bae_settbsize definierten Toolbar nachträglich abgefragt werden. Die Funktion bae_popsetarea dient dazu, wahlweise die Toolbar oder das Standard-Popupmenü für nachfolgende Popupoperationen zu aktivieren. Mit der Funktion bae_popclrtool können sämtliche Anzeigen der aktuellen Toolbar gelöscht bzw. deaktiviert werden.
Funktionen bae_mtpsize, bae_popclrtool, bae_popsetarea, bae_tbsize.
int bae_storecmdbuf( // Status
int [0,[; // Kommandospeichermodus
// 0 : Kommando an Historie anfügen
string; // Kommando- bzw. Kommandosequenzzeichenkette
string; // Kommandoanzeigetext
);
Die Funktion bae_storecmdbuf trägt das angegebene Kommando in die aktuelle Kommandohistorie ein. Über den Kommandospeichermodus wird angegeben wo das Kommando in der Historie einzufügen ist und ob bzw. wie die Kommandohistorie umzuorganisieren ist. Die Kommando- bzw. Kommandosequenzzeichenkette und der Kommandoanzeigetext (entsprechend der Titelleistenanzeige) werden über den zweiten und dritten Funktionsparameter angegeben. Der Funktionsrückgabewert ist Null wenn die Zuweisung erfolgreich war oder ungleich Null im anderen Fall.
Funktion bae_getcmdbuf.
int bae_storedistpoly( // Status
);
Die Funktion bae_storedistpoly speichert das aktuell mit bae_clearpoints und bae_storepoint erzeugte Polygon als Distanzabfragepolygon. Anschließend kann die Funktion bae_querydist zur Bestimmung des Abstands eines gegebenen Punktes zum Distanzabfragepolygon verwendet werden. Das mit bae_storedistpoly gespeicherte Distanzabfragepolygon kann mit der Funktion bae_cleardistpoly wieder gelöscht werden. Der Rückgabewert der Funktion ist Null, wenn kein Fehler aufgetreten ist, (-1) wenn das interne Distanzabfragepolygon bereits definiert ist oder (-2) bei ungültigen Polygondaten.
Funktionen bae_cleardistpoly, bae_clearpoints, bae_querydist, bae_storepoint.
int bae_storeelem( // Status
string; // Dateiname
string; // Elementname
);
Die Funktion bae_storeelem speichert das aktuell im AutoEngineer geladene Element unter dem angegebenen Namen in die Zieldatei. Diese Funktion entspricht der Menüfunktion , d.h. falls in eine andere Datei geschrieben wird, muss gegebenenfalls aufgerufen werden. Der Rückgabewert ist Null, wenn keine Fehler aufgetreten sind, (-1) bei Dateizugriffsfehlern, 1 bei ungültigen Parametern und 2 wenn kein Element im Speicher vorhanden ist.
void bae_storekeyiact(
int [0,3]; // Automatischer Interaktionsmodus (STD21)
int; // Tastenzeichencode (ASCII)
);
Die Funktion bae_storekeyiact ermöglicht die Steuerung von Tasteneingaben bei der Ausführung von Menüfunktionen über die Funktion bae_callmenu. Ist der Interaktionsmodus auf Null gesetzt, so wird die Tasteneingabe vom Benutzer erwartet, ansonsten wird der übergebene Tastencode als Eingabe übernommen. Die Vorgaben werden in einer Queue gespeichert, d.h. es sind mehrere Vorgaben zur Steuerung ganzer Eingabeabläufe möglich.
Funktionen bae_peekiact, bae_storemenuiact, bae_storemouseiact, bae_storetextiact.
void bae_storemenuiact(
int [0,3]; // Automatischer Interaktionsmodus (STD21)
int; // Menüzeile (0..n-1)
int [1,3]; // Maustaste (STD17)
);
Die Funktion bae_storemenuiact ermöglicht die Steuerung von Menüeingaben bei der Ausführung von Menüfunktionen über die Funktion bae_callmenu. Ist der Interaktionsmodus auf Null gesetzt, so wird die entsprechende Menüwahl vom Benutzer erwartet, ansonsten wird die übergebene Menüzeile als Menüwahl mit der entsprechenden Maustaste übernommen. Die Vorgaben werden in einer Queue gespeichert, d.h. es sind mehrere Vorgaben zur Steuerung ganzer Eingabeabläufe möglich.
Funktionen bae_peekiact, bae_storekeyiact, bae_storemouseiact, bae_storetextiact.
void bae_storemouseiact(
int [0,3]; // Automatischer Interaktionsmodus (STD21)
double; // Maus X-Koordinate (STD2)
double; // Maus Y-Koordinate (STD2)
int [0,15]; // Mauskoordinatenmodus:
// 0 = angegebene Koordinaten mit Rasterfang benutzen
// 1 = alte Mauskoordinaten benutzen
// 2 = angegebene Koordinaten rasterfrei benutzen
// +4 = Mauszeiger auf angegebene Position setzen
// +8 = BAE-Fenster aktivieren
int [0,3]; // Maustastencode (STD17)
[]; // Tastatureingabe
);
Die Funktion bae_storemouseiact ermöglicht die Steuerung von Mauseingaben bei der Ausführung von Menüfunktionen über die Funktion bae_callmenu. Ist der Interaktionsmodus auf Null gesetzt, so wird die entsprechende Mauseingabe vom Benutzer erwartet, ansonsten werden die übergebenen Mausdaten als Eingabe übernommen. Bei Übergabe des Maustastencodes Null ist über den Tastatureingabeparameter ein Zeichen zu übergeben. Die Vorgaben werden in einer Queue gespeichert, d.h. es sind mehrere Vorgaben zur Steuerung ganzer Eingabeabläufe möglich.
Funktionen bae_callmenu, bae_peekiact, bae_storekeyiact, bae_storemenuiact, bae_storetextiact.
int bae_storepoint( // Status
double; // X-Koordinate (STD2)
double; // Y-Koordinate (STD2)
int [0,2]; // Punkttyp (STD15)
);
Die Funktion bae_storepoint trägt den übergebenen Punkt in die interne Punktliste ein. Der Rückgabewert ist ungleich Null, wenn ungültige Punktdaten spezifiziert wurden. Die interne Punktliste wird von den modulspezifischen Funktionen *_storepoly bzw. *_storepath oder der Funktion bae_storedistpoly zur Generierung von Polygonen und Leiterbahnen benötigt und kann mit der Funktion bae_clearpoints wieder gelöscht werden.
Funktionen bae_clearpoints, bae_getpolyrange, bae_storedistpoly.
void bae_storetextiact(
int [0,3]; // Automatischer Interaktionsmodus (STD21)
string; // Eingabetext
);
Die Funktion bae_storetextiact ermöglicht die Steuerung von Texteingaben bei der Ausführung von Menüfunktionen über die Funktion bae_callmenu. Ist der Interaktionsmodus auf Null gesetzt, so wird die entsprechende Texteingabe vom Benutzer erwartet, ansonsten wird die übergebene Zeichenkette als Texteingabe übernommen. Die Vorgaben werden in einer Queue gespeichert, d.h. es sind mehrere Vorgaben zur Steuerung ganzer Eingabeabläufe möglich.
Funktionen bae_peekiact, bae_storekeyiact, bae_storemenuiact, bae_storemouseiact.
int bae_swconfig( // Software-Konfigurationscode:
// (-1) = ungültige Konfigurationsklasse,
// für Konfigurationsklasse 0:
// 0 = unbekanntes System
// 1 = Bartels ACAD-PCB
// 2 = BAE Professional
// 3 = BAE HighEnd
// für Konfigurationsklasse 1:
// 0 = nicht BAE Demo
// 1 = BAE Demo
// 2 = BAE FabView
// für Konfigurationsklasse 2:
// ungleich Null = BAE Economy
// für Konfigurationsklasse 3:
// 0 = BAE-Standardmenü-Interface
// 1 = BAE-Standardmenü unter Windows
// 2 = BAE-Pulldownmenü unter Windows
// 3 = BAE-Standardmenü unter Motif
// 4 = BAE-Pulldownmenü unter Motif
// für Konfigurationsklasse 4:
// ungleich Null = BAE Light
// für Konfigurationsklasse 5:
// 0 = keine BAE Schematics Software
// 1 = BAE Schematics
// 2 = BAE HighEnd Schematics
// für Konfigurationsklasse 6:
// Versionsgenerierungsnummer (Build-Nummer)
int; // Software-Konfigurationsklasse:
// 0 = Abfrage BAE Software-System
// 1 = Abfrage BAE Demo
// 2 = Abfrage BAE HighEnd
// 3 = Abfrage BAE User Interface
// 4 = Abfrage BAE Light
// 5 = Abfrage BAE Schematics
// 6 = Abfrage Versionsgenerierungsnummer (Build-Nummer)
);
Die Funktion bae_swconfig ermittelt die aktuell aktivierte BAE-Softwarekonfiguration. Diese Information wird z.B. für die Funktionen bae_defmenuprog, bae_callmenu und bae_store*iact zur richtigen Behandlung unterschiedlicher Auswahlmenüs in BAE Professional, BAE HighEnd, BAE Economy und BAE Light mit den verschiedenen Benutzeroberflächen (BAE-Standard, Windows- bzw. Motif-Pulldownmenüs) benötigt.
Funktion bae_swversion.
string bae_swversion( // Softwareversionsangabe oder Betriebssystemeinstellung
int; // Softwareversionsabfragemodus:
// 0 = Abfrage BAE Versionsnummer
// 1 = Abfrage BAE Freigabejahr (Format YY)
// 2 = Abfrage BAE Freigabejahr (Format YYYY)
// 3 = Abfrage betriebssystemspezifisches
// Muster zur Erkennung beliebiger Zeichenketten
// (z.B. * unter Linux, .* unter MS-DOS)
// 4 = Abfrage betriebssystemspezifisches
// Directorytrennzeichen
// (z.B. / unter Linux, \ unter MS-DOS)
);
Mit der Funktion bae_swversion können Angaben zur BAE-Softwareversion oder betriebssystemspezifische BAE-Einstellungen entsprechend dem spezifizierten Abfragemodus abgefragt werden.
Funktion bae_swconfig.
void bae_tbsize(
& double; // Rückgabe Toolbar Textspaltenanzahl
& double; // Rückgabe Toolbar Textzeilenanzahl
);
Die Funktion bae_tbsize ermittelt die Größe der mit bae_settbsize definierten bzw. angezeigten Werkzeugleiste. Die Toolbarbreite wird im Parameter für die Textspaltenanzahl zurückgegeben, während die Toolbarhöhe im Parameter für die Textzeilenanzahl zurückgegeben wird. Mit Hilfe der Funktion bae_charsize können diese Werte in Standardlängeneinheiten umgerechnet werden.
Funktionen bae_charsize, bae_mtpsize, bae_settbsize.
void bae_twsize(
& int; // Rückgabe Anzahl Spalten
& int; // Rückgabe Anzahl Zeilen
);
Die Funktion bae_twsize ermittelt die aktuelle Größe des Arbeitsbereiches für Textausgaben. Die Größenangaben werden in den beiden Funktionsparametern zurückgegeben und sind als die Anzahl der Spalten bzw. Zeilen des Arbeitsbereiches zu interpretieren. Mit Hilfe dieser Informationen lassen sich Art und Form der Ausgabe auf den Textausgabebereich dynamisch an die BAE-Grafikumgebung anpassen.
Funktion bae_mtpsize.
double bae_wswinlx( // Koordinatenwert (STD2)
);
Der Rückgabewert der Funktion bae_wswinlx entspricht der linken Begrenzungskoordinate des aktuell sichtbaren grafischen Arbeitsbereichsfensters.
double bae_wswinly( // Koordinatenwert (STD2)
);
Der Rückgabewert der Funktion bae_wswinly entspricht der unteren Begrenzungskoordinate des aktuell sichtbaren grafischen Arbeitsbereichsfensters.
double bae_wswinux( // Koordinatenwert (STD2)
);
Der Rückgabewert der Funktion bae_wswinux entspricht der rechten Begrenzungskoordinate des aktuell sichtbaren grafischen Arbeitsbereichsfensters.
double bae_wswinuy( // Koordinatenwert (STD2)
);
Der Rückgabewert der Funktion bae_wswinuy entspricht der oberen Begrenzungskoordinate des aktuell sichtbaren grafischen Arbeitsbereichsfensters.
void bae_wsmouse(
& double; // Rückgabe Maus-X-Koordinate (STD2)
& double; // Rückgabe Maus-Y-Koordinate (STD2)
& int; // Rückgabe Mausstatus:
// Bit 0 : jenseits linker
// Arbeitsbereichsbegrenzung
// Bit 1 : jenseits rechter
// Arbeitsbereichsbegrenzung
// Bit 2 : jenseits unterer
// Arbeitsbereichsbegrenzung
// Bit 3 : jenseits oberer
// Arbeitsbereichsbegrenzung
// Bit 4 : linke Maustaste gedrückt
// Bit 5 : rechte Maustaste gedrückt
// Bit 6 : mittlere Maustaste gedrückt
);
Mit der Funktion bae_wsmouse können die aktuellen Mauskoordinaten innerhalb des Grafikarbeitsbereichs ermittelt werden. Der Parameter zur Rückgabe des Mausstatus gibt an, welche Maustasten gerade gedrückt sind bzw. ob sich die Mausposition im Augenblick außerhalb der aktuellen Arbeitsbereichsbegrenzung befindet.
Funktion bae_popmouse.
void catext(
& string; // Dateiname
string; // Dateinamenserweiterung
);
Die Funktion catext hängt die angegebene Dateinamenserweiterung an den über den ersten Funktionsparameter spezifierten Dateinamen an sofern dieser nicht bereits mit dieser Dateinamenserweiterung endet.
Funktion catextadv.
void catextadv(
& string; // Dateiname
string; // Dateinamenserweiterung
int; // Bearbeitungsmodus:
// 0 = Erweiterung nur wenn Dateiname
// keine Erweiterung besitzt
// 1 = Annahme Dateiname besitzt keine
// oder spezifizierte Erweiterung
// 2 = Spezifizierte Erweiterung erzwingen
);
Die Funktion catextadv hängt die angegebene Dateinamenserweiterung optional entsprechend des angegebenen Bearbeitungsmodus an den über den ersten Funktionsparameter spezifierten Dateinamen an.
Funktion catext.
double ceil( // Berechnungsergebnis
double; // Eingabewert
);
Der Rückgabewert der Funktion ceil entspricht dem nächsten ganzzahligen Gleitkommawert, dessen Wert größer oder gleich dem des übergebenen Gleitkommawertes ist.
double clock( // Verbrauchte CPU-Zeit (Sekunden)
);
Der Rückgabewert der Funktion clock entspricht der seit dem Start des aktuellen BAE-Programmoduls verbrauchten CPU-Zeit in Sekunden.
void con_clear(
);
Die Funktion con_clear löscht die mit den Funktionen con_storepart und con_storepin erzeugte Logische Netzliste aus dem Hauptspeicher. Dies ist prinzipiell vor dem ersten Aufruf von con_storepart notwendig um evtl. vorhandene alte Netzlistendaten zu löschen. Diese Funktion sollte in jedem Fall aber auch dann aktiviert werden, wenn die im Speicher befindliche Netzliste nicht mehr benötigt wird, da andernfalls u.U. später ein Speicherüberlauf auftreten kann.
Funktionen con_storepart, con_storepin, con_write.
int con_compileloglib( // Status
string; // DDB-Zieldateiname
string; // Logische Bibliotheksdefinitionsdatei
string; // Logische Bibliotheksdefinition
);
Die Funktion
con_compileloglib kompiliert die angegebene(n) logischen Bibliotheksdefinitionen und speichert die kompilierten Loglib-Definitionen in der über den ersten Funktionsparameter spezifizierten DDB-Datei. Die logischen Bibliotheksdefinitionen sind in dem für das Utilityprogramm
loglib festglegten Eingabeformat bereitzustellen. Es kann entweder der Inhalt der über den zweiten Funktionsparameter spezifizierten Loglib-Definitionsdatei oder eine im dritten Funktionsparameter angegebene logische Bibliotheksdefinition kompiliert werden. Wird für einen dieser Parameter das Schlüsselwort
NULL angegeben, dann wird der entsprechende Umsetzungsmodus deaktiviert. Der Funktionsrückgabewert ist Null bei erfolgreicher Umsetzung; im Fehlerfall wird ein Wert ungleich Null zurückgegeben.
Funktionen con_deflogpart, con_getlogpart, lay_deflibname, scm_defloglname; BAE Utilityprogramm loglib.
int con_deflogpart( // Status
string; // DDB-Zieldateiname
string; // Logischer Bibliotheksteilname
string[]; // Physikalischer Bibliotheksteilname
int [0,1]; // Flag Defaultzuweisung
);
Die Funktion
con_deflogpart trägt die übergebene logische Bauteildefinition in die angegebene DDB-Zieldatei ein. Die hiermit definierte Zuweisung eines physikalischen Bibliotheksteils an ein Logikbauteil wird vom
Packager des
AutoEngineers zur Umsetzung logischer in physikalische Netzlisten benötigt. Der mit
con_deflogpart definierte Bibliothekseintrag stellt eine 1:1-Zuweisung dar, d.h. der
Packager wird bei einem derartig definierten Bauteil keine Pinnamensumsetzung vornehmen. Auch können mit
con_deflogpart keine Gatterzuweisungen, Pin/Gate-Swaps, Stromversorgungsanschlüsse oder Attributwertzuweisungen definiert werden. Ist für den physikalischen Bibliotheksteilnamen ein Leerstring angegeben, dann erfolgt die Zuweisung an ein virtuelles Bauteil. Wird eine Liste von Namen für das physikalischen Bibliotheksteil übergeben, dann werden entsprechend dieser Namensliste zulässige Alternativbauformen für die Funktionen zum Gehäusewechsel im Layout eingetragen. Ist das Flag für die Defaultzuweisung gesetzt, dann ist eine explizite Gehäusezuweisung über das Attribut
$plname erlaubt. Der Funktionsrückgabewert ist Null bei erfolgreicher Bauteildefinition, (-1) bei fehlenden bzw. ungültigen Parametern, oder (-2) wenn ein Fehler bei der Bauteildefinition aufgetreten ist.
Funktionen con_compileloglib, con_getlogpart; BAE-Utilityprogramm loglib.
int con_getddbpattrib( // Status
string; // DDB-Dateiname
string; // Bauteilname
string; // Pinname
& string; // Attributname
// oder Leerstring für Planname
// oder ! für erstes Attribut
// oder !$attrname für nächstes Attribut
& string; // Attributwert Rückgabe
);
Die Funktion con_getddbpattrib ermittelt einen Bauteil- oder Pinattributwert in einer DDB-Datei. Der Funktionsrückgabewert ist 1, wenn der Attributwert gefunden wurde, Null wenn das angegebene Attribut nicht existiert, oder (-1) bei Dateizugriffsfehlern. Wird für den Pinnamen ein Leerstring angegeben, dann erfolgt eine Bauteilattributabfrage, ansonsten wird der Pinattributwert ermittelt. Bei der Spezifikation von Platzhaltern für den Attributnamen (!bzw.!$attrname) wird der darüber adressierte Attributname im entsprechenden Funktionsparamter zurückgegeben.
Funktion con_setddbpattrib.
int con_getlogpart( // Status
string; // LOGLIB-Dateiname
string; // Elementname
int; // Anzahl Ausgabespalten
& string; // Definitionsrückgabestring
);
Die Funktion con_getlogpart schreibt die logische Bauteildefinition für das angegebene Element formatiert in den Rückgabestring. Der Rückgabewert ist gleich Null, wenn die Loglib-Information erfolgreich gespeichert wurde, (-1) bei fehlenden bzw. ungültigen Parametern, (-2) wenn die Datei nicht gefunden wurde, (-3) wenn das Element nicht in der Datei gefunden wurde oder (-4) wenn die Loglib-Information nicht erfolgreich geladen werden konnte. Für den LOGLIB-Dateinamen wird üblicherweise ein Projektdateiname oder der mit scm_defloglname abfragbare default Layoutbibliotheksname für den Packager-Lauf angegeben.
Funktionen con_compileloglib, con_deflogpart, lay_deflibname, scm_defloglname; BAE Utilityprogramm loglib.
int con_setddbpattrib( // Status
string; // DDB-Dateiname
string; // Bauteilname
string; // Pinname
string; // Attributname
string; // Attributwert
);
Mit der Funktion con_setddbpattrib kann ein Bauteil- oder Pin-Attributwert in einer DDB-Datei gesetzt werden. Der Rückgabewert der Funktion ist ungleich Null, wenn ein Fehler aufgetreten ist. Die Angabe des Bauteilnamens ist zwingend, das darüber spezifizierte Bauteil muss in der Netzliste der DDB-Datei definiert sein. Die Angabe des Pinnamens ist optional; wird für den Pinnamen ein Leerstring angegeben, dann wird der Attributwert als Bauteilattribut interpretiert, ansonsten erfolgt der Eintrag eines Pinattributs. Weder Bauteil- noch Pinname dürfen Großbuchstaben enthalten. Der Attributname muss mit dem Zeichen$beginnen und darf ebenfalls keine Großbuchstaben enthalten. Für den Attributwert darf ein Leerstring zum Zurücksetzen des Wertes angegeben werden; die maximal speicherbare Länge des Attributwert-Strings beträgt 40 Zeichen. Bei Spezifikation des konstanten AttributwertsPA_NILVALwird das Attribut (entsprechend der Schaltfläche im Schaltplaneditor) komplett zurückgesetzt.
Funktion con_getddbpattrib.
int con_storepart( // Status
string; // Logischer Bauteilname
string; // Logischer Bauteilbibliotheksname
);
Die Funktion con_storepart trägt das übergebene Logische Bauteil in die Bauteilliste der aktuell im Hauptspeicher befindlichen internen Logischen Netzliste ein. Der Rückgabewert ist gleich Null, wenn das Bauteil erfolgreich gespeichert wurde, (-1) bei fehlenden bzw. ungültigen Parametern, oder (-2) wenn das Bauteil bereits in der Netzliste definiert ist. Die interne Logische Netzliste kann mit con_write in einer DDB-Datei abgelegt werden oder mit con_clear wieder aus dem Hauptspeicher gelöscht werden.
Durch die Verwendung der con_store*-Funktionen wird Hauptspeicher belegt. Wenn die mit diesen Funktionen erzeugten Netzlistendaten nicht mehr benötigt werden, dann sollte in jedem Fall die im Speicher befindliche Netzliste mit con_write oder mit con_clear wieder gelöscht werden, um Speicherplatzproblemen vorzubeugen.
Funktionen con_clear, con_storepin, con_write.
int con_storepin( // Status
string; // Logischer Bauteilname
string; // Logischer Bauteilpinname
string; // Netzname
);
Die Funktion con_storepin trägt den übergebenen Logischen Bauteilpin in die aktuell im Hauptspeicher befindliche Logische Netzliste ein. Voraussetzung hierfür ist, dass ein Bauteil mit dem angegebenen Namen bereits vorher mit con_storepart definiert wurde. Ist für den Netznamen ein Leerstring angegeben, dann wird der Pin an kein Netz der Netzliste angeschlossen; im anderen Fall wird der angegebene Pin an das entsprechende Netz angeschlossen. Ist in der Netzliste noch kein Netz mit dem angegebenen Name definiert, dann wird dieses automatisch erzeugt. Der Rückgabewert ist gleich Null, wenn der Bauteilpin erfolgreich gespeichert wurde, (-1) bei fehlenden bzw. ungültigen Parametern, (-2) wenn das Bauteil noch nicht definiert ist, (-3) wenn der Pin bereits angeschlossen ist, oder (-4) wenn zu viele Netze definiert wurden.
Durch die Verwendung der con_store*-Funktionen wird Hauptspeicher belegt. Wenn die mit diesen Funktionen erzeugten Netzlistendaten nicht mehr benötigt werden, dann sollte in jedem Fall die im Speicher befindliche Netzliste mit con_write oder mit con_clear wieder gelöscht werden, um Speicherplatzproblemen vorzubeugen.
Funktionen con_clear, con_storepart, con_write.
int con_write( // Status
string; // DDB-Dateiname
string; // Netzlisten-Elementname
);
Die Funktion con_write dient dazu, die mit den con_store*-Funktionen erzeugte, aktuell im Hauptspeicher befindliche Logische Netzliste in der angegebenen DDB-Datei unter dem spezifizierten Elementnamen abzulegen. Darüber hinaus löscht con_write die interne Netzliste wieder aus dem Hauptspeicher. Der Rückgabewert ist gleich Null, wenn die Netzliste erfolgreich gespeichert wurde, (-1) bei fehlenden bzw. ungültigen Parametern, (-2) wenn keine Netzlistendaten definiert sind, oder (-3) wenn ein Fehler bei der Ausgabe auf die DDB-Datei aufgetreten ist. Das Format der durch con_write in der DDB-Datei abgelegten Logischen Netzliste entspricht dem Netzlistenformat, wie es durch den Schaltplaneditor des Bartels AutoEngineer erzeugt wird, d.h. die mit con_write generierte Netzliste kann anschließend durch einen Packager-Lauf in das Layoutsystem des Bartels AutoEngineer übernommen werden.
Die con_*-Funktionen stellen ein sehr mächtiges Hilfsmittel zur Übernahme von Fremdnetzlisten in den Bartels AutoEngineer dar. Dennoch bleibt zu beachten, dass eine unsachgerechter Anwendung dieser Funktionen unter Umständen eine inkonsistente und kaum mehr korrigierbare Vermischung von Netzlistendaten verursachen kann. Es wird daher nachdrücklich empfohlen, stets durch eine vorherige Prüfung der in der Zieldatei abgelegten Daten eine kontrollierte, d.h. konfliktfreie Netzlistenübernahme sicherzustellen.
Funktionen con_clear, con_storepart, con_storepin.
string convstring( // Rückgabe konvertierte Zeichenkette
string; // Eingabezeichenkette
int; // Konvertierungsmodus:
// 0 = Dateiname ohne Namenserweiterung ermitteln
// 1 = Dateiname ohne Verzeichnispfad ermitteln
// 2 = Dateiname ohne Namenserweiterung
// und Verzeichnispfad ermitteln
);
Die Funktion convstring wandelt die Eingabezeichenkette entsprechend dem angegebenen Konvertierungsmodus um und gibt das Ergebnis der Zeichenkettenumwandlung als Rückgabewert zuück.
double cos( // Berechnungsergebnis
double; // Winkel (STD3)
);
Der Rückgabewert der Funktion cos entspricht dem Cosinus des übergebenen Winkels. Der übergebene Gleitkommawert wird als Bogenmaßangabe interpretiert.
double cosh( // Berechnungsergebnis
double; // Winkel (STD3)
);
Der Rückgabewert der Funktion cosh entspricht dem hyperbolischen Cosinus des übergebenen Winkels. Der übergebene Gleitkommawert wird als Bogenmaßangabe interpretiert.
double cvtangle( // Winkel (in Ausgabemaßeinheiten)
double; // Winkel (in Eingabemaßeinheiten)
int [0,3]; // Eingabemaßeinheit
int [0,3]; // Ausgabemaßeinheit
);
Der Rückgabewert der Funktion cvtangle entspricht der Konvertierung des übergebenen Winkels von der Eingabe- in die Ausgabemaßeinheit. Mögliche Werte für die Maßeinheiten sind 0 für interne Winkel (Bogenmaß, STD3), 1 für Gradmaß, 2 für Bogenmaß (STD3) und 3 für Neugrad Winkel.
double cvtlength( // Länge (in Ausgabemaßeinheiten)
double; // Länge (in Eingabemaßeinheiten)
int [0,4]; // Eingabemaßeinheit
int [0,4]; // Ausgabemaßeinheit
);
Der Rückgabewert der Funktion cvtlength entspricht der Konvertierung der übergebenen Länge von der Eingabe- in die Ausgabemaßeinheit. Mögliche Werte für die Maßeinheiten sind 0 für Meter (STD2), 1 für Inch, 2 für mm, 3 für mil und 4 für Mikrometer.
int ddbcheck( // Rückgabe Abfragestatus
string; // DDB-Dateiname
int; // DDB-Datenbankklasse (STD1)
// bzw. (-1) bei gültiger DDB-Dateiprüfung
string; // Elementname bzw. Leerstring bei Prüfung auf beliebige Klassenelemente
);
Die Funktion ddbcheck prüft, ob ein Element der spezifizierten Datenbankklasse mit dem angegebenen Namen in der über den Dateinamen spezifizierten DDB-Datei existiert. Wird anstelle einer gültigen Datenbankklasse der Wert (-1) übergeben, dann prüft ddbcheck lediglich, ob die angegebene Datei verfügbar und eine DDB-Datei ist. Wird ein Leerstring für den Elementnamen übergeben, dann prüft ddbcheck lediglich, ob überhaupt Elemente der spezifizierten Datenbankklasse in der angegebenen Datei existieren. Der Funktionsrückgabewert is Null, wenn das spezifizierte DDB-Objekt existiert bzw. gefunden wurde oder (-1) im anderen Fall.
Funktionen ddbclassscan, ddbelemrefcount, ddbelemrefentry.
string ddbclassid( // Rückgabe DDB-Klassenbezeichnung oder Leerstring
int ]0,[; // DDB-Datenbankklasse (STD1)
);
Die Funktion ddbclassid ermittelt die Bezeichnung der spezifizierten Datenbankklasse und übergibt diese mit dem Funktionsrückgabewert. Bei Spezifikation unbekannter bzw. ungültiger DDB-Datenbankklassen wird ein Leerstring zurückgegeben.
int ddbclassscan( // Abarbeitungsstatus
string; // DDB-Dateiname
int ]0,[; // Element Datenbankklasse (STD1)
* int; // Elementname Abarbeitungsfunktion
);
Die Funktion ddbclassscan arbeitet alle Elemente der spezifizierten Datenbankklasse aus der angegebenen DDB-Datei ab. Dabei wird für jedes Element automatisch eine benutzerdefinierte Abarbeitungsfunktion aufgerufen sofern für den entsprechenden Parameter nicht das Schlüsselwort
NULLeingetragen ist. Der Funktionsrückgabewert gibt entweder die Anzahl der abgearbeiteten bzw. gefundenen Elemente an, oder ergibt sich zu (-1) bei ungültigen Parameterangaben oder bei einem Fehlerstatus aus der Abarbeitungsfunktion.Abarbeitungsfunktion
int callbackfunction( // Abarbeitungsstatus string ename // Elementname ) { // Verarbeitungsprogramm : return(scanstatus); }Der Rückgabewert der Abarbeitungsfunktion sollte 1 sein, wenn die Abarbeitung fortgesetzt werden soll, 0 wenn die Abarbeitung beendet werden soll, oder (-1) bei einem (benutzerdefinierten) Fehler.
Funktionen ddbcheck, ddbelemrefcount, ddbelemrefentry.
int ddbcopyelem( // Status
string; // DDB-Quelldateiname
string; // DDB-Zieldateiname
int ]0,[; // DDB-Datenbankklasse (STD1)
string; // DDB-Elementname
int [0,1]; // Merge Source Flag:
// 0 = existierende Zieldateielemente
// werden nicht überschrieben
// 1 = existierende Zieldateielemente
// werden überschrieben
);
Die Funktion ddbcopyelem kopiert das angegebene DDB-Element der spezifizierten DDB-Datenbankklasse mit allen abhängigen bzw. referenzierten Elementen von der DDB-Quelldatei in die DDB-Zieldatei. Der Elementname bleibt beim Kopiervorgang erhalten, d.h. die Quell- und Zieldateien müssen unterschiedlich sein. Der letzte Funktionsparameter gibt an, ob existierende Elemente in der Zieldatei überschrieben werden dürfen (Merge Source; Quelldatei ist Master) oder nicht (Merge Destination; Zieldatei ist Master). Der Funktionsrückgabewert ergibt sich zu Null, wenn der Kopiervorgang erfolgreich war; im anderen Fall (ungültige bzw. unvollständige Parameterangaben oder DDB-Dateizugriff fehlgeschlagen) wird der Wert (-1) zurückgegeben.
Die Funktion ddbcopyelem unterliegt nicht dem -Mechanismus, da sie auf DDB-Dateiebene arbeitet. Daher sollte diese Funktion mit größter Vorsicht benutzt werden, um ein versehentliches Überschreiben von BAE-Design- bzw. BAE-Systemdaten zu vermeiden.
Funktionen ddbdelelem, ddbrenameelem.
int ddbdelelem( // Status
string; // DDB-Dateiname
int ]0,[; // DDB-Datenbankklasse (STD1)
string; // DDB-Elementname
);
Die Funktion ddbdelelem löscht das angegebene DDB-Element der spezifizierten DDB-Datenbankklasse aus der angegebenen DDB-Datei. Der Funktionsrückgabewert ergibt sich zu Null, wenn der Löschvorgang erfolgreich war; im anderen Fall (ungültige bzw. unvollständige Parameterangaben oder DDB-Dateizugriff fehlgeschlagen) wird der Wert (-1) zurückgegeben.
Die Funktion ddbdelelem unterliegt nicht dem -Mechanismus, da sie auf DDB-Dateiebene arbeitet. Daher sollte diese Funktion mit größter Vorsicht benutzt werden, um ein versehentliches Löschen von BAE-Design- bzw. BAE-Systemdaten zu vermeiden.
Funktionen ddbcopyelem, ddbrenameelem.
int ddbelemrefcount( // Rückgabe Referenzanzahl oder (-1)
string; // DDB-Dateiname
int ]0,[; // DDB-Datenbankklasse (STD1)
string; // DDB-Elementname
);
Die Funktion ddbelemrefcount ermittelt die Anzahl der Bibliothekselemente, die von dem angegebenen DDB-Element referenziert werden. Die Angabe des DDB-Elements erfolgt durch die Spezifikation von DDB-Dateiname, DDB-Datenbankklasse sowie Elementname über die entsprechenden Funktionsparameter. Der Funktionsrückgabewert gibt die Anzahl der referenzierten Bibliothekselemente an bzw. ergibt sich zu (-1), wenn das angegebene DDB-Element nicht existiert bzw. nicht verfügbar ist. Zur selektiven Ermittlung der DDB-Datenbankklassen und der Elementnamen einzelner Bibliotheksreferenzeinträge eines DDB-Elements kann die Funktion ddbelemrefentry benutzt werden.
Funktionen ddbcheck, ddbclassscan, ddbelemrefentry.
int ddbelemrefentry( // Rückgabe Abfragestatus
string; // DDB-Dateiname
int ]0,[; // DDB-Datenbankklasse (STD1)
string; // DDB-Elementname
int ]0,[; // Referenzeintrag Index
& int ]0,[; // Referenzeintrag DDB-Klasse (STD1)
& string; // Referenzeintrag Elementname
);
Die Funktion ddbelemrefentry ermittelt die Datenbankklasse und den Elementnamen eines durch das angegebene DDB-Element referenzierten Bibliothekselements. Die Angabe des abzufragenden Referenzeintrags erfolgt durch die Spezifikation des DDB-Dateinamens, der DDB-Datenbankklasse und des Namens des DDB-Elements sowie durch die Spezifikation eines Index in die Liste der zu diesem DDB-Element definierten Bibliotheksreferenzen. Die Anzahl der Bibliotheksreferenzen des DDB-Elements kann mit der Funktion ddbelemrefcount ermittelt werden und bestimmt zugleich die Obergrenze für gültige Indizes in die Referenzliste an. Der Funktionsrückgabewert ergibt sich zu Null, wenn die Abfrage erfolgreich war bzw. zu (-1) im anderen Fall.
Funktionen ddbcheck, ddbclassscan, ddbelemrefcount.
int ddbgetelemcomment( // Status
string; // DDB-Dateiname
int ]0,[, // DDB-Datenbankklasse (STD1)
string; // DDB-Elementname
& string; // Rückgabe Kommentartext
);
Die Funktion ddbgetelemcomment dient der Abfrage von mit ddbsetelemcomment gesetzten Kommentartexten für DDB-Dateielemente. Der Funktionsrückgabewert ist Null bei erfolgreicher Abfrage oder (-1) bei fehlenden oder ungütigen Parametern oder wenn das DDB-Dateielement bzw. der Kommentartext nicht gefunden wurde.
Funktion ddbsetelemcomment.
int ddbgetlaypartpin( // Rückgabe Abfragestatus:
// ( 0) = kein Fehler, Abfrageergebnis gültig
// (-1) = DDB-Dateizugriffsfehler
// (-2) = Ungültige Parameter
// (-3) = Bauteilsymbol nicht gefunden
// (-4) = Pin nicht definiert
string; // DDB-Dateiname
string; // Layoutbauteilsymbolname
int [0,[; // Pinindex
& string; // Pinname
& string; // Pinsymbolname
& double; // Pin-X-Position (STD2)
& double; // Pin-Y-Position (STD2)
& double; // Pin-Drehwinkel (STD3)
& int; // Pin-Spiegelungsmodus (STD14)
);
Mit der Funktion ddbgetlaypartpin können in der angegebenen DDB-Datei Informationen über die auf dem angegebenen Layoutbauteilsymbol definierten Pins abgefragt werden. Zur Abfrage aller Pins eines existierenden Layoutbauteilsymbols kann die Funktion solange mit aufsteigendem Pinindex aufgerufen werden, bis der Funktionsrückgabewert einen nicht definierten Pin signalisiert.
Funktionen ddbcheck, ddbclassscan, ddbelemrefcount, ddbelemrefentry.
int ddbrenameelem( // Status
string; // DDB-Dateiname
int ]0,[, // DDB-Datenbankklasse (STD1)
string; // Alter DDB-Elementname
string; // Neuer DDB-Elementname
);
Die Funktion ddbrenameelem ändert den Elementnamen des angegebenen DDB-Dateielements. Der Funktionsrückgabewert ergibt sich zu Null bei erfolgreicher Umbenennung; im anderen Fall (ungültige bzw. unvollständige Parameterangaben oder DDB-Dateizugriff fehlgeschlagen) wird der Wert (-1) zurückgegeben.
Die Funktion ddbrenameelem unterliegt nicht dem -Mechanismus, da sie auf DDB-Dateiebene arbeitet. Daher sollte diese Funktion mit größter Vorsicht benutzt werden, um ein versehentliches Umbenennen von BAE-Design- bzw. BAE-Systemdaten zu vermeiden.
Funktionen ddbcopyelem, ddbdelelem.
int ddbsetelemcomment( // Status
string; // DDB-Dateiname
int ]0,[, // DDB-Datenbankklasse (STD1)
string; // DDB-Elementname
string; // Kommentartext
);
Mit der Funktion ddbsetelemcomment können Kommentartexte zur späteren Abfrage mit der Funktion ddbgetelemcomment an DDB-Dateielemente zugewiesen werden. Der Funktionsrückgabewert ist Null bei erfolgreicher Zuweisung oder (-1) bei fehlenden oder ungütigen Parametern oder wenn das DDB-Dateielement bzw. der Kommentartext nicht gefunden wurde. Befindet sich das bearbeitete DDB-Element gerade im Arbeitsspeicher, dann wird die Kommentarzuweisung auch dort durchgeführt.
Funktion ddbgetelemcomment.
int ddbupdtime( // Status
string; // Dateiname
int [100,[; // Elementklasse (STD1)
string; // Elementname
& int; // Rückgabe Sekunden nach Minutenanfang
& int; // Rückgabe Minuten nach Stundenanfang
& int; // Rückgabe Stunden nach Mitternacht
& int; // Rückgabe Tage nach Monatsanfang
& int; // Rückgabe Monate nach Jahresanfang
& int; // Rückgabe Jahr
);
Die Funktion ddbupdtime gibt in den Rückgabeparametern Datum und Zeit der letzten Änderung, die an dem angegebenen Datanbankelement durchgeführt wurde, zurück. Der Rückgabewert ist 1 wenn keine Fehler aufgetreten sind, 0 wenn das angegebene Element nicht in der Datenbankdatei vorhanden ist und (-1) wenn beim Dateizugriff Fehler aufgetreten sind oder die übergebenen Parameter ungültig sind.
int dirscan( // Abarbeitungsstatus
string; // Verzeichnispfadname
string; // Dateinamenserweiterung:
// .EXT = Namensendung .EXT
// .* = alle Dateien/Verzeichnisse
* int; // Dateiname Abarbeitungsfunktion
);
Die Funktion dirscan arbeitet alle Dateinamen mit der spezifizierten Dateinamenserweiterung aus dem angegebenen Verzeichnis ab. Dabei wird für jeden Dateinamen automatisch eine benutzerdefinierte Abarbeitungsfunktion aufgerufen sofern für den entsprechenden Parameter nicht das SchlüsselwortNULLeingetragen ist. Der Funktionsrückgabewert gibt entweder die Anzahl der abgearbeiteten bzw. gefundenen Dateinamen an, oder ergibt sich zu (-1) bei ungültigen Parameterangaben oder bei einem Fehlerstatus aus der Abarbeitungsfunktion.Abarbeitungsfunktion
int callbackfunction( // Abarbeitungsstatus string fname // Dateiname ) { // Verarbeitungsprogramm : return(scanstatus); }Der Rückgabewert der Abarbeitungsfunktion sollte 1 sein, wenn die Abarbeitung fortgesetzt werden soll, 0 wenn die Abarbeitung beendet werden soll, oder (-1) bei einem (benutzerdefinierten) Fehler.
int existddbelem( // Status
string; // Dateiname
int [100,[; // Elementklasse (STD1)
string; // Elementname
);
Der Rückgabewert der Funktion existddbelem gibt an, ob das angegebene Element nicht in der Datenbankdatei vorhanden ist. Der Rückgabewert ist 1 wenn das Element gefunden wurde, 0 wenn das angegebene Element nicht in der Datenbankdatei vorhanden ist und (-1) wenn beim Dateizugriff Fehler aufgetreten sind oder die übergebenen Parameter ungültig sind.
void exit(
int; // Rückgabe Status
);
Die Funktion exit beendet das aktuelle User Language-Programm mit dem übergebenen Status.
Der Rückgabestatus wird derzeit nicht von der Interpreterumgebung ausgewertet.
Funktion ulsystem_exit.
double exp( // Berechnungsergebnis
double; // Eingabewert
);
Der Rückgabewert der Funktion exp entspricht dem Wert der Exponentialfunktion für den übergebenen Gleitkommawert.
double fabs( // Berechnungsergebnis
double; // Eingabewert
);
Der Rückgabewert der Funktion fabs entspricht dem Absolutwert des übergebenen Gleitkommawertes.
int fclose( // Status
int; // Dateideskriptor
);
Die Funktion fclose schließt die durch den Dateideskriptor beschriebene Datei. Der Rückgabewert ist ungleich Null, wenn beim Schließen der Datei ein Fehler aufgetreten ist.
int fcloseall( // Status
);
Die Funktion fcloseall schließt alle durch das aktuelle User Language-Programm geöffneten Dateien. Der Rückgabewert ist ungleich Null, wenn beim Schließen der Dateien ein Fehler aufgetreten ist.
int feof( // Status
int; // Dateideskriptor
);
Der Rückgabewert der Funktion feof ist ungleich Null, wenn das Ende der durch den Dateideskriptor beschriebenen Datei erreicht ist.
int fgetc( // Zeichencode (oder -1 bei EOF)
int; // Dateideskriptor
);
Die Funktion fgetc liest ein Zeichen aus der durch den Dateideskriptor beschriebenen Datei. Der Rückgabewert der Funktion entspricht dem gelesenen Zeichen oder (-1), wenn beim Lesen ein Fehler aufgetreten ist, oder wenn das Dateiende erreicht ist. Bei einem Rückgabewert von (-1) sollte also in jedem Fall (mit der Funktion feof) überprüft werden, ob das Dateiende erreicht ist. Hierzu ist vorher der Fehlerbehandlungsmodus für die Dateizugriffsfunktionen entsprechend zu setzen (siehe Funktion fseterrmode).
int fgets( // Status
& string; // Rückgabe Zeichenkette
int; // Maximale Einleselänge
int; // Dateideskriptor
);
Die Funktion fgets liest eine Zeichenkette aus der durch den Dateideskriptor beschriebenen Datei. Der Rückgabewert der Funktion ist ungleich Null, wenn beim Lesen ein Fehler aufgetreten ist, oder wenn das Dateiende erreicht ist. Bei einem Rückgabewert von (-1) sollte also in jedem Fall (mit der Funktion feof) überprüft werden, ob das Dateiende erreicht ist. Hierzu ist vorher der Fehlerbehandlungsmodus für die Dateizugriffsfunktionen entsprechend zu setzen (siehe Funktion fseterrmode).
int filemode( // Dateimodus
string; // Dateiname
);
Die Funktion filemode ermittelt den Dateimodus bzw. die Zugriffsberechtigung für die angegebene Datei. Der Funktionsrückgabewert ist 0 bei Schreibzugriff, 1 bei Lesezugriff oder (-1), wenn der Zugriff auf die Datei fehlgeschlagen ist.
Funktionen filesize, filetype.
int filesize( // Dateigröße in Bytes oder (-1) bei Fehler
string; // Dateiname
);
Die Funktion filesize ermittelt die Dateigröße der angegebenen Datei. Der Funktionsrückgabewert gibt entweder die ermittelte Dateigröße in Bytes an oder ergibt sich zu (-1), wenn der Zugriff auf die Datei fehlgeschlagen ist.
Funktionen filemode, filetype.
int filetype( // Rückgabe Dateityp:
// (-1) = Dateizugriff fehlgeschlagen
// ( 0) = Verzeichnis
// ( 1) = Reguläre Datei
// ( 2) = Textdatei
string; // Dateiname
);
Die Funktion filetype ermittelt den Typ der angegebenen Datei. Der Funktionsrückgabewert gibt entweder den ermittelten Dateityp an oder ergibt sich zu (-1), wenn der Zugriff auf die Datei fehlgeschlagen ist.
Funktionen filemode, filesize.
double floor( // Berechnungsergebnis
double; // Eingabewert
);
Der Rückgabewert der Funktion floor entspricht dem nächsten ganzzahligen Gleitkommawert, dessen Wert kleiner oder gleich dem des übergebenen Gleitkommawertes ist.
double fmod( // Berechnungsergebnis
double; // Dividend
double; // Divisor
);
Der Rückgabewert der Funktion fmod entspricht dem Rest der Division von Dividend und Divisor.
int fopen( // Status
string; // Dateiname
int [0,14]; // Zugriffsmodus:
// 0 = r Lesen (einzig gültiger BAE Demo Zugriffsmodues ohne |8)
// 1 = w Schreiben
// 2 = a Anfügen
// 3 = rb Lesen binär
// 4 = wb Schreiben binär
// 5 = ab Anfügen binär
// |8 = Datei automatisch schließen (für BAE Demo Schreibtests)
);
Die Funktion fopen öffnet die angegebene Datei zur Bearbeitung mit dem gewünschten Zugriffsmodus. Bei Schreibzugriff wird die Datei gegebenenfalls neu erzeugt. Der Rückgabewert der Funktion beträgt (-1), wenn beim Öffnen/Erzeugen der Datei ein Fehler aufgetreten ist, oder entspricht dem zur weiteren Bearbeitung benötigten Dateideskriptor.
In den Demo-Konfigurationen der BAE-Software kann mit fopen nur lesend auf Dateien zugegriffen werden.
int fprintf( // Status
int; // Dateideskriptor
string; // Formatzeichenkette
[] // Parameterliste
);
Die Funktion fprintf schreibt die in der Parameterliste enthaltenen Daten formatiert in die durch den Dateideskriptor beschriebene Datei. Die Formatzeichenkette enthält Informationen, wie die Formatierung stattzufinden hat. Der Rückgabewert der Funktion ist ungleich Null, wenn beim Schreiben ein Fehler aufgetreten ist.
Formatzeichenkette
Mit Hilfe der Formatzeichenkette wandelt die Funktion nachfolgende Parameterwerte um und gibt sie entsprechend formatiert aus. Die Formatzeichenkette kann gewöhnliche Zeichen und Formatelemente enthalten. Gewöhnliche Zeichen werden unverändert ausgegeben, während Formatelemente jeweils die Umwandlung und formatierte Ausgabe des nächstfolgenden Parameterwertes veranlassen. Jedes Formatelement beginnt mit dem Prozentzeichen
%und wird durch ein Formatkontrollzeichen abgeschlossen. Gültige Formatkontrollzeichen sind:
Zeichen Ausgabedatentyp dDezimal-Darstellung oOktal-Darstellung xHexadezimal-Darstellung (Kleinschreibung) XHexadezimal-Darstellung (Großschreibung) uVorzeichenlose Dezimal-Darstellung cZeichen sZeichenkette eFließkomma-Darstellung (Kleinschreibung) EFließkomma-Darstellung (Großschreibung) fFestkomma-Darstellung geoderf, jeweils kürzere DarstellungsformGEoderf, jeweils kürzere Darstellungsform%Ausgabe des Prozentzeichens %Zwischen dem Prozentzeichen und dem Formatkontrollzeichen können der Reihe nach noch folgende Angaben eingetragen sein (n = Zahlenwert):
Zeichen Ausgabeformat -Linksbündigkeit (default: rechtsbündig) +Vorzeichenausgabe auch bei positivem numerischen Wert SPACEAusgabe eines Leerzeichens bei positivem Wert #oktale Ausgabe mit führender 0
bzw. hexadezimale Ausgabe mit führendem0xoder0X
bzw. Ausgabe mit Dezimalpunkt beie,E,f,g,G
bzw. Nachkommanullen beig,G0Ausgabe führender Nullen bei numerischen Werten nFeldlänge; d.h. minimale Ausgabelänge .nGenauigkeit; d.h. Anzahl anzuzeigender Zeichen (bei s)
bzw. Anzahl Nachkommastellen (beif,g,G)llong int Dezimal-Darstellung (bei d,o,X,X)Bei
e,E,f,gundGwerden per Default sechs Nachkommastellen ausgegeben. Ist anstelle der numerischen Angabe für die Feldlänge bzw. für die Genauigkeit das Zeichen*angegeben, dann wird der entsprechende Wert aus dem nächsten noch nicht abgearbeiteten Funktionsparameter übernommen. Die Ausgabe eines Prozentzeichens kann durch die Angabe%%veranlasst werden. Durch Backslash\gekennzeichnete Steuerzeichen werden wie gewöhnliche Zeichen behandelt.
Die Anzahl und der Typ der dem Formatstring nachfolgenden Parameterwerte muss mit der Anzahl der Paare der Prozent- und Formatkontrollzeichen im Formatstring übereinstimmen. Andernfalls wird "Speichermüll" ausgegeben.
Funktionen printf, sprintf.
int fputc( // Status
char; // Zeichen
int; // Dateideskriptor
);
Die Funktion fputc schreibt das übergebene Zeichen in die durch den Dateideskriptor beschriebene Datei. Der Rückgabewert der Funktion ist ungleich Null, wenn beim Schreiben ein Fehler aufgetreten ist.
int fputs( // Status
string; // Zeichenkette
int; // Dateideskriptor
);
Die Funktion fputs schreibt die übergebene Zeichenkette in die durch den Dateideskriptor beschriebene Datei. Der Rückgabewert der Funktion ist ungleich Null, wenn beim Schreiben ein Fehler aufgetreten ist.
double frexp( // Berechnungsergebnis
double; // Eingabewert
& int; // Exponentrückgabe
);
Der Rückgabewert der Funktion frexp ist die Mantisse der Exponentialdarstellung der übergebenen Gleitkommazahl. Der Exponent wird über Parameter zurückgegeben.
int fseterrmode( // Status
int [0,1]; // Fehlermodus
);
Die Funktion fseterrmode setzt den Fehlerbehandlungsmodus für Dateizugriffsfehler. Wenn der Modus auf eins gesetzt ist, wird bei Dateizugriffsfehlern das User Language-Programm von der aktuellen Interpreterumgebung mit einer entsprechenden Fehlermeldung abgebrochen. Bei einem Modus von Null geben die Dateizugriffsfunktionen einen entsprechenden Fehlercode zurück; die Fehlerbehandlung ist in diesem Fall durch das User Language-Programm selbst durchzuführen. Die Defaulteinstellung für den Fehlerbehandlungsmodus ist eins.
Bei der Verwendung von Dateizugriffsfunktionen, deren Rückgabestatus entweder als Dateizugriffs-Fehler oder z.B. als Dateiende interpretiert werden kann (siehe Funktionen fgetc, fgets), sollte in jedem Fall der Fehlerbehandlungsmodus auf Null gesetzt werden, um zu verhindern, dass die Interpreterumgebung das User Language-Programm beim Erreichen des Dateiendes mit einem Fehler abbricht.
void get_date(
& int; // Tag (1..31)
& int; // Monat (0..11)
& int; // Jahre seit 1900
);
Die Funktion get_date gibt in den Parametern das aktuelle Systemdatum zurück.
void get_time(
& int; // Stunden seit Mitternacht (0..23)
& int; // Minuten seit Stundenanfang (0..59)
& int; // Sekunden seit Minutenanfang (0..59)
);
Die Funktion get_time gibt in den Parametern die aktuelle Systemuhrzeit zurück.
char getchr( // Zeichen
);
Die Funktion getchr liest ein Zeichen von der Tastatur ein. Der Rückgabewert der Funktion entspricht dem gelesenen Zeichen.
string getcwd( // Rückgabe Pfadname
);
Die Funktion getcwd ermittelt den Pfadnamen des Arbeitsverzeichnisses übergibt diesen als Funktionsrückgabewert.
int getenv( // Status
string; // Variablenname
& string; // Variablenwert
);
Die Funktion getenv durchsucht die Liste der Betriebssystemumgebungsvariablen nach dem angegebenen Variablennamen und übergibt den zugehörigen Variablenwert im entsprechenden Parameter. Der Funktionsrückgabewert ist Null, wenn die Variable gefunden wurde bzw. ungleich Null, wenn keine Umgebungsvariable mit dem angegebenen Namen definiert ist (in diesem Fall bleibt der Parameter für den Variablenwert unverändert).
Funktion putenv.
int getextprog( // Status
string; // Dateinamenserweiterung
& string; // Kommandozeichenkette
);
Die Funktion getextprog ermittelt die Applikation bzw. das Kommando zum Öffnen des durch die angegene Dateinamenserweiterung spezifizierten Dateityps. Der Funktionsrückgabewert ist Null bei erfolgreicher Abfrage oder (-1) wenn keine Applikation für die angegebene Dateinamenserweiterung ermittelt werden konnte.
int getstr( // Status
& string; // Rückgabe Zeichenkette
int; // Maximale Zeichenkettenlänge
);
Die Funktion getstr liest Zeichen von der Tastatur in die übergebene Zeichenkette ein, bis die Return- bzw. Eingabetaste gedrückt wird oder die maximale Anzahl Zeichen erreicht ist. Der Rückgabewert ist ungleich Null, wenn ungültige Parameter übergeben wurden.
int isalnum( // Bool'sches Prüfergebnis
char; // Eingabezeichen
);
Der Rückgabewert der Funktion isalnum gibt an, ob es sich bei dem übergebenen Zeichen um ein alphanumerisches Zeichen (Buchstabe oder Ziffer) handelt. Der Wert ist ungleich Null, wenn die Bedingung erfüllt ist und Null wenn nicht.
int isalpha( // Bool'sches Prüfergebnis
char; // Eingabezeichen
);
Der Rückgabewert der Funktion isalpha gibt an, ob es sich bei dem übergebenen Zeichen um einen Buchstaben handelt. Der Wert ist ungleich Null, wenn die Bedingung erfüllt ist und Null wenn nicht.
int iscntrl( // Bool'sches Prüfergebnis
char; // Eingabezeichen
);
Der Rückgabewert der Funktion iscntrl gibt an, ob es sich bei dem übergebenen Zeichen um ein Kontrollzeichen handelt. Der Wert ist ungleich Null, wenn die Bedingung erfüllt ist und Null wenn nicht.
int isdigit( // Bool'sches Prüfergebnis
char; // Eingabezeichen
);
Der Rückgabewert der Funktion isdigit gibt an, ob es sich bei dem übergebenen Zeichen um eine Ziffer handelt. Der Wert ist ungleich Null, wenn die Bedingung erfüllt ist und Null wenn nicht.
int isgraph( // Bool'sches Prüfergebnis
char; // Eingabezeichen
);
Der Rückgabewert der Funktion isgraph gibt an, ob es sich bei dem übergebenen Zeichen um ein Zeichen mit sichtbarer Bilddarstellung handelt. Der Wert ist ungleich Null, wenn die Bedingung erfüllt ist und Null wenn nicht.
int islower( // Bool'sches Prüfergebnis
char; // Eingabezeichen
);
Der Rückgabewert der Funktion islower gibt an, ob es sich bei dem übergebenen Zeichen um einen Kleinbuchstaben handelt. Der Wert ist ungleich Null, wenn die Bedingung erfüllt ist und Null wenn nicht.
int isprint( // Bool'sches Prüfergebnis
char; // Eingabezeichen
);
Der Rückgabewert der Funktion isprint gibt an, ob es sich bei dem übergebenen Zeichen um ein druckbares Zeichen handelt. Der Wert ist ungleich Null, wenn die Bedingung erfüllt ist und Null wenn nicht.
int ispunct( // Bool'sches Prüfergebnis
char; // Eingabezeichen
);
Der Rückgabewert der Funktion ispunct gibt an, ob es sich bei dem übergebenen Zeichen um ein Satzzeichen handelt. Der Wert ist ungleich Null, wenn die Bedingung erfüllt ist und Null wenn nicht.
int isspace( // Bool'sches Prüfergebnis
char; // Eingabezeichen
);
Der Rückgabewert der Funktion isspace gibt an, ob es sich bei dem übergebenen Zeichen um ein Zwischenraumzeichen handelt. Der Wert ist ungleich Null, wenn die Bedingung erfüllt ist und Null wenn nicht.
int isupper( // Bool'sches Prüfergebnis
char; // Eingabezeichen
);
Der Rückgabewert der Funktion isupper gibt an, ob es sich bei dem übergebenen Zeichen um einen Großbuchstaben handelt. Der Wert ist ungleich Null, wenn die Bedingung erfüllt ist und Null wenn nicht.
int isxdigit( // Bool'sches Prüfergebnis
char; // Eingabezeichen
);
Der Rückgabewert der Funktion isxdigit gibt an, ob es sich bei dem übergebenen Zeichen um eine Hexadezimalziffer handelt. Der Wert ist ungleich Null, wenn die Bedingung erfüllt ist und Null wenn nicht.
int kbhit( // Tastaturstatus
);
Der Rückgabewert der Funktion kbhit gibt den aktuellen Status der Tastatureingabe an. Ein Rückgabewert von 0 bedeutet es wurde keine Taste gedrückt. Eine 1 bedeutet, dass ein Taste gedrückt wurde. Der Tastencode verbleibt dabei im Tastaturpuffer und kann mit getchr oder anderen Tastatureingabefunktionen eingelesen werden.
Funktion kbstate.
int kbstate( // Tastaturstatus (Bitwerte):
// 0x***1 = Umschalttaste gedrückt
// 0x***2 = Steuerungstaste gedrückt
// 0x**1* = Linke Alt-Taste gedrückt
// 0x**2* = Rechte Alt-Taste gedrückt
);
Mit der Funktion kbstate kann abgefragt werden, ob die Umschalttaste Shift, die Steuerungstaste Ctrl bzw. die Alt-Tasten gerade gedrückt sind.
Funktion kbhit.
int launch( // Status
string; // Kommando
);
Die Funktion launch aktiviert das als Zeichenkette übergebene Kommando auf Betriebssystemebene. Das übergebene Kommando wird als Aufruf zum Start bzw. zur Ausführung einer Applikation bzw. eines Programms interpretiert, und die Ablaufkontrolle wird unmittelbar nach Absetzen des Kommandos wieder an BAE zurückgegeben (die aktivierte Applikation läuft dann unabhängig von BAE). Der Rückgabewert der Funktion ergibt sich zu Null, wenn das Kommando erfolgreich abgesetzt wurde; andernfalls wird ein Wert ungleich Null zurückgegeben.
Die Funktion launch kann nicht in der BAE Demo-Software angewendet werden.
Unter MS-DOS benötigt der Phar Lap 386|DOS Extender ausreichend konventionellen Speicher zur Ausführung von (Child-)Prozessen. Die Größe des zur Verfügung stehenden konventionellen Speichers wird mit den Optionen
-MINREALund-MAXREALdes Phar Lap 386|DOS Extenders festgelegt. Zur Ausführung von User Language-Programmen, die die launch-Funktion benutzen, sind die User Language-Interpreterumgebungen mit Hilfe des mit der BAE-Software ausgelieferten CFIG386-Tools von Phar Lap wie folgt umzukonfigurieren:> cfig386 <EXEFILE> -maxreal 0ffffhFür
<EXEFILE>ist jeweils der Name des User Language Interpreters (scm.exe,ged.exe,neurrut.exe,cam.exe,gerview.exebzw.ced.exe) einzusetzen.
Beachten Sie, dass die launch-Funktion grundlegende Mehrprozess- bzw. Multitasking-Techniken voraussetzt, die auf PC-basierenden Systemen u.U. nicht ausreichend unterstützt werden, oder die in Rechnernetzwerken (abhängig vom auszuführenden Kommando) Probleme bereiten können.
Es wird dringend empfohlen, die Standardausgabe von DOS-Kommandos auf temporäre Dateien umzulenken und zur Anzeige eine User Language-Funktion zur Dateibetrachtung zu verwenden, da andernfalls die BAE-Grafikoberfläche von der Standardausgabe der mit launch abgesetzten DOS-Kommandos überschrieben wird.Die Fehlerausgabe von DOS-Kommandos erfolgt grundsätzlich auf den Bildschirm, wodurch die BAE-Grafikoberfläche überschrieben wird. Da unter DOS prinzipiell keine Möglichkeit zur Umlenkung der Fehlerausgabe besteht, ist dieses Problem nur dadurch zu umgehen, dass z.B. durch eine Konsistenzprüfung vor dem Aufruf der launch-Funktion die Aktivierung fehlerhafter DOS-Kommandos unterdrückt wird.
Da von der BAE-Grafikoberfläche keine Benutzereingaben an DOS-Kommandos übergeben werden können, ist dringend davon abzuraten, interaktive DOS-Kommandos bzw. Grafikapplikationen mit der launch-Funktion abzusetzen (andernfalls "hängt sich das System auf"). Unter UNIX lässt sich dieses Problem u.U. dadurch umgehen, dass interaktive Kommandos wie z.B.
moreoderviin Hintergrundprozessen (&) aktiviert werden (was allerdings im Remote Login zu Problemen beim Terminalzugriff führen kann).
Funktion system.
double ldexp( // Berechnungsergebnis
double; // Eingabewert
& int; // Exponent
);
Der Rückgabewert der Funktion ldexp entspricht dem Produkt von Eingabewert und der durch den Exponenten spezifizierten Potenz von zwei.
double localtime( // CPU-Zeit (Sekunden)
& int; // Sekunden seit Minutenanfang (0..59)
& int; // Minuten seit Stundenanfang (0..59)
& int; // Stunden seit Mitternacht (0..23)
& int; // Tag (1..31)
& int; // Monat (0..11)
& int; // Jahre seit 1900
& int; // Tage seit Sonntag (0..6)
& int; // Tage seit Jahresanfang (0..365)
);
Die Funktion localtime gibt in den Parametern die aktuelle Systemzeit mit Datumsangabe zurück. Der Rückgabewert der Funktion entspricht der verbrauchten CPU-Zeit in Sekunden.
double log( // Berechnungsergebnis
double ]0.0,[; // Eingabewert
);
Der Rückgabewert der Funktion log entspricht dem natürlichen Logarithmus (Basis e) des übergebenen Gleitkommawertes.
double log10( // Berechnungsergebnis
double ]0.0,[; // Eingabewert
);
Der Rückgabewert der Funktion log10 entspricht dem dekadischen Logarithmus (Basis 10) des übergebenen Gleitkommawertes.
int mkdir( // Status
string; // Verzeichnispfadname
);
Die Funktion mkdir legt ein Dateiverzeichnis mit dem angegebenen Verzeichnispfadnamen an. Der Funktionsrückgabewert ist Null wenn das Verzeichnis erfolgreich erzeugt wurde oder (-1) bei fehlenden oder falschen Parametern oder bei Verzeichniszugriffsfehlern.
double modf( // Rückgabe Nachkommawert
double; // Eingabewert
& double; // Rückgabe Vorkommawert
);
Die Funktion modf teilt eine Gleitkommazahl in Vor- und Nachkommastellen auf. Der Rückgabewert der Funktion entspricht den Nachkommastellen. Die Vorkommastellen werden im entsprechenden Parameter zurückgegeben.
int namestrcmp( // Vergleichsergebnis
string; // Erster Name
string; // Zweiter Name
);
Die Funktion namestrcmp vergleicht die beiden übergebenen Zeichenketten. Der Vergleich wird Zeicehn für Zeichen und ohne Unterscheidung von Groß- und Kleinschreibung vorgenommen. Der Rückgabewert ist Null bei Gleichheit, (-1) wenn die erste Zeichenkette kleiner als die zweite Zeichenkette ist und 1 wenn die erste Zeichenkette größer als die zweite Zeichenkette ist.
Funktionen numstrcmp, strcmp.
int numstrcmp( // Vergleichsergebnis
string; // Erste Zeichenkette
string; // Zweite Zeichenkette
);
Die Funktion numstrcmp vergleicht die beiden übergebenen Zeichenketten. Der Rückgabewert beträgt Null bei Gleichheit, (-1) wenn die erste Zeichenkette kleiner als die zweite Zeichenkette ist und ansonsten eins. Die Berechnung erfolgt für nicht Ziffern Zeichen für Zeichen durch numerischen Vergleich des ASCII-Wertes der verglichenen Zeichen. Bei Ziffern werden Zifferngruppen zu Zahlen zusammengefasst und diese Zahlen miteinander verglichen. Dadurch wird bei Sortierungen eine Reihenfolge von z.B. R1, R2, .. R10, R11 erreicht.
Funktionen namestrcmp, strcmp.
void perror(
string; // Zeichenkette
);
Die Funktion perror zeigt die übergebene Zeichenkette in der Statuszeile der BAE-Benutzeroberfläche an. Es erfolgt hierbei eine kurzzeitig invertierte Darstellung (einfaches Blinken), um den Anwender auf die Dringlichkeit der Meldung aufmerksam zu macheb. Bei Übergabe eines Leerstrings wird der Inhalt der Statuszeile gelöscht.
Funktion bae_prtdialog.
double pow( // Berechnungsergebnis
double; // Basis
double; // Exponent
);
Der Rückgabewert der Funktion pow entspricht dem Wert der mit dem Exponenten potenzierten Basis.
void printf(
string; // Formatzeichenkette
[] // Parameterliste
);
Die Funktion printf gibt die in der Parameterliste enthaltenen Daten formatiert im Arbeitsbereich des Bildschirms aus. Die Formatzeichenkette enthält Informationen, wie die Formatierung stattzufinden hat (siehe hierzu Beschreibung der Funktion fprintf).
Funktionen fprintf, sprintf.
string programid( // Programmname
);
Der Rückgabewert der Funktion programid entspricht dem Namen des gerade abgearbeiteten Programmes.
int putchr( // Status
char; // Zeichen
);
Die Funktion putchr gibt das übergebene Zeichen im Arbeitsbereich des Bildschirms aus. Der Rückgabewert der Funktion ist ungleich Null, wenn bei der Ausgabe ein Fehler aufgetreten ist.
int putenv( // Status
string; // Variablenname
string; // Variablenwert
);
Die Funktion putenv weist der angegebenen Betriebssystemumgebungsvariablen einen Wert zu. Der Funktionsrückgabewert ist Null, wenn die Zuweisung erfolgreich war bzw. (-1) wenn die angegebene Variable nicht gefunden wurde.
Funktion getenv.
int puts( // Status
string; // Zeichenkette
);
Die Funktion puts gibt die übergebene Zeichenkette im Arbeitsbereich des Bildschirms mit anschließendem Zeilenvorschub aus. Der Rückgabewert der Funktion ist ungleich Null, wenn bei der Ausgabe ein Fehler aufgetreten ist.
int putstr( // Status
string; // Zeichenkette
);
Die Funktion putstr gibt die übergebene Zeichenkette im Arbeitsbereich des Bildschirms aus. Der Rückgabewert der Funktion ist ungleich Null, wenn bei der Ausgabe ein Fehler aufgetreten ist.
int quicksort( // Status
& void; // Indexliste (Integer-Array)
int; // Indexanzahl
* int; // Elementvergleichsfunktion
);
Die Funktion quicksort sortiert die übergebene Indexliste nach dem Quicksortverfahren. Der Rückgabewert ergibt sich zu Null bei erfolgreicher Sortierung oder zu (-1) im Fehlerfall.Elementvergleichsfunktion
int sortfuncname( int idx1, // Index 1 int idx2, // Index 2 ) { // Compare index 1 to index 2 : return(compareresult); }Der Rückgabewert der Elementvergleichsfunktion sollte (-1) sein wenn der erste Indexwert kleiner ist als der zweite Indexwert, 1 wenn der erste Indexwert größer als der zweite ist, oder Null wenn beide Indexwerte gleich sind.
int remove( // Status
string; // Pfadname
);
Die Funktion remove löscht die Datei oder das Verzeichnis mit dem spezifizierten Pfadnamen. Der Rückgabewert der Funktion ist ungleich Null, wenn beim Löschen ein Fehler aufgetreten ist.
int rename( // Status
string; // Alter Name
string; // Neuer Name
);
Die Funktion rename ändert den Namen einer Datei. Der Rückgabewert der Funktion ist ungleich Null, wenn bei der Namensänderung ein Fehler aufgetreten ist.
void rewind(
int; // Dateideskriptor
);
Die Funktion rewind positioniert den Dateizeiger der durch den Dateideskriptor beschriebenen Datei auf den Dateianfang.
int rulecompile( // Status
string; // Zieldateiname
string; // Regelname
string; // Regelcode
);
Die Funktion rulecompile kompiliert den übergebenen Regelcode und speichert die kompilierte Regel unter dem angegebenen Regelnamen in der Zieldatei ab. Der Rückgabewert ist Null bei erfolgreicher Kompilierung oder ungleich Null wenn ein Fehler aufgetreten ist.
Funktion rulesource.
int rulesource( // Returns status
string; // Regeldatenbankdateiname
string; // Regelname
& string; // Regelquellcode
);
Die Funktion rulesource ermittelt den Quellcode der durch Regeldatenbankdateiname und Regelname angegebenen Regeldefinition. Der Quellcode der Regeldefinition wird über einen entsprechenden Parameter als Zeichenkette an den Aufrufer zurückgegeben. Der Funktionsrückgabewert ist Null wenn die Abfrage erfolgreich war, (-1) bei fehlenden oder ungültigen Parametern, (-2) wenn die Regeldatenbank nicht gefunden/geöffnet werden konnte, (-3) wenn die Regeldefinition nicht gefunden wurde oder (-5) wenn die Regeldefinition nicht geladen werden konnte.
Funktion rulecompile.
int scanddbenames( // Scan Status
string; // Dateiname
int [100,[; // Elementklasse (STD1)
int [0,[; // Elementklasse (STD1) oder Null zum Auslesen des Cache
& string; // Elementname Ein-/Ausgabe
);
Die Funktion scanddbenames sucht den dem übergebenen Feldnamen folgenden Elementeintrag der gegebenen Klasse in der Datenbankdatei und übergibt den Namen im Namensparameter. Bei Eingabe einer Leerzeichenkette wird das erste Element aus der Datenbank zurückgegeben. Der Rückgabewert ist 1 wenn ein Element gefunden wurde, 0 wenn kein weiteres Element in der Datenbankdatei vorhanden ist und (-1) wenn beim Dateizugriff Fehler aufgetreten sind oder die übergebenen Parameter ungültig sind.
int scandirfnames( // Scan Status
string; // Verzeichnispfadname
string; // Dateinamenserweiterung:
// .EXT = Namensendung .EXT
// .* = alle Dateien/Verzeichnisse
& string; // Datei-/Verzeichnisname Ein-/Ausgabe
);
Die Funktion scandirfnames sucht den auf den übergebenen Namen folgenden Namenseintrag mit der gegebenen Endung im angegebenen Verzeichnis und übergibt den Namen im Namensparameter. Bei Eingabe einer Leerzeichenkette wird der erste Verzeichniseintrag zurückgegeben. Der Rückgabewert ist 1 wenn eine Datei bzw. ein Unterverzeichnis gefunden wurde, 0 wenn kein weiterer Eintrag im Verzeichnis vorhanden ist und (-1) wenn beim Verzeichniszugriff Fehler aufgetreten sind oder die übergebenen Parameter ungültig sind.
void setprio(
int; // Prozessprioritätswert
// - Unix/Linux:
// nice-Prioritätswert
// - Windows:
// <0 = HIGH_PRIORITY_CLASS
// 0 = NORMAL_PRIORITY_CLASS
// >0 = IDLE_PRIORITY_CLASS
// - andernfalls ignoriert
);
Die Funktion setprio setzt die Priorität des aktuellen BAE-Prozesses entsprechend dem angegebenen Prozessprioritätswert.
double sin( // Berechnungsergebnis
double; // Eingabewert (STD3)
);
Der Rückgabewert der Funktion sin entspricht dem Sinus des übergebenen Winkels. Der übergebene Gleitkommawert wird als Bogenmaßangabe interpretiert.
double sinh( // Berechnungsergebnis
double; // Eingabewert (STD3)
);
Der Rückgabewert der Funktion sinh entspricht dem hyperbolischen Sinus des übergebenen Winkels. Der übergebene Gleitkommawert wird als Bogenmaßangabe interpretiert.
int sprintf( // Anzahl dekodierte Zeichen
& string; // Ausgabezeichenkette
string; // Formatzeichenkette
[] // Parameterliste
);
Die Funktion sprintf gibt die in der Parameterliste enthaltenen Daten formatiert auf die Ausgabezeichenkette aus, d.h. mit dieser Funktion lässt sich eine Formatumwandlung im Speicher durchführen. Die Formatzeichenkette enthält Informationen, wie die Formatierung stattzufinden hat (siehe hierzu Beschreibung der Funktion fprintf). Der Rückgabewert der Funktion entspricht der Anzahl der umgewandelten Zeichen, d.h. die resultierende Länge der Ausgabezeichenkette.
Funktionen fprintf, printf.
int sqlcmd( // Status
string; // Datenbankdateiname
string; // SQL-Kommando
* int; // Datenrückgabefunktion
);
Über die Funktion sqlcmd kann mit Hilfe einer Zugriffsprache der Datentransfer von und zu einer mit sqlinit initialisierten relationalen Datenbank gesteuert werden. Der erste Parameter der Funktion sqlcmd gibt den Namen der Datenbankdatei an, die für die Bearbeitung geöffnet werden soll. Im zweiten Parameter ist das auszuführende SQL-Kommando für den Datenzugriff zu spezifizieren. Die selektierten Datenfelder werden dem Aufrufer über die im dritten Parameter referenzierte Datenrückgabefunktion übergeben. Soll keine Datenrückgabefunktion aktiviert werden, dann ist für den entsprechenden Funktionsparameter das Schlüsselwort
NULLeinzutragen. Der Rückgabewert der Funktion sqlcmd ist ungleich Null bei fehlenden oder ungültigen Parametern oder wenn ein SQL-Datenbankfehler aufgetreten ist; die genaue Fehlerursache lässt sich im Falle eines SQL-Datenbankfehlers anschließend mit Hilfe der Funktion sqlerr bestimmen.SQL-Kommandos
Die durch sqlcmd interpretierbare Datenbank-Zugriffssprache lehnt sich in ihrer Befehlssyntax an die Structured Query Language (SQL) für relationale Datenbanken an. Es werden die folgenden Grundbefehle angeboten:
create tabledrop tableinsert into table valuesquickinsert into table valuesindex tableselect from tabledelete from tablehelpZur Repräsentation von Daten stehen die folgenden Datentypen zur Verfügung:
Schlüsselwort Datentyp integerGanze Zahlen im Bereich [-2147483648, 2147483647] floatFließpunktzahlen im Bereich [-10^308, 10^308] mit einer Genauigkeit von ca. 15 führenden Stellen stringZeichenketten (in einfachen Anführungszeichen) booleanLogical value ( FALSEoderTRUE)dateDatum; Eingabe dd/mm/yyyy, AusgabeyyyymmddKommando
create tableMit dem
create-Kommando wird eine Tabellenstruktur in der Datenbank hinterlegt. Dazu ist neben dem Tabellennamen eine Liste der Feldnamen mit den entsprechenden Datentypen der Feldelemente aufzuführen. Die in der Auflistung verwendete Reihenfolge wird auch bei der Datenausgabe verwendet, sofern keine explizite Angabe von Ausgabefeldern erfolgt. Die Syntax descreate-Kommandos lautet:create tabletablename(name1 type1,...,namen typen) ;Für jedes Datenfeld einer Tabelle wird automatisch ein Index erstellt. Die Indizes werden bei der Bearbeitung von Datenbankabfragen - soweit dies sinnvoll ist - automatisch herangezogen. Der Benutzer braucht sich daher über deren optimale Verwendung keine Gedanken zu machen. Bei Stringvariablen werden nur die ersten 39 Zeichen für den Index berücksichtigt.
Kommando
drop tableMit dem
drop-Kommando wird eine Tabellenstruktur aus der Datenbankdatei entfernt. Dabei werden die Struktur der Tabelle sowie alle in der Tabelle gespeicherten Einträge gelöscht. Die Syntax desdrop-Kommandos lautet:drop tabletablename;Kommando
insert intoMit dem
insert-Kommando wird ein Datensatz in eine Tabelle eingetragen. Die angegebenen Werte müssen in Anzahl und Typabfolge mit der Tabellendefinition übereinstimmen. Die Syntax desinsert-Kommandos lautet:insert intotablenamevalues(val1,...,valn) ;Kommando
quickinsert insert intoDas Kommando
quickinsertentspricht dem Kommandoinsertmit dem Unterschied, dassquickinsertim Gegensatz zuinsertnach der Eintragung der Daten keinen automatischen Update der Feldindizes durchführt. Zur Aktualisierung der Feldindizes ist nach der (wiederholten) Anwendung des Kommandosquickinsertdas Kommandoindex tableauszuführen.quickinsertundindex tableeignen sich insbesondere zum schnellen Eintragen zahlreicher Datensätze in einer Tabelle, da die der einmalige Indizierungsprozess mitindex tablesehr viel schneller ist als die wiederholte Indizierung mitinsert. Zu beachten ist dabei allerdings, dass mitquickinserteingefügte Datensätze solange nicht in Abfrageergebnissen aufscheinen bis einindex table-Aufruf durchgeführt wurde.Kommando
index tableDas Kommando
index tabledient dazu, zuvor mitquickinsert(siehe oben) in eine Tabelle eingespielten Datensätze zu indizieren. Die Syntax desindex-Kommandos lautet:index tabletablename;Kommando
select fromMit dem
select-Kommando können Datenbankinhalte abgefragt werden. Dabei kann über einen optional angebbarenwhere-Ausdruck die Ausgabemenge auf Datensätze beschränkt werden, für die die in diesem Ausdruck angegebenen Bedingungen erfüllt sind. Ist keinwhere-Ausdruck angegeben, dann erfolgt die Ausgabe sämtlicher Datensätze. Die Syntax desselect-Kommandos lautet:select[ field1,...,fieldn ]fromtable1,...,tablen [where... ];Die Spezifikation der Ausgabefelder ist optional. Sind keine Ausgabefelder spezifiziert, dann werden sämtliche Ausgabefelder entsprechend der Reihenfolge ihrer Definition ausgegeben. Ist ein Ausgabefeldname in mehreren der angegebenen Tabellen definiert, so muss diese Mehrdeutigkeit durch eine Angabe des Feldnamens in der Form
table.fieldaufgelöst werden. Dies gilt in gleicher Weise für die Referenzierung von Feldern innerhalb deswhere-Ausdrucks. Derwhere-Ausdruck setzt sich aus Vergleichen zusammen, die mit den logischen OperatorenAND(logisch Und),OR(logisch oder) undNOT(logisch nicht) verknüpft werden können. Die Vergleichsoperatoren=(gleich),<>(ungleich),>(größer),>=(größer gleich),<(kleiner) und<=(kleiner gleich) stehen für alle Datentypen zur Verfügung. Für den Stringdatentyp stehen darüber hinaus noch die OperatorenPREVTO(selektieren vorherigen Eintrag),NEXTTO(selektieren nächsten Eintrag) undLIKE(Stringmustervergleich) zur Verfügung; auf der rechten Seite dieser Operatoren kann ein Testpatternstring angegeben werden, der die Wildcardzeichen%(für beliebige Zeichenkette) und?(für beliebiges Einzelzeichen) enthalten darf. Bei Vergleichen müssen die Terme links und rechts der Vergleichsoperatoren typkompatibel, d.h. vom gleichen Datentyp sein; eine Ausnahme hiervon bildet lediglich die Datentypkombinationinteger-float. Terme können aus Operatoren und dadurch verknüpften Datenfeldreferenzen und Konstanten aufgebaut werden. Hierfür stehen die Operatoren+(Addition),-(Subtraktion),*(Multiplikation),/(Division),%(Rest nach Division),UPPER(Umwandlung in Großschreibung) undLOWER(Umwandlung in Kleinschreibung) zur Verfügung. Die Zulässigkeit der verwendbaren Operatoren hängt gemäß folgender Auflistung von den Datentypen der referenzierten Feldelemente bzw. Konstanten ab:
Operator Datentyp +integer,float,string-integer,float*integer,float/integer,float%integer,floatUPPER()stringLOWER()stringAuf die Datentypen
dateundbooleankann keiner der definierten Operatoren angewendet werden.Kommando
delete fromMit dem
delete-Kommando werden Datensätze aus einer Tabellenstruktur entfernt. Die Syntax desdelete-Kommandos lautet:delete fromtablename [where... ];Die optional angebbare
where-Bedingung entspricht in ihrer Syntax derwhere-Bedingung desselect-Kommandos. Dasdelete-Kommando entfernt diejenigen Datensätze aus der angegebenen Tabelle, die der angegebenenwhere-Bedingung entsprechen; ist keinewhere-Bedingung angegeben, dann werden alle Datensätze aus der Tabelle entfernt.Kommando
cacheDas
cache-Kommando dient dazu, die SQL-Datenbankdatei über mehrere Kommandos hinweg zum Lesen oder Schreiben geöffnet zu halten. Das Öffnen und Schliessen von SQL-Datenbankdateien ist insbesondere beim Zugriff auf Netzlaufwerke der zeitintensivste Teil bei Abfragen. Anwendungen die eine Vielzahl von Einzelkommandozugriffen auf eine SQL-Datenbank durchführen, können bei Verwendung dieser neuen Kommandos auf Netzlaufwerken um mehrere Größenordnungen schneller ablaufen. Die Syntax descache-Kommandos unterstützt die folgenden Befehle:cache read on ;cache write on ;cache off ;Kommando
helpDas
help-Kommando dient dazu, Informationen über die in einer Datenbank definierten Tabellenstrukturen einzuholen. Die Syntax deshelp-Kommandos lautet:help[ tablename ];Die durch das
help-Kommando ermittelten Daten werden über die Datenrückgabefunktion an den Aufrufer zurückgegeben. Die Angabe des Tabellennamens ist optional. Wird kein Tabellenname spezifiziert, dann liefert dashelp-Kommando die Namen der in der Datenbank definierten Tabellen im entsprechenden Parameter der Datenrückgabefunktion zurück, d.h. pro Tabellendefinition erfolgt ein Aufruf der Datenrückgabefunktion. Ist ein Tabellenname angegeben, dann liefert dashelp-Kommando die Namen der in dieser Tabelle definierten Datenfelder mit den entsprechenden Datentypangaben in den korrespondierenden Parametern der Datenrückgabefunktion zurück, d.h. pro Datenfeld der spezifizierten Tabelle erfolgt ein Aufruf der Datenrückgabefunktion.Datenrückgabefunktion
int datafunc( string dstr, // Zeichenkette oder Datum int dint, // Ganzzahliger oder Logischer Wert double ddbl, // Fließkommazahl int dval, // Datengültigkeitskennzeichen: // 0 = ungültige Daten // 1 = gültige Daten int dtype, // Datenfeld Typ: // 2 = Ganzzahliger Wert // 3 = Fließkommazahl // 4 = Zeichenkette // 5 = Datum (Format "yyyymmdd") // 6 = Logischer Wert (0=FALSE,1=TRUE) string dtable, // Tabellenname string dfield, // Datenfeld Name int didx // Datenausgabefeld Index ) { // Verarbeitungsprogramm : return(errstat); }Die Datenrückgabefunktion dient dazu, dem Aufrufer die selektierten Datenfelder zu übergeben. Die Funktion wird für jedes selektierte Datenfeld einzeln aufgerufen. Diese Funktion wird demnach bei z.B. 10 selektierten Datensätzen mit je 5 Datenfeldern 50 mal aufgerufen. Der Index des Datenausgabefeldes gibt an, das wievielte Datenfeld des aktuellen Datensatzes übergeben wird. Er nimmt Werte von 1 bis zur Anzahl der aktuell definierten Datenausgabefelder an. Der Rückgabewert der Datenrückgabefunktion sollte Null sein, wenn kein (semantischer) Fehler im Verarbeitungsprogramm der Funktion aufgetreten ist; im Fehlerfall sollte ein Wert ungleich Null zurückgegeben werden, um die Datenbankabfrage abzubrechen.
Da die Funktion sqlcmd direkt auf den Datenbankdateiebene arbeitet, unterliegt sie - ebenso wie alle Dateizugriffsfunktionen des AutoEngineers - nicht dem -Mechanismus.
Funktionen sqlerr, sqlinit.
Erzeugen der Tabelle
partdatamit den Datenfelddefinitionensymname(String),val(String) undpartno(String) in der Datenbankdateipartdata.dat:if (sqlinit("partdata.dat",1)!=0) { perror("SQL Init error!"); exit(0); } if (sqlcmd("partdata.dat", "create table partdata (symname string,val string,partno string);", NULL)!=0) { perror("SQL Query error!"); exit(0); }Eintragen von Daten in die Datenbank:
if (sqlcmd("partdata.dat", "insert into partdata values ('r','470','STK100470');", NULL)!=0) { perror("SQL Data input error!"); exit(0); }Abfragen von Daten:
if (sqlcmd("partdata.dat", "select partno from partdata where symname='r' AND val='470';", datafunc)!=0) { perror("SQL Query error!"); exit(0); } : int datafunc(dstr,dint,ddbl,dval,dtype,dtable,dfield,didx) string dstr; int dint; double ddbl; int dval,dtype; string dtable,dfield; int didx; { printf("Part Number : %s\n"); }Löschen von Daten:
if (sqlcmd("partdata.dat", "delete from partdata where symname='r';",NULL)!=0) { perror("SQL Delete error!"); exit(0); }
void sqlerr(
& int; // Fehlercode
& string; // Fehlerstring
);
Die Funktion sqlerr dient der genauen Bestimmung der Fehlerursache nach einem erfolglosen Aufruf der Funktion sqlcmd.
Zur Bestimmung der Fehlerursache sind die durch sqlerr zurückgegebenen Parameterwerte heranzuziehen. Der zurückgegebene Fehlerstring identifiziert ggf. das fehlerverursachende Element. Die möglichen Werte, die der Fehlercode durch die Ausführung eines SQL-Kommandos annehmen kann, haben folgende Bedeutung:
Fehlercode Bedeutung 0 SQL-Kommando fehlerfrei ausgeführt 1 SQL-Kommando Lesefehler (intern) 2 SQL-Kommando zu komplex (über 200 Terme) 3 Ungültiger numerischer Ausdruck 4 SQL-Kommandodatei nicht gefunden (intern) 5 SQL-Kommandoelement zu lang (über 200 Zeichen) 6 SQL-Kommando Syntaxfehler bei <c>7 Allgemeiner SQL-Kommando-Parserfehler 8 Fehler beim Erzeugen der Datenbank 9 Dateizugriffsfehler 10 Zu viele offene Dateien 11 Datei <d>ist keine Datenbank12 Datenbankstruktur beschädigt 13 Datenbankdateiaufbau fehlerhaft 14 Schlüsselbegriff <k>nicht gefunden15 Schlüsselbegriff <k>existiert bereits16 Datei <d>nicht gefunden17 Ungültiger Datentyp für Tabellenelement <t>.<f>18 Zu viele Tabellenelemente 19 Dateneintrag zu lang 20 Bedingte Löschung nur für eine Tabelle erlaubt 21 Term/Vergleich enthält unzulässige Typkombination 22 Ausgabefeld <f>undefiniert/in keiner Tabelle23 Ausgabefeld <f>in mehreren Tabellen definiert24 Ausgabetabelle <t>nicht infrom-Tabellenliste25 Tabelle <t>bereits definiert26 Datenbankklassenanzahl überschreitet Datenbanklimit 27 Tabelle <t>nicht gefunden28 Fehler von Datenrückgabefunktion 29 Kein delete-Record gefunden30 Unbekanntes/neueres Datenbankformat 31 Abfragefeld nicht in Tabelle(n) enthalten 32 Abfragefeld in mehreren Tabellen enthalten 33 Dateilesezugriff verweigert 34 Dateischreibzugriff verweigert 35 Allgemeiner Datenbankfehler Der Fehlerstring kann je nach Fehlerfall ein Kommandoelement
<c>, eine Datei<d>, einen Schlüsselbegriff<k>, eine Tabelle<t>oder ein Datenfeld<f>bezeichnen.
Funktionen sqlcmd, sqlinit.
int sqlinit( // Status
string; // Datenbankdateiname
int; // Initialisierungsmodus
);
Die Funktion
sqlinit dient der Initialisierung eines mit den
sql*-Funktionen bearbeitbaren relationalen Datenbankssystems. Für den Initialisierungsmodus kann entweder 0 zur Benutzung einer existierenden Datenbankdatei, oder 1 zur Erzeugung einer neuen Datenbankdatei angegeben werden. Der Rückgabewert ist Null bei erfolgreicher Datenbankinitialisierung, oder 1 wenn die Datenbank bereits initialisiert ist; jeder andere Rückgabewert weist auf einen Fehler bei der Initialisierung bzw. Erzeugung der Datenbank hin. Das Format der mit den
sql*-Funktionen bearbeitbaren Dateien ist das DDB-Format des
Bartels AutoEngineer. Das bedeutet, dass die mit den
sql*-Funktionen speicherbaren Daten in einer DDB-Datei zusammen mit AutoEngineer-Jobdaten oder in einer separaten DDB-Datei abgelegt werden können. Damit ist es z.B. möglich, projektrelevante PPS-Daten in der entsprechenden Designdatei abzulegen, oder spezielle Bauteilattribute automatisch mit entsprechenden Einträgen einer separaten Datenbank zu initialisieren. Für die relationale Datenbank sind im DDB-Format die Datenbankklassen 4096 bis 8191 reserviert. Dabei werden in der Datenbankklasse 4096 die Strukturen der einzelnen Tabellen hinterlegt. Die Datenbankklasse 4097 dient der Verwaltung der freien Datenbankklassen und enthält lediglich einen Eintrag mit dem Namen
info, der bei der Initialisierung mit der Funktion
sqlinit angelegt wird. Die Existenz dieses Eintrages ist ein eindeutiges Kriterium für die Abfrage, ob eine Datenbank für die Verwendung als relationale Datenbankdatei initialisiert ist. Die dynamisch verwalteten Datenbankklassen 4352 bis 8192 dienen der Speicherung der Tabelleneinträge und Indizes. Die Anzahl der für jede Tabelle benötigten Datenbankklassen ergibt sich aus der Anzahl der Tabellenfelder plus 1.
Funktionen sqlcmd, sqlerr.
double sqrt( // Berechnungsergebnis
double [0.0,[; // Eingabewert
);
Der Rückgabewert der Funktion sqrt entspricht der Quadratwurzel des übergebenen Gleitkommawertes.
int strcmp ( // Vergleichsergebnis
string; // Erste Zeichenkette
string; // Zweite Zeichenkette
);
Die Funktion strcmp vergleicht die beiden übergebenen Zeichenketten. Der Rückgabewert beträgt Null bei Gleichheit, (-1) wenn die erste Zeichenkette kleiner als die zweite Zeichenkette ist und 1 ansonsten. Die Berechnung erfolgt Zeichen für Zeichen durch numerischen Vergleich der ASCII-Werte der beiden verglichenen Zeichen.
Funktionen namestrcmp, numstrcmp.
int strcspn( // Match Position
string; // Eingabezeichenkette
string; // Suchzeichenkette
);
Der Rückgabewert der Funktion strcspn entspricht der Anzahl der Zeichen am Beginn der Eingabezeichenkette die nicht in der übergebenen Suchzeichenkette vorhanden sind.
void strdelchr(
& string; // Zeichenkette
string; // Zu löschende Zeichen
int; // Startposition
int; // Endposition
);
Die Funktion strdelchr löscht in der übergebenen Zeichenkette von der Startposition bis zur Endposition alle Zeichen, die in der Zeichenkette der zu löschenden Zeichen aufgeführt sind.
string strextract( // Extrahierte Zeichenkette
string; // Zeichenkette
int; // Startposition (0 - strlen-1)
int; // Endposition (0 - strlen-1)
);
Die Funktion strextract gibt die bei der Startposition (Zählung beginnt bei 0) beginnende und bei der Endposition endende Sub-Zeichenkette der übergebenen Zeichenkette zurück. Start- und Endposition werden wenn nötig auf die Stringgrenzen justiert. Ist die Startposition größer als die Endposition, dann dreht sich auch die Extraktionsrichtung entsprechend um.
string strextractfilepath( // Rückgabe Verzeichnisname
string; // Pfadname
);
Die Funktion strextractfilepath extrahiert den Verzeichnisnamen aus dem angegebenen Pfadnamen.
Funktion strgetpurefilename.
string strgetconffilename( // Rückgabe Konfigurationsdateipfadname
string; // Bezeichnung Umgebungsvariable
string; // Dateiname
int; // Verzeichnisabfragemodus:
// 0 : Programmverzeichnis bevorzugen
// 1 : Datenverzeichnis für alle Benutzer bevorzugen
// 2 : Datenverzeichnis für aktuellen Benutzer bevorzugen
);
Die Funktion strgetconffilename gibt den über die angegebene Umgebungsvariable definierten Konfigurationsdateinamen zurück. Die Konfigurationsdateisuche wird dabei in verschiedenen Verzeichnissen entsprechend dem spezifierten Verzeichnisabfragemodus durchgeführt.
Funktion strgetvarfilename.
string strgetvarfilename( // Rückgabe Dateiname
string; // Bezeichnung Umgebungsvariable
);
Die Funktion strgetvarfilename gibt den über die angegebene Umgebungsvariable definierten Datei- bzw. Dateipfadnamen zurück.
Funktion strgetconffilename.
string strgetpurefilename( // Rückgabe Dateiname
string; // Pfadname
);
Die Funktion strgetpurefilename extrahiert den Dateinamen aus dem angegebenen Pfadnamen.
Funktion strextractfilepath.
int strlen( // Zeichenkettenlänge
string; // Zeichenkette
);
Der Rückgabewert der Funktion strlen entspricht der Länge der übergebenen Zeichenkette (ohne abschließendes NUL-Zeichen).
void strlistitemadd(
& string; // Durch Komma getrennte Stringliste
string; // String
);
Die Funktion strlistitemadd trägt den spezifizierten String in die durch Komma getrennte Liste von Strings ein.
Funktion strlistitemchk.
int strlistitemchk( // Suchergebnis string; // Durch Komma getrennte Stringliste string; // Suchstring );
Die Funktion strlistitemchk sucht den spezifizierten Suchstring in der durch Komma getrennten Liste von Strings. Der Funktionsrückgabewert ist Null wenn der Suchstring nicht in der Stringliste enthalten ist, 1 wenn der Suchstring in der Stringliste enthalten ist oder 2 wenn der Suchstring mit der kompletten Stringliste identisch ist.
Funktion strlistitemadd.
void strlower(
& string; // Ein-/Ausgabezeichenkette
);
Die Funktion strlower wandelt die in der übergebenen Zeichenkette vorhandenen Buchstaben in Kleinbuchstaben um.
int strmatch( // Match Flag
string; // Eingabezeichenkette
string; // Testpatternzeichenkette
);
Die Funktion strmatch überprüft, ob die Eingabezeichenkette dem übergebenen Testpattern entspricht. Dabei sind in dem Testpattern die Sonderzeichen*für eine beliebige Zeichenfolge und?für ein beliebiges Zeichen in jeder Kombination mit normalen Zeichen erlaubt. Der Rückgabewert ist ungleich Null, wenn die Eingabezeichenkette dem Testpattern entspricht und Null wenn nicht.
void strnset(
& string; // Zeichenkette
char; // Füllzeichen
int; // Füllanzahl
);
Die Funktion strnset ersetzt die ersten Füllanzahl Zeichen der übergebenen Zeichenkette mit dem Füllzeichen. Ist die Länge der Zeichenkette kleiner als die Füllanzahl, so werden nur die vorhandenen Zeichen, d.h. alle, ersetzt.
void strreverse(
& string; // Ein-/Ausgabezeichenkette
);
Die Funktion strreverse kehrt die Reihenfolge der Zeichen in der übergebenen Zeichenkette um.
int strscannext( // Match Position
string; // Zeichenkette
string; // Suchzeichenkette
int; // Startposition (1 - strlen)
int; // Stop-on-match Flag:
// 0 = Continue-on-match
// 1 = Stop-on-match
);
Die Funktion strscannext sucht in der übergebenen Zeichenkette ab der Startposition (Zählung beginnt bei 1) aufsteigend nach Zeichen, die in der Suchzeichenkette aufgeführt sind. Das Suchflag gibt an, ob die erste Position, die ein gesuchtes Zeichen enthält, zurückgegeben wird oder die erste Position, die kein gesuchtes Zeichen enthält. Der Rückgabewert gibt die gefundene Position an oder entspricht der Zeichenkettenlänge plus 1, wenn die Suche erfolglos war. Die Startposition wird wenn nötig auf die Stringgrenzen justiert.
int strscanprior( // Match Position
string; // Zeichenkette
string; // Suchzeichenkette
int; // Startposition
int; // Stop-on-match Flag:
// 0 = Continue-on-match
// 1 = Stop-on-match
);
Die Funktion strscanprior sucht in der übergebenen Zeichenkette ab der Startposition absteigend nach Zeichen, die in der Suchzeichenkette aufgeführt sind. Das Suchflag gibt an, ob die erste Position, die ein gesuchtes Zeichen enthält, zurückgegeben wird oder die erste Position, die kein gesuchtes Zeichen enthält. Der Rückgabewert gibt die gefundene Position an oder Null wenn die Suche erfolglos war. Die Startposition wird wenn nötig auf die Stringgrenzen justiert.
void strset(
& string; // Ein-/Ausgabezeichenkette
char; // Füllzeichen
);
Die Funktion strset ersetzt alle Zeichen der übergebenen Zeichenkette mit dem Füllzeichen.
int strspn( // Mismatch Position
string; // Eingabezeichenkette
string; // Suchzeichenkette
);
Der Rückgabewert der Funktion strspn entspricht der Anzahl der Zeichen am Beginn der Eingabezeichenkette die in der übergebenen Suchzeichenkette vorhanden sind.
void strupper(
& string; // Ein-/Ausgabezeichenkette
);
Die Funktion strupper wandelt die in der übergebenen Zeichenkette vorhandenen Buchstaben in Großbuchstaben um.
int syngetintpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = String-Kontrollzeichenauswertungsmodus
// 1 = Callback-Funktion für Kommentartexte aktivieren
// 2 = Flag - beliebige Identifierzeichen
& int; // Rückgabe Parameterwert
);
Die Funktion syngetintpar dient der Abfrage von mit synsetintpar im User Language-BNF-/Syntaxscanner gesetzten Integerparametern. Der Funktionsrückgabewert ist Null bei erfolgreicher Abfrage oder (-1) im Fehlerfall.
Funktionen synparsefile, synparseincfile, synparsestring, synsetintpar.
synparsefile( // Scan Status
string; // Eingabedateiname
[]; // Optionale Callback-Funktion für Kommentare
);
Die Funktion synparsefile aktiviert einen Parser zur Abarbeitung der durch Dateinamen spezifizierten Eingabedatei. Dabei erfolgt die Abarbeitung entsprechend der im User Language-Programm festgelegten BNF-Beschreibung des Eingabedatenformats. Nach Bedarf werden automatisch die in der BNF definierten Aktionen bzw. Anwenderfunktionen ausgelöst. Innerhalb dieser Anwenderfunktionen kann mit synscanline die aktuelle Zeilennummer der Eingabedatei und mit synscanstring die aktuell eingelesene Zeichenkette ermittelt werden, wobei die aktuelle Zeichenkette nach Bedarf auch einer semantischen Prüfung unterzogen werden kann. Die Funktion synparsefile wird beendet, sobald das Ende der Eingabedatei erreicht ist oder ein Syntaxfehler bzw. ein durch eine Anwenderfunktion erkannter semantischer Fehler aufgetreten ist.Callback-Funktion für Kommentare
Über den zweiten Funktionsparameter kann eine Callback-Funktion für Kommentartexte spezifiziert werden. Diese Callback-Funktion wird aktiviert, wenn zusätzlich der entsprechende Parameter über die Funktion synsetintpar gesetzt wurde. Die Callback-Funktion ist wie folgt zu definieren.
int commentfuncname( string commentstring, // Kommentartext ohne Kommentarbegrenzer ) { // Verarbeitungsprogramm : return(stat); }Der Parserlauf wird abgebrochen, wenn die Callback-Funktion einen Wert ungleich Null zurückgibt. Andernfalls wird er Parserlauf forstgesetzt.
Die möglichen Rückgabewerte der Funktion synparsefile haben folgende Bedeutung:
Rückgabewert Bedeutung 0 Parserlauf fehlerfrei beendet 1 Keine BNF-Definition verfügbar 2 Parser (synparsefile) ist bereits aktiv 3 Datei kann nicht geöffnet werden 4 Zu viele offene Dateien 5 Fataler Schreib-/Lesefehler 6 Scanelement zu lang 7 Syntaxfehler 8 Unerwartetes Dateiende 9 Stacküberlauf (BNF zu komplex) 10 Stackunterlauf (BNF fehlerhaft) 11 Fehler von Parser-Aktion/referenzierter Funktion
Funktionen syngetintpar, synparseincfile, synparsestring, synscaneoln, synscanigncase, synscanline, synscanstring, synsetintpar, sowie Kapitel 2.6.4 dieses Handbuchs.
int synparseincfile( // Status
string; // Includedateiname
);
Mit der Parser-Funktion
synparseincfile wird die Bearbeitung einer eingebundenen Datei (Includedatei) aktiviert, d.h. der Parser setzt bei Aufruf dieser Funktion den Einlesevorgang unmittelbar am Beginn der namentlich spezifizierten Includedatei fort. Sobald das Ende der Includedatei erreicht ist, wird das Terminalsymbol
EOFINC als erkannt gemeldet, und der Einlesevorgang wird and der in der übergeordneten Datei unterbrochenen Stelle fortgesetzt. Der Rückgabewert von
synparseincfile ist Null, wenn kein Fehler festgestellt wurde, (-1) wenn die Includedatei nicht geöffnet werden konnte, oder (-2) wenn der Parser, d.h. die Funktion
synparsefile nicht aktiv ist.
Bei Verwendung der Funktion
synparseincfile ist eine entsprechende Einbindung des Terminalsymbols
EOFINC in die BNF-Definition erforderlich, da der Parser sonst immer einen Syntaxfehler meldet, sobald das Ende der Includedatei erreicht ist.
Funktionen syngetintpar, synparsefile, synparsestring, synscaneoln, synscanigncase, synscanline, synscanstring, synsetintpar, sowie Kapitel 2.6.4 dieses Handbuchs.
synparsestring( // Scan Status
string; // Eingabestring
[]; // Optionale Callback-Funktion für Kommentare
);
Die Funktion synparsestring aktiviert einen Parser zur Abarbeitung der übergebenen Zeichenkette. Dabei erfolgt die Abarbeitung entsprechend der im User Language-Programm festgelegten BNF-Beschreibung des Eingabedatenformats. Nach Bedarf werden automatisch die in der BNF definierten Aktionen bzw. Anwenderfunktionen ausgelöst. Innerhalb dieser Anwenderfunktionen kann mit synscanline die aktuelle Zeilennummer der Eingabedatei und mit synscanstring die aktuell eingelesene Zeichenkette ermittelt werden, wobei die aktuelle Zeichenkette nach Bedarf auch einer semantischen Prüfung unterzogen werden kann. Die Funktion synparsestring wird beendet, sobald das Ende der abzuarbeitenden Zeichenkette erreicht ist oder ein Syntaxfehler bzw. ein durch eine Anwenderfunktion erkannter semantischer Fehler aufgetreten ist.Callback-Funktion für Kommentare
Über den zweiten Funktionsparameter kann eine Callback-Funktion für Kommentartexte spezifiziert werden. Diese Callback-Funktion wird aktiviert, wenn zusätzlich der entsprechende Parameter über die Funktion synsetintpar gesetzt wurde. Die Callback-Funktion ist wie folgt zu definieren.
int commentfuncname( string commentstring, // Kommentartext ohne Kommentarbegrenzer ) { // Verarbeitungsprogramm : return(stat); }Der Parserlauf wird abgebrochen, wenn die Callback-Funktion einen Wert ungleich Null zurückgibt. Andernfalls wird er Parserlauf forstgesetzt.
Die möglichen Rückgabewerte der Funktion synparsestring haben folgende Bedeutung:
Rückgabewert Bedeutung 0 Parserlauf fehlerfrei beendet 1 Keine BNF-Definition verfügbar 2 Parser (synparsestring) ist bereits aktiv 3 Datei kann nicht geöffnet werden 4 Zu viele offene Dateien 5 Fataler Schreib-/Lesefehler 6 Scanelement zu lang 7 Syntaxfehler 8 Unerwartetes Ende der Zeichenkette 9 Stacküberlauf (BNF zu komplex) 10 Stackunterlauf (BNF fehlerhaft) 11 Fehler von Parser-Aktion/referenzierter Funktion
Funktionen syngetintpar, synparsefile, synparseincfile, synscaneoln, synscanigncase, synscanline, synscanstring, synsetintpar, sowie Kapitel 2.6.4 dieses Handbuchs.
int synscaneoln( // Status
int [0,1]; // Scanner Zeilenendeerkennung Modus:
// 0 = Deaktivieren EOLN-Erkennung
// 1 = Aktivieren EOLN-Erkennung
);
Mit der Funktion synscaneoln kann die Zeilenendeerkennung des durch synparsefile aktivierbaren BNF-Parsers wahlweise aktiviert oder deaktiviert werden. Per Default ist die Zeilenendeerkennung deaktiviert. Der Rückgabewert der Funktion ist ungleich Null bei Spezifikation ungültiger Parameter.
Die Verwendung des Terminalsymbols
EOLN in der BNF-Definition ist nur zulässig bzw. sinnvoll, wenn für die Dateibearbeitung auch die Zeilenendeerkennung aktiviert ist.
Funktionen synparsefile, synparseincfile, synparsestring, synscanigncase, synscanline, synscanstring, sowie Kapitel 2.6.4 dieses Handbuchs.
int synscanigncase( // Status
int [0,1]; // Scanner Schlüsselworterkennungsmodus:
// 0 = Groß-/Kleinschreibung unterscheiden
// 1 = Groß-/Kleinschreibung ignorieren
);
Mit der Funktion synscanigncase kann die Unterscheidung zwischen Groß- und Kleinschreibung beim Einlesen von Schlüsselwörtern in dem durch synparsefile aktivierten BNF-Parser wahlweise deaktiviert oder aktiviert werden. Per Default unterscheidet der Parser zwischen Groß- und Kleinschreibung. Der Rückgabewert der Funktion ist ungleich Null bei Spezifikation ungültiger Parameter.
Funktionen synparsefile, synparseincfile, synparsestring, synscaneoln, synscanline, synscanstring, sowie Kapitel 2.6.4 dieses Handbuchs.
int synscanline( // Eingabezeilennummer
);
Der Rückgabewert der Funktion synscanline ist die Nummer der aktuell während des durch synparsefile aktivierten Parservorgangs eingelesene Eingabedateizeile.
Funktionen synparsefile, synparseincfile, synparsestring, synscaneoln, synscanigncase, synscanstring, sowie Kapitel 2.6.4 dieses Handbuchs.
string synscanstring( // Scanner-Eingabestring
);
Der Rückgabewert der Funktion synscanstring ist die zuletzt während des durch synparsefile aktivierten Parservorgangs eingelesene Zeichenkette.
Funktionen synparsefile, synparseincfile, synparsestring, synscaneoln, synscanigncase, synscanline, sowie Kapitel 2.6.4 dieses Handbuchs.
int synsetintpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = String-Kontrollzeichenauswertungsmodus
// 1 = Callback-Funktion für Kommentartexte aktivieren
// 2 = Flag - beliebige Identifierzeichen
int; // Parameterwert
);
Die Funktion
synsetintpar dient dazu, Systemparameter vom Typ im
int im
User Language-BNF-/Syntaxscanner zu setzen. Der Funktionsrückgabewert ist Null bei erfolgreicher Parameterzuweisung oder (-1) im Fehlerfall. Die Werte von mit
synsetintpar gesetzten Systemparametern können mit der Funktion
syngetintpar abgefragt werden.
Funktionen syngetintpar, synparsefile, synparseincfile, synparsestring.
int system( // Status
string; // Kommando
);
Die Funktion system aktiviert das als Zeichenkette übergebene Kommando auf Betriebssystemebene. Das Kommando bzw. der Programmaufruf wird an den Kommandointerpreter des Betriebssystems, d.h. an die Betriebssystemshell übergeben, und die Ablaufkontrolle wird erst nach Ausführung des Kommandos wieder an BAE zurückgegeben. Der Rückgabewert der Funktion ergibt sich zu dem vom Betriebssystem, dem Kommandointerpreter bzw. dem aufgerufenen Programm zurückgegebenen Status. Ein Wert von Null deutet dabei in der Regel auf eine fehlerfreie Ausführung hin, während andere Werte üblicherweise Fehler oder Warnungen kennzeichnen.
Die Funktion system kann nicht in der BAE Demo-Software angewendet werden.
Unter MS-DOS benötigt der Phar Lap DOS-Extender ausreichend konventionellen Speicher zur Ausführung von (Child-)Prozessen. Die Größe des zur Verfügung stehenden konventionellen Speichers wird mit den Optionen
-MINREALund-MAXREALdes Phar Lap DOS Extenders festgelegt. Zur Ausführung von User Language-Programmen, die die system-Funktion benutzen, sind die User Language-Interpreterumgebungen mit Hilfe des mit der BAE-Software ausgelieferten CFIG386-Tools von Phar Lap wie folgt umzukonfigurieren:> cfig386 <EXEFILE> -maxreal 0ffffhFür
<EXEFILE>ist jeweils der Name des User Language Interpreters (scm.exe,ged.exe,neurrut.exe,cam.exe,gerview.exebzw.ced.exe) einzusetzen.
Beachten Sie, dass die system-Funktion grundlegende Mehrprozess- bzw. Multitasking-Techniken voraussetzt, die auf PC-basierenden Systemen u.U. nicht ausreichend unterstützt werden, oder die in Rechnernetzwerken (abhängig vom auszuführenden Kommando) Probleme bereiten können.
Es wird dringend empfohlen, die Standardausgabe von DOS-Kommandos auf temporäre Dateien umzulenken und zur Anzeige eine User Language-Funktion zur Dateibetrachtung zu verwenden, da andernfalls die BAE-Grafikoberfläche von der Standardausgabe der mit system abgesetzten DOS-Kommandos überschrieben wird.
Die Fehlerausgabe von DOS-Kommandos erfolgt grundsätzlich auf den Bildschirm, wodurch die BAE-Grafikoberfläche überschrieben wird. Da unter DOS prinzipiell keine Möglichkeit zur Umlenkung der Fehlerausgabe besteht, ist dieses Problem nur dadurch zu umgehen, dass z.B. durch eine Konsistenzprüfung vor dem Aufruf der system-Funktion die Aktivierung fehlerhafter DOS-Kommandos unterdrückt wird.
Da von der BAE-Grafikoberfläche keine Benutzereingaben an DOS-Kommandos übergeben werden können, ist dringend davon abzuraten, interaktive DOS-Kommandos bzw. Grafikapplikationen mit der system-Funktion abzusetzen (andernfalls "hängt sich das System auf"). Unter UNIX lässt sich dieses Problem u.U. dadurch umgehen, dass interaktive Kommandos wie z.B.
moreoderviin Hintergrundprozessen (&) aktiviert werden (was allerdings im Remote Login zu Problemen beim Terminalzugriff führen kann).
Funktion launch.
double tan( // Berechnungsergebnis
double; // Winkelwert (STD3)
);
Der Rückgabewert der Funktion tan entspricht dem Tangens des übergebenen Winkels. Der übergebene Gleitkommawert wird als Bogenmaßangabe interpretiert.
double tanh( // Berechnungsergebnis
double; // Winkelwert (STD3)
);
Der Rückgabewert der Funktion tanh entspricht dem hyperbolischen Tangens des übergebenen Winkels. Der übergebene Gleitkommawert wird als Bogenmaßangabe interpretiert.
char tolower( // Ausgabezeichen
char; // Eingabezeichen
);
Der Rückgabewert der Funktion tolower ist der Großbuchstabe zu dem übergebenen Eingabezeichen. Bei Eingabezeichen, die keinen Buchstaben darstellen, wird der Eingabewert unverändert zurückgegeben.
char toupper( // Ausgabezeichen
char; // Eingabezeichen
);
Der Rückgabewert der Funktion toupper ist der Kleinbuchstabe zu dem übergebenen Eingabezeichen. Bei Eingabezeichen, die keinen Buchstaben darstellen, wird der Eingabewert unverändert zurückgegeben.
int uliptype( // Interpretertyp:
// 0x0000 = Ungültig/unbekannt
// 0x0080 = SCM - Schaltplaneditor
// 0x0040 = GED - Layouteditor
// 0x0010 = AR - Autorouter
// 0x0008 = CAM - CAM-Prozessor
// 0x0004 = CED - Chipeditor
// 0x1000 = CV - CAM-View
);
Die Funktion uliptype gibt den Typ des aktuell aktiven User Language Interpreter zurück.
int ulipversion( // Interpreterversion
);
Die Funktion ulipversion gibt die interne Versionsnummer des aktuellen User Language Interpreter zurück.
int ulproginfo( // Status
string; // Programmname
& int; // Programmversion
& int; // Programmaufruftyp
);
Die Funktion ulproginfo ermittelt die Version und die zulässigen Interpreterumgebungen des angegebenen User Language-Programms. Die Programmversion ist dabei die interne Versionsnummer des zur Kompilierung verwendeten User Language Compilers. Der Programmaufruftyp ist ein bit-maskierter Wert, über den sich die zur Programmausführung berechtigten User Language-Interpreterumgebungen abfragen lassen. Diese Angaben werden benötigt, um mit Hilfe der ulip*-Funktionen zu entscheiden, ob ein spezielles User Language-Programm in der aktuell aktiven Interpreterumgebung ablauffähig ist. Der Rückgabewert der Funktion ist ungleich Null, wenn das angegebene Programm nicht gefunden wurde.
Funktionen uliptype, ulipversion.
int ulsystem( // Status
string; // Programmname
& int; // Programmzähler
);
Die Funktion ulsystem startet das angegebene User Language-Programm. Ein Rückgabewert ungleich Null gibt an, dass bei dem Laden oder Abarbeiten des Programmes ein Fehler aufgetreten ist. In dem Parameter Programmzähler wird im Fehlerfall die Adresse der zuletzt ausgeführten Anweisung des User Language=Programmes zurückgegeben (siehe Einträge in dem vom Compiler erzeugten Listingfile).
Die möglichen Rückgabewerte der Funktion ulsystem haben folgende Bedeutung:
Rückgabewert Bedeutung 0 Programmlauf fehlerfrei beendet 1 DDB/Datenbank-Zugriffsfehler 2 Programm bereits geladen 3 Programm nicht gefunden 4 Inkompatible User Language Programm Version 5 Inkompatible Index-/Funktions-Referenzen 6 Stack Unterlauf 7 Stack Überlauf 8 Division durch Null 9 Fehler bei System-Funktions-Aufruf 10 System-Funktion nicht verfügbar 11 System-Funktion nicht implementiert 12 Anwender-Funktion nicht gefunden 13 Ungültiger Datentyp für referenzierte Funktion 14 Ungültige Parameterliste für referenzierte Funktion 15 Fehler beim Array-Zugriff 16 Ungültiger Array-Index 17 Allgemeiner Dateizugriffsfehler 18 Allgemeiner Dateilesefehler 19 Allgemeiner Dateischreibfehler
Funktion ulsystem_exit.
void ulsystem_exit(
string; // Programmname
);
Die Funktion ulsystem startet das angegebene User Language-Programm nach Beendigung des aktuellen User Language-Programms.
Funktionen exit, ulsystem.
int vardelete( // Status
string; // Variablenname
);
Mit der Funktion vardelete kann eine zuvor mit varset definierte globale User Language-Variable gelöscht werden. Der Funktionsrückgabewert ist Null, wenn der Löschvorgang erfolgreich war oder (-1) wenn keine globale User Language-Variable mit dem spezifizierten Variablennamen definiert ist.
Funktionen varget, varset.
int varget( // Status
string; // Variablenname
& void; // Variablenwert
);
Mit der Funktion varget kann der Wert einer zuvor mit varset definierten globalen User Language-Variablen ermittelt werden. Der Funktionsrückgabewert ist Null, wenn die Abfrage erfolgreich war, (-1) wenn keine globale User Language-Variable mit dem spezifizierten Variablennamen definiert ist oder (-2) wenn der Datentyp des Parameters für die Rückgabe des Variablenwertes nicht kompatibel zum aktuell definierten Datentyp der Variable ist.
Funktionen vardelete, varset.
int varset( // Status
string; // Variablenname
void; // Variablenwert
);
Die Funktion varset definiert eine globale User Language-Variable mit dem angegebenen Variablennamen und ordnet dieser Variable den spezifizierten Variablenwert zu. Der Variablenwert muss einen Basisdatentyp (int,double,charoderstring) repräsentieren, d.h. es sind keine komplexen bzw. zusammengesetzten Datentypen wie etwa Arrays, Strukturen oderindex-Typen zulässig. Der Funktionsrückgabewert ist Null bei erfolgreicher Variablendefinition, (-1) bei ungültigem Variablennamen oder (-2) bei unzulässigem Datentyp für den Variablenwert. Eine mit varset definierte Variable bleibt auch nach Beendigung des aktuell aktiven User Language-Programms definiert bis sie mit der Funktion vardelete wieder gelöscht werden oder bis das aktuell aktive BAE-Programm-Modul verlassen wird. Mit der Funktion varget können die Werte der mit varset definierten Variablen abgefragt werden. Da die mit varset definierten globalen Variablen auch nach Beendigung des definierenden User Language-Programms erhalten bleiben, ist über diese Variablen ein Datenaustausch zwischen zeitlich unabhängig voneinander ablaufenden User Language-Programmen möglich.
Funktionen vardelete, varget.
In diesem Abschnitt werden (in alphabetischer Reihenfolge) die in der Bartels User Language definierten SCM-Systemfunktionen beschrieben. Beachten Sie bitte die Konventionen zur Funktionsbeschreibung in Anhang C.1.
Die nachfolgend aufgelisteten Systemfunktionen sind dem Aufruftyp CAP zugeordnet, d.h. diese Funktionen können im Schaltplaneditor aufgerufen werden:
string cap_blockname( // Schaltplan Blockname
);
Der Rückgabewert der Funktion cap_blockname ergibt sich aus dem Blocknamen, der für das aktuell geladene Stromlaufblatt definiert ist. Wenn kein Stromlaufblatt geladen ist oder wenn das aktuell geladene Element nicht als Blockschaltbild definiert ist, wird ein Leerstring zurückgegeben.
int cap_blocktopflag( // Abfrageergebnis
);
Die Funktion cap_blocktopflag dient der Abfrage des Hierarchiemodus des aktuell geladenen Stromlaufblatts. Der Rückgabewert der Funktion cap_blocktopflag ergibt sich zu Null, wenn das aktuell geladene Schaltplanblatt als Blockschaltbild für einen hierarchischen Schatungsentwurf definiert ist, 1 wenn das Schaltplanblatt ein Planelement der obersten Stromlaufhierarchieebene darstellt, oder 2 wenn das Schaltplanblatt als einmalig referenzierbares Blockschaltbild definiert ist.
int cap_figboxtest( // Status
index C_FIGURE; // Element
double; // Rechteck linke Grenze (STD2)
double; // Rechteck untere Grenze (STD2)
double; // Rechteck rechte Grenze (STD2)
double; // Rechteck obere Grenze (STD2)
);
Die Funktion cap_figboxtest prüft, ob das angegebene Element das angegebene Rechteck schneidet. Der Rückgabewert ist ungleich Null, wenn die Elementgrenzen das angegebene Rechteck schneiden.
string cap_findblockname( // Rückgabe SCM-Planelementname
string; // DDB-Dateiname
string; // Blockname
);
Die Funktion cap_findblockname sucht in der angegebenen DDB-Datei nach einem hierarchischen Schaltplanblatt mit dem spezifizierten Blocknamen und gibt den gefundenen SCM-Planelementnamen zurück. Ist der Zugriff auf die angegebene DDB-Datei nicht möglich oder existiert in der DDB-Datei kein hierarchisches Schaltplanblatt mit dem angegebenen Blocknamen, dann wird ein Leerstring zurückgegeben.
int cap_findlayconpart( // Status
string; // Bauteilname
& index CL_CPART; // Rückgabe Bauteilindex
);
Die Funktion cap_findlayconpart sucht in der mit cap_layconload aktuell geladenen Layoutnetzliste nach dem spezifierten Bauteilnamen und gibt den zugehörigen Bauteilindex zurück. Der Funktionsrückgabewert ist Null wenn das Bauteil gefunden wurde oder ungleich Null bei fehlgeschlagener Suche.
Funktionen cap_findlayconpartpin, cap_findlaycontree, cap_getlaytreeidx, cap_layconload.
int cap_findlayconpartpin( // Status
string; // Pinname
index CL_CPART; // Netzlistenbauteil
& index CL_CPIN; // Rückgabe Netzlistenbauteilpin
);
Die Funktion cap_findlayconpartpin sucht in der mit cap_layconload aktuell geladenen Layoutnetzliste nach dem spezifierten Bauteilpinnamen und gibt den zugehörigen Bauteilpinindex zurück. Der Funktionsrückgabewert ist Null wenn der Bauteilpin gefunden wurde oder ungleich Null bei fehlgeschlagener Suche.
Funktionen cap_findlayconpart, cap_findlaycontree, cap_getlaytreeidx, cap_layconload.
int cap_findlaycontree( // Status
string; // Netzname
& index CL_CNET; // Rückgabe Netzindex
);
Die Funktion cap_findlaycontree sucht in der mit cap_layconload aktuell geladenen Layoutnetzliste nach dem spezifierten Netznamen und gibt den zugehörigen Netzindex zurück. Der Funktionsrückgabewert ist Null wenn das Netz gefunden wurde oder ungleich Null bei fehlgeschlagener Suche.
Funktionen cap_findlayconpartpin, cap_findlayconpart, cap_getlaytreeidx, cap_layconload.
string cap_getglobnetref( // Rückgabe Netznamensreferenz
// (oder Leerstring wenn nicht referenziert)
string; // Netz-/Treename
);
Die Funktion cap_getglobnetref ermittelt die globalen Netznamensreferenzbezeichnung für das angebene Netz.
int cap_getlaytreeidx( // Status
int; // Netznummer
& index CL_CNET; // Rückgabe Netzindex
);
Die Funktion cap_getlaytreeidx sucht in der mit cap_layconload aktuell geladenen Layoutnetzliste nach der spezifierten Netznummer und gibt den zugehörigen Netzindex zurück. Der Funktionsrückgabewert ist Null wenn das Netz gefunden wurde oder ungleich Null bei fehlgeschlagener Suche.
Funktionen cap_findlayconpartpin, cap_findlayconpart, cap_findlaycontree, cap_layconload.
int cap_getpartattrib( // Status
string; // Bauteilname
string; // Attributname
& string; // Attributwert Rückgabe
);
Die Funktion cap_getpartattrib ermittelt einen Attributwert eines namentlich spezifizierten Bauteils des aktuell geladenen Schaltplanblatts. Der Funktionsrückgabewert ist Null bei erfolgreicher Ermittlung des Attributwerts, (-1) wenn kein Stromlaufblatt geladen ist, (-2) bei fehlenden bzw. ungültigen Parametern, (-3) wenn das angegebene Bauteil auf dem aktuellen Schaltplan nicht gefunden wurde oder (-4) wenn das spezifizierte Attribut für das angegebene Bauteil nicht definiert bzw. nicht gesetzt ist.
int cap_getrulecnt( // Regelanzahl oder (-1) bei Fehler
int; // Object class code
int; // Object ident code (int oder Indextyp)
);
Mit der Funktion
cap_getrulecnt kann die Anzahl der an ein spezifisches Objekt zugewiesenen Regeln ermittelt werden. Die Abfrage kann für das aktuell geladene Element (Objektklasse 0 mit
int-Wert 0 für die Objektidentifikation), ein Element aus der Figurenliste des aktuell geladenen Elements (Objektklasse 1 mit gültigem Wert vom Typ index
C_FIGURE für die Objektidentifikation) oder ein Poolelement (Objektklasse 2 mit gültigem Wert vom Typ index
C_POOL für die Objektidentifikation) durchgeführt werden. Die von
cap_getrulecnt ermittelte (nicht-negative) objektspezifische Regelanzahl wird im Rückgabewert der Funktion übergeben und bestimmt den Wertebereich für den Regelnamenslistenindex in nachfolgenden Aufrufen der Funktion
cap_getrulename zur Ermittlung von Regelnamen für das entsprechende Objekt. Der Rückgabewert ergibt sich zu (-1), wenn ein Fehler aufgetreten ist. Im Fehlerfall kann die genaue Fehlerursache mit Hilfe der Funktion
cap_ruleerr ermittelt werden.
Funktionen cap_getrulename, cap_ruleerr, cap_ruleconatt, cap_rulecondet, cap_rulefigatt, cap_rulefigdet, cap_ruleplanatt, cap_ruleplandet, cap_rulequery; Neuronales Regelsystem und Rule System Compiler.
int cap_getrulename( // Status
int; // Object class code
int; // Object ident code (int oder Indextyp)
int [0,[; // Regelnamenslistenindex
& string; // Regelname
);
Mit der Funktion
cap_getrulename können die Namen der an ein spezifisches Objekt zugewiesenen Regeln ermittelt werden. Die Abfrage kann für das aktuell geladene Element (Objektklasse 0 mit
int-Wert 0 für die Objektidentifikation), ein Element aus der Figurenliste des aktuell geladenen Elements (Objektklasse 1 mit gültigem Wert vom Typ index
C_FIGURE für die Objektidentifikation) oder ein Poolelement (Objektklasse 2 mit gültigem Wert vom Typ index
C_POOL für die Objektidentifikation) durchgeführt werden. Der Regelnamenslistenindex zur Auswahl der gewünschten Regel muss mindestens Null jedoch kleiner als die mit der Funktion
cap_getrulecnt abfragbare Anzahl objektspezifischer Regeln sein. Der ermittelte Regelname wird über den letzten Funktionsparameter an den Aufrufer zurückgegeben. Der Rückgabewert der Funktion
cap_getrulename ist Null, wenn die Funktion erfolgreich beendet wurde oder ungleich Null, wenn ein Fehler aufgetreten ist. Im Fehlerfall kann die genaue Fehlerursache mit Hilfe der Funktion
cap_ruleerr ermittelt werden.
Funktionen cap_getrulecnt, cap_ruleerr, cap_ruleconatt, cap_rulecondet, cap_rulefigatt, cap_rulefigdet, cap_ruleplanatt, cap_ruleplandet, cap_rulequery; Neuronales Regelsystem und Rule System Compiler.
index C_BUSTAP cap_getscbustapidx( // Busanschlußindex oder (-1) wenn kein Busanschluß gescannt
);
Die Funktion cap_getscbustappidx gibt den aktuell gescannten Busanschlußindex zurück. Der Aufruf dieser Funktion ist nur innerhalb der Callbackfunktionen von cap_scanall, cap_scanfelem oder cap_scanpool sinnvoll. An anderer Stelle, oder wenn gerade kein Busanschluß gescannt wird, ergibt sich der Funktionsrückgabewert zu (-1).
Funktionen cap_scanall, cap_scanfelem, cap_scanpool.
int cap_getscclass( // Rückgabe SCM-Elementklasse:
// 0 = Schaltplan
// 1 = Symbol
// 2 = Marker
// 3 = Label
// (-1) sonst
);
Die Funktion cap_getscclass gibt die aktuell gescannte SCM-Elementklasse zurück. Der Aufruf dieser Funktion ist nur innerhalb der Callbackfunktionen von cap_scanall, cap_scanfelem oder cap_scanpool sinnvoll. An anderer Stelle, oder wenn gerade kein SCM-Element gescannt wird, ergibt sich der Funktionsrückgabewert zu (-1).
Funktionen cap_scanall, cap_scanfelem, cap_scanpool.
index C_POOL cap_getscrefpidx // Rückgabe Poolindex oder (-1) wenn kein Makro
);
Die Funktion cap_getscrefpidx gibt den Poolindex des aktuell gescannten Bibliothekselements zuück, d.h. damit kann beim Scannen von Polygonen, Texten, etc. die Zugehörigkeit des jeweils gescannten Objects zum entsprechenden Bibliothekselement (Symbol, Label, Marker) ermittelt werden. Der Aufruf dieser Funktion ist nur innerhalb der Callbackfunktionen von cap_scanall, cap_scanfelem oder cap_scanpool sinnvoll. An anderer Stelle, oder wenn gerade kein Bibliothekselement gescannt wird, ergibt sich der Funktionsrückgabewert zu (-1).
Funktionen cap_scanall, cap_scanfelem, cap_scanpool.
int cap_getscstkcnt( // Scan-Stacktiefe
);
Die Funktion cap_getscstkcnt dient der Abfrage der aktuellen Stacktiefe der Schaltplanscanfunktionen. cap_getscstkcnt kann somit zur Abarbeitungskontrolle innerhalb der Callbackfunktionen von cap_scanall, cap_scanfelem oder cap_scanpool eingesetzt werden.
Funktionen cap_scanall, cap_scanfelem, cap_scanpool.
int cap_gettagdata( // Status
index C_FIGURE; // Tag Element
int [0, [; // Tag Index
& int; // Tag Pintyp (CAP6)
& string; // Tag Pinname
& string; // Tag Referenzname 1
& string; // Tag Referenzname 2
);
Die Funktion cap_gettagdata dient der Ermittlung der Zieldaten (Pintyp, Pinname, Referenzbezeichnungen) des angegebenen Schaltplan-Tagsymbols. Der Funktionsrückgabewert ist Null bei erfolgreich Abfrage oder ungleich Null andernfalls.
Funktion scm_settagdata.
int cap_lastconseg( // Status
& index C_CONSEG; // Rückgabe Verbindungssegment
);
Die Funktion cap_lastconseg ermittelt das zuletzt erzeugte bzw. modifizierte SCM-Verbindungssegment und übergibt den entsprechenden Index aus der Verbindungssegmentliste im Rückgabeparameter. Der Rückgabewert der Funktion ist Null wenn ein derartiges Verdindungssegment existiert, oder ungleich Null andernfalls.
Funktion cap_lastfigelem.
int cap_lastfigelem( // Status
& index C_FIGURE; // Rückgabe Element
);
Die Funktion cap_lastfigelem ermittelt das zuletzt erzeugte bzw. modifizierte SCM-Element und übergibt den entsprechenden Index aus der Figurenliste im Rückgabeparameter. Der Rückgabewert der Funktion ist Null wenn ein derartiges Element existiert, oder ungleich Null andernfalls.
Funktion cap_lastconseg.
int cap_layconload( // Status
string; // DDB-Dateiname ("?" zur Namensabfrage)
string; // Layout-Netzlistenname ("?" zur Namensabfrage)
);
Die Funktion cap_layconload lädt die Layoutnetzliste mit dem angegebenen Namen aus der spezifizierten DDB-Datei. Der Funktionsrückgabewert ist Null wenn die Netzliste erfolgreich geladen werden konnte, (-1) bei einem Dateizugriffsfehler oder (-2) bei fehlenden oder ungültigen Parameterangaben.
Funktionen cap_findlayconpartpin, cap_findlayconpart, cap_findlaycontree, cap_getlaytreeidx.
void cap_maccoords(
& double; // X-Position (STD2)
& double; // Y-Position (STD2)
& double; // Drehwinkel (STD3)
& int; // Spiegelungsmodus (STD14)
);
Die Funktion cap_maccoords gibt in den Parametern die Platzierungsdaten für das aktuell bearbeitete Makro zurück. Ein Aufruf dieser Funktion ist nur innerhalb der Makroscanfunktion von cap_scanall, cap_scanfelem oder cap_scanpool sinnvoll. An anderer Stelle werden Null-Defaultwerte zurückgegeben.
Funktionen cap_scanall, cap_scanfelem, cap_scanpool.
int cap_macload( // Status
& index C_POOL; // Macro Poolelementindex
string; // DDB-Dateiname
string; // Elementname
int [100,[; // Element DDB-/Datenbankklasse (STD1)
);
Die Funktion cap_macload lädt das angegebene SCM-Symbol in den Arbeitsspeicher und übergibt den zugehörigen Poolindex im entsprechenden Parameter. Der Funktionsrückgabewert ist Null, wenn das Symbol erfolgreich geladen wurde, (-1) bei Dateizugriffsfehlern, (-2) bei fehlenden oder ungültigen Parameterangaben oder 1 wenn referenzierte Bibliothekselemente nicht verfügbar sind. cap_macload ist für die Anwendung in Funktionen zur Auswertung von Bibliotheksdateien konzipiert. Mit der Funktion cap_macrelease können SCM-Symbole wieder aus dem Arbeitsspeicher entfernt werden.
Funktion cap_macrelease.
void cap_macrelease( // Status
index C_POOL; // Macro Poolelementindex
);
Die Funktion cap_macrelease löscht das über den Poolelementindex spezifizierte SCM-Symbol aus dem Arbeitsspeicher. cap_macrelease ist als Pendant zur Funktion cap_macload konzipiert.
Funktion cap_macload.
int cap_mactaglink( // Status
& int; // Tagpintyp (CAP6)
& double; // Startpunkt X-Position (STD2)
& double; // Startpunkt Y-Position (STD2)
& double; // Endpunkt X-Position (STD2)
& double; // Endpunkt Y-Position (STD2)
);
Die Funktion cap_mactaglink gibt in den Parametern den Tagpintyp und die Start- und Endpunktkoordinaten des Tagverweises für das aktuell bearbeitete Makro zurück. Ein Aufruf dieser Funktion ist nur innerhalb der Makroscanfunktion von cap_scanall, cap_scanfelem oder cap_scanpool sinnvoll. Der Funktionsrückgabewert ist 1 wenn ein Tagverweis gefunden wurde, 0 wenn kein Tagverweis am bearbeiteten Makroelement existiert oder (-1) bei ungültigen oder fehlenden Parametern.
Funktionen cap_scanall, cap_scanfelem, cap_scanpool.
int cap_nrefsearch( // Status
string; // Bauteilname oder Leerstring für neueste benannte Referenz
& index C_FIGURE; // Rückgabe Element
);
Die Funktion cap_nrefsearch prüft, ob ein Bauteil bzw. eine benannte Referenz mit dem angegebenen Namen platziert ist und gibt gegebenenfalls das zugehörige Element zurück. Der Rückgabewert ist Null, wenn ein Element gefunden wurde oder ungleich Null, wenn kein Element mit dem angegebenen Namen gefunden wurde.
string cap_partplan( // Bauteilplanname
string; // Job/DDB-Dateiname
string; // Bauteilname
);
Der Rückgabewert der Funktion cap_partplan ergibt sich zu dem SCM-Plannamen, auf dem das durch den Bauteilnamen spezifizierte Bauteil in der angegebenen DDB-Datei platziert ist. Es wird ein Leerstring zurückgegeben, wenn das angegebene Bauteil nicht gefunden wurde.
index C_POOL cap_pointpoolidx(// Poolelement
);
Die Funktion cap_pointpoolidx dient der Ermittlung des Poolelements, unter welchem die Daten des Markersymbols zur Darstellung der Verbindungspunkte auf dem aktuellen Stromlaufblatt gespeichert sind. Diese Funktion wird für das Plotten von Schaltplänen benötigt; die komplette Darstellungsform des Verbindungspunkt-Markers kann dabei nach Bedarf mit der Funktion cap_scanpool ermittelt werden.
int cap_ruleconatt( // Status
index C_CONSEG; // SCM-Verbindungssegment
void; // Regelname oder Regelnamensliste
);
Die Funktion cap_ruleconatt erlaubt die Zuweisung von Regeln an das mit dem ersten Funktionsparameter spezifizierte SCM-Verbindungssegment des aktuell geladenes Elements. Der zweite Funktionsparameter erlaubt dabei sowohl die Spezifikation eines einzelnen Regelnamens (d.h. eines Wertes vom Typstring) als auch die Angabe einer ganzen Liste von Regelnamen (d.h. eines Arrays vom Typstring). Beachten Sie, dass vor der Zuweisung des angegebenen Regelsatzes zunächst alle bestehenden Regelzuweisungen an das spezifizierte Figurenlistenelement gelöscht werden. Der Rückgabewert der Funktion cap_ruleconatt ist Null, wenn die Funktion erfolgreich beendet wurde oder ungleich Null, wenn ein Fehler aufgetreten ist. Im Fehlerfall kann die genaue Fehlerursache mit Hilfe der Funktion cap_ruleerr ermittelt werden.
Funktionen cap_getrulecnt, cap_getrulename, cap_ruleerr, cap_rulecondet, cap_rulefigatt, cap_rulefigdet, cap_ruleplanatt, cap_ruleplandet, cap_rulequery; Neuronales Regelsystem und Rule System Compiler.
int cap_rulecondet( // Status
index C_CONSEG; // SCM-Verbindungssegment
);
Die Funktion cap_rulecondet löscht alle aktuell bestehenden Regelzuweisungen an das über den Funktionsparameter spezifizierte SCM-Verbindungssegment des aktuell geladenen Elements. Der Rückgabewert der Funktion cap_rulecondet ist Null, wenn die Funktion erfolgreich beendet wurde oder ungleich Null, wenn ein Fehler aufgetreten ist. Im Fehlerfall kann die genaue Fehlerursache mit Hilfe der Funktion cap_ruleerr ermittelt werden.
Funktionen cap_getrulecnt, cap_getrulename, cap_ruleerr, cap_ruleconatt, cap_rulefigatt, cap_rulefigdet, cap_ruleplanatt. cap_ruleplandet, cap_rulequery; Neuronales Regelsystem und Rule System Compiler.
void cap_ruleerr(
& int; // Fehlercode
& string; // Fehlerstring
);
Die Funktion cap_ruleerr dient der Ermittlung des Regelsystemstatus, d.h. die Funktion cap_ruleerr kann zur genauen Bestimmung der Fehlerursache im Falle eines fehlerhaften Aufrufs einer Regelsystemfunktion verwendet werden.
Zur Bestimmung der Fehlerursache sind die durch cap_ruleerr zurückgegebenen Parameterwerte heranzuziehen. Der zurückgegebene Fehlerstring dient ggf. der Identifizierung des fehlerverursachenden Elements. Die möglichen Werte, die der Fehlercode durch die Ausführung eines Regelsystemfunktion annehmen kann, haben folgende Bedeutung:
Fehlercode Bedeutung 0 Regelsystem Operation/Funktion erfolgreich beendet 1 Regelsystem Hauptspeicher nicht ausreichend 2 Regelsystem Interner Fehler <e>3 Regelsystem Funktionsparameter ungültig 128 Regelsystem Datenbankdatei kann nicht angelegt werden 129 Regelsystem Datenbankdatei Lese-/Schreibfehler 130 Regelsystem Datenbankdatei von falschem Typ 131 Regelsystem Datenbankdateistruktur beschädigt 132 Regelsystem Datenbankdatei nicht gefunden 133 Regelsystem Datenbankfehler allgemein (Interner Fehler) 134 Regelsystem Regel <r>nicht Regeldatenbank gefunden135 Regelsystem Regel in falschem Format in Datenbank (Interner Fehler <e>)136 Regelsystem Objekt nicht gefunden 137 Regelsystem Objekt mehrfach definiert (Interner Fehler) 138 Regelsystem Inkompatible Definition der Variable <v>139 Regelsystem Regel <r>mit inkompatibler Compiler-Version übersetztDer Fehlerstring kann je nach Fehlerfall eine Regel
<r>, eine Variable<v>oder einen (internen) Fehlerstatus<e>bezeichnen. Datenbankdateifehler beziehen sich auf Probleme beim Zugriff auf die Regeldatenbankdateibrules.vdbim BAE-Programmverzeichnis. Interne Fehler weisen üblicherweise auf Implementierungslücken im Regelsystem hin und sollten in jedem Fall an Bartels gemeldet werden.
Funktionen cap_getrulecnt, cap_getrulename, cap_ruleconatt, cap_rulecondet, cap_rulefigatt, cap_rulefigdet, cap_ruleplanatt, cap_ruleplandet, cap_rulequery; Neuronales Regelsystem und Rule System Compiler.
int cap_rulefigatt( // Status
index C_FIGURE; // Figurenlistenelement
void; // Regelname oder Regelnamensliste
);
Die Funktion cap_rulefigatt erlaubt die Zuweisung von Regeln an das mit dem ersten Funktionsparameter spezifizierte Figurenlistenelement des aktuell geladenes Elements. Der zweite Funktionsparameter erlaubt dabei sowohl die Spezifikation eines einzelnen Regelnamens (d.h. eines Wertes vom Typstring) als auch die Angabe einer ganzen Liste von Regelnamen (d.h. eines Arrays vom Typstring). Beachten Sie, dass vor der Zuweisung des angegebenen Regelsatzes zunächst alle bestehenden Regelzuweisungen an das spezifizierte Figurenlistenelement gelöscht werden. Der Rückgabewert der Funktion cap_rulefigatt ist Null, wenn die Funktion erfolgreich beendet wurde oder ungleich Null, wenn ein Fehler aufgetreten ist. Im Fehlerfall kann die genaue Fehlerursache mit Hilfe der Funktion cap_ruleerr ermittelt werden.
Funktionen cap_getrulecnt, cap_getrulename, cap_ruleerr, cap_ruleconatt, cap_rulecondet, cap_rulefigdet, cap_ruleplanatt, cap_ruleplandet, cap_rulequery; Neuronales Regelsystem und Rule System Compiler.
int cap_rulefigdet( // Status
index C_FIGURE; // Figurenlistenelement
);
Die Funktion cap_rulefigdet löscht alle aktuell bestehenden Regelzuweisungen an das über den Funktionsparameter spezifizierte Figurenlistenelement des aktuell geladenen Elements. Der Rückgabewert der Funktion cap_rulefigdet ist Null, wenn die Funktion erfolgreich beendet wurde oder ungleich Null, wenn ein Fehler aufgetreten ist. Im Fehlerfall kann die genaue Fehlerursache mit Hilfe der Funktion cap_ruleerr ermittelt werden.
Funktionen cap_getrulecnt, cap_getrulename, cap_ruleerr, cap_ruleconatt, cap_rulecondet, cap_rulefigatt, cap_ruleplanatt. cap_ruleplandet, cap_rulequery; Neuronales Regelsystem und Rule System Compiler.
int cap_ruleplanatt( // Status
void; // Regelname oder Regelnamensliste
int [0,1]; // Flag - Regelzuweisung SCM-Plan global
);
Die Funktion cap_ruleplanatt erlaubt die Zuweisung von Regeln an das aktuell geladenes Elements. Der Funktionsparameter erlaubt dabei sowohl die Spezifikation eines einzelnen Regelnamens (d.h. eines Wertes vom Typstring) als auch die Angabe einer ganzen Liste von Regelnamen (d.h. eines Arrays vom Typstring). Beachten Sie, dass vor der Zuweisung des angegebenen Regelsatzes zunächst alle bestehenden Regelzuweisungen an das aktuelle Element gelöscht werden. Der zweite Parameter ermöglicht die Zuweisung von Regeln an alle Blätter des aktuell geladenen Schaltplans (d.h., dieser Parameter wird nur ausgewertet, wenn ein Stromlaufblatt geladen ist). Der Rückgabewert der Funktion cap_ruleplanatt ist Null, wenn die Funktion erfolgreich beendet wurde oder ungleich Null, wenn ein Fehler aufgetreten ist. Im Fehlerfall kann die genaue Fehlerursache mit Hilfe der Funktion cap_ruleerr ermittelt werden.
Funktionen cap_getrulecnt, cap_getrulename, cap_ruleerr, cap_ruleconatt, cap_rulecondet, cap_rulefigatt, cap_rulefigdet, cap_ruleplandet, cap_rulequery; Neuronales Regelsystem und Rule System Compiler.
int cap_ruleplandet( // Status
int [0,1]; // Flag - Regelzuweisung SCM-Plan global
);
Die Funktion cap_ruleplandet löscht alle aktuell bestehenden Regelzuweisungen an das aktuell geladene Element. Der Funktionsparameter ermöglicht die Lösung von Regelzuweisungen von allen Blätter des aktuell geladenen Schaltplans (d.h., dieser Parameter wird nur ausgewertet, wenn ein Stromlaufblatt geladen ist). Der Rückgabewert der Funktion cap_ruleplandet ist Null, wenn die Funktion erfolgreich beendet wurde oder ungleich Null, wenn ein Fehler aufgetreten ist. Im Fehlerfall kann die genaue Fehlerursache mit Hilfe der Funktion cap_ruleerr ermittelt werden.
Funktionen cap_getrulecnt, cap_getrulename, cap_ruleerr, cap_ruleconatt, cap_rulecondet, cap_rulefigatt, cap_rulefigdet, cap_ruleplanatt, cap_rulequery; Neuronales Regelsystem und Rule System Compiler.
int cap_rulequery( // Trefferanzahl oder (-1) bei Fehler
int; // Object class code
int; // Object ident code (int oder Indextyp)
string; // Subjektname
string; // Prädikatname
string; // Abfragekommando
& void; // Abfrageergebnis
[] // Optionale Abfrageparameter
);
Die Funktion cap_rulequery führt eine Regelabfrage für ein spezifisches Objekt durch. Die Abfrage kann für das aktuell geladene Element (Objektklasse 0 mitint-Wert 0 für die Objektidentifikation), ein Element aus der Figurenliste des aktuell geladenen Elements (Objektklasse 1 mit gültigem Wert vom Typ index C_FIGURE für die Objektidentifikation) oder ein Poolelement (Objektklasse 2 mit gültigem Wert vom Typ index C_POOL für die Objektidentifikation) durchgeführt werden. Zur Durchführung der Abfrage müssen sowohl ein Regelsubjekt als auch ein Regelprädikat namentlich angegeben werden. Zusätzlich ist ein Abfragekommando zu spezifizieren. Das Abfragekommando kann Platzhalter für Wertvorgaben und einen Abfrageoperator enthalten. Folgende Abfrageoperatoren stehen zur Verfügung:
?dzur Abfrage von int-Werten?fzur Abfrage von double-Werten?szur Abfrage von string-WertenDem Abfrageoperator kann wahlweise einer der folgenden Selektionsoperatoren vorangestellt werden:
+zur Abfrage des Maximums aller gefundenen Werte -zur Abfrage des Minimums aller gefundenen Werte Standardmäßig, d.h. bei Auslassung des Selektionsoperators wird der
+-Operator verwendet. Der über die Abfrage gefundene Werteintrag wird im Funktionsparameter für das Abfrageergebnis zurückgegeben. Hierbei ist sicherzustellen, dass der Datentyp des Parameters für das Abfrageergebnis mit dem Abfragedatentyp übereinstimmt (intfür?d,doublefür?f,stringfür?s). Neben dem Abfrageoperator können folgende Platzhalter für Wertvorgaben im Abfragekommando spezifiziert werden:
%dzur Angabe von int-Werten%fzur Angabe von double-Werten%szur Angabe von string-WertenFür jeden im Abfragekommando spezifizierten Platzhalter für Wertvorgaben ist ein optionaler Abfrageparameter an die Funktion cap_rulequery zu übergeben. Die Reihenfolge dieser optionalen Parameter sowie deren Datentypen müssen mit den Spezifikationen im Abfragekommando übereinstimmen. Nach erfolgreicher Abarbeitung der Regelabfrage wird im Rückgabewert die (nicht-negative) Anzahl der gefundenen Einträge an den Aufrufer zurückgegeben. Der Rückgabewert ergibt sich zu (-1), wenn ein Fehler aufgetreten ist. Im Fehlerfall kann die genaue Fehlerursache mit Hilfe der Funktion cap_ruleerr ermittelt werden.
Sofern die Regelrule somerule { subject subj { pred := ("A", 2); pred := ("A", 4); pred := ("B", 1); pred := ("C", 3); pred := ("B", 6); pred := ("D", 5); pred := ("D", 6); pred := ("A", 3); } }definiert und dem aktuell geladenen Element zugewiesen ist, würde der cap_rulequery-Aufruf
hitcount = cap_rulequery(0,0,"subj","pred","%s ?d",intresult,"A") ;die
int-Variablehitcountauf 3 und dieint-Variableintresultauf 4 setzen, während der Aufrufhitcount = cap_rulequery(0,0,"subj","pred","-?s %d",strresult,6) ;die Variable
hitcountauf 2 und diestring-VariablestrresultaufBsetzt.
Funktionen cap_getrulecnt, cap_getrulename, cap_ruleerr, cap_ruleconatt, cap_rulecondet, cap_rulefigatt, cap_rulefigdet, cap_ruleplanatt, cap_ruleplandet; Neuronales Regelsystem und Rule System Compiler.
int cap_scanall( // Scan Status
double; // X-Offset (STD2)
double; // Y-Offset (STD2)
double; // Drehwinkel (STD3)
int [0,1]; // Element in Arbeitsbereich Flag (STD10)
* int; // Makrofunktion
* int; // Verbindungssegmentfunktion
* int; // Polygonfunktion
* int; // Textfunktion
);
Die Funktion cap_scanall scannt alle auf dem aktuell geladenen Element platzierten Elemente über alle Hierarchiestufen. Dabei werden für alle gefundenen Elemente die referenzierten Anwenderfunktionen aufgerufen. Soll ein Funktionstyp nicht aufgerufen werden, so ist für den entsprechenden ParameterNULLanzugeben. Der Rückgabewert der Funktion cap_scanall ist ungleich Null, wenn ungültige Parameter angegeben wurden, oder wenn eine der referenzierten Anwenderfunktionen einen Fehler an die Funktion cap_scanall zurückgemeldet hat.Makrofunktion
int macrofuncname( index C_MACRO macro, // Makro Index index C_POOL pool, // Pool Element Index int macinws, // Makro in Arbeitsbereich Flag (STD10) string refname, // Makro Referenzname index C_LEVEL level, // Makro Level index C_LEVEL buslevel // Makro Buslevel ) { // Verarbeitungsprogramm : return(contscan); }Miteinander verbundene Elemente besitzen gleiche Levelnummern größer gleich Null. Der Rückgabewert dieser Funktion sollte gleich Null sein, wenn der Scan für dieses Makro nicht weitergeführt werden soll, (-1) wenn ein Fehler aufgetreten ist und 1 wenn weitergescannt werden soll.
Verbindungssegmentfunktion
int confuncname( index C_CONBASE cbase, // Verbindungsliste Index int segidx, // Segment Nummer int ctyp, // Verbindungstyp: // 0 = normale Verbindung // 1 = Verbindungspunkt double lx, // Untere X-Koordinate (STD2) double ly, // Untere Y-Koordinate (STD2) double ux, // Obere X-Koordinate (STD2) double uy, // Obere Y-Koordinate (STD2) int busflag, // Busverbindung Flag: // 0 = normale Verbindung // 1 = Busverbindung int cinws, // Verbindung in Arbeitsbereich (STD10) index C_LEVEL level // Verbindung Level ) { // Verarbeitungsprogramm : return(errstat); }Ein Verbindungstyp von 0 gibt an, dass es sich um eine normale Segmentverbindung handelt. Ein Typ von 1 spezifiziert einen Verbindungskreuzungspunkt, obere und untere Koordinaten sind dabei identisch. Miteinander verbundene Elemente besitzen gleiche Levelnummern größer gleich Null. Der Rückgabewert dieser Funktion sollte ungleich Null sein, wenn ein Fehler aufgetreten ist.
Polygonfunktion
int polyfuncname( index C_POLY poly, // Polygondaten int polyinws, // Polygon in Arbeitsbereich Flag (STD10) index C_LEVEL level, // Polygon Level int macclass, // Polygon Makroklasse (STD1) int bustapidx // Polygon Busanschlussindex ) { // Verarbeitungsprogramm : return(errstat); }Die Makroklasse gibt die Klasse des Makros an, auf dem die Fläche platziert ist. Miteinander verbundene Elemente besitzen gleiche Levelnummern größer gleich Null. Ein Busanschlussindex größer gleich Null gibt an, dass es sich um eine auf einem Bustap platzierte Fläche handelt. Der Rückgabewert dieser Funktion sollte ungleich Null sein, wenn ein Fehler aufgetreten ist.
Textfunktion
int textfuncname( index C_TEXT text, // Textdaten double x, // X-Koordinate (STD2) double y, // Y-Koordinate (STD2) double angle, // Drehwinkel (STD3) int mirr, // Spiegelung (STD14) double size, // Text Größe (STD2) string textstr, // Textzeichenkette int textinws, // Text in Arbeitsbereich Flag (STD10) int macclass, // Text Makroklasse int variant // Text ist Variantenattribut Flag ) { // Verarbeitungsprogramm : return(errstat); }Die Makroklasse gibt die Klasse des Makros an, auf dem der Text platziert ist. Der Rückgabewert dieser Funktion sollte ungleich Null sein, wenn ein Fehler aufgetreten ist.
Funktionen cap_maccoords, cap_scanfelem, cap_scanpool.
int cap_scanfelem( // Scan Status
index C_FIGURE; // Figurenelement
double; // X-Offset (STD2)
double; // Y-Offset (STD2)
double; // Drehwinkel (STD3)
int [0,1]; // Element in Arbeitsbereich Flag (STD10)
* int; // Makrofunktion
* int; // Verbindungssegmentfunktion
* int; // Polygonfunktion
* int; // Textfunktion
);
Die Funktion
cap_scanfelem scannt das angegebene Figurenelement über alle Hierarchiestufen. Dabei werden für alle gefundenen Elemente die referenzierten Anwenderfunktionen aufgerufen. Soll ein Funktionstyp nicht aufgerufen werden, so ist für den entsprechenden Parameter
NULL anzugeben (Definition der referenzierten Anwenderfunktionen siehe
cap_scanall). Der Rückgabewert der Funktion
cap_scanfelem ist ungleich Null, wenn ungültige Parameter angegeben wurden, oder wenn eine der referenzierten Anwenderfunktionen einen Fehler an die Funktion
cap_scanfelem zurückgemeldet hat.
Funktionen cap_maccoords, cap_scanall, cap_scanpool.
int cap_scanpool( // Scan Status
void; // Poolelement
double; // X-Offset (STD2)
double; // Y-Offset (STD2)
double; // Drehwinkel (STD3)
int [0,1]; // Element in Arbeitsbereich Flag (STD10)
* int; // Makrofunktion
* int; // Verbindungssegmentfunktion
* int; // Polygonfunktion
* int; // Textfunktion
);
Die Funktion
cap_scanpool scannt das angegebene Poolelement über alle Hierarchiestufen. Dabei werden für alle gefundenen Elemente die referenzierten Anwenderfunktionen aufgerufen. Soll ein Funktionstyp nicht aufgerufen werden, so ist für den entsprechenden Parameter
NULL anzugeben (Definition der referenzierten Anwenderfunktionen siehe
cap_scanall). Der Rückgabewert der Funktion
cap_scanpool ist ungleich Null, wenn ungültige Parameter angegeben wurden, oder wenn eine der referenzierten Anwenderfunktionen einen Fehler an die Funktion
cap_scanpool zurückgemeldet hat.
Funktionen cap_maccoords, cap_scanall, cap_scanfelem.
int cap_vecttext( // Status
double; // X-Koordinate (STD2)
double; // Y-Koordinate (STD2)
double; // Drehwinkel (STD3)
int [0,1]; // Spiegelung (STD14)
double ]0.0,[; // Text Größe (STD2)
int [0,[; // Text Stil (CAP7)
string; // Text Zeichenkette
* int; // Vektorisierungsfunktion
);
Die Funktion cap_vecttext vektorisiert den übergebenen Text unter Verwendung des aktuell geladenen Zeichensatzes. Dazu wird für jedes Textsegment die übergebene Vektorisierungsfunktion aufgerufen. Der Rückgabewert dieser Funktion ist ungleich Null, wenn ungültige Parameter angegeben wurden oder die vom Benutzer definierte Vektorisierungsfunktion einen Wert ungleich Null zurückgegeben hat.Vektorisierungsfunktion
int vecfuncname( double x1, // X-Koordinate erster Punkt (STD2) double y1, // Y-Koordinate erster Punkt (STD2) double x2, // X-Koordinate zweiter Punkt (STD2) double y2 // Y-Koordinate zweiter Punkt (STD2) ) { // Verarbeitungsprogramm : return(errstat); }Der Rückgabewert dieser Funktion sollte ungleich Null sein, wenn ein Fehler aufgetreten ist.
Die nachfolgend aufgelisteten Systemfunktionen sind dem Aufruftyp SCM zugeordnet, d.h. diese Funktionen können im Schaltplaneditor aufgerufen werden:
int scm_askrefname( // Returns status
& string; // Returns reference name
);
Die Funktion scm_askrefname aktiviert einen Dialog zur Referenznamensabfrage, d.h. zur Auswahl von Symbolen auf Stromlaufebene bzw. zur Auswahl von Pins auf Symbolebene. Der Funktionsrückgabewert ist Null bei erfolgreicher Referenzauswahl oder ungleich Null im Fehlerfall.
int scm_asktreename( // Status
& string; // Rückgabe Netzname
);
Die Funktion scm_asktreename aktiviert einen Dialog zur Netznamensabfrage. Der Funktionsrückgabewert ist Null bei erfolgreicher Netzauswahl oder ungleich Null im Fehlerfall.
int scm_attachtextpos( // Status
index C_FIGURE; // SCM-Element
string; // Text
double; // Text-X-Koordinate (STD2)
double; // Text-Y-Koordinate (STD2)
double; // Textdrehwinkel (STD3)
double ]0.0,[; // Textgröße (STD2)
int [-1,1]; // Textspiegelungsmodus (STD14) oder (-1) zum Rüsetzen
);
Die Funktion scm_attachtextpos weist die Parameter für Position, Drehwinkel, Größe und Spiegelung an den angegebenen Text des spezifierten SCM-Elements zu. Der Funktionsrückgabewert ist Null bei erfolgreicher Zuweisung, (-1) bei ungültigen Parametern oder (-2) wenn das Layoutelement keine Definition für den angegebenen Text enthält.
Funktion scm_storetext.
int scm_checkbustapplot( // Rückgabe Plotstatus index C_FIGURE; // Busverbindungselement index C_BUSTAP; // Busanschluß );
Die Funktion scm_checkbustapplot gibt den Wert 1 zurück wenn die Plotausgabe für den sepzifizierten Busanschluß deaktiviert ist. Im anderen Fall ergibt sich der Rückgabewert zu Null.
int scm_checkjunctplot( // Plotstatus
double; // Verbindungspunkt X-Position (STD2)
double; // Verbindungspunkt Y-Position (STD2)
);
Die Funktion scm_checkjunctplot überprüft, ob eine Plotausgabe von Verbindungspunktmarkern an der angegebenen Koordinate durchzuführen ist (Funktionsrückgabewert 0) oder unterdrückt werden soll (Funktionsrückgabewert 1).
int scm_chkattrname( // Rückgabe ungleich Null bei ungültigem Attributnamen
string; // Attributname
);
Die Funktion scm_chkattrname überprüft ob der angegebene Attributname gültig ist und eine Attributwertzuweisung zulässt. Der Funktionsrückgabewert ist Null bei gültigem Attributnamen bzw. ungleich Null wenn der Attributname ungültig ist.
Funktion scm_setpartattrib.
int scm_conseggrpchg( // Status
index C_CONSEG; // Verbindungssegment
int [0,6]; // Neue Gruppenzugehörigkeit (STD13)
// |4 - Anzeige Gruppenstatusmeldung
);
Die Funktion scm_conseggrpchg ändert die Gruppenzugehörigkeit des übergebenen Verbindungssegments. Der Rückgabewert ist Null bei erfolgter Änderung oder (-1) wenn das übergebene Element ungültig ist.
string scm_deflibname( // Default SCM Bibliotheksname
);
Der Rückgabewert der Funktion scm_deflibname entspricht dem in der Setupdatei eingestellten Defaultnamen für die SCM-Bibliothek.
string scm_defloglname( // Default Packager Bibliotheksname
);
Der Rückgabewert der Funktion scm_defloglname entspricht dem in der Setupdatei eingestellten Defaultnamen für die vom Packager verwendete Layoutbibliothek. Dieser Dateiname wird üblicherweise bei der Abfrage von logischen Bauteildefinitionen.
Funktion con_getlogpart; Utilityprogramm bsetup.
int scm_defsegbus( // Status
& index C_CONSEG; // Verbindungssegment
);
Die Funktion scm_defsegbus definiert das übergebene Verbindungssegment und alle damit verbundenen Segmente zum Bus. Der Rückgabewert ist ungleich Null, wenn die Busdefinition nicht durchgeführt werden konnte.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
C_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int scm_delconseg( // Status
& index C_CONSEG; // Verbindungssegment
);
Die Funktion scm_delconseg löscht das übergebene Verbindungssegment. Der Rückgabewert ist Null bei erfolgter Löschung und (-1), wenn das übergebene Element ungültig ist. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
C_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int scm_delelem( // Status
& index C_FIGURE; // Element
);
Die Funktion scm_delelem löscht das übergebene Element aus der Elementliste. Der Rückgabewert ist Null bei erfolgter Löschung und (-1), wenn das übergebene Element ungültig ist. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
C_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
Funktion scm_drawelem.
void scm_drawelem(
index C_FIGURE; // Element
int [0, 4]; // Zeichenmodus (STD19)
);
Die Funktion scm_drawelem aktualisiert die Anzeige des angegebenen Elements unter Verwendung des spezifizierten Zeichenmodus.
Funktion scm_delelem.
int scm_elemangchg( // Status
& index C_FIGURE; // Element
double; // Neuer Winkel (STD3)
);
Die Funktion scm_elemangchg ändert den Drehwinkel des übergebenen Elements. Der Drehwinkel wird ausgehend vom Nullwinkel eingestellt, d.h. der vorhergehende Drehwinkel des Elements hat keinen Einfluss auf das Ergebnis. Die Winkelangabe wird als Bogenmaßwert interpretiert. Der Rückgabewert ist Null bei erfolgter Änderung, (-1) wenn das übergebene Element ungültig oder (-2) wenn es nicht drehbar ist. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
C_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int scm_elemgrpchg( // Status
index C_FIGURE; // Element
int [0,6]; // Neue Gruppenzugehörigkeit (STD13)
// |4 - Anzeige Gruppenstatusmeldung
);
Die Funktion scm_elemgrpchg ändert die Gruppenzugehörigkeit des übergebenen Elements. Der Rückgabewert ist Null bei erfolgter Änderung, (-1) wenn das übergebene Element ungültig ist oder (-2) wenn es sich nicht um ein gruppenselektierbares Element handelt. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
int scm_elemmirrchg( // Status
& index C_FIGURE; // Element
int [0,1]; // Neuer Spiegelungsmodus (STD14)
);
Die Funktion scm_elemmirrchg ändert den Spiegelungsmodus des übergebenen Elements. Der Spiegelungsmodus kann bei Texten und Referenzen geändert werden. Der Rückgabewert ist Null bei erfolgter Änderung, (-1) wenn das übergebene Element ungültig ist oder (-2) wenn es nicht gespiegelt werden kann. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
C_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int scm_elemposchg( // Status
& index C_FIGURE; // Element
double; // X-Position (STD2)
double; // Y-Position (STD2)
);
Die Funktion scm_elemposchg ändert die Position des übergebenen Elements. Bei Polygonen wird das Polygon so verschoben, dass der erste Punkt des Polygons auf der angegebenen Position zu liegen kommt. Der Rückgabewert ist Null bei erfolgter Änderung, (-1) wenn das übergebene Element ungültig oder (-2) wenn es nicht positionierbar ist. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
C_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int scm_elemsizechg( // Status
& index C_FIGURE; // Element
double; // Neue Größe (STD2)
);
Die Funktion scm_elemsizechg ändert die Größe des übergebenen Elements. Eine Größenänderung ist nur bei Textelementen möglich. Der Rückgabewert ist Null bei erfolgter Änderung, (-1) wenn das übergebene Element ungültig oder (-2) wenn es nicht größenveränderbar ist. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
C_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int scm_findpartplc( // Platzierungsstatus
string; // Bauteilname
);
Die Funktion scm_findpartplc kann im BAE HighEnd Schaltplaneditor dazu benutzt werden, den Platzierungsstatus von Layoutbauteilen zu prüfen. Der Funktionsrückgabewert ist 1 wenn das Bauteil mit dem angegebenen Bauteilnamen auf dem Projektlayout platziert ist. Andernfalls wird der Wert Null zurückgegeben.
int scm_getdblpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = Plot Skalierungsfaktor
// 1 = Plotter HPGL-Geschwindigkeit
// 2 = Plotter Stiftbreite (STD2)
// 3 = X-Koord. letzte Gruppenplatzierung (STD2)
// 4 = Y-Koord. letzte Gruppenplatzierung (STD2)
// 5 = Standardsymbolplatzierungswinkel (STD3)
// 6 = Standardtextgröße (STD2)
// 7 = Standardtextplatzierungswinkel (STD3)
& double; // Rückgabe Parameterwert
);
Die Funktion
scm_getdblpar dient der Abfrage von mit
scm_setdblpar im
Schaltplaneditor gesetzten Parametern vom Typ
double. Der Funktionsrückgabewert ist Null bei erfolgreicher Abfrage oder (-1) im Fehlerfall.
Funktionen scm_getintpar, scm_getstrpar, scm_setdblpar, scm_setintpar, scm_setstrpar.
int scm_getgroupdata( // Status
& double; // Gruppenbezugspunkt X-Koordinate (STD2)
& double; // Gruppenbezugspunkt Y-Koordinate (STD2)
& double; // Gruppendrehwinkel (STD3)
& double; // Gruppenskalierungsfaktor
& int; // Gruppenspiegelungsmodus
& double; // Gruppenquadrant X-Koordinate (STD2)
& double; // Gruppenquadrant Y-Koordinate (STD2)
& int; // Gruppenquadrantmodus
& int; // Gruppenbereichsmodus
);
Die Funktion scm_getgroupdata ermöglicht die Abfrage der aktuellen Eingabedaten während interaktiver Gruppenplatzierungen im Schaltplaneditor. Der Funktionsrückgabewert ist ungleich Null wenn gerade keine Gruppenplatzierungsinteraktion aktiviert ist.
Funktion scm_getinputdata.
int scm_gethighlnet( // Status
int [-1,[; // Netznummer oder -1 für Highlightfokusmodusabfrage
& int; // Highlightmodus
);
Mit der Funktion scm_gethighlnet kann der Highlightmodus für das Netz mit der angegebenen Netznummer abgefragt werden. Bei aktiviertem Netzhighlight wird im Parameter für den Highlightmodus ein Wert ungleich Null zurückgegegen, bei deaktiviertem Netzhighlight ergibt sich der Highlightmodusparameter zu Null. Der Funktionsrückgabewert ergibt sich zu einem Wert ungleich Null, wenn die Abfrage erfolgreich war, andernfalls (Netz nicht gefunden, ungültige Parameter) wird der Wert Null zurückgegeben.
Funktion scm_highlnet.
void scm_gethpglparam(
& string; // HP-GL Plotdateiname
& double; // HP-GL Maßstab
& double; // HP-GL Geschwindigkeit (-1.0 volle Geschw.)
& double; // HP-GL Stiftbreite (STD2)
& int; // HP-GL Füllmodus:
// 0 = Füllen aus
// 1 = Füllen ein
& int; // HP-GL Rotationsmodus:
// 0 = keine Drehung
// 1 = Drehung um 90 Grad
// sonst = automatische Drehung
);
Die Funktion scm_gethpglparam gibt die aktuell im Schaltplaneditor eingestellten HP-GL-Plotparameter zurück.
int scm_getinputdata( // Status
& double; // Ursprüngliche X-Koordinate (STD2)
& double; // Ursprüngliche Y-Koordinate (STD2)
& double; // Ursprüngliche Breite (STD2)
& int; // Ursprünglicher Anzeigeelementtyp (SCM1)
& double; // Aktuelle X-Koordinate (STD2)
& double; // Aktuelle Y-Koordinate (STD2)
& double; // Aktuelle Breite (STD2)
& int; // Aktueller Anzeigelementtyp (SCM1)
& void; // Eingabemodus/Element
& double; // Erstes Segment Start-X-Koordinate (STD2) */
& double; // Erstes Segment Start-Y-Koordinate (STD2) */
& double; // Erster Kreismittelpunkt X-Koordinate (STD2) */
& double; // Erster Kreismittelpunkt Y-Koordinate (STD2) */
& int; // Erster Kreismittelpunkt Typ (STD15) */
& double; // Letztes Segment Start-X-Koordinate (STD2) */
& double; // Letztes Segment Start-Y-Koordinate (STD2) */
& double; // Letzter Kreismittelpunkt X-Koordinate (STD2) */
& double; // Letzter Kreismittelpunkt Y-Koordinate (STD2) */
& int; // Letzter Kreismittelpunkt Typ (STD15) */
);
Die Funktion scm_getinputdata ermöglicht die Abfrage der aktuellen Eingabedaten während interaktiver Platzierungen im Schaltplaneditor. Die Interpretation der Platzierungsdaten ist entsprechend dem zurückgelieferten Funktionsparameter für den Eingabemodus bzw. das Platzierungselement vorzunehmen. Der Funktionsrückgabewert ist ungleich Null wenn gerade keine Platzierungsinteraktion aktiviert ist.
Funktion scm_getgroupdata.
int scm_getintpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = Pickpunktanzeigemodus:
// 0 = keine Pickpunktanzeige
// 1 = Pickpunktanzeige
// 1 = Symbol/Gruppen-Reroutingmodus:
// Bit 0/1: Routermodus
// 0 = Router inaktiv
// 1 = Symbol- & Gruppenrouting
// 2 = Nur Symbolrouting
// 3 = Nur Gruppenrouting
// Bit 2: Quickshot-Routing Flag
// 2 = Symbolbewegungsmodus:
// 0 = Symboltextoffsets zurücksetzen
// 1 = Symboltextoffsets beibehalten
// 3 = Typ der zuletzt platzierten Referenz:
// (-1) = keine Referenz platziert
// 0 = Symbol
// 1 = Label
// 2 = Modulport
// 4 = Warnungen bei Verbindung benannter Netze:
// 0 = Warnmeldungsanzeige deaktiviert
// 1 = Warnmeldungsanzeige aktiviert
// 5 = Elementpickmodus:
// 0 = Bester Pick
// 1 = Pickelementauswahl
// 6 = Farbmodus Generischer Drucker:
// 0 = schwarzweiss
// 1 = farbig
// 7 = Warnmeldungsmodus:
// Bit 0: $-Umbenennungen unterdrücken
// Bit 1: Netzzusammenfassungen unterdrücken
// Bit 2: Modulportwarnungen unterdrückt
// Bit 4: Gruppensymbolumbenennungswarnungen unterdrückt
// Bit 5: Variantenvergleichswarnungen unterdrückt
// 8 = Eingabemodus für Namen:
// 0 = Autopattern für Symbolnamen
// 1 = Eingabeaufforderung für Symbolnamen
// 9 = Infoanzeigeflag:
// 0 = keine Infoanzeige
// 1 = automatische Infoanzeige
// 10 = Infoanzeigemodus:
// 0 = keine automatische Infoanzeige
// 1 = vollständige Infoanzeige
// 2 = nur netzspezifische Infoanzeige
// 11 = Labelreroutingmodus:
// 0 = kein automatisches Labelrerouting
// 1 = automatisches Labelrerouting
// 12 = Offset Subsymbolnummer
// 13 = Generische Plotausgabe Skalierungsmodus:
// 0 = fester Skalierungsfaktor
// 1 = automatische Skalierung auf Seite
// 14 = Generische Plotausgabe Farbmodus:
// 0 = schwarz/weiss
// 1 = aktuelle Farbeinstellung benutzen
// 15 = HPGL Füllmodus:
// 0 = Konturen zeichnen
// 1 = Flächen füllen
// 2 = Flächen füllen, Linien/Texte zeichnen
// 16 = Flächenpolygoneditiermodus:
// 0 = keine geschlossenen Linienzüge
// 1 = immer geschlossene Linienzüge
// 2 = Abfrage zum Schließen von Linienzügen
// 17 = Gruppenreroutingmodus:
// 0 = kein Löschen von Außenantennen
// 1 = Löschen erstes Außenantennensegment
// 2 = Löschen alle Außenantennensegmente
// 18 = Benutzerspezifisches Standardeinheitensystem:
// 0 = metrisch
// 1 = zöllig
// 19 = Plotvorschaumodus:
// 0 = keine Plotvorschau
// 1 = Plotterstiftbreite
// 20 = Autosave Intervall
// 21 = Automatische Verbindungsecken
// 22 = Winkelfreigabeflag
// 23 = Standardsymbolspiegelung
// 24 = Gruppenbewegtdarstellung:
// 0 = Bewegtbild ein
// 1 = Bewegtbild alles
// 2 = Bewegtbild kontinuierlich
// 25 = Zwischenablagetext-Platzierungsanforderung
// 26 = Signalrouter Routingbereich
// 27 = Automatische Busanzapfung
// 28 = Signalrouter Markerscan
// 29 = Segmentbewegungsmodus:
// 0 = Bewegen ohne Nachbarn
// 1 = Bewegen mit Nachbarn
// 2 = Nachbarn anpassen
// |4 = Endpunkt folgt Segment
// 30 = Gruppenwinkelfreigabemodus:
// 0 = Gruppenwinkel einhalten
// 1 = Gruppenwinkel automatisch freigeben
// 31 = Standard-Textspiegelungsmodus (STD14)
// 32 = Standard-Textmodus (CAP1|CAP7)
// 33 = Symbol $noplc Plotsichtbarkeitsbeziehung:
// Bit 0 = $noplc setzen bei Plotsichtbarkeitsänderung
// Bit 1 = Plotsichtbarkeit setzen bei $noplc-Änderung
// 34 = Netzplanlisting Maximallänge [ 3,200]
// 35 = Flag - Einzeleckenbearbeitung
// 36 = Flag - Unroutes-Liniengenerierung
// 37 = Flag - Polygonbearbeitung Autocomplete-Modus
// 38 = Fehlerhighlightmodus:
// 0 = Fehlerhighlight
// 1 = Fehlermuster/-strichelung
// 39 = Flag - Automirror horizontal bus taps
// 40 = Symbol-/Label-Tagmodus:
// 0 = Standardsymbol
// 1 = Virtueller Tag
// 2 = Netzlistentag
// 41 = Verbindungstrennmodus:
// 0 = Verbindungen nicht trennen
// 1 = Verbindungen an Zweipinsymbolen trennen
// 2 = Verbindungen trennen
// 42 = Symbolverbindungstrennmodus:
// 0 = Verbindungen nicht trennen
// 1 = Verbindungen an Zweipinsymbolen trennen
// 2 = Verbindungen trennen
// 43 = Von scm_checkjunctplot gesetzte Verbindungspunktmarker-Gruppensegmentanzahl
// 44 = Aktuelle Anzahl Projektpläne
// 45 = Anzeigeklassenbits Verbindung (SCM2)
// 46 = Anzeigeklassenbits Bus (SCM2)
// 47 = Anzeigeklassenbits Text (SCM2)
// 48 = Anzeigeklassenbits Kommentartext (SCM2)
// 49 = Anzeigeklassenbits Grafikfläche (SCM2)
// 50 = Anzeigeklassenbits Grafiklinie (SCM2)
// 51 = Anzeigeklassenbits Strichlinie (SCM2)
// 52 = Anzeigeklassenbits Verbindungsfläche (SCM2)
// 53 = Anzeigeklassenbits Netzbereich (SCM2)
// 54 = Anzeigeklassenbits Makroumrandung (SCM2)
// 55 = Anzeigeklassenbits Tag (SCM2)
& int; // Rückgabe Parameterwert
);
Die Funktion scm_getintpar dient der Abfrage von mit scm_setintpar im Schaltplaneditor gesetzten Integerparametern. Der Funktionsrückgabewert ist Null bei erfolgreicher Abfrage oder (-1) im Fehlerfall.
Funktionen scm_getdblpar, scm_getstrpar, scm_setdblpar, scm_setintpar, scm_setstrpar.
int scm_getstrpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = Name zuletzt platziertes Bibliothekselement
// 1 = Name zuletzt platziertes benanntes Element
// 2 = Name zuletzt platziertes Netz
// 3 = Name zuletzt platzierter Busanschluß
// 4 = Inhalt zuletzt platzierte Zeichenkette
// 5 = Symbolnamensmuster
// 6 = Nächster platzierter Text
// 7 = Bibliothek zuletzt platziertes Makro
// 8 = Fehlerhafte Busanschlussbezeichnung
// 9 = Fehlerhafte Busbezeichnung
// 10 = Nächster freier Name
// 11 = Current hierachical block reference name
// 12 = Last picked attribute name
// 13 = Last picked attribute value
// 14 = Autosave path name
& string; // Returns parameter value
);
Die Funktion scm_getstrpar dient der Abfrage von im Schaltplaneditor gesetzten Stringparametern. Der Funktionsrückgabewert ist Null bei erfolgreicher Abfrage oder (-1) im Fehlerfall.
Funktionen scm_getdblpar, scm_getintpar, scm_setdblpar, scm_setintpar, scm_setstrpar.
int scm_highlnet( // Status
int [-1,[; // Netznummer
int [0,1]; // Highlightmodus
);
Mit der Funktion scm_highlnet kann der Highlightmodus für das Netz mit der angegebenen Netznummer gesetzt werden. Zur Aktivierung des Netzhighlights ist das Bit 1 der Highlighmodusparameter auf 1 zu setzen, die Deaktivierung erfolgt entsprechend durch Zuweisung von Null. Der Funktionsrückgabewert ergibt sich zu einem Wert ungleich Null bei erfolgreicher Änderung des netzspezifischen Highlightmodus, andernfalls (Netz nicht gefunden, ungültige Parameter) wird der Wert Null zurückgegeben.
Funktion scm_gethighlnet.
int scm_pickanyelem( // Status
& index C_FIGURE; // Rückgabe selektiertes Anzeigeelement
& index C_CONSEG; // Rückgabe selektiertes Verbindungssegment
& index C_BUSTAP; // Rückgabe selektierter Busanschluß
& int; // Rückgabe selektierter Elementtyp:
// 0 = Anzeigeelement
// 1 = Verbindungssegment
// 2 = Busanschluß
int; // Pickelementtypmenge ((CAP3 außer 7)<<1 verodert)
);
Die Funktion scm_pickanyelem aktiviert eine Mausinteraktion zur Selektion eines Elements aus der angegebenen Pickelementtypmenge. Das selektierte Element wird in einem der ersten drei Parameter zurückgegeben. Der Rückgabewert für den selektierten Elementtyp kann zur Bestimmung des gültigen Parameters für das selektierte Element ausgewertet werden. Der Funktionsrückgabewert ist Null bei erfolgter Selektion und ungleich Null wenn an der Pickposition kein Element gefunden wurde.
Funktionen scm_pickbustap, scm_pickconseg, scm_pickelem, scm_setpickconseg.
int scm_pickbustap( // Status
& index C_BUSTAP; // Rückgabe selektiertes Busanschlusselement
);
Mit der Funktion scm_pickbustap kann vom Benutzer mit der Maus ein Busanschluss selektiert werden. Der Rückgabewert ist Null bei erfolgter Selektion und (-1) wenn an der Pickposition kein Busansachlusselement gefunden wurde.
Funktionen scm_pickanyelem, scm_pickconseg, scm_pickelem, scm_setpickconseg.
int scm_pickconseg( // Status
& index C_CONSEG; // Rückgabe Verbindungssegment
);
Mit der Funktion scm_pickconseg kann vom Benutzer mit der Maus ein Verbindungssegment selektiert werden. Der Rückgabewert ist Null bei erfolgter Selektion und (-1) wenn an der Pickposition kein Verbindungssegment gefunden wurde.
Funktionen scm_pickanyelem, scm_pickbustap, scm_pickelem, scm_setpickconseg.
int scm_pickelem( // Status
& index C_FIGURE; // Rückgabe selektiertes Element
int [1,11]; // Elementtyp (CAP3 außer 2 und 7)
);
Mit der Funktion scm_pickelem kann vom Benutzer mit der Maus ein Element des gewünschten übergebenen Typs selektiert werden, wobei mit dieser Funktion keine Verbindungen selektiert werden können. Der Rückgabewert ist Null bei erfolgter Selektion und (-1) wenn an der Pickposition kein Element des gewünschten Typs gefunden wurde.
Funktionen scm_pickanyelem, scm_pickbustap, scm_pickconseg, scm_setpickconseg.
int scm_setdblpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = Plot Skalierungsfaktor
// 1 = Plotter HPGL-Geschwindigkeit
// 2 = Plotter Stiftbreite (STD2)
// 3 = X-Koordinate letzte Gruppenplatzierung (STD2)
// 4 = Y-Koordinate letzte Gruppenplatzierung (STD2)
// 5 = Standardsymbolplatzierungswinkel (STD3)
// 6 = Standardtextgröße (STD2)
// 7 = Standardtextplatzierungswinkel (STD3)
double; // Parameterwert
);
Die Funktion
scm_setdblpar dient dazu, Systemparameter vom Typ
double im
Schaltplaneditor zu setzen. Der Funktionsrückgabewert ist Null bei erfolgreicher Parameterzuweisung oder (-1) im Fehlerfall. Die Werte von mit
scm_setdblpar gesetzten Systemparametern können mit der Funktion
scm_getdblpar abgefragt werden.
Funktionen scm_getdblpar, scm_getintpar, scm_getstrpar, scm_setintpar, scm_setstrpar.
int scm_setintpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = Pickpunktanzeigemodus:
// 0 = keine Pickpunktanzeige
// 1 = Pickpunktanzeige
// 1 = Symbol/Gruppen-Reroutingmodus:
// Bit 0/1: Routermodus
// 0 = Router inaktiv
// 1 = Symbol- & Gruppenrouting
// 2 = Nur Symbolrouting
// 3 = Nur Gruppenrouting
// Bit 2: Quickshot-Routing Flag
// 2 = Symbolbewegungsmodus:
// 0 = Symboltextoffsets zurücksetzen
// 3 = Typ der zuletzt platzierten Referenz:
// Parameter nur für Lesezugriff!
// 4 = Warnungen bei Verbindung benannter Netze:
// 0 = Warnmeldungsanzeige deaktivieren
// 1 = Warnmeldungsanzeige aktivieren
// 5 = Elementpickmodus:
// 0 = Bester Pick
// 1 = Pickelementauswahl
// 6 = Farbmodus Generischer Drucker:
// 0 = schwarzweiss
// 1 = farbig
// 7 = Warnmeldungsmodus:
// Bit 0 = $-Umbenennungen unterdrücken
// Bit 1: Netzzusammenfassungen unterdrücken
// Bit 2: Modulportwarnungen unterdrücken
// Bit 4: Gruppensymbolumbenennungswarnungen unterdrücken
// Bit 5: Variantenvergleichswarnungen unterdrücken
// 8 = Eingabemodus für Namen:
// 0 = Autopattern für Symbolnamen
// 1 = Eingabeaufforderung für Symbolnamen
// 9 = Infoanzeigeflag:
// 0 = keine Infoanzeige
// 1 = automatische Infoanzeige
// 10 = Infoanzeigemodus:
// 0 = keine automatische Infoanzeige
// 1 = vollständige Infoanzeige
// 2 = nur netzspezifische Infoanzeige
// 11 = Labelreroutingmodus:
// 0 = kein automatisches Labelrerouting
// 1 = automatisches Labelrerouting
// 12 = Offset Subsymbolnummer
// 13 = Generische Plotausgabe Skalierungsmodus:
// 0 = fester Skalierungsfaktor
// 1 = automatische Skalierung auf Seite
// 14 = Generische Plotausgabe Farbmodus:
// 0 = schwarz/weiss
// 1 = aktuelle Farbeinstellung benutzen
// 15 = HPGL Füllmodus:
// 0 = Konturen zeichnen
// 1 = Flächen füllen
// 2 = Flächen füllen, Linien/Texte zeichnen
// 16 = Flächenpolygoneditiermodus:
// 0 = keine geschlossenen Linienzüge
// 1 = immer geschlossene Linienzüge
// 2 = Abfrage zum Schließen von Linienzügen
// 17 = Gruppenreroutingmodus:
// 0 = kein Löschen von Außenantennen
// 1 = Löschen erstes Außenantennensegment
// 2 = Löschen alle Außenantennensegmente
// 18 = Benutzerspezifisches Standardeinheitensystem:
// 0 = metrisch
// 1 = zöllig
// 19 = Plotvorschaumodus:
// 0 = keine Plotvorschau
// 1 = Plotterstiftbreite
// 20 = Autosave Intervall
// 21 = Automatische Verbindungsecken
// 22 = Winkelfreigabeflag
// 23 = Standardsymbolspiegelung
// 24 = Gruppenbewegtdarstellung:
// 0 = Bewegtbild ein
// 1 = Bewegtbild alles
// 2 = Bewegtbild kontinuierlich
// 25 = Zwischenablagetext-Platzierungsanforderung
// 26 = Signalrouter Routingbereich
// 27 = Automatische Busanzapfung
// 28 = Signalrouter Markerscan
// 29 = Segmentbewegungsmodus:
// 0 = Bewegen ohne Nachbarn
// 1 = Bewegen mit Nachbarn
// 2 = Nachbarn anpassen
// |4 = Endpunkt folgt Segment
// 30 = Gruppenwinkelfreigabemodus:
// 0 = Gruppenwinkel einhalten
// 1 = Gruppenwinkel automatisch freigeben
// 31 = Standard-Textspiegelungsmodus (STD14)
// 32 = Standard-Textmodus (CAP1|CAP7)
// 33 = Symbol $noplc Plotsichtbarkeitsbeziehung:
// Bit 0 = $noplc setzen bei Plotsichtbarkeitsänderung
// Bit 1 = Plotsichtbarkeit setzen bei $noplc-Änderung
// 34 = Netzplanlisting Maximallänge [ 3,200]
// 35 = Flag - Einzeleckenbearbeitung
// 36 = Flag - Unroutes-Liniengenerierung
// 37 = Flag - Polygonbearbeitung Autocomplete-Modus
// 38 = Fehlerhighlightmodus:
// 0 = Fehlerhighlight
// 1 = Fehlermuster/-strichelung
// 39 = Flag - Automirror horizontal bus taps
// [ 40 = Systemparameter - kein Schreibzugriff ]
// 41 = Verbindungstrennmodus:
// 0 = Verbindungen nicht trennen
// 1 = Verbindungen an Zweipinsymbolen trennen
// 2 = Verbindungen trennen
// 42 = Symbolverbindungstrennmodus:
// 0 = Verbindungen nicht trennen
// 1 = Verbindungen an Zweipinsymbolen trennen
// 2 = Verbindungen trennen
// [ 43 = Systemparameter - kein Schreibzugriff ]
// [ 44 = Systemparameter - kein Schreibzugriff ]
// 45 = Anzeigeklassenbits Verbindung (SCM2)
// 46 = Anzeigeklassenbits Bus (SCM2)
// 47 = Anzeigeklassenbits Text (SCM2)
// 48 = Anzeigeklassenbits Kommentartext (SCM2)
// 49 = Anzeigeklassenbits Grafikfläche (SCM2)
// 50 = Anzeigeklassenbits Grafiklinie (SCM2)
// 51 = Anzeigeklassenbits Strichlinie (SCM2)
// 52 = Anzeigeklassenbits Verbindungsfläche (SCM2)
// 53 = Anzeigeklassenbits Netzbereich (SCM2)
// 54 = Anzeigeklassenbits Makroumrandung (SCM2)
// 55 = Anzeigeklassenbits Tag (SCM2)
int; // Parameterwert
);
Die Funktion
scm_setintpar dient dazu, Systemparameter vom Typ
int im
Schaltplaneditor zu setzen. Der Funktionsrückgabewert ist Null bei erfolgreicher Parameterzuweisung oder (-1) im Fehlerfall. Die Werte von mit
scm_setintpar gesetzten Systemparametern können mit der Funktion
scm_getintpar abgefragt werden.
Funktionen scm_getdblpar, scm_getintpar, scm_getstrpar, scm_setdblpar, scm_setstrpar.
int scm_setpartattrib( // Status
string; // Bauteilname
string; // Attributname
string; // Attributwert
int; // Bauteilbearbeitungsflags:
// Bit 0: vom Bildschirm entfernen
// Bit 1: Bildschirmanzeige aktualisieren
// Bit 2: Zuweisung erzwingen, Varianten deaktivieren
);
Die Funktion scm_setpartattrib setzt für das namentlich spezifizierte Bauteil den Wert des angegebenen Attributs. Die maximal speicherbare Stringlänge für den Attributwert beträgt 40 Zeichen. Der Rückgabewert ist Null bei erfolgreicher Attributwertdefinition, (-1) wenn kein gültiges Element geladen ist, (-2) bei fehlenden bzw. ungültigen Parametern, (-3) wenn das Bauteil nicht gefunden wurde, oder (-4) wenn das Attribut mit dem angegebenen Name nicht am Bauteil definiert ist.
Funktion scm_chkattrname.
int scm_setpickconseg( // Status
index C_CONSEG; // Verbindungssegment
);
Die Funktion scm_setpickconseg selektiert das angegebene Verbindungssegment als Defaultelement für nachfolgende Verbindungssegmentpickoperationen. Der Rückgabewert ist Null bei erfolgreicher Selektion oder (-1) im Fehlerfall.
Funktionen scm_pickanyelem, scm_pickconseg, scm_pickbustap, scm_pickelem.
int scm_setpickelem( // Status
index C_FIGURE; // Defaultpickelement
);
Die Funktion scm_setpickelem setzt ein Defaultelement für nachfogende Pickoperationen im Schaltplaneditor. Der Funktionsrückgabewert ist ungleich Null im Fehlerfall.
Funktion scm_pickelem.
int scm_setstrpar( // Status
int [0,[; // Parametertyp/-nummer:
// [ 0 = Systemparameter schreibgeschützt ]
// [ 1 = Systemparameter schreibgeschützt ]
// [ 2 = Systemparameter schreibgeschützt ]
// [ 3 = Systemparameter schreibgeschützt ]
// 4 = Inhalt zuletzt platzierte Zeichenkette
// 5 = Symbolnamensmuster
// [ 6 = Systemparameter - kein Schreibzugriff ]
// [ 7 = Systemparameter schreibgeschützt ]
// [ 8 = Systemparameter schreibgeschützt ]
// [ 9 = Systemparameter schreibgeschützt ]
// [ 10 = Systemparameter schreibgeschützt ]
// 11 = Current hierachical block reference name
// [ 12 = System parameter write-protected ]
// [ 13 = System parameter write-protected ]
// 14 = Autosave path name
string; // Parameter value
);
Die Funktion
scm_setstrpar dient dazu, Systemparameter vom Typ
string im
Schaltplaneditor zu setzen. Der Funktionsrückgabewert ist Null bei erfolgreicher Parameterzuweisung oder (-1) im Fehlerfall. Die Werte von mit
scm_setstrpar gesetzten Systemparametern können mit der Funktion
scm_getstrpar abgefragt werden.
Funktionen Funktionen scm_getdblpar, scm_getintpar, scm_getstrpar, scm_setdblpar, scm_setintpar.
int scm_settagdata( // Status
index C_FIGURE; // Tag Element
string; // Tag Pinname
string; // Tag Referenzname 1
string; // Tag Referenzname 2
);
Die Funktion scm_settagdata dient der Zuweisung der spezifizierten Tagzieldaten (Tagpinname und Tagreferenzbezeichnungen) an das angegebene Tagelement im Schaltplan. Der Funktionsrückgabewert ist Null bei erfolgreicher Zuweisung oder ungleich Null im Fehlerfall.
Funktion cap_gettagdata.
int scm_storecon( // Status
);
Die Funktion scm_storecon erzeugt aus der internen Punktliste eine Verbindung auf dem aktuell geladenen Stromlaufblatt. Der Rückgabewert ist gleich Null, wenn die Verbindung erfolgreich platziert wurde, (-1) wenn kein gültiges Element geladen ist, (-2) wenn der Verbindungspunktmarker nicht definiert ist, oder (-3) bei ungültigen Polygondaten (nicht-orthogonale Segmente bzw. Kreisbögen in der Punktliste).
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
C_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int scm_storelabel( // Status
string; // Label Netzname
int [0,2]; // Labeltyp:
// 0 = Standard Label
// 1 = Modulport
// 2 = Bustap
double; // X-Koordinate (STD2)
double; // Y-Koordinate (STD2)
double; // Drehwinkel (STD3)
int [0,1]; // Spiegelungsmodus (STD14)
);
Die Funktion scm_storelabel platziert einen Label mit den angegebenen Parametern auf dem aktuell geladenen Stromlaufblatt. Das erste Zeichen des Label-Netznamens darf kein Fragezeichen sein, da dieses zur Kennzeichnung von Modulports verwendet wird. Der Drehwinkel wird beim Platzieren von Bustaps ignoriert; außerdem müssen Bustaps immer an Bus-Verbindungssegmente angeschlossen, d.h. exakt auf solchen platziert werden. Der Name des Label-Bibliothekssymbols ergibt sich bei Standardlabels aus dem Netznamen bzw. zustandard, wenn kein entsprechendes Labelsymbol definiert ist; beim Platzieren von Modulports bzw. Bustaps werden per Default die Labelsymboleportbzw.bustapverwendet. Der Rückgabewert ist gleich Null, wenn der Label erfolgreich platziert wurde, (-1) wenn kein gültiges Element geladen ist, (-2) bei fehlenden/ungültigen Parametern, (-3) wenn der Label nicht ladbar ist, (-4) wenn die Labeldaten nicht in die Jobdatenbank kopiert werden konnten, oder (-5) wenn die Platzierungsdaten eines Bustaps nicht auf einem gültigen Verbindungssegment liegen.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
C_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int scm_storepart( // Status
& string; // Bauteilname
string; // Bauteil Bibiotheksteilname
double; // X-Koordinate (STD2)
double; // Y-Koordinate (STD2)
double; // Drehwinkel (STD3)
int [0,7]; // Spiegelungsmodus und Tagpintyp
// (STD14|(CAP6<<1))
);
Die Funktion scm_storepart platziert ein Bauteil mit den angegebenen Parametern auf dem gegenwärtig geladenen SCM-Element. Wird eine Leerzeichenkette für den Bauteilnamen übergeben, so wird der Bauteilname automatisch erzeugt und im entsprechenden Parameter an den Aufrufer zurückgegeben. Der Rückgabewert ist gleich Null, wenn das Bauteil erfolgreich platziert wurde, (-1) wenn kein gültiges Element geladen ist, (-2) bei fehlenden/ungültigen Parametern, (-3) wenn das Bauteil nicht ladbar ist, (-4) wenn die Bauteildaten nicht in die Jobdatenbank kopiert werden konnten, (-5) wenn das Bauteil bereits platziert ist, oder (-6) wenn bei der automatischen Bauteilnamenserzeugung ein Fehler aufgetreten ist.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
C_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int scm_storepoly( // Status
int [0,5]; // Polygontyp (CAP2)
);
Die Funktion scm_storepoly generiert aus der mit bae_storepoint erzeugten internen Punktliste unter Verwendung der angegebenen Parameter ein Polygon auf dem gegenwärtig geladenen SCM-Element. Der Rückgabewert ist gleich Null, wenn das Polygon erfolgreich platziert wurde, (-1) wenn kein gültiges Element geladen ist, (-2) bei ungültigen Parametern, oder (-3) wenn die Punktliste für den gegebenen Polygontyp ungültig ist.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
C_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int scm_storetext( // Status
string; // Textzeichenkette
double; // Text-X-Koordinate (STD2)
double; // Text-Y-Koordinate (STD2)
double; // Textdrehwinkel (STD3)
double ]0.0,[; // Textgröße (STD2)
int [0,1]; // Textspiegelungsmodus (STD14)
int [0,[; // Textmodus/-stil (CAP1|CAP7)
);
Die Funktion scm_storetext platziert einen Text mit den angegebenen Parametern auf dem gegenwärtig geladenen SCM-Element. Der Rückgabewert ist ungleich Null, wenn ungültige Daten übergeben wurden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
C_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden. Es können maximal 40 Zeichen der übergebenen Textzeichenkette gespeichert werden. Bei Übergabe längerer Zeichenketten gibt die Funktionen den Fehlerstatus zur Kennzeichnung ungültiger Parameter zurück.
Funktion scm_attachtextpos.
In diesem Abschnitt werden (in alphabetischer Reihenfolge) die in der Bartels User Language definierten PCB-Design-Systemfunktionen beschrieben. Beachten Sie bitte die Konventionen zur Funktionsbeschreibung in Anhang C.1.
Die nachfolgend aufgelisteten Systemfunktionen sind dem Aufruftyp LAY zugeordnet, d.h. diese Funktionen können im Layouteditor, im Autorouter und im CAM-Prozessor aufgerufen werden:
string lay_defelemname( // Default Layout Elementname
);
Der Rückgabewert der Funktion lay_defelemname entspricht dem in der Setupdatei eingestellten Defaultnamen für Layoutplanelemente.
string lay_deflibname( // Default Layout Bibliotheksname
);
Der Rückgabewert der Funktion lay_deflibname entspricht dem in der Setupdatei eingestellten Defaultnamen für die Layoutbibliothek.
int lay_defusrunit( // Koordinatenanzeigemodus (STD7)
);
Der Rückgabewert der Funktion lay_defusrunit entspricht der in der Setupdatei angegebenen Defaulteinstellung für die Koordinatenanzeige (1=Inch, 0=mm).
int lay_doclayindex( // Dokumentarlagen Anzeigeindex int [0,99]; // Dokumentarlagennummer );
Die Funktion lay_doclayindex ermittelt den Dokumentarlagenanzeigeindex für die übergebene Dokumentarlage. Der Funktionsrückgabewert ist (-1) wenn eine eine ungütige Lagennummer spezifiziert wurde.
Funktionen lay_doclayname, lay_doclayside, lay_doclaytext.
string lay_doclayname( // Dokumentarlagenname
int [0,99]; // Dokumentarlagennummer
);
Der Rückgabewert der Funktion lay_doclayname entspricht dem in der Setupdatei eingestellten Namen für die übergebene Dokumentarlage oder der Nullzeichenkette, wenn eine ungültige Lage angegeben wurde.
Funktionen lay_doclayindex, lay_doclayside, lay_doclaytext.
int lay_doclayside( // Dokumentarlagen Seitenmodus:
// (-2) = falsche Lagennummer
// (-1) = wählbar
// ( 0) = Seite 1
// ( 1) = Seite 2
// ( 2) = Beide Seiten
int [0,99]; // Dokumentarlagennummer
);
Der Rückgabewert der Funktion lay_doclayside entspricht dem in der Setupdatei eingestellten Seitenmodus für die übergebene Dokumentarlage. (-1) bedeutet Seite 1, Seite 2 und beide Seiten sind wählbar. 0, 1 und 2 bedeuten, dass für die entsprechende Dokumentarlage Seite 1, Seite 2 bzw. beide Seiten als Defaultwert eingestellt ist. Ein Rückgabewert von (-2) bedeutet, dass eine falsche Lagennummer spezifiziert wurde.
Funktionen lay_doclayindex, lay_doclayname, lay_doclaytext.
int lay_doclaytext( // Dokumentarlagen Textmodus (LAY2)
int [0,99]; // Dokumentarlagennummer
);
Der Rückgabewert der Funktion lay_doclaytext entspricht dem in der Setupdatei eingestellten Textmodus (LAY2) für die übergebene Dokumentarlage. Ein Rückgabewert von (-1) bedeutet, dass eine falsche Lagennummer spezifiziert wurde.
Funktionen lay_doclayindex, lay_doclayname, lay_doclayside.
int lay_figboxtest( // Status
index L_FIGURE; // Element
double; // Rechteck linke Grenze (STD2)
double; // Rechteck untere Grenze (STD2)
double; // Rechteck rechte Grenze (STD2)
double; // Rechteck obere Grenze (STD2)
);
Die Funktion lay_figboxtest prüft, ob das angegebene Element das angegebene Rechteck schneidet. Der Rückgabewert ist ungleich Null, wenn die Elementgrenzen das angegebene Rechteck schneiden.
int lay_findconpart( // Status
string; // Bauteilname
& index L_CPART; // Rückgabe Netzlistenbauteil
);
Die Funktion lay_findconpart sucht den angegebenen Bauteilnamen in der Netzliste und gibt den Bauteileintrag gegebenenfalls in dem Bauteilrückgabeparameter zurück. Der Rückgabewert dieser Funktion ist ungleich Null, wenn das Bauteil nicht gefunden wurde.
Funktionen lay_findconpartpin, lay_findcontree.
int lay_findconpartpin( // Status
string; // Pinname
index L_CPART; // Netzlistenbauteil
& index L_CPIN; // Rückgabe Netzlistenbauteilpin
);
Die Funktion lay_findconpartpin sucht den Bauteilpin mit dem angegebenen Namen auf dem spezifizierten Netzlistenbauteil und gibt den Bauteilpineintrag gegebenenfalls in dem Bauteilpinrückgabeparameter zurück. Der Rückgabewert dieser Funktion ist ungleich Null, wenn der Bauteilpin nicht gefunden wurde.
Funktionen lay_findconpart, lay_findcontree.
int lay_findcontree( // Status
string; // Netzname
& index L_CNET; // Rückgabe Netzlisteneintrag
);
Die Funktion lay_findcontree sucht den angegebenen Netznamen in der Netzliste und gibt den Netzlisteneintrag ggf. in dem Netzrückgabeparameter zurück. Der Rückgabewert dieser Funktion ist ungleich Null, wenn das Netz nicht gefunden wurde.
Funktionen lay_findconpart, lay_findconpartpin.
void lay_getplanchkparam(
& double; // Abstand Bahn zu Bahn (STD2)
& double; // Abstand Bahn zu Kupfer (STD2)
& double; // Abstand Kupfer zu Kupfer (STD2)
& double; // Standard-Leiterbahnbreite (STD2)
& string; // Blockname
int [-6,99]; // Signallagencode (LAY1)
// (Lage!=(-1) nur in BAE HighEnd zulässig)
int [0,0[; // DRC-Blocknummer
);
Die Funktion lay_getplanchkparam gibt in den Parametern die Abstandsparameter für den Design Rule Check (DRC) im Layouteditor zurück. In BAE Professional, BAE Economy und BAE Light können nur die globalen Parameter für den Lagencode -1 (Alle Lagen) und den DRC-Block 0 abgefragt werden. In BAE HighEnd können darüber hinaus auch Parameterblöcke ausgelesen werden, die lagenspezifischer Mindestabstände für beliebige Signallagen (Lagencodes 0 bis 99), die oberste Lage (Lagencode -5) sowie die Innenlagen (Lagencode -6) definieren. Der Parameterblock 0 ist immer vorhanden und enthält die global definierten DRC-Parameter. Ebenso ist auch immer für den Lagencode -1 (Alle Lagen) eine Vorgabe vorhanden.
Funktion lay_setplanchkparam.
int lay_getpowplanetree( // Netznummer oder (-1)
double; // X-Koordinate (STD2)
double; // Y-Koordinate (STD2)
int; // Versorgunglagennummer (LAY1)
double; // Bohrdurchmesser (STD2)
);
Der Rückgabewert der Funktion lay_getpowplanetree entspricht der Netznummer des über die angegebene Versorgungslagenkoordinate angeschlossenen Signalpegels (L_CNET.NUMBER). Die Auswertung erfolgt auf der angegebenen Versorgungslage unter berücksichtigung des spezifizierten Bohrdurchmessers. Diese Funktion wird zur Ermittlung von Netzanschlüssen bei der Verwendung geteilter Potentiallagen (Split Power Planes) benötigt. Der Funktionsrückgabewert ist (-1), wenn kein Signalanschluss gefunden wurde bzw. wenn eine ungültige Versorgungslagennummer spezifiziert wurde.
Die an lay_getpowplanetree übergebenen Koordinatenangaben werden als Absolutkoordinaten auf dem aktuell geladenen Element interpretiert. Beim indirekten Aufruf von lay_getpowplanetree über lay_scan*-Funktionen muss deshalb der spezifizierte Scan-Offset entsprechend berücksichtigt werden.
int lay_getpowpolystat( // Status
index L_FIGURE; // Figurenlistenelement - Versorgungslagenpolygon
& int; // Rückgabeflag:
// Polgyon schneidet Platinenumrandung
& int; // Rückgabeflag:
// Polygon schneidet andere Versorgungslagenpolygone
);
Mit der Funktion lay_getpowpolystat wird der Status des angegebenen Versorgungslagenpolygons (Split Power Plane) abgefragt. Die Rückgabeflags geben an, ob das Versorgungslagenpolygon die Platinenumrandung oder andere Versorgungslagenpolygone schneidet. Der Funktionsrückgabewert ist Null bei erfolgreicher Abfrage, (-1) bei ungültigen Parametern oder ungültiger Interpreterumgebung oder (-2) wenn das angegebene Figurenlistenelement kein Versorgungslagenpolygon ist.
int lay_getrulecnt( // Regelanzahl oder (-1) bei Fehler
int; // Object class code
int; // Object ident code (int oder Indextyp)
);
Mit der Funktion
lay_getrulecnt kann die Anzahl der an ein spezifisches Objekt zugewiesenen Regeln ermittelt werden. Die Abfrage kann für das aktuell geladene Element (Objektklasse 0 mit
int-Wert 0 für die Objektidentifikation), ein Element aus der Figurenliste des aktuell geladenen Elements (Objektklasse 1 mit gültigem Wert vom Typ index
L_FIGURE für die Objektidentifikation) oder ein Poolelement (Objektklasse 2 mit gültigem Wert vom Typ index
L_POOL für die Objektidentifikation) durchgeführt werden. Die von
lay_getrulecnt ermittelte (nicht-negative) objektspezifische Regelanzahl wird im Rückgabewert der Funktion übergeben und bestimmt den Wertebereich für den Regelnamenslistenindex in nachfolgenden Aufrufen der Funktion
lay_getrulename zur Ermittlung von Regelnamen für das entsprechende Objekt. Der Rückgabewert ergibt sich zu (-1), wenn ein Fehler aufgetreten ist. Im Fehlerfall kann die genaue Fehlerursache mit Hilfe der Funktion
lay_ruleerr ermittelt werden.
Funktionen lay_getrulename, lay_ruleerr, lay_rulefigatt, lay_rulefigdet, lay_rulelaysatt, lay_rulelaysdet, lay_ruleplanatt, lay_ruleplandet, lay_rulequery; Neuronales Regelsystem und Rule System Compiler.
int lay_getrulename( // Status
int; // Object class code
int; // Object ident code (int oder Indextyp)
int [0,[; // Regelnamenslistenindex
& string; // Regelname
);
Mit der Funktion
lay_getrulename können die Namen der an ein spezifisches Objekt zugewiesenen Regeln ermittelt werden. Die Abfrage kann für das aktuell geladene Element (Objektklasse 0 mit
int-Wert 0 für die Objektidentifikation), ein Element aus der Figurenliste des aktuell geladenen Elements (Objektklasse 1 mit gültigem Wert vom Typ index
L_FIGURE für die Objektidentifikation) oder ein Poolelement (Objektklasse 2 mit gültigem Wert vom Typ index
L_POOL für die Objektidentifikation) durchgeführt werden. Der Regelnamenslistenindex zur Auswahl der gewünschten Regel muss mindestens Null jedoch kleiner als die mit der Funktion
lay_getrulecnt abfragbare Anzahl objektspezifischer Regeln sein. Der ermittelte Regelname wird über den letzten Funktionsparameter an den Aufrufer zurückgegeben. Der Rückgabewert der Funktion
lay_getrulename ist Null, wenn die Funktion erfolgreich beendet wurde oder ungleich Null, wenn ein Fehler aufgetreten ist. Im Fehlerfall kann die genaue Fehlerursache mit Hilfe der Funktion
lay_ruleerr ermittelt werden.
Funktionen lay_getrulecnt, lay_ruleerr, lay_rulefigatt, lay_rulefigdet, lay_rulelaysatt, lay_rulelaysdet, lay_ruleplanatt, lay_ruleplandet, lay_rulequery; Neuronales Regelsystem und Rule System Compiler.
int lay_getscclass( // Rückgabe Layoutelementklasse:
// 0 = Layout
// 1 = Bauteil
// 2 = Padstack
// 3 = Pad
// (-1) sonst
);
Die Funktion lay_getscclass gibt die aktuell gescannte Layoutelementklasse zurück. Der Aufruf dieser Funktion ist nur innerhalb der Callbackfunktionen von lay_scanall, lay_scanfelem oder lay_scanpool sinnvoll. An anderer Stelle, oder wenn gerade kein Layoutelement gescannt wird, ergibt sich der Funktionsrückgabewert zu (-1).
Funktionen lay_scanall, lay_scanfelem, lay_scanpool.
index L_NREF lay_getscpartrpidx // Rückgabe Bauteilindex oder (-1)
);
Die Funktion lay_getscpartrpidx gibt das aktuell gescannte Layoutbauteil als benannte Referenz zurück, d.h. damit kann beim Scannen von Leiterbahnen, Polygonen, Texten, Pins, etc. die Bauteilzugehörigkeit des jeweils gescannten Objects ermittelt werden. Der Aufruf dieser Funktion ist nur innerhalb der Callbackfunktionen von lay_scanall, lay_scanfelem oder lay_scanpool sinnvoll. An anderer Stelle, oder wenn gerade kein Bauteil gescannt wird, ergibt sich der Funktionsrückgabewert zu (-1).
Funktionen lay_scanall, lay_scanfelem, lay_scanpool.
index L_POOL lay_getscrefpidx // Rückgabe Poolindex, oder (-1) wenn kein Makro
);
Die Funktion lay_getscrefpidx gibt den Poolindex des aktuell gescannten Bibliothekselements zuück, d.h. damit kann beim Scannen von Leiterbahnen, Polygonen, Texten, etc. die Zugehörigkeit des jeweils gescannten Objects zum entsprechenden Bibliothekselement (Bauteil, Padstack, Pad) ermittelt werden. Der Aufruf dieser Funktion ist nur innerhalb der Callbackfunktionen von lay_scanall, lay_scanfelem oder lay_scanpool sinnvoll. An anderer Stelle, oder wenn gerade kein Bibliothekselement gescannt wird, ergibt sich der Funktionsrückgabewert zu (-1).
Funktionen lay_scanall, lay_scanfelem, lay_scanpool.
int lay_getscstkcnt( // Scan-Stacktiefe
);
Die Funktion lay_getscstkcnt dient der Abfrage der aktuellen Stacktiefe der Layoutscanfunktionen. lay_getscstkcnt kann somit zur Abarbeitungskontrolle innerhalb der Callbackfunktionen von lay_scanall, lay_scanfelem oder lay_scanpool eingesetzt werden.
Funktionen lay_scanall, lay_scanfelem, lay_scanpool.
int lay_getsctextdest( // Status
& double; // Rückgabe Textlinienzielpunkt X-Koordinate (STD2)
& double; // Rückgabe Textlinienzielpunkt Y-Koordinate (STD2)
);
Mit der Funktion lay_getsctextdest kann der Ziel- bzw. Endpunkt der Textbasislinie des aktuell gescannten Textelements ermittelt werden. Der Aufruf dieser Funktion ist nur innerhalb der Callbackfunktionen von lay_scanall, lay_scanfelem oder lay_scanpool sinnvoll. Der Funktionsrückgabewert ist 1 bei erfolgreicher Abfrage oder Null bei fehlgschlagener Abfrage.
Funktionen lay_scanall, lay_scanfelem, lay_scanpool.
int lay_gettreeidx( // Status
int; // Netznummer
& index L_CNET; // Rückgabe Netzlisteneintrag
);
Die Funktion lay_gettreeidx sucht die angegebene Netznummer in der Netzliste und gibt den Netzlisteneintrag gegebenenfalls in dem Netzrückgabeparameter zurück. Der Rückgabewert ist ungleich Null, wenn die Netznummer nicht gefunden wurde.
int lay_grpdisplay( // Dokumentarlagennummer (LAY1)
);
Der Rückgabewert der Funktion lay_grpdisplay entspricht der in der Setupdatei eingestellten Dokumentarlage für die Gruppendarstellung.
int lay_lastfigelem( // Status
& index L_FIGURE; // Rückgabe Element
);
Die Funktion lay_lastfigelem ermittelt das zuletzt erzeugte bzw. modifizierte Layoutelement und übergibt den entsprechenden Index aus der Figurenliste im Rückgabeparameter. Der Rückgabewert der Funktion ist Null wenn ein derartiges Element existiert, oder ungleich Null andernfalls.
void lay_maccoords(
& double; // X-Position (STD2)
& double; // Y-Position (STD2)
& double; // Drehwinkel (STD3)
& int; // Spiegelungsmodus (STD14)
& int; // Lage (LAY1 für Pad auf Padstack)
);
Die Funktion lay_maccoords gibt in den Parametern die Platzierungsdaten für das aktuell bearbeitete Makro zurück. Der Aufruf dieser Funktion ist nur innerhalb der Makroscanfunktion von lay_scanall, lay_scanfelem oder lay_scanpool sinnvoll. An anderer Stelle werden Null-Defaultwerte zurückgegeben.
Funktionen lay_scanall, lay_scanfelem, lay_scanpool.
int lay_macload( // Status
& index L_POOL; // Makro Poolelementindex
string; // DDB-Dateiname
string; // Elementname
int [100,[; // Element DDB-/Datenbankklasse (STD1)
);
Die Funktion lay_macload lädt das angegebene Layoutsymbol in den Arbeitsspeicher und übergibt den zugehörigen Poolindex im entsprechenden Parameter. Der Funktionsrückgabewert ist Null, wenn das Symbol erfolgreich geladen wurde, (-1) bei Dateizugriffsfehlern, (-2) bei fehlenden oder ungültigen Parameterangaben oder 1 wenn referenzierte Bibliothekselemente nicht verfügbar sind. lay_macload ist für die Anwendung in Funktionen zur Auswertung von Bibliotheksdateien konzipiert. Mit der Funktion lay_macrelease können Layoutsymbole wieder aus dem Arbeitsspeicher entfernt werden.
Funktion lay_macrelease.
void lay_macrelease(
index L_POOL; // Makro Poolelementindex
);
Die Funktion lay_macrelease löscht das über den Poolelementindex spezifizierte Layoutsymbol aus dem Arbeitsspeicher. lay_macrelease ist als Pendant zur Funktion lay_macload konzipiert.
Funktion lay_macload.
int lay_menulaylinecnt( // Anzahl Einträge im Signallagenmenü
);
Der Rückgabewert der Funktion lay_menulaylinecnt entspricht der aktuell definierten Anzahl der Menüzeilen im Signallagenmenü des Layoutsystems. Das Signallagenmenü kann mit Hilfe des Utilityprogramms bsetup konfiguriert werden, wobei bis zu 12 Signallagen mit Lagennummer und Lagenname definiert werden können.
Funktionen lay_menulaylinelay, lay_menulaylinename.
int lay_menulaylinelay( // Menüzeile Lagennummer
int [0,11]; // Menüzeilennummer
);
Der Rückgabewert der Funktion lay_menulaylinelay entspricht der Lagennummer, die für die spezifizierte Menüzeile im Signallagenmenü des Layoutsystems aktuell definiert ist. Das Signallagenmenü kann mit Hilfe des Utilityprogramms bsetup konfiguriert werden, wobei bis zu 12 Signallagen mit Lagennummer und Lagenname definiert werden können.
Funktionen lay_menulaylinecnt, lay_menulaylinename.
string lay_menulaylinename( // Menüzeile Lagenbezeichnung
int [0,11]; // Menüzeilennummer
);
Der Rückgabewert der Funktion lay_menulaylinename entspricht dem Lagennamen, der für die spezifizierte Menüzeile im Signallagenmenü des Layoutsystems aktuell definiert ist. Das Signallagenmenü kann mit Hilfe des Utilityprogramms bsetup konfiguriert werden, wobei bis zu 12 Signallagen mit Lagennummer und Lagenname definiert werden können.
Funktionen lay_menulaylinecnt, lay_menulaylinelay.
int lay_nrefsearch( // Status
string; // Bauteilname
& index L_FIGURE; // Rückgabe Element
);
Die Funktion lay_nrefsearch prüft, ob das angegebene Bauteil platziert ist und gibt gegebenenfalls das zugehörige Element zurück. Der Rückgabewert ist ungleich Null, wenn das Bauteil nicht gefunden wurde.
int lay_planmidlaycnt( // Innenlagenanzahl
);
Die Funktion lay_planmidlaycnt ermittelt die Anzahl der Innenlagen für des aktuell geladenen Layouts.
Funktion lay_plantoplay.
int lay_plantoplay( // Oberste Lage (LAY1)
);
Der Rückgabewert der Funktion lay_plantoplay entspricht der im aktuell geladenen Element gültigen Einstellung der obersten Lage (LAY1), bzw. Signallage 2, wenn kein Layoutplan geladen ist.
Funktion lay_planmidlaycnt.
int lay_pltmarklay( // Dokumentarlagennummer
);
Der Rückgabewert der Funktion lay_pltmarklay entspricht der in der Setupdatei eingestellten Passermarkenlage.
void lay_ruleerr(
& int; // Fehlercode
& string; // Fehlerstring
);
Die Funktion lay_ruleerr dient der Ermittlung des Regelsystemstatus, d.h. die Funktion lay_ruleerr kann zur genauen Bestimmung der Fehlerursache im Falle eines fehlerhaften Aufrufs einer Regelsystemfunktion verwendet werden.
Zur Bestimmung der Fehlerursache sind die durch lay_ruleerr zurückgegebenen Parameterwerte heranzuziehen. Der zurückgegebene Fehlerstring dient ggf. der Identifizierung des fehlerverursachenden Elements. Die möglichen Werte, die der Fehlercode durch die Ausführung eines Regelsystemfunktion annehmen kann, haben folgende Bedeutung:
Fehlercode Bedeutung 0 Regelsystem Operation/Funktion erfolgreich beendet 1 Regelsystem Hauptspeicher nicht ausreichend 2 Regelsystem Interner Fehler <e>3 Regelsystem Funktionsparameter ungültig 128 Regelsystem Datenbankdatei kann nicht angelegt werden 129 Regelsystem Datenbankdatei Lese-/Schreibfehler 130 Regelsystem Datenbankdatei von falschem Typ 131 Regelsystem Datenbankdateistruktur beschädigt 132 Regelsystem Datenbankdatei nicht gefunden 133 Regelsystem Datenbankfehler allgemein (Interner Fehler) 134 Regelsystem Regel <r>nicht Regeldatenbank gefunden135 Regelsystem Regel in falschem Format in Datenbank (Interner Fehler <e>)136 Regelsystem Objekt nicht gefunden 137 Regelsystem Objekt mehrfach definiert (Interner Fehler) 138 Regelsystem Inkompatible Definition der Variable <v>139 Regelsystem Regel <r>mit inkompatibler Compiler-Version übersetztDer Fehlerstring kann je nach Fehlerfall eine Regel
<r>, eine Variable<v>oder einen (internen) Fehlerstatus<e>bezeichnen. Datenbankdateifehler beziehen sich auf Probleme beim Zugriff auf die Regeldatenbankdateibrules.vdbim BAE-Programmverzeichnis. Interne Fehler weisen üblicherweise auf Implementierungslücken im Regelsystem hin und sollten in jedem Fall an Bartels gemeldet werden.
Funktionen lay_getrulecnt, lay_getrulename, lay_rulefigatt, lay_rulefigdet, lay_rulelaysatt, lay_rulelaysdet, lay_ruleplanatt, lay_ruleplandet, lay_rulequery; Neuronales Regelsystem und Rule System Compiler.
int lay_rulefigatt( // Status
index L_FIGURE; // Figurenlistenelement
void; // Regelname oder Regelnamensliste
);
Die Funktion lay_rulefigatt erlaubt die Zuweisung von Regeln an das mit dem ersten Funktionsparameter spezifizierte Figurenlistenelement des aktuell geladenes Elements. Der zweite Funktionsparameter erlaubt dabei sowohl die Spezifikation eines einzelnen Regelnamens (d.h. eines Wertes vom Typstring) als auch die Angabe einer ganzen Liste von Regelnamen (d.h. eines Arrays vom Typstring). Beachten Sie, dass vor der Zuweisung des angegebenen Regelsatzes zunächst alle bestehenden Regelzuweisungen an das spezifizierte Figurenlistenelement gelöscht werden. Der Rückgabewert der Funktion lay_rulefigatt ist Null, wenn die Funktion erfolgreich beendet wurde oder ungleich Null, wenn ein Fehler aufgetreten ist. Im Fehlerfall kann die genaue Fehlerursache mit Hilfe der Funktion lay_ruleerr ermittelt werden.
Funktionen lay_getrulecnt, lay_getrulename, lay_ruleerr, lay_rulefigdet, lay_rulelaysatt, lay_rulelaysdet, lay_ruleplanatt, lay_ruleplandet, lay_rulequery; Neuronales Regelsystem und Rule System Compiler.
int lay_rulefigdet( // Status
index L_FIGURE; // Figurenlistenelement
);
Die Funktion lay_rulefigdet löscht alle aktuell bestehenden Regelzuweisungen an das über den Funktionsparameter spezifizierte Figurenlistenelement des aktuell geladenen Elements. Der Rückgabewert der Funktion lay_rulefigdet ist Null, wenn die Funktion erfolgreich beendet wurde oder ungleich Null, wenn ein Fehler aufgetreten ist. Im Fehlerfall kann die genaue Fehlerursache mit Hilfe der Funktion lay_ruleerr ermittelt werden.
Funktionen lay_getrulecnt, lay_getrulename, lay_ruleerr, lay_rulefigatt, lay_rulelaysatt, lay_rulelaysdet, lay_ruleplanatt. lay_ruleplandet, lay_rulequery; Neuronales Regelsystem und Rule System Compiler.
int lay_rulelaysatt( // Status
int [0,111]; // Lagenaufbauindex
void; // Regelname oder Regelnamensliste
);
Die Funktion lay_rulelaysatt erlaubt die Zuweisung von Regeln an den durch den angegebenen Lagenaufbauindex spezifizierten Lagenaufbau. Der Funktionsparameter zur Regelangabe erlaubt dabei sowohl die Spezifikation eines einzelnen Regelnamens (d.h. eines Wertes vom Typstring) als auch die Angabe einer ganzen Liste von Regelnamen (d.h. eines Arrays vom Typstring). Beachten Sie, dass vor der Zuweisung des angegebenen Regelsatzes zunächst alle bestehenden Regelzuweisungen des bearbeiteten Lagenaufbaus gelöscht werden. Der Rückgabewert der Funktion lay_rulelaysatt ist Null, wenn die Funktion erfolgreich beendet wurde oder ungleich Null, wenn ein Fehler aufgetreten ist. Im Fehlerfall kann die genaue Fehlerursache mit Hilfe der Funktion lay_ruleerr ermittelt werden.
Funktionen lay_getrulecnt, lay_getrulename, lay_ruleerr, lay_rulefigatt, lay_rulefigdet, lay_rulelaysdet, lay_ruleplanatt, lay_ruleplandet, lay_rulequery; Neuronales Regelsystem und Rule System Compiler.
int lay_rulelaysdet( // Status
int [0,111]; // Lagenaufbauindex
);
Die Funktion lay_rulelaysdet löscht alle aktuell bestehenden Regelzuweisungen an den durch den Lagenaufbauindex angegebenen Lagenaufbau. Der Rückgabewert der Funktion lay_rulelaysdet ist Null, wenn die Funktion erfolgreich beendet wurde oder ungleich Null, wenn ein Fehler aufgetreten ist. Im Fehlerfall kann die genaue Fehlerursache mit Hilfe der Funktion lay_ruleerr ermittelt werden.
Funktionen lay_getrulecnt, lay_getrulename, lay_ruleerr, lay_rulefigatt, lay_rulefigdet, lay_rulelaysatt, lay_ruleplanatt, lay_ruleplandet, lay_rulequery; Neuronales Regelsystem und Rule System Compiler.
int lay_ruleplanatt( // Status
void; // Regelname oder Regelnamensliste
);
Die Funktion lay_ruleplanatt erlaubt die Zuweisung von Regeln an das aktuell geladenes Elements. Der Funktionsparameter erlaubt dabei sowohl die Spezifikation eines einzelnen Regelnamens (d.h. eines Wertes vom Typstring) als auch die Angabe einer ganzen Liste von Regelnamen (d.h. eines Arrays vom Typstring). Beachten Sie, dass vor der Zuweisung des angegebenen Regelsatzes zunächst alle bestehenden Regelzuweisungen an das aktuelle Element gelöscht werden. Der Rückgabewert der Funktion lay_ruleplanatt ist Null, wenn die Funktion erfolgreich beendet wurde oder ungleich Null, wenn ein Fehler aufgetreten ist. Im Fehlerfall kann die genaue Fehlerursache mit Hilfe der Funktion lay_ruleerr ermittelt werden.
Funktionen lay_getrulecnt, lay_getrulename, lay_ruleerr, lay_rulefigatt, lay_rulefigdet, lay_rulelaysatt, lay_rulelaysdet, lay_ruleplandet, lay_rulequery; Neuronales Regelsystem und Rule System Compiler.
int lay_ruleplandet( // Status
);
Die Funktion lay_ruleplandet löscht alle aktuell bestehenden Regelzuweisungen an das aktuell geladene Element. Der Rückgabewert der Funktion lay_ruleplandet ist Null, wenn die Funktion erfolgreich beendet wurde oder ungleich Null, wenn ein Fehler aufgetreten ist. Im Fehlerfall kann die genaue Fehlerursache mit Hilfe der Funktion lay_ruleerr ermittelt werden.
Funktionen lay_getrulecnt, lay_getrulename, lay_ruleerr, lay_rulefigatt, lay_rulefigdet, lay_rulelaysatt, lay_rulelaysdet, lay_ruleplanatt, lay_rulequery; Neuronales Regelsystem und Rule System Compiler.
int lay_rulequery( // Trefferanzahl oder (-1) bei Fehler
int; // Object class code
int; // Object ident code (int oder Indextyp)
string; // Subjektname
string; // Prädikatname
string; // Abfragekommando
& void; // Abfrageergebnis
[] // Optionale Abfrageparameter
);
Die Funktion lay_rulequery führt eine Regelabfrage für ein spezifisches Objekt durch. Die Abfrage kann für das aktuell geladene Element (Objektklasse 0 mitint-Wert 0 für die Objektidentifikation), ein Element aus der Figurenliste des aktuell geladenen Elements (Objektklasse 1 mit gültigem Wert vom Typ index L_FIGURE für die Objektidentifikation) oder ein Poolelement (Objektklasse 2 mit gültigem Wert vom Typ index L_POOL für die Objektidentifikation) durchgeführt werden. Zur Durchführung der Abfrage müssen sowohl ein Regelsubjekt als auch ein Regelprädikat namentlich angegeben werden. Zusätzlich ist ein Abfragekommando zu spezifizieren. Das Abfragekommando kann Platzhalter für Wertvorgaben und einen Abfrageoperator enthalten. Folgende Abfrageoperatoren stehen zur Verfügung:
?dzur Abfrage von int-Werten?fzur Abfrage von double-Werten?szur Abfrage von string-WertenDem Abfrageoperator kann wahlweise einer der folgenden Selektionsoperatoren vorangestellt werden:
+zur Abfrage des Maximums aller gefundenen Werte -zur Abfrage des Minimums aller gefundenen Werte Standardmäßig, d.h. bei Auslassung des Selektionsoperators wird der
+-Operator verwendet. Der über die Abfrage gefundene Werteintrag wird im Funktionsparameter für das Abfrageergebnis zurückgegeben. Hierbei ist sicherzustellen, dass der Datentyp des Parameters für das Abfrageergebnis mit dem Abfragedatentyp übereinstimmt (intfür?d,doublefür?f,stringfür?s). Neben dem Abfrageoperator können folgende Platzhalter für Wertvorgaben im Abfragekommando spezifiziert werden:
%dzur Angabe von int-Werten%fzur Angabe von double-Werten%szur Angabe von string-WertenFür jeden im Abfragekommando spezifizierten Platzhalter für Wertvorgaben ist ein optionaler Abfrageparameter an die Funktion lay_rulequery zu übergeben. Die Reihenfolge dieser optionalen Parameter sowie deren Datentypen müssen mit den Spezifikationen im Abfragekommando übereinstimmen. Nach erfolgreicher Abarbeitung der Regelabfrage wird im Rückgabewert die (nicht-negative) Anzahl der gefundenen Einträge an den Aufrufer zurückgegeben. Der Rückgabewert ergibt sich zu (-1), wenn ein Fehler aufgetreten ist. Im Fehlerfall kann die genaue Fehlerursache mit Hilfe der Funktion lay_ruleerr ermittelt werden.
Sofern die Regelrule somerule { subject subj { pred := ("A", 2); pred := ("A", 4); pred := ("B", 1); pred := ("C", 3); pred := ("B", 6); pred := ("D", 5); pred := ("D", 6); pred := ("A", 3); } }definiert und dem aktuell geladenen Element zugewiesen ist, würde der lay_rulequery-Aufruf
hitcount = lay_rulequery(0,0,"subj","pred","%s ?d",intresult,"A") ;die
int-Variablehitcountauf 3 und dieint-Variableintresultauf 4 setzen, während der Aufrufhitcount = lay_rulequery(0,0,"subj","pred","-?s %d",strresult,6) ;die Variable
hitcountauf 2 und diestring-VariablestrresultaufBsetzt.
Funktionen lay_getrulecnt, lay_getrulename, lay_ruleerr, lay_rulefigatt, lay_rulefigdet, lay_rulelaysatt, lay_rulelaysdet, lay_ruleplanatt, lay_ruleplandet; Neuronales Regelsystem und Rule System Compiler.
int lay_scanall( // Scan Status
double; // X-Offset (STD2)
double; // Y-Offset (STD2)
double; // Drehwinkel (STD3)
int [0,1]; // Element in Arbeitsbereich Flag (STD10)
int [0,1]; // Connectivity Scan Flag:
// 0 = kein Scan
// 1 = Scan erlaubt
* int; // Makrofunktion
* int; // Polygonfunktion
* int; // Leiterbahnfunktion
* int; // Textfunktion
* int; // Bohrungsfunktion
* int; // Lagencheckfunktion
* int; // Levelcheckfunktion
);
Die Funktion lay_scanall scannt alle auf dem aktuell geladenen Element platzierten Elemente über alle Hierarchiestufen. Dabei werden für alle gefundenen Elemente die referenzierten Anwenderfunktionen aufgerufen. Soll ein Funktionstyp nicht aufgerufen werden, so ist für den entsprechenden Parameter
NULLanzugeben. Der Rückgabewert der Funktion lay_scanall ist ungleich Null, wenn ungültige Parameter angegeben wurden, oder wenn eine der referenzierten Anwenderfunktionen einen Fehler an die Funktion lay_scanall zurückgemeldet hat.Makrofunktion
int macrofuncname( index L_MACRO macro, // Makro Index index L_POOL pool, // Pool Element Index int macinws, // Makro in Arbeitsbereich Flag (STD10) string refname, // Makro Referenzname index L_LEVEL level // Makro Level ) { // Verarbeitungsprogramm : return(contscan); }Die Makroplatzierungsdaten können mit der Funktion lay_maccoords abgefragt werden. Der Rückgabewert dieser Funktion sollte gleich Null sein, wenn der Scan für dieses Makro nicht weitergeführt werden soll, (-1) wenn ein Fehler aufgetreten ist und 1 wenn weitergescannt werden soll.
Polygonfunktion
int polyfuncname( index L_POLY poly, // Polygondaten int layer, // Lage (LAY1) int polyinws, // Polygon in Arbeitsbereich Flag (STD10) int tree, // Netznummer oder (-1) index L_LEVEL level // Polygon Level ) { // Verarbeitungsprogramm : return(errstat); }Der Rückgabewert dieser Funktion sollte ungleich Null sein, wenn ein Fehler aufgetreten ist.
Leiterbahnfunktion
int pathfuncname( index L_LINE path, // Leiterbahndaten int layer, // Lage (LAY1) int pathinws, // Bahn in Arbeitsbereich Flag (STD10) index L_LEVEL level // Bahn Level ) { // Verarbeitungsprogramm : return(errstat); }Der Rückgabewert dieser Funktion sollte ungleich Null sein, wenn ein Fehler aufgetreten ist.
Textfunktion
int textfuncname( index L_TEXT text, // Textdaten double x, // X-Koordinate (STD2) double y, // Y-Koordinate (STD2) double angle, // Drehwinkel (STD3) int mirr, // Spiegelung (STD14) int layer, // Lage (LAY1) double size, // Text Größe (STD2) string textst, // Textzeichenkette int textinws // Text in Arbeitsbereich Flag (STD10) ) { // Verarbeitungsprogramm : return(errstat); }Der Rückgabewert dieser Funktion sollte ungleich Null sein, wenn ein Fehler aufgetreten ist.
Bohrungsfunktion
int drillfuncname( index L_DRILL drill, // Bohrungsdaten double x, // Transformierte X-Koordinate (STD2) double y, // Transformierte Y-Koordinate (STD2) int drillinws, // Bohrung in Arbeitsbereich Flag (STD10) int tree, // Netznummer oder (-1) index L_LEVEL level // Bohrung Level ) { // Verarbeitungsprogramm : return(errstat); }Der Rückgabewert dieser Funktion sollte ungleich Null sein, wenn ein Fehler aufgetreten ist.
Lagencheckfunktion
int laycheckfuncname( int layer // Lage (LAY1) ) { // Verarbeitungsprogramm : return(contscan); }Der Rückgabewert dieser Funktion sollte gleich Null sein, wenn der Scan bei der übergebenen Lage nicht weitergeführt werden soll, (-1) wenn ein Fehler aufgetreten ist und 1 wenn weitergescannt werden soll. Bei Beschränkung auf die interessierenden Lagen durch diese Funktion wird der Scanvorgang erheblich beschleunigt.
Levelcheckfunktion
int levcheckfuncname( index L_LEVEL level // Level ) { // Verarbeitungsprogramm : return(contscan); }Der Rückgabewert dieser Funktion sollte gleich Null sein, wenn der Scan bei dem übergebenen Level nicht weitergeführt werden soll, (-1) wenn ein Fehler aufgetreten ist und 1 wenn weitergescannt werden soll. Bei Beschränkung auf die interessierenden Levels durch diese Funktion wird der Scanvorgang erheblich beschleunigt.
Funktionen lay_maccoords, lay_scanfelem, lay_scanpool.
int lay_scanfelem( // Scan Status
index L_FIGURE; // Figurenelement
double; // X-Offset (STD2)
double; // Y-Offset (STD2)
double; // Drehwinkel (STD3)
int [0,1]; // Element in Arbeitsbereich Flag (STD10)
int [0,1]; // Connectivity Scan Flag:
// 0 = kein Scan
// 1 = Scan erlaubt
* int; // Makrofunktion
* int; // Polygonfunktion
* int; // Leiterbahnfunktion
* int; // Textfunktion
* int; // Bohrungsfunktion
* int; // Lagencheckfunktion
* int; // Levelcheckfunktion
);
Die Funktion
lay_scanfelem scannt das angegebene Figurenelement über alle Hierarchiestufen. Dabei werden für alle gefundenen Elemente die referenzierten Anwenderfunktionen aufgerufen. Soll ein Funktionstyp nicht aufgerufen werden, so ist für den entsprechenden Parameter
NULL anzugeben (Definition der referenzierten Anwenderfunktionen siehe
lay_scanall). Der Rückgabewert der Funktion
lay_scanfelem ist ungleich Null, wenn ungültige Parameter angegeben wurden, oder wenn eine der referenzierten Anwenderfunktionen einen Fehler an die Funktion
lay_scanfelem zurückgemeldet hat.
Funktionen lay_maccoords, lay_scanall, lay_scanpool.
int lay_scanpool( // Scan Status
void; // Poolelement
double; // X-Offset (STD2)
double; // Y-Offset (STD2)
double; // Drehwinkel (STD3)
int [0,1]; // Element in Arbeitsbereich Flag (STD10)
int [0,1]; // Connectivity Scan Flag:
// 0 = kein Scan
// 1 = Scan erlaubt
* int; // Makrofunktion
* int; // Polygonfunktion
* int; // Leiterbahnfunktion
* int; // Textfunktion
* int; // Bohrungsfunktion
* int; // Lagencheckfunktion
* int; // Levelcheckfunktion
);
Die Funktion
lay_scanpool scannt das angegebene Poolelement über alle Hierarchiestufen. Dabei werden für alle gefundenen Elemente die referenzierten Anwenderfunktionen aufgerufen. Soll ein Funktionstyp nicht aufgerufen werden, so ist für den entsprechenden Parameter
NULL anzugeben (Definition der referenzierten Anwenderfunktionen siehe
lay_scanall). Der Rückgabewert der Funktion
lay_scanpool ist ungleich Null, wenn ungültige Parameter angegeben wurden, oder wenn eine der referenzierten Anwenderfunktionen einen Fehler an die Funktion
lay_scanpool zurückgemeldet hat.
Funktionen lay_maccoords, lay_scanall, lay_scanfelem.
void lay_setfigcache(
);
Die Funktion lay_setfigcache baut den Layout-Cache für schnelle Figurenlistenelementzugriffe auf.
int lay_setplanchkparam( // Status
double ]0.0,[; // Abstand Bahn zu Bahn (STD2)
double ]0.0,[; // Abstand Bahn zu Kupfer (STD2)
double ]0.0,[; // Abstand Kupfer zu Kupfer (STD2)
double; // Standard-Leiterbahnbreite (STD2)
string; // Blockname
int [-6,99]; // Signallagencode (LAY1)
// (Lage!=(-1) nur in BAE HighEnd zulässig)
int [0,0[; // DRC-Blocknummer
);
Die Funktion lay_setplanchkparam setzt Abstandsparameter für den Design Rule Check (DRC) im Layouteditor. Der Rückgabewert ist ungleich Null, wenn ungültige Abstände spezifiziert wurden. In BAE Professional, BAE Economy und BAE Light können nur die globalen Parameter für den Lagencode -1 (Alle Lagen) und den DRC-Block 0 gesetzt werden. In BAE HighEnd können darüber hinaus auch Parameterblöcke zur Zuweisung lagenspezifischer Mindestabstände für beliebige Signallagen (Lagencodes 0 bis 99), die oberste Lage (Lagencode -5) sowie die Innenlagen (Lagencode -6) spezifiziert werden. Der Parameterblock 0 ist immer vorhanden und enthält die global definierten DRC-Parameter. Ebenso ist auch immer für den Lagencode -1 (Alle Lagen) eine Vorgabe vorhanden.
Funktion lay_getplanchkparam.
string lay_toplayname( // Lagenname
);
Der Rückgabewert der Funktion lay_toplayname entspricht dem in der Setupdatei eingestellten Namen für die oberste Lage.
int lay_vecttext( // Status
double; // X-Koordinate (STD2)
double; // Y-Koordinate (STD2)
double; // Drehwinkel (STD3)
int [0,1]; // Spiegelung (STD14)
double ]0.0,[; // Text Größe (STD2)
int [0,1]; // Physical Flag:
// 0 = Logical
// 1 = Physical
int [0,2]; // Lagenspiegelung:
// 0 = Spiegelung aus
// 1 = X-Spiegelung
// 2 = Y-Spiegelung
int [0,[; // Text Stil (LAY14)
string; // Text Zeichenkette
* int; // Vektorisierungsfunktion
);
Die Funktion lay_vecttext vektorisiert den übergebenen Text unter Verwendung des aktuell geladenen Zeichensatzes. Dazu wird für jedes Textsegment die übergebene Vektorisierungsfunktion aufgerufen. Der Rückgabewert dieser Funktion ist ungleich Null, wenn ungültige Parameter angegeben wurden oder die vom Benutzer definierte Vektorisierungsfunktion einen Wert ungleich Null zurückgegeben hat.Vektorisierungsfunktion
int vecfuncname( double x1, // X-Koordinate erster Punkt (STD2) double y1, // Y-Koordinate erster Punkt (STD2) double x2, // X-Koordinate zweiter Punkt (STD2) double y2 // Y-Koordinate zweiter Punkt (STD2) ) { // Verarbeitungsprogramm : return(errstat); }Der Rückgabewert dieser Funktion sollte ungleich Null sein, wenn ein Fehler aufgetreten ist.
Die nachfolgend aufgelisteten Systemfunktionen sind dem Aufruftyp GED zugeordnet, d.h. diese Funktionen können im Layouteditor aufgerufen werden:
int ged_asklayer( // Status
& int; // Lagenrückgabe (LAY1|LAY9)
int [0,7]; // Lagenabfragetyp:
// 0 = Dokumentarlagen und Signallagen
// 1 = Signallagen
// 2 = Signallagen
// (inklusive und )
// 3 = Dokumentarlagen
// 4 = Signallagen und Versorgungslagen
// 5 = beliebige Anzeigeelementtypen
// 6 = Versorgungslagen
// 7 = Dokumentar-, Signal- und Versorgungslagen
);
Die Funktion ged_asklayer aktiviert im Layouteditor ein Lagenauswahlmenü. Der Lagenabfragetyp gibt an, welche Lagen bzw. Anzeigelementtypen zur Auswahl angeboten werden. Der Rückgabewert ist Null bei erfolgter Lagenwahl oder (-1) bei Wahl des Menüpunktes Abbruch.
int ged_askrefname( // Status
& string; // Rückgabe Referenzname
& index L_CPART; // Rückgabe Netzlisten-Bauteilindex (nur auf Layoutebene)
int [0,2]; // Bauteilauswahlmodus:
// 0 = Alle Bauteile
// 1 = in aktueller Gruppe enthaltene Bauteile
// 2 = nicht in aktueller Gruppe enthaltene Bauteile
int [0,1]; // Flag - Auswahl nicht platzierter Bauteile
);
Die Funktion ged_askrefname aktiviert einen Dialog zur Referenzauswahl, d.h. zur Auswahl von Bauteilen auf Layoutebene bzw. zur Auswahl von Pins auf Bauteilebene. Über den Bauteilauswahlmodus und das Flag zur Selektion nicht platzierter Bauteile kann die zur Auswahl angebotene Bauteil- bzw. Pinliste eingeschränkt werden. Der Funktionsrückgabewert ist Null bei erfolgreicher Referenzauswahl oder ungleich Null wenn keine Referenzauswahl durchgeführt wurde.
int ged_asktreeidx( // Status & string; // Rückgabe Netzname (nur auf Layoutebene) & index L_CNET; // Rückgabe Netzindex (nur auf Layoutebene) int [0,5]; // Netzauswahlmodus: // 0 = Alle Netze, inklusive Schaltfläche // 1 = Sichtbare Netze // 2 = Unsichtbare Netze // 3 = Alle Netze // 4 = Direktsprung zu Netzpick // 5 = Alle Bäume, Namensmustereingabe zulässig );
Die Funktion ged_asktreeidx aktiviert einen Dialog zur Netzauswahl. Über den Netzauswahlmodus kann die zur Auswahl angebotene Liste der Netze eingeschränkt werden. Der Funktionsrückgabewert ist Null bei erfolgreicher Netzauswahl, 1 wenn die Löschung eines Netzes (und damit keine Netzzuweisung) vorgenommen wurde, 2 wenn ein Netznamensmuster spezifiziert wurde, 3 bei Netznamensselektion per Netzklick oder ungleich Null bei ungültigen Parametern bzw. Abbruch des Auswahldialogs.
int ged_attachtextpos( // Status
index L_FIGURE; // Layoutelement
string; // Text
int; // Textlage (LAY1|LAY9)
double; // Text-X-Koordinate (STD2)
double; // Text-Y-Koordinate (STD2)
double; // Textdrehwinkel (STD3)
double; // Textgröße (STD2; negativ für Textbasislinie)
int [0,1]; // Textspiegelungsmodus (STD14)
);
Die Funktion ged_attachtextpos weist die Parameter für Lage, Position, Drehwinkel, Größe und Spiegelung an den angegebenen Text des spezifierten Layoutelements zu. Der Funktionsrückgabewert ist Null bei erfolgreicher Zuweisung, (-1) bei ungültigen Parametern oder (-2) wenn das Layoutelement keine Definition für den angegebenen Text enthält.
Funktion ged_storetext.
int ged_delelem( // Status
& index L_FIGURE; // Element
);
Die Funktion ged_delelem löscht das übergebene Element aus der Elementliste. Der Rückgabewert ist Null bei erfolgter Löschung und (-1), wenn das übergebene Element ungültig ist. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
L_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
Funktion ged_drawelem.
void ged_drawelem(
index L_FIGURE; // Element
int [0, 4]; // Zeichenmodus (STD19)
);
Die Funktion ged_drawelem aktualisiert die Anzeige des angegebenen Elements unter Verwendung des spezifizierten Zeichenmodus.
Funktion ged_delelem.
int ged_drcerrorhide( // Status
string; // Fehler-Id-String
int; // Flag - Fehler ausblenden
);
Die Funktion ged_drcerrorhide setzt den Anzeigemodus für den über die Fehler-Id spezifizierten DRC-Fehler. Der Funktionsrückgabewert ist Null, wenn der Anzeigemodus erfolgreich gesetzt wurde, oder ungleich Null im Fehlerfall.
int ged_drcpath( // Status
int [0,99]; // Leiterbahnlage (LAY1)
double ]0.0,[; // Leiterbahnbreite (STD2)
index L_LEVEL; // Leiterbahn-Signalnetznummer/-Level
int [0,3]; // Leiterbahn-Connectivity-Prüfmodus:
// 0 = Uneingeschränkte Connectivity-Prüfung
// 1 = Abstandsprüfung gegen
// Leiterbahnsignalnetzbaum unterdrücken
// 2 = Abstandsverletzungen zu allen
// Verbindungsbäumen anzeigen
// 3 = Abstandsverletzungen zu allen
// Verbindungsbäumen neben Pickelement anzeigen
);
Die Funktion ged_drcpath führt eine Designregelprüfung für eine Leiterbahngenerierung mit den angegebenen Parametern durch, ohne die Leiterbahn tatsächlich zu erzeugen. Die Koordinaten für die Leiterbahngenerierung werden aus der mit bae_storepoint aktuell erzeugten internen Polygonpunktliste entnommen. Der Funktionsrückgabewert ist Null, wenn die Leiterbahn ohne Designregelverletzung platziert werden kann, einen Wert grössr gleich (1) wenn die Leiterbahnplatzierung eine Designregelverletzung verursachen würde, oder (-1) bei fehlenden oder falschen Parametern bzw. bei unültiger Interpreterumgebung.
Funktionen bae_storepoint, ged_storepoint.
int ged_drcpoly( // Status
int; // Polygonlage (LAY1)
int [1,9]; // Polygontyp (LAY4)
string; // Polygonnetzname (für LAY4 types 4, 6 and 9)
index L_LEVEL; // Polygon-Signalnetznummer/-Level
int [0,3]; // Polygon-Connectivity-Prüfmodus:
// 0 = Uneingeschränkte Connectivity-Prüfung
// 1 = Abstandsprüfung gegen
// Polygonsignalnetzbaum unterdrücken
// 2 = Abstandsverletzungen zu allen
// Verbindungsbäumen anzeigen
// 3 = Abstandsverletzungen zu allen
// Verbindungsbäumen neben Pickelement anzeigen
);
Die Funktion ged_drcpoly führt eine Designregelprüfung für eine Flächengenerierung mit den angegebenen Parametern durch, ohne die Fläche tatsächlich zu erzeugen. Die Koordinaten für die Polygongenerierung werden aus der mit bae_storepoint aktuell erzeugten internen Polygonpunktliste entnommen. Der Funktionsrückgabewert ist Null, wenn das Polygon ohne Designregelverletzung platziert werden kann, einen Wert grösser gleich (1) wenn die Polygonplatzierung eine Designregelverletzung verursachen würde, oder (-1) bei fehlenden oder falschen Parametern bzw. bei unültiger Interpreterumgebung.
Funktionen bae_storepoint, ged_storepoly.
int ged_drcvia( // Status
string; // Via Padstack-Bibliothekselementname
double; // Via-X-Koordinate (STD2)
double; // Via-Y-Koordinate (STD2)
index L_LEVEL; // Via-Signalnetznummer/-Level
int [0,3]; // Via-Connectivity-Prüfmodus:
// 0 = Uneingeschränkte Connectivity-Prüfung
// 1 = Abstandsprüfung gegen
// Viasignalnetzbaum unterdrücken
// 2 = Abstandsverletzungen zu allen
// Verbindungsbäumen anzeigen
// 3 = Abstandsverletzungen zu allen
// Verbindungsbäumen neben Pickelement anzeigen
);
Die Funktion ged_drcvia führt eine Designregelprüfung für die Viaplatzierung mit den angegebenen Parametern durch, ohne das Via tatsächlich zu platzieren. Der Rückgabewert ist Null, wenn das Via ohne Designregelverletzung platziert werden kann, einen Wert grösser gleich (1) wenn die Viaplatzierung eine Designregelverletzung verursachen würde, (-1) bei fehlenden oder falschen Parametern bzw. bei unültiger Interpreterumgebung, oder (-2) wenn das angeforderte Padstacksymbol nicht verfügbar ist.
Funktion ged_storeuref.
int ged_elemangchg( // Status
& index L_FIGURE; // Element
double; // Neuer Winkel (STD3)
);
Die Funktion ged_elemangchg ändert den Drehwinkel des übergebenen Elements. Der Drehwinkel wird ausgehend vom Nullwinkel eingestellt, d.h. der vorhergehende Drehwinkel des Elements hat keinen Einfluss auf das Ergebnis. Die Winkelangabe wird als Bogenmaßwert interpretiert. Der Rückgabewert ist Null bei erfolgter Änderung, (-1) wenn das übergebene Element ungültig oder (-2) wenn es nicht drehbar ist. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
L_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int ged_elemfixchg( // Status
& index L_FIGURE; // Element
int [0,1]; // Neues fixiert Flag (STD11)
);
Die Funktion ged_elemfixchg ändert den Fixiert-Modus des übergebenen Elements. Der Rückgabewert ist Null bei erfolgter Änderung, (-1) wenn das übergebene Element ungültig oder (-2) wenn es nicht fixierbar ist. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
L_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int ged_elemgrpchg( // Status
index L_FIGURE; // Element
int [0,6]; // Neue Gruppenzugehörigkeit (STD13|0x4)
);
Die Funktion ged_elemgrpchg ändert die Gruppenzugehörigkeit des übergebenen Elements. Durch Setzen des Bits mit der Wertigkeit 3 (0x4) im Gruppenstatusparameter kann ein Meldungszeilenreport über das selektierte/deselektierte Element und die Gesamtzahl der in der Gruppe befindlichen Elemente aktiviert werden. Der Rückgabewert ist Null bei erfolgter Änderung, (-1) wenn das übergebene Element ungültig ist oder (-2) wenn es sich nicht um ein gruppenselektierbares Element handelt. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
int ged_elemlaychg( // Status
& index L_FIGURE; // Element
int; // Neue Lage (LAY1)
);
Die Funktion ged_elemlaychg ändert die Lagenzugehörigkeit des übergebenen Elements. Bei Bohrungen gibt die Lage die Bohrungsklasse an. Die Lage kann für Flächen, Leiterbahnen, Bohrungen, Texte und Pads auf Padstackebene geändert werden. Der Rückgabewert ist Null bei erfolgter Änderung, (-1) wenn das übergebene Element ungültig oder (-2) wenn die Lage nicht änderbar ist. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
L_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int ged_elemmirrchg( // Status
& index L_FIGURE; // Element
int [0,18]; // Neuer Spiegelungsmodus (STD14|LAY3)
);
Die Funktion ged_elemmirrchg ändert den Spiegelungsmodus des übergebenen Elements. Der Spiegelungsmodus kann bei Flächen, Texten und Referenzen geändert werden. Der Rückgabewert ist Null bei erfolgter Änderung, (-1) wenn das übergebene Element ungültig ist oder (-2) wenn es keinen Spiegelungsmodus besitzt. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
L_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int ged_elemposchg( // Status
& index L_FIGURE; // Element
double; // X-Position (STD2)
double; // Y-Position (STD2)
);
Die Funktion ged_elemposchg ändert die Position des übergebenen Elements. Bei Flächen/Leiterbahnen wird die Fläche/Leiterbahn so verschoben, dass der erste Punkt der Fläche/Leiterbahn auf der angegebenen Position zu liegen kommt. Der Rückgabewert ist Null bei erfolgter Änderung, (-1) wenn das übergebene Element ungültig oder (-2) wenn es nicht positionierbar ist. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in forall-Schleifen zur Iteration von
L_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int ged_elemsizechg( // Status
& index L_FIGURE; // Element
double; // Neue Größe (STD2)
);
Die Funktion ged_elemsizechg ändert die Größe des übergebenen Elements. Eine Größenänderung ist bei Texten, Bohrungen, Leiterbahnen und Flächen möglich. Bei Leiterbahnen wird mit der Größe die Leiterbahnbreite spezifiziert. Bei Flächen wird mit der Größe die Expansionsdistanz definiert. Der Rückgabewert ist Null bei erfolgter Änderung, (-1) wenn das übergebene Element ungültig oder (-2) wenn es nicht größenveränderbar ist. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
L_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int ged_getautocornins( // Rückgabe Modus:
// 0 = Automatische Eckpunktgenerierung deaktiviert
// 1 = Automatische Eckpunktgenerierung für Leiterbahnen
// 2 = Automatische Eckpunktgenerierung für Polygone
// 3 = Automatische Eckpunktgenerierung für Leiterbahnen und Polygone
);
Der Rückgabewert der Funktion ged_getautocornins entspricht dem im Layouteditor aktuell eingestellten Modus für das automatische Einfügen von Ecken bei der Generierung von Leiterbahnen und Polygonen. Der Eckpunktgenerierungsmodus wird im Layouteditor über eine der Optionen bzw. der Funktion selektiert.
int ged_getdblpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = X-Koordinate letzte Gruppenplatzierung (STD2)
// 1 = Y-Koordinate letzte Gruppenplatzierung (STD2)
// 2 = Standardbauteilplatzierungswinkel (STD3)
// 3 = Flächenautomatik Isolationsabstand (STD2)
// 4 = Flächenautomatik Min. Strukturgröße (STD2)
// 5 = Flächenautomatik Wärmefallenbreite (STD2)
// 6 = Flächenautomatik Wärmefallenisolation (STD2)
// 7 = Flächenautomatik Schraffurlinienabstand (STD2)
// 8 = Flächenautomatik Schraffurlinienbreite (STD2)
// 9 = Flächenautomatik Schraffurlinienwinkel (STD3)
// 10 = Netzsichtbarkeitsdialog Netznamenskontollelementbreite
// 11 = Standardtextgröße (STD2)
// 12 = DRC-Abstandshaltung Textgröszlig;e (STD2)
// 13 = Autoplacement Bauteilexpansion (STD2)
// 14 = Autoplacement Bauteilpinfaktor [0, 1.0]
// 15 = Autoplacement Segmentpassung [0, 1.0]
// 16 = Autoplacement Bauteilkonturoffset (STD2)
// 17 = Standardtextplatzierungswinkel (STD3)
// 18 = Autorouter Umrandungsabstand (STD2)
// 19 = Autorouter Abstand Wärmefalle zu Bohrung (STD2)
// 20 = Autorouter Abstand Isolation zu Bohrung (STD2)
// 21 = Autorouter Maximale Versorgungslänge (STD2)
// 22 = Autorouter Angefordertes Spezial Routing-Raster (STD2)
// 23 = Autorouter Split Power Plane Abstandshaltung (STD2)
// 24 = Autorouter BGA-Rastertoleranz (STD2)
// 25 = Autorouter Maximale SMD-Fanoutlänge (STD2)
// 26 = Autorouter Pin-Via-Mindestabstand (STD2)
// 27 = CAM Gerber Standardlinienbreite (STD2)
// 28 = CAM Minimaler Abstand Wärmefalle zu Bohrung (STD2)
// 29 = CAM Minimaler Abstand Isolation zu Bohrung (STD2)
// 30 = CAM Toleranz Abstand Wärmefalle zu Bohrung (STD2)
// 31 = CAM Toleranz Abstand Isolation zu Bohrung (STD2)
// 32 = CAM Breite Versorgungslagenumrandung (STD2)
// 33 = CAM Versorgungslagen-Isolationsabstand (STD2)
// 34 = Busbahnbreite (STD2)
// 35 = Busbahnabstand (STD2)
& double; // Rückgabe Parameterwert
);
Die Funktion
ged_getdblpar dient der Abfrage von mit
ged_setdblpar im
Layouteditor gesetzten Parametern vom Typ
double. Der Funktionsrückgabewert ist Null bei erfolgreicher Abfrage oder (-1) im Fehlerfall.
Funktionen ged_getintpar, ged_getstrpar, ged_setdblpar, ged_setintpar, ged_setstrpar.
int ged_getdrcmarkmode( // DRC-Fehleranzeigemodus
);
Die Funktion ged_getdrcmarkmode dient der Abfrage des im Layouteditor aktuell aktiven DRC-Fehleranzeigemodus. Der Funktionsrückgabewert ist Null, wenn die selektierte Farbe für Fehler zur Fehlermarkeranzeige verwendet wird. Bei Verwendung der Highlightfarbe zur Fehlermarkeranzeige wird der Wert 1 zurückgegeben.
Funktion ged_setdrcmarkmode.
int ged_getdrcstatus( // DRC-Status
);
Mit der Funktion ged_getdrcstatus kann der Vollständigkeitsstatus der Designregelprüfung im Layouteditor abgefragt werden. Der Funktionsrückgabewert ist Null, wenn lediglich die in der aktuellen Programmsitzung durchgeführten Designänderungen geprüft wurden. Wenn hingegen für das aktuell geladene Element eine vollständige Designregelprüfung durchgeführt wurde, und somit sämtliche Designregelverletzungen angezeigt werden, dann wird ein Wert ungleich Null zurückgegeben.
int ged_getgroupdata( // Status
& double; // Gruppenbezugspunkt X-Koordinate (STD2)
& double; // Gruppenbezugspunkt Y-Koordinate (STD2)
& double; // Gruppendrehwinkel (STD3)
& double; // Gruppenskalierungsfaktor
& int; // Gruppenspiegelungsmodus
& double; // Gruppenquadrant X-Koordinate (STD2)
& double; // Gruppenquadrant Y-Koordinate (STD2)
& int; // Gruppenquadrantmodus
& int; // Gruppenbereichsmodus
);
Die Funktion ged_getgroupdata ermöglicht die Abfrage der aktuellen Eingabedaten während interaktiver Gruppenplatzierungen im Layouteditor. Der Funktionsrückgabewert ist ungleich Null wenn gerade keine Gruppenplatzierungsinteraktion aktiviert ist.
Funktion ged_getinputdata.
int ged_gethighlnet( // Status
int [-1,[; // Netznummer oder -1 für Highlightfokusmodusabfrage
& int; // Highlightmodus
& int; // Highlightfarbe (Bit 1 bis 6, STD18) und Highlightmuster (Bit 7 bis 12)
);
Mit der Funktion ged_gethighlnet kann der Highlightmodus sowie die Highlightfarbe und das Highlightmuster für das Netz mit der angegebenen Netznummer abgefragt werden. Bei aktiviertem Netzhighlight wird im Parameter für den Highlightmodus ein Wert ungleich Null zurückgegegen, bei deaktiviertem Netzhighlight ergibt sich der Highlightmodusparameter zu Null. Im zweiten Parameter wird der Farbcode (Bit 1 bis 6) und das Muster (Bit 7 bis 12) für die Highlightanzeige zurückgegeben. Der Funktionsrückgabewert ergibt sich zu einem Wert ungleich Null, wenn die Abfrage erfolgreich war, andernfalls (Netz nicht gefunden, ungültige Parameter) wird der Wert Null zurückgegeben.
Funktion ged_highlnet.
int ged_getinputdata( // Status
& double; // Ursprüngliche X-Koordinate (STD2)
& double; // Ursprüngliche Y-Koordinate (STD2)
& double; // Ursprüngliche Breite (STD2)
& int; // Ursprüngliche Lage (LAY1)
& double; // Aktuelle X-Koordinate (STD2)
& double; // Aktuelle Y-Koordinate (STD2)
& double; // Aktuelle Breite (STD2)
& int; // Aktuelle Lage (LAY1)
& void; // Eingabemodus/Element (LAY11)
& void; // Leiterbahn Netzindex (optional)
& double; // Erstes Segment Start-X-Koordinate (STD2) */
& double; // Erstes Segment Start-Y-Koordinate (STD2) */
& double; // Erster Kreismittelpunkt X-Koordinate (STD2) */
& double; // Erster Kreismittelpunkt Y-Koordinate (STD2) */
& int; // Erster Kreismittelpunkt Typ (STD15) */
& double; // Letztes Segment Start-X-Koordinate (STD2) */
& double; // Letztes Segment Start-Y-Koordinate (STD2) */
& double; // Letzter Kreismittelpunkt X-Koordinate (STD2) */
& double; // Letzter Kreismittelpunkt Y-Koordinate (STD2) */
& int; // Letzter Kreismittelpunkt Typ (STD15) */
);
Die Funktion ged_getinputdata ermöglicht die Abfrage der aktuellen Eingabedaten während interaktiver Platzierungen im Layouteditor. Die Interpretation der Platzierungsdaten ist entsprechend dem zurückgelieferten Funktionsparameter für den Eingabemodus bzw. das Platzierungselement vorzunehmen. Der Funktionsrückgabewert ist ungleich Null wenn gerade keine Platzierungsinteraktion aktiviert ist.
Funktion ged_getgroupdata.
int ged_getintpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = Pickpunktanzeigemodus:
// 0 = keine Pickpunktanzeige
// 1 = Pickpunktanzeige
// 2 = Pickpunktübersichtsanzeige
// 3 = Pickpunkteditieranzeige
// 1 = automatischer DRC beim Laden:
// 0 = kein automatischer DRC
// 1 = automatischer DRC nach Abfrage
// 2 = automatischer DRC ohne Abfrage
// 2 = Farbcode für Oberste Lage
// 3 = Infoanzeigeflag:
// 0 = keine automatische Infoanzeige
// 1 = automatische Infoanzeige
// 4 = Infoanzeigemodus:
// 0 = keine Infoanzeige
// 1 = komplette Infoanzeige
// 2 = nur Kupferinfoanzeige
// 5 = Winkeleditierrichtung
// 6 = Bauteilmakro-DRC:
// 0 = kompletter DRC
// 1 = Bauteilmakros als geprüft betrachten
// 7 = Rastereckenabfragemodus:
// 0 = keine Rastereckenabfrage
// 1 = komplette Rastereckanabfrage
// 2 = Rastereckenabfrage im aktuellen Fenster
// 3 = Rastereckenabfrage im dynamisch aktualisierten Fenster
// 8 = Minconaktualisierungsmodus
// 9 = DRC Polygontyp-Abschaltungsbits
// 10 = Warnmeldemodus:
// Bit 0: SCM-Änderungs-Warnungen unterdrückt
// Bit 1: Warnungen Gruppenselektion Füllflächenproblempolygone unterdrückt
// Bit 2: Variantenvergleichswarnungen unterdrückt
// Bit 3: Warnungen über Beendingung des Autoroutermodus unterdrückt
// 11 = Lagenbenutzung Scanmodus
// 12 = Flächenpolygoneditiermodus:
// 0 = keine geschlossenen Linienzüge
// 1 = immer geschlossene Linienzüge
// 2 = Abfrage zum Schließen von Linienzügen
// 13 = DRC-Abstandsanzeigemuster
// 14 = Leiterbahneditiermodus:
// 0 = Eingaberasterfang
// 1 = Pin-/Segmentfang bei erster Leiterbahnecke
// 15 = Flächenspiegelsicht:
// 0 = Standardflächenspiegelsicht
// 1 = Flächenspiegelsicht deaktiviert
// 16 = Bestätigungsabfragelimit für Netz löschen
// 17 = Plotvorschaumodus:
// 0 = keine Plotvorschau
// 1 = Plotterstiftbreite
// 18 = DRC-Distanzanzeigemodus:
// 0 = keine DRC-Distanzanzeige
// 1 = Leiterbahndistanzlinien
// 2 = Flächendistanzlinien
// 3 = Leiterbahndistanzmuster
// 4 = Flächendistanzmuster
// 19 = Textlagenspiegelungsmodus:
// 0 = keine Textlagenspiegelung
// 1 = Dokumentarlagenspiegelung
// 2 = Signal- und Dokumentarlagenspiegelung
// 20 = Standardbauteilspiegelungsmodus
// 21 = Autosave Intervall
// 22 = Bauteilluftlinienanzeigemodus:
// 0 = Keine Luftlinienanzeige
// 1 = Statische Luftlinienanzeige
// 2 = Dynamische Luftlinienanzeige
// 23 = Winkelfreigabeumschaltmodus:
// 0 = Umschaltung Pickseite standard
// 1 = Umschaltung Raster
// 2 = Umschaltung kürzere Seite
// 3 = Umschaltung Editierrichtung
// 24 = Copper fill heat trap mode
// 3 = Via-Wärmefallen
// |4 = Flag - keine benachbarten Pins
// |8 = Flag - Wärmefallenleiterbahnen
// |16 = Flag - nur unverbundene Lagen
// 25 = Flächenautomatik Leiterbahnmodus
// 0 = Runde Ecken
// 1 = Oktagonale Exken
// 2 = Oktagonale Kreise
// 3 = Oktagonale Ecken & Kreise
// 26 = Flächenautomatik Inselerkennung:
// 0 = Inseln beibehalten
// 1 = Inseln löschen
// 2 = Inseln selektieren
// 27 = Flächenautomatik Innenflächenmodus:
// 0 = Innenfüllflächen füllen
// 1 = Innenfüllflächen ausparen
// |2 = Ausparflächen mit Abstand
// 28 = Flächenautomatik Wärmefallenverbingsanzahl
// 29 = Flächenautomatik Spitzwinkelmodus:
// 0 = Spitze Winkel flach
// 1 = Spitze Winkel rund
// 30 = Flächenautomatik Schraffurmodus:
// 0 = Linienschraffur
// 1 = Gitterschraffur
// |2 = Editierbare Pfade erzeugen
// 31 = Netzsichtbarkeitsdialogmodus:
// 0 = Einzelspalte für Netznamenslistenanzeige
// 1 = Mehrspaltige Netznamenslistenanzeige
// 32 = Gruppenbewegtdarstellung:
// 0 = Bewegtbild aus
// 1 = Nur Baugruppenlage
// 2 = Bewegtbild ein
// 3 = Bewegtbild alles
// 33 = Leiterbahngruppenselektionsmodus:
// 0 = Leiterbahn- & Viaselektion
// 1 = Leiterbahnselektion
// 2 = Viaselektion
// 34 = Vorzugslagenauswahl (LAY1)
// 35 = Zwischenablagetext-Platzierungsanforderung
// 36 = Editierrichtung
// 37 = Mincon-Flächenmodus (Bitmuster):
// 0 = Kein Flächen-Mincon
// |1 = Kupferflächen-Mincon
// |2 = Potentialflächen-Mincon
// 38 = Gruppenwinkelfreigabemodus:
// 0 = Gruppenwinkel einhalten
// 1 = Gruppenwinkel automatisch freigeben
// 39 = Autoplacement Optimierungszahl
// 40 = Autoplacement Bauteiltausch
// 41 = Autoplacement Pin-/Gattertausch
// 42 = Autoplacement Spiegelungsmodus:
// 0 = Kein SMD-Spiegeln
// 1 = SMD-Spiegeln
// 2 = 2 Pin-SMD-Spiegeln
// 3 = Immer SMD-Spiegeln
// 43 = Autoplacement Rotationsmodus:
// 0 = 0-90 Grad Drehung
// 1 = 0-270 Grad Drehung
// 2 = 0 Grad Drehung
// 3 = 90 Grad Drehung
// 4 = 0 XOR 90 Grad Drehung
// 44 = Autoplacement Retrydurchgänge
// 45 = Autoplacement SMD-Rotationsmodus:
// 0 = 0-90 Grad Drehung
// 1 = 0-270 Grad Drehung
// 2 = 0 Grad Drehung
// 3 = 90 Grad Drehung
// 4 = 0 XOR 90 Grad Drehung
// 46 = Autoplacement Bauteilkonturlage (LAY1)
// 47 = Gruppenbearbeitung Elementfang:
// 0 = Alle Elemente selektieren
// 1 = Nur sichtbare Elemente selektieren
// 48 = Standardtextspiegelung und Standardtextmodus (STD14|LAY14)
// 49 = Autorouter Anzahl Optimierungen
// 50 = Autorouter Optimierer Richtungsmodus
// 51 = Autorouter Max. Via-Zahl
// 52 = Autorouter Via-Kosten
// 53 = Autorouter Pinkanal-Kosten
// 54 = Autorouter Anti-Vorzugs-Richtungs-Kosten
// 55 = Autorouter Richtungsänderungs-Kosten
// 56 = Autorouter Packungs-Kosten
// 57 = Autorouter Dynamische-Dichtestatistik-Basis
// 58 = Autorouter Max. Bäume pro Rip-Up
// 59 = Autorouter Max. Rip-Up Tiefe
// 60 = Autorouter Max. Rip-Up Wiederholungen
// 61 = Autorouter Via-Raster Index
// 62 = Autorouter Bus-Abknickkosten
// 63 = Autorouter Abstand-1-Kosten
// 64 = Autorouter Abstand-2-Kosten
// 65 = Autorouter Rip-Up-Kosten
// 66 = Autorouter Router Cleanup
// 67 = Autorouter Optimierer Cleanup
// 68 = Autorouter Versorgungsanschluss Vektorunroutes
// 69 = Autorouter Zwischenspeichern
// 70 = Autorouter Verbindungseckenausgabemodus
// 71 = Autorouter Unroutesausgabesortiermodus
// 72 = Autorouter Ecken Spitzwinkel Modus
// 73 = Autorouter Richtungsmodus existierende Bahnen
// 74 = Autorouter Standardverbindungs-Lagen-Kosten
// 75 = Autorouter Busverbindungs-Lagen-Kosten
// 76 = Autorouter Offset Wellenausbreitung Limit
// 77 = Autorouter Via Raster Modus
// 78 = Autorouter Eingabedaten Fehlerprüfmodus
// 79 = Autorouter Pin Anschluss Modus
// 80 = Autorouter Halbraster-Modus
// 81 = Autorouter Off-Grid-Routing-Kosten
// 82 = Autorouter Buserkennung/Busrouting Modus
// 83 = Autorouter SMD Via-Vorlegen
// 84 = Autorouter Router Pin/Gate-Swap
// 85 = Autorouter Gridless Routing Modus
// 86 = Autorouter Inkrementaler Ausgabemodus
// 87 = Autorouter Vorzugsraster
// 88 = Autorouter Anti-Vorzugsraster-Kosten
// 89 = Autorouter Anti-Netzbereichs-Kosten
// 90 = Autorouter Letzter Optimiererparameter Wechselmodus
// 91 = Autorouter Auto-Rip-Up Parameter Modus
// 92 = Autorouter Vorzugsrichtungsmodus
// 93 = Autorouter Optimierer Reihenfolge Modus
// 94 = Autorouter Via Rip-Up Flag
// 95 = Autorouter Routingfenster Randausdehnung
// 96 = Autorouter BGA Fan out
// 97 = Autorouter Pinentry Korrektur
// 98 = Autorouter Alternativer Viaversatz Modus
// 99 = Autorouter Voll-Viaauswertemodus
// 100 = Autorouter Micro Via Modus
// 101 = Autorouter Richtungsvorgabe Maximalabweichung
// 102 = Autorouter Routingfenster Flag
// 103 = Autorouter Padentry Subgrid
// 104 = Autorouter Versorgungslagen Vias
// 105 = Autorouter Via Prüfmodus
// 106 = Autorouter Verbindungsanzahl große Netze
// 107 = Autorouter Autorouting aktiv Flag
// 108 = CAM Wärmefallenbasiswinkel
// 109 = Flag - Einzeleckenbearbeitung
// 110 = Flag - Größenänderung mit Eckenabrundung
// 111 = Flag - Anzeige ausgeblendeter DRC-Fehler
// 112 = Flag - DRC-Verletzung Elementscan
// 113 = Bauteilplatzierung - Bahnendenbewegungsmodus:
// 0 = Keine Bahnendenbewegung
// 1 = Bahnenden mitbewegen
// 2 = Bahnsegmente mitbewegen
// 114 = Flag - Polygonbearbeitung Autocomplete-Modus
// 115 = Platinenumrandung alternative Dokumentarlage (LAY1)
// 116 = Leiterbahnzusammenfassungsmodus:
// 0 = Bahnen nicht zusammenfassen
// 1 = Bahnen zusammenfassen
// 2 = Bahnzusammenfassungsabfrage
// 117 = Anzeigemodus Leiterbahnen (LAY15)
// 118 = Anzeigemodus Texte (LAY15)
// 119 = Anzeigemodus Kupferpolygone (LAY15)
// 120 = Anzeigemodus Sperrflächen (LAY15)
// 121 = Anzeigemodus Umrandungspolygon (LAY15)
// 122 = Anzeigemodus Potentialflächen (LAY15)
// 123 = Anzeigemodus Dokumentarlinien (LAY15)
// 124 = Anzeigemodus Dokumentarflächen (LAY15)
// 125 = Anzeigemodus Füllflächen mit Ausschnittspolygonen (LAY15)
// 126 = Anzeigemodus Schraffurflächen (LAY15)
// 127 = Anzeigemodus Geteilte Potentialflächen (LAY15)
// 128 = Flag - Farbtabelle gesichert
// 129 = Airlinefarbmodus:
// 0 = Airlinefarbe benutzen
// 1 = Lagenfarbe benutzen
// 130 = Airlineclippingmodus:
// 0 = Kein Airlineclipping
// 1 = Airlines ohne Zielpunkt im Arbeitsbereich ausblenden
// 131 = Bahnkollisionsmodus:
// -1 = Operationsabfrage
// 0 = Kollisionen ignorieren
// 1 = Kollidierende Bahnen löschen
// 2 = Kollidierende Segmente löschen
// 3 = Kollidierende Segmente abschneiden
// 132 = Abfragemodus für Layoutbahnverbindungen:
// 0 = Layoutbahnen nie verbinden
// 1 = Layoutbahnen immer verbinden
// 2 = Verbindungsmodus abfragen
// 133 = Abfragemodus für Bauteilbahnverbindungen:
// 0 = Bauteilbahnen nie verbinden
// 1 = Bauteilbahnen immer verbinden
// 2 = Verbindungsmodus abfragen
// 135 = Polygonanzeigemodus beim Bewegen von Elementen:
// 0 = Umrandungsanzeige
// 1 = Füllanzeige
// 136 = Airlineanzeigemodus beim Bewegen von Gruppen:
// 0 = Airlineanzeige aus
// 1 = Airlines für Gruppenbauteilpins anzeigen
// 137 = Abstandsprüfmodus für Bahnkollisionen:
// 0 = DRC-Abstand für Kollisionscheck benutzen
// 1 = Nur Kreuzungen als Kollisionen interpretieren
// 138 = Pickmodus für Leiterbahnbündel:
// 0 = Kontinuierlicher Segmentpick
// 1 = Pick erstes und letztes Bündelsegment
// 139 = Einfüge-Pickmodus für Leiterbahnsegmente:
// 0 = 3-Klick Selektion
// 1 = 2-Klick Selektion
// 140 = Bauteil-DRC:
// 0 = kein Bauteil-Online-DRC
// 1 = Bauteil-Online-DRC
// 141 = Flag - Optimierung Bohrwerkzeugtabelle
// 142 = Busbahnanzahl
// 143 = Busbahnanzahl editieren
// 144 = Generierungsmodus Busbahnen:
// 0 = Bahnbündel generieren
// 1 = Separate Bahnen generieren
// 145 = Busbahn-Eckenmodus:
// 0 = Gewinkelte Ecken generieren
// 1 = Abgerundete Ecken gnerieren
// 146 = Siebdrucklage (LAY1)
// 147 = Anzeigmodus Makroumrandungen:
// 0 = Keine Makroumrandungsanzeige
// 1 = Makroumrandungen für bewegte Referenzen anzeigen
// 2 = Makroumrandungen anzeigen
*/
& int; // Rückgabe Parameterwert
);
Die Funktion ged_getintpar dient der Abfrage von mit ged_setintpar im Layouteditor gesetzten Integerparametern. Der Funktionsrückgabewert ist Null bei erfolgreicher Abfrage oder (-1) im Fehlerfall.
Funktionen ged_getdblpar, ged_setintpar, ged_getstrpar, ged_setdblpar. ged_setstrpar.
int ged_getlaydefmode( // Defaultlagenmodus:
// 0 = automatische Lagendefaultzuweisung deaktivieren
// 1 = benutzte Eingabelage ist Lagendefault
// 2 = zuletzt benutzte Lage ist Lagendefault
);
Die Funktion ged_getlaydefmode gibt den aktuell im Layouteditor eingestellten Defaultlagenmodus zurück.
Funktionen ged_getlayerdefault, ged_setlaydefmode, ged_setlayerdefault.
int ged_getlayerdefault( // Lage (LAY1)
);
Die Funktion ged_getlayerdefault gibt die aktuell im Layouteditor eingestellte Defaultlage zurück.
Funktionen ged_getlaydefmode, ged_setlaydefmode, ged_setlayerdefault.
int ged_getmincon( // Funktionstyp (LAY10)
);
Der Rückgabewert der Funktion ged_getmincon entspricht dem im Layouteditor aktuell eingestellten Wert des -Modus für die Airlineanzeige (LAY10).
void ged_getpathwidth(
& double; // Schmal Standardbreite (STD2)
& double; // Breit Standardbreite (STD2)
);
Die Funktion ged_getpathwidth gibt in den beiden Parametern die Werte der aktuell im Layouteditor eingestellten Standardbreiten für schmale und breite Leiterbahnen zurück.
int ged_getpickmode( // Elementpickmodus:
// 0 = Pick über Vorzugslage
// 1 = Pick mit Elementauswahl
// 2 = Pick exklusiv über Vorzugslage
);
Die Funktion ged_getpickmode dient der Abfrage des aktuell im Layouteditor ausgewählten Elementpickmodus.
Function ged_setpickmode.
int ged_getpickpreflay( // Vorzugslage (LAY1)
);
Der Rückgabewert der Funktion ged_getpickpreflay entspricht der Vorzugslage (LAY1) für Elementwahl im Layouteditor.
int ged_getpowlayerrcnt( // Versorgungslagenfehleranzahl
);
Die Funktion ged_getpowlayerrcnt gibt die Anzahl der im Layouteditor erkannten Versorgungslagenfehler zurück.
int ged_getsegmovmode( // Leiterbahnsegmentbewegungsmodus:
// 0 = Mit Nachbarn bewegen
// 1 = Ohne Nachbarn bewegen
// 2 = Nachbarn anpassen
// 3 = Nachbarn ohne Durchkontaktierungen anpassen
// 8 = Nur unmittelbare Nachbarn anpassen
// |4 = Offene Leiterbahnenden folgen Segmentbewegung
);
Die Funktion ged_getsegmovmode dient der Abrage des aktuell im Layouteditor eingestellten Leiterbahnsegmentbewegungsmodus.
Funktion ged_setsegmovmode.
int ged_getstrpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = Name zuletzt platziertes benanntes Element
// 1 = Name zuletzt platziertes Bibliothekselement
// 2 = Zuletzt platzierter Textstring
// 3 = Standardbibliotheksname
// 4 = Nächster freier Name
// 5 = Bohrbauteil-/Bohrpinnamensbasis
// 6 = Bohrbauteilmakronamensmuster
// 7 = Bohrpinmakronamensmuster
// 8 = Eingabeaufforderung Ersatzstring
// 9 = Bibliothek zuletzt platziertes Makro
// 10 = Autosave path name
& string; // Rückgabe Parameterwert
);
Die Funktion ged_getstrpar dient der Abfrage von im Layouteditor gesetzten Stringparametern. Der Funktionsrückgabewert ist Null bei erfolgreicher Abfrage oder (-1) im Fehlerfall.
Funktionen ged_getdblpar, ged_getintpar, ged_setdblpar, ged_setintpar, ged_setstrpar.
int ged_getviaoptmode( // Leiterbahnviaoptimierungsmodus:
// 0 = Viaoptimierung
// 1 = Vias beibehalten
);
Die Funktion ged_getviaoptmode dient der Abrage des aktuell im Layouteditor eingestellten Leiterbahnviaoptimierungsmodus.
Funktion ged_setviaoptmode.
double ged_getwidedraw( // Breite (STD2)
);
Der Rückgabewert der Funktion ged_getwidedraw entspricht der Breite, ab der im Layouteditor Leiterbahnen auf dem Bildschirm in Flächendarstellung angezeigt werden.
int ged_groupselect( // Anzahl Änderungen oder (-1) bei Fehler
int [0,9]; // Element Selektionstyp:
// 0 = Selektion nach Elementtyp
// 1 = Selektion nach Lage
// 2 = Selektion nach Fixiertflag
// 3 = Selektion nach Sichtbarkeit
// 4 = Selektion nach Lage/negiert
// 5 = Selektion nach Netznummer
// 6 = Selektion nach Netznummer/negiert
// 7 = Selektion Elemente mit Verbindung zu Netz
// 8 = Selektion Elemente ohne Verbindung zu Netz
// 9 = Selektion nach Elementpolygontyp
// 10 = Selektion nach Elementverankerungsmodus
int; // Element Selektionswert entspr. Selektionstyp:
// 0 - Elementtyp (0|LAY6)
// 1,4 - Elementlage (LAY1)
// 2 - Element-Fixiertflag (STD11)
// 3 - Elementsichtbarkeit (0|1)
// 5,6 - Elementnetznummer
// 7,8 - Netznummer
// 9 - Elementpolygontyp (LAY4)
// 10 - Elementverankerungsmodus (STD11 | STD12)
int [0,2]; // Neue Gruppenzugehörigkeit (STD13)
);
Die Funktion ged_groupselect ändert die Gruppenzugehörigkeit aller Element des spezifizierten Typs bzw. mit der spezifizierten Eigenschaft. Der Rückgabewert entspricht der Anzahl der durchgeführtem Änderungen oder dem Wert (-1) bei fehlerhaften bzw. inkompatiblen Parameterangaben. Der Selektionswert Null bei der Selektion nach dem Elementtyp kann dazu benutzt werden, Elemente beliebigen Typs auszuwählen.
Interne Layoutelementtypen wie z.B. die Standardvia-Definition(en) sind von der Gruppen(de)selektion mit ged_groupselect ausgenommen, um ein versehentliches Löschen bzw. Ändern derartiger Elemente durch die anschließende Anwendung anderer Gruppenfunktionen zu verhindern.
int ged_highlnet( // Status
int [-1,[; // Netznummer
int [0,[; // Highlight aus/ein Flag || (Farb- und Musterdefininition << 1)
);
Mit der Funktion ged_highlnet kann der Highlightmodus und die Highlightfarbe für das Netz mit der angegebenen Netznummer gesetzt werden. Zur Aktivierung des Netzhighlights ist das Bit 1 des Highlightparameters auf 1 zu setzen, die Deaktivierung erfolgt entsprechend durch Spezifikation des Werts Null im Bit 1 des Highlightparameters. Über die restlichen Bits des Highlightparameters kann der gewünschte Farbcode (Bits 2 bis 6) bzw. ein Muster (Bits 7 bis 12) für die Highlightanzeige spezifiziert werden. Der Funktionsrückgabewert ergibt sich zu einem Wert ungleich Null bei erfolgreicher Änderung des netzspezifischen Highlightmodus, andernfalls (Netz nicht gefunden, ungültige Parameter) wird der Wert Null zurückgegeben.
Funktion ged_gethighlnet.
int ged_layergrpchg( // Anzahl Elemente
int [0,[; // Lagennummer (LAY1)
int [0,2]; // Neue Gruppenzugehörigkeit (STD13)
);
Die Funktion ged_layergrpchg ändert die Gruppenzugehörigkeit aller Elemente, die auf der angegebenen Lage platziert sind. Der Rückgabewert ist die Anzahl der (de)selektierten Elemente oder (-1) bei Fehler.
int ged_partaltmacro( // Status
string; // Bauteilname
string; // Neuer Bauteil Bibiotheksteilname
);
Die Funktion ged_partaltmacro ändert den Gehäusetyp des angegebenen Bauteiles. Ein Rückgabewert von Null zeigt eine erfolgreiche Änderung an. Bei ungültigen Eingabedaten wird (-1) zurückgegeben, (-2) wenn der neue Gehäusetyp nicht alle für dieses Bauteil in der Netzliste verwendeten Pins enthält (Gehäuseänderung wird trotzdem durchgeführt), (-3) wenn das Bauteil nicht in der Netzliste vorhanden ist, (-4) wenn der neue Gehäusetyp für dieses Bauteil nicht erlaubt ist, (-5) wenn der neue Gehäusetyp nicht ladbar ist, (-6) wenn die Bauteildaten nicht in die Jobdatenbank kopiert werden konnten und (-7) wenn versucht wurde, in einem Programmlauf einen Bauteilgehäusetyp mehrfach umzuändern (z.B.ainbund anschließendbinc). Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion sollte nicht innerhalb von L_CPART-Index-Schleifen aufgerufen werden, da die vor dem Aufruf der Funktion belegten L_CPART-Indexvariablen anschließend ungültig sind.
int ged_partnamechg( // Status
string; // Alter Name
string; // Neuer Name
);
Die Funktion ged_partnamechg ändert den Namen des angegebenen Bauteiles. Ein Rückgabewert von Null zeigt eine erfolgreiche Änderung an. Bei ungültigen Eingabedaten wird (-1) zurückgegeben, (-2) wenn das Bauteil nicht platziert ist, (-4) wenn der neue Name schon definiert ist und (-5) wenn versucht wurde, in einem Programmlauf ein Bauteil mehrfach umzubenennen (z.B.ainbund anschließendbinc). Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden. Auf Bauteilebene kann ged_partnamechg zur Umbenennung von Pins verwendet werden.
Diese Funktion verändert möglicherweise die Netzliste und erfordert ggf. einen anschließenden -Lauf. Die Funktion sollte auch nicht innerhalb von L_CPART-Index-Schleifen aufgerufen werden, da die vor dem Aufruf der Funktion belegten L_CPART-Indexvariablen anschließend ungültig sind.
int ged_pickanyelem( // Status
& index L_FIGURE; // Rückgabe selektiertes Element
int; // Pickelementtypmenge ((LAY6 außer 7)<<1 verodert)
);
Die Funktion ged_pickanyelem aktiviert eine Mausinteraktion zur Selektion eines Elements aus der angegebenen Pickelementtypmenge. Der Rückgabewert ist Null bei erfolgter Selektion und (-1) wenn an der Pickposition kein Element gefunden wurde.
Funktion ged_pickelem.
int ged_pickelem( // Status
& index L_FIGURE; // Rückgabe selektiertes Element
int [1,10]; // Elementtyp (LAY6 außer 7)
);
Mit der Funktion ged_pickelem kann vom Benutzer mit der Maus ein Element des gewünschten übergebenen Typs selektiert werden. Der Rückgabewert ist Null bei erfolgter Selektion und (-1) wenn an der Pickposition kein Element des gewünschten Typs gefunden wurde.
Funktionen ged_pickanyelem, ged_setpickelem.
int ged_setautocornins( // Status
int [0,3]; // Eckpunkteingabemodus:
// 0 = Automatische Eckpunktgenerierung deaktiviert
// 1 = Automatische Eckpunktgenerierung für Leiterbahnen
// 2 = Automatische Eckpunktgenerierung für Polygone
// 3 = Automatische Eckpunktgenerierung für Leiterbahnen und Polygone
);
Die Funktion ged_setautocornins setzt den Eingabemodus für das wahlweise automatische Einfügen von Ecken bei der Generierung von Leiterbahnen und Polygonen. Der Eckpunkteingabemodus wird im Layouteditor üblicherweise über eine der Optionen bzw. der Funktion selektiert. Es wird ein Wert ungleich Null zurückgegeben, wenn ein ungültiger Oktagonalmodus spezifiziert wurde.
int ged_setdblpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = X-Koordinate letzte Gruppenplatzierung (STD2)
// 1 = Y-Koordinate letzte Gruppenplatzierung (STD2)
// 2 = Standardbauteilplatzierungswinkel
// 3 = Flächenautomatik Isolationsabstand (STD2)
// 4 = Flächenautomatik Min. Strukturgröße (STD2)
// 5 = Flächenautomatik Wärmefallenbreite (STD2)
// 6 = Flächenautomatik Wärmefallenisolation (STD2)
// 7 = Flächenautomatik Schraffurlinienabstand (STD2)
// 8 = Flächenautomatik Schraffurlinienbreite (STD2)
// 9 = Flächenautomatik Schraffurlinienwinkel (STD3)
// 10 = Netzsichtbarkeitsdialog Netznamenskontollelementbreite
// 11 = Standardtextgröße (STD2)
// 12 = DRC-Abstandshaltung Textgröszlig;e (STD2)
// 13 = Autoplacement Bauteilexpansion (STD2)
// 14 = Autoplacement Bauteilpinfaktor [0, 1.0]
// 15 = Autoplacement Segmentpassung [0, 1.0]
// 16 = Autoplacement Bauteilkonturoffset (STD2)
// 17 = Standardtextplatzierungswinkel (STD3)
// 18 = Autorouter Umrandungsabstand (STD2)
// 19 = Autorouter Abstand Wärmefalle zu Bohrung (STD2)
// 20 = Autorouter Abstand Isolation zu Bohrung (STD2)
// 21 = Autorouter Maximale Versorgungslänge (STD2)
// 22 = Autorouter Angefordertes Spezial Routing-Raster (STD2)
// 23 = Autorouter Split Power Plane Abstandshaltung (STD2)
// 24 = Autorouter BGA-Rastertoleranz (STD2)
// 25 = Autorouter Maximale SMD-Fanoutlänge (STD2)
// 26 = Autorouter Pin-Via-Mindestabstand (STD2)
// 27 = CAM Gerber Standardlinienbreite (STD2)
// 28 = CAM Minimaler Abstand Wärmefalle zu Bohrung (STD2)
// 29 = CAM Minimaler Abstand Isolation zu Bohrung (STD2)
// 30 = CAM Toleranz Abstand Wärmefalle zu Bohrung (STD2)
// 31 = CAM Toleranz Abstand Isolation zu Bohrung (STD2)
// 32 = CAM Breite Versorgungslagenumrandung (STD2)
// 33 = CAM Versorgungslagen-Isolationsabstand (STD2)
// 34 = Busbahnbreite (STD2)
// 35 = Busbahnabstand (STD2)
double; // Parameterwert
);
Die Funktion
ged_setdblpar dient dazu, Systemparameter vom Typ
double im
Layouteditor zu setzen. Der Funktionsrückgabewert ist Null bei erfolgreicher Parameterzuweisung oder (-1) im Fehlerfall. Die Werte von mit
ged_setdblpar gesetzten Systemparametern können mit der Funktion
ged_getdblpar abgefragt werden.
Funktionen ged_getdblpar, ged_getintpar, ged_getstrpar, ged_setintpar, ged_setstrpar.
int ged_setdrcmarkmode( // Status
int [0,1]; // DRC-Fehleranzeigemodus:
// 0 = Fehlermarkeranzeige mit Fehlerfarbe
// 1 = Fehlermarkeranzeige mit Highlightfarbe
);
Die Funktion ged_setdrcmarkmode wsetzt den Anzeigmodus für DRC-Fehlermarker. Der Funktionsrückgabewert ist ungleich Null, wenn ein ungültiger Anzeigemodus spezifiziert wurde.
Funktion ged_getdrcmarkmode.
int ged_setintpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = Pickpunktanzeigemodus:
// 0 = keine Pickpunktanzeige
// 1 = Pickpunktanzeige
// 2 = Pickpunktübersichtsanzeige
// 3 = Pickpunkteditieranzeige
// 1 = automatischer DRC beim Laden:
// 0 = kein automatischer DRC
// 1 = automatischer DRC nach Abfrage
// 2 = automatischer DRC ohne Abfrage
// [ 2 = bae_setcolor benutzen ]
// 3 = Infoanzeigeflag:
// 0 = keine automatische Infoanzeige
// 1 = automatische Infoanzeige
// 4 = Infoanzeigemodus:
// 0 = keine Infoanzeige
// 1 = komplette Infoanzeige
// 2 = nur Kupferinfoanzeige
// 5 = Winkeleditierrichtung
// 6 = Bauteilmakro-DRC:
// 0 = kompletter DRC
// 1 = Bauteilmakros als geprüft betrachten
// 7 = Rastereckenabfragemodus:
// 0 = keine Rastereckenabfrage
// 1 = komplette Rastereckanabfrage
// 2 = Rastereckenabfrage im aktuellen Fenster
// 3 = Rastereckenabfrage im dynamisch aktualisierten Fenster
// 8 = Minconaktualisierungsmodus
// 9 = DRC Polygontyp-Abschaltungsbits
// 10 = Warnmeldemodus:
// Bit 0: SCM-Änderungs-Warnungen unterdrücken
// Bit 1: Warnungen Gruppenselektion Füllflächenproblempolygone unterdrücken
// Bit 2: Variantenvergleichswarnungen unterdrücken
// Bit 3: Warnungen über Beendingung des Autoroutermodus unterdrückt
// 11 = Lagenbenutzung Scanmodus
// 12 = Flächenpolygoneditiermodus:
// 0 = keine geschlossenen Linienzüge
// 1 = immer geschlossene Linienzüge
// 2 = Abfrage zum Schließen von Linienzügen
// 13 = DRC-Abstandsanzeigemuster
// 14 = Leiterbahneditiermodus:
// 0 = Eingaberasterfang
// 1 = Pin-/Segmentfang bei erster Leiterbahnecke
// [ 15 = Systemparameter - kein Schreibzugriff ]
// 16 = Bestätigungsabfragelimit für Netz löschen
// 17 = Plotvorschaumodus:
// 0 = keine Plotvorschau
// 1 = Plotterstiftbreite
// 18 = DRC-Distanzanzeigemodus:
// 0 = keine DRC-Distanzanzeige
// 1 = Leiterbahndistanzlinien
// 2 = Flächendistanzlinien
// 3 = Leiterbahndistanzmuster
// 4 = Flächendistanzmuster
// 19 = Textlagenspiegelungsmodus:
// 0 = keine Textlagenspiegelung
// 1 = Dokumentarlagenspiegelung
// 2 = Signal- und Dokumentarlagenspiegelung
// 20 = Standardbauteilspiegelungsmodus
// 21 = Autosave Intervall
// 22 = Bauteilluftlinienanzeigemodus:
// 0 = Keine Luftlinienanzeige
// 1 = Statische Luftlinienanzeige
// 2 = Dynamische Luftlinienanzeige
// 23 = Winkelfreigabeumschaltmodus:
// 0 = Umschaltung Pickseite standard
// 1 = Umschaltung Raster
// 2 = Umschaltung kürzere Seite
// 3 = Umschaltung Editierrichtung
// 24 = Copper fill heat trap mode
// 0 = Direktanschluss
// 1 = Pin- & Via-Wärmefallen
// 2 = Pin-Wärmefallen
// 3 = Via-Wärmefallen
// |4 = Flag - keine benachbarten Pins
// |8 = Flag - Wärmefallenleiterbahnen
// |16 = Flag - nur unverbundene Lagen
// 25 = Flächenautomatik Leiterbahnmodus
// 0 = Runde Ecken
// 1 = Oktagonale Exken
// 2 = Oktagonale Kreise
// 3 = Oktagonale Ecken & Kreise
// 26 = Flächenautomatik Inselerkennung:
// 0 = Inseln beibehalten
// 1 = Inseln löschen
// 2 = Inseln selektieren
// 27 = Flächenautomatik Innenflächenmodus:
// 0 = Innenfüllflächen füllen
// 1 = Innenfüllflächen ausparen
// |2 = Ausparflächen mit Abstand
// 28 = Flächenautomatik Wärmefallenverbingsanzahl
// 29 = Flächenautomatik Spitzwinkelmodus:
// 0 = Spitze Winkel flach
// 1 = Spitze Winkel rund
// 30 = Flächenautomatik Schraffurmodus:
// 0 = Linienschraffur
// 1 = Gitterschraffur
// |2 = Editierbare Pfade erzeugen
// 31 = Netzsichtbarkeitsdialogmodus:
// 0 = Einzelspalte für Netznamenslistenanzeige
// 1 = Mehrspaltige Netznamenslistenanzeige
// 32 = Gruppenbewegtdarstellung:
// 0 = Bewegtbild aus
// 1 = Nur Baugruppenlage
// 2 = Bewegtbild ein
// 3 = Bewegtbild alles
// 33 = Leiterbahngruppenselektionsmodus:
// 0 = Leiterbahn- & Viaselektion
// 1 = Leiterbahnselektion
// 2 = Viaselektion
// 34 = Vorzugslagenauswahl (LAY1) ohne Aktionen
// 35 = Zwischenablagetext-Platzierungsanforderung
// 36 = Editierrichtung
// 37 = Mincon-Flächenmodus (Bitmuster):
// 0 = Kein Flächen-Mincon
// |1 = Kupferflächen-Mincon
// |2 = Potentialflächen-Mincon
// 38 = Gruppenwinkelfreigabemodus:
// 0 = Gruppenwinkel einhalten
// 1 = Gruppenwinkel automatisch freigeben
// 39 = Autoplacement Optimierungszahl
// 40 = Autoplacement Bauteiltausch
// 41 = Autoplacement Pin-/Gattertausch
// 42 = Autoplacement Spiegelungsmodus:
// 0 = Kein SMD-Spiegeln
// 1 = SMD-Spiegeln
// 2 = 2 Pin-SMD-Spiegeln
// 3 = Immer SMD-Spiegeln
// 43 = Autoplacement Rotationsmodus:
// 0 = 0-90 Grad Drehung
// 1 = 0-270 Grad Drehung
// 2 = 0 Grad Drehung
// 3 = 90 Grad Drehung
// 4 = 0 XOR 90 Grad Drehung
// 44 = Autoplacement Retrydurchgänge
// 45 = Autoplacement SMD-Rotationsmodus:
// 0 = 0-90 Grad Drehung
// 1 = 0-270 Grad Drehung
// 2 = 0 Grad Drehung
// 3 = 90 Grad Drehung
// 4 = 0 XOR 90 Grad Drehung
// 46 = Autoplacement Bauteilkonturlage (LAY1)
// 47 = Gruppenbearbeitung Elementfang:
// 0 = Alle Elemente selektieren
// 1 = Nur sichtbare Elemente selektieren
// 48 = Standardtextspiegelung und Standardtextmodus (STD14|LAY14)
// 49 = Autorouter Anzahl Optimierungen
// 50 = Autorouter Optimierer Richtungsmodus
// 51 = Autorouter Max. Via-Zahl
// 52 = Autorouter Via-Kosten
// 53 = Autorouter Pinkanal-Kosten
// 54 = Autorouter Anti-Vorzugs-Richtungs-Kosten
// 55 = Autorouter Richtungsänderungs-Kosten
// 56 = Autorouter Packungs-Kosten
// 57 = Autorouter Dynamische-Dichtestatistik-Basis
// 58 = Autorouter Max. Bäume pro Rip-Up
// 59 = Autorouter Max. Rip-Up Tiefe
// 60 = Autorouter Max. Rip-Up Wiederholungen
// 61 = Autorouter Via-Raster Index
// 62 = Autorouter Bus-Abknickkosten
// 63 = Autorouter Abstand-1-Kosten
// 64 = Autorouter Abstand-2-Kosten
// 65 = Autorouter Rip-Up-Kosten
// 66 = Autorouter Router Cleanup
// 67 = Autorouter Optimierer Cleanup
// 68 = Autorouter Versorgungsanschluss Vektorunroutes
// 69 = Autorouter Zwischenspeichern
// 70 = Autorouter Verbindungseckenausgabemodus
// 71 = Autorouter Unroutesausgabesortiermodus
// 72 = Autorouter Ecken Spitzwinkel Modus
// 73 = Autorouter Richtungsmodus existierende Bahnen
// 74 = Autorouter Standardverbindungs-Lagen-Kosten
// 75 = Autorouter Busverbindungs-Lagen-Kosten
// 76 = Autorouter Offset Wellenausbreitung Limit
// 77 = Autorouter Via Raster Modus
// 78 = Autorouter Eingabedaten Fehlerprüfmodus
// 79 = Autorouter Pin Anschluss Modus
// 80 = Autorouter Halbraster-Modus
// 81 = Autorouter Off-Grid-Routing-Kosten
// 82 = Autorouter Buserkennung/Busrouting Modus
// 83 = Autorouter SMD Via-Vorlegen
// 84 = Autorouter Router Pin/Gate-Swap
// 85 = Autorouter Gridless Routing Modus
// 86 = Autorouter Inkrementaler Ausgabemodus
// 87 = Autorouter Vorzugsraster
// 88 = Autorouter Anti-Vorzugsraster-Kosten
// 89 = Autorouter Anti-Netzbereichs-Kosten
// 90 = Autorouter Letzter Optimiererparameter Wechselmodus
// 91 = Autorouter Auto-Rip-Up Parameter Modus
// 92 = Autorouter Vorzugsrichtungsmodus
// 93 = Autorouter Optimierer Reihenfolge Modus
// 94 = Autorouter Via Rip-Up Flag
// 95 = Autorouter Routingfenster Randausdehnung
// 96 = Autorouter BGA Fan out
// 97 = Autorouter Pinentry Korrektur
// 98 = Autorouter Alternativer Viaversatz Modus
// 99 = Autorouter Voll-Viaauswertemodus
// 100 = Autorouter Micro Via Modus
// 101 = Autorouter Richtungsvorgabe Maximalabweichung
// 102 = Autorouter Routingfenster Flag
// 103 = Autorouter Padentry Subgrid
// 104 = Autorouter Versorgungslagen Vias
// 105 = Autorouter Via Prüfmodus
// 106 = Autorouter Verbindungsanzahl große Netze
// 107 = Autorouter Autorouting aktiv Flag
// 108 = CAM Wärmefallenbasiswinkel
// 109 = Flag - Einzeleckenbearbeitung
// 110 = Flag - Größenänderung mit Eckenabrundung
// 111 = Flag - Anzeige ausgeblendeter DRC-Fehler
// 112 = Flag - DRC-Verletzung Elementscan
// 113 = Bauteilplatzierung - Bahnendenbewegungsmodus
// 0 = Keine Bahnendenbewegung
// 1 = Bahnenden mitbewegen
// 2 = Bahnsegmente mitbewegen
// 114 = Flag - Polygonbearbeitung Autocomplete-Modus
// 115 = Platinenumrandung alternative Dokumentarlage (LAY1)
// 116 = Leiterbahnzusammenfassungsmodus:
// 0 = Bahnen nicht zusammenfassen
// 1 = Bahnen zusammenfassen
// 2 = Bahnzusammenfassungsabfrage
// 117 = Anzeigemodus Leiterbahnen (LAY15)
// 118 = Anzeigemodus Texte (LAY15)
// 119 = Anzeigemodus Kupferpolygone (LAY15)
// 120 = Anzeigemodus Sperrflächen (LAY15)
// 121 = Anzeigemodus Umrandungspolygon (LAY15)
// 122 = Anzeigemodus Potentialflächen (LAY15)
// 123 = Anzeigemodus Dokumentarlinien (LAY15)
// 124 = Anzeigemodus Dokumentarflächen (LAY15)
// 125 = Anzeigemodus Füllflächen mit Ausschnittspolygonen (LAY15)
// 126 = Anzeigemodus Schraffurflächen (LAY15)
// 127 = Anzeigemodus Geteilte Potentialflächen (LAY15)
// 128 = Flag - Farbtabelle gesichert
// 129 = Airlinefarbmodus:
// 0 = Airlinefarbe benutzen
// 1 = Lagenfarbe benutzen
// 130 = Airlineclippingmodus:
// 0 = Kein Airlineclipping
// 1 = Airlines ohne Zielpunkt im Arbeitsbereich ausblenden
// 131 = Bahnkollisionsmodus:
// -1 = Operationsabfrage
// 0 = Kollisionen ignorieren
// 1 = Kollidierende Bahnen löschen
// 2 = Kollidierende Segmente löschen
// 3 = Kollidierende Segmente abschneiden
// 132 = Abfragemodus für Layoutbahnverbindungen:
// 0 = Layoutbahnen nie verbinden
// 1 = Layoutbahnen immer verbinden
// 2 = Verbindungsmodus abfragen
// 133 = Abfragemodus für Bauteilbahnverbindungen:
// 0 = Bauteilbahnen nie verbinden
// 1 = Bauteilbahnen immer verbinden
// 2 = Verbindungsmodus abfragen
// 135 = Polygonanzeigemodus beim Bewegen von Elementen:
// 0 = Umrandungsanzeige
// 1 = Füllanzeige
// 136 = Airlineanzeigemodus beim Bewegen von Gruppen:
// 0 = Airlineanzeige aus
// 1 = Airlines für Gruppenbauteilpins anzeigen
// 137 = Abstandsprüfmodus für Bahnkollisionen:
// 0 = DRC-Abstand für Kollisionscheck benutzen
// 1 = Nur Kreuzungen als Kollisionen interpretieren
// 138 = Pickmodus für Leiterbahnbündel:
// 0 = Kontinuierlicher Segmentpick
// 1 = Pick erstes und letztes Bündelsegment
// 139 = Einfüge-Pickmodus für Leiterbahnsegmente:
// 0 = 3-Klick Selektion
// 1 = 2-Klick Selektion
// 140 = Bauteil-DRC:
// 0 = kein Bauteil-Online-DRC
// 1 = Bauteil-Online-DRC
// 141 = Flag - Optimierung Bohrwerkzeugtabelle
// 142 = Busbahnanzahl
// 143 = Busbahnanzahl editieren
// 144 = Generierungsmodus Busbahnen:
// 0 = Bahnbündel generieren
// 1 = Separate Bahnen generieren
// 145 = Busbahn-Eckenmodus:
// 0 = Gewinkelte Ecken generieren
// 1 = Abgerundete Ecken gnerieren
// 146 = Siebdrucklage (LAY1)
// 147 = Anzeigmodus Makroumrandungen:
// 0 = Keine Makroumrandungsanzeige
// 1 = Makroumrandungen für bewegte Referenzen anzeigen
// 2 = Makroumrandungen anzeigen
int; // Parameterwert
);
Die Funktion
ged_setintpar dient dazu, Systemparameter vom Typ im
int im
Layouteditor zu setzen. Der Funktionsrückgabewert ist Null bei erfolgreicher Parameterzuweisung oder (-1) im Fehlerfall. Die Werte von mit
ged_setintpar gesetzten Systemparametern können mit der Funktion
ged_getintpar abgefragt werden.
Funktionen ged_getdblpar, ged_getintpar, ged_getstrpar, ged_setdblpar, ged_setstrpar.
int ged_setlaydefmode( // Status
int [0,2]; // Defaultlagenmodus:
// 0 = automatische Lagendefaultzuweisung deaktivieren
// 1 = benutzte Eingabelage ist Lagendefault
// 2 = zuletzt benutzte Lage ist Lagendefault
);
Die Funktion ged_setlaydefmode setzt den Defaultlagenmodus im Layouteditor. Der Funktionsrückgabewert ist Null bei erfolgreicher Zuweisung und ungleich Null im Fehlerfall.
Funktionen ged_getlaydefmode, ged_getlayerdefault, ged_setlayerdefault.
int ged_setlayerdefault( // Status
int; // Lage (LAY1)
);
Die Funktion ged_setlayerdefault setzt die Defaultlage im Layouteditor. Der Funktionsrückgabewert ist Null bei erfolgreicher Zuweisung und ungleich Null im Fehlerfall.
Funktionen ged_getlaydefmode, ged_getlayerdefault, ged_setlaydefmode.
int ged_setmincon( // Status
int [0,8]; // Funktionstyp (LAY10)
);
Die Funktion ged_setmincon setzt den -Modus für die Airlineanzeige im Layouteditor. Es wird ein Wert ungleich Null zurückgegeben, wenn ein ungültiger Modus angegeben wurde.
int ged_setnetattrib( // Status
string; // Netzname
string; // Attributname
string; // Attributwert
);
Die Funktion ged_setnetattrib setzt für das namentlich spezifizierte Signalnetz den Wert des angegebenen Attributs. Die maximal speicherbare Stringlänge für den Attributwert beträgt 40 Zeichen. Der Rückgabewert ist Null bei erfolgreicher Attributwertdefinition, (-1) wenn kein gültiges Element geladen ist, (-2) bei fehlenden bzw. ungültigen Parametern, (-3) wenn das Netz nicht gefunden wurde, oder (-4) wenn das Attribut mit dem angegebenen Namen nicht am Netz definiert ist.
int ged_setpathwidth( // Status
double ]0.0,[; // Schmal Standardbreite (STD2)
double ]0.0,[; // Breit Standardbreite (STD2)
);
Die Funktion ged_setpathwidth setzt die Standardbreiten für schmale und breite Leiterbahnen im Layouteditor. Es wird ein Wert ungleich Null zurückgegeben, wenn ungültige Breiten spezifiziert wurden.
int ged_setpickelem( // Status
index L_FIGURE; // Defaultpickelement
);
Die Funktion ged_setpickelem setzt ein Defaultelement für nachfogende Pickoperationen im Layouteditor. Der Funktionsrückgabewert ist ungleich Null im Fehlerfall.
Funktion ged_pickelem.
int ged_setpickmode( // Status
int [0,2]; // Elementpickmodus:
// 0 = Pick über Vorzugslage
// 1 = Pick mit Elementauswahl
// 2 = Pick exklusiv über Vorzugslage
);
Die Funktion ged_setpickmode setzt den Elementpickmodus im Layouteditor. Der Funktionsrückgabewert ist ungleich Null bei Spezifikation eines ungültigen Elementpickmodus.
Funktion ged_getpickmode.
int ged_setpickpreflay( // Status
int; // Lage (LAY1)
);
Die Funktion ged_setpickpreflay setzt die Vorzugslage für Elementwahl im Layouteditor. Es wird ein Wert ungleich Null zurückgegeben, wenn keine gültige Lage angegeben wurde.
int ged_setplantoplay( // Status
int [0,99]; // Lage (LAY1)
);
Die Funktion ged_setplantoplay setzt die oberste Lage im Layouteditor. Es wird ein Wert ungleich Null zurückgegeben, wenn keine gültige Signallage angegeben wurde.
int ged_setsegmovmode( // Status
int [0,12]; // Leiterbahnsegmentbewegungsmodus:
// 0 = Mit Nachbarn bewegen
// 1 = Ohne Nachbarn bewegen
// 2 = Nachbarn anpassen
// 3 = Nachbarn ohne Durchkontaktierungen anpassen
// 8 = Nur unmittelbare Nachbarn anpassen
// |4 = Offene Leiterbahnenden folgen Segmentbewegung
);
Die Funktion ged_setsegmovmode setzt den Leiterbahnsegmentbewegungsmodus im Layouteditor. Es wird ein Wert ungleich Null zurückgegeben, wenn ein ungültiger Modus angegeben wurde.
Funktion ged_getsegmovmode.
int ged_setstrpar( // Status
int [0,[; // Parametertyp/-nummer:
// [ 0 = Systemparameter - kein Schreibzugriff ]
// [ 1 = Systemparameter - kein Schreibzugriff ]
// 2 = Zuletzt platzierter Textstring
// 3 = Standardbibliotheksname
// [ 4 = Systemparameter - kein Schreibzugriff ]
// 5 = Bohrbauteil-/Bohrpinnamensbasis
// 6 = Bohrbauteilmakronamensmuster
// 7 = Bohrpinmakronamensmuster
// 8 = Eingabeaufforderung Ersatzstring
// [ 9 = Systemparameter - kein Schreibzugriff ]
// 10 = Autosave path name
string; // Parameterwert
);
Die Funktion
ged_setstrpar dient dazu, Systemparameter vom Typ im
string im
Schaltplaneditor zu setzen. Der Funktionsrückgabewert ist Null bei erfolgreicher Parameterzuweisung oder (-1) im Fehlerfall. Die Werte von mit
ged_setstrpar gesetzten Systemparametern können mit der Funktion
ged_getstrpar abgefragt werden.
Funktionen ged_getdblpar, ged_getintpar, ged_getstrpar, ged_setdblpar, ged_setintpar.
int ged_setviaoptmode( // Status
int [0,1]; // Leiterbahnviaoptimierungsmodus:
// 0 = Viaoptimierung
// 1 = Vias beibehalten
);
Die Funktion ged_setviaoptmode setzt den Leiterbahnviaoptimierungsmodus im Layouteditor. Es wird ein Wert ungleich Null zurückgegeben, wenn ein ungültiger Modus angegeben wurde.
Funktion ged_getviaoptmode.
int ged_setwidedraw( // Status
double ]0.0,[; // Breite (STD2)
);
Die Funktion ged_setwidedraw setzt die Breite, ab der im Layouteditor Leiterbahnen auf dem Bildschirm in Flächendarstellung angezeigt werden. Es wird ein Wert ungleich Null zurückgegeben, wenn eine ungültige Breite spezifiziert wurde.
int ged_storedrill( // Status
double; // X-Koordinate (STD2)
double; // Y-Koordinate (STD2)
double ]0.0,[; // Radius (STD2)
int [0,[; // Bohrklasse (LAY5)
);
Die Funktion ged_storedrill platziert eine Bohrung mit den angegebenen Parametern auf dem gegenwärtig geladenen Layoutelement. Der Rückgabewert ist ungleich Null, wenn ungültige Daten übergeben wurden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
L_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int ged_storepart( // Status
string; // Bauteilname
string; // Bauteil Bibiotheksteilname
double; // X-Koordinate (STD2)
double; // Y-Koordinate (STD2)
double; // Drehwinkel (STD3)
int [0,1]; // Spiegelungsmodus (STD14)
);
Die Funktion ged_storepart platziert ein Bauteil mit den angegebenen Parametern auf dem gegenwärtig geladenen Layoutelement. Wird eine Leerzeichenkette für den Bauteilnamen übergeben, so wird das nächste unplatzierte Bauteil der Netzliste verwendet. Der Rückgabewert ist Null, wenn das Bauteil erfolgreich platziert wurde, (1) wenn die Bauteilpins nicht mit der Netzliste übereinstimmen, (-1) bei ungültigen Daten, (-2) wenn alle Bauteile bereits platziert sind, (-3) wenn das Bauteil schon platziert ist, (-4) wenn es nicht ladbar ist und (-6) wenn die Bauteildaten nicht in die Jobdatenbank kopiert werden konnten.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
L_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int ged_storepath( // Status
int [0,99]; // Leiterbahnlage (LAY1)
double ]0.0,[; // Leiterbahnbreite (STD2)
);
Die Funktion ged_storepath erzeugt aus der internen Punktliste unter Verwendung der angegebenen Parameter eine Leiterbahn auf dem aktuell geladenen Layout- bzw. Bauteil. Der Rückgabewert ist gleich Null, wenn die Bahn erfolgreich platziert wurde, (-1) wenn kein gültiges Element geladen ist, (-2) bei ungültigen Parametern, oder (-3) wenn die Punktliste ungültig ist.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
L_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
Funktionen bae_storepoint, ged_drcpath.
int ged_storepoly( // Status
int; // Polygonlage (LAY1)
int [1,9]; // Polygontyp (LAY4)
string; // Polygonnetzname (für Pot.- und Füllbereich)
int [0,18]; // Polygonspiegelungsmodus (LAY3)
);
Die Funktion ged_storepoly generiert aus der mit bae_storepoint erzeugten internen Punktliste unter Verwendung der angegebenen Parameter eine Fläche auf dem gegenwärtig geladenen Layoutelement. Der Rückgabewert ist gleich Null, wenn die Fläche erfolgreich platziert wurde, (-1) wenn kein gültiges Element geladen ist, (-2) bei ungültigen Parametern, oder (-3) wenn die Punktliste für den gegebenen Flächentyp ungültig ist.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
L_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
Funktionen bae_storepoint, ged_drcpoly.
int ged_storetext( // Status
string; // Textzeichenkette
double; // Text-X-Koordinate (STD2)
double; // Text-Y-Koordinate (STD2)
double; // Textdrehwinkel (STD3)
double ]0.0,[; // Textgröße (STD2)
int; // Textlage (LAY1)
int; // Textspiegelungsmodus und Textstil (STD14|LAY14)
);
Die Funktion ged_storetext platziert einen Text mit den angegebenen Parametern auf dem aktuell geladenen Layoutelement. Der Rückgabewert ist ungleich Null, wenn ungültige Daten übergeben wurden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
L_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden. Es können maximal 40 Zeichen der übergebenen Textzeichenkette gespeichert werden. Bei Übergabe längerer Zeichenketten gibt die Funktionen den Fehlerstatus zur Kennzeichnung ungültiger Parameter zurück.
Funktion ged_attachtextpos.
int ged_storeuref( // Status
string; // Referenz Bibiotheksteilname
double; // X-Koordinate (STD2)
double; // Y-Koordinate (STD2)
double; // Drehwinkel (STD3)
int; // Lagenoffset (für Pad auf Padstack)
int [0,1]; // Spiegelung (STD14) (für Pad auf Padst.)
);
Die Funktion ged_storeuref platziert eine namenlose Referenz mit den angegebenen Parametern auf dem gegenwärtig geladenen Layoutelement. Namenlose Referenzen sind die Vias auf Layout- bzw. Bauteilebene und die Pads auf Padstackebene. Spiegelung, Lagenoffset und Drehwinkel werden für Vias ignoriert. Der Rückgabewert ist gleich Null, wenn die Referenz erfolgreich platziert wurde, (-1) bei ungültigen Daten, (-2) wenn sie nicht ladbar ist und (-3) wenn die Referenzdaten nicht in die Jobdatenbank kopiert werden konnten.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
L_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
Funktion ged_drcpoly.
Die nachfolgend aufgelisteten Systemfunktionen sind dem Aufruftyp AR zugeordnet, d.h. diese Funktionen können im Autorouter aufgerufen werden:
int ar_asklayer( // Status
& int; // Lagenrückgabe (LAY1|LAY9)
int [0,5]; // Lagenabfragetyp:
// 0 = Dokumentarlagen und Signallagen
// 1 = Signallagen
// 2 = Signallagen
// (inklusive und )
// 3 = Dokumentarlagen
// 4 = Signallagen und Versorgungslagen
// 5 = beliebige Anzeigeelementtypen
);
Die Funktion ar_asklayer aktiviert im Autorouter ein Lagenauswahlmenü. Der Lagenabfragetyp gibt an, welche Lagen bzw. Anzeigelementtypen zur Auswahl angeboten werden. Der Rückgabewert ist Null bei erfolgter Lagenwahl oder (-1) bei Wahl des Menüpunktes Abbruch.
int ar_delelem( // Status
& index L_FIGURE; // Element
);
Die Funktion ar_delelem löscht das übergebene Element aus der Elementliste. Der Rückgabewert ist Null bei erfolgter Löschung und (-1), wenn das übergebene Element ungültig ist. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
L_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
Funktion ar_drawelem.
void ar_drawelem(
index L_FIGURE; // Element
int [0, 4]; // Zeichenmodus (STD19)
);
Die Funktion ar_drawelem aktualisiert die Anzeige des angegebenen Elements unter Verwendung des spezifizierten Zeichenmodus.
Funktion ar_delelem.
int ar_elemangchg( // Status
& index L_FIGURE; // Element
double; // Neuer Winkel (STD3)
);
Die Funktion ar_elemangchg ändert den Drehwinkel des übergebenen Elements. Der Drehwinkel wird ausgehend vom Nullwinkel eingestellt, d.h. der vorhergehende Drehwinkel des Elements hat keinen Einfluss auf das Ergebnis. Die Winkelangabe wird als Bogenmaßwert interpretiert. Der Rückgabewert ist Null bei erfolgter Änderung, (-1) wenn das übergebene Element ungültig oder (-2) wenn es nicht drehbar ist. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
L_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int ar_elemfixchg( // Status
& index L_FIGURE; // Element
int [0,1]; // Neues fixiert Flag (STD11)
);
Die Funktion ar_elemfixchg ändert den Fixiert-Modus des übergebenen Elements. Der Rückgabewert ist Null bei erfolgter Änderung, (-1) wenn das übergebene Element ungültig oder (-2) wenn es nicht fixierbar ist. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
L_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int ar_elemlaychg( // Status
& index L_FIGURE; // Element
int; // Neue Lage (LAY1)
);
Die Funktion ar_elemlaychg ändert die Lagenzugehörigkeit des übergebenen Elements. Bei Bohrungen gibt die Lage die Bohrungsklasse an. Die Lage kann für Flächen, Leiterbahnen, Bohrungen, Texte und Pads auf Padstackebene geändert werden. Der Rückgabewert ist Null bei erfolgter Änderung, (-1) wenn das übergebene Element ungültig oder (-2) wenn die Lage nicht änderbar ist. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
L_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int ar_elemmirrchg( // Status
& index L_FIGURE; // Element
int [0,18]; // Neuer Spiegelungsmodus (STD14|LAY3)
);
Die Funktion ar_elemmirrchg ändert den Spiegelungsmodus des übergebenen Elements. Der Spiegelungsmodus kann bei Flächen, Texten und Referenzen geändert werden. Der Rückgabewert ist Null bei erfolgter Änderung, (-1) wenn das übergebene Element ungültig ist oder (-2) wenn es keinen Spiegelungsmodus besitzt. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
L_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int ar_elemposchg( // Status
& index L_FIGURE; // Element
double; // X-Position (STD2)
double; // Y-Position (STD2)
);
Die Funktion ar_elemposchg ändert die Position des übergebenen Elements. Bei Flächen/Leiterbahnen wird die Fläche/Leiterbahn so verschoben, dass der erste Punkt der Fläche/Leiterbahn auf der angegebenen Position zu liegen kommt. Der Rückgabewert ist Null bei erfolgter Änderung, (-1) wenn das übergebene Element ungültig oder (-2) wenn es nicht positionierbar ist. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
L_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int ar_elemsizechg( // Status
& index L_FIGURE; // Element
double; // Neue Größe (STD2)
);
Die Funktion ar_elemsizechg ändert die Größe des übergebenen Elements. Bei Leiterbahnen wird mit der Größe die Leiterbahnbreite spezifiziert. Eine Größenänderung ist nur bei Texten, Bohrungen und Leiterbahnen möglich. Der Rückgabewert ist Null bei erfolgter Änderung, (-1) wenn das übergebene Element ungültig oder (-2) wenn es nicht größenveränderbar ist. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
L_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int ar_getdblpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = Netzsichtbarkeitsdialog Netznamenskontollelementbreite
// 1 = Benutzerdefiniertes Routingraster
& double; // Rückgabe Parameterwert
);
Die Funktion
ar_getdblpar dient der Abfrage von mit
ar_setdblpar im
Autorouter gesetzten Parametern vom Typ
double. Der Funktionsrückgabewert ist Null bei erfolgreicher Abfrage oder (-1) im Fehlerfall.
Funktionen ar_getintpar, ar_getstrpar, ar_setdblpar, ar_setintpar, ar_setstrpar.
int ar_getintpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = Farbcode für Oberste Lage
// 1 = Minconaktualisierungsmodus
// 2 = Warnmeldemodus:
// Bit 0: SCM-Änderungs-Warnungen unterdrückt
// Bit 1: im Autorouter nicht benutzt
// Bit 2: Variantenvergleichswarnungen unterdrückt
// 3 = Autosave-Intervall
// 4 = Netzsichtbarkeitsdialogmodus:
// 0 = Einzelspalte für Netznamenslistenanzeige
// 1 = Mehrspaltige Netznamenslistenanzeige
// 5 = Routingsignallagenanzahl
// 6 = Routingrastercode:
// 0 = 1/20 Zoll (1.27 mm) Standard
// 1 = 1/40 Zoll (0.635 mm) Standard
// 2 = 1/50 Zoll (0.508 mm) Standard
// 3 = 1/60 Zoll (0.4233 mm) Standard
// 4 = 1/80 Zoll (0.3175 mm) Standard
// 5 = 1/100 Zoll (0.254 mm) Standard
// 6 = 1/40 Zoll (0.635 mm) ohne Versatz
// 7 = 1/60 Zoll (0.4233 mm) ohne Versatz
// 8 = 1/80 Zoll (0.3175 mm) ohne Versatz
// 9 = 1/100 Zoll (0.254 mm) mit Versatz
// -1 = Anderes Raster ohne Versatz
// -2 = Anderes Raster mit Versatz
// 7 = Mincon-Flächenmodus (Bitmuster):
// 0 = Kein Flächen-Mincon
// |1 = Kupferflächen-Mincon
// |2 = Potentialflächen-Mincon
// 8 = Flag - Farbtabelle gesichert
// 9 = Airlinefarbmodus:
// 0 = Airlinefarbe benutzen
// 1 = Lagenfarbe benutzen
// 10 = Flag - Optimierung Bohrwerkzeugtabelle
& int; // Rückgabe Parameterwert
);
Die Funktion ar_getintpar dient der Abfrage von mit ar_setintpar im Autorouter gesetzten Integerparametern. Der Funktionsrückgabewert ist Null bei erfolgreicher Abfrage oder (-1) im Fehlerfall.
Funktionen ar_getdblpar, ar_getstrpar, ar_setdblpar, ar_setintpar, ar_setstrpar.
int ar_getmincon( // Funktionstyp (LAY10)
);
Der Rückgabewert der Funktion ar_getmincon entspricht dem im Autorouter aktuell eingestellten Wert des -Modus für die Airlineanzeige (LAY10).
int ar_getpickpreflay( // Vorzugslage (LAY1)
);
Der Rückgabewert der Funktion ar_getpickpreflay entspricht der Vorzugslage (LAY1) für Elementwahl im Autorouter.
int ar_getstrpar( // Returns status int [0,[; // Parameter type/number: // 0 = Autosave path name & string; // Returns parameter value );
Die Funktion ar_getstrpar dient der Abfrage von im Autorouter gesetzten Stringparametern. Der Funktionsrückgabewert ist Null bei erfolgreicher Abfrage oder (-1) im Fehlerfall.
Funktionen ar_getdblpar, ar_getintpar, ar_setdblpar, ar_setintpar, ar_setstrpar.
double ar_getwidedraw( // Breite (STD2)
);
Der Rückgabewert der Funktion ar_getwidedraw entspricht der Breite, ab der im Autorouter Leiterbahnen auf dem Bildschirm in Flächendarstellung angezeigt werden.
int ar_highlnet( // Status
int [0,[; // Netznummer
int [0,1]; // Highlightmodus (0 = aus, 1 = ein)
);
Die Funktion ar_highlnet setzt den Highlightmodus des Netzes mit der übergebenen Netznummer. Es wird ein Wert ungleich Null zurückgegeben, wenn ein ungültiger Highlightmodus oder eine ungültige Netznummer angegeben wurde.
int ar_partnamechg( // Status
string; // Alter Bauteilname
string; // Neuer Bauteilname
);
Die Funktion ar_partnamechg ändert den Namen des angegebenen Bauteils in der Netzliste. Ein Rückgabewert von Null zeigt eine erfolgreiche Änderung an. Bei ungültigen Eingabedaten wird (-1) zurückgegeben, (-2) wenn das Bauteil nicht platziert ist, (-3) wenn das Bauteil nicht in der Netzliste vorhanden ist, (-4) wenn der neue Name schon definiert ist und (-5) wenn versucht wurde, in einem Programmlauf ein Bauteil mehrfach umzubenennen (z.B.ainbund anschließendbinc). Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion verändert die Netzliste und erfordert daher einen anschließenden -Lauf. Die Funktion sollte auch nicht innerhalb von L_CPART-Index-Schleifen aufgerufen werden, da die vor dem Aufruf der Funktion belegten L_CPART-Indexvariablen anschließend ungültig sind.
int ar_pickelem( // Status
& index L_FIGURE; // Rückgabe Element
int [1,9]; // Elementtyp (LAY6 außer 7)
);
Mit der Funktion ar_pickelem kann vom Benutzer mit der Maus ein Element des gewünschten übergebenen Typs selektiert werden. Der Rückgabewert ist Null bei erfolgter Selektion und (-1) wenn an der Pickposition kein Element des gewünschten Typs gefunden wurde.
int ar_setdblpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = Netzsichtbarkeitsdialog Netznamenskontollelementbreite
// [ 1 = Systemparameter - kein Schreibzugriff ]
double; // Parameterwert
);
Die Funktion
ar_setdblpar dient dazu, Systemparameter vom Typ
double im
Autorouter zu setzen. Der Funktionsrückgabewert ist Null bei erfolgreicher Parameterzuweisung oder (-1) im Fehlerfall. Die Werte von mit
ar_setdblpar gesetzten Systemparametern können mit der Funktion
ar_getdblpar abgefragt werden.
Funktionen ar_getdblpar, ar_getintpar, ar_getstrpar, ar_setintpar, ar_setstrpar.
int ar_setintpar( // Status
int [0,[; // Parametertyp/-nummer:
// [ 0 = bae_setcolor benutzen ]
// 1 = Minconaktualisierungsmodus
// 2 = Warnmeldemodus:
// Bit 0: SCM-Änderungs-Warnungen unterdrücken
// Bit 1: im Autorouter nicht benutzt
// Bit 2: Variantenvergleichswarnungen unterdrücken
// 3 = Autosave-Intervall
// 4 = Netzsichtbarkeitsdialogmodus:
// 0 = Einzelspalte für Netznamenslistenanzeige
// 1 = Mehrspaltige Netznamenslistenanzeige
// [ 5 = Systemparameter - kein Schreibzugriff ]
// [ 6 = Systemparameter - kein Schreibzugriff ]
// 7 = Mincon-Flächenmodus (Bitmuster):
// 0 = Kein Flächen-Mincon
// |1 = Kupferflächen-Mincon
// |2 = Potentialflächen-Mincon
// 8 = Flag - Farbtabelle gesichert
// 9 = Airlinefarbmodus:
// 0 = Airlinefarbe benutzen
// 1 = Lagenfarbe benutzen
// 10 = Flag - Optimierung Bohrwerkzeugtabelle
int; // Parameterwert
);
Die Funktion
ar_setintpar dient dazu, Systemparameter vom Typ im
int im
Autorouter zu setzen. Der Funktionsrückgabewert ist Null bei erfolgreicher Parameterzuweisung oder (-1) im Fehlerfall. Die Werte von mit
ar_setintpar gesetzten Systemparametern können mit der Funktion
ar_getintpar abgefragt werden.
Funktionen ar_getdblpar, ar_getintpar, ar_getstrpar, ar_setdblpar, ar_setstrpar.
int ar_setmincon( // Status
int [0,8]; // Funktionstyp (LAY10)
);
Die Funktion ar_setmincon setzt den -Modus für die Airlineanzeige im Autorouter. Es wird ein Wert ungleich Null zurückgegeben, wenn ein ungültiger Modus angegeben wurde.
int ar_setnetattrib( // Status
string; // Netzname
string; // Attributname
string; // Attributwert
);
Die Funktion ar_setnetattrib setzt für das namentlich spezifizierte Signalnetz den Wert des angegebenen Attributs. Die maximal speicherbare Stringlänge für den Attributwert beträgt 40 Zeichen. Der Rückgabewert ist Null bei erfolgreicher Attributwertdefinition, (-1) wenn kein gültiges Element geladen ist, (-2) bei fehlenden bzw. ungültigen Parametern, (-3) wenn das Netz nicht gefunden wurde, oder (-4) wenn das Attribut mit dem angegebenen Namen nicht am Netz definiert ist.
int ar_setpickpreflay( // Status
int; // Lage (LAY1)
);
Die Funktion ar_setpickpreflay setzt die Vorzugslage für Elementwahl im Autorouter. Es wird ein Wert ungleich Null zurückgegeben, wenn keine gültige Lage angegeben wurde.
int ar_setplantoplay( // Status
int [0,99]; // Lage (LAY1)
);
Die Funktion ar_setplantoplay setzt die oberste Lage im Autorouter. Es wird ein Wert ungleich Null zurückgegeben, wenn keine gültige Signallage angegeben wurde.
int ar_setstrpar( // Returns status int [0,[; // Parameter type/number: // 0 = Autosave path name string; // Parameter value );
Die Funktion
ar_setstrpar dient dazu, Systemparameter vom Typ im
string im
Autorouter zu setzen. Der Funktionsrückgabewert ist Null bei erfolgreicher Parameterzuweisung oder (-1) im Fehlerfall. Die Werte von mit
ar_setstrpar gesetzten Systemparametern können mit der Funktion
ar_getstrpar abgefragt werden.
Funktionen ar_getdblpar, ar_getintpar, ar_getstrpar, ar_setdblpar, ar_setintpar.
int ar_setwidedraw( // Status
double ]0.0,[; // Breite (STD2)
);
Die Funktion ar_setwidedraw setzt die Breite, ab der im Autorouter Leiterbahnen auf dem Bildschirm in Flächendarstellung angezeigt werden. Es wird ein Wert ungleich Null zurückgegeben, wenn eine ungültige Breite spezifiziert wurde.
int ar_storepart( // Status
string; // Bauteilname
string; // Bauteil Bibiotheksteilname
double; // X-Koordinate (STD2)
double; // Y-Koordinate (STD2)
double; // Drehwinkel (STD3)
int [0,1]; // Spiegelungsmodus (STD14)
);
Die Funktion ar_storepart platziert ein Bauteil mit den angegebenen Parametern auf dem gegenwärtig geladenen Layoutelement. Wird eine Leerzeichenkette für den Bauteilnamen übergeben, so wird das nächste unplatzierte Bauteil der Netzliste verwendet. Der Rückgabewert ist gleich Null, wenn das Bauteil erfolgreich platziert wurde, (-1) bei ungültigen Daten, (-2) wenn alle Bauteile bereits platziert sind, (-3) wenn das Bauteil schon platziert ist, (-4) wenn es nicht ladbar ist, (-5) wenn die Bauteilpins nicht mit der Netzliste übereinstimmen und (-6) wenn die Bauteildaten nicht in die Jobdatenbank kopiert werden konnten.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
L_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int ar_storepath( // Status
int [0,99]; // Lage (LAY1)
double ]0.0,[; // Bahnbreite (STD2)
);
Die Funktion ar_storepath erzeugt aus der internen Punktliste unter Verwendung der angegebenen Parameter eine Leiterbahn auf dem aktuell geladenen Layout bzw. Bauteil. Der Rückgabewert ist gleich Null, wenn die Bahn erfolgreich platziert wurde, (-1) wenn kein gültiges Element geladen ist, (-2) bei ungültigen Parametern, oder (-3) wenn die Punktliste ungültig ist.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
L_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int ar_storeuref( // Status
string; // Referenz Bibiotheksteilname
double; // X-Koordinate (STD2)
double; // Y-Koordinate (STD2)
double; // Drehwinkel (STD3)
int; // Lagenoffset (für Pad auf Stack)
int [0,1]; // Spiegelung (STD14) (für Pad auf Padst.)
);
Die Funktion ar_storeuref platziert eine namenlose Referenz mit den angegebenen Parametern auf dem gegenwärtig geladenen Layoutelement. Namenlose Referenzen sind die Vias auf Layout- bzw. Bauteilebene und die Pads auf Padstackebene. Spiegelung, Lagenoffset und Drehwinkel werden für Vias ignoriert. Der Rückgabewert ist gleich Null, wenn die Referenz erfolgreich platziert wurde, (-1) bei ungültigen Daten, (-2) wenn sie nicht ladbar ist und (-3) wenn die Referenzdaten nicht in die Jobdatenbank kopiert werden konnten.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
L_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
Die nachfolgend aufgelisteten Systemfunktionen sind dem Aufruftyp CAM zugeordnet, d.h. diese Funktionen können im CAM-Prozessor aufgerufen werden:
int cam_askplotlayer( // Status
& int; // Lagenrückgabe (LAY1)
);
Die Funktion cam_askplotlayer aktiviert im CAM-Prozessor ein Menü zur Auswahl der Plot- bzw. Ausgabelage. Der Rückgabewert ist Null bei erfolgreicher Lagenauswahl oder (-1) bei Wahl des Menüpunktes Abbruch.
int cam_getdblpar( // Status
int [0,[; // Parametertyp/-nummer:
// [ 0 = Systemparameter, nur Schreibzugriff ]
// 1 = Bitmapplotpixelauflösung (STD2)
// 2 = Letztes Bitmapplotpixelverhätnis
& double; // Rückgabe Parameterwert
);
Die Funktion
cam_getdblpar dient der Abfrage von mit
cam_setdblpar in
CAM-Prozessor gesetzten Parametern vom Typ
double. Der Funktionsrückgabewert ist Null bei erfolgreicher Abfrage oder (-1) im Fehlerfall.
Funktionen cam_getintpar, cam_setdblpar, cam_setintpar.
double cam_getdrlaccuracy( // Bohrwerkzeugtoleranz (STD2)
);
Der Rückgabewert der Funktion cam_getdrlaccuracy entspricht dem aktuell im CAM-Prozessor eingestellten Wert für die Toleranz des Bohrwerkzeugs.
Funktion cam_setdrlaccuracy.
void cam_getgenpltparam(
& int; // Alle Lagen Modus:
// 0 = aus
// 1 = ein
& int; // Umrandungsmodus:
// 0 = aus
// 1 = ein
& int; // Drehung:
// 0 = Drehung 0 Grad
// 1 = Drehung 90 Grad links
& int; // Spiegelung (CAM1)
& int; // Passermarkenmodus:
// 0 = aus
// 1 = ein
& double; // Plotgenauigkeit (STD2)
& double; // Plot Nullpunkt X-Koordinate (STD2)
& double; // Plot Nullpunkt Y-Koordinate (STD2)
);
Die Funktion cam_getgenpltparam gibt die aktuell im CAM-Prozessor eingestellten allgemeinen Plotparameter zurück.
int cam_getgerberapt( // Status
int [1,900]; // Blendentabellenindex
& int; // Blende D-Code:
// 10..999 = gültige D-Codes
// (-1) = Blende nicht definiert
& int; // Blendentyp:
// 0 = Spezialblende
// 1 = Runde Blende
// 2 = Quadratische Blende
// 3 = Therm. Blende (Wärmefalle)
// 4 = Rechteckige Blende
& int; // Blendenzeichenmodus:
// 0 = Blende für alle Zeichenmodi
// 1 = Blende zum Blitzen
// 2 = Blende für Linienstrukturen
& double; // Blendengröße (STD2)
& double; // Blendengröße 2 (STD2)
);
Die Funktion cam_getgerberapt ermittelt die Definition der unter dem angegebenen Index der aktuell im CAM-Prozessor geladenen Blendentabelle eingetragenen Gerberblende. Wird der Wert (-1) für den D-Code zurückgegeben, dann bedeutet dies, dass keine Blende an der angegebenen Tabellenposition definiert ist. Der Funktionsrückgabewert ist ungleich Null bei fehlenden bzw. ungültigen Parametern.
void cam_getgerberparam(
& string; // Gerber Dateiname
& double; // Standardlinienbreite (STD2)
& int; // Gerber Format (CAM4)
& int; // Gerber Optimierung:
// 0 = Optimierung aus
// 1 = Optimierung ein
& int; // Füllverfahren:
// 0 = Linien-Füllen
// 1 = Multiblenden-Füllen
// 2 = G36/G36-Füllmodus
& int; // Kreisbogen-Ausgabemodus:
// 0 = Kreisbogen-Interpolation
// 1 = Ausg. mit Gerber I/J-Befehlen
& int; // Extended Gerber (RS-274-X) Modus:
// 0 = Kein Extended Gerber
// 1 = Extended Gerber mit Standard-Blendentabelle
// 2 = Extended Gerber mit dynamischer Blendentabelle
);
Die Funktion cam_getgerberparam gibt die aktuell im CAM-Prozessor eingestellten Gerber-Plotparameter zurück.
void cam_gethpglparam(
& string; // HP-GL Plotdateiname
& double; // HP-GL Maßstab
& double; // HP-GL Geschwindigkeit (-1.0 volle Geschw.)
& double; // HP-GL Stiftbreite (STD2)
& int; // HP-GL Füllmodus:
// 0 = Füllen aus
// 1 = Füllen ein
);
Die Funktion cam_gethpglparam gibt die aktuell im CAM-Prozessor eingestellten HP-GL-Plotparameter zurück.
int cam_getintpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = Farbcode für Oberste Lage
// 1 = Wärmefallenbasiswinkel
// 2 = Warnmeldemodus:
// Bit 0: SCM-Änderungs-Warnungen unterdrückt
// Bit 1: im CAM-Prozessor nicht benutzt
// Bit 2: Variantenvergleichswarnungen unterdrückt
// 3 = Flächenspiegelsicht:
// 0 = Standardflächenspiegelsicht
// 1 = Flächenspiegelsicht deaktiviert
// 4 = Letzter Pixelplotergebnistyp:
// -1 = noch kein Pixelplot
// 0 = Pixelverhältnis Platinenumrandung
// 1 = Pixelverhältnis Elementgrenzen
// 5 = Letzte Pixelplot-Pixelanzahl
// 6 = Letzte Pixelplot-Kupferpixelanzahl
// 7 = Skalierungsmodus Generische Printausgabe:
// 0 = Fester Skalierungsfaktor
// 1 = Skalierung auf Papiergröße/span>
// 8 = Flag - Farbtabelle gesichert
// 9 = Airlinefarbmodus:
// 0 = Airlinefarbe benutzen
// 1 = Lagenfarbe benutzen
// 10 = Bitmapumrandungsfräsmodus:
// 0 = Keine Fräsung
// 1 = Gefüllte Umrandung fräsen
// 11 = Generischer Printer Zeichenmodus:
// 0 = Farbe setzen
// 1 = Farbe mischen
// 12 = Batchausgabeflag
// 13 = Flag - Optimierung Bohrwerkzeugtabelle
// 14 = Plotvorschaumodus:
// 0 = Keine Plotvorschau
// 1 = Plotterstiftbreite
& int; // Rückgabe Parameterwert
);
Die Funktion cam_getintpar dient der Abfrage von mit cam_setintpar im CAM-Prozessor gesetzten Integerparametern. Der Funktionsrückgabewert ist Null bei erfolgreicher Abfrage oder (-1) im Fehlerfall.
Funktions cam_getdblpar, cam_setdblpar, cam_setintpar.
int cam_getplotlaycode( // HP-GL-Plot-Stiftnummer (CAM4)
int; // Lagennummer (LAY1)
);
Die Funktion cam_getplotlaycode ermittelt die für die spezifizierte Lage aktuell selektierte bzw. gesetzte HP-GL-Plot-Stiftnummer für Multilayer-Plots. Die lagenspezifischen HP-GL-Plot-Stiftnummern werden auch bei der Erzeugung von Multilayer-Plots in anderen Formaten als HP-GL ausgewertet. Positive Stiftnummern kennzeichnen hierbei Lagen, die für die Ausgabe selektiert sind, während Lagen mit negativer Stiftnummer nicht geplottet werden.
Funktion cam_setplotlaycode.
void cam_getpowpltparam(
& double; // Min. Distanz Wärmefalle-Bohrung (STD2)
& double; // Min. Distanz Isolation-Bohrung (STD2)
& double; // Toleranz Wärmefalle-Bohrung (STD2)
& double; // Toleranz Isolation-Bohrung (STD2)
& double; // Breite Vers.-lagenumrandung (STD2)
& double; // Breite Power Plane Isolation (STD2)
);
Die Funktion cam_getpowpltparam gibt die aktuell im CAM-Prozessor eingestellten Versorgungslagen-Plotparameter zurück.
double cam_getwidedraw( // Breite (STD2)
);
Der Rückgabewert der Funktion cam_getwidedraw entspricht der Breite, ab der im CAM-Prozessor Leiterbahnen auf dem Bildschirm in Flächendarstellung angezeigt werden.
int cam_plotgerber( // Status
int; // Lage (LAY1)
string; // Gerber Dateiname
double [0.00001,0.01]; // Standardlinienbreite (STD2)
double ]0.00000000053,[;// Länge einer Ploteinheit (CAM2)
int [0,1]; // Gerber Optimierung:
// 0 = Optimierung aus
// 1 = Optimierung ein
int [0,2]; // Füllverfahren:
// 0 = Linien-Füllen
// 1 = Multiblenden-Füllen
// 2 = G36/G36-Füllmodus
int [0,1]; // Kreisbogenausgabemodus:
// 0 = Kreisbogeninterpolation
// 1 = Ausg. mit Gerber I/J-Befehlen
int [0,2]; // Extended Gerber (RS-274-X) Modus:
// 0 = Kein Extended Gerber
// 1 = Ext. Gerber mit Standard-Blendentabelle
// 2 = Ext. Gerber mit dynamischer Blendentabelle
int [0,1]; // Error Reset Flag:
// 0 = alte Fehler nicht löschen
// 1 = alte Fehler löschen
& int; // Anzahl geblitzte Strukturen
& int; // Anzahl rechteckgefüllte Strukturen
& int; // Anzahl kreisgefüllte Strukturen
& int; // Anzahl multigefüllte Strukturen
& int; // Anzahl liniengefüllte Strukturen
& int; // Anzahl gezeichneter Wärmefallen
& int; // Anzahl Überzeichnungsfehler
);
Die Funktion cam_plotgerber erzeugt die Gerber-Plotdaten für die spezifizierte Lage und schreibt die Plotdaten in eine Datei. Wird für den Dateinamen eine Leerzeichenkette übergeben, so werden nur die übergebenen Parameter für Standardlinienbreite, Füllverfahren und Kreisbogen-Ausgabemodus gesetzt und ggf. die Fehleranzeige gelöscht. Der Rückgabewert dieser Funktion ist Null bei fehlerfreiem Plot, 1 bei ungültigen Parametern (Parameter nicht im Wertebereich, keine passende Blende für Standardlinienbreite, ...), und (-1) wenn Plot-Fehler aufgetreten sind. Überzeichnungsfehler werden am Bildschirm hervorgehoben (d.h. mit Highlight) dargestellt.
int cam_plothpgl( // Status
int; // Lage (LAY1)
int [1,99]; // Stiftnummer
string; // HP-GL Dateiname
double [0.1,100]; // Maßstab
double [-1.0,99]; // Geschwindigkeit ([Zentimeter/Sekunde]) oder:
// -1.0 = volle Geschwindigkeit
double [0.00001,0.01]; // Stiftbreite (STD2)
int [0,1]; // Füllmodus:
// 0 = Füllen aus
// 1 = Füllen ein
int [0,1]; // Error Reset Flag:
// 0 = alte Fehler nicht löschen
// 1 = alte Fehler löschen
& int; // Rückgabe Anzahl Überzeichnungsfehler
);
Die Funktion cam_plothpgl erzeugt die HP-GL-Plotdaten für die spezifizierte Lage und schreibt die Plotdaten in eine Datei. Wird für den Dateinamen eine Leerzeichenkette übergeben, so werden nur die übergebenen Parameter gesetzt. Der Rückgabewert dieser Funktion ist Null bei fehlerfreiem Plot, und (-1) bei ungültigen Parametern bzw. wenn Plot-Fehler aufgetreten sind. Überzeichnungsfehler werden am Bildschirm hervorgehoben dargestellt.
int cam_setdblpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = Wert für dynamische Blendenexpansion hinzufügen, 0.0 = Liste löschen (STD2)
// 1 = Bitmapplotpixelauflösung (STD2)
// 2 = Letztes Bitmapplotpixelverhätnis
double; // Parameterwert
);
Die Funktion
cam_setdblpar dient dazu,
CAM-Prozessor-Systemparameter vom Typ
double zu setzen. Der Funktionsrückgabewert ist Null bei erfolgreicher Parameterzuweisung oder (-1) im Fehlerfall. Die Werte von mit
cam_setdblpar gesetzten Systemparametern können mit der Funktion
cam_getdblpar abgefragt werden.
Funktionen cam_getdblpar, cam_getintpar, cam_setintpar.
int cam_setdrlaccuracy( // Status
double [0.0,0.01]; // Bohrwerkzeugtoleranz (STD2)
);
Die Funktion cam_getdrlaccuracy setzt den Wert für die Toleranz des Bohrwerkzeugs im CAM-Prozessor. Der Funktionsrückgabewert ergibt sich zu Null bei erfolgreicher Einstellung des Toleranzwerts oder zu einem Wert ungleich Null, wenn die Einstellung nicht vorgenommen werden konnte.
Funktion cam_getdrlaccuracy.
int cam_setgenpltparam( // Status
int [0,1]; // Alle Lagen Modus:
// 0 = Alle Lagen Modus deaktiviert
// 1 = Alle Lagen Modus aktiviert
// 2 = Plotten alle angeschlossenen Pins/Vias
// 3 = Plotten alle Pins und angeschlossene Vias
// 4 = Plotten alle Vias und angeschlossene Pins
int [0,1]; // Umrandungsmodus:
// 0 = aus
// 1 = ein
int [0,1]; // Drehung:
// 0 = Drehung 0 Grad
// 1 = Drehung 90 Grad links
int [0,5]; // Spiegelung (CAM1)
int [0,1]; // Passermarkenmodus:
// 0 = aus
// 1 = ein
double [0.0,0.01]; // Plotgenauigkeit (STD2)
double; // Plot Nullpunkt X-Koordinate (STD2)
double; // Plot Nullpunkt Y-Koordinate (STD2)
);
Die Funktion cam_setgenpltparam setzt die allgemeinen Plotparameter im CAM-Prozessor. Der Rückgabewert der Funktion ist ungleich Null, wenn ungültige Parameter angegeben wurden.
int cam_setgerberapt( // Status
int [1,900]; // Blendentabellenindex
int; // Blende D-Code:
// 10..999 = gültige D-Codes
// (-1) = Blendendef. löschen
int [0,3]; // Blendentyp:
// 0 = Spezialblende
// 1 = Runde Blende
// 2 = Quadratische Blende
// 3 = Therm. Blende (Wärmefalle)
// 4 = Rechteckige Blende
int [0,2]; // Blendenzeichenmodus:
// 0 = Blende für alle Zeichenmodi
// 1 = Blende zum Blitzen
// 2 = Blende für Linienstrukturen
double [0.0,[; // Blendengröße (STD2)
double [0.0,[; // Blendengröße 2 (STD2)
);
Die Funktion cam_setgerberapt definiert eine Gerberblende mit den angegebenen Parametern unter dem angegebenen Index der aktuell im CAM-Prozessor geladenen Blendentabelle. Wird der Wert (-1) für den D-Code angegeben, dann wird die in der angegebenen Tabellenposition eingetragene Blendendefinition gelöscht. Bei der Definition einer Spezialblende wird die Blendengröße ignoriert. Der Funktionsrückgabewert ist ungleich Null bei fehlenden bzw. ungültigen Parametern.
int cam_setintpar( // Status
int [0,[; // Parametertyp/-nummer:
// [ 0 = bae_setcolor benutzen ]
// 1 = Wärmefallenbasiswinkel
// 2 = Warnmeldemodus:
// Bit 0: SCM-Änderungs-Warnungen unterdrücken
// Bit 1: im CAM-Prozessor nicht benutzt
// Bit 2: Variantenvergleichswarnungen unterdrücken
// [ 3 = Systemparameter - kein Schreibzugriff ]
// [ 4 = Systemparameter - kein Schreibzugriff ]
// [ 5 = Systemparameter - kein Schreibzugriff ]
// [ 6 = Systemparameter - kein Schreibzugriff ]
// 7 = Skalierungsmodus Generische Printausgabe:
// 0 = Fester Skalierungsfaktor
// 1 = Skalierung auf Papiergröße/span>
// 8 = Flag - Farbtabelle gesichert
// 9 = Airlinefarbmodus:
// 0 = Airlinefarbe benutzen
// 1 = Lagenfarbe benutzen
// 10 = Bitmapumrandungsfräsmodus:
// 0 = Keine Fräsung
// 1 = Gefüllte Umrandung fräsen
// 11 = Generischer Printer Zeichenmodus:
// 0 = Farbe setzen
// 1 = Farbe mischen
// 12 = Batchausgabeflag
// 13 = Flag - Optimierung Bohrwerkzeugtabelle
// 14 = Plotvorschaumodus:
// 0 = Keine Plotvorschau
// 1 = Plotterstiftbreite
int; // Parameterwert
);
Die Funktion
cam_setintpar dient dazu, Systemparameter vom Typ im
int im
CAM-Prozessor zu setzen. Der Funktionsrückgabewert ist Null bei erfolgreicher Parameterzuweisung oder (-1) im Fehlerfall. Die Werte von mit
cam_setintpar gesetzten Systemparametern können mit der Funktion
cam_getintpar abgefragt werden.
Funktions cam_getdblpar, cam_getintpar, cam_setdblpar.
void cam_setplotlaycode(
int; // Lagennummer (LAY1)
int; // HP-GL-Stiftnummer (CAM4)
);
Die Funktion cam_setplotlaycode selektiert bzw. setzt die angegebene lagenspezifische HP-GL-Plot-Stiftnummer für Multilayer-Plots. Die lagenspezifischen HP-GL-Plot-Stiftnummern werden auch bei der Erzeugung von Multilayer-Plots in anderen Formaten als HP-GL ausgewertet. Positive Stiftnummern kennzeichnen hierbei Lagen, die für die Ausgabe selektiert sind, während Lagen mit negativer Stiftnummer nicht geplottet werden.
Funktion cam_getplotlaycode.
int cam_setpowpltparam( // Status
double [0.0,0.01]; // Min. Distanz Wärmefalle-Bohrung (STD2)
double [0.0,0.01]; // Min. Distanz Isolation-Bohrung (STD2)
double [0.0,0.01]; // Toleranz Wärmefalle-Bohrung (STD2)
double [0.0,0.01]; // Toleranz Isolation-Bohrung (STD2)
double [0.0,0.02]; // Breite Vers.-lagenumrandung (STD2)
double [0.0,0.02]; // Breite Power Plane Isolation (STD2)
);
Die Funktion cam_setpowpltparam setzt die Versorgungslagen-Plotparameter im CAM-Prozessor. Der Rückgabewert der Funktion ist ungleich Null, wenn ungültige Parameter angegeben wurden.
int cam_setwidedraw( // Status
double ]0.0,[; // Breite (STD2)
);
Die Funktion cam_setwidedraw setzt die Breite, ab der im CAM-Prozessor Leiterbahnen auf dem Bildschirm in Flächendarstellung angezeigt werden. Es wird ein Wert ungleich Null zurückgegeben, wenn eine ungültige Breite spezifiziert wurde.
Die nachfolgend aufgelisteten Systemfunktionen sind dem Aufruftyp CV zugeordnet, d.h. diese Funktionen können im CAM-View-Modul aufgerufen werden:
int cv_aptgetcolor( // Farbwert (STD18)
int; // Blendenindex
int; // Blendenmodus
);
Die Funktion cv_aptgetcolor ermittelt den Farbwert, der in CAM-View zur Darstellung des angegebenen Gerber-Blendentyps benutzt wird.
Funktion cv_aptsetcolor.
int cv_aptsetcolor( // Status
int; // Blendenindex
int; // Blendenmodus
int [-33554432,33554431];
// Farbwert (STD18)
);
Die Funktion cv_aptsetcolor setzt den Farbwert, der in CAM-View zur Darstellung des angegebenen Gerber-Blendentyps benutzt werden soll. Der Funktionsrückgabewert ist Null bei erfolgreicher Zuweisung oder ungleich Null andernfalls.
Funktion cv_aptgetcolor.
int cv_deldataset( // Status
int [0,[; // Datensatz Index
);
Die Funktion cv_deldataset löscht den angebenen CAM-View-Datensatz aus dem Arbeitsbereich. Der Funktionsrückgabewert ist Null bei erfolgreicher Ausführung der Operation oder ungleich Null andernfalls.
Funktion cv_movedataset.
int cv_getdblpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = Eingabe X-Offset (STD2)
// 1 = Eingabe Y-Offset (STD2)
// 2 = Wärmefallenisolationsbreite (STD2)
// 3 = Breitendarstellung Startbreite (STD2)
// 4 = Länge einer Gerber Plottereinheit (STD2)
& double; // Rückgabe Parameterwert
);
Die Funktion
cv_getdblpar dient der Abfrage von mit
cv_setdblpar in
CAM-View gesetzten Parametern vom Typ
double. Der Funktionsrückgabewert ist Null bei erfolgreicher Abfrage oder (-1) im Fehlerfall.
Funktionen cv_getintpar, cv_setdblpar, cv_setintpar.
int cv_getintpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = Lagenabfragemodus für Gerber-Import:
// 0 = Lage für Line- und Flashstrukturen identisch
// 1 = Lagenabfrage für Line- und Flashstrukturen
// 1 = Gerber-Lagenabfrage:
// 0 = Lage nicht benutzt
// 1 = Lage benutzt
// 2 = Farbtabelle/Farbzuweisung:
// 0 = Blendenspezifische Farbtabelle/Farbzuweisung
// 1 = Lagenspezifische Farbtabelle/Farbzuweisung
// 3 = Flächenbilddarstellungsmodus:
// 0 = Füllflächenanzeige
// 1 = Umrandungsanzeige
// 4 = Via D-Code
// 5 = Wärmefallenbasiswinkel
// 6 = Gerber Optimierung:
// 0 = Koordinatenoptimierung aus
// 1 = Koordinatenoptimierung ein
// 7 = Gerber Kreisbogenmodus:
// 0 = Beliebige Gerber-Kreisbogenwinkel
// 1 = Maximal 90 Grad Gerber-Kreisbogenwinkel
// 8 = Eingabedatenspiegelungsmodus:
// 0 = Spiegeln aus
// 1 = Spiegeln an X-Achse
// 2 = Spiegeln an Y-Achse
// 3 = Spiegeln am Ursprung
// 9 = Nullzifferunterdrückung:
// 0 = Führende Nullen unterdrücken
// 1 = Nachfolgende Nullen unterdrücken
// 10 = Extended Gerber:
// 0 = Extended Gerber aus
// 1 = Extended Gerber ein
// 11 = Gerber Koordinatenangabe:
// 0 = Absolut-Koordinaten
// 1 = Inkremental-Koordinaten mit Reset
// 2 = Inkremental-Koordinaten ohne Reset
// 12 = Gerber Documentarlagenmodus:
// 0 = Flashes als Dokumentarlinie
// 1 = Flashes als Dokumentarfläche
& int; // Rückgabe Parameterwert
);
Die Funktion
cv_getintpar dient der Abfrage von mit
cv_setintpar in
CAM-View gesetzten Parametern vom Typ
int. Der Funktionsrückgabewert ist Null bei erfolgreicher Abfrage oder (-1) im Fehlerfall.
Funktionen cv_getdblpar, cv_setdblpar, cv_setintpar.
int cv_movedataset( // Status
int [0,[; // Datensatz Index
int; // Datensatz Spiegelungsflag
double; // Datensatz Verschiebung X-Versatz (STD2)
double; // Datensatz Verschiebung Y-Versatz (STD2)
);
Die Funktion cv_movedataset verschiebt (und spiegelt) den angebenen CAM-View-Datensatz um den spezifizierten Versatz in X- und Y-Richtung. Der Funktionsrückgabewert ist Null bei erfolgreicher Ausführung der Operation oder ungleich Null andernfalls.
Funktion cv_deldataset.
int cv_setdblpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = Eingabe X-Offset (STD2)
// 1 = Eingabe Y-Offset (STD2)
// 2 = Wärmefallenisolationsbreite (STD2)
// 3 = Breitendarstellung Startbreite (STD2)
// 4 = Länge einer Gerber Plottereinheit (STD2)
double; // Parameterwert
);
Die Funktion
cv_setdblpar dient dazu,
CAM-View-Systemparameter vom Typ
double zu setzen. Der Funktionsrückgabewert ist Null bei erfolgreicher Parameterzuweisung oder (-1) im Fehlerfall. Die Werte von mit
cv_setdblpar gesetzten Systemparametern können mit der Funktion
cv_getdblpar abgefragt werden.
Funktionen cv_getdblpar, cv_getintpar, cv_setintpar.
int cv_setintpar( // Status
int [0,[; // Parametertyp/-nummer:
// 0 = Lagenabfragemodus für Gerber-Import:
// 0 = Lage für Line- und Flashstrukturen identisch
// 1 = Lagenabfrage für Line- und Flashstrukturen
// 1 = Gerber-Lagenbenutzung:
// Parameter nur für Lesezugriff!
// 2 = Farbtabelle/Farbzuweisung:
// 0 = Blendenspezifische Farbtabelle/Farbzuweisung
// 1 = Lagenspezifische Farbtabelle/Farbzuweisung
// 3 = Flächenbilddarstellungsmodus:
// 0 = Füllflächenanzeige
// 1 = Umrandungsanzeige
// 4 = Via D-Code
// 6 = Gerber Optimierung:
// 0 = Koordinatenoptimierung aus
// 1 = Koordinatenoptimierung ein
// 7 = Gerber Kreisbogenmodus:
// 0 = Beliebige Gerber-Kreisbogenwinkel
// 1 = Maximal 90 Grad Gerber-Kreisbogenwinkel
// 8 = Eingabedatenspiegelungsmodus:
// 0 = Spiegeln aus
// 1 = Spiegeln an X-Achse
// 2 = Spiegeln an Y-Achse
// 3 = Spiegeln am Ursprung
// 9 = Nullzifferunterdrückung:
// 0 = Führende Nullen unterdrücken
// 1 = Nachfolgende Nullen unterdrücken
// 10 = Extended Gerber:
// 0 = Extended Gerber aus
// 1 = Extended Gerber ein
// 11 = Gerber Koordinatenangabe:
// 0 = Absolut-Koordinaten
// 1 = Inkremental-Koordinaten mit Reset
// 2 = Inkremental-Koordinaten ohne Reset
// 12 = Gerber Documentarlagenmodus:
// 0 = Flashes als Dokumentarlinie
// 1 = Flashes als Dokumentarfläche
int; // Parameterwert
);
Die Funktion
cv_setintpar dient dazu,
CAM-View-Systemparameter vom Typ
int zu setzen. Der Funktionsrückgabewert ist Null bei erfolgreicher Parameterzuweisung oder (-1) im Fehlerfall. Die Werte von mit
cv_setintpar gesetzten Systemparametern können mit der Funktion
cv_getintpar abgefragt werden.
Funktionen cv_getdblpar, cv_getintpar, cv_setdblpar.
In diesem Abschnitt werden (in alphabetischer Reihenfolge) die in der Bartels User Language definierten IC-Design-Systemfunktionen beschrieben. Beachten Sie bitte die Konventionen zur Funktionsbeschreibung in Anhang C.1.
Die nachfolgend aufgelisteten Systemfunktionen sind dem Aufruftyp ICD zugeordnet, d.h. diese Funktionen können im Chipeditor aufgerufen werden:
int icd_altpinlay( // Alternativpinlayer (ICD1)
);
Der Rückgabewert der Funktion icd_altpinlay entspricht der in der Setupdatei angegebenen Einstellung für den in der GDS-Dateneingabe verwendeten Alternativpinlayer.
int icd_cellconlay( // Zellverbindungslayer (ICD1)
);
Der Rückgabewert der Funktion icd_cellconlay entspricht der in der Setupdatei angegebenen Einstellung für den beim automatischen Routen zur Herstellung interner Zellverbindungen verwendeten Layer.
int icd_cellscan( // Zell DRC-Modus
);
Der Rückgabewert der Funktion icd_cellscan entspricht der in der Setupdatei angegebenen Einstellung für den DRC auf Zellebene (0 = kein DRC für Zellstrukturen, 1 = DRC für Zellstrukturen).
double icd_cellshr( // Zellsperrflächenoffset (STD2)
);
Der Rückgabewert der Funktion icd_cellshr entspricht der in der Setupdatei angegebenen Einstellung für die Flächenverkleinerung für die automatische Generierung von Zellsperrflächen aus der Zellumrandung.
string icd_ciflayname( // Lagenname
int [0,99]; // Lagennummer (ICD1)
);
Die Funktion icd_ciflayname ermittelt die in der Setupdatei angegebene CIF-Ausgabelagenbezeichnung für die angegebene Lage (ICD1).
double icd_cstdsiz( // Standardzellenhöhe (STD2)
);
Der Rückgabewert der Funktion icd_cstdsiz entspricht der in der Setupdatei angegebenen Einstellung für die vom automatischen Zellplatzierer zu verwendende Höhe von Standardzellen.
string icd_defelemname( // Default Layout Elementname
);
Der Rückgabewert der Funktion icd_defelemname entspricht dem in der Setupdatei eingestellten Defaultnamen für Chip Layoutplanelemente.
string icd_deflibname( // Default IC Design Bibliotheksname
);
Der Rückgabewert der Funktion icd_deflibname entspricht dem in der Setupdatei eingestellten Defaultnamen für die IC-Design-Bibliothek.
int icd_drcarc( // DRC Kreisbogenmodus
);
Der Rückgabewert der Funktion icd_drcarc entspricht der in der Setupdatei angegebenen Einstellung für den Design Rule Check (DRC) für Kreisbögen (0 = Kreisbögen erlaubt, 1 = keine Kreisbögen erlaubt).
double icd_drcgrid( // DRC Raster (STD2)
);
Der Rückgabewert der Funktion icd_drcgrid entspricht der in der Setupdatei angegebenen Einstellung für das durch den Design Rule Check (DRC) einzuhaltende Raster.
int icd_drclaymode( // Lage DRC-Modus
int [0,99]; // Lagennummer (ICD1)
);
Der Rückgabewert der Funktion icd_drclaymode entspricht der in der Setupdatei angegebenen Einstellung für den Design Rule Check (DRC) auf der angegebenen Lage (0 = kein DRC auf angegebener Lage, 1 = DRC auf angegebener Lage).
double icd_drcmaxpar( // DRC maximale Parallellänge (STD2)
);
Der Rückgabewert der Funktion icd_drcmaxpar entspricht der in der Setupdatei angegebenen Einstellung für die beim Design Rule Check (DRC) maximal zulässige Länge paralleler Strukturen.
double icd_drcminwidth( // DRC minimale Strukturgröße (STD2)
int [0,99]; // Lagennummer (ICD1)
);
Der Rückgabewert der Funktion icd_drcminwidth entspricht der in der Setupdatei angegebenen Einstellung für die beim Design Rule Check (DRC) minimal zulässige Strukturgröße für die angegebene Lage. Ein negativer Rückgabewert bedeutet, dass nur quadratische Strukturen mit exakt der angegebenen Größe erlaubt sind.
int icd_drcrect( // DRC rechte Winkel Modus
);
Der Rückgabewert der Funktion icd_drcrect entspricht der in der Setupdatei angegebenen Einstellung für den Design Rule Check (DRC) für rechte Winkel (0 = beliebige Winkel erlaubt, 1 = nur rechte Winkel erlaubt).
int icd_ecnlaymode( // Lage Connectivity-Modus
int [0,99]; // Lagennummer (ICD1)
);
Der Rückgabewert der Funktion icd_ecnlaymode entspricht der in der Setupdatei angegebenen Einstellung für die Connectivity auf der angegebenen Lage (0 = keine Connectivity auf der angegebenen Lage, 1 = Connectivity auf der angegebener Lage).
int icd_findconpart( // Status
string; // Bauteilname
& index I_CPART; // Rückgabe Netzlistenbauteil
);
Die Funktion icd_findconpart sucht den angegebenen Bauteilnamen in der Netzliste und gibt den Bauteileintrag gegebenenfalls in dem Bauteilrückgabeparameter zurück. Der Rückgabewert dieser Funktion ist ungleich Null, wenn das Bauteil nicht gefunden wurde.
Funktionen icd_findconpartpin, icd_findcontree.
int icd_findconpartpin( // Status
string; // Pinname
index I_CPART; // Netzlistenbauteil
& index I_CPIN; // Rückgabe Netzlistenbauteilpin
);
Die Funktion icd_findconpartpin sucht den Bauteilpin mit dem angegebenen Namen auf dem spezifizierten Netzlistenbauteil und gibt den Bauteilpineintrag gegebenenfalls in dem Bauteilpinrückgabeparameter zurück. Der Rückgabewert dieser Funktion ist ungleich Null, wenn der Bauteilpin nicht gefunden wurde.
Funktionen icd_findconpart, icd_findcontree.
int icd_findcontree( // Status
string; // Netzname
& index I_CNET; // Rückgabe Netzlisteneintrag
);
Die Funktion icd_findcontree sucht den angegebenen Netznamen in der Netzliste und gibt den Netzlisteneintrag ggf. in dem Netzrückgabeparameter zurück. Der Rückgabewert dieser Funktion ist ungleich Null, wenn das Netz nicht gefunden wurde.
Funktionen icd_findconpart, icd_findconpartpin.
int icd_getrulecnt( // Regelanzahl oder (-1) bei Fehler
int; // Object class code
int; // Object ident code (int oder Indextyp)
);
Mit der Funktion
icd_getrulecnt kann die Anzahl der an ein spezifisches Objekt zugewiesenen Regeln ermittelt werden. Die Abfrage kann für das aktuell geladene Element (Objektklasse 0 mit
int-Wert 0 für die Objektidentifikation), ein Element aus der Figurenliste des aktuell geladenen Elements (Objektklasse 1 mit gültigem Wert vom Typ index
I_FIGURE für die Objektidentifikation) oder ein Poolelement (Objektklasse 2 mit gültigem Wert vom Typ index
I_POOL für die Objektidentifikation) durchgeführt werden. Die von
icd_getrulecnt ermittelte (nicht-negative) objektspezifische Regelanzahl wird im Rückgabewert der Funktion übergeben und bestimmt den Wertebereich für den Regelnamenslistenindex in nachfolgenden Aufrufen der Funktion
icd_getrulename zur Ermittlung von Regelnamen für das entsprechende Objekt. Der Rückgabewert ergibt sich zu (-1), wenn ein Fehler aufgetreten ist. Im Fehlerfall kann die genaue Fehlerursache mit Hilfe der Funktion
icd_ruleerr ermittelt werden.
Funktionen icd_getrulename, icd_ruleerr, icd_rulefigatt, icd_rulefigdet, icd_ruleplanatt, icd_ruleplandet, icd_rulequery; Neuronales Regelsystem und Rule System Compiler.
int icd_getrulename( // Status
int; // Object class code
int; // Object ident code (int oder Indextyp)
int [0,[; // Regelnamenslistenindex
& string; // Regelname
);
Mit der Funktion
icd_getrulename können die Namen der an ein spezifisches Objekt zugewiesenen Regeln ermittelt werden. Die Abfrage kann für das aktuell geladene Element (Objektklasse 0 mit
int-Wert 0 für die Objektidentifikation), ein Element aus der Figurenliste des aktuell geladenen Elements (Objektklasse 1 mit gültigem Wert vom Typ index
I_FIGURE für die Objektidentifikation) oder ein Poolelement (Objektklasse 2 mit gültigem Wert vom Typ index
I_POOL für die Objektidentifikation) durchgeführt werden. Der Regelnamenslistenindex zur Auswahl der gewünschten Regel muss mindestens Null jedoch kleiner als die mit der Funktion
icd_getrulecnt abfragbare Anzahl objektspezifischer Regeln sein. Der ermittelte Regelname wird über den letzten Funktionsparameter an den Aufrufer zurückgegeben. Der Rückgabewert der Funktion
icd_getrulename ist Null, wenn die Funktion erfolgreich beendet wurde oder ungleich Null, wenn ein Fehler aufgetreten ist. Im Fehlerfall kann die genaue Fehlerursache mit Hilfe der Funktion
icd_ruleerr ermittelt werden.
Funktionen icd_getrulecnt, icd_ruleerr, icd_rulefigatt, icd_rulefigdet, icd_ruleplanatt, icd_ruleplandet, icd_rulequery; Neuronales Regelsystem und Rule System Compiler.
int icd_gettreeidx( // Status
int; // Netznummer
& index I_CNET; // Rückgabe Netzlisteneintrag
);
Die Funktion icd_gettreeidx sucht die angegebene Netznummer in der Netzliste und gibt den Netzlisteneintrag gegebenenfalls in dem Netzrückgabeparameter zurück. Der Rückgabewert ist ungleich Null, wenn die Netznummer nicht gefunden wurde.
int icd_grpdisplay( // Lagennummer (ICD1)
);
Der Rückgabewert der Funktion icd_grpdisplay entspricht der in der Setupdatei eingestellten Lage für die Gruppendarstellung.
int icd_lastfigelem( // Status
& index I_FIGURE; // Rückgabe Element
);
Die Funktion icd_lastfigelem ermittelt das zuletzt erzeugte bzw. modifizierte IC Design Element und übergibt den entsprechenden Index aus der Figurenliste im Rückgabeparameter. Der Rückgabewert der Funktion ist Null wenn ein derartiges Element existiert, oder ungleich Null andernfalls.
void icd_maccoords(
& double; // X-Position (STD2)
& double; // Y-Position (STD2)
& double; // Drehwinkel (STD3)
& double; // Skalierungsfaktor
& int; // Spiegelungsmodus (STD14)
);
Die Funktion icd_maccoords gibt in den Parametern die Platzierungsdaten für das aktuell bearbeitete Makro zurück. Ein Aufruf dieser Funktion ist nur innerhalb der Makroscanfunktion von icd_scanall, icd_scanfelem, icd_scanpool sinnvoll. An anderer Stelle werden Null-Defaultwerte zurückgegeben.
Funktionen icd_scanall, icd_scanfelem, icd_scanpool.
int icd_nrefsearch( // Status
string; // Bauteilname
& index I_FIGURE; // Rückgabe Element
);
Die Funktion icd_nrefsearch prüft, ob das angegebene Bauteil platziert ist und gibt gegebenenfalls das zugehörige Element zurück. Der Rückgabewert ist ungleich Null, wenn das Bauteil nicht gefunden wurde.
int icd_outlinelay( // Zellumrandungslage (ICD1)
);
Der Rückgabewert der Funktion icd_outlinelay entspricht der in der Setupdatei angegebenen Einstellung für die Zellumrandungslage.
double icd_pindist( // Pinaussparung (STD2)
);
Der Rückgabewert der Funktion icd_pindist entspricht der in der Setupdatei angegebenen Einstellung für die Aussparung von Pins bei der automatischen Generierung von Zellsperrflächen aus der Zellumrandung.
double icd_plcxgrid( // Platzierungsraster (STD2)
);
Der Rückgabewert der Funktion icd_plcxgrid entspricht der in der Setupdatei angegebenen Einstellung für das Platzierungsraster in X-Richtung bei der automatischen Zellplatzierung.
double icd_plcxoffset( // Platzierungsoffset (STD2)
);
Der Rückgabewert der Funktion icd_plcxoffset entspricht der in der Setupdatei angegebenen Einstellung für den Platzierungsoffset in X-Richtung bei der automatischen Zellplatzierung.
int icd_routcellcnt( // Anzahl Stromversorgungszellen
);
Der Rückgabewert der Funktion icd_routcellcnt entspricht der Anzahl der in der Setupdatei angegebenen Stromversorgungszellen.
string icd_routcellname( // Lagenname
int [0,[; // Zellindex
);
Die Funktion icd_routcellname ermittelt die in der Setupdatei unter dem angegebenen Index aufgeführte Stromversorgungszelle. Der übergebene Zellindex darf im Bereich 0 bis icd_routcellcnt()-1 liegen.
void icd_ruleerr(
& int; // Fehlercode
& string; // Fehlerstring
);
Die Funktion icd_ruleerr dient der Ermittlung des Regelsystemstatus, d.h. die Funktion icd_ruleerr kann zur genauen Bestimmung der Fehlerursache im Falle eines fehlerhaften Aufrufs einer Regelsystemfunktion verwendet werden.
Zur Bestimmung der Fehlerursache sind die durch icd_ruleerr zurückgegebenen Parameterwerte heranzuziehen. Der zurückgegebene Fehlerstring dient ggf. der Identifizierung des fehlerverursachenden Elements. Die möglichen Werte, die der Fehlercode durch die Ausführung eines Regelsystemfunktion annehmen kann, haben folgende Bedeutung:
Fehlercode Bedeutung 0 Regelsystem Operation/Funktion erfolgreich beendet 1 Regelsystem Hauptspeicher nicht ausreichend 2 Regelsystem Interner Fehler <e>3 Regelsystem Funktionsparameter ungültig 128 Regelsystem Datenbankdatei kann nicht angelegt werden 129 Regelsystem Datenbankdatei Lese-/Schreibfehler 130 Regelsystem Datenbankdatei von falschem Typ 131 Regelsystem Datenbankdateistruktur beschädigt 132 Regelsystem Datenbankdatei nicht gefunden 133 Regelsystem Datenbankfehler allgemein (Interner Fehler) 134 Regelsystem Regel <r>nicht Regeldatenbank gefunden135 Regelsystem Regel in falschem Format in Datenbank (Interner Fehler <e>)136 Regelsystem Objekt nicht gefunden 137 Regelsystem Objekt mehrfach definiert (Interner Fehler) 138 Regelsystem Inkompatible Definition der Variable <v>139 Regelsystem Regel <r>mit inkompatibler Compiler-Version übersetztDer Fehlerstring kann je nach Fehlerfall eine Regel
<r>, eine Variable<v>oder einen (internen) Fehlerstatus<e>bezeichnen. Datenbankdateifehler beziehen sich auf Probleme beim Zugriff auf die Regeldatenbankdateibrules.vdbim BAE-Programmverzeichnis. Interne Fehler weisen üblicherweise auf Implementierungslücken im Regelsystem hin und sollten in jedem Fall an Bartels gemeldet werden.
Funktionen icd_getrulecnt, icd_getrulename, icd_rulefigatt, icd_rulefigdet, icd_ruleplanatt, icd_ruleplandet, icd_rulequery; Neuronales Regelsystem und Rule System Compiler.
int icd_rulefigatt( // Status
index I_FIGURE; // Figurenlistenelement
void; // Regelname oder Regelnamensliste
);
Die Funktion icd_rulefigatt erlaubt die Zuweisung von Regeln an das mit dem ersten Funktionsparameter spezifizierte Figurenlistenelement des aktuell geladenes Elements. Der zweite Funktionsparameter erlaubt dabei sowohl die Spezifikation eines einzelnen Regelnamens (d.h. eines Wertes vom Typstring) als auch die Angabe einer ganzen Liste von Regelnamen (d.h. eines Arrays vom Typstring). Beachten Sie, dass vor der Zuweisung des angegebenen Regelsatzes zunächst alle bestehenden Regelzuweisungen an das spezifizierte Figurenlistenelement gelöscht werden. Der Rückgabewert der Funktion icd_rulefigatt ist Null, wenn die Funktion erfolgreich beendet wurde oder ungleich Null, wenn ein Fehler aufgetreten ist. Im Fehlerfall kann die genaue Fehlerursache mit Hilfe der Funktion icd_ruleerr ermittelt werden.
Funktionen icd_getrulecnt, icd_getrulename, icd_ruleerr, icd_rulefigdet, icd_ruleplanatt, icd_ruleplandet, icd_rulequery; Neuronales Regelsystem und Rule System Compiler.
int icd_rulefigdet( // Status
index I_FIGURE; // Figurenlistenelement
);
Die Funktion icd_rulefigdet löscht alle aktuell bestehenden Regelzuweisungen an das über den Funktionsparameter spezifizierte Figurenlistenelement des aktuell geladenen Elements. Der Rückgabewert der Funktion icd_rulefigdet ist Null, wenn die Funktion erfolgreich beendet wurde oder ungleich Null, wenn ein Fehler aufgetreten ist. Im Fehlerfall kann die genaue Fehlerursache mit Hilfe der Funktion icd_ruleerr ermittelt werden.
Funktionen icd_getrulecnt, icd_getrulename, icd_ruleerr, icd_rulefigatt, icd_ruleplanatt. icd_ruleplandet, icd_rulequery; Neuronales Regelsystem und Rule System Compiler.
int icd_ruleplanatt( // Status
void; // Regelname oder Regelnamensliste
);
Die Funktion icd_ruleplanatt erlaubt die Zuweisung von Regeln an das aktuell geladenes Elements. Der Funktionsparameter erlaubt dabei sowohl die Spezifikation eines einzelnen Regelnamens (d.h. eines Wertes vom Typstring) als auch die Angabe einer ganzen Liste von Regelnamen (d.h. eines Arrays vom Typstring). Beachten Sie, dass vor der Zuweisung des angegebenen Regelsatzes zunächst alle bestehenden Regelzuweisungen an das aktuelle Element gelöscht werden. Der Rückgabewert der Funktion icd_ruleplanatt ist Null, wenn die Funktion erfolgreich beendet wurde oder ungleich Null, wenn ein Fehler aufgetreten ist. Im Fehlerfall kann die genaue Fehlerursache mit Hilfe der Funktion icd_ruleerr ermittelt werden.
Funktionen icd_getrulecnt, icd_getrulename, icd_ruleerr, icd_rulefigatt, icd_rulefigdet, icd_ruleplandet, icd_rulequery; Neuronales Regelsystem und Rule System Compiler.
int icd_ruleplandet( // Status
);
Die Funktion icd_ruleplandet löscht alle aktuell bestehenden Regelzuweisungen an das aktuell geladene Element. Der Rückgabewert der Funktion icd_ruleplandet ist Null, wenn die Funktion erfolgreich beendet wurde oder ungleich Null, wenn ein Fehler aufgetreten ist. Im Fehlerfall kann die genaue Fehlerursache mit Hilfe der Funktion icd_ruleerr ermittelt werden.
Funktionen icd_getrulecnt, icd_getrulename, icd_ruleerr, icd_rulefigatt, icd_rulefigdet, icd_ruleplanatt, icd_rulequery; Neuronales Regelsystem und Rule System Compiler.
int icd_rulequery( // Trefferanzahl oder (-1) bei Fehler
int; // Object class code
int; // Object ident code (int oder Indextyp)
string; // Subjektname
string; // Prädikatname
string; // Abfragekommando
& void; // Abfrageergebnis
[] // Optionale Abfrageparameter
);
Die Funktion icd_rulequery führt eine Regelabfrage für ein spezifisches Objekt durch. Die Abfrage kann für das aktuell geladene Element (Objektklasse 0 mitint-Wert 0 für die Objektidentifikation), ein Element aus der Figurenliste des aktuell geladenen Elements (Objektklasse 1 mit gültigem Wert vom Typ index I_FIGURE für die Objektidentifikation) oder ein Poolelement (Objektklasse 2 mit gültigem Wert vom Typ index I_POOL für die Objektidentifikation) durchgeführt werden. Zur Durchführung der Abfrage müssen sowohl ein Regelsubjekt als auch ein Regelprädikat namentlich angegeben werden. Zusätzlich ist ein Abfragekommando zu spezifizieren. Das Abfragekommando kann Platzhalter für Wertvorgaben und einen Abfrageoperator enthalten. Folgende Abfrageoperatoren stehen zur Verfügung:
?dzur Abfrage von int-Werten?fzur Abfrage von double-Werten?szur Abfrage von string-WertenDem Abfrageoperator kann wahlweise einer der folgenden Selektionsoperatoren vorangestellt werden:
+zur Abfrage des Maximums aller gefundenen Werte -zur Abfrage des Minimums aller gefundenen Werte Standardmäßig, d.h. bei Auslassung des Selektionsoperators wird der
+-Operator verwendet. Der über die Abfrage gefundene Werteintrag wird im Funktionsparameter für das Abfrageergebnis zurückgegeben. Hierbei ist sicherzustellen, dass der Datentyp des Parameters für das Abfrageergebnis mit dem Abfragedatentyp übereinstimmt (intfür?d,doublefür?f,stringfür?s). Neben dem Abfrageoperator können folgende Platzhalter für Wertvorgaben im Abfragekommando spezifiziert werden:
%dzur Angabe von int-Werten%fzur Angabe von double-Werten%szur Angabe von string-WertenFür jeden im Abfragekommando spezifizierten Platzhalter für Wertvorgaben ist ein optionaler Abfrageparameter an die Funktion icd_rulequery zu übergeben. Die Reihenfolge dieser optionalen Parameter sowie deren Datentypen müssen mit den Spezifikationen im Abfragekommando übereinstimmen. Nach erfolgreicher Abarbeitung der Regelabfrage wird im Rückgabewert die (nicht-negative) Anzahl der gefundenen Einträge an den Aufrufer zurückgegeben. Der Rückgabewert ergibt sich zu (-1), wenn ein Fehler aufgetreten ist. Im Fehlerfall kann die genaue Fehlerursache mit Hilfe der Funktion icd_ruleerr ermittelt werden.
Sofern die Regelrule somerule { subject subj { pred := ("A", 2); pred := ("A", 4); pred := ("B", 1); pred := ("C", 3); pred := ("B", 6); pred := ("D", 5); pred := ("D", 6); pred := ("A", 3); } }definiert und dem aktuell geladenen Element zugewiesen ist, würde der icd_rulequery-Aufruf
hitcount = icd_rulequery(0,0,"subj","pred","%s ?d",intresult,"A") ;die
int-Variablehitcountauf 3 und dieint-Variableintresultauf 4 setzen, während der Aufrufhitcount = icd_rulequery(0,0,"subj","pred","-?s %d",strresult,6) ;die Variable
hitcountauf 2 und diestring-VariablestrresultaufBsetzt.
Funktionen icd_getrulecnt, icd_getrulename, icd_ruleerr, icd_rulefigatt, icd_rulefigdet, icd_ruleplanatt, icd_ruleplandet; Neuronales Regelsystem und Rule System Compiler.
int icd_scanall( // Scan Status
double; // X-Offset (STD2)
double; // Y-Offset (STD2)
double; // Drehwinkel (STD3)
int [0,1]; // Element in Arbeitsbereich Flag (STD10)
int [0,1]; // Connectivity Scan Flag:
// 0 = kein Scan
// 1 = Scan erlaubt
* int; // Makrofunktion
* int; // Polygonfunktion
* int; // Leiterbahnfunktion
* int; // Textfunktion
* int; // Lagencheckfunktion
* int; // Levelcheckfunktion
);
Die Funktion icd_scanall scannt alle auf dem aktuell geladenen Element platzierten Elemente über alle Hierarchiestufen. Dabei werden für alle gefundenen Elemente die referenzierten Anwenderfunktionen aufgerufen. Soll ein Funktionstyp nicht aufgerufen werden, so ist für den entsprechenden ParameterNULLanzugeben. Der Rückgabewert der Funktion icd_scanall ist ungleich Null, wenn ungültige Parameter angegeben wurden, oder wenn eine der referenzierten Anwenderfunktionen einen Fehler an die Funktion icd_scanall zurückgemeldet hat.Makrofunktion
int macrofuncname( index I_MACRO macro, // Makro Index index I_POOL pool, // Pool Element Index int macinws, // Makro in Arbeitsbereich Flag (STD10) string refname, // Makro Referenzname index I_LEVEL level, // Makro Level int stkcnt // Makro Stacktiefe ) { // Verarbeitungsprogramm : return(contscan); }Die Makroplatzierungsdaten können mit der Funktion icd_maccoords abgefragt werden. Der Rückgabewert dieser Funktion sollte gleich Null sein, wenn der Scan für dieses Makro nicht weitergeführt werden soll, (-1) wenn ein Fehler aufgetreten ist und 1 wenn weitergescannt werden soll.
Polygonfunktion
int polyfuncname( index I_POLY poly, // Polygondaten int layer, // Lage (ICD1) int polyinws, // Polygon in Arbeitsbereich Flag (STD10) int tree, // Netznummer oder (-1) index I_LEVEL level // Polygon Level ) { // Verarbeitungsprogramm : return(errstat); }Der Rückgabewert dieser Funktion sollte ungleich Null sein, wenn ein Fehler aufgetreten ist.
Leiterbahnfunktion
int pathfuncname( index I_LINE path, // Leiterbahndaten int layer, // Lage (ICD1) int pathinws, // Bahn in Arbeitsbereich Flag (STD10) index I_LEVEL level // Bahn Level ) { // Verarbeitungsprogramm : return(errstat); }Der Rückgabewert dieser Funktion sollte ungleich Null sein, wenn ein Fehler aufgetreten ist.
Textfunktion
int textfuncname( index I_TEXT text, // Textdaten double x, // X-Koordinate (STD2) double y, // Y-Koordinate (STD2) double angle, // Drehwinkel (STD3) int mirr, // Spiegelung (STD14) int layer, // Lage (ICD1) double size, // Text Größe (STD2) string textstr, // Textzeichenkette int textinws // Text in Arbeitsbereich Flag (STD10) ) { // Verarbeitungsprogramm : return(errstat); }Der Rückgabewert dieser Funktion sollte ungleich Null sein, wenn ein Fehler aufgetreten ist.
Lagencheckfunktion
int laycheckfuncname( int layer, // Lage (ICD1) int class // Elementklasse (STD1) ) { // Verarbeitungsprogramm : return(contscan); }Der Rückgabewert dieser Funktion sollte gleich Null sein, wenn der Scan bei der übergebenen Lage nicht weitergeführt werden soll, (-1) wenn ein Fehler aufgetreten ist und 1 wenn weitergescannt werden soll. Bei Beschränkung auf die interessierenden Lagen durch diese Funktion wird der Scanvorgang erheblich beschleunigt.
Levelcheckfunktion
int levcheckfuncname( index I_LEVEL level // Level ) { // Verarbeitungsprogramm : return(contscan); }Der Rückgabewert dieser Funktion sollte gleich Null sein, wenn der Scan bei dem übergebenen Level nicht weitergeführt werden soll, (-1) wenn ein Fehler aufgetreten ist und 1 wenn weitergescannt werden soll. Bei Beschränkung auf die interessierenden Levels durch diese Funktion wird der Scanvorgang erheblich beschleunigt.
Funktionen icd_maccoords, icd_scanfelem, icd_scanpool.
int icd_scanfelem( // Scan Status
index I_FIGURE; // Figurenelement
double; // X-Offset (STD2)
double; // Y-Offset (STD2)
double; // Drehwinkel (STD3)
int [0,1]; // Element in Arbeitsbereich Flag (STD10)
int [0,1]; // Connectivity Scan Flag:
// 0 = kein Scan
// 1 = Scan erlaubt
* int; // Makrofunktion
* int; // Polygonfunktion
* int; // Leiterbahnfunktion
* int; // Textfunktion
* int; // Lagencheckfunktion
* int; // Levelcheckfunktion
);
Die Funktion
icd_scanfelem scannt das angegebene Figurenelement über alle Hierarchiestufen. Dabei werden für alle gefundenen Elemente die referenzierten Anwenderfunktionen aufgerufen. Soll ein Funktionstyp nicht aufgerufen werden, so ist für den entsprechenden Parameter
NULL anzugeben (Definition der referenzierten Anwenderfunktionen siehe
icd_scanall). Der Rückgabewert der Funktion
icd_scanfelem ist ungleich Null, wenn ungültige Parameter angegeben wurden, oder wenn eine der referenzierten Anwenderfunktionen einen Fehler an die Funktion
icd_scanfelem zurückgemeldet hat.
Funktionen icd_maccoords, icd_scanall, icd_scanpool.
int icd_scanpool( // Scan Status
void; // Poolelement
double; // X-Offset (STD2)
double; // Y-Offset (STD2)
double; // Drehwinkel (STD3)
int [0,1]; // Element in Arbeitsbereich Flag (STD10)
int [0,1]; // Connectivity Scan Flag:
// 0 = kein Scan
// 1 = Scan erlaubt
* int; // Makrofunktion
* int; // Polygonfunktion
* int; // Leiterbahnfunktion
* int; // Textfunktion
* int; // Lagencheckfunktion
* int; // Levelcheckfunktion
);
Die Funktion
icd_scanpool scannt das angegebene Poolelement über alle Hierarchiestufen. Dabei werden für alle gefundenen Elemente die referenzierten Anwenderfunktionen aufgerufen. Soll ein Funktionstyp nicht aufgerufen werden, so ist für den entsprechenden Parameter
NULL anzugeben (Definition der referenzierten Anwenderfunktionen siehe
icd_scanall). Der Rückgabewert der Funktion
icd_scanpool ist ungleich Null, wenn ungültige Parameter angegeben wurden, oder wenn eine der referenzierten Anwenderfunktionen einen Fehler an die Funktion
icd_scanpool zurückgemeldet hat.
Funktionen icd_maccoords, icd_scanall, icd_scanfelem.
string icd_stdlayname( // Lagenname
int [0,99]; // Lagennummer (ICD1)
);
Die Funktion icd_stdlayname ermittelt die in der Setupdatei angegebene Lagenbezeichnung für die angegebene Lage (ICD1).
int icd_stdpinlay( // Standardpinlayer (ICD1)
);
Der Rückgabewert der Funktion icd_stdpinlay entspricht der in der Setupdatei angegebenen Einstellung für den in der GDS-Dateneingabe verwendeten Standardpinlayer.
int icd_vecttext( // Status
double; // X-Koordinate (STD2)
double; // Y-Koordinate (STD2)
double; // Drehwinkel (STD3)
int [0,1]; // Spiegelung (STD14)
double ]0.0,[; // Text Größe (STD2)
int [0,1]; // Physical Flag:
// 0 = Logical
// 1 = Physical
int [0,2]; // Lagenspiegelung:
// 0 = Spiegelung aus
// 1 = X-Spiegelung
// 2 = Y-Spiegelung
int [0,[; // Text Stil
string; // Text Zeichenkette
* int; // Vektorisierungsfunktion
);
Die Funktion icd_vecttext vektorisiert den übergebenen Text unter Verwendung des aktuell geladenen Zeichensatzes. Dazu wird für jedes Textsegment die übergebene Vektorisierungsfunktion aufgerufen. Der Rückgabewert dieser Funktion ist ungleich Null, wenn ungültige Parameter angegeben wurden oder die vom Benutzer definierte Vektorisierungsfunktion einen Wert ungleich Null zurückgegeben hat.Vektorisierungsfunktion
int vecfuncname( double x1, // X-Koordinate erster Punkt (STD2) double y1, // Y-Koordinate erster Punkt (STD2) double x2, // X-Koordinate zweiter Punkt (STD2) double y2 // Y-Koordinate zweiter Punkt (STD2) ) { // Verarbeitungsprogramm : return(errstat); }Der Rückgabewert dieser Funktion sollte ungleich Null sein, wenn ein Fehler aufgetreten ist.
Die nachfolgend aufgelisteten Systemfunktionen sind dem Aufruftyp CED zugeordnet, d.h. diese Funktionen können im Chipeditor aufgerufen werden:
int ced_asklayer( // Status
& int; // Lagenrückgabe (ICD1)
);
Die Funktion ced_asklayer aktiviert im Chipeditor ein Lagenauswahlmenü. Der Rückgabewert ist Null bei erfolgter Lagenwahl oder (-1) bei Wahl des Menüpunktes Abbruch.
int ced_delelem( // Status
& index I_FIGURE; // Element
);
Die Funktion ced_delelem löscht das übergebene Element aus der Elementliste. Der Rückgabewert ist Null bei erfolgter Löschung und (-1), wenn das übergebene Element ungültig ist. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
I_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
Funktion ced_drawelem.
void ced_drawelem(
index I_FIGURE; // Element
int [0, 4]; // Zeichenmodus (STD19)
);
Die Funktion ced_drawelem aktualisiert die Anzeige des angegebenen Elements unter Verwendung des spezifizierten Zeichenmodus.
Funktion ced_delelem.
int ced_elemangchg( // Status
& index I_FIGURE; // Element
double; // Neuer Winkel (STD3)
);
Die Funktion ced_elemangchg ändert den Drehwinkel des übergebenen Elements. Der Drehwinkel wird ausgehend vom Nullwinkel eingestellt, d.h. der vorhergehende Drehwinkel des Elements hat keinen Einfluss auf das Ergebnis. Die Winkelangabe wird als Bogenmaßwert interpretiert. Der Rückgabewert ist Null bei erfolgter Änderung, (-1) wenn das übergebene Element ungültig oder (-2) wenn es nicht drehbar ist. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
I_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int ced_elemfixchg( // Status
& index I_FIGURE; // Element
int [0,1]; // Neues fixiert Flag (STD11)
);
Die Funktion ced_elemfixchg ändert den Fixiert-Modus des übergebenen Elements. Der Rückgabewert ist Null bei erfolgter Änderung, (-1) wenn das übergebene Element ungültig oder (-2) wenn es nicht fixierbar ist. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
I_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int ced_elemgrpchg( // Status
index I_FIGURE; // Element
int [0,2]; // Neues Gruppenflag (STD13)
);
Die Funktion ced_elemgrpchg ändert die Gruppenzugehörigkeit des übergebenen Elements. Der Rückgabewert ist Null bei erfolgter Änderung, (-1) wenn das übergebene Element ungültig ist oder (-2) wenn es sich nicht um ein gruppenselektierbares Element handelt. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
int ced_elemlaychg( // Status
& index I_FIGURE; // Element
int; // Neue Lage (ICD1)
);
Die Funktion ced_elemlaychg ändert die Lagenzugehörigkeit des übergebenen Elements. Die Lage kann für Flächen, Leiterbahnen und Texte geändert werden. Der Rückgabewert ist Null bei erfolgter Änderung, (-1) wenn das übergebene Element ungültig oder (-2) wenn die Lage nicht änderbar ist. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
I_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int ced_elemmirrchg( // Status
& index I_FIGURE; // Element
int [0,2]; // Neuer Spiegelungsmodus (STD14|ICD3)
);
Die Funktion ced_elemmirrchg ändert den Spiegelungsmodus des übergebenen Elements. Der Spiegelungsmodus kann bei Flächen, Texten, benannten und unbenannten Referenzen geändert werden. Der Rückgabewert ist Null bei erfolgter Änderung, (-1) wenn das übergebene Element ungültig ist oder (-2) wenn es keinen Spiegelungsmodus besitzt. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
I_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int ced_elemposchg( // Status
& index I_FIGURE; // Element
double; // X-Position (STD2)
double; // Y-Position (STD2)
);
Die Funktion ced_elemposchg ändert die Position des übergebenen Elements. Bei Flächen/Leiterbahnen wird die Fläche/Leiterbahn so verschoben, dass der erste Punkt der Fläche/Leiterbahn auf der angegebenen Position zu liegen kommt. Der Rückgabewert ist Null bei erfolgter Änderung, (-1) wenn das übergebene Element ungültig oder (-2) wenn es nicht positionierbar ist. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
I_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int ced_elemsizechg( // Status
& index I_FIGURE; // Element
double; // Neue Größe (STD2)
);
Die Funktion ced_elemsizechg ändert die Größe des übergebenen Elements. Bei Leiterbahnen wird mit der Größe die Leiterbahnbreite spezifiziert. Bei benannten und unbenannten Referenzen gibt die Größe den Skalierungsfaktor an. Eine Größenänderung ist nur bei Texten, Leiterbahnen, benannten und unbenannten Bauteilreferenzen möglich. Der Rückgabewert ist Null bei erfolgter Änderung, (-1) wenn das übergebene Element ungültig oder (-2) wenn es nicht größenveränderbar ist. Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
I_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int ced_getlaydispmode( // Anzeigemodus (ICD9)
int; // Lage (ICD1)
);
Die Funktion ced_getlaydispmode ermittelt den Bildschirmanzeigemodus (ICD9) für die angegebene Lage.
int ced_getmincon( // Funktionstyp (ICD10)
);
Der Rückgabewert der Funktion ced_getmincon entspricht dem im Chipeditor aktuell eingestellten Wert des -Modus für die Airlineanzeige (ICD10).
void ced_getpathwidth(
& double; // Schmal Standardbreite (STD2)
& double; // Breit Standardbreite (STD2)
);
Die Funktion ced_getpathwidth gibt in den beiden Parametern die Werte der aktuell im Chipeditor eingestellten Standardbreiten für schmale und breite Leiterbahnen zurück.
int ced_getpickpreflay( // Vorzugslage (ICD1)
);
Der Rückgabewert der Funktion ced_getpickpreflay entspricht der Vorzugslage (ICD1) für Elementwahl im Chipeditor.
double ced_getwidedraw( // Breite (STD2)
);
Der Rückgabewert der Funktion ced_getwidedraw entspricht der Breite, ab der im Chipeditor Leiterbahnen auf dem Bildschirm in Flächendarstellung angezeigt werden.
int ced_groupselect( // Anzahl Änderungen oder (-1) bei Fehler
int [0,3]; // Element Selektionstyp:
// 0 = Selektion nach Elementtyp
// 1 = Selektion nach Lage
// 2 = Selektion nach Fixiertflag
// 3 = Selektion nach Sichtbarkeit
int; // Element Selektionswert entspr. Selektionstyp:
// 0 - Elementtyp (0|ICD5)
// 1 - Elementlage (ICD1)
// 2 - Element-Fixiertflag (STD11)
// 3 - Elementsichtbarkeit (0|1)
int [0,2]; // Neues Gruppenflag (STD13)
);
Die Funktion ced_groupselect ändert die Gruppenzugehörigkeit aller Element des spezifizierten Typs bzw. mit der spezifizierten Eigenschaft. Der Rückgabewert entspricht der Anzahl der durchgeführtem Änderungen oder dem Wert (-1) bei fehlerhaften bzw. inkompatiblen Parameterangaben. Der Selektionswert Null bei der Selektion nach dem Elementtyp kann dazu benutzt werden, Elemente beliebigen Typs auszuwählen.
Interne IC-Design-Elementtypen wie z.B. die Standardvia-Definition(en) sind von der Gruppen(de)selektion mit ced_groupselect ausgenommen, um ein versehentliches Löschen bzw. Ändern derartiger Elemente durch die anschließende Anwendung anderer Gruppenfunktionen zu verhindern.
int ced_highlnet( // Status
int [0,[; // Netznummer
int [0,1]; // Highlightmodus (0 = aus, 1 = ein)
);
Die Funktion ced_highlnet setzt den Highlightmodus des Netzes mit der übergebenen Netznummer. Es wird ein Wert ungleich Null zurückgegeben, wenn ein ungültiger Highlightmodus oder eine ungültige Netznummer angegeben wurde.
int ced_layergrpchg( // Anzahl Elemente
int; // Lagennummer (ICD1)
int [0,2]; // Neues Gruppenflag (STD13)
);
Die Funktion ced_layergrpchg ändert die Gruppenzugehörigkeit aller Elemente, die auf der angegebenen Lage platziert sind. Der Rückgabewert ist die Anzahl der (de)selektierten Elemente oder (-1) bei Fehler.
int ced_partaltmacro( // Status
string; // Bauteilname
string; // Neuer Zellen-Bibiotheksteilname
);
Die Funktion ced_partaltmacro ändert den Zellentyp des angegebenen Bauteiles. Ein Rückgabewert von Null zeigt eine erfolgreiche Änderung an. Bei ungültigen Eingabedaten wird (-1) zurückgegeben, (-2) wenn der neue Zellentyp nicht alle für dieses Bauteil in der Netzliste verwendeten Pins enthält (Zellenänderung wird trotzdem durchgeführt), (-3) wenn das Bauteil nicht in der Netzliste vorhanden ist, (-4) wenn der neue Zellentyp für dieses Bauteil nicht erlaubt ist, (-5) wenn der neue Zellentyp nicht ladbar ist, (-6) wenn die Zellendaten nicht in die Jobdatenbank kopiert werden konnten und (-7) wenn versucht wurde, in einem Programmlauf einen Bauteilzellentyp mehrfach umzuändern (z.B.ainbund anschließendbinc). Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion sollte nicht innerhalb von I_CPART-Index-Schleifen aufgerufen werden, da die vor dem Aufruf der Funktion belegten I_CPART-Indexvariablen anschließend ungültig sind.
int ced_partnamechg( // Status
string; // Alter Bauteilname
string; // Neuer Bauteilname
);
Die Funktion ced_partnamechg ändert den Namen des angegebenen Bauteiles in der Netzliste. Ein Rückgabewert von Null zeigt eine erfolgreiche Änderung an. Bei ungültigen Eingabedaten wird (-1) zurückgegeben, (-2) wenn das Bauteil nicht platziert ist, (-3) wenn das Bauteil nicht in der Netzliste vorhanden ist, (-4) wenn der neue Name schon definiert ist und (-5) wenn versucht wurde, in einem Programmlauf ein Bauteil mehrfach umzubenennen (z.B.ainbund anschließendbinc). Die Änderung kann nach dem Programmlauf mit wieder rückgängig gemacht werden.
Diese Funktion verändert die Netzliste und erfordert daher einen anschließenden -Lauf. Die Funktion sollte auch nicht innerhalb von I_CPART-Index-Schleifen aufgerufen werden, da die vor dem Aufruf der Funktion belegten I_CPART-Indexvariablen anschließend ungültig sind.
int ced_pickelem( // Status
& index I_FIGURE; // Rückgabe Element
int [1,8]; // Elementtyp (ICD5 außer 6)
);
Mit der Funktion ced_pickelem kann vom Benutzer mit der Maus ein Element des gewünschten übergebenen Typs selektiert werden. Der Rückgabewert ist Null bei erfolgter Selektion und (-1) wenn an der Pickposition kein Element des gewünschten Typs gefunden wurde.
int ced_setlaydispmode( // Status
int [0,99]; // Lage (ICD1)
int [0,127]; // Anzeigemodus (ICD9)
);
Die Funktion ced_setlaydispmode setzt den Bildschirmanzeigemodus für die angegebenen Lage. Der Rückgabewert ist ungleich Null, wenn der Anzeigemodus nicht gesetzt werden konnte.
int ced_setmincon( // Status
int [0,8]; // Funktionstyp (ICD10)
);
Die Funktion ced_setmincon setzt den -Modus für die Airlineanzeige im Chipeditor. Es wird ein Wert ungleich Null zurückgegeben, wenn ein ungültiger Modus angegeben wurde.
int ced_setpathwidth( // Status
double ]0.0,[; // Schmal Standardbreite (STD2)
double ]0.0,[; // Breit Standardbreite (STD2)
);
Die Funktion ced_setpathwidth setzt die Standardbreiten für schmale und breite Leiterbahnen im Chipeditor. Es wird ein Wert ungleich Null zurückgegeben, wenn ungültige Breiten spezifiziert wurden.
int ced_setpickpreflay( // Status
int; // Lage (ICD1)
);
Die Funktion ced_setpickpreflay setzt die Vorzugslage für Elementwahl im Chipeditor. Es wird ein Wert ungleich Null zurückgegeben, wenn keine gültige Lage angegeben wurde.
int ced_setwidedraw( // Status
double ]0.0,[; // Breite (STD2)
);
Die Funktion ced_setwidedraw setzt die Breite, ab der im Chipeditor Leiterbahnen auf dem Bildschirm in Flächendarstellung angezeigt werden. Es wird ein Wert ungleich Null zurückgegeben, wenn eine ungültige Breite spezifiziert wurde.
int ced_storepart( // Status
string; // Bauteilname
string; // Bauteil Bibiotheksteilname
double; // X-Koordinate (STD2)
double; // Y-Koordinate (STD2)
double; // Drehwinkel (STD3)
double; // Skalierungsfaktor
int [0,1]; // Spiegelungsmodus (STD14)
);
Die Funktion ced_storepart platziert ein Bauteil mit den angegebenen Parametern auf dem gegenwärtig geladenen Chip Layoutelement. Wird eine Leerzeichenkette für den Bauteilnamen übergeben, so wird das nächste unplatzierte Bauteil der Netzliste verwendet. Der Rückgabewert ist gleich Null, wenn das Bauteil erfolgreich platziert wurde, (-1) bei ungültigen Daten, (-2) wenn alle Bauteile bereits platziert sind, (-3) wenn das Bauteil schon platziert ist, (-4) wenn es nicht ladbar ist, (-5) wenn die Bauteilpins nicht mit der Netzliste übereinstimmen und (-6) wenn die Bauteildaten nicht in die Jobdatenbank kopiert werden konnten.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
I_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int ced_storepath( // Status
int [0,99]; // Lage (ICD1)
double ]0.0,[; // Bahnbreite (STD2)
);
Die Funktion ced_storepath erzeugt aus der internen Punktliste unter Verwendung der angegebenen Parameter eine Leiterbahn auf dem gegenwärtig geladenen Chip Layoutelement. Der Rückgabewert ist gleich Null, wenn die Bahn erfolgreich platziert wurde, (-1) wenn kein gültiges Element geladen ist, (-2) bei ungültigen Parametern, oder (-3) wenn die Punktliste ungültig ist.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
I_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int ced_storepoly( // Status
int; // Lage (ICD1)
int [1,4]; // Polygontyp (ICD4)
int [0,2]; // Spiegelungsmodus (ICD3)
);
Die Funktion ced_storepoly generiert aus der mit bae_storepoint erzeugten internen Punktliste unter Verwendung der angegebenen Parameter eine Fläche auf dem gegenwärtig geladenen IC-Layoutelement. Der Rückgabewert ist gleich Null, wenn die Fläche erfolgreich platziert wurde, (-1) wenn kein gültiges Element geladen ist, (-2) bei ungültigen Parametern, oder (-3) wenn die Punktliste für den gegebenen Flächentyp ungültig ist.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
I_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
int ced_storetext( // Status
string; // Textzeichenkette
double; // X-Koordinate (STD2)
double; // Y-Koordinate (STD2)
double; // Drehwinkel (STD3)
double ]0.0,[; // Text Größe (STD2)
int; // Lage (ICD1)
int [0,1]; // Spiegelungsmodus (STD14)
);
Die Funktion ced_storetext platziert einen Text mit den angegebenen Parametern auf dem gegenwärtig geladenen Chip Layoutelement. Der Rückgabewert ist ungleich Null, wenn ungültige Daten übergeben wurden.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
I_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden. Es können maximal 40 Zeichen der übergebenen Textzeichenkette gespeichert werden. Bei Übergabe längerer Zeichenketten gibt die Funktionen den Fehlerstatus zur Kennzeichnung ungültiger Parameter zurück.
int ced_storeuref( // Status
string; // Referenz Bibiotheksteilname
double; // X-Koordinate (STD2)
double; // Y-Koordinate (STD2)
double; // Drehwinkel (STD3)
double; // Skalierungsfaktor
int [0,1]; // Spiegelung (STD14) (für Subbauteile)
);
Die Funktion ced_storeuref platziert eine namenlose Referenz mit den angegebenen Parametern auf dem gegenwärtig geladenen Layoutelement. Namenlose Referenzen sind die Vias auf Chip Layoutebene und die Subbauteile auf Bauteilebene. Spiegelung, Skalierung und Drehwinkel werden für Vias ignoriert. Der Rückgabewert ist gleich Null, wenn die Referenz erfolgreich platziert wurde, (-1) bei ungültigen Daten, (-2) wenn sie nicht ladbar ist und (-3) wenn die Referenzdaten nicht in die Jobdatenbank kopiert werden konnten.
Diese Funktion ändert die aktuelle Figurenliste und sollte daher mit Vorsicht in
forall-Schleifen zur Iteration von
I_FIGURE-Indexvariablen verwendet werden, um undefinierte Ergebnisse beim Zugriff auf die Figurenliste bzw. Endlosschleifen zu vermeiden.
| Bartels :: Bartels AutoEngineer :: BAE Dokumentation :: User Language Programmierhandbuch :: Systemfunktionen |
Systemfunktionen
© 1985-2025 Oliver Bartels F+E