Example #1
0
    def __init__(self, mdl, ctrl):
        super(ComponentSettings, self).__init__()

        self.mdl = mdl

        hfl = QtGui.QFormLayout()
        ct_cmb = QtGui.QComboBox()
        for _, i in sorted(mdl_meta.items(), key=lambda i: i[0]):
            ct_cmb.addItem(i.text)

        ct_cmb.setCurrentIndex(self.mdl.cmptype)

        ct_cmb.currentIndexChanged.connect(self.changeTab)

        hfl.addRow("Component Type", ct_cmb)


        self.w_x = UnitEditable(ctrl.flow, "center.x", UNIT_GROUP_MM)
        hfl.addRow("Position X:", self.w_x.widget)
        self.w_y = UnitEditable(ctrl.flow, "center.y", UNIT_GROUP_MM)
        hfl.addRow("Position Y:", self.w_y.widget)
        self.w_theta = DegreeEditable(ctrl.flow, "theta")
        hfl.addRow("Theta:", self.w_theta.widget)

        self.headerWidget.setLayout(hfl)

        for k, i in sorted(mdl_meta.items(), key=lambda i: i[0]):
            self.addAutoWidget(i.widget_cons(mdl.model_instances[k]))

        self.selectWidget(self.mdl.cmptype)

        self.ctrl = ctrl
Example #2
0
    def __init__(self, mdl, ctrl):
        super(ComponentSettings, self).__init__()

        self.mdl = mdl

        hfl = QtGui.QFormLayout()
        ct_cmb = QtGui.QComboBox()
        for _, i in sorted(mdl_meta.items(), key=lambda i: i[0]):
            ct_cmb.addItem(i.text)

        ct_cmb.setCurrentIndex(self.mdl.cmptype)

        ct_cmb.currentIndexChanged.connect(self.changeTab)

        hfl.addRow("Component Type", ct_cmb)

        self.w_x = UnitEditable(ctrl.flow, "center.x", UNIT_GROUP_MM)
        hfl.addRow("Position X:", self.w_x.widget)
        self.w_y = UnitEditable(ctrl.flow, "center.y", UNIT_GROUP_MM)
        hfl.addRow("Position Y:", self.w_y.widget)
        self.w_theta = DegreeEditable(ctrl.flow, "theta")
        hfl.addRow("Theta:", self.w_theta.widget)

        self.headerWidget.setLayout(hfl)

        for k, i in sorted(mdl_meta.items(), key=lambda i: i[0]):
            self.addAutoWidget(i.widget_cons(mdl.model_instances[k]))

        self.selectWidget(self.mdl.cmptype)

        self.ctrl = ctrl
Example #3
0
    def __init__(self, icmdl):
        super(SIPEditWidget, self).__init__()

        self.mdl = icmdl

        # PinCount
        self.pincw = self.addEdit(
            "Pin Count", LineEditable(self.mdl, "pin_count", IntTrait))

        self.addEdit("(e) Pin spacing (along length)",
                     UnitEditable(self.mdl, "pin_space", UNIT_GROUP_MM))
        self.addEdit("PCB Pad diameter",
                     UnitEditable(self.mdl, "pad_diameter", UNIT_GROUP_MM))
Example #4
0
class ComponentSettings(MultiAutoSettingsDialog):
    def __init__(self, mdl, ctrl):
        super(ComponentSettings, self).__init__()

        self.resize(550, 700)
        self.setWindowTitle("Component Settings")

        self.mdl = mdl

        hfl = QtGui.QFormLayout()
        ct_cmb = QtGui.QComboBox()
        for _, i in sorted(mdl_meta.items(), key=lambda i: i[0]):
            ct_cmb.addItem(i.text)

        ct_cmb.setCurrentIndex(self.mdl.cmptype)

        ct_cmb.currentIndexChanged.connect(self.changeTab)

        hfl.addRow("Component Type", ct_cmb)


        self.w_x = UnitEditable(ctrl.flow, "center.x", UNIT_GROUP_MM)
        hfl.addRow("Position X:", self.w_x.widget)
        self.w_y = UnitEditable(ctrl.flow, "center.y", UNIT_GROUP_MM)
        hfl.addRow("Position Y:", self.w_y.widget)
        self.w_theta = DegreeEditable(ctrl.flow, "theta")
        hfl.addRow("Theta:", self.w_theta.widget)

        self.headerWidget.setLayout(hfl)

        for k, i in sorted(mdl_meta.items(), key=lambda i: i[0]):
            self.addAutoWidget(i.widget_cons(mdl.model_instances[k]))

        self.selectWidget(self.mdl.cmptype)

        self.ctrl = ctrl

    def changeTab(self, idx):
        self.mdl.cmptype = idx
        self.selectWidget(idx)
        self.ctrl.restartFlow()

    @QtCore.Slot()
    def accept(self):
        self.currentWidget.save()
        self.w_x.save()
        self.w_y.save()
        self.w_theta.save()
        super(ComponentSettings, self).accept()
Example #5
0
class ComponentSettings(MultiAutoSettingsDialog):
    def __init__(self, mdl, ctrl):
        super(ComponentSettings, self).__init__()

        self.mdl = mdl

        hfl = QtWidgets.QFormLayout()
        ct_cmb = QtWidgets.QComboBox()
        for _, i in sorted(mdl_meta.items(), key=lambda i: i[0]):
            ct_cmb.addItem(i.text)

        ct_cmb.setCurrentIndex(self.mdl.cmptype)

        ct_cmb.currentIndexChanged.connect(self.changeTab)

        hfl.addRow("Component Type", ct_cmb)

        self.w_x = UnitEditable(ctrl.mdl, "center.x", UNIT_GROUP_MM)
        hfl.addRow("Position X:", self.w_x.widget)
        self.w_y = UnitEditable(ctrl.mdl, "center.y", UNIT_GROUP_MM)
        hfl.addRow("Position Y:", self.w_y.widget)
        self.w_theta = DegreeEditable(ctrl.mdl, "theta")
        hfl.addRow("Theta:", self.w_theta.widget)

        self.headerWidget.setLayout(hfl)

        for k, i in sorted(mdl_meta.items(), key=lambda i: i[0]):
            self.addAutoWidget(i.widget_cons(mdl.model_instances[k]))

        self.selectWidget(self.mdl.cmptype)

        self.ctrl = ctrl

    def changeTab(self, idx):
        self.mdl.cmptype = idx
        self.selectWidget(idx)
        self.ctrl.restartFlow()

    @QtCore.Slot()
    def accept(self):
        self.currentWidget.save()
        self.w_x.save()
        self.w_y.save()
        self.w_theta.save()
        super(ComponentSettings, self).accept()
Example #6
0
    def __init__(self, model):
        super(PassiveEditWidget, self).__init__()
        self.__model = model

        self.__idx_to_wk : Dict[int, _well_known_t] = {}
        self.__wk_to_idx : Dict[_well_known_t, int] = {}

        self.cb_well_known = QtWidgets.QComboBox()
        self.layout.addRow("Package", self.cb_well_known)

        self.__add_wk(None, "Custom")
        self.cb_well_known.insertSeparator(self.cb_well_known.maxCount())

        for v in well_known_chip:
            self.__add_wk(v)

        self.cb_well_known.setCurrentIndex(self.__wk_to_idx[self.__model.well_known])

        self.cb_well_known.currentIndexChanged.connect(lambda _: self.update_ui())

        # Snap checkbox
        self.cb_snap = QtWidgets.QCheckBox()
        self.cb_snap.setChecked(self.__model.snap_well)
        self.cb_snap.clicked.connect(self.snap_ui_changed)
        self.layout.addRow("Snap to Well Known", self.cb_snap)

        
        
        self.gs = [
            self.addEdit("Pad Centers", UnitEditable(self.__model, "pin_d", UNIT_GROUP_MM)),
            self.addEdit("Body length", PointUnitEditable(self.__model, "body_corner_vec", "x", UNIT_GROUP_MM)),
            self.addEdit("Body width", PointUnitEditable(self.__model, "body_corner_vec", "y", UNIT_GROUP_MM)),

            self.addEdit("Pad length", PointUnitEditable(self.__model, "pin_corner_vec", "x", UNIT_GROUP_MM)),
            self.addEdit("Pad width", PointUnitEditable(self.__model, "pin_corner_vec", "y", UNIT_GROUP_MM)),
            ]


        self.pad_type_select = QtWidgets.QComboBox()
        self.pad_type_select.addItem("SMT Chip Passive", Passive2BodyType.CHIP)
        self.pad_type_select.addItem("SMT Capacitor (electrolytic)", Passive2BodyType.SMD_CAP)
        self.pad_type_select.addItem("T/H Axial", Passive2BodyType.TH_AXIAL)
        self.pad_type_select.addItem("T/H Radial", Passive2BodyType.TH_RADIAL)
        self.pad_type_select.addItem("T/H Radial side", Passive2BodyType.TH_FLIPPED_CAP)

        self.layout.addRow("Body Type", self.pad_type_select)

        self.update_ui()
Example #7
0
    def __init__(self, model):
        super(PassiveEditWidget, self).__init__()
        self.__model = model

        self.__idx_to_wk = {}
        self.__wk_to_idx = {}

        self.cb_well_known = QtGui.QComboBox()
        self.layout.addRow("Package", self.cb_well_known)

        self.__add_wk(None, "Custom")
        self.cb_well_known.insertSeparator(self.cb_well_known.maxCount())

        for v in well_known_chip:
            self.__add_wk(v)

        self.cb_well_known.currentIndexChanged.connect(self.pkg_changed)
        self.cb_well_known.setCurrentIndex(
            self.__wk_to_idx[self.__model.well_known])
        self.pkg_changed(self.cb_well_known.currentIndex())

        # Snap checkbox
        self.cb_snap = QtGui.QCheckBox()
        self.cb_snap.setChecked(self.__model.snap_well)
        self.layout.addRow("Snap to Well Known", self.cb_snap)

        self.gs = [
            self.addEdit("Pad Centers",
                         UnitEditable(self.__model, "pin_d", UNIT_GROUP_MM)),
            self.addEdit(
                "Body length",
                PointUnitEditable(self.__model, "body_corner_vec", "x",
                                  UNIT_GROUP_MM)),
            self.addEdit(
                "Body width",
                PointUnitEditable(self.__model, "body_corner_vec", "y",
                                  UNIT_GROUP_MM)),
            self.addEdit(
                "Pad length",
                PointUnitEditable(self.__model, "pin_corner_vec", "x",
                                  UNIT_GROUP_MM)),
            self.addEdit(
                "Pad width",
                PointUnitEditable(self.__model, "pin_corner_vec", "y",
                                  UNIT_GROUP_MM)),
        ]
Example #8
0
    def __init__(self, icmdl):
        super(BasicSMDICEditWidget, self).__init__()

        self.mdl = icmdl
        # Symmetry
        self.symw = QtWidgets.QComboBox()
        syms = [SYM_4_SQUARE, SYM_4_RECT, SYM_2, SYM_ARB]
        for s in syms:
            self.symw.addItem(text_for_sym(s), s)

        self.sym = guess_sym(self.mdl.side1_pins, self.mdl.side2_pins,
                             self.mdl.side3_pins, self.mdl.side4_pins)
        self.symw.setCurrentIndex(self.sym)

        self.layout.addRow("Symmetry", self.symw)
        self.symw.currentIndexChanged.connect(self.sym_changed)

        # PinCount
        self.pin_count = 0
        self.pincw = self.addEdit("Pin Count",
                                  LineEditable(self, "pin_count", IntTrait))
        self.pincw.widget.editingFinished.connect(
            lambda: self.sym_value_changed(True))

        self.s1pw = self.addEdit(
            "Side 1 Pins", LineEditable(self.mdl, "side1_pins", IntTrait))
        self.s1pw.widget.editingFinished.connect(
            lambda: self.sym_value_changed(False))
        self.s2pw = self.addEdit(
            "Side 2 Pins", LineEditable(self.mdl, "side2_pins", IntTrait))
        self.s2pw.widget.editingFinished.connect(
            lambda: self.sym_value_changed(False))
        self.s3pw = self.addEdit(
            "Side 3 Pins", LineEditable(self.mdl, "side3_pins", IntTrait))
        self.s3pw.widget.editingFinished.connect(
            lambda: self.sym_value_changed(False))
        self.s4pw = self.addEdit(
            "Side 4 Pins", LineEditable(self.mdl, "side4_pins", IntTrait))
        self.s4pw.widget.editingFinished.connect(
            lambda: self.sym_value_changed(False))

        self.addEdit("(D1) Dimension 1 Body",
                     UnitEditable(self.mdl, "dim_1_body", UNIT_GROUP_MM))
        self.addEdit("(D) Dimension 1 Pin Center-to-Center",
                     UnitEditable(self.mdl, "dim_1_pincenter", UNIT_GROUP_MM))
        self.addEdit("(E1) Dimension 2 Body",
                     UnitEditable(self.mdl, "dim_2_body", UNIT_GROUP_MM))
        self.addEdit("(E) Dimension 2 Pin Center-to-Center",
                     UnitEditable(self.mdl, "dim_2_pincenter", UNIT_GROUP_MM))

        self.layout.addWidget(
            QtWidgets.QLabel("Dimension 1 is along pin 1 edge"))

        self.addEdit("(e) Pin Spacing",
                     UnitEditable(self.mdl, "pin_spacing", UNIT_GROUP_MM))
        self.addEdit(
            "(L) Pin PCB contact length",
            UnitEditable(self.mdl, "pin_contact_length", UNIT_GROUP_MM))
        self.addEdit(
            "(b) Pin PCB contact width",
            UnitEditable(self.mdl, "pin_contact_width", UNIT_GROUP_MM))

        self.update_sym_ena()
        self.sym_value_changed(False)