44from .JlcPartsBase import JlcPartsBase , JlcPartsAttributes
55
66
7- class JlcPartsMlcc (TableDeratingCapacitor , CeramicCapacitor , PartsTableSelectorFootprint , JlcPartsBase ):
7+ class JlcPartsMlcc (PartsTableSelectorFootprint , JlcPartsBase , TableDeratingCapacitor , CeramicCapacitor ):
88 _JLC_PARTS_FILE_NAMES = ["CapacitorsMultilayer_Ceramic_Capacitors_MLCC___SMDakaSMT" ]
99
1010 @init_in_parent
@@ -63,6 +63,15 @@ def filter_minimum_size(row: PartsTableRow) -> Optional[Dict[PartsTableColumn, A
6363 def _row_sort_by (cls , row : PartsTableRow ) -> Any :
6464 return [row [cls .PARALLEL_COUNT ], super (JlcPartsMlcc , cls )._row_sort_by (row )]
6565
66+ def _row_generate (self , row : PartsTableRow ) -> None :
67+ # see comment in TableCapacitor._row_generate for why this needs to be here
68+ if row [self .PARALLEL_COUNT ] == 1 :
69+ super ()._row_generate (row ) # creates the footprint
70+ else :
71+ TableCapacitor ._row_generate (self , row ) # skips creating the footprint in PartsTableSelectorFootprint
72+ self .assign (self .actual_basic_part , True ) # dummy value
73+ self ._make_parallel_footprints (row )
74+
6675 def _make_parallel_footprints (self , row : PartsTableRow ) -> None :
6776 cap_model = JlcDummyCapacitor (set_lcsc_part = row [self .LCSC_COL ],
6877 set_basic_part = row [self .BASIC_PART_COL ],
@@ -77,8 +86,5 @@ def _make_parallel_footprints(self, row: PartsTableRow) -> None:
7786 self .connect (self .c [i ].pos , self .pos )
7887 self .connect (self .c [i ].neg , self .neg )
7988
80- self .assign (self .lcsc_part , row [self .LCSC_COL ])
81- self .assign (self .actual_basic_part , row [self .BASIC_PART_COL ])
82-
8389
8490lambda : JlcPartsMlcc () # ensure class is instantiable (non-abstract)
0 commit comments