Esempio n. 1
0
 def generatePCB(self, PCB, doc, groupBRD, gruboscPlytki):
     doc.addObject('Sketcher::SketchObject', 'PCB_Border')
     doc.PCB_Border.Placement = FreeCAD.Placement(FreeCAD.Vector(0.0, 0.0, 0.0), FreeCAD.Rotation(0.0, 0.0, 0.0, 1.0))
     #
     for i in PCB[0]:
         if i[0] == 'Arc':  # arc by 3 points
             x1 = i[1]
             y1 = i[2]
             x2 = i[3]
             y2 = i[4]
             [x3, y3] = self.arcMidPoint([x2, y2], [x1, y1], i[5])
             
             arc = Part.Arc(FreeCAD.Vector(x1, y1, 0.0), FreeCAD.Vector(x3, y3, 0.0), FreeCAD.Vector(x2, y2, 0.0))
             doc.PCB_Border.addGeometry(self.Draft2Sketch(arc, doc.PCB_Border))
         elif i[0] == 'Arc_2':  # arc by center / start angle / stop angle / radius
             doc.PCB_Border.addGeometry(Part.ArcOfCircle(Part.Circle(FreeCAD.Vector(i[1], i[2], 0), FreeCAD.Vector(0, 0, 1), i[3]), i[4], i[5]))
         elif i[0] == 'Circle':
             doc.PCB_Border.addGeometry(Part.Circle(FreeCAD.Vector(i[1], i[2]), FreeCAD.Vector(0, 0, 1), i[3]))
         elif i[0] == 'Line':
             doc.PCB_Border.addGeometry(Part.Line(FreeCAD.Vector(i[1], i[2], 0), FreeCAD.Vector(i[3], i[4], 0)))
     #
     #if PCB[1]:
     PCBboard = doc.addObject("Part::FeaturePython", "Board")
     PCBboardObject(PCBboard)
     PCBboard.Thickness = gruboscPlytki
     PCBboard.Border = doc.PCB_Border
     viewProviderPCBboardObject(PCBboard.ViewObject)
     groupBRD.addObject(doc.Board)
     FreeCADGui.activeDocument().getObject(PCBboard.Name).ShapeColor = PCBconf.PCB_COLOR
     FreeCADGui.activeDocument().PCB_Border.Visibility = False
     self.updateView()
Esempio n. 2
0
    def accept(self):
        if self.pcbBorder.text() == '' or self.pcbHoles.text() == '':
            FreeCAD.Console.PrintWarning("Mandatory field is empty!\n")
        elif self.pcbBorder.text() == self.pcbHoles.text():
            FreeCAD.Console.PrintWarning("One sketch used two times!\n")
        else:
            newPartObjectFC = self.createDefaultProject(
                FreeCAD.ActiveDocument.Name)
            groupBRD = createGroup_PCB()

            PCBboard = FreeCAD.ActiveDocument.addObject(
                "Part::FeaturePython", "Board")
            PCBboardObject(PCBboard)
            PCBboard.Parent = newPartObjectFC
            PCBboard.Thickness = self.gruboscPlytki.value()
            PCBboard.Border = FreeCAD.ActiveDocument.getObject(
                self.pcbBorder.text())
            PCBboard.Holes = FreeCAD.ActiveDocument.getObject(
                self.pcbHoles.text())
            viewProviderPCBboardObject(PCBboard.ViewObject)
            groupBRD.addObject(FreeCAD.ActiveDocument.Board)
            FreeCADGui.activeDocument().getObject(
                PCBboard.Name).ShapeColor = self.pcbColor.getColor()
            FreeCAD.ActiveDocument.getObject(
                self.pcbBorder.text()).ViewObject.Visibility = False
            FreeCAD.ActiveDocument.getObject(
                self.pcbHoles.text()).ViewObject.Visibility = False
            #
            PCBboard.purgeTouched()
            PCBboard.recompute()
            return True
Esempio n. 3
0
 def generatePCB(self, doc):
     gruboscPlytki = self.wersjaFormatu.dialogMAIN.gruboscPlytki.value()
     #
     self.printInfo('\nGenerate board: ')
     try:
         groupBRD = createGroup_PCB()
         #
         doc.addObject('Sketcher::SketchObject', 'PCB_Border')
         doc.PCB_Border.Placement = FreeCAD.Placement(
             FreeCAD.Vector(0.0, 0.0, 0.0),
             FreeCAD.Rotation(0.0, 0.0, 0.0, 1.0))
         #
         self.wersjaFormatu.getPCB(doc.PCB_Border)
         #
         PCBboard = doc.addObject("Part::FeaturePython", "Board")
         PCBboardObject(PCBboard)
         PCBboard.Thickness = gruboscPlytki
         PCBboard.Border = doc.PCB_Border
         viewProviderPCBboardObject(PCBboard.ViewObject)
         groupBRD.addObject(doc.Board)
         FreeCADGui.activeDocument().getObject(
             PCBboard.Name).ShapeColor = PCBconf.PCB_COLOR
         FreeCADGui.activeDocument().PCB_Border.Visibility = False
         PCBboard.purgeTouched()
         self.updateView()
     except Exception as e:
         self.printInfo(u'{0}'.format(e), 'error')
     else:
         self.printInfo('done')
Esempio n. 4
0
    def generatePCB(self, PCB, doc, groupBRD, gruboscPlytki):
        doc.addObject('Sketcher::SketchObject', 'PCB_Border')
        doc.PCB_Border.Placement = FreeCAD.Placement(
            FreeCAD.Vector(0.0, 0.0, 0.0),
            FreeCAD.Rotation(0.0, 0.0, 0.0, 1.0))
        #
        for i in PCB[0]:
            if i[0] == 'Arc':  # arc by 3 points
                x1 = i[1]
                y1 = i[2]
                x2 = i[3]
                y2 = i[4]
                [x3, y3] = self.arcMidPoint([x2, y2], [x1, y1], i[5])

                arc = Part.Arc(FreeCAD.Vector(x1, y1, 0.0),
                               FreeCAD.Vector(x3, y3, 0.0),
                               FreeCAD.Vector(x2, y2, 0.0))
                doc.PCB_Border.addGeometry(
                    self.Draft2Sketch(arc, doc.PCB_Border))
            elif i[0] == 'Arc_2':  # arc by center / start angle / stop angle / radius
                doc.PCB_Border.addGeometry(
                    Part.ArcOfCircle(
                        Part.Circle(FreeCAD.Vector(i[1], i[2], 0),
                                    FreeCAD.Vector(0, 0, 1), i[3]), i[4],
                        i[5]))
            elif i[0] == 'Circle':
                doc.PCB_Border.addGeometry(
                    Part.Circle(FreeCAD.Vector(i[1], i[2]),
                                FreeCAD.Vector(0, 0, 1), i[3]))
            elif i[0] == 'Line':
                doc.PCB_Border.addGeometry(
                    Part.Line(FreeCAD.Vector(i[1], i[2], 0),
                              FreeCAD.Vector(i[3], i[4], 0)))
        #
        #if PCB[1]:
        PCBboard = doc.addObject("Part::FeaturePython", "Board")
        PCBboardObject(PCBboard)
        PCBboard.Thickness = gruboscPlytki
        PCBboard.Border = doc.PCB_Border
        viewProviderPCBboardObject(PCBboard.ViewObject)
        groupBRD.addObject(doc.Board)
        FreeCADGui.activeDocument().getObject(
            PCBboard.Name).ShapeColor = PCBconf.PCB_COLOR
        FreeCADGui.activeDocument().PCB_Border.Visibility = False
        self.updateView()
Esempio n. 5
0
 def accept(self):
     if self.pcbBorder.text() == '' or self.pcbHoles.text() == '':
         FreeCAD.Console.PrintWarning("Mandatory field is empty!\n")
     elif self.pcbBorder.text() == self.pcbHoles.text():
         FreeCAD.Console.PrintWarning("One sketch used two times!\n")
     else:
         groupBRD = createGroup_PCB()
         
         PCBboard = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "Board")
         PCBboardObject(PCBboard)
         PCBboard.Thickness = self.gruboscPlytki.value()
         PCBboard.Border = FreeCAD.ActiveDocument.getObject(self.pcbBorder.text())
         PCBboard.Holes = FreeCAD.ActiveDocument.getObject(self.pcbHoles.text())
         viewProviderPCBboardObject(PCBboard.ViewObject)
         groupBRD.addObject(FreeCAD.ActiveDocument.Board)
         FreeCADGui.activeDocument().getObject(PCBboard.Name).ShapeColor = self.pcbColor.getColor()
         FreeCAD.ActiveDocument.getObject(self.pcbBorder.text()).ViewObject.Visibility = False
         FreeCAD.ActiveDocument.getObject(self.pcbHoles.text()).ViewObject.Visibility = False
         return True