📄 highap.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 + -