球と球サーフェイスの作り方の違い


球と球サーフェイスの作り方の違いを紹介します。

まず球の作り方は下記となります。

void createBall()
{
	ISolidKernelEntityPtr target, tools[2];

	DPoint3d pt1 = DPoint3d::From(0, 0);
	double radius1 = 250;
	
	DgnSphereDetail sphere1Data(pt1, radius1);
	sphere1Data.m_capped = true;
	ISolidPrimitivePtr pShere1 = ISolidPrimitive::CreateDgnSphere(sphere1Data);
	eeh.Invalidate();
	DraftingElementSchema::ToElement(eeh, *pShere1, nullptr, *ACTIVEMODEL);
	eeh.AddToModel();
}

球サーフェイスの作り方は下記となります。

void createSurfaceBall()
{
	ISolidKernelEntityPtr target, tools[2];

	DPoint3d pt1 = DPoint3d::From(0, 0);
	double radius1 = 250;
	
	DgnSphereDetail sphere1Data(pt1, radius1);
	ISolidPrimitivePtr pShere1 = ISolidPrimitive::CreateDgnSphere(sphere1Data);
	eeh.Invalidate();
	DraftingElementSchema::ToElement(eeh, *pShere1, nullptr, *ACTIVEMODEL);
	eeh.AddToModel();
}

二つのコードを比べますと、球を作成する際、sphere1Dataの変数m_cappedをtrueに設定されています。

それが、球と球サーフェイスの作り方の違いとなります。