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()
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
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')
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()
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