home *** CD-ROM | disk | FTP | other *** search
- /**********************************************************************/
- #include "std.h"
- #include "megatyp.h"
- #include "megacad.h"
-
- # define MAXPOLYPTS 30 // maximale Anzahl der Polylinienpunkte
- /********************************************************************/
- static void SetDlg(
- t_dlgdta *t,
- char *text,
- uchar typ,
- void *val)
- {
- strcpy(&t->text[0],text);
- t->type = typ;
- t->val = val;
- return;
- }
- /********************************************************************/
- short main(
- char *filename,
- char *args )
- {
- short mret,dret;
- double px,py,mpd, *pmpd;
- t_dlgdta tg[6]; // Array der Dialogfeldbeschreiber
- t_polyln poly; // Polylinienstruktur
- t_polypt polypt[MAXPOLYPTS]; // Platz für 30 Polylinepunkte
-
- // zuweisen des Pointers für die Polylinepunkte
- poly.ppt = polypt;
-
- // px, py und num vorinitialisieren
- px = 0.0;
- py = 0.0;
- poly.num = 0;
-
- // setzen der Dialogfelder
- SetDlg(&tg[0],"Lücke",DLG_BUT,NULL);
- SetDlg(&tg[1],"Linie",DLG_BUT,NULL);
- SetDlg(&tg[2],"Kreisbg.",DLG_BUT,NULL);
- SetDlg(&tg[3],"X - Wert",DLG_LEN,&px);
- SetDlg(&tg[4],"Y - Wert",DLG_LEN,&py);
- SetDlg(&tg[5],"mpd :",DLG_LEN,&mpd);
-
- mret = 1;
- while(mret != 0)
- {
- mret = DlgInput(5,"Polylinie",tg);
-
- if(mret == 1) // Lücke, mpd auf NULL setzen
- pmpd = NULL;
- else
- pmpd = &mpd;
- if(mret == 2) // Linie, mpd auf 0.0 setzen
- mpd = 0.0;
- if(mret == 3) // Kreisbogen, Scheitelpunkt abfragen
- {
- // Dialog mit nur einem Feld um mpd einzugeben
- dret = DlgInput(1,"Scheitelpunkt angeben",&tg[5]);
- if(dret == 0) // Abbruch, neue Eingabe
- continue;
- }
-
- if(mret) // nicht zurück gewählt, Polylinepunkt hinzufügen
- {
- dret = AddPolylnPt(&poly,pmpd,px,py);
- if(dret == 0) // maximale Anzahl von POLYLN_MAX überschritten
- { // darf in diesem Beispiel nicht passieren.
- Message("Anzahl von POLYLN_MAX übershritten !","",
- NULL,NULL,"OK",3);
- mret = 0;
- }
- else
- {
- if(poly.num == MAXPOLYPTS) // max Anzahl Punkte erreicht
- {
- Message("Die Punktliste ist voll!",
- "mehr Punkte können nicht eingegeben werden !",
- NULL,NULL,"OK",3);
- mret = 0;
- }
- }
- }
- }
- CreateEntity(E_POLYLN,NULL,&poly); // Polylinienelement erzeugen
-
- savecount(); // Element in UNDO /REDO Liste eintragen
-
- return(0);
- }
- /********************************************************************/
-