home *** CD-ROM | disk | FTP | other *** search
/ Enter 1998 December / ENTER12_1.iso / Dema / Cad_Proj.ekt / Mega48t / CC / DIMENS.C_ / DIMENS.C
Encoding:
C/C++ Source or Header  |  1997-11-06  |  2.3 KB  |  63 lines

  1. /**********************************************************************/
  2. #include "std.h"
  3. #include "megatyp.h"
  4. #include "megacad.h"
  5. /**********************************************************************/
  6. short main(
  7.         char *filename,
  8.         char *args )
  9. {
  10.     double      y;
  11.     t_entity    ent;
  12.     t_dimension dim;
  13.     char        str[255];
  14.  
  15.     // Funtionstext und Maushilfe setzen
  16.     SetFuncText("Linie bemassen horizontal");
  17.     MouseHelp("Linie anklicken","Neu ansetzen",HLP_INV(RED,WHITE,0));
  18.  
  19.     // Element zum Bemassen anklicken hier werden nur Linien erkannt
  20.     // gesperrte Elemente können nicht selektiert werden
  21.     while(ClickEntity((1<<E_LINE),&dim.x1,&ent,NULL,0,FALSE))
  22.     {
  23.         // Linienstartpunkt = erster Bemassungspunkt
  24.         dim.x1 = ent.data.lin.x1;
  25.         // Startpunkt eventuell umdrehen, damit die Bemassung immer
  26.         // über der Linie sein soll
  27.         //y = (ent.data.lin.y1 > ent.data.lin.y2) ? ent.data.lin.y2 : ent.data.lin.y1;
  28.         y = ent.data.lin.y2;
  29.         if(ent.data.lin.y1 > ent.data.lin.y2)
  30.             y = ent.data.lin.y1;
  31.         dim.y1 = y;
  32.  
  33.         // Linienendpunkt = zweiter Bemassungspunkt
  34.         // aber modifiziert da hier nur horizontale Bemassung
  35.         dim.x2 = ent.data.lin.x2;
  36.         dim.y2 = y;
  37.  
  38.         // jetzt die Punkte für die Bemassungslinie setzen
  39.         // die Linie wird einfach um 5 Einheiten hochgesetzt
  40.         dim.x3 = dim.x1;
  41.         dim.y3 = dim.y1 + 5;
  42.         dim.x4 = dim.x2;
  43.         dim.y4 = dim.y1 + 5;
  44.         // jetzt den Wert berechnen
  45.         dim.value = fabs(dim.x2 - dim.x1);
  46.  
  47.         // .. und jetzt den Wert in den Textpuffer einräumen
  48.         // die Toleranztexte bleiben hier leer
  49.         dim.str = str;
  50.         PrintDimVal(dim.value,str,"","");
  51.         // jetzt die alle Bemassungswerte von MegaCAD holen
  52.         // sowie die Textbox berechenen und den Bemassungstext
  53.         // entsprechend der voreingestellten Werte plazieren
  54.         // für horizontal Bemassung
  55.         GetDimVal(E_H_DIM,7,&dim);
  56.         // Element speichern
  57.         CreateEntity(E_H_DIM,NULL,&dim);
  58.         // ... und in die UNDO / REDO Liste eintragen
  59.         savecount();
  60.     }
  61. }
  62. /**********************************************************************/
  63.