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

📄 drawcell.mc

📁 Bentley Microstation的二次开发工具MDL的学习源代码
💻 MC
字号:
/*================================================================================
						Step by step 之 MDL 快速入门实例四
================================================================================*/
#include    <tcb.h>
#include    <mdl.h>
#include	<stdio.h>
#include	<userfnc.h>
#include    <mselems.h>
#include	<stdio.h>



Public void main(int argc,char *argv[])
{
	Dpoint3d		vertex[3],origin;
	double			d_lengthUOR,d_centerUOR;
	MSElement	    ElementArc,ElementLine,Hdr;
	int				i,j;
	double			a,b,c,l;
	MSElementDescr  *TelmDscrP;

	mdlCnv_masterToUOR(&d_lengthUOR, 1000, MASTERFILE);
	mdlCnv_masterToUOR(&d_centerUOR, 100000, MASTERFILE);
	
	origin.x = d_centerUOR + tcb->globorg.x;
	origin.y = d_centerUOR + tcb->globorg.y;
	origin.z=0;
	
	l = d_lengthUOR * cos(fc_60);
	a = l * cos(fc_60);
	c = l/2;
	b = c * tan(fc_60);

	
	vertex[0].x = origin.x;
	vertex[0].y = origin.y - a;

	vertex[1].x = origin.x + c;
	vertex[1].y = origin.y;
	vertex[0].z = vertex[1].z =0;

	mdlComplexChain_createHeader(&Hdr, FALSE, 0);
	mdlElmdscr_new(&TelmDscrP,NULL,&Hdr);

	mdlLineString_create(&ElementLine, NULL, vertex, 2);	
	mdlElmdscr_appendElement(TelmDscrP, &ElementLine);
	
	mdlView_newWindowCenter(tcb->lstvw,&origin);
	j=0xff;
	mdlView_fit(tcb->lstvw, &j);
	mdlView_updateSingle(tcb->lstvw);

	mdlElmdscr_display(TelmDscrP,MASTERFILE,NORMALDRAW);
	mdlSystem_pauseTicks(120);

	vertex[0].x = origin.x + c;
	vertex[0].y = origin.y;

	vertex[1].x = origin.x + c;
	vertex[1].y = origin.y - b;
	
	vertex[2].x = origin.x;
	vertex[2].y = origin.y - b;
	vertex[0].z = vertex[1].z = vertex[2].z =0;

	if (mdlArc_createByPoints(&ElementArc,NULL,vertex)!=SUCCESS) return;
	mdlElmdscr_appendElement(TelmDscrP, &ElementArc);

	
	mdlElmdscr_display(TelmDscrP,MASTERFILE,NORMALDRAW);
	mdlSystem_pauseTicks(120);

	vertex[0].x = origin.x;
	vertex[0].y = origin.y - b;

	vertex[1].x = origin.x - c;
	vertex[1].y = origin.y - b;
	
	vertex[2].x = origin.x -c;
	vertex[2].y = origin.y;

	vertex[0].z = vertex[1].z = vertex[2].z =0;

	if (mdlArc_createByPoints(&ElementArc,NULL,vertex)!=SUCCESS) return;
	mdlElmdscr_appendElement(TelmDscrP, &ElementArc);

	mdlElmdscr_display(TelmDscrP,MASTERFILE,NORMALDRAW);
	mdlSystem_pauseTicks(120);

	vertex[0].x = origin.x -c;
	vertex[0].y = origin.y;

	vertex[1].x = origin.x;
	vertex[1].y = origin.y -a;
	vertex[0].z = vertex[1].z =0;

	mdlLineString_create(&ElementLine, NULL, vertex, 2);
	mdlElmdscr_appendElement(TelmDscrP, &ElementLine);
	
	mdlElmdscr_add(TelmDscrP);
	mdlElmdscr_display(TelmDscrP,MASTERFILE,NORMALDRAW);
	mdlElmdscr_freeAll(&TelmDscrP);

	mdlSystem_exit(0,1);
}

⌨️ 快捷键说明

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