#!/usr/bin/perl -w # necgen -- generate NEC diagram of Dan's 1-6 house as an antenna # Copyright : http://www.fsf.org/copyleft/gpl.html # Author : Dan Jacobson -- http://jidanni.org/ # Created On : Tue Feb 3 12:09:33 2004 # Last Modified On: Wed Feb 4 06:53:16 2004 # Update Count : 100 #This program generates a file for xnecview print<<"!"; CMTESTEX1 CEEXAMPLE 1. DANS 1-6 HOUSE ! #print "Generated file -- do not edit, will get overwritten\n"; $itg = 0; $xmax = 2.5; $ymax = 5; $ns = 5; $thin=.02; $medium=.1; $thick=.2; #n wall horiz $rad = $thin; $x = $xmax; $x2 = 0; for $i ( 1 .. 3 ) { $z = $z2 = $i; $y = $y2 = $ymax; p(); } #e wall vert, join & bend onto roof $rad = $thick; $y = $y2 = $ymax; while ( $y >= 0 ) { $z = 3; $x = $x2 = $xmax; $z2 = 0; p(); # vert $z2 = 4; $x = $x * 3 / $xmax; $x2 = 0; $z = h($x); p(); # slant $y2 = $y -= $ymax * 2 / 3; } #e,w wall horiz $rad = $thin; $y = $ymax; $y2 = 0; $x2 = $x= $xmax; for $z ( 1, 2, 3 ) { $z2 = $z; p(); } #roof n s members $rad = $medium; $y = $ymax; $y2 = 0; for $i ( 0.1, 1, 2, 2.5, 3 ) { # one on an axis.... $x2 = $x = $i; $z = $z2 = h($x); p(); } #n wall vert $rad = $medium; $z = 0; $y = $y2 = $ymax; # h could be moved out one level... $x=1; $x2 = $x; $z2 = h($x); p(); sub h { return 4 - 1 / 2.5 * $_[0]} # height of roof as function of X sub p { printf "%2s%3i%4i%10f%10f%10f%10f%10f%10f%10f\n", "GW", ++$itg, $ns, $x, $y, $z, $x2, $y2, $z2, $rad; } printf "GX%3i %03i\n", 40, 110; # reflect printf "GE\n"; printf "EN\n";