[MS CE]如何绘制图中的实体?

一个六棱柱(有不同的色段),上面套了很多球,拖动柱子时能整体移动,请问通过什么方式,调用哪些接口可以做到?

Parents Reply
  • 下边的代码创建了一个三棱柱的,您可以参考一下。如何移动应该是在您别的帖子里边回复过了,这里就不再重新赘述了:)

    ElementHandle CreateTriangleExtrusion(DPoint3d ptS, DPoint3d ptE)
    {
    	EditElementHandle eleRtn;
    	DgnModelRefP dgnModel = ISessionMgr::GetActiveDgnModelRefP();
    	double extrusionLen = ptS.Distance(ptE);
    	DPoint3d ptArr[4];
    	double TriangleEdgeLen = 100000;
    	ptArr[0].x = 0; ptArr[0].y = TriangleEdgeLen / 2 / sqrt(3) * 2; ptArr[0].z = 0;
    	ptArr[1].x = TriangleEdgeLen / 2; ptArr[1].y = -TriangleEdgeLen / 2 / sqrt(3); ptArr[1].z = 0;
    	ptArr[2].x = -TriangleEdgeLen / 2; ptArr[2].y = -TriangleEdgeLen / 2 / sqrt(3); ptArr[2].z = 0;
    	ptArr[3] = ptArr[0];
    	bvector<Dpoint3d> vecPt;
    	vecPt.push_back(ptArr[0]);
    	vecPt.push_back(ptArr[1]);
    	vecPt.push_back(ptArr[2]);
    	vecPt.push_back(ptArr[3]);
    	ICurvePrimitivePtr curPri = ICurvePrimitive::CreateLineString(vecPt);
    	CurveVectorPtr curveVec = CurveVector::Create(CurveVector::BOUNDARY_TYPE_Outer);
    	curveVec->Add(curPri);
    	DVec3d dvec3d;
    	dvec3d.x = 0; dvec3d.y = 0; dvec3d.z = extrusionLen;
    	DgnExtrusionDetail dgnExtruDeta =DgnExtrusionDetail(curveVec,dvec3d, true);
    	ISolidPrimitivePtr solidPrimi = ISolidPrimitive::CreateDgnExtrusion(dgnExtruDeta);
    	DraftingElementSchema::ToElement(eleRtn, *solidPrimi, NULL, *dgnModel);
    	return eleRtn;
    }

    Answer Verified By: 周谦益 Zhou Qianyi 

Children