home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2001 December / pcwk12201b.iso / Reklamy / CAD-Projekt / MegaCAD-4_5 / CC / DIMENS.C_ / DIMENS.C
C/C++ Source or Header  |  1995-03-21  |  2KB  |  60 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.     // set function text and mouse help
  16.     SetFuncText("dimensioning line horizontal");
  17.     MouseHelp("select line","again",HLP_INV(RED,WHITE,0));
  18.  
  19.     // select element to dimens, only lines are detected
  20.     while(ClickEntity((1<<E_LINE),&dim.x1,&ent,NULL,0))
  21.     {
  22.         // start point of line = first dim. point
  23.         dim.x1 = ent.data.lin.x1;
  24.         // ev. rotate start point dim. shall always be
  25.         // on top of the line
  26.         y = ent.data.lin.y2;
  27.         if(ent.data.lin.y1 > ent.data.lin.y2)
  28.             y = ent.data.lin.y1;
  29.         dim.y1 = y;
  30.  
  31.         // end point of line = second dim. point
  32.         // but modified, only hor. dimensioning
  33.         dim.x2 = ent.data.lin.x2;
  34.         dim.y2 = y;
  35.  
  36.         // set the points for the dim. text
  37.         // the help line is simply pos. 5 units higher
  38.         dim.x3 = dim.x1;
  39.         dim.y3 = dim.y1 + 5;
  40.         dim.x4 = dim.x2;
  41.         dim.y4 = dim.y1 + 5;
  42.         // calculate the dim. value
  43.         dim.value = fabs(dim.x2 - dim.x1);
  44.  
  45.         // transfer the value into the text buffer
  46.         dim.str = str;
  47.         PrintDimVal(dim.value,str,"","");
  48.         // get all dim. values from MegaCAD
  49.         // calculate the text box and place the
  50.         // dim. text wu'ith the preinstalled values
  51.         // for horizontal dim.
  52.         GetDimVal(E_H_DIM,7,&dim);
  53.         // save element
  54.         CreateEntity(E_H_DIM,NULL,&dim);
  55.         // ... and insert into the UNDO / REDO list
  56.         savecount();
  57.     }
  58. }
  59. /**********************************************************************/
  60.