WIP: more device classes - unit tests for classes
|
|
@ -278,6 +278,7 @@ void DeviceClassInductor::serial (Device *a, Device *b) const
|
|||
// DeviceClassInductor implementation
|
||||
|
||||
DB_PUBLIC size_t DeviceClassDiode::param_id_A = 0;
|
||||
DB_PUBLIC size_t DeviceClassDiode::param_id_P = 1;
|
||||
|
||||
DB_PUBLIC size_t DeviceClassDiode::terminal_id_A = 0;
|
||||
DB_PUBLIC size_t DeviceClassDiode::terminal_id_C = 1;
|
||||
|
|
@ -288,6 +289,7 @@ DeviceClassDiode::DeviceClassDiode ()
|
|||
add_terminal_definition (db::DeviceTerminalDefinition ("C", "Cathode"));
|
||||
|
||||
add_parameter_definition (db::DeviceParameterDefinition ("A", "Area (square micrometer)", 0.0));
|
||||
add_parameter_definition (db::DeviceParameterDefinition ("P", "Perimeter (micrometer)", 0.0));
|
||||
}
|
||||
|
||||
bool DeviceClassDiode::combine_devices (Device *a, Device *b) const
|
||||
|
|
@ -301,6 +303,7 @@ bool DeviceClassDiode::combine_devices (Device *a, Device *b) const
|
|||
if (na1 == nb1 && na2 == nb2) {
|
||||
|
||||
a->set_parameter_value (0, a->parameter_value (0) + b->parameter_value (0));
|
||||
a->set_parameter_value (1, a->parameter_value (1) + b->parameter_value (1));
|
||||
|
||||
a->join_terminals (0, b, 0);
|
||||
a->join_terminals (1, b, 1);
|
||||
|
|
|
|||
|
|
@ -193,6 +193,7 @@ public:
|
|||
DeviceClassDiode ();
|
||||
|
||||
static size_t param_id_A;
|
||||
static size_t param_id_P;
|
||||
|
||||
static size_t terminal_id_A;
|
||||
static size_t terminal_id_C;
|
||||
|
|
|
|||
|
|
@ -521,7 +521,7 @@ Device *NetlistDeviceExtractor::create_device ()
|
|||
return device;
|
||||
}
|
||||
|
||||
void NetlistDeviceExtractor::define_terminal (Device *device, size_t terminal_id, size_t layer_index, const db::Region ®ion)
|
||||
void NetlistDeviceExtractor::define_terminal (Device *device, size_t terminal_id, size_t geometry_index, const db::Region ®ion)
|
||||
{
|
||||
tl_assert (mp_layout != 0);
|
||||
tl_assert (geometry_index < m_layers.size ());
|
||||
|
|
|
|||
|
|
@ -504,4 +504,78 @@ void NetlistDeviceExtractorBipolarTransistor::extract_devices (const std::vector
|
|||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------------
|
||||
// NetlistDeviceExtractorDiode implementation
|
||||
|
||||
NetlistDeviceExtractorDiode::NetlistDeviceExtractorDiode (const std::string &name)
|
||||
: db::NetlistDeviceExtractor (name)
|
||||
{
|
||||
// .. nothing yet ..
|
||||
}
|
||||
|
||||
void NetlistDeviceExtractorDiode::setup ()
|
||||
{
|
||||
define_layer ("P", "P region"); // #0
|
||||
define_layer ("N", "N region"); // #1
|
||||
define_layer ("tA", 0, "A terminal output"); // #2 -> P
|
||||
define_layer ("tC", 1, "C terminal output"); // #3 -> N
|
||||
|
||||
register_device_class (new db::DeviceClassDiode ());
|
||||
}
|
||||
|
||||
db::Connectivity NetlistDeviceExtractorDiode::get_connectivity (const db::Layout & /*layout*/, const std::vector<unsigned int> &layers) const
|
||||
{
|
||||
tl_assert (layers.size () >= 2);
|
||||
|
||||
unsigned int pregion = layers [0];
|
||||
unsigned int nregion = layers [1];
|
||||
|
||||
// The layer definition is plate1, plate2
|
||||
db::Connectivity conn;
|
||||
// collect all connected plate 1 shapes
|
||||
conn.connect (pregion, pregion);
|
||||
// collect all connected plate 1 shapes
|
||||
conn.connect (nregion, nregion);
|
||||
// connect the plates (NOTE that this is a logical, not a physical connection)
|
||||
conn.connect (pregion, nregion);
|
||||
return conn;
|
||||
}
|
||||
|
||||
void NetlistDeviceExtractorDiode::extract_devices (const std::vector<db::Region> &layer_geometry)
|
||||
{
|
||||
size_t pregion_geometry_index = 0;
|
||||
size_t nregion_geometry_index = 1;
|
||||
size_t a_terminal_geometry_index = 2;
|
||||
size_t c_terminal_geometry_index = 3;
|
||||
|
||||
const db::Region &pregion = layer_geometry [pregion_geometry_index];
|
||||
const db::Region &nregion = layer_geometry [nregion_geometry_index];
|
||||
|
||||
db::Region overlap (pregion);
|
||||
overlap.set_base_verbosity (pregion.base_verbosity ());
|
||||
overlap &= nregion;
|
||||
|
||||
for (db::Region::const_iterator p = overlap.begin_merged (); !p.at_end (); ++p) {
|
||||
|
||||
db::Device *device = create_device ();
|
||||
|
||||
device->set_trans (db::DCplxTrans ((p->box ().center () - db::Point ()) * dbu ()));
|
||||
|
||||
double area = p->area () * dbu () * dbu ();
|
||||
|
||||
device->set_parameter_value (db::DeviceClassDiode::param_id_A, area);
|
||||
device->set_parameter_value (db::DeviceClassDiode::param_id_P, dbu () * p->perimeter ());
|
||||
|
||||
define_terminal (device, db::DeviceClassDiode::terminal_id_A, a_terminal_geometry_index, *p);
|
||||
define_terminal (device, db::DeviceClassDiode::terminal_id_C, c_terminal_geometry_index, *p);
|
||||
|
||||
// allow derived classes to modify the device
|
||||
modify_device (*p, layer_geometry, device);
|
||||
|
||||
// output the device for debugging
|
||||
device_out (device, db::Region (*p));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -108,6 +108,10 @@ private:
|
|||
* The device class produced by this extractor is DeviceClassResistor.
|
||||
* The extractor extracts the three parameters of this class: R, A and P.
|
||||
* A is the area of the wire and P is the perimeter.
|
||||
*
|
||||
* The layers are R for the "wire" and "C" for the two contacts and the
|
||||
* end of the wire. "tA" and "tB" are the layers on which the A and B
|
||||
* terminals are produced.
|
||||
*/
|
||||
class DB_PUBLIC NetlistDeviceExtractorResistor
|
||||
: public db::NetlistDeviceExtractor
|
||||
|
|
@ -171,7 +175,7 @@ public:
|
|||
* The extractor extracts the three parameters of this class: C, A and P.
|
||||
* A is the area of the overlap area and P is the perimeter.
|
||||
*
|
||||
* The layers are P1 and P2 for the plates. A and B are layers where
|
||||
* The layers are P1 and P2 for the plates. tA and tB are layers where
|
||||
* the terminals for A and B are produced respectively.
|
||||
*/
|
||||
class DB_PUBLIC NetlistDeviceExtractorCapacitor
|
||||
|
|
@ -273,6 +277,51 @@ protected:
|
|||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief A device extractor for a planar diode
|
||||
*
|
||||
* This class supplies the generic extractor for a planar diode.
|
||||
* The diode is defined by two layers whose overlap area forms
|
||||
* the diode. The p-type layer forms the anode, the n-type layer
|
||||
* the cathode.
|
||||
*
|
||||
* The device class produced by this extractor is DeviceClassDiode.
|
||||
* The extractor extracts the two parameters of this class: A and P.
|
||||
* A is the area of the overlap area and P is the perimeter.
|
||||
*
|
||||
* The layers are "P" and "N" for the p and n region respectively.
|
||||
* The terminal output layers are "tA" and "tC" for anode and
|
||||
* cathode respectively.
|
||||
*/
|
||||
class DB_PUBLIC NetlistDeviceExtractorDiode
|
||||
: public db::NetlistDeviceExtractor
|
||||
{
|
||||
public:
|
||||
NetlistDeviceExtractorDiode (const std::string &name);
|
||||
|
||||
virtual void setup ();
|
||||
virtual db::Connectivity get_connectivity (const db::Layout &layout, const std::vector<unsigned int> &layers) const;
|
||||
virtual void extract_devices (const std::vector<db::Region> &layer_geometry);
|
||||
|
||||
protected:
|
||||
/**
|
||||
* @brief A callback when the device is produced
|
||||
* This callback is provided as a debugging port
|
||||
*/
|
||||
virtual void device_out (const db::Device * /*device*/, const db::Region & /*diode_area*/)
|
||||
{
|
||||
// .. no specific implementation ..
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Allow derived classes to modify the device
|
||||
*/
|
||||
virtual void modify_device (const db::Polygon & /*diode_area*/, const std::vector<db::Region> & /*layer_geometry*/, db::Device * /*device*/)
|
||||
{
|
||||
// .. no specific implementation ..
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
namespace tl
|
||||
|
|
@ -320,6 +369,12 @@ template<> struct type_traits<db::NetlistDeviceExtractorBipolarTransistor> : pub
|
|||
typedef tl::false_tag has_default_constructor;
|
||||
};
|
||||
|
||||
template<> struct type_traits<db::NetlistDeviceExtractorDiode> : public tl::type_traits<void>
|
||||
{
|
||||
typedef tl::false_tag has_copy_constructor;
|
||||
typedef tl::false_tag has_default_constructor;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -622,4 +622,34 @@ Class<db::NetlistDeviceExtractorBipolarTransistor> decl_NetlistDeviceExtractorBi
|
|||
"This class has been introduced in version 0.26."
|
||||
);
|
||||
|
||||
db::NetlistDeviceExtractorDiode *make_diode_extractor (const std::string &name)
|
||||
{
|
||||
return new db::NetlistDeviceExtractorDiode (name);
|
||||
}
|
||||
|
||||
Class<db::NetlistDeviceExtractorDiode> decl_NetlistDeviceExtractorDiode (decl_dbNetlistDeviceExtractor, "db", "DeviceExtractorDiode",
|
||||
gsi::constructor ("new", &make_diode_extractor, gsi::arg ("name"),
|
||||
"@brief Creates a new device extractor with the given name."
|
||||
),
|
||||
"@brief A device extractor for a planar diode\n"
|
||||
"\n"
|
||||
"This class supplies the generic extractor for a planar diode.\n"
|
||||
"The diode is defined by two layers whose overlap area forms\n"
|
||||
"the diode. The p-type layer forms the anode, the n-type layer\n"
|
||||
"the cathode.\n"
|
||||
"\n"
|
||||
"The device class produced by this extractor is DeviceClassDiode.\n"
|
||||
"The extractor extracts the two parameters of this class: A and P.\n"
|
||||
"A is the area of the overlap area and P is the perimeter.\n"
|
||||
"\n"
|
||||
"The layers are \"P\" and \"N\" for the p and n region respectively.\n"
|
||||
"The terminal output layers are \"tA\" and \"tC\" for anode and \n"
|
||||
"cathode respectively.\n"
|
||||
"\n"
|
||||
"This class is a closed one and methods cannot be reimplemented. To reimplement "
|
||||
"specific methods, see \\DeviceExtractor.\n"
|
||||
"\n"
|
||||
"This class has been introduced in version 0.26."
|
||||
);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -840,12 +840,10 @@ TEST(15_SerialDiodes)
|
|||
|
||||
db::Device *d1 = new db::Device (diode, "d1");
|
||||
d1->set_parameter_value (db::DeviceClassDiode::param_id_A, 2.0);
|
||||
d1->set_parameter_value (db::DeviceClassResistor::param_id_A, 5.0);
|
||||
d1->set_parameter_value (db::DeviceClassResistor::param_id_P, 10.0);
|
||||
d1->set_parameter_value (db::DeviceClassDiode::param_id_P, 5.0);
|
||||
db::Device *d2 = new db::Device (diode, "d2");
|
||||
d2->set_parameter_value (db::DeviceClassCapacitor::param_id_C, 3.0);
|
||||
d2->set_parameter_value (db::DeviceClassResistor::param_id_A, 1.0);
|
||||
d2->set_parameter_value (db::DeviceClassResistor::param_id_P, 2.0);
|
||||
d2->set_parameter_value (db::DeviceClassDiode::param_id_A, 3.0);
|
||||
d2->set_parameter_value (db::DeviceClassDiode::param_id_P, 1.0);
|
||||
|
||||
db::Circuit *circuit = new db::Circuit ();
|
||||
nl.add_circuit (circuit);
|
||||
|
|
@ -873,8 +871,8 @@ TEST(15_SerialDiodes)
|
|||
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n3);\n"
|
||||
" device '' d1 (A=n1,C=n2) (A=2);\n"
|
||||
" device '' d2 (A=n2,C=n3) (A=3);\n"
|
||||
" device '' d1 (A=n1,C=n2) (A=2,P=5);\n"
|
||||
" device '' d2 (A=n2,C=n3) (A=3,P=1);\n"
|
||||
"end;\n"
|
||||
);
|
||||
|
||||
|
|
@ -885,8 +883,8 @@ TEST(15_SerialDiodes)
|
|||
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n3);\n"
|
||||
" device '' d1 (A=n1,C=n2) (A=2);\n"
|
||||
" device '' d2 (A=n2,C=n3) (A=3);\n"
|
||||
" device '' d1 (A=n1,C=n2) (A=2,P=5);\n"
|
||||
" device '' d2 (A=n2,C=n3) (A=3,P=1);\n"
|
||||
"end;\n"
|
||||
);
|
||||
}
|
||||
|
|
@ -900,8 +898,10 @@ TEST(16_ParallelDiodes)
|
|||
|
||||
db::Device *d1 = new db::Device (diode, "d1");
|
||||
d1->set_parameter_value (db::DeviceClassDiode::param_id_A, 1.0);
|
||||
d1->set_parameter_value (db::DeviceClassDiode::param_id_P, 5.0);
|
||||
db::Device *d2 = new db::Device (diode, "d2");
|
||||
d2->set_parameter_value (db::DeviceClassDiode::param_id_A, 3.0);
|
||||
d2->set_parameter_value (db::DeviceClassDiode::param_id_P, 2.0);
|
||||
|
||||
db::Circuit *circuit = new db::Circuit ();
|
||||
nl.add_circuit (circuit);
|
||||
|
|
@ -926,8 +926,8 @@ TEST(16_ParallelDiodes)
|
|||
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n2);\n"
|
||||
" device '' d1 (A=n1,C=n2) (A=1);\n"
|
||||
" device '' d2 (A=n1,C=n2) (A=3);\n"
|
||||
" device '' d1 (A=n1,C=n2) (A=1,P=5);\n"
|
||||
" device '' d2 (A=n1,C=n2) (A=3,P=2);\n"
|
||||
"end;\n"
|
||||
);
|
||||
|
||||
|
|
@ -936,7 +936,7 @@ TEST(16_ParallelDiodes)
|
|||
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n2);\n"
|
||||
" device '' d1 (A=n1,C=n2) (A=4);\n"
|
||||
" device '' d1 (A=n1,C=n2) (A=4,P=7);\n"
|
||||
"end;\n"
|
||||
);
|
||||
}
|
||||
|
|
@ -950,8 +950,10 @@ TEST(17_AntiParallelDiodes)
|
|||
|
||||
db::Device *d1 = new db::Device (diode, "d1");
|
||||
d1->set_parameter_value (db::DeviceClassDiode::param_id_A, 1.0);
|
||||
d1->set_parameter_value (db::DeviceClassDiode::param_id_P, 5.0);
|
||||
db::Device *d2 = new db::Device (diode, "d2");
|
||||
d2->set_parameter_value (db::DeviceClassDiode::param_id_A, 3.0);
|
||||
d2->set_parameter_value (db::DeviceClassDiode::param_id_P, 2.0);
|
||||
|
||||
db::Circuit *circuit = new db::Circuit ();
|
||||
nl.add_circuit (circuit);
|
||||
|
|
@ -976,8 +978,8 @@ TEST(17_AntiParallelDiodes)
|
|||
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n2);\n"
|
||||
" device '' d1 (A=n1,C=n2) (A=1);\n"
|
||||
" device '' d2 (A=n2,C=n1) (A=3);\n"
|
||||
" device '' d1 (A=n1,C=n2) (A=1,P=5);\n"
|
||||
" device '' d2 (A=n2,C=n1) (A=3,P=2);\n"
|
||||
"end;\n"
|
||||
);
|
||||
|
||||
|
|
@ -988,8 +990,8 @@ TEST(17_AntiParallelDiodes)
|
|||
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n2);\n"
|
||||
" device '' d1 (A=n1,C=n2) (A=1);\n"
|
||||
" device '' d2 (A=n2,C=n1) (A=3);\n"
|
||||
" device '' d1 (A=n1,C=n2) (A=1,P=5);\n"
|
||||
" device '' d2 (A=n2,C=n1) (A=3,P=2);\n"
|
||||
"end;\n"
|
||||
);
|
||||
}
|
||||
|
|
@ -1662,3 +1664,402 @@ TEST(34_ParallelMOS4TransistorsDifferentLength)
|
|||
);
|
||||
}
|
||||
|
||||
TEST(35_SerialCapacitorsWithBulk)
|
||||
{
|
||||
db::DeviceClassCapacitorWithBulk *cap = new db::DeviceClassCapacitorWithBulk ();
|
||||
|
||||
db::Netlist nl;
|
||||
nl.add_device_class (cap);
|
||||
|
||||
db::Device *c1 = new db::Device (cap, "c1");
|
||||
c1->set_parameter_value (db::DeviceClassCapacitorWithBulk::param_id_C, 2.0);
|
||||
c1->set_parameter_value (db::DeviceClassResistor::param_id_A, 5.0);
|
||||
c1->set_parameter_value (db::DeviceClassResistor::param_id_P, 10.0);
|
||||
db::Device *c2 = new db::Device (cap, "c2");
|
||||
c2->set_parameter_value (db::DeviceClassCapacitorWithBulk::param_id_C, 3.0);
|
||||
c2->set_parameter_value (db::DeviceClassResistor::param_id_A, 1.0);
|
||||
c2->set_parameter_value (db::DeviceClassResistor::param_id_P, 2.0);
|
||||
|
||||
db::Circuit *circuit = new db::Circuit ();
|
||||
nl.add_circuit (circuit);
|
||||
|
||||
db::Pin pin_a = circuit->add_pin ("A");
|
||||
db::Pin pin_b = circuit->add_pin ("B");
|
||||
db::Pin pin_bulk = circuit->add_pin ("BULK");
|
||||
|
||||
circuit->add_device (c1);
|
||||
circuit->add_device (c2);
|
||||
|
||||
db::Net *nb = new db::Net ("nb");
|
||||
circuit->add_net (nb);
|
||||
circuit->connect_pin (pin_bulk.id (), nb);
|
||||
c1->connect_terminal (db::DeviceClassCapacitorWithBulk::terminal_id_W, nb);
|
||||
|
||||
db::Net *n1 = new db::Net ("n1");
|
||||
circuit->add_net (n1);
|
||||
circuit->connect_pin (pin_a.id (), n1);
|
||||
c1->connect_terminal (db::DeviceClassCapacitorWithBulk::terminal_id_A, n1);
|
||||
|
||||
db::Net *n2 = new db::Net ("n2");
|
||||
circuit->add_net (n2);
|
||||
c1->connect_terminal (db::DeviceClassCapacitorWithBulk::terminal_id_B, n2);
|
||||
c2->connect_terminal (db::DeviceClassCapacitorWithBulk::terminal_id_A, n2);
|
||||
c2->connect_terminal (db::DeviceClassCapacitorWithBulk::terminal_id_W, n2);
|
||||
|
||||
db::Net *n3 = new db::Net ("n3");
|
||||
circuit->add_net (n3);
|
||||
c2->connect_terminal (db::DeviceClassCapacitorWithBulk::terminal_id_B, n3);
|
||||
circuit->connect_pin (pin_b.id (), n3);
|
||||
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n3,BULK=nb);\n"
|
||||
" device '' c1 (A=n1,B=n2,W=nb) (C=2,A=5,P=10);\n"
|
||||
" device '' c2 (A=n2,B=n3,W=n2) (C=3,A=1,P=2);\n"
|
||||
"end;\n"
|
||||
);
|
||||
|
||||
nl.combine_devices ();
|
||||
|
||||
// no combination because bulk terminals are connected differently
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n3,BULK=nb);\n"
|
||||
" device '' c1 (A=n1,B=n2,W=nb) (C=2,A=5,P=10);\n"
|
||||
" device '' c2 (A=n2,B=n3,W=n2) (C=3,A=1,P=2);\n"
|
||||
"end;\n"
|
||||
);
|
||||
|
||||
c2->connect_terminal (db::DeviceClassCapacitorWithBulk::terminal_id_W, nb);
|
||||
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n3,BULK=nb);\n"
|
||||
" device '' c1 (A=n1,B=n2,W=nb) (C=2,A=5,P=10);\n"
|
||||
" device '' c2 (A=n2,B=n3,W=nb) (C=3,A=1,P=2);\n"
|
||||
"end;\n"
|
||||
);
|
||||
|
||||
nl.combine_devices ();
|
||||
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n3,BULK=nb);\n"
|
||||
" device '' c1 (A=n1,B=n3,W=nb) (C=1.2,A=6,P=12);\n"
|
||||
"end;\n"
|
||||
);
|
||||
}
|
||||
|
||||
TEST(36_ParallelCapacitorsWithBulk)
|
||||
{
|
||||
db::DeviceClassCapacitorWithBulk *cap = new db::DeviceClassCapacitorWithBulk ();
|
||||
|
||||
db::Netlist nl;
|
||||
nl.add_device_class (cap);
|
||||
|
||||
db::Device *c1 = new db::Device (cap, "c1");
|
||||
c1->set_parameter_value (db::DeviceClassCapacitorWithBulk::param_id_C, 1.0);
|
||||
c1->set_parameter_value (db::DeviceClassResistor::param_id_A, 5.0);
|
||||
c1->set_parameter_value (db::DeviceClassResistor::param_id_P, 10.0);
|
||||
db::Device *c2 = new db::Device (cap, "c2");
|
||||
c2->set_parameter_value (db::DeviceClassCapacitorWithBulk::param_id_C, 3.0);
|
||||
c2->set_parameter_value (db::DeviceClassResistor::param_id_A, 1.0);
|
||||
c2->set_parameter_value (db::DeviceClassResistor::param_id_P, 2.0);
|
||||
|
||||
db::Circuit *circuit = new db::Circuit ();
|
||||
nl.add_circuit (circuit);
|
||||
|
||||
db::Pin pin_a = circuit->add_pin ("A");
|
||||
db::Pin pin_b = circuit->add_pin ("B");
|
||||
db::Pin pin_bulk = circuit->add_pin ("BULK");
|
||||
|
||||
circuit->add_device (c1);
|
||||
circuit->add_device (c2);
|
||||
|
||||
db::Net *nb = new db::Net ("nb");
|
||||
circuit->add_net (nb);
|
||||
circuit->connect_pin (pin_bulk.id (), nb);
|
||||
c1->connect_terminal (db::DeviceClassCapacitorWithBulk::terminal_id_W, nb);
|
||||
|
||||
db::Net *n1 = new db::Net ("n1");
|
||||
circuit->add_net (n1);
|
||||
circuit->connect_pin (pin_a.id (), n1);
|
||||
c1->connect_terminal (db::DeviceClassCapacitorWithBulk::terminal_id_A, n1);
|
||||
c2->connect_terminal (db::DeviceClassCapacitorWithBulk::terminal_id_A, n1);
|
||||
|
||||
db::Net *n2 = new db::Net ("n2");
|
||||
circuit->add_net (n2);
|
||||
circuit->connect_pin (pin_b.id (), n2);
|
||||
c1->connect_terminal (db::DeviceClassCapacitorWithBulk::terminal_id_B, n2);
|
||||
c2->connect_terminal (db::DeviceClassCapacitorWithBulk::terminal_id_B, n2);
|
||||
c2->connect_terminal (db::DeviceClassCapacitorWithBulk::terminal_id_W, n2);
|
||||
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n2,BULK=nb);\n"
|
||||
" device '' c1 (A=n1,B=n2,W=nb) (C=1,A=5,P=10);\n"
|
||||
" device '' c2 (A=n1,B=n2,W=n2) (C=3,A=1,P=2);\n"
|
||||
"end;\n"
|
||||
);
|
||||
|
||||
nl.combine_devices ();
|
||||
|
||||
// devices are not combined as the bulk terminals are connected differently
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n2,BULK=nb);\n"
|
||||
" device '' c1 (A=n1,B=n2,W=nb) (C=1,A=5,P=10);\n"
|
||||
" device '' c2 (A=n1,B=n2,W=n2) (C=3,A=1,P=2);\n"
|
||||
"end;\n"
|
||||
);
|
||||
|
||||
c2->connect_terminal (db::DeviceClassCapacitorWithBulk::terminal_id_W, nb);
|
||||
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n2,BULK=nb);\n"
|
||||
" device '' c1 (A=n1,B=n2,W=nb) (C=1,A=5,P=10);\n"
|
||||
" device '' c2 (A=n1,B=n2,W=nb) (C=3,A=1,P=2);\n"
|
||||
"end;\n"
|
||||
);
|
||||
|
||||
nl.combine_devices ();
|
||||
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n2,BULK=nb);\n"
|
||||
" device '' c1 (A=n1,B=n2,W=nb) (C=4,A=6,P=12);\n"
|
||||
"end;\n"
|
||||
);
|
||||
}
|
||||
|
||||
TEST(37_SerialResistorsWithBulk)
|
||||
{
|
||||
db::DeviceClassResistorWithBulk *cap = new db::DeviceClassResistorWithBulk ();
|
||||
|
||||
db::Netlist nl;
|
||||
nl.add_device_class (cap);
|
||||
|
||||
db::Device *r1 = new db::Device (cap, "r1");
|
||||
r1->set_parameter_value (db::DeviceClassResistorWithBulk::param_id_R, 2.0);
|
||||
r1->set_parameter_value (db::DeviceClassResistor::param_id_A, 5.0);
|
||||
r1->set_parameter_value (db::DeviceClassResistor::param_id_P, 10.0);
|
||||
db::Device *r2 = new db::Device (cap, "r2");
|
||||
r2->set_parameter_value (db::DeviceClassResistorWithBulk::param_id_R, 0.5);
|
||||
r2->set_parameter_value (db::DeviceClassResistor::param_id_A, 1.0);
|
||||
r2->set_parameter_value (db::DeviceClassResistor::param_id_P, 2.0);
|
||||
|
||||
db::Circuit *circuit = new db::Circuit ();
|
||||
nl.add_circuit (circuit);
|
||||
|
||||
db::Pin pin_a = circuit->add_pin ("A");
|
||||
db::Pin pin_b = circuit->add_pin ("B");
|
||||
db::Pin pin_bulk = circuit->add_pin ("BULK");
|
||||
|
||||
circuit->add_device (r1);
|
||||
circuit->add_device (r2);
|
||||
|
||||
db::Net *nb = new db::Net ("nb");
|
||||
circuit->add_net (nb);
|
||||
circuit->connect_pin (pin_bulk.id (), nb);
|
||||
r1->connect_terminal (db::DeviceClassResistorWithBulk::terminal_id_W, nb);
|
||||
|
||||
db::Net *n1 = new db::Net ("n1");
|
||||
circuit->add_net (n1);
|
||||
circuit->connect_pin (pin_a.id (), n1);
|
||||
r1->connect_terminal (db::DeviceClassResistorWithBulk::terminal_id_A, n1);
|
||||
|
||||
db::Net *n2 = new db::Net ("n2");
|
||||
circuit->add_net (n2);
|
||||
r1->connect_terminal (db::DeviceClassResistorWithBulk::terminal_id_B, n2);
|
||||
r2->connect_terminal (db::DeviceClassResistorWithBulk::terminal_id_A, n2);
|
||||
r2->connect_terminal (db::DeviceClassResistorWithBulk::terminal_id_W, n2);
|
||||
|
||||
db::Net *n3 = new db::Net ("n3");
|
||||
circuit->add_net (n3);
|
||||
r2->connect_terminal (db::DeviceClassResistorWithBulk::terminal_id_B, n3);
|
||||
circuit->connect_pin (pin_b.id (), n3);
|
||||
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n3,BULK=nb);\n"
|
||||
" device '' r1 (A=n1,B=n2,W=nb) (R=2,A=5,P=10);\n"
|
||||
" device '' r2 (A=n2,B=n3,W=n2) (R=0.5,A=1,P=2);\n"
|
||||
"end;\n"
|
||||
);
|
||||
|
||||
nl.combine_devices ();
|
||||
|
||||
// no combination because bulk terminals are connected differently
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n3,BULK=nb);\n"
|
||||
" device '' r1 (A=n1,B=n2,W=nb) (R=2,A=5,P=10);\n"
|
||||
" device '' r2 (A=n2,B=n3,W=n2) (R=0.5,A=1,P=2);\n"
|
||||
"end;\n"
|
||||
);
|
||||
|
||||
r2->connect_terminal (db::DeviceClassResistorWithBulk::terminal_id_W, nb);
|
||||
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n3,BULK=nb);\n"
|
||||
" device '' r1 (A=n1,B=n2,W=nb) (R=2,A=5,P=10);\n"
|
||||
" device '' r2 (A=n2,B=n3,W=nb) (R=0.5,A=1,P=2);\n"
|
||||
"end;\n"
|
||||
);
|
||||
|
||||
nl.combine_devices ();
|
||||
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n3,BULK=nb);\n"
|
||||
" device '' r1 (A=n1,B=n3,W=nb) (R=2.5,A=6,P=12);\n"
|
||||
"end;\n"
|
||||
);
|
||||
}
|
||||
|
||||
TEST(38_ParallelResistorsWithBulk)
|
||||
{
|
||||
db::DeviceClassResistorWithBulk *cap = new db::DeviceClassResistorWithBulk ();
|
||||
|
||||
db::Netlist nl;
|
||||
nl.add_device_class (cap);
|
||||
|
||||
db::Device *r1 = new db::Device (cap, "r1");
|
||||
r1->set_parameter_value (db::DeviceClassResistorWithBulk::param_id_R, 2.0);
|
||||
r1->set_parameter_value (db::DeviceClassResistor::param_id_A, 5.0);
|
||||
r1->set_parameter_value (db::DeviceClassResistor::param_id_P, 10.0);
|
||||
db::Device *r2 = new db::Device (cap, "r2");
|
||||
r2->set_parameter_value (db::DeviceClassResistorWithBulk::param_id_R, 0.5);
|
||||
r2->set_parameter_value (db::DeviceClassResistor::param_id_A, 1.0);
|
||||
r2->set_parameter_value (db::DeviceClassResistor::param_id_P, 2.0);
|
||||
|
||||
db::Circuit *circuit = new db::Circuit ();
|
||||
nl.add_circuit (circuit);
|
||||
|
||||
db::Pin pin_a = circuit->add_pin ("A");
|
||||
db::Pin pin_b = circuit->add_pin ("B");
|
||||
db::Pin pin_bulk = circuit->add_pin ("BULK");
|
||||
|
||||
circuit->add_device (r1);
|
||||
circuit->add_device (r2);
|
||||
|
||||
db::Net *nb = new db::Net ("nb");
|
||||
circuit->add_net (nb);
|
||||
circuit->connect_pin (pin_bulk.id (), nb);
|
||||
r1->connect_terminal (db::DeviceClassResistorWithBulk::terminal_id_W, nb);
|
||||
|
||||
db::Net *n1 = new db::Net ("n1");
|
||||
circuit->add_net (n1);
|
||||
circuit->connect_pin (pin_a.id (), n1);
|
||||
r1->connect_terminal (db::DeviceClassResistorWithBulk::terminal_id_A, n1);
|
||||
r2->connect_terminal (db::DeviceClassResistorWithBulk::terminal_id_A, n1);
|
||||
|
||||
db::Net *n2 = new db::Net ("n2");
|
||||
circuit->add_net (n2);
|
||||
circuit->connect_pin (pin_b.id (), n2);
|
||||
r1->connect_terminal (db::DeviceClassResistorWithBulk::terminal_id_B, n2);
|
||||
r2->connect_terminal (db::DeviceClassResistorWithBulk::terminal_id_B, n2);
|
||||
r2->connect_terminal (db::DeviceClassResistorWithBulk::terminal_id_W, n2);
|
||||
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n2,BULK=nb);\n"
|
||||
" device '' r1 (A=n1,B=n2,W=nb) (R=2,A=5,P=10);\n"
|
||||
" device '' r2 (A=n1,B=n2,W=n2) (R=0.5,A=1,P=2);\n"
|
||||
"end;\n"
|
||||
);
|
||||
|
||||
nl.combine_devices ();
|
||||
|
||||
// devices are not combined as the bulk terminals are connected differently
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n2,BULK=nb);\n"
|
||||
" device '' r1 (A=n1,B=n2,W=nb) (R=2,A=5,P=10);\n"
|
||||
" device '' r2 (A=n1,B=n2,W=n2) (R=0.5,A=1,P=2);\n"
|
||||
"end;\n"
|
||||
);
|
||||
|
||||
r2->connect_terminal (db::DeviceClassResistorWithBulk::terminal_id_W, nb);
|
||||
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n2,BULK=nb);\n"
|
||||
" device '' r1 (A=n1,B=n2,W=nb) (R=2,A=5,P=10);\n"
|
||||
" device '' r2 (A=n1,B=n2,W=nb) (R=0.5,A=1,P=2);\n"
|
||||
"end;\n"
|
||||
);
|
||||
|
||||
nl.combine_devices ();
|
||||
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n2,BULK=nb);\n"
|
||||
" device '' r1 (A=n1,B=n2,W=nb) (R=0.4,A=6,P=12);\n"
|
||||
"end;\n"
|
||||
);
|
||||
}
|
||||
|
||||
TEST(39_ParallelBipolarTransistors)
|
||||
{
|
||||
db::DeviceClassBipolarTransistor *cls = new db::DeviceClassBipolarTransistor ();
|
||||
|
||||
db::Netlist nl;
|
||||
nl.add_device_class (cls);
|
||||
|
||||
db::Device *d1 = new db::Device (cls, "d1");
|
||||
d1->set_parameter_value (db::DeviceClassBipolarTransistor::param_id_AE, 2.0);
|
||||
d1->set_parameter_value (db::DeviceClassBipolarTransistor::param_id_PE, 12.0);
|
||||
db::Device *d2 = new db::Device (cls, "d2");
|
||||
d2->set_parameter_value (db::DeviceClassBipolarTransistor::param_id_AE, 3.0);
|
||||
d2->set_parameter_value (db::DeviceClassBipolarTransistor::param_id_PE, 13.0);
|
||||
|
||||
db::Circuit *circuit = new db::Circuit ();
|
||||
nl.add_circuit (circuit);
|
||||
|
||||
db::Pin pin_a = circuit->add_pin ("A");
|
||||
db::Pin pin_b = circuit->add_pin ("B");
|
||||
db::Pin pin_c = circuit->add_pin ("C");
|
||||
|
||||
circuit->add_device (d1);
|
||||
circuit->add_device (d2);
|
||||
|
||||
db::Net *n1 = new db::Net ("n1");
|
||||
circuit->add_net (n1);
|
||||
circuit->connect_pin (pin_a.id (), n1);
|
||||
d1->connect_terminal (db::DeviceClassBipolarTransistor::terminal_id_C, n1);
|
||||
d2->connect_terminal (db::DeviceClassBipolarTransistor::terminal_id_C, n1);
|
||||
|
||||
db::Net *n2 = new db::Net ("n2");
|
||||
circuit->add_net (n2);
|
||||
circuit->connect_pin (pin_b.id (), n2);
|
||||
d1->connect_terminal (db::DeviceClassBipolarTransistor::terminal_id_B, n2);
|
||||
d2->connect_terminal (db::DeviceClassBipolarTransistor::terminal_id_B, n2);
|
||||
d2->connect_terminal (db::DeviceClassBipolarTransistor::terminal_id_E, n2);
|
||||
|
||||
db::Net *n3 = new db::Net ("n3");
|
||||
circuit->add_net (n3);
|
||||
circuit->connect_pin (pin_c.id (), n3);
|
||||
d1->connect_terminal (db::DeviceClassBipolarTransistor::terminal_id_E, n3);
|
||||
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n2,C=n3);\n"
|
||||
" device '' d1 (C=n1,B=n2,E=n3) (AE=2,PE=12);\n"
|
||||
" device '' d2 (C=n1,B=n2,E=n2) (AE=3,PE=13);\n"
|
||||
"end;\n"
|
||||
);
|
||||
|
||||
nl.combine_devices ();
|
||||
|
||||
// no combination as emitters are connected differently
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n2,C=n3);\n"
|
||||
" device '' d1 (C=n1,B=n2,E=n3) (AE=2,PE=12);\n"
|
||||
" device '' d2 (C=n1,B=n2,E=n2) (AE=3,PE=13);\n"
|
||||
"end;\n"
|
||||
);
|
||||
|
||||
d2->connect_terminal (db::DeviceClassBipolarTransistor::terminal_id_E, n3);
|
||||
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n2,C=n3);\n"
|
||||
" device '' d1 (C=n1,B=n2,E=n3) (AE=2,PE=12);\n"
|
||||
" device '' d2 (C=n1,B=n2,E=n3) (AE=3,PE=13);\n"
|
||||
"end;\n"
|
||||
);
|
||||
|
||||
nl.combine_devices ();
|
||||
|
||||
EXPECT_EQ (nl.to_string (),
|
||||
"circuit '' (A=n1,B=n2,C=n3);\n"
|
||||
" device '' d1 (C=n1,B=n2,E=n3) (AE=5,PE=25);\n"
|
||||
"end;\n"
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 323 B |
|
After Width: | Height: | Size: 373 B |
|
After Width: | Height: | Size: 485 B |
|
After Width: | Height: | Size: 689 B |
|
After Width: | Height: | Size: 374 B |
|
After Width: | Height: | Size: 399 B |
|
After Width: | Height: | Size: 505 B |
|
After Width: | Height: | Size: 752 B |
|
|
@ -25,9 +25,9 @@
|
|||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4142136"
|
||||
inkscape:cx="346.93569"
|
||||
inkscape:cy="970.66949"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="-37.273909"
|
||||
inkscape:cy="695.91553"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
|
|
@ -39,7 +39,9 @@
|
|||
inkscape:window-height="991"
|
||||
inkscape:window-x="34"
|
||||
inkscape:window-y="51"
|
||||
inkscape:window-maximized="0">
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:snap-global="true"
|
||||
inkscape:snap-others="false">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid4136"
|
||||
|
|
@ -2401,5 +2403,609 @@
|
|||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-filename="icon_conn_light_16.png" />
|
||||
<rect
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect4407"
|
||||
width="48"
|
||||
height="48"
|
||||
x="5"
|
||||
y="297.36221"
|
||||
inkscape:export-filename="icon_device_bjt_48.png" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:'URW Gothic L';-inkscape-font-specification:'URW Gothic L Book';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="4.8499999"
|
||||
y="357.19971"
|
||||
id="text4409"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4411"
|
||||
x="4.8499999"
|
||||
y="357.19971"
|
||||
style="font-size:5px">icon_device_bjt_48.png</tspan></text>
|
||||
<rect
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect4413"
|
||||
width="32"
|
||||
height="32"
|
||||
x="65"
|
||||
y="297.36221"
|
||||
inkscape:export-filename="icon_device_bjt_32.png" />
|
||||
<rect
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect4415"
|
||||
width="24"
|
||||
height="24"
|
||||
x="115"
|
||||
y="297.36221"
|
||||
inkscape:export-filename="icon_device_bjt_24.png" />
|
||||
<rect
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect4417"
|
||||
width="16"
|
||||
height="16"
|
||||
x="155"
|
||||
y="297.36221"
|
||||
inkscape:export-filename="icon_device_bjt_16.png" />
|
||||
<path
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 14,310.3622 2,-0.99999 5,16.99999 -2,1 z"
|
||||
id="rect4419"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:export-filename="icon_device_bjt_48.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
y="309.36221"
|
||||
x="42"
|
||||
height="1.9999992"
|
||||
width="10"
|
||||
id="rect4421"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
inkscape:export-filename="icon_device_bjt_48.png" />
|
||||
<rect
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
y="306.36218"
|
||||
x="66"
|
||||
height="0.99999923"
|
||||
width="5"
|
||||
id="rect4423"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
inkscape:export-filename="icon_device_bjt_32.png" />
|
||||
<rect
|
||||
transform="matrix(0,-1,1,0,0,0)"
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
y="72"
|
||||
x="-320.36218"
|
||||
height="17"
|
||||
width="3"
|
||||
id="rect4425"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
inkscape:export-filename="icon_device_bjt_32.png" />
|
||||
<rect
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
y="306.36218"
|
||||
x="90"
|
||||
height="0.99999923"
|
||||
width="5"
|
||||
id="rect4427"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
inkscape:export-filename="icon_device_bjt_32.png" />
|
||||
<rect
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
y="303.36218"
|
||||
x="116"
|
||||
height="1.0000221"
|
||||
width="5"
|
||||
id="rect4429"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
inkscape:export-filename="icon_device_bjt_24.png" />
|
||||
<rect
|
||||
transform="matrix(0,-1,1,0,0,0)"
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
y="121"
|
||||
x="-314.36218"
|
||||
height="11"
|
||||
width="3"
|
||||
id="rect4431"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
inkscape:export-filename="icon_device_bjt_24.png" />
|
||||
<rect
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
y="303.36221"
|
||||
x="132"
|
||||
height="0.99997789"
|
||||
width="5"
|
||||
id="rect4433"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
inkscape:export-filename="icon_device_bjt_24.png" />
|
||||
<rect
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
y="301.36218"
|
||||
x="156"
|
||||
height="0.99999923"
|
||||
width="2"
|
||||
id="rect4435"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
inkscape:export-filename="icon_device_bjt_16.png" />
|
||||
<rect
|
||||
transform="matrix(0,-1,1,0,0,0)"
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
y="158"
|
||||
x="-309.36218"
|
||||
height="9"
|
||||
width="2"
|
||||
id="rect4437"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
inkscape:export-filename="icon_device_bjt_16.png" />
|
||||
<rect
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
y="301.36218"
|
||||
x="167"
|
||||
height="0.99999923"
|
||||
width="2"
|
||||
id="rect4439"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
inkscape:export-filename="icon_device_bjt_16.png" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:'URW Gothic L';-inkscape-font-specification:'URW Gothic L Book';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="69.684998"
|
||||
y="346.12219"
|
||||
id="text4442"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4444"
|
||||
x="69.684998"
|
||||
y="346.12219"
|
||||
style="font-size:5px">icon_device_bjt_32.png</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:'URW Gothic L';-inkscape-font-specification:'URW Gothic L Book';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="111.88164"
|
||||
y="336.12219"
|
||||
id="text4446"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4448"
|
||||
x="111.88164"
|
||||
y="336.12219"
|
||||
style="font-size:5px">icon_device_bjt_24.png</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:'URW Gothic L';-inkscape-font-specification:'URW Gothic L Book';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="156.88164"
|
||||
y="326.12219"
|
||||
id="text4450"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4452"
|
||||
x="156.88164"
|
||||
y="326.12219"
|
||||
style="font-size:5px">icon_device_bjt_16.png</tspan></text>
|
||||
<rect
|
||||
transform="matrix(0,-1,1,0,0,0)"
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
y="16"
|
||||
x="-331.36221"
|
||||
height="26"
|
||||
width="5"
|
||||
id="rect4454"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
inkscape:export-filename="icon_device_bjt_48.png" />
|
||||
<path
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 42,309.36218 2,1.00002 -5,17 -2,-1 z"
|
||||
id="rect4456"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:export-filename="icon_device_bjt_48.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
y="309.36221"
|
||||
x="6"
|
||||
height="1.9999992"
|
||||
width="10"
|
||||
id="rect4458"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
inkscape:export-filename="icon_device_bjt_48.png" />
|
||||
<rect
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
y="331.36221"
|
||||
x="28"
|
||||
height="12"
|
||||
width="2"
|
||||
id="rect4460"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
inkscape:export-filename="icon_device_bjt_48.png" />
|
||||
<path
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 70,306.36218 1,0 3,11.00002 -1,0 z"
|
||||
id="rect4464"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:export-filename="icon_device_bjt_32.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<path
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 90,306.36218 1,0 -3,11.00002 -1,0 z"
|
||||
id="rect4466"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:export-filename="icon_device_bjt_32.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
y="319.36218"
|
||||
x="80"
|
||||
height="9"
|
||||
width="1"
|
||||
id="rect4468"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
inkscape:export-filename="icon_device_bjt_32.png" />
|
||||
<path
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 120,303.36218 1,0 2,8.00002 -1,0 z"
|
||||
id="rect4470"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:export-filename="icon_device_bjt_24.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<path
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 132,303.36218 1,0 -2,8.00002 -1,0 z"
|
||||
id="rect4472"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:export-filename="icon_device_bjt_24.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
y="313.36218"
|
||||
x="126"
|
||||
height="7.0000067"
|
||||
width="1"
|
||||
id="rect4474"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
inkscape:export-filename="icon_device_bjt_24.png" />
|
||||
<path
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 157,301.36218 1,0 2,6.00002 -1,0 z"
|
||||
id="rect4476"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:export-filename="icon_device_bjt_16.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<path
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 167,301.3622 1,0 -2,6.00002 -1,0 z"
|
||||
id="rect4478"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:export-filename="icon_device_bjt_16.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
y="307.36218"
|
||||
x="162"
|
||||
height="5"
|
||||
width="1"
|
||||
id="rect4480"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
inkscape:export-filename="icon_device_bjt_16.png" />
|
||||
<path
|
||||
style="fill:#5a5a5a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 38,313.3622 7,2 -7,11 0,-13"
|
||||
id="path4484"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:export-filename="icon_device_bjt_48.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<path
|
||||
style="fill:#5a5a5a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 87.397748,308.75995 4.734835,1.17677 -4.569321,7.15511 -0.165514,-8.33188"
|
||||
id="path4484-3"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:export-filename="icon_device_bjt_32.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<path
|
||||
style="fill:#5a5a5a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 130.32766,304.9247 3.67234,0.90922 -3.54396,5.52828 -0.12838,-6.4375"
|
||||
id="path4484-3-9"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:export-filename="icon_device_bjt_24.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<path
|
||||
style="fill:#5a5a5a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 165.3125,302.4247 3,0.74276 -2.89512,4.51615 -0.10488,-5.25891"
|
||||
id="path4484-3-9-0"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:export-filename="icon_device_bjt_16.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
y="367.36221"
|
||||
x="5"
|
||||
height="48"
|
||||
width="48"
|
||||
id="rect4537"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-filename="icon_device_diode_48.png" />
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text4539"
|
||||
y="427.19971"
|
||||
x="4.8499999"
|
||||
style="font-style:normal;font-variant:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:'URW Gothic L';-inkscape-font-specification:'URW Gothic L Book';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:5px"
|
||||
y="427.19971"
|
||||
x="4.8499999"
|
||||
id="tspan4541"
|
||||
sodipodi:role="line">icon_device_diode_48.png</tspan></text>
|
||||
<rect
|
||||
y="367.36221"
|
||||
x="65"
|
||||
height="32"
|
||||
width="32"
|
||||
id="rect4543"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-filename="icon_device_diode_32.png" />
|
||||
<rect
|
||||
y="367.36221"
|
||||
x="115"
|
||||
height="24"
|
||||
width="24"
|
||||
id="rect4545"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-filename="icon_device_diode_24.png" />
|
||||
<rect
|
||||
y="367.36221"
|
||||
x="155"
|
||||
height="16"
|
||||
width="16"
|
||||
id="rect4547"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-filename="icon_device_diode_16.png" />
|
||||
<rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect4549"
|
||||
width="13"
|
||||
height="1.9999992"
|
||||
x="37"
|
||||
y="390.36218"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-filename="icon_device_diode_48.png" />
|
||||
<rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect4555"
|
||||
width="9"
|
||||
height="0.99999923"
|
||||
x="67"
|
||||
y="383.36218"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-filename="icon_device_diode_32.png" />
|
||||
<rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect4559"
|
||||
width="8"
|
||||
height="0.99999923"
|
||||
x="87"
|
||||
y="383.36218"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-filename="icon_device_diode_32.png" />
|
||||
<rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect4567"
|
||||
width="5"
|
||||
height="0.99999923"
|
||||
x="156"
|
||||
y="375.36218"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-filename="icon_device_diode_16.png" />
|
||||
<rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect4573"
|
||||
width="4"
|
||||
height="0.99999923"
|
||||
x="166"
|
||||
y="375.36218"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-filename="icon_device_diode_16.png" />
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text4575"
|
||||
y="416.12219"
|
||||
x="69.684998"
|
||||
style="font-style:normal;font-variant:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:'URW Gothic L';-inkscape-font-specification:'URW Gothic L Book';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:5px"
|
||||
y="416.12219"
|
||||
x="69.684998"
|
||||
id="tspan4577"
|
||||
sodipodi:role="line">icon_device_diode_32.png</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text4579"
|
||||
y="406.12219"
|
||||
x="111.88164"
|
||||
style="font-style:normal;font-variant:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:'URW Gothic L';-inkscape-font-specification:'URW Gothic L Book';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:5px"
|
||||
y="406.12219"
|
||||
x="111.88164"
|
||||
id="tspan4581"
|
||||
sodipodi:role="line">icon_device_diode_24.png</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text4583"
|
||||
y="396.12219"
|
||||
x="156.88164"
|
||||
style="font-style:normal;font-variant:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:'URW Gothic L';-inkscape-font-specification:'URW Gothic L Book';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:5px"
|
||||
y="396.12219"
|
||||
x="156.88164"
|
||||
id="tspan4585"
|
||||
sodipodi:role="line">icon_device_diode_16.png</tspan></text>
|
||||
<rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect4587"
|
||||
width="2"
|
||||
height="21.999992"
|
||||
x="36"
|
||||
y="380.36221"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-filename="icon_device_diode_48.png" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#5a5a5a;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 36.948638,391.35876 -14.967118,-11.0117 0,22.0234 14.967118,-11.0117"
|
||||
id="path4593"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:export-filename="icon_device_diode_48.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
inkscape:export-filename="icon_device_diode_48.png"
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
y="390.36218"
|
||||
x="8"
|
||||
height="1.9999992"
|
||||
width="14"
|
||||
id="rect4595"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||
<rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect4587-7"
|
||||
width="1"
|
||||
height="12.999991"
|
||||
x="86"
|
||||
y="377.36221"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-filename="icon_device_diode_32.png" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#5a5a5a;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 86.512079,383.81863 -10.017905,-6.96932 0,14.01293 10.017905,-7.03183"
|
||||
id="path4593-5"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:export-filename="icon_device_diode_32.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
inkscape:export-filename="icon_device_diode_24.png"
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
y="379.36221"
|
||||
x="116"
|
||||
height="0.99999923"
|
||||
width="7"
|
||||
id="rect4615"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||
<rect
|
||||
inkscape:export-filename="icon_device_diode_24.png"
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
y="379.36221"
|
||||
x="132"
|
||||
height="0.99999923"
|
||||
width="6"
|
||||
id="rect4617"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||
<rect
|
||||
inkscape:export-filename="icon_device_diode_24.png"
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
y="375.36221"
|
||||
x="131"
|
||||
height="9"
|
||||
width="1"
|
||||
id="rect4619"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||
<path
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-filename="icon_device_diode_24.png"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4621"
|
||||
d="m 131.49186,379.84749 -7.99186,-4.98533 0,10.02381 7.99186,-5.03005"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#5a5a5a;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5a5a5a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect4623"
|
||||
width="1"
|
||||
height="9"
|
||||
x="166"
|
||||
y="371.36221"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-filename="icon_device_diode_16.png" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#5a5a5a;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 166.73101,375.84372 -6.24596,-3.98824 0,8.019 6.24596,-4.02401"
|
||||
id="path4625"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:export-filename="icon_device_diode_16.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
</g>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 170 KiB After Width: | Height: | Size: 213 KiB |
|
|
@ -1510,17 +1510,33 @@ static QIcon icon_for_pin ()
|
|||
static QIcon icon_for_device (const db::DeviceClass *dc)
|
||||
{
|
||||
QIcon icon;
|
||||
// TODO: diode, inductor, generic device ...
|
||||
// TODO: inductor, generic device ...
|
||||
if (dynamic_cast<const db::DeviceClassResistor *> (dc)) {
|
||||
icon.addPixmap (QPixmap (QString::fromUtf8 (":/images/icon_device_res_48.png")));
|
||||
icon.addPixmap (QPixmap (QString::fromUtf8 (":/images/icon_device_res_32.png")));
|
||||
icon.addPixmap (QPixmap (QString::fromUtf8 (":/images/icon_device_res_24.png")));
|
||||
icon.addPixmap (QPixmap (QString::fromUtf8 (":/images/icon_device_res_16.png")));
|
||||
} else if (dynamic_cast<const db::DeviceClassInductor *> (dc)) {
|
||||
// fake ...
|
||||
icon.addPixmap (QPixmap (QString::fromUtf8 (":/images/icon_device_res_48.png")));
|
||||
icon.addPixmap (QPixmap (QString::fromUtf8 (":/images/icon_device_res_32.png")));
|
||||
icon.addPixmap (QPixmap (QString::fromUtf8 (":/images/icon_device_res_24.png")));
|
||||
icon.addPixmap (QPixmap (QString::fromUtf8 (":/images/icon_device_res_16.png")));
|
||||
} else if (dynamic_cast<const db::DeviceClassCapacitor *> (dc)) {
|
||||
icon.addPixmap (QPixmap (QString::fromUtf8 (":/images/icon_device_cap_48.png")));
|
||||
icon.addPixmap (QPixmap (QString::fromUtf8 (":/images/icon_device_cap_32.png")));
|
||||
icon.addPixmap (QPixmap (QString::fromUtf8 (":/images/icon_device_cap_24.png")));
|
||||
icon.addPixmap (QPixmap (QString::fromUtf8 (":/images/icon_device_cap_16.png")));
|
||||
} else if (dynamic_cast<const db::DeviceClassDiode *> (dc)) {
|
||||
icon.addPixmap (QPixmap (QString::fromUtf8 (":/images/icon_device_diode_48.png")));
|
||||
icon.addPixmap (QPixmap (QString::fromUtf8 (":/images/icon_device_diode_32.png")));
|
||||
icon.addPixmap (QPixmap (QString::fromUtf8 (":/images/icon_device_diode_24.png")));
|
||||
icon.addPixmap (QPixmap (QString::fromUtf8 (":/images/icon_device_diode_16.png")));
|
||||
} else if (dynamic_cast<const db::DeviceClassBipolarTransistor *> (dc)) {
|
||||
icon.addPixmap (QPixmap (QString::fromUtf8 (":/images/icon_device_bjt_48.png")));
|
||||
icon.addPixmap (QPixmap (QString::fromUtf8 (":/images/icon_device_bjt_32.png")));
|
||||
icon.addPixmap (QPixmap (QString::fromUtf8 (":/images/icon_device_bjt_24.png")));
|
||||
icon.addPixmap (QPixmap (QString::fromUtf8 (":/images/icon_device_bjt_16.png")));
|
||||
} else {
|
||||
icon.addPixmap (QPixmap (QString::fromUtf8 (":/images/icon_device_mos_48.png")));
|
||||
icon.addPixmap (QPixmap (QString::fromUtf8 (":/images/icon_device_mos_32.png")));
|
||||
|
|
|
|||
|
|
@ -36,5 +36,13 @@
|
|||
<file>images/icon_conn_light_24.png</file>
|
||||
<file>images/icon_conn_light_32.png</file>
|
||||
<file>images/icon_conn_light_48.png</file>
|
||||
<file>images/icon_device_diode_16.png</file>
|
||||
<file>images/icon_device_diode_24.png</file>
|
||||
<file>images/icon_device_diode_32.png</file>
|
||||
<file>images/icon_device_diode_48.png</file>
|
||||
<file>images/icon_device_bjt_48.png</file>
|
||||
<file>images/icon_device_bjt_32.png</file>
|
||||
<file>images/icon_device_bjt_24.png</file>
|
||||
<file>images/icon_device_bjt_16.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
|
|
|||