底层构造实体


有个问题想咨询大家,由于刚接触occt,问题可能对大神来说比较.....,

我想从底层构造(顶点,坐标等)一个有个圆柱孔洞的长方体实体,该怎么构造呢?
已邀请:

anycad - anycad.net

赞同来自: vujn2003


从底层构造比较麻烦。你可以用参数来构造:
使用BrepTools.MakeBox创建长方体,使用BrepTools.MakeCylinder创建圆柱,
使用BrepTools.BooleanCut挖洞就行了。

anycad - anycad.net

赞同来自: vujn2003


使用一下的步骤就可以创建出来:
// Create sketch on XZ plane
        float width = 20;
        float height = 20;
        float thickness = 5;
        float length = 100;
        List<Vector3> points = new List<Vector3>();
        points.Add(Vector3.ZERO);
        points.Add(new Vector3(width, 0, 0));
        points.Add(new Vector3(width, 0, thickness));
        points.Add(new Vector3(thickness, 0, thickness));
        points.Add(new Vector3(thickness, 0, height));
        points.Add(new Vector3(0, 0, height));

        TopoShape polygon = GlobalInstance.BrepTools.MakePolygon(points);
        TopoShape face = GlobalInstance.BrepTools.MakeFace(polygon);

        // Extrude along Y direction.
        TopoShape extrude = GlobalInstance.BrepTools.Extrude(face, length, Vector3.UNIT_Y);

        // Cylinders
        float radius = 2;
        TopoShapeGroup groups = new TopoShapeGroup();
        groups.Add(GlobalInstance.BrepTools.MakeCylinder(new Vector3(0, 10, 10), Vector3.UNIT_X, radius, thickness, 0));
        groups.Add(GlobalInstance.BrepTools.MakeCylinder(new Vector3(0, 50, 10), Vector3.UNIT_X, radius, thickness, 0));
        groups.Add(GlobalInstance.BrepTools.MakeCylinder(new Vector3(10, 50, 0), Vector3.UNIT_Z, radius, thickness, 0));

        TopoShape compound = GlobalInstance.BrepTools.MakeCompound(groups);

        // Cut
        TopoShape cut = GlobalInstance.BrepTools.BooleanCut(extrude, compound);

       ShowGeometry(cut);


20151019131721.jpg

vujn2003

赞同来自:


QQ图片20151018114735.png

谢谢回复,还有有点不明白怎么做? 您看看下面这个模型从底层改怎么构造
比如这样一个模型,现在知道各个边,顶点的信息, 这个从底层创建用这种方法可以吗?

vujn2003

赞同来自:


太感谢了,很详细 谢谢 谢谢 谢谢

要回复问题请先登录注册