如何用C#拉伸ComplexShapeElement

  

Parents
  • 可以使用DgnExtrusion类。如下是一个简单的示例:

    DgnExtrusionDetail data = new DgnExtrusionDetail(profileIn, extrusionVec, true);
    SolidPrimitive solid = SolidPrimitive.CreateDgnExtrusion(data);
    Element outElem = DraftingElementSchema.ToElement(dgnModel, solid, null);
    outElem.AddToModel();

    其中的profileIn是一个CurveVector,可从你的ComplexShapeElement中获得,extrusionVec是一个矢量,表示拉伸的长度和方向。

    【另外】:请阅读置顶的【发帖指南】在得到正确答案后协助我们确认答案——在正确答案下点Verify Answer,该答案就会被绿色框框住。

    MS学习资源:

    MicroStation Wednesday视频分享 

    深入探讨MicroStation DGN基本概念系列

    一步步学习MicroStation CE Addin开发

    一步步学习MicroStation CE MDL开发



  • 老师,我本来是用的这个方法的,但是现在发现问题不在拉伸步骤上,而是我在创建ComplexShapeElement对象时就似乎没成功,我创建ComplexShapeElement对象是用的如下代码:

    Element element = ElementAgenda.GetEntry(i);
    ComplexShapeElement complexShapeElement = new ComplexShapeElement(element.DgnModel, null);
    switch (element.ElementType.ToString())
    {
        case "LineString":
            complexShapeElement.AddComponentElement(element);
            complexShapeElement.AddToModel();
            break;
        case "ComplexString":
            ChildElementCollection children = element.GetChildren();
            foreach (Element child in children)
            {
                complexShapeElement.AddComponentElement(child);
            }
            complexShapeElement.AddToModel();
            break;
        case "Ellipse":
            EllipseElement ellipse = element as EllipseElement;
            CurvePrimitive curvePrimitive = ellipse.GetCurveVector().GetAt(0);
            ArcElement arcElement = DraftingElementSchema.ToElement(element.DgnModel, curvePrimitive, null) as ArcElement ;
            arcElement.AddToModel();
            complexShapeElement.AddComponentElement(arcElement);
            arcElement.DeleteFromModel();
            complexShapeElement.AddToModel();
            break;
        default:
            continue;
    }

    但是这种方式创建出来的ComplexShapeElement再调用GetCurveVector方法,得到的是null,我不知道为什么?

  • 刚才又检查了结果,发现我上面的代码是可以正常创建圆和线串的ComplexShapeElement的,但是复杂线串的没有创建成功。

Reply Children