ORD创建点单元

我在ORD中的二维放了一个具有特征定义的点,在三维里会生成一个单元,能不能我在二维里点显示的只是一个简单的图例而不是单元,三维里显示的是模型。

Parents Reply
  • 郭老师,请帮忙分析一下为什么没有元素生成呢。切图的时候,在图纸模型中,当切换到缓存模式时以下代码触发。将绘制当前视口中所有元素从最小点到最大点的直线。谢谢。

    SubstituteElemStatus CaculateDrawing::MySubstituteEle1(MSElementDescrH newEle, ViewportP viewport, DgnPlatform::DrawPurpose purpose, ViewContextP context, ElementHandleCP elem)
    {
    	//仅用于刷新Drawing的时候,别的时候没法调用,这样做也比较安全
    	if (purpose == DrawPurpose::ExportVisibleEdges)
    	{
    		
    		//测试目标:绘制元素最小点到最大点的直线
    		Transform AtoPTrans = Transform::FromIdentity();
    		DRange3d range;
    		if (DetailingSymbolManager::CalculateElementRange(*elem, range, &AtoPTrans) == SUCCESS)
    		{
    			EditElementHandle eeh1;
    			DSegment3d seg;
    			DPoint3dCR basePt = range.low;
    			DPoint3dCR targetPt = range.high;
    			seg.Init(basePt, targetPt);
    			ICurvePrimitivePtr pCurve = ICurvePrimitive::CreateLine(seg);
    			bool is3D = ACTIVEMODEL->Is3d();
    			DraftingElementSchema::ToElement(eeh1, *pCurve, nullptr, is3D, *ACTIVEMODEL);
    			*newEle = eeh1.ExtractElementDescr();//20221203经过测试,只有这样才能改变输出的元素
    		}
    	}
    	return SUBSTELEM_STATUS_Normal;
    }

Children