import org.jcae.opencascade.jni.*; /** * Create a square with an attached free edge * @author Jerome Robert */ public class Example1 { public static void main(String[] args) { // The plate double[] p1=new double[]{0, 0, 0}; double[] p2=new double[]{0, 1, 0}; double[] p3=new double[]{1, 1, 0}; double[] p4=new double[]{1, 0, 0}; double[] p5=new double[]{0.5, 0.5, 0}; double[] p6=new double[]{0.5, 0.5, 1}; TopoDS_Edge edge1=(TopoDS_Edge) new BRepBuilderAPI_MakeEdge(p1,p2).shape(); TopoDS_Edge edge2=(TopoDS_Edge) new BRepBuilderAPI_MakeEdge(p2,p3).shape(); TopoDS_Edge edge3=(TopoDS_Edge) new BRepBuilderAPI_MakeEdge(p3,p4).shape(); TopoDS_Edge edge4=(TopoDS_Edge) new BRepBuilderAPI_MakeEdge(p4,p1).shape(); TopoDS_Wire wirePlate= (TopoDS_Wire) new BRepBuilderAPI_MakeWire(edge1, edge2, edge3, edge4).shape(); TopoDS_Face face=(TopoDS_Face) new BRepBuilderAPI_MakeFace(wirePlate, true).shape(); // The wire TopoDS_Vertex vertex1=(TopoDS_Vertex) new BRepBuilderAPI_MakeVertex(p5).shape(); TopoDS_Vertex vertex2=(TopoDS_Vertex) new BRepBuilderAPI_MakeVertex(p6).shape(); TopoDS_Edge freeEdge=(TopoDS_Edge) new BRepBuilderAPI_MakeEdge(vertex1,vertex2).shape(); //Connect the wire to the plate BRep_Builder bb=new BRep_Builder(); bb.add(face, vertex1); //Put everything in a compound TopoDS_Compound compound=new TopoDS_Compound(); bb.makeCompound(compound); bb.add(compound, freeEdge); bb.add(compound, face); //Write to to a file BRepTools.write(compound, "/tmp/test.brep"); } }