import FreeCAD,Part
from PyQt4 import QtGui

def do_import(filename,document):
	"imports the contents of a file in the given document"
        fileobj = open(filename,"rb")
        data = {}
        currentobj = None
        currentdata = []
        processed = []
        objectsnum = 0

        print "opening ",filename,"..."
 
        for line in fileobj:
                if line[0] == "#":
                        print "new object: ",line[2:]
                        if currentobj and currentdata:
                                print "creating ",currentobj
                                shape = Part.makeCompound(currentdata)
                                obj = document.addObject("Part::Feature",currentobj)
                                obj.Shape = shape
                                objectsnum += 1
                        currentobj = line[2:]
                        currentdata = []
                else:
                        pts = line.split()
                        p1 = pts[0].split(",")
                        p2 = pts[1].split(",")
                        v1 = FreeCAD.Vector(float(p1[0]),float(p1[1]),0)
                        v2 = FreeCAD.Vector(float(p2[0]),float(p2[1]),0)
                        if not [v1,v2] in processed:
                                if v1 != v2:
                                        ed = Part.Line(v1,v2).toShape()
                                        currentdata.append(ed)
                                processed.append([v1,v2])

        if currentobj and currentdata:
                print "creating ",currentobj
                shape = Part.makeCompound(currentdata)
                obj = document.addObject("Part::Feature",currentobj)
                obj.Shape = shape
                objectsnum += 1

        print "done importing ",objectsnum," objects"
        fileobj.close()

doc = FreeCAD.ActiveDocument
filename = QtGui.QFileDialog.getOpenFileName(QtGui.qApp.activeWindow(),'Open text file','*.txt')
do_import(filename,doc)
