home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 15 / CD_ASCQ_15_070894.iso / vrac / may94cad.zip / LISTCMPX.C < prev    next >
C/C++ Source or Header  |  1994-04-25  |  2KB  |  80 lines

  1. /* LISTCMPX.C  (c)1994, Anthony Hotchkiss */
  2.  
  3. #include <stdio.h>
  4. #include <string.h>
  5. #include "adslib.h"
  6. #include "adxlib.h"
  7. #define SEQEND "SEQEND"
  8. /* Complex entity listing example */
  9.  
  10. int listcmpx (void)
  11. {
  12.    struct resbuf *elist;
  13.    ads_name ename, en1;
  14.    ads_point pt;
  15.    char fn[132];
  16.    FILE *f1;
  17.  
  18.    ads_getstring(0, "\nEnter the txt file name: ", fn);
  19.    strcat(fn, ".txt");
  20.    if (ads_entsel("\nSelect block reference: ", ename, pt) != RTNORM)
  21.       {
  22.          ads_alert("No entity selected...");
  23.          return RTERROR;
  24.       }
  25.    ads_redraw(ename, 3);
  26.    elist = ads_entget(ename);
  27.    f1 = fopen(fn, "w");
  28.    adx_fprint_dxf(f1, elist);   
  29.    ads_name_set(ename, en1);
  30.   /*  while (adx_assoc(-2, elist) == 0)  */
  31.    while (strcmp (adx_assoc(0, elist)->resval.rstring, SEQEND))
  32.       {
  33.          if (ads_entnext(ename, ename) != RTNORM)
  34.             {
  35.                ads_alert("entnext failed...");
  36.                fclose(f1);
  37.                return RTERROR;
  38.             }
  39.          if (elist != NULL) 
  40.             ads_relrb(elist);
  41.          elist = ads_entget(ename);
  42.          adx_fprint_dxf(f1, elist);
  43.       }
  44.    if (elist != NULL) 
  45.       ads_relrb(elist);
  46.    fclose(f1);
  47.    if (ads_redraw(en1, 1) != RTNORM)
  48.       return RTERROR;
  49.    ads_retvoid();
  50. } /* listcmpx */
  51. /*FUNCLOAD -- Define the external functions */
  52. void funcload(void)
  53. {
  54.    ads_defun("C:LISTCMPX", 1);
  55. }
  56.  
  57. /*DOFUN -- Execute the external functions */
  58. void dofun()
  59. {
  60.    listcmpx();
  61. }
  62. void main(int argc, char **argv)
  63. {
  64.     ads_init(argc, argv);    /* Open communication with AutoLISP */
  65.     for ( ;; ) 
  66.       {                      /* Request/Result loop */
  67.         switch(ads_link(RSRSLT)) 
  68.         {
  69.         case RQXLOAD:         /* Load & define functions */
  70.             funcload();
  71.             break;
  72.         case RQSUBR:         /* Handle external function requests */
  73.             dofun();
  74.             break;
  75.         }
  76.     }
  77. }/* main */
  78.  
  79.  
  80.