示例#1
0
def getpoint(data):
    "turns an OCA point definition into a FreeCAD Vector"
    print "found point ", data
    if (len(data) == 3):
        return Vector(float(data[0]), float(data[1]), float(data[2]))
    elif (data[0] == "P") and (len(data) == 4):
        return Vector(float(data[1]), float(data[2]), float(data[3]))
    elif (data[0][0] == "P") and (len(data[0]) > 1):
        if (len(data) == 1):
            return objects[data[0]]
        else:
            if (data[1][0] == "R"):
                return objects[data[0]].add(objects[data[1]])
            elif (data[1][0] == "C"):
                return DraftGeomUtils.findProjection(objects[data[0]],
                                                     objects[data[1]])
    elif (data[0][0] == "C"):
        if objects[data[0]]:
            p1 = objects[data[0]].Curve.Position
            if (len(data) == 1):
                return p1
            else:
                if (data[1][0] == "L"):
                    l = objects[data[1]]
                    return p1.add(DraftGeomUtils.vec(l))
示例#2
0
def getpoint(data):
    """Turn an OCA point definition into a FreeCAD.Vector.

    Parameters
    ----------
    data : list
        Different types of data.

    Returns
    -------
    Base::Vector3
        A vector with the data arranged, depending on the contents of `data`.
    """
    FCC.PrintMessage("found point %s \n" % data)
    if len(data) == 3:
        return Vector(float(data[0]), float(data[1]), float(data[2]))
    elif (data[0] == "P") and (len(data) == 4):
        return Vector(float(data[1]), float(data[2]), float(data[3]))
    elif (data[0][0] == "P") and (len(data[0]) > 1):
        if len(data) == 1:
            return objects[data[0]]
        else:
            if data[1][0] == "R":
                return objects[data[0]].add(objects[data[1]])
            elif data[1][0] == "C":
                # Error: DraftGeomUtils.findProjection()
                # doesn't exist
                return DraftGeomUtils.findProjection(objects[data[0]],
                                                     objects[data[1]])
    elif data[0][0] == "C":
        if objects[data[0]]:
            p1 = objects[data[0]].Curve.Position
            if len(data) == 1:
                return p1
            else:
                if data[1][0] == "L":
                    L = objects[data[1]]
                    return p1.add(DraftGeomUtils.vec(L))
示例#3
0
def getpoint(data):
    "turns an OCA point definition into a FreeCAD Vector"
    print "found point ", data
    if len(data) == 3:
        return Vector(float(data[0]), float(data[1]), float(data[2]))
    elif (data[0] == "P") and (len(data) == 4):
        return Vector(float(data[1]), float(data[2]), float(data[3]))
    elif (data[0][0] == "P") and (len(data[0]) > 1):
        if len(data) == 1:
            return objects[data[0]]
        else:
            if data[1][0] == "R":
                return objects[data[0]].add(objects[data[1]])
            elif data[1][0] == "C":
                return DraftGeomUtils.findProjection(objects[data[0]], objects[data[1]])
    elif data[0][0] == "C":
        if objects[data[0]]:
            p1 = objects[data[0]].Curve.Position
            if len(data) == 1:
                return p1
            else:
                if data[1][0] == "L":
                    l = objects[data[1]]
                    return p1.add(DraftGeomUtils.vec(l))