如何创建指定大小的图纸模型(To create a sheet model with specific size)


【软件名称】:MicroStation

【软件版本】:CONNECT Edition 10.16.02.34

【开发语言】:MDL C++

如下C++代码演示了如何创建一个指定大小的图纸模型:

void CreateSheetModelTest()
{
	DgnFileP pDgn = ISessionMgr::GetActiveDgnFile();
	DgnModelStatus status;
	DgnModelP pSht = pDgn->CreateNewModel(&status, L"MySheetModel", DgnModelType::Sheet, false);
	if (DgnModelStatus::DGNMODEL_STATUS_Success == status)
	{
		ModelInfoR modelInfo = const_cast<ModelInfoR>(pSht->GetModelInfo());
		SheetDefP pShtDef = modelInfo.GetSheetDefP();
		pShtDef->SetFormName(L"ISO A2");
		double uor = modelInfo.GetUorPerMeter();
		pShtDef->SetSize(594*uor, 420*uor);
		pSht->SetModelInfo(modelInfo);
	}
}

程序大致思路是:

  1. 获得当前设计文件对象指针pDgn;
  2. 调用CreateNewModel创建一个类型为DgnModelType::Sheet的一个图纸模型;
  3. 从该模型获得模型信息对象modelInfo;
  4. 从modelInfo获得图纸定义指针pShtDef;
  5. 调用SetFormName和SetSiz设置图纸大小;
  6. 调用SetModelInfo修改图纸模型。注意,pShtDef是从modelInfo获得的指针,因此对pShtDef的设置内容其实是保存在modelInfo中的。