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

📄 orcell.mc

📁 microstation MDL入门指导手册!
💻 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 + -