.PS cct_init linewid = linewid*6/6.2435 command "{\sf" # `Point_(degrees) # hybrid_PI_BJT([L][M]) # L=left orientation; M=mirror' define(`hybrid_PI_BJT', `[ # Size (and direction) parameters: hunit = ifinstr(`$1',M,-)dimen_ vunit = ifinstr(`$1',L,-)dimen_*3/2 hp_ang = rp_ang # Save the reference direction Rpi: resistor(to rvec_(0,-vunit)); point_(hp_ang) # Restore direction DotG: dot(at rvec_(hunit*5/4,0)) Gm: consource(to rvec_(0,vunit),I,R); point_(hp_ang) # Restore direction dot(at rvec_(hunit*3/4,0)) Ro: resistor(to rvec_(0,-vunit)); point_(hp_ang) # Restore direction line from Rpi.start to Rpi.start+vec_(-hunit/2,0) chop -lthick/2 chop 0 Base: dot(,,1) line from Gm.end to Ro.start+vec_(hunit/2,0) chop -lthick/2 chop 0 Collector: dot(,,1) line from Rpi.end to Ro.end chop -lthick/2 DotE: dot(at 0.5 between Rpi.end and DotG) line to rvec_(0,-vunit/2) Emitter: dot(,,1) # Labels `"$\mathrm{r_\pi}$"' at Rpi.c+vec_(hunit/4,0) `"$ + $"' at Rpi.c+vec_(-hunit/6, vunit/4) `"$ - $"' at Rpi.c+vec_(-hunit/6,-vunit/4) `"$\mathrm{v_\pi}$"' at Rpi.c+vec_(-hunit/4,0) `"$\mathrm{g_m}$$\mathrm{v_\pi}$"' at Gm.c+vec_(-hunit*3/8,-vunit/4) `"$\mathrm{r_o}$"' at Ro.c+vec_(hunit/4,0) `$2' ] ') [ Q: hybrid_PI_BJT "Base" at Q.Base +(0.15,0.1) "Emitter" ht 0.1 wid 0.5 at Q.Emitter.w rjust "Collector" ht 0.1 at Q.Collector +(-0.2,0.1) `"hybrid\_PI\_BJT"' ht 0.1 at Q.s+(0,-0.2) hybrid_PI_BJT(M) with .Collector at last [].Collector+(0.15,0) `"hybrid\_PI\_BJT(M)"' ht 0.1 at last [].s+(0,-0.2) hybrid_PI_BJT(LM) with .w at last [].e `"hybrid\_PI\_BJT(LM)"' ht 0.1 at last [].s+(0,-0.2) Point_(45) hybrid_PI_BJT with .Emitter at last [].Base+(elen_*1.75,0.1) `"\shortstack[l]{Point\_(45)\\ hybrid\_PI\_BJT}"' \ ht 0.25 at last [].s+(0.2,-0.2) ] #print last [].wid command "}%" .PE