⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 highap.mc

📁 microstation MDL入门指导手册!
💻 MC
字号:
/*-------------------------------------------------------------------------------+
|    Copyright (C) 199l Mach Dinh-Vu,All aights Reserved                         |
|                                                                                |
|    highap.mc  -    Highlight the active points in the file。                   |
| UpgradeToV8 : MicroStationFan    2006/06                                       |
+-------------------------------------------------------------------------------*/
#include <mdl.h>
#include <userfnc.h>
#include <mselemen.fdf>
#include <msmisc.fdf>
#include <msoutput.fdf>
#include <msparse.fdf>
#include <msscan.fdf>
#include <msvec.fdf>
#include <msview.fdf>
#define  SCANVIEW  0  // view 1

Private double  txtHeight = 0;

/*-------------------------------------------------------------------------------+
|         name    highlight                                                      |
+-------------------------------------------------------------------------------*/
Private int highlight ( MSElementUnion  *el )
{
   Dpoint3d    pnts[2];
   int         numVerts;
   MSElement   circle;

   if (mdlElement_getType(el) != LINE_ELM)
      return (MODIFY_STATUS_NOCHANGE);
   mdlLinear_extract (pnts, &numVerts, el, MASTERFILE);
   if (!mdlVec_pointEqual (&pnts[0], &pnts[1]))
      mdlEllipse_create (&circle, NULL, &pnts[0], txtHeight, txtHeight, NULL, NULL);
      mdlElement_display (&circle, HILITE);
      return (MODIFY_STATUS_NOCHANGE);
}
/*-------------------------------------------------------------------------------+
|   name             handleUpdate                                                |
+-------------------------------------------------------------------------------*/
Private int handleUpdate
(
int                    preUpdalte,
int                    eraseMode,
DgnModelRefListP       modelRefList,
int                    numberRegions,
Asynch_update_view     regions [],
BSIRect               *coverLists [],
int                    numCovers [],
MSDisplayDescr         *displayDescr []
)
{
   ULong           elemAddr[50], eofPos, filePos;
   int             scanWords, status, i, numAddr;
   ExtScanlist     scanList;

   mdlScan_initScanlist (&scanList);
   mdlOutput_message ( "Scanning file  ....  ");
   scanList.scantype       = ELEMTYPE | ONEELEM;
   scanList.extendedType   = FILEPOS;
   scanList.typmask[0]     = TMSK0_LINE;
   mdlScan_viewRange (&scanList, SCANVIEW, MASTERFILE);
   eofPos  = mdlElement_getFilePos (FILEPOS_EOF, NULL);
   filePos = 0L;            /* start seacrh from top of file */
   mdlScan_initialize (MASTERFILE, &scanList);
   /* loop through all line elements in file */
   do{
      scanWords = sizeof(elemAddr) / sizeof(short);
      status    = mdlScan_file (elemAddr, &scanWords,
                                sizeof (elemAddr), &filePos);
      numAddr   = scanWords / sizeof (short);
      for (i=0; i < numAddr; i++)
      {
         if (elemAddr[i] >= eofPos)  break;
         mdlModify_elementSingle ( 0, elemAddr[i],
                                  MODIFY_REQUEST_NOHEADERS,  MODIFY_ORIG,
                                  highlight, NULL, 0L);
      }
   } while (status == BUFF_FULL);
   mdlOutput_message ( "" );
   return 0;
}
/*-------------------------------------------------------------------------------+
| name                  main                                                     |
+-------------------------------------------------------------------------------*/
Private void main (void)
{
   mdlParams_getActive ((double *)&txtHeight, ACTIVEPARAM_TEXTHEIGHT);
   mdlView_setFunction (UPDATE_POST, handleUpdate);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -