Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Smith Chart

5 views
Skip to first unread message

Spehro Pefhany

unread,
Jul 27, 1997, 3:00:00 AM7/27/97
to

chr...@algonet.se wrote:

: Greetings,

: Does anyone know if there is a Smith Chart out there somewhere that I
: could D/L. Just the chart that I can print out and use. Nothing fancy.

SMITH.PS is available on the net, if you can't find it e-mail me and I
will send it to you (it is a postscript format file, so you need a PS
printer or equivalent to print.

I have converted this to a .PDF file which can be viewed/printed with
Adobe's Acrobat viewer (free at www.adobe.com ). I will e-mail a copy on
request.
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Spehro Pefhany "The Journey is the reward"
sp...@interlog.com
Fax:(905) 332-4270 (small micro system devt hw/sw + mfg)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


chr...@algonet.se

unread,
Jul 27, 1997, 3:00:00 AM7/27/97
to

On 27 Jul 1997 00:52:09 GMT, Spehro Pefhany <sp...@interlog.com>
wrote:

Thanks Sperhro, much appreciated.

Lasse Langwadt Christensen

unread,
Jul 28, 1997, 3:00:00 AM7/28/97
to

Here is a simple smithchart in postscript

--
----------------------------------------------------------
Lasse Langwadt Christensen, EE-student at
Aalborg University Department of communication
e-mail: F...@kom.auc.dk web: http://www.kom.auc.dk/~fuz
snail-mail: Lobovej 20 - 9230 Svenstrup - Denmark
Phone: +45 4026 5572 (remove NOSPAM to reply)

--cut here--------
%!PS-Adobe-2.0 EPSF-1.2
%%BoundingBox: 1 72 595 825
%%Title: SIMPLESK.PS
%%Creator: Tilrettet af Hans Ebert
%%CreationDate: d. 1. juni 1994.
%%EndComments
% +-------------------------------------------------------------------------+
% | SIMPLESK.PS (13.862 bytes) |
% | Simplificeret Smithkort |
% | I beskrivelsen af procedurer er toppen af stakken den stõrrelse, der |
% | er tëttest pÜ procedurenavnet |
% | Eksempel: |
% | var2 var1 Procnavn res1 res2 |
% | |
% | Ved kaldet er var1 pÜ toppen af stakken, og ved returnering |
% | er res1 pÜ staktoppen. |
% | Decimaltal har kommaer, hver 5. delestreg i gradcirkelen og |
% | bõlgelëngdecirkelen er fede |
% | MÜlene er i tommer eller i 1/72 tommer= punkter. |
% | Rettet: 950207,951028,970113,970220 |
% +-------------------------------------------------------------------------+
%
4.25 72 mul 5.9 72 mul translate % Midten af kortet
/Helvfont {/Helvetica findfont 7 scalefont setfont} def Helvfont
/Symfont {/Symbol findfont 7 scalefont setfont} def
% Dshow erstatter . med , i tal
% Bruges i stedet for show
/Dshow {(.) search {show pop (,) show show} {show} ifelse} def
%
% "Labels" er numrene pÜ r- og x-cirkler
% "Lvalues" er vërdierne for r- og x-cirkler
% "Regions", "Minordiv", and "Majordiv" definerer grënserne
% og inddelingerne pÜ de forskellige omrÜder, der har samme
% detaljeringsgrad
% Vërdierne for Z-kortet er ëndret.
% Vërdierne for Y-kortet er ikke ëndret, da vi ikke udskriver
% Y-kortet.
%
[(0) (0.1) (0.2) (0.3) (0.4) (0.5) (0.6) (0.7) (0.8) (0.9)
(1.0) (1.2) (1.4) (1.6) (1.8) (2.0) (3.0) (4.0) (5.0)
(10) (20) (50)] /Labels exch def
[0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.2 1.4
1.6 1.8 2.0 3.0 4.0 5.0 10 20 50] /Lvalues exch def
%
[ 0 0.2 0.5 1 2 5 10 20 50 ] /ZRegions exch def
[ 0.1 0.1 0.1 0.2 1 5 10 1000 ] /ZMinordiv exch def
[ 1 1 1 1 1 1 1 1 ] /ZMajordiv exch def
[ 0 1 2 4 10 20 50 ] /YRegions exch def
[ 0.1 0.2 0.5 1 5 30 ] /YMinordiv exch def
[ 5 5 2 6 2 1 ] /YMajordiv exch def
/minorinc 0 def
/majorinc 0 def
/Unitradius 3.25 72 mul def % Radius of rho=1 circle
/Waveradius 3.475 72 mul def % Radius af bõlgelëngdecirklen
/Ydreradius 3.675 72 mul def % Alleryderste cirkel pÜ kortet
/Coeffradius 3.25 72 mul def % Radius af gradcirkelen
%
%***** r x RXtoUV v u
%*
%* Converts Z space (r + jx) to gamma space (u + jv)
%*
/RXtoUV {
/xtmp exch def /rtmp exch def
rtmp rtmp mul xtmp xtmp mul add rtmp 2 mul add 1 add /dtmp exch def
rtmp rtmp mul xtmp xtmp mul add 1 sub dtmp div
xtmp 2 mul dtmp div
} def

%***** r x AngR thetaR
%*
%* Finds the angle of the line from the center of the R=r circle to (r + jx)
%*
/AngR {
/xa exch def /ra exch def
ra xa RXtoUV
exch ra ra 1 add div sub atan
} def

%***** r x AngX thetaX
%*
%* Finds the angle of the line from the center of the X=x circle to (r + jx)
%*
/AngX {
/xa exch def /ra exch def
ra xa RXtoUV
1 xa div sub exch 1 sub atan
} def

%***** u v radius ang1 ang2 Doarc -
/Doarc {
5 -1 roll Unitradius mul
5 -1 roll Unitradius mul
5 -1 roll Unitradius mul
5 -2 roll
arc stroke
} def

%***** r x1 x2 DrawRarc -
/DrawRarc {
/xx2 exch def /xx1 exch def /rr exch def

rr dup 1 add div /u0 exch def
/v0 0 def
1 rr 1 add div /radius exch def

rr xx1 AngR /theta1 exch def
rr xx2 AngR /theta2 exch def
u0 v0 radius theta1 theta2 Doarc
} def

%***** x r1 r2 DrawXarc -
/DrawXarc {
/rr2 exch def /rr1 exch def /xx exch def

/u0 1 def
1 xx div /v0 exch def
1 xx div abs /radius exch def

rr1 xx AngX /theta1 exch def
rr2 xx AngX /theta2 exch def
u0 v0 radius theta1 theta2 Doarc
} def

%***** Doblock
%*
%* Draws a grid block bounded by (r1 + jx1) and (r2 + jx2)
%*
/Doblock {
/rtics 0 def
r1 minorinc add minorinc r2 minorinc 2 div add {
/r exch def
rtics 1 add dup /rtics exch def
majorinc mod 0 eq {0.5 setlinewidth} {0 setlinewidth} ifelse
r x2 x1 DrawRarc
r x1 neg x2 neg DrawRarc
} for

/xtics 0 def
x1 minorinc add minorinc x2 minorinc 2 div add {
/x exch def
xtics 1 add dup /xtics exch def
majorinc mod 0 eq {0.5 setlinewidth} {0 setlinewidth} ifelse
x r1 r2 DrawXarc
x neg r2 r1 DrawXarc
} for
} def

%***** regions minordiv majordiv Doimmittance -
%*
%* Draws the R & X (or G & B) circles
%*
/Doimmittance {
/Majordiv exch def /Minordiv exch def /Regions exch def
0 1 Minordiv length 1 sub {/index exch def

Minordiv index get /minorinc exch def
Majordiv index get /majorinc exch def

0 /r1 exch def
Regions index 1 add get /r2 exch def
Regions index get /x1 exch def
Regions index 1 add get /x2 exch def
Doblock

Regions index get /r1 exch def
Regions index 1 add get /r2 exch def
0 /x1 exch def
Regions index get /x2 exch def
index 7 eq {majorinc 3 def} if
Doblock
} for
%
% Tegn de helt store cirkler (r=0, x=0) og de smÜ (x,r=50 og 20)
%
0.5 setlinewidth
Unitradius neg 0 moveto Unitradius 0 lineto stroke
0 0 Unitradius 0 360 arc stroke
50 10000 0 DrawRarc
50 0 -10000 DrawRarc
20 10000 20 DrawRarc
20 -20 -10000 DrawRarc
50 0 10000 DrawXarc
-50 10000 0 DrawXarc
newpath 0 0 2 0 360 arc
currentgray 1 setgray fill setgray 0 setlinewidth
0 0 2 0 360 arc stroke
0 0 0.25 0 360 arc stroke

} def

%***** x y label Dorightstring -
%*
%* Right-justifies "label" and writes it on a white background
%*
/Dorightstring {
/lab exch def /yl exch def /xl exch def
lab stringwidth pop /wid exch def
newpath xl yl moveto
wid neg 0 rlineto
0 5 rlineto
wid 0 rlineto
0 -5 rlineto
closepath currentgray 1 setgray fill
xl yl moveto wid neg 1 rmoveto setgray lab Dshow
} def

%***** x y label Doleftstring -
%*
%* Left-justifies "label" and writes it on a white background
%*
/Doleftstring {
/lab exch def /yl exch def /xl exch def
lab stringwidth pop /wid exch def
newpath xl yl moveto
wid 0 rlineto
0 5 rlineto
wid neg 0 rlineto
0 -5 rlineto
closepath currentgray 1 setgray fill
xl yl 1 add moveto setgray lab Dshow
} def

%***** - DoLabels -
%*
%* Writes all the numbers within the R-X area
%*
/DoLabels {
1 1 Lvalues length 1 sub { dup
Labels exch get /label exch def
Lvalues exch get /x exch def
0 x RXtoUV exch atan
gsave rotate Unitradius 1 sub 1 label Dorightstring grestore
0 x neg RXtoUV exch atan 180 add
gsave rotate Unitradius 1 sub neg 1 label Doleftstring grestore
x 0 RXtoUV pop Unitradius mul neg
gsave 90 rotate 1 add 2 exch label Doleftstring grestore
} for

2 2 10 { dup
Labels exch get /label exch def
Lvalues exch get /x exch def
x 1 RXtoUV Unitradius mul exch Unitradius mul exch
gsave translate x 1 AngX 180 add rotate
1 1 label Doleftstring grestore
x -1 RXtoUV Unitradius mul exch Unitradius mul exch
gsave translate x -1 AngX rotate
-1 1 label Dorightstring grestore
1 x RXtoUV Unitradius mul exch Unitradius mul exch
gsave translate 1 x AngR rotate
-1 1 label Dorightstring grestore
1 x neg RXtoUV Unitradius mul exch Unitradius mul exch
gsave translate 1 x neg AngR 180 add rotate
1 1 label Doleftstring grestore
} for

} def
%*
%* Draws the R & X (impedance) circles
%*
/DoRX {
ZRegions ZMinordiv ZMajordiv Doimmittance DoLabels
} def
%*
%* Draws the G & B (admittance) circles in gray
%*
/DoGB {
gsave
currentdash [1 1] 0 setdash
180 rotate
YRegions YMinordiv YMajordiv Doimmittance DoLabels
setdash
grestore
} def

%***** string radius radial Doperp -
% Udskriver <string> centreret omkring vinklen <radial>
% pÜ en bue med radius <radius>.
%
/Doperp {
gsave rotate 0 translate -90 rotate
dup stringwidth pop 2 div neg 0 moveto
% 1.3 dup scale Dshow % Forstõr teksten 1,3 gange
% 1 1.3 div dup scale
Dshow
grestore } def


%***** Docoeffcircle
% Laver gradcirkelen
%
/Docoeffcircle {
0 setlinewidth 0 setgray
0 0 Coeffradius 0 360 arc stroke
% Gradcirkelen
gsave
0 2 178 {
10 mod 0 eq { 0.6 setlinewidth } if
Coeffradius neg 0 moveto -2 0 rlineto stroke
Coeffradius 0 moveto 2 0 rlineto stroke
2 rotate
0 setlinewidth
} for
grestore
/str 20 string def
30 10 170 { dup dup
str cvs exch Coeffradius 3 add exch Doperp
neg dup str cvs exch Coeffradius 3 add exch Doperp
} for
(180) Coeffradius 3 add 180 Doperp
Symfont (\261) Coeffradius 3 add 181.5 Doperp Helvfont
% \261 er plusminus
gsave Unitradius neg 0 translate

grestore
0 setlinewidth Coeffradius 3 sub 0 moveto 3 0 rlineto stroke
% Stregen ved 0 grader
} def
%
%***** Dowavecircle
%*
% Tegner bõlgelëngdeskalaen og sëtter numre pÜ
% índret: Der er nu kun 62,5 inddelinger pÜ en halvcirkel i stedet for 125
% Vi fÜr kun bõlgelëngder for hver 0,2 lambda
%
/Dowavecircle {
/str 20 string def
0 setlinewidth 0 setgray
0 0 Waveradius 0 360 arc stroke
/lstep 180 62.5 div def
1 1 125 {/ix exch def
gsave ix lstep mul rotate
ix 5 mod 0 eq { 0.6 setlinewidth } if
Waveradius 2 add neg 0 moveto 4 0 rlineto stroke 0 setlinewidth grestore
ix 5 mod 0 eq ix 16 gt and {
ix 125 eq {0} {ix} ifelse
250 div str cvs dup
gsave ix lstep mul neg rotate Waveradius 3 add neg 0 translate 90 rotate
dup stringwidth pop 2 div neg 0 moveto Dshow grestore
} if
} for
0.6 setlinewidth
%
% índret: Den yderste cirkel har en radius, der er Waveradius+(0,25*72)
% Syntax: x y r ang1 ang2 ARC
%
% 0 0 Waveradius dup Coeffradius sub 2 div add 0 360 arc stroke
0 0 Ydreradius 0 360 arc stroke
0 setlinewidth
} def

%
% NedenstÜende programmer findes i Adobe PostScript Tutorial
% and Cookbook side 167 (Program 10). Programmerne udskriver
% en tekst langs en cirkelbue.
%
/pi 3.141592654 def
/findhalfangle {
stringwidth pop 2 div 2 xrad mul pi mul div 360 mul
} def
/outsideplacechar {
/char exch def /halfangle char findhalfangle def
gsave
halfangle neg rotate rad 0 translate -90 rotate
char stringwidth pop 2 div neg 0 moveto char Dshow
grestore
halfangle 2 mul neg rotate
} def
%
%***** string pointsize centerangle radius outsidecircletext -
%
/outsidecircletext {
/rad exch def /centerangle exch def
/ptsize exch def /str exch def
/xrad rad ptsize 4 div add def
gsave
centerangle str findhalfangle add rotate
str {/charcode exch def ( ) dup 0 charcode put outsideplacechar } forall
grestore
} def

%***** Docircletext
%*
% Udskriver en alle buetekster.
% outsidecircletext(<tekst>, skriftstõrrelse, vinkel, radius)
%
/Docircletext {
(\320> B\351LGEL\341NGDER MOD GENERATOR \320>)
5 156 Waveradius 5 add outsidecircletext
(ARGUMENT AF REFLEKTIONSKOEFFICIENT I GRADER)
5 0 Coeffradius 3 add outsidecircletext
% (<\320 B\351LGEL\341NGDER MOD BELASTNING <\320)
% 5 -156.5 Waveradius 10 sub outsidecircletext
%
% Udfylder med hvidt for "INDUKTIV..."
% Fra 99 grader til 176 grader (fõr 108 til 166)
%
/a1 176 def /u1 a1 cos def /v1 a1 sin def
/a2 99 def /u2 a2 cos def /v2 a2 sin def
% "r" er placering af teksten
%
/r Unitradius 0.900 mul def
newpath
u1 r mul 1 sub v1 r mul 1 sub moveto
u1 5 mul v1 5 mul rlineto
0 0 r 7 add a1 a2 arcn
u2 5 mul neg u2 5 mul neg rlineto
0 0 r 2 sub a2 a1 arc
closepath currentgray 1 setgray fill setgray
(INDUKTIV REAKTANS \(+jx\) \
ELLER KAPACITIV SUSCEPTANS \(+jb\) KOMPOSANT)
% 5 136 r outsidecircletext
9 136 r outsidecircletext
gsave 1 -1 scale
% Udfylder med hvidt for "KAPACITIV...."
%
newpath
u1 r mul 1 sub v1 r mul 1 sub moveto
u1 5 mul v1 5 mul rlineto
0 0 r 7 add a1 a2 arcn
u2 5 mul neg u2 5 mul neg rlineto
0 0 r 2 sub a2 a1 arc
closepath currentgray 1 setgray fill setgray
grestore
(KAPACITIV REAKTANS \(-jx\) \
ELLER INDUKTIV SUSCEPTANS \(-jb\) KOMPOSANT)
% 5 -136 r outsidecircletext
9 -136 r outsidecircletext
% Udskrivning pÜ hvidt af "RESISTANS...."
%
/u1 Unitradius 0.900 mul neg def
(RESISTANS \(r\) ELLER KONDUKTANS \(g\) KOMPOSANT)
dup stringwidth pop /u2 exch u1 add def
newpath
u1 -16 moveto % Lav hvidt fra (0,9r,-16) til (0,9r,-6)
u1 -6 lineto % til (0,9r-strenglëngde,-16) og (...,-6)
u2 -6 lineto
u2 -16 lineto
closepath currentgray 1 setgray fill setgray
u1 1 add -14 moveto show
0 setgray
} def
%
% DoGB= Laver admittanskort
% DoRX= Laver impedanskort
%
% DoGB Bruges ikke
DoRX
Docoeffcircle
Dowavecircle
Docircletext
%
% Overskrift
/Palatino-Bold findfont 18 scalefont setfont
-3.5 72 mul 4.67 72 mul moveto
(Smithkort) show % Overskrift
%
showpage

0 new messages