📄 orcell.mc
字号:
/*----------------------------------------------------------------------------+
| copyright (c) 1991 Mach Dinh-Vu, All Rights Reserved |
| Create an ORPHAN cell from existing elements in the design file. |
| CELL ORPHAN |
| UpgradeToV8 : MicroStationFan 2006/05 |
+----------------------------------------------------------------------------*/
#include <mdl.h>
#include <msrmgr.h>
#include <mscell.fdf>
#include <mscnv.fdf>
#include <mselemen.fdf>
#include <mselmdsc.fdf>
#include <mslocate.fdf>
#include <msmisc.fdf>
#include <msoutput.fdf>
#include <msparse.fdf>
#include <msstate.fdf>
#include "orcell.h"
#define CELLNAME L"ORPHAN"
MSElementDescr *elmDP;
MSElementUnion el;
ULong filePos;
/*----------------------------------------------------------------------------+
| name main |
+----------------------------------------------------------------------------*/
Private void main (void)
{
RscFileHandle rfHandle;
/* - load our command table - */
if (mdlParse_loadCommandTable(NULL) == NULL)
mdlOutput_error ("Unable to load command table.");
mdlOutput_error ("to execute, key-in CELL ORPHAN" );
mdlResource_openFile (&rfHandle, NULL, FALSE);
}
/*----------------------------------------------------------------------------+
| name setSearchType |
+----------------------------------------------------------------------------*/
Private void setSearchType (void)
{
/* initialize search criteria to find nothing */
mdlLocate_noElemNoLocked();
mdlLocate_normal ();
}
/*----------------------------------------------------------------------------+
| name startCell |
+----------------------------------------------------------------------------*/
Private void startCell (DPoint3d *pt, int view)
{
/* create orphan cell header */
mdlCell_create (&el, CELLNAME, pt, FALSE);
mdlElmdscr_new (&elmDP, NULL, &el);
mdlFence_process (NULL);
mdlElmdscr_display(elmDP, 0, NORMALDRAW);
mdlElmdscr_validate (elmDP, 0);
status = mdlElmdscr_add (elmDP);
mdlElmdscr_freeAll (&elmDP);
}
/*----------------------------------------------------------------------------+
| name cellFenceContents |
+----------------------------------------------------------------------------*/
Private int cellFenceContents ()
{
MSElementDescr *cellDP;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, NULL);
mdlElmdscr_read (&cellDP, filePos, MASTERFILE, FALSE, NULL);
mdlElmdscr_appendDscr (elmDP, cellDP);
mdlElmdscr_undoableDelete (cellDP, filePos, TRUE);
return SUCCESS;
}
/*----------------------------------------------------------------------------+
| namen modfence |
+----------------------------------------------------------------------------*/
cmdName modfence (void)
cmdNumber CMD_CELL_ORPHAN
{
setSearchType ();
mdlState_startFenceCommand
(cellFenceContents, /* routine for fence content */
NULL, /* function to define fence outline */
startCell, /* function for DATA point */
modfence, /* function for RESET */
1, /* message for command name */
2, /* prompt for fence */
FENCE_NO_CLIP); /* Do not continue if clip lock turned on */
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -