Esempio n. 1
0
def get_vertices(shape, length):
    bt = BRep.BRep_Tool()
    t = Topo(shape)
    vertices = t.vertices()
    vert = []
    for vertex in vertices:
        vert.append([
            correctLengt(bt.Pnt(vertex).Coord()[0], length, None),
            correctLengt(bt.Pnt(vertex).Coord()[1], length, None),
            correctLengt(bt.Pnt(vertex).Coord()[2], length, None)
        ])

    return vert
Esempio n. 2
0
def corners(house):
    d = {}
    iface = -1
    topo = Topo(house['volume'])
    house['boundaries'] = {'walls': [], 'windows': [], 'heats': []}
    house['faces'] = []
    for f in topo.wires():
        iface += 1
        key = 'face' + str(iface)
        print 'new_face'
        edges = []
        d[key] = []
        topof = Topo(f)
        for e in topof.edges():
            vts = Topo(e)
            print 'edge'
            edge = []
            for i, v in enumerate(vts.vertices()):
                brt = BRep_Tool()
                pnt = brt.Pnt(topods_Vertex(v))
                edge.append([pnt.X(), pnt.Y(), pnt.Z()])
            edges.append(edge)
        print len(edges)
        first_edge = edges.pop(0)
        point_array = [first_edge[0], first_edge[1]]
        print 'edges   :'
        for e in edges:
            print e
        print '-------'
        while len(edges) > 0:
            for i, e in enumerate(edges):
                if point_array[-1] in e:
                    ed = edges.pop(i)
                    print point_array[-1]
                    if ed[0] == point_array[-1]: point_array.append(ed[1])
                    elif ed[1] == point_array[-1]: point_array.append(ed[0])
                    break
        d[key] = point_array
        house['faces'].append(point_array)
    return d
Esempio n. 3
0
                                  faces_ax[faces_ax.keys()[0]].Shape(), False)
    #section.SetFuzzyValue(1.e-18)
    section.ComputePCurveOn1(True)
    section.ComputePCurveOn2(True)
    section.Approximation(True)
    section.Build()
    #dumpTopology(section.Shape())
    display.DisplayColoredShape(section.Shape(), 'GREEN')
    all_points = []
    all_edges = []
    for edg in Topo(section.Shape()).edges():
        brt = BRep_Tool()
        print '--- edge -----'
        edge_points = []
        tpedg = Topo(edg)
        for v in tpedg.vertices():
            pnt = brt.Pnt(topods_Vertex(v))
            edge_points.append(Point([pnt.X(), pnt.Y(), pnt.Z()]))

            display.DisplayColoredShape(pnt, 'GREEN')
        all_points.append(edge_points)
    if len(all_points) != 0:
        pol = segments_to_polyline(all_points)
        all_edges = polyline3d_to_edges(pol)
    for edg in all_edges:
        face_explorer = TopExp_Explorer(faces1[f].Shape(), TopAbs_FACE)
        while False:  #face_explorer.More():
            try:
                TopOpeBRepTool_CurveTool_MakePCurveOnFace(
                    edg, topods_Face(face_explorer.Current()))
                print 'done'