def find_capacitor(capacitance, footprint, device="CAP CER SMD", voltage=None): if isinstance(capacitance, str): try: capacitance = Capacitance(capacitance) except ValueError: raise NoGedaSymbolException(capacitance) if isinstance(capacitance, Capacitance): capacitance = capacitance._value if footprint[0:3] == "MY-": footprint = footprint[3:] for symbol in gsymlib: if symbol.device == device and symbol.footprint == footprint: cap, volt = parse_capacitor(symbol.value) sym_capacitance = parse_capacitance(cap) if capacitance == sym_capacitance: return symbol raise NoGedaSymbolException
def Fc(self, value): c1_dev = self.get_elem_by_idx('C1').data['device'] c1_fp = self.get_elem_by_idx('C1').data['footprint'] if c1_fp[0:3] == "MY-": c1_fp = c1_fp[3:] allowed_cap_vals = iec60063.gen_vals(self._configdict['Cseries'], iec60063.cap_ostrs, self._configdict['Cmin'], self._configdict['Cmax']) required_cap_val = 1 / (2 * pi * float(self.R1) * value) cval = None for val in allowed_cap_vals: lastval = cval cval = electronics.parse_capacitance(val) if cval >= required_cap_val: self.get_elem_by_idx('C1').data['value'] = gsymlib.find_capacitor(lastval, c1_fp, c1_dev).value # noqa break if cval is None: raise ValueError
def CFF(self): elem = self.get_elem_by_idx('CFF') assert elem.data['device'] in ['CAP CER SMD', 'CAP CER THRU'] return Capacitance(electronics.parse_capacitance(electronics.parse_capacitor(elem.data['value'])[0])) # noqa
def C3(self): # TODO switch to series.get_type_value if custom series to be supported elem = self.get_elem_by_idx('C3') assert elem.data['device'] in ['CAP CER SMD', 'CAP CER THRU'] return electronics.parse_capacitance(electronics.parse_capacitor(elem.data['value'])[0]) # noqa