GİRİŞ
Circuitikz, TikZ’in grafik gücünü elektrik-elektronik dünyasına uyarlamak amacıyla 2007 yılında bir LaTeX eklentisi olarak doğmuştur. Bu projenin temelleri, İtalya'daki Politecnico di Torino Üniversitesi'nde araştırma görevlisi olan Massimo Redaelli'nin, öğrencilerine hazırladığı sınav sorularında görsel bütünlüğü sağlamak istemesiyle atılmıştır. 2008 yılındaki ilk kararlı sürümleriyle birlikte, koordinat tabanlı devre çizimi akademik çevrelerde hızla ilgi görmeye başlamış; bireysel bir sınav hazırlık ihtiyacı, mühendislik eğitiminde devrim yaratan küresel bir projeye dönüşmüştür.
Başlangıçta yalnızca direnç ve kondansatör gibi temel pasif elemanları destekleyen paket, 2009 yılından itibaren yarı iletkenler ve opamp’lerin eklenmesiyle kapsamını genişletmiştir. Projenin gelişimi, 2015 yılında Stefan Lindner ve Stefan Erhardt gibi isimlerin katılımıyla ivme kazanmış; Avrupa ve ABD sembol standartları ile karmaşık akım/gerilim etiketleme sistemleri sisteme entegre edilmiştir. 2020'li yıllara gelindiğinde, transformatörlerden gelişmiş mantık kapılarına kadar uzanan geniş paketleriyle Circuitikz, akademik yayınlarda ve teknik kitaplarda devre şeması oluşturmanın fiili standardı haline gelerek dijital mühendislik literatüründeki yerini perçinlemiştir.
Circuitikz, LaTeX içinde elektrik ve elektronik devrelerini çizmek için geliştirilmiş bir üst katmandır. Amacı devre çizimini matematiksel yazım kadar temiz, tekrarlanabilir ve tipografik olarak tutarlı yapmaktır. Temeli TikZ grafik motoruna dayanır. Circuitikz bu altyapıyı kullanarak:
pasif elemanlar (R, C, L),
kaynaklar (V, I, AC/DC),
yarı iletkenler (npn, pnp, mosfet),
op-amp ve blok elemanlar,
toprak, bağlantı noktaları, akım/gerilim etiketleri
gibi devre sembollerini hazır komutlarla üretir.
BAŞLICA PAKETLER
LaTeX'te paketleri \usepackage komutuyla yüklenir. Bir pakete opsiyon eklenmesi gerekiyorsa bunun ayrı bir satırda tanımlanması gerekir. Opsiyonlar global, lokal ve yarı global olarak üçe ayrılır. Global opsiyonlar virgül ile ayrılır ve köşeli parantez içine yazılır. Lokal opsiyonlar to[R, european] veya to[R, american] örneklerinde olduğu gibi lokal değişiklerdir. Yarı global opsiyonlar \begin{scope} ve \end{scope} ortamında yüklenir.
Birbiriyle ilişkili LaTeX paketlerinin ise tek bir \usepackage satırı ile yüklenmesi okunabilirliği artırır.
1. CIRCUITIKZ
Projenin kalbidir. Devre elemanlarını çizmek için gerekli tüm makroları içerir. ()
\usepackage{circuitikz}
CIRCUTIKZ İÇİN YAYGIN OPSİYONLAR
american (ANSI/IEEE sembolleri)
european (IEC sembolleri)
siunitx (birimlerin doğru yazımı)
RPvoltages (gerilim oklarının yön kuralı)
2. TIKZ
Circuitikz aslında TikZ üzerine inşa edilmiş bir pakettir. Çoğu zaman Circuitikz paketi bunu otomatik yükler, ancak özel grafiksel düzenlemeler için doğrudan eklenmesi gerekebilir.
\usepackage{tikz}
3. SIUNITX
Mühendislik dünyasında değerlerin standartlara uygun yazılmasını sağlar.. Devre elemanlarına birim eklerken hata payını sıfıra indirir.
\usepackage{siunitx} 4. AMSMATH
Etiketlerde veya açıklamalarda karmaşık matematiksel formüller (indisler, kesirler, Yunan harfleri) kullanmanıza olanak tanır.
\usepackage{amsmath}
ORTAM SİSTEMİ
Circuitikz ortamı, TikZ’in tüm ortamlarını tamamen destekler. pgfonlayer ve scope bu listenin en sık kullanılanlarıdır.
1. ANA DEVRE ORTAMI
Ana devre ortamı circuitikz ortamıdır.
\begin{circuitikz}
\end{circuitikz}
2. GENEL ÇİZİM ORTAMI
Genel çizim ortamı tikzpicture ortamıdır.
3. LOKAL STİL ORTAMI
Lokal stil ortamı scope ortamıdır.
4. ARKA PLAN/ÖN PLAN KATMANLARI
\begin{pgfonlayer}{background}
\end{pgfonlayer}
Arka plan kutuları
Vurgu çerçeveleri
Highlight bölgeleri
5. EK TIKZ KODLARI
Ek tikz kodları pgfextra ile kullanılır. Kullanım amacı:
TikZ path’inin dışında kalan ek komutlar
Hesaplamalar, makrolar
6. PATH KESME
TikZ düşük seviye path kesme ortamıdır. Kullanım amacı:
Path çizimini geçici olarak durdurmak
Araya başka grafikler eklemek
7. LOKAL DÖNÜŞÜM
Lokal dönüşüm pgftransform* ile yapılır: pgftransformshift, pgftransformrotate, pgftransformscale.
Kullanım amacı:
Lokal dönüşüm
Lokal ölçek
Lokal kaydırma
8. NODE MATRİSİ
Node matrisi matrix ortamı ile oluşturulur. Kullanım amacı:
Op-amp blok diyagramları
Mantık devreleri
Grid yerleşimleri
9. PGFPLOTS ORTAMLARI
Ek paket ile kullanılır.
\begin{axis}
\end{axis}CIRCUITIKZ'İN BLOK STANDARDI
\begin{circuitikz}[
bipoles/length=1.2cm,
voltage/distance=0.25,
current/distance=0.25,
tripoles/op amp/width=1.6,
tripoles/op amp/height=1.2
]
\end{circuitikz}
CIRCUITIKZ'İN ESAS MİMARİSİ
Circuitikz'te noktasal semboller node[<>] ile çizilir. node[<>] yapısı koordinat üzerinde kullanılır. Hat üzerindeki elemanlar ise to[<>] ile çizilir. to[<>] yapısı iki nokta arasında kullanılır.
KOMUTLAR
Circuitkz'te komutlar üçe ayrılır: Node komutları, çizim komutları, eleman komutları. Node komutları devre ortamında bağımsız olarak kullanılabilir; eleman komutları ise bir çizgi path’i üzerinde çalıştığı için genellikle \draw komutunun içinde yer alır.
1. NODE KOMUTLARI
Circuitikz node türleri koordinat tabanlı sembollerdir. [ ] içinde sınırsız parametre alabilirler: rotate, scale, name, label, shift…. { } içeriği opsiyoneldir. Bazılarının özel anchor noktaları vardır:
npn → B, C, E
op amp → +, –, out
1.1. TOPRAK
Temel
node[
ground
]{}
Opsiyonel
node[
ground,
name=<isim>,
label=<etiket>,
rotate=<açı>,
scale=<oran>,
xshift=<değer>,
yshift=<değer>,
fill=<renk>,
draw=<çizgi>,
line width=<kalınlık>,
anchor=<anchor>,
minimum width=<genişlik>,
minimum height=<yükseklik>,
inner sep=<iç_boşluk>,
outer sep=<dış_boşluk>
]{<içerik>}
1.2. CIRCLE
Temel
node[circ]{}
Opsiyonel
node[
circ,
name=<isim>,
label=<etiket>,
rotate=<açı>,
scale=<oran>,
fill=<renk>,
draw=<çizgi>,
anchor=center
]{<içerik>}
1.3. OPAMP
Temel
node[op amp]{}
Opsiyonel
op amp,
name=<isim>,
label=<etiket>,
rotate=<açı>,
scale=<oran>,
xshift=<değer>,
yshift=<değer>,
anchor=<+|−|out>
]{}
1.4. İKİDEN FAZLA UÇLU YARI İLETKENLER
TRANSİSTÖR
Temel
node[npn]{}
Opsiyonel
npn,
name=<isim>,
label=<etiket>,
rotate=<açı>,
scale=<oran>,
xshift=<değer>,
yshift=<değer>,
anchor=<B|C|E>
]{}
(<koordinat1>) to[<Eleman>, <parametreler>] (<koordinat2>)
to[D]
to[Zener]
LEDto[led]
Hiç yorum yok:
Yorum Gönder