美文网首页
面缝合成体

面缝合成体

作者: 板栗_1c34 | 来源:发表于2020-09-12 11:14 被阅读0次

    在编写涵洞翼墙时


    翼墙三维效果.png
    平面图

    翼墙多个面组合成的不规则实体,在ORD中可以采取三种方式生成:
    (1)创建多个实体,通过布尔运算和实体剪切的方式生成;
    (2)把翼墙实体的分成若干个面,通过面缝合生成体;
    (3)使用Mesh体,面构成体。
    因编程习惯,不喜欢使用Mesh体,在此重点讨论第二种方式。
    先说说第二种方式的手工建模的方法:
    选择Modeling—Surface—Stitch/Combine Surfaces,选择缝合曲面,依次点选面,组合面成体,但这个方法很多时候会出现意想不到的效果,往往一会能生成,一会生成不了。


    image.png

    编程的方法:将翼墙体重构分解,分成17个控制点,依次计算17个点的坐标,再通过点组合成体,共生成13个面,将13个面构成体。


    解构图.png

    17个点的坐标计算和13个平面的生成在此不做赘述,直接放13个面生成体的代码

                    SolidKernelEntity[] tools = new SolidKernelEntity[13];//申明几何描述的内存对象
                    Convert1.ElementToBody(out tools[0], shape1, false, true, false);//获取shape1的几何元素信息
                    Convert1.ElementToBody(out tools[1], shape2, false, true, false);
                    Convert1.ElementToBody(out tools[2], shape3, false, true, false);
                    Convert1.ElementToBody(out tools[3], shape4, false, true, false);
                    Convert1.ElementToBody(out tools[4], shape5, false, true, false);
                    Convert1.ElementToBody(out tools[5], shape6, false, true, false);
                    Convert1.ElementToBody(out tools[6], shape7, false, true, false);
                    Convert1.ElementToBody(out tools[7], shape8, false, true, false);
                    Convert1.ElementToBody(out tools[8], shape9, false, true, false);
                    Convert1.ElementToBody(out tools[9], shape10, false, true, false);
                    Convert1.ElementToBody(out tools[10], shape11, false, true, false);
                    Convert1.ElementToBody(out tools[11], shape12, false, true, false);
                    Convert1.ElementToBody(out tools[12], shape13, false, true, false);
    
                    SolidKernelEntity[] sewn;
                    SolidKernelEntity[] unsewn;
                    Element ehOut;
                    if (BentleyStatus.Success == Modify.SewBodies(out sewn, out unsewn, ref tools, 13, 0, 1))
                        for (int i = 0; i < sewn.Length; i++)
                        {
                            Convert1.BodyToElement(out ehOut, sewn[i], null, Session.Instance.GetActiveDgnModel());
                            ehOut.AddToModel();
                        }
    
    生成效果图.png

    该实体生成时会有多余的线条,目前还未发现原因,不知道是方法的参数里可以控制,还是编程内部的原因,亦或是面顺序的问题,还需要进一步核实其原因。

    相关文章

      网友评论

          本文标题:面缝合成体

          本文链接:https://www.haomeiwen.com/subject/uafwektx.html