面缝合成体

在编写涵洞翼墙时


翼墙三维效果.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

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

你可能感兴趣的:(面缝合成体)