Index: todo.txt =================================================================== --- todo.txt (revision 23463) +++ todo.txt (nonexistent) @@ -1,44 +0,0 @@ -Step 1: crunch-mode export plugin development -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -We need each and every one of the followig points done _before_ the -crunch-mode export plugin development can start. This is a checklist. - -1. 2..6 example input (.pcb) files with different simple constructions - that'd test different output features. Keep each as simple as possible: - e.g. a single trace line, a single polygon with 6..8 point, a single arc, - etc. - -2. One hand written output file for each of the .pcb files of point 1. that - contains the expected output. Preferrably these files are byte-to-byte what - pcb-rnd needs to generate when exporting the given .pcb. You don't need to - write a converter tool or do anything complicated, just use a text editor - to write the file and then test if it looks good with openEMS. So for a - point 1. foo.pcb there would be foo.whatever, which can be loaded in openEMS. - -3. A step-by-step explanation of what exactly needs to be done in openEMS - to check whether an exported file works. Chose simplicity over completeness: - pick one process/action/method-to-check, probably the most sensitive one, - that is the most likely to break if the export file is wrong - and document that one process. Do _not_ assume the reader knows or wants - to know openEMS, so write down each step, dumbed down, like "file menu, load, - select the exported file", etc. - -4. For each of the export files of point 2., a reference output when it went - through process 3. It can be an output file from openEMS or a screenshot. - -5. If there's anything interesting with an input of 1., please also write a - short plain text file explaining the trick. E.g. if in point 1 bar.pcb - you have an arc and openEMS doesn't support arc and you had to approximate - it with 4 line segments in bar.whatever, there should be a bar.txt explaining - this and giving some hints on the process, e.g. how many line segments - should be used, what should happen at corner cases, etc. This file can be - ommited for real straight-forward examples. - -6. All these files should be commited in this directory before I can start. - - -Step 2: testing with real data and bugfixing -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -(will write this section when we get here) Index: readme.txt =================================================================== --- readme.txt (revision 23463) +++ readme.txt (nonexistent) @@ -1,46 +0,0 @@ - -There has been some confusion about what these directories are. - -matlab -this is the library used by our direct exporter - -examples -this is a set of example files using my library for pcb export. i also use -them to test the library. at some point igor2 contributed an antenna to this -which he pulled from some ti data sheet. - -ref -this is a set of example files i made for myself showing how openems's -geometry works - -koen -this directory has a collection of variations on examples originally written -by Koen De Vleeschauwer. - -koen/eagle -this is his original work with the output he got renamed and the output it -produces now for comparison. it uses an eagle file to make a hyp file which is -then run through hyp2mat. - -koen/pcbrnd -this is what i got when i modified the example to import the hyp file into -pcb-rnd and then export it again to prove the hyp2mat export and our hyp -output could work. - -koen/pcbrnd_direct/hairpinfilter -this is what i got when i took that example fixed the import errors up more -(from hyp-> lht conversion) and redid everything using our direct exporter and -utlimately our mesher as well. - -koen/pcbrnd_direct/hairpinfilter_diff/ -this is a series of diff's i created to try to document the alterations our -exporter needed to produce working output. - -landscape -this was a set of drawings in gschem outlining the ecology of tools currently -existing in the space. it also has a few drawings i did in the start showing -early thoughts about how geometry should be exported. they are not really -relivant now. - - - Index: bugreport.txt =================================================================== --- bugreport.txt (revision 23463) +++ bugreport.txt (nonexistent) @@ -1,21 +0,0 @@ -export_openems output format bugreport procedure -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - -1. create a new, empty directory; all the following steps are happening in there -2. run 'pcb-rnd bug.lht' and draw the input file and save - Please try to keep the example minimal: if you are reporting a port - coordinate bug, it's enough to have one single port and nothing else - we - don't need a full, working, simulator-ready antenne, any extra object not - needed for demonstrating the export format error just slows debugging down. -3. do the export - it will save bug.m -4. 'cp bug.m bug.fix.m' -5. use a plain text editor to change bug.fix.m to look like it should; please - fix only one bug for one report and try to make the minimal amount of - modifications (e.g. no random white space tuning) -6. run 'diff -u bug.m bug.fix.m > fix.patch' -7. mail the bug description and attach the following files: - bug.lht (preferrably with the font subtree removed) - bug.m - fix.patch - (We don't need bug.fix.m) Index: TODO.export.txt =================================================================== --- TODO.export.txt (revision 23463) +++ TODO.export.txt (nonexistent) @@ -1,107 +0,0 @@ -1. Export format ============================================================= -? We have been exporting the outline of the ports. This was a mistake - on my part, we shouldn't do that. The automesher and other parts of - openems aren't smart enough to realize they are inside a larger - polygon and tries to do things like remesh the area. (yes i will - ultimately file a bug report with koen) - -> no idea what needs to be done on this, please send an example input and - output diff - -> ah looking at it again i realized what i got wrong here. pcb-rnd is - exporting the footprints/subc as polygons which makes sense but it shouldn't - do this when they are inside of another polygon. - -> need a proper bugreport - see bugreport.txt - -2. user convenience ========================================================== - -? optionally mesh resolution should have a tickbox for the user to - just use the equation. - resolution = c0 / (f0+fc) / sqrt(substrate_epsilon) / unit / lambda_frac; - so that the user doesn't have to caculate it. - -> no idea wat c0, f0, fc and unit are; please use pcb-rnd terms, - reference to named fields of the dialog boxes with exact name - or if you need new fields, make that explicit. We need: what - _exactly_ is needed from pcb-rnd's side. - -> right now users enter 3 different mesh line densities (resolutions) - for copper, gap, and etc. if you user selects this feature these - densities would instead be calculated as fractions of lambda selected by - the user. - c0 = speed of light ( 299792458 m/s ) - lambda_frac = what fraction of lambda they want to use for each of the - densities. So the equation is used once for each density. - and ether - f0 = center frequency of the pulse - fc = 20dB cutoff frequency --> bandwidth is 2*fc - or - f_max = max frequency of interest (meaning the sweep is from 0 to this - number) - if the user has selected the ladder (f_max) the line that is currently - FDTD = SetGaussExcite(FDTD, f_max/2, f_max/2); - is used. - if they select the former (f0 + fc) then that line should be - FDTD = SetGaussExcite( FDTD, f0, fc ); - please note that in ether case it is encouraged to just put in the values - for f0, fc, or f_max and not assign a variable name and etc. - we know from http://openems.de/index.php/FDTD_Mesh.html - that there are even some reasonable base settings for what the - lambda_frac values should be. - -? optionally the ability to replace the bounds with the equation - AirBox = c0/(f0+fc)/unit/25; - -> no idea wat c0, f0, fc and unit are; please use pcb-rnd terms, - reference to named fields of the dialog boxes with exact name - or if you need new fields, make that explicit. We need: - what _exactly_ is needed from pcb-rnd's side. - -- optionally we should have the option to suppress the export "Board - mesh, Part 1" - %%% Board mesh, part 1 - unit = 1.0e-3; - f_max = 7e9; - FDTD = InitFDTD(); - FDTD = SetGaussExcite(FDTD, f_max/2, f_max/2); - BC = {'(null)' '(null)' '(null)' '(null)' '(null)' '(null)'}; - FDTD = SetBoundaryCond(FDTD, BC); - physical_constants; - CSX = InitCSX(); - -> This is a feature I want because we are testing one part of the exporter - at a time. It's also helpful for those of us who want the openems and post - processing math in one file and the other stuff in a geometry only file. - -? optionally substrate and copper matterial properties should be - stored in the lht file and not things you enter in the mesher. the - mesher should issue an error message that they are not set. - -> I'd like all these coming from layer group properties, not from - default settings. We will need to determine the exact set of parameters - affected (with their existing pcb-rnd name). We need: the exact list - of properties. - -3. turn off internal mesher ================================================== -- When no mesh has been generated don't export the following lines. - mesh.y=[]; - mesh.x=[]; - mesh.z=[]; - mesh.x = mesh.x .+ offset.x; - mesh.y = offset.y .- mesh.y; - mesh.z = mesh.z .+ offset.z; - CSX = DefineRectGrid(CSX, unit, mesh); - <- please consider this as a part of compatibility with koen's automesher. - if the user isn't using pcb-rnd's mesher then i guess they can manually - remove these lines. (low priority) - -- optionally we should have the ability for the user to tick a box and - use koen's automesh which just requires the addition of a few lines - dotted. If this isn't selected and no mesh is generated throw a - warning message about there being no mesh. The auto mesh requires the - line - mesh = DetectEdges(CSX); - to be added after the polygons and other geometry before and after the ports. - mesh = DetectEdges(CSX); - mesh.x = [min(mesh.x)-AirBox max(mesh.x)+AirBox mesh.x]; - mesh.y = [min(mesh.y)-AirBox max(mesh.y)+AirBox mesh.y]; - mesh.z = [min(mesh.z)-AirBox max(mesh.z)+2*AirBox mesh.z]; - mesh = SmoothMesh(mesh, resolution); - mesh = AddPML(mesh, 8); - CSX = DefineRectGrid(CSX, (unit), mesh); - -> again this helps me to do some of the testing. It's not always obvious - when things are a shade off. - Index: notes.txt =================================================================== --- notes.txt (revision 23463) +++ notes.txt (nonexistent) @@ -1,61 +0,0 @@ - -Units -- We need to specify units. OpenEMS by default uses meters but this could be - fudged to scale things to inches or something non-metric if we wanted. -+ We should support scaling to enable people to incorporate other objects - the model from sources other than pcb-rnd (like mech-cad) for things - like the chassis or what ever. - -Boundary Conditions (http://openems.de/index.php/FDTD_Boundary_Conditions) -- There are 6 fields because this is the cube that contains the model we are - solving. -- Boundary conditions for the environment the model is in must be defined. For - antenna's these will be different than for say a filter. There are a few pre- - coded constants PMC, MUR, PML_8 and etc that we should provide as options. - Users can also manually enter any number they want. -- It is important to locate the model at the right distance from the boundary - box walls. This is actually set by how far up/down/left/right you mesh from - the model. For PML it is suggested to use a distance of 1/4 the wavelength - of the longest frequency involved. - (In openems's documentation this is actually one of the rules of thumb for - meshing.) - -Excitation (http://openems.de/index.php/Excitation) -- We want Gaussian excitation for a default. This is what most people will use - to plot the spectrum of filter absorbtions and etc. It does this on ports. -- The next most useful excitation is spatial excitiation is the standard - excitation. AddExcitation does this but I have honestly not seen it used in - an examples. Basically everything uses the SetGaussExcite. - -Mesh (http://openems.de/index.php/FDTD_Mesh) -(This is really just a list of exactly the same things stated in the URL -above) -- Mesh density should be at minimum 1/10 of the shortest wavelength being - studied. -- Mesh density shouldn't go finer than 1/15 of the shortest wavelength being - studied. -- Mesh density should avoid radical changes. (I believe this is what damns 3D - copper and via modeling) Mesh density shouldn't double from one cell to it's - neighbor. -- For 2D copper (which must be the default and currently is the only fully - supported mode.) At the edge of the copper 1/3 of the copper should land - inside the cell leaving 2/3 outside. -- Please see the last note in boundary conditions about centering the model in - the mesh. - -Graphing (http://openems.de/index.php/Visualization_of_Results) -- Honestly it's just described in that url. I can't condense it. -- There are features missing but I should experiment more before pretending to - know something the authors did not. - -Dump Boxes (http://openems.de/index.php/Dump_Box_Property) -- The term "box" isn't quite accurate. Supposedly this can be invoked with any - other primitives but the documentation also says the results are invalid. - (eye roll) -- - -N2FF (http://openems.de/index.php/NF2FF) -- Honestly again they did a better than I could. -- The N2FF lets you map - - Index: dev_comm/TODO.export.txt =================================================================== --- dev_comm/TODO.export.txt (nonexistent) +++ dev_comm/TODO.export.txt (revision 23464) @@ -0,0 +1,107 @@ +1. Export format ============================================================= +? We have been exporting the outline of the ports. This was a mistake + on my part, we shouldn't do that. The automesher and other parts of + openems aren't smart enough to realize they are inside a larger + polygon and tries to do things like remesh the area. (yes i will + ultimately file a bug report with koen) + -> no idea what needs to be done on this, please send an example input and + output diff + -> ah looking at it again i realized what i got wrong here. pcb-rnd is + exporting the footprints/subc as polygons which makes sense but it shouldn't + do this when they are inside of another polygon. + -> need a proper bugreport - see bugreport.txt + +2. user convenience ========================================================== + +? optionally mesh resolution should have a tickbox for the user to + just use the equation. + resolution = c0 / (f0+fc) / sqrt(substrate_epsilon) / unit / lambda_frac; + so that the user doesn't have to caculate it. + -> no idea wat c0, f0, fc and unit are; please use pcb-rnd terms, + reference to named fields of the dialog boxes with exact name + or if you need new fields, make that explicit. We need: what + _exactly_ is needed from pcb-rnd's side. + -> right now users enter 3 different mesh line densities (resolutions) + for copper, gap, and etc. if you user selects this feature these + densities would instead be calculated as fractions of lambda selected by + the user. + c0 = speed of light ( 299792458 m/s ) + lambda_frac = what fraction of lambda they want to use for each of the + densities. So the equation is used once for each density. + and ether + f0 = center frequency of the pulse + fc = 20dB cutoff frequency --> bandwidth is 2*fc + or + f_max = max frequency of interest (meaning the sweep is from 0 to this + number) + if the user has selected the ladder (f_max) the line that is currently + FDTD = SetGaussExcite(FDTD, f_max/2, f_max/2); + is used. + if they select the former (f0 + fc) then that line should be + FDTD = SetGaussExcite( FDTD, f0, fc ); + please note that in ether case it is encouraged to just put in the values + for f0, fc, or f_max and not assign a variable name and etc. + we know from http://openems.de/index.php/FDTD_Mesh.html + that there are even some reasonable base settings for what the + lambda_frac values should be. + +? optionally the ability to replace the bounds with the equation + AirBox = c0/(f0+fc)/unit/25; + -> no idea wat c0, f0, fc and unit are; please use pcb-rnd terms, + reference to named fields of the dialog boxes with exact name + or if you need new fields, make that explicit. We need: + what _exactly_ is needed from pcb-rnd's side. + +- optionally we should have the option to suppress the export "Board + mesh, Part 1" + %%% Board mesh, part 1 + unit = 1.0e-3; + f_max = 7e9; + FDTD = InitFDTD(); + FDTD = SetGaussExcite(FDTD, f_max/2, f_max/2); + BC = {'(null)' '(null)' '(null)' '(null)' '(null)' '(null)'}; + FDTD = SetBoundaryCond(FDTD, BC); + physical_constants; + CSX = InitCSX(); + -> This is a feature I want because we are testing one part of the exporter + at a time. It's also helpful for those of us who want the openems and post + processing math in one file and the other stuff in a geometry only file. + +? optionally substrate and copper matterial properties should be + stored in the lht file and not things you enter in the mesher. the + mesher should issue an error message that they are not set. + -> I'd like all these coming from layer group properties, not from + default settings. We will need to determine the exact set of parameters + affected (with their existing pcb-rnd name). We need: the exact list + of properties. + +3. turn off internal mesher ================================================== +- When no mesh has been generated don't export the following lines. + mesh.y=[]; + mesh.x=[]; + mesh.z=[]; + mesh.x = mesh.x .+ offset.x; + mesh.y = offset.y .- mesh.y; + mesh.z = mesh.z .+ offset.z; + CSX = DefineRectGrid(CSX, unit, mesh); + <- please consider this as a part of compatibility with koen's automesher. + if the user isn't using pcb-rnd's mesher then i guess they can manually + remove these lines. (low priority) + +- optionally we should have the ability for the user to tick a box and + use koen's automesh which just requires the addition of a few lines + dotted. If this isn't selected and no mesh is generated throw a + warning message about there being no mesh. The auto mesh requires the + line + mesh = DetectEdges(CSX); + to be added after the polygons and other geometry before and after the ports. + mesh = DetectEdges(CSX); + mesh.x = [min(mesh.x)-AirBox max(mesh.x)+AirBox mesh.x]; + mesh.y = [min(mesh.y)-AirBox max(mesh.y)+AirBox mesh.y]; + mesh.z = [min(mesh.z)-AirBox max(mesh.z)+2*AirBox mesh.z]; + mesh = SmoothMesh(mesh, resolution); + mesh = AddPML(mesh, 8); + CSX = DefineRectGrid(CSX, (unit), mesh); + -> again this helps me to do some of the testing. It's not always obvious + when things are a shade off. + Index: dev_comm/bugreport.txt =================================================================== --- dev_comm/bugreport.txt (nonexistent) +++ dev_comm/bugreport.txt (revision 23464) @@ -0,0 +1,21 @@ +export_openems output format bugreport procedure +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +1. create a new, empty directory; all the following steps are happening in there +2. run 'pcb-rnd bug.lht' and draw the input file and save + Please try to keep the example minimal: if you are reporting a port + coordinate bug, it's enough to have one single port and nothing else - we + don't need a full, working, simulator-ready antenne, any extra object not + needed for demonstrating the export format error just slows debugging down. +3. do the export - it will save bug.m +4. 'cp bug.m bug.fix.m' +5. use a plain text editor to change bug.fix.m to look like it should; please + fix only one bug for one report and try to make the minimal amount of + modifications (e.g. no random white space tuning) +6. run 'diff -u bug.m bug.fix.m > fix.patch' +7. mail the bug description and attach the following files: + bug.lht (preferrably with the font subtree removed) + bug.m + fix.patch + (We don't need bug.fix.m) Index: dev_comm/dialog_excitation.lht =================================================================== --- dev_comm/dialog_excitation.lht (nonexistent) +++ dev_comm/dialog_excitation.lht (revision 23464) @@ -0,0 +1,3241 @@ +ha:pcb-rnd-board-v6 { + + ha:attributes { + {PCB::grid::unit}=mil + } + + li:styles { + ha:Signal { + diameter = 2.0mm + text_scale = 0 + text_thick = 0.0 + thickness = 10.0mil + hole = 31.5mil + clearance = 20.0mil + } + ha:Power { + diameter = 2.2mm + text_scale = 0 + text_thick = 0.0 + thickness = 20.0mil + hole = 1.0mm + clearance = 20.0mil + } + ha:Fat { + diameter = 137.8mil + text_scale = 0 + text_thick = 0.0 + thickness = 80.0mil + hole = 47.24mil + clearance = 25.0mil + } + ha:Sig-tight { + diameter = 64.0mil + text_scale = 0 + text_thick = 0.0 + thickness = 10.0mil + hole = 31.5mil + clearance = 12.0mil + } + } + + ha:meta { + ha:size { + thermal_scale = 0.500000 + x = 127.0mm + y = 127.0mm + } + ha:grid { + spacing = 10.0mil + offs_x = 0.0 + offs_y = 0.0 + } + } + + ha:data { + li:padstack_prototypes { + } + + li:objects { + } + li:layers { + + ha:top-sig { + lid=0 + group=3 + ha:combining { } + + li:objects { + } + color = {#8b2323} + } + + ha:bottom-sig { + lid=1 + group=10 + ha:combining { } + + li:objects { + } + color = {#3a5fcd} + } + + ha:top-gnd { + lid=2 + group=3 + ha:combining { } + + li:objects { + } + color = {#104e8b} + } + + ha:bottom-gnd { + lid=3 + group=10 + ha:combining { } + + li:objects { + } + color = {#cd3700} + } + + ha:int-sig2 { + lid=4 + group=7 + ha:combining { } + + li:objects { + } + color = {#548b54} + } + + ha:int-sig1 { + lid=5 + group=5 + ha:combining { } + + li:objects { + } + color = {#8b7355} + } + + ha:outline { + lid=6 + group=9 + ha:combining { } + + li:objects { + } + color = {#00868b} + } + + ha:bottom-silk { + lid=7 + group=12 + ha:combining { auto=1; } + + li:objects { + ha:line.1263 { + x1=375.0mil; y1=475.0mil; x2=62.865mm; y2=475.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1272 { + x1=825.0mil; y1=400.0mil; x2=825.0mil; y2=450.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1275 { + x1=825.0mil; y1=500.0mil; x2=825.0mil; y2=975.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1675 { + x1=990.0mil; y1=1.03in; x2=990.0mil; y2=29.21mm; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1278 { + x1=375.0mil; y1=1000.0mil; x2=2.47in; y2=1000.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1684 { + x1=375.0mil; y1=29.972mm; x2=2.14in; y2=29.972mm; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1799 { + x1=375.0mil; y1=1.36in; x2=2.14in; y2=1.36in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4020 { + x1=380.0mil; y1=1.54in; x2=2.14in; y2=1.54in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4543 { + x1=380.0mil; y1=46.99mm; x2=2.14in; y2=46.99mm; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.2339 { + x1=55.118mm; y1=1.03in; x2=55.118mm; y2=2.01in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + } + color = {#000000} + } + + ha:top-silk { + lid=8 + group=1 + ha:combining { auto=1; } + + li:objects { + ha:line.1098 { + x1=440.0mil; y1=510.0mil; x2=440.0mil; y2=540.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1101 { + x1=440.0mil; y1=540.0mil; x2=410.0mil; y2=540.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1104 { + x1=410.0mil; y1=540.0mil; x2=410.0mil; y2=510.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1107 { + x1=410.0mil; y1=510.0mil; x2=440.0mil; y2=510.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1110 { + x1=420.0mil; y1=510.0mil; x2=420.0mil; y2=540.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1113 { + x1=420.0mil; y1=540.0mil; x2=430.0mil; y2=540.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1116 { + x1=430.0mil; y1=540.0mil; x2=430.0mil; y2=510.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1119 { + x1=430.0mil; y1=510.0mil; x2=440.0mil; y2=520.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1122 { + x1=440.0mil; y1=520.0mil; x2=410.0mil; y2=520.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1125 { + x1=410.0mil; y1=520.0mil; x2=410.0mil; y2=530.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1128 { + x1=410.0mil; y1=530.0mil; x2=440.0mil; y2=530.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1131 { + x1=440.0mil; y1=610.0mil; x2=440.0mil; y2=640.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1134 { + x1=440.0mil; y1=640.0mil; x2=410.0mil; y2=640.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1137 { + x1=410.0mil; y1=640.0mil; x2=410.0mil; y2=610.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1140 { + x1=410.0mil; y1=610.0mil; x2=440.0mil; y2=610.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1537 { + x1=440.0mil; y1=710.0mil; x2=440.0mil; y2=740.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1540 { + x1=440.0mil; y1=740.0mil; x2=410.0mil; y2=740.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1543 { + x1=410.0mil; y1=740.0mil; x2=410.0mil; y2=710.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1546 { + x1=410.0mil; y1=710.0mil; x2=440.0mil; y2=710.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1549 { + x1=440.0mil; y1=810.0mil; x2=440.0mil; y2=840.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1552 { + x1=440.0mil; y1=840.0mil; x2=410.0mil; y2=840.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1555 { + x1=410.0mil; y1=840.0mil; x2=410.0mil; y2=810.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1558 { + x1=410.0mil; y1=810.0mil; x2=440.0mil; y2=810.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1561 { + x1=440.0mil; y1=910.0mil; x2=440.0mil; y2=940.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1564 { + x1=440.0mil; y1=940.0mil; x2=410.0mil; y2=940.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1567 { + x1=410.0mil; y1=940.0mil; x2=410.0mil; y2=910.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1570 { + x1=410.0mil; y1=910.0mil; x2=440.0mil; y2=910.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.130 { + x1=400.0mil; y1=320.0mil; x2=400.0mil; y2=350.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.133 { + x1=400.0mil; y1=350.0mil; x2=370.0mil; y2=350.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.136 { + x1=370.0mil; y1=350.0mil; x2=370.0mil; y2=320.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.139 { + x1=370.0mil; y1=320.0mil; x2=400.0mil; y2=320.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.148 { + x1=380.0mil; y1=320.0mil; x2=380.0mil; y2=350.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.151 { + x1=380.0mil; y1=350.0mil; x2=390.0mil; y2=350.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.154 { + x1=390.0mil; y1=350.0mil; x2=390.0mil; y2=320.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.157 { + x1=390.0mil; y1=320.0mil; x2=400.0mil; y2=330.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.160 { + x1=400.0mil; y1=330.0mil; x2=370.0mil; y2=330.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.163 { + x1=370.0mil; y1=330.0mil; x2=370.0mil; y2=340.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.166 { + x1=370.0mil; y1=340.0mil; x2=400.0mil; y2=340.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.5 { + x1=350.0mil; y1=300.0mil; x2=63.5mm; y2=300.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.14 { + x1=350.0mil; y1=300.0mil; x2=350.0mil; y2=2.03in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.17 { + x1=350.0mil; y1=370.0mil; x2=63.5mm; y2=370.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1640 { + x1=1.12in; y1=26.67mm; x2=1.47in; y2=26.67mm; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1643 { + x1=1.47in; y1=26.67mm; x2=1.47in; y2=1.13in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1690 { + x1=1.12in; y1=26.797mm; x2=1.12in; y2=1.13in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1702 { + x1=1.12in; y1=1.13in; x2=1.47in; y2=1.13in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1705 { + x1=500.0mil; y1=1.13in; x2=850.0mil; y2=1.13in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1611 { + x1=850.0mil; y1=26.67mm; x2=850.0mil; y2=1.13in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1608 { + x1=500.0mil; y1=26.67mm; x2=850.0mil; y2=26.67mm; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1605 { + x1=500.0mil; y1=26.67mm; x2=500.0mil; y2=1.13in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1772 { + x1=960.0mil; y1=1.31in; x2=1.48in; y2=1.31in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1778 { + x1=960.0mil; y1=1.23in; x2=1.48in; y2=1.23in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.1781 { + x1=960.0mil; y1=1.23in; x2=960.0mil; y2=1.31in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.2612 { + x1=63.5mm; y1=300.0mil; x2=63.5mm; y2=2.03in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.2633 { + x1=2.48in; y1=320.0mil; x2=2.48in; y2=350.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.2636 { + x1=2.48in; y1=350.0mil; x2=2.45in; y2=350.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.2639 { + x1=2.45in; y1=350.0mil; x2=2.45in; y2=320.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.2642 { + x1=2.45in; y1=320.0mil; x2=2.48in; y2=320.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.2645 { + x1=2.48in; y1=320.0mil; x2=2.45in; y2=350.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.2648 { + x1=2.45in; y1=320.0mil; x2=2.48in; y2=350.0mil; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.3623 { + x1=720.0mil; y1=35.814mm; x2=720.0mil; y2=1.49in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.3629 { + x1=720.0mil; y1=35.814mm; x2=30.988mm; y2=35.814mm; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.3632 { + x1=720.0mil; y1=1.49in; x2=30.988mm; y2=1.49in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4023 { + x1=935.0mil; y1=1.59in; x2=935.0mil; y2=42.418mm; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4026 { + x1=585.0mil; y1=1.59in; x2=585.0mil; y2=42.418mm; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4029 { + x1=995.0mil; y1=1.59in; x2=995.0mil; y2=42.418mm; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4032 { + x1=965.0mil; y1=1.65in; x2=965.0mil; y2=1.61in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4035 { + x1=965.0mil; y1=1.65in; x2=955.0mil; y2=1.64in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4038 { + x1=965.0mil; y1=1.65in; x2=975.0mil; y2=1.64in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4041 { + x1=975.0mil; y1=1.64in; x2=955.0mil; y2=1.64in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4044 { + x1=995.0mil; y1=1.59in; x2=585.0mil; y2=1.59in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4047 { + x1=995.0mil; y1=42.418mm; x2=585.0mil; y2=42.418mm; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4050 { + x1=31.623mm; y1=1.59in; x2=31.623mm; y2=42.418mm; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4053 { + x1=31.623mm; y1=1.59in; x2=1.525in; y2=1.59in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4056 { + x1=31.623mm; y1=42.418mm; x2=1.525in; y2=42.418mm; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4059 { + x1=1.525in; y1=1.59in; x2=1.525in; y2=42.418mm; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4100 { + x1=30.988mm; y1=35.814mm; x2=30.988mm; y2=1.49in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4134 { + x1=905.0mil; y1=1.72in; x2=905.0mil; y2=1.8in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4137 { + x1=905.0mil; y1=1.72in; x2=30.099mm; y2=1.72in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4140 { + x1=905.0mil; y1=1.8in; x2=30.099mm; y2=1.8in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4143 { + x1=30.099mm; y1=1.72in; x2=30.099mm; y2=1.8in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4146 { + x1=1.405in; y1=1.72in; x2=1.405in; y2=1.8in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4149 { + x1=1.405in; y1=1.72in; x2=1.685in; y2=1.72in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4152 { + x1=1.405in; y1=1.8in; x2=1.685in; y2=1.8in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4155 { + x1=1.685in; y1=1.72in; x2=1.685in; y2=1.8in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4511 { + x1=33.909mm; y1=1.9in; x2=33.909mm; y2=1.98in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4514 { + x1=985.0mil; y1=1.9in; x2=985.0mil; y2=1.98in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4517 { + x1=1.395in; y1=1.9in; x2=1.395in; y2=1.98in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4520 { + x1=1.365in; y1=1.96in; x2=1.365in; y2=1.92in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4523 { + x1=1.365in; y1=1.96in; x2=34.417mm; y2=49.53mm; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4526 { + x1=1.365in; y1=1.96in; x2=1.375in; y2=49.53mm; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4529 { + x1=1.375in; y1=49.53mm; x2=34.417mm; y2=49.53mm; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4532 { + x1=1.395in; y1=1.9in; x2=985.0mil; y2=1.9in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4535 { + x1=1.395in; y1=1.98in; x2=985.0mil; y2=1.98in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4552 { + x1=350.0mil; y1=2.03in; x2=63.5mm; y2=2.03in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4594 { + x1=2.24in; y1=1.3in; x2=61.468mm; y2=1.3in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4597 { + x1=2.24in; y1=1.38in; x2=2.24in; y2=1.3in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4600 { + x1=2.24in; y1=1.38in; x2=61.468mm; y2=1.38in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4603 { + x1=61.468mm; y1=1.3in; x2=61.468mm; y2=1.38in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4606 { + x1=2.24in; y1=36.322mm; x2=61.468mm; y2=36.322mm; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4609 { + x1=2.24in; y1=1.51in; x2=2.24in; y2=36.322mm; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4612 { + x1=2.24in; y1=1.51in; x2=61.468mm; y2=1.51in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4615 { + x1=61.468mm; y1=36.322mm; x2=61.468mm; y2=1.51in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4618 { + x1=2.24in; y1=1.56in; x2=61.468mm; y2=1.56in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4621 { + x1=2.24in; y1=1.64in; x2=2.24in; y2=1.56in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4624 { + x1=2.24in; y1=1.64in; x2=61.468mm; y2=1.64in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4627 { + x1=61.468mm; y1=1.56in; x2=61.468mm; y2=1.64in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4636 { + x1=1.48in; y1=1.23in; x2=1.48in; y2=1.31in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4678 { + x1=1.66in; y1=1.23in; x2=2.01in; y2=1.23in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4681 { + x1=2.01in; y1=1.23in; x2=2.01in; y2=1.31in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4684 { + x1=1.66in; y1=1.31in; x2=1.66in; y2=1.23in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:line.4687 { + x1=1.66in; y1=1.31in; x2=2.01in; y2=1.31in; thickness=10.0mil; clearance=40.0mil; + ha:flags { + clearline=1 + } + } + ha:text.78 { + string=Excitation; x=430.0mil; y=305.0mil; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.1266 { + string=Gaussian; x=470.0mil; y=495.0mil; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.1267 { + string=Sinusoidal; x=470.0mil; y=595.0mil; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.1268 { + string=Custom; x=470.0mil; y=695.0mil; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.1269 { + string=Standard; x=470.0mil; y=795.0mil; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.1270 { + string=Plane Wave; x=470.0mil; y=895.0mil; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.1271 { + string=Type; x=470.0mil; y=395.0mil; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.1287 { + string=f0 (Center Freq.), fc (20dB Cut Off Freq.), ActivePort; x=870.0mil; y=495.0mil; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.1288 { + string=f0 (Freq.), Active Port; x=870.0mil; y=595.0mil; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.1289 { + string=f0 (Nyquist Rate), Active Port, Mat/Oct File, String Name; x=870.0mil; y=695.0mil; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.1290 { + string={Box Name, Type, Vector, Options {Delay, Propagation Dir.\}}; x=870.0mil; y=795.0mil; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.1291 { + string=Box Name, Propagation Dir., E-Field Polarization; x=870.0mil; y=895.0mil; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.1292 { + string=Requirements; x=870.0mil; y=395.0mil; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.1622 { + string=Hz; x=880.0mil; y=1.06in; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.1649 { + string=f0; x=1.04in; y=1.06in; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.1650 { + string=Hz; x=38.1mm; y=1.06in; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.1604 { + string=f0; x=420.0mil; y=1.06in; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.1759 { + string=matlab/octave file; x=420.0mil; y=1.24in; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.2533 { + string=Box Name; x=420.0mil; y=36.068mm; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.4089 { + string=Type; x=425.0mil; y=1.6in; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.4090 { + string=Vector; x=26.289mm; y=1.6in; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.4091 { + string=X, Y, Z; x=32.893mm; y=1.6in; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.4092 { + string=E-Soft; x=665.0mil; y=1.6in; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.4104 { + string=V; x=1.55in; y=1.6in; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.4158 { + string=Delay; x=1.225in; y=1.73in; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.4159 { + string=S; x=1.715in; y=1.73in; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.4160 { + string=X, Y, Z; x=955.0mil; y=1.73in; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.4161 { + string=0; x=1.64in; y=1.73in; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.4313 { + string=Propagation Dir.; x=425.0mil; y=1.73in; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.4538 { + string=E-Field Polarization; x=425.0mil; y=1.91in; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.4539 { + string=Left; x=27.051mm; y=1.91in; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.4630 { + string=Clear; x=2.26in; y=1.31in; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.4631 { + string=Save; x=2.26in; y=36.576mm; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.4632 { + string=Load; x=2.26in; y=1.57in; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.4690 { + string=Var; x=1.53in; y=1.24in; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + } + color = {#000000} + } + + ha:top-paste { + lid=9 + group=0 + ha:combining { auto=1; } + + li:objects { + } + color = {#cd00cd} + } + + ha:top-mask { + lid=10 + group=2 + ha:combining { sub=1; auto=1; } + + li:objects { + } + color = {#ff0000} + } + + ha:bottom-mask { + lid=11 + group=11 + ha:combining { sub=1; auto=1; } + + li:objects { + } + color = {#ff0000} + } + + ha:bottom-paste { + lid=12 + group=13 + ha:combining { auto=1; } + + li:objects { + } + color = {#cd00cd} + } + + ha:slot-plated { + lid=13 + group=14 + ha:combining { auto=1; } + + li:objects { + } + color = {#8b7355} + } + + ha:slot-unplated { + lid=14 + group=15 + ha:combining { auto=1; } + + li:objects { + } + color = {#00868b} + } + } + } + + ha:font { + ha:geda_pcb { + cell_width=1.270001mm; cell_height=1.397001mm; + ha:symbols { + ha:] { + width=0.127001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=5.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=5.0mil; y1=10.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=50.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:&5c { + width=0.762001mm; height=1.143001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=15.0mil; x2=30.0mil; y2=45.0mil; thickness=8.0mil; + } + } + } + ha:b { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=0.0; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=5.0mil; y1=50.0mil; x2=15.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=15.0mil; y1=50.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=20.0mil; y1=35.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=15.0mil; y1=30.0mil; x2=20.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=5.0mil; y1=30.0mil; x2=15.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=0.0; y1=35.0mil; x2=5.0mil; y2=30.0mil; thickness=8.0mil; + } + } + } + ha:c { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=5.0mil; y1=30.0mil; x2=20.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=35.0mil; x2=5.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=35.0mil; x2=0.0; y2=45.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=5.0mil; y1=50.0mil; x2=20.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:d { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=20.0mil; y1=10.0mil; x2=20.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=15.0mil; y1=50.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=5.0mil; y1=50.0mil; x2=15.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=0.0; y1=35.0mil; x2=0.0; y2=45.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=0.0; y1=35.0mil; x2=5.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=5.0mil; y1=30.0mil; x2=15.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=15.0mil; y1=30.0mil; x2=20.0mil; y2=35.0mil; thickness=8.0mil; + } + } + } + ha:e { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=5.0mil; y1=50.0mil; x2=20.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=35.0mil; x2=0.0; y2=45.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=0.0; y1=35.0mil; x2=5.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=5.0mil; y1=30.0mil; x2=15.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=15.0mil; y1=30.0mil; x2=20.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=0.0; y1=40.0mil; x2=20.0mil; y2=40.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=20.0mil; y1=40.0mil; x2=20.0mil; y2=35.0mil; thickness=8.0mil; + } + } + } + ha:f { + width=0.381001mm; height=1.270001mm; delta=10.0mil; + li:objects { + ha:line.0 { + x1=5.0mil; y1=15.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=5.0mil; y1=15.0mil; x2=10.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=10.0mil; y1=10.0mil; x2=15.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=0.0; y1=30.0mil; x2=10.0mil; y2=30.0mil; thickness=8.0mil; + } + } + } + ha:g { + width=0.508001mm; height=1.651001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=15.0mil; y1=30.0mil; x2=20.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=5.0mil; y1=30.0mil; x2=15.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=35.0mil; x2=5.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=0.0; y1=35.0mil; x2=0.0; y2=45.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=5.0mil; y1=50.0mil; x2=15.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=15.0mil; y1=50.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=0.0; y1=60.0mil; x2=5.0mil; y2=65.0mil; thickness=8.0mil; + } + ha:line.8 { + x1=5.0mil; y1=65.0mil; x2=15.0mil; y2=65.0mil; thickness=8.0mil; + } + ha:line.9 { + x1=15.0mil; y1=65.0mil; x2=20.0mil; y2=60.0mil; thickness=8.0mil; + } + ha:line.10 { + x1=20.0mil; y1=30.0mil; x2=20.0mil; y2=60.0mil; thickness=8.0mil; + } + } + } + ha:h { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=0.0; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=35.0mil; x2=5.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=5.0mil; y1=30.0mil; x2=15.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=15.0mil; y1=30.0mil; x2=20.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=20.0mil; y1=35.0mil; x2=20.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:i { + width=0.001um; height=1.270001mm; delta=10.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=20.0mil; x2=0.0; y2=21.0mil; thickness=10.0mil; + } + ha:line.1 { + x1=0.0; y1=35.0mil; x2=0.0; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:j { + width=0.127001mm; height=1.651001mm; delta=10.0mil; + li:objects { + ha:line.0 { + x1=5.0mil; y1=20.0mil; x2=5.0mil; y2=21.0mil; thickness=10.0mil; + } + ha:line.1 { + x1=5.0mil; y1=35.0mil; x2=5.0mil; y2=60.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=65.0mil; x2=5.0mil; y2=60.0mil; thickness=8.0mil; + } + } + } + ha:k { + width=0.381001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=0.0; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=35.0mil; x2=15.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=35.0mil; x2=10.0mil; y2=25.0mil; thickness=8.0mil; + } + } + } + ha:l { + width=0.127001mm; height=1.270001mm; delta=10.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=0.0; y2=45.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:m { + width=0.889001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=5.0mil; y1=35.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=5.0mil; y1=35.0mil; x2=10.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=10.0mil; y1=30.0mil; x2=15.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=15.0mil; y1=30.0mil; x2=20.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=20.0mil; y1=35.0mil; x2=20.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=20.0mil; y1=35.0mil; x2=25.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=25.0mil; y1=30.0mil; x2=30.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=30.0mil; y1=30.0mil; x2=35.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.8 { + x1=35.0mil; y1=35.0mil; x2=35.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.9 { + x1=0.0; y1=30.0mil; x2=5.0mil; y2=35.0mil; thickness=8.0mil; + } + } + } + ha:n { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=5.0mil; y1=35.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=5.0mil; y1=35.0mil; x2=10.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=10.0mil; y1=30.0mil; x2=15.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=15.0mil; y1=30.0mil; x2=20.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=20.0mil; y1=35.0mil; x2=20.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=0.0; y1=30.0mil; x2=5.0mil; y2=35.0mil; thickness=8.0mil; + } + } + } + ha:o { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=35.0mil; x2=0.0; y2=45.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=35.0mil; x2=5.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=5.0mil; y1=30.0mil; x2=15.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=15.0mil; y1=30.0mil; x2=20.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=20.0mil; y1=35.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=15.0mil; y1=50.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=5.0mil; y1=50.0mil; x2=15.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:p { + width=0.635001mm; height=1.651001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=5.0mil; y1=35.0mil; x2=5.0mil; y2=65.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=30.0mil; x2=5.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=5.0mil; y1=35.0mil; x2=10.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=10.0mil; y1=30.0mil; x2=20.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=20.0mil; y1=30.0mil; x2=25.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=25.0mil; y1=35.0mil; x2=25.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=20.0mil; y1=50.0mil; x2=25.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=10.0mil; y1=50.0mil; x2=20.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.8 { + x1=5.0mil; y1=45.0mil; x2=10.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:q { + width=0.508001mm; height=1.651001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=20.0mil; y1=35.0mil; x2=20.0mil; y2=65.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=15.0mil; y1=30.0mil; x2=20.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=5.0mil; y1=30.0mil; x2=15.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=0.0; y1=35.0mil; x2=5.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=0.0; y1=35.0mil; x2=0.0; y2=45.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=5.0mil; y1=50.0mil; x2=15.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=15.0mil; y1=50.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + } + } + ha:r { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=5.0mil; y1=35.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=5.0mil; y1=35.0mil; x2=10.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=10.0mil; y1=30.0mil; x2=20.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=0.0; y1=30.0mil; x2=5.0mil; y2=35.0mil; thickness=8.0mil; + } + } + } + ha:s { + width=0.635001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=5.0mil; y1=50.0mil; x2=20.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=20.0mil; y1=50.0mil; x2=25.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=20.0mil; y1=40.0mil; x2=25.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=5.0mil; y1=40.0mil; x2=20.0mil; y2=40.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=0.0; y1=35.0mil; x2=5.0mil; y2=40.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=0.0; y1=35.0mil; x2=5.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=5.0mil; y1=30.0mil; x2=20.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=20.0mil; y1=30.0mil; x2=25.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.8 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:t { + width=0.254001mm; height=1.270001mm; delta=10.0mil; + li:objects { + ha:line.0 { + x1=5.0mil; y1=10.0mil; x2=5.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=5.0mil; y1=45.0mil; x2=10.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=25.0mil; x2=10.0mil; y2=25.0mil; thickness=8.0mil; + } + } + } + ha:u { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=30.0mil; x2=0.0; y2=45.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=5.0mil; y1=50.0mil; x2=15.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=15.0mil; y1=50.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=20.0mil; y1=30.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + } + } + ha:v { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=30.0mil; x2=10.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=20.0mil; y1=30.0mil; x2=10.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:w { + width=0.762001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=30.0mil; x2=0.0; y2=45.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=5.0mil; y1=50.0mil; x2=10.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=10.0mil; y1=50.0mil; x2=15.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=15.0mil; y1=30.0mil; x2=15.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=15.0mil; y1=45.0mil; x2=20.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=20.0mil; y1=50.0mil; x2=25.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=25.0mil; y1=50.0mil; x2=30.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.8 { + x1=30.0mil; y1=30.0mil; x2=30.0mil; y2=45.0mil; thickness=8.0mil; + } + } + } + ha:x { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=30.0mil; x2=20.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=50.0mil; x2=20.0mil; y2=30.0mil; thickness=8.0mil; + } + } + } + ha:y { + width=0.508001mm; height=1.651001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=30.0mil; x2=0.0; y2=45.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=20.0mil; y1=30.0mil; x2=20.0mil; y2=60.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=15.0mil; y1=65.0mil; x2=20.0mil; y2=60.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=5.0mil; y1=65.0mil; x2=15.0mil; y2=65.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=0.0; y1=60.0mil; x2=5.0mil; y2=65.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=5.0mil; y1=50.0mil; x2=15.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=15.0mil; y1=50.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + } + } + ha:z { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=30.0mil; x2=20.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=50.0mil; x2=20.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=50.0mil; x2=20.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:~ { + width=0.635001mm; height=0.889001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=35.0mil; x2=5.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=5.0mil; y1=30.0mil; x2=10.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=10.0mil; y1=30.0mil; x2=15.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=15.0mil; y1=35.0mil; x2=20.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=20.0mil; y1=35.0mil; x2=25.0mil; y2=30.0mil; thickness=8.0mil; + } + } + } + ha:&7b { + width=0.254001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=5.0mil; y1=15.0mil; x2=10.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=5.0mil; y1=15.0mil; x2=5.0mil; y2=25.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=30.0mil; x2=5.0mil; y2=25.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=0.0; y1=30.0mil; x2=5.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=5.0mil; y1=35.0mil; x2=5.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=5.0mil; y1=45.0mil; x2=10.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:&7d { + width=0.254001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=5.0mil; y2=15.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=5.0mil; y1=15.0mil; x2=5.0mil; y2=25.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=5.0mil; y1=25.0mil; x2=10.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=5.0mil; y1=35.0mil; x2=10.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=5.0mil; y1=35.0mil; x2=5.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=0.0; y1=50.0mil; x2=5.0mil; y2=45.0mil; thickness=8.0mil; + } + } + } + ha:| { + width=0.001um; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=0.0; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:&20 { + width=0.0; height=10.0mil; delta=18.0mil; + li:objects { + } + } + ha:&23 { + width=0.508001mm; height=1.016001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=35.0mil; x2=20.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=25.0mil; x2=20.0mil; y2=25.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=15.0mil; y1=20.0mil; x2=15.0mil; y2=40.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=5.0mil; y1=20.0mil; x2=5.0mil; y2=40.0mil; thickness=8.0mil; + } + } + } + ha:&26 { + width=0.635001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=15.0mil; x2=0.0; y2=25.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=15.0mil; x2=5.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=0.0; y1=35.0mil; x2=15.0mil; y2=20.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=5.0mil; y1=50.0mil; x2=10.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=10.0mil; y1=50.0mil; x2=20.0mil; y2=40.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=0.0; y1=25.0mil; x2=25.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=5.0mil; y1=10.0mil; x2=10.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.8 { + x1=10.0mil; y1=10.0mil; x2=15.0mil; y2=15.0mil; thickness=8.0mil; + } + ha:line.9 { + x1=15.0mil; y1=15.0mil; x2=15.0mil; y2=20.0mil; thickness=8.0mil; + } + ha:line.10 { + x1=0.0; y1=35.0mil; x2=0.0; y2=45.0mil; thickness=8.0mil; + } + } + } + ha:! { + width=0.001um; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=45.0mil; x2=0.0; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=10.0mil; x2=0.0; y2=35.0mil; thickness=8.0mil; + } + } + } + ha:" { + width=0.254001mm; height=0.508001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=0.0; y2=20.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=10.0mil; y1=10.0mil; x2=10.0mil; y2=20.0mil; thickness=8.0mil; + } + } + } + ha:$ { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=15.0mil; y1=15.0mil; x2=20.0mil; y2=20.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=5.0mil; y1=15.0mil; x2=15.0mil; y2=15.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=20.0mil; x2=5.0mil; y2=15.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=0.0; y1=20.0mil; x2=0.0; y2=25.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=0.0; y1=25.0mil; x2=5.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=5.0mil; y1=30.0mil; x2=15.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=15.0mil; y1=30.0mil; x2=20.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=20.0mil; y1=35.0mil; x2=20.0mil; y2=40.0mil; thickness=8.0mil; + } + ha:line.8 { + x1=15.0mil; y1=45.0mil; x2=20.0mil; y2=40.0mil; thickness=8.0mil; + } + ha:line.9 { + x1=5.0mil; y1=45.0mil; x2=15.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.10 { + x1=0.0; y1=40.0mil; x2=5.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.11 { + x1=10.0mil; y1=10.0mil; x2=10.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:% { + width=1.016001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=15.0mil; x2=0.0; y2=20.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=15.0mil; x2=5.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=5.0mil; y1=10.0mil; x2=10.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=10.0mil; y1=10.0mil; x2=15.0mil; y2=15.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=15.0mil; y1=15.0mil; x2=15.0mil; y2=20.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=10.0mil; y1=25.0mil; x2=15.0mil; y2=20.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=5.0mil; y1=25.0mil; x2=10.0mil; y2=25.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=0.0; y1=20.0mil; x2=5.0mil; y2=25.0mil; thickness=8.0mil; + } + ha:line.8 { + x1=0.0; y1=50.0mil; x2=40.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.9 { + x1=35.0mil; y1=50.0mil; x2=40.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.10 { + x1=40.0mil; y1=40.0mil; x2=40.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.11 { + x1=35.0mil; y1=35.0mil; x2=40.0mil; y2=40.0mil; thickness=8.0mil; + } + ha:line.12 { + x1=30.0mil; y1=35.0mil; x2=35.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.13 { + x1=25.0mil; y1=40.0mil; x2=30.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.14 { + x1=25.0mil; y1=40.0mil; x2=25.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.15 { + x1=25.0mil; y1=45.0mil; x2=30.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.16 { + x1=30.0mil; y1=50.0mil; x2=35.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:' { + width=0.254001mm; height=0.508001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=20.0mil; x2=10.0mil; y2=10.0mil; thickness=8.0mil; + } + } + } + ha:( { + width=0.127001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=15.0mil; x2=5.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=15.0mil; x2=0.0; y2=45.0mil; thickness=8.0mil; + } + } + } + ha:) { + width=0.127001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=5.0mil; y2=15.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=5.0mil; y1=15.0mil; x2=5.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=50.0mil; x2=5.0mil; y2=45.0mil; thickness=8.0mil; + } + } + } + ha:* { + width=0.508001mm; height=1.016001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=20.0mil; x2=20.0mil; y2=40.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=40.0mil; x2=20.0mil; y2=20.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=30.0mil; x2=20.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=10.0mil; y1=20.0mil; x2=10.0mil; y2=40.0mil; thickness=8.0mil; + } + } + } + ha:+ { + width=0.508001mm; height=1.016001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=30.0mil; x2=20.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=10.0mil; y1=20.0mil; x2=10.0mil; y2=40.0mil; thickness=8.0mil; + } + } + } + ha:, { + width=0.254001mm; height=1.524001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=60.0mil; x2=10.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:- { + width=0.508001mm; height=0.762001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=30.0mil; x2=20.0mil; y2=30.0mil; thickness=8.0mil; + } + } + } + ha:. { + width=0.127001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=50.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:0 { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=15.0mil; x2=0.0; y2=45.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=15.0mil; x2=5.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=5.0mil; y1=10.0mil; x2=15.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=15.0mil; y1=10.0mil; x2=20.0mil; y2=15.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=20.0mil; y1=15.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=15.0mil; y1=50.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=5.0mil; y1=50.0mil; x2=15.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.8 { + x1=0.0; y1=40.0mil; x2=20.0mil; y2=20.0mil; thickness=8.0mil; + } + } + } + ha:1 { + width=0.381001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=18.0mil; x2=8.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=8.0mil; y1=10.0mil; x2=8.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=50.0mil; x2=15.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:2 { + width=0.635001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=15.0mil; x2=5.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=5.0mil; y1=10.0mil; x2=20.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=20.0mil; y1=10.0mil; x2=25.0mil; y2=15.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=25.0mil; y1=15.0mil; x2=25.0mil; y2=25.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=0.0; y1=50.0mil; x2=25.0mil; y2=25.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=0.0; y1=50.0mil; x2=25.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:3 { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=15.0mil; x2=5.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=5.0mil; y1=10.0mil; x2=15.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=15.0mil; y1=10.0mil; x2=20.0mil; y2=15.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=15.0mil; y1=50.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=5.0mil; y1=50.0mil; x2=15.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=5.0mil; y1=28.0mil; x2=15.0mil; y2=28.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=20.0mil; y1=15.0mil; x2=20.0mil; y2=23.0mil; thickness=8.0mil; + } + ha:line.8 { + x1=20.0mil; y1=33.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.9 { + x1=20.0mil; y1=33.0mil; x2=15.0mil; y2=28.0mil; thickness=8.0mil; + } + ha:line.10 { + x1=20.0mil; y1=23.0mil; x2=15.0mil; y2=28.0mil; thickness=8.0mil; + } + } + } + ha:4 { + width=0.635001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=35.0mil; x2=20.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=35.0mil; x2=25.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=20.0mil; y1=10.0mil; x2=20.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:5 { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=20.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=10.0mil; x2=0.0; y2=30.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=30.0mil; x2=5.0mil; y2=25.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=5.0mil; y1=25.0mil; x2=15.0mil; y2=25.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=15.0mil; y1=25.0mil; x2=20.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=20.0mil; y1=30.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=15.0mil; y1=50.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=5.0mil; y1=50.0mil; x2=15.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.8 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:6 { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=15.0mil; y1=10.0mil; x2=20.0mil; y2=15.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=5.0mil; y1=10.0mil; x2=15.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=15.0mil; x2=5.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=0.0; y1=15.0mil; x2=0.0; y2=45.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=15.0mil; y1=28.0mil; x2=20.0mil; y2=33.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=0.0; y1=28.0mil; x2=15.0mil; y2=28.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=5.0mil; y1=50.0mil; x2=15.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.8 { + x1=15.0mil; y1=50.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.9 { + x1=20.0mil; y1=33.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + } + } + ha:7 { + width=0.635001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=5.0mil; y1=50.0mil; x2=25.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=10.0mil; x2=25.0mil; y2=10.0mil; thickness=8.0mil; + } + } + } + ha:8 { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=37.0mil; x2=0.0; y2=45.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=37.0mil; x2=7.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=7.0mil; y1=30.0mil; x2=13.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=13.0mil; y1=30.0mil; x2=20.0mil; y2=37.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=20.0mil; y1=37.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=15.0mil; y1=50.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=5.0mil; y1=50.0mil; x2=15.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.8 { + x1=0.0; y1=23.0mil; x2=7.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.9 { + x1=0.0; y1=15.0mil; x2=0.0; y2=23.0mil; thickness=8.0mil; + } + ha:line.10 { + x1=0.0; y1=15.0mil; x2=5.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.11 { + x1=5.0mil; y1=10.0mil; x2=15.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.12 { + x1=15.0mil; y1=10.0mil; x2=20.0mil; y2=15.0mil; thickness=8.0mil; + } + ha:line.13 { + x1=20.0mil; y1=15.0mil; x2=20.0mil; y2=23.0mil; thickness=8.0mil; + } + ha:line.14 { + x1=13.0mil; y1=30.0mil; x2=20.0mil; y2=23.0mil; thickness=8.0mil; + } + } + } + ha:9 { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=5.0mil; y1=50.0mil; x2=20.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=20.0mil; y1=15.0mil; x2=20.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=15.0mil; y1=10.0mil; x2=20.0mil; y2=15.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=5.0mil; y1=10.0mil; x2=15.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=0.0; y1=15.0mil; x2=5.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=0.0; y1=15.0mil; x2=0.0; y2=25.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=0.0; y1=25.0mil; x2=5.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=5.0mil; y1=30.0mil; x2=20.0mil; y2=30.0mil; thickness=8.0mil; + } + } + } + ha:< { + width=0.254001mm; height=1.016001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=30.0mil; x2=10.0mil; y2=20.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=30.0mil; x2=10.0mil; y2=40.0mil; thickness=8.0mil; + } + } + } + ha:> { + width=0.254001mm; height=1.016001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=20.0mil; x2=10.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=40.0mil; x2=10.0mil; y2=30.0mil; thickness=8.0mil; + } + } + } + ha:? { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=10.0mil; y1=30.0mil; x2=10.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=10.0mil; y1=45.0mil; x2=10.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=15.0mil; x2=0.0; y2=20.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=0.0; y1=15.0mil; x2=5.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=5.0mil; y1=10.0mil; x2=15.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=15.0mil; y1=10.0mil; x2=20.0mil; y2=15.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=20.0mil; y1=15.0mil; x2=20.0mil; y2=20.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=10.0mil; y1=30.0mil; x2=20.0mil; y2=20.0mil; thickness=8.0mil; + } + } + } + ha:@ { + width=1.270001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=0.0; y2=40.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=40.0mil; x2=10.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=10.0mil; y1=50.0mil; x2=40.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=50.0mil; y1=35.0mil; x2=50.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=50.0mil; y1=10.0mil; x2=40.0mil; y2=0.0; thickness=8.0mil; + } + ha:line.5 { + x1=40.0mil; y1=0.0; x2=10.0mil; y2=0.0; thickness=8.0mil; + } + ha:line.6 { + x1=10.0mil; y1=0.0; x2=0.0; y2=10.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=15.0mil; y1=20.0mil; x2=15.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.8 { + x1=15.0mil; y1=30.0mil; x2=20.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.9 { + x1=20.0mil; y1=35.0mil; x2=30.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.10 { + x1=30.0mil; y1=35.0mil; x2=35.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.11 { + x1=35.0mil; y1=30.0mil; x2=40.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.12 { + x1=35.0mil; y1=30.0mil; x2=35.0mil; y2=15.0mil; thickness=8.0mil; + } + ha:line.13 { + x1=35.0mil; y1=20.0mil; x2=30.0mil; y2=15.0mil; thickness=8.0mil; + } + ha:line.14 { + x1=20.0mil; y1=15.0mil; x2=30.0mil; y2=15.0mil; thickness=8.0mil; + } + ha:line.15 { + x1=20.0mil; y1=15.0mil; x2=15.0mil; y2=20.0mil; thickness=8.0mil; + } + ha:line.16 { + x1=40.0mil; y1=35.0mil; x2=50.0mil; y2=35.0mil; thickness=8.0mil; + } + } + } + ha:A { + width=0.635001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=20.0mil; x2=0.0; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=20.0mil; x2=7.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=7.0mil; y1=10.0mil; x2=18.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=18.0mil; y1=10.0mil; x2=25.0mil; y2=20.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=25.0mil; y1=20.0mil; x2=25.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=0.0; y1=30.0mil; x2=25.0mil; y2=30.0mil; thickness=8.0mil; + } + } + } + ha:B { + width=0.635001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=50.0mil; x2=20.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=20.0mil; y1=50.0mil; x2=25.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=25.0mil; y1=33.0mil; x2=25.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=20.0mil; y1=28.0mil; x2=25.0mil; y2=33.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=5.0mil; y1=28.0mil; x2=20.0mil; y2=28.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=5.0mil; y1=10.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=0.0; y1=10.0mil; x2=20.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=20.0mil; y1=10.0mil; x2=25.0mil; y2=15.0mil; thickness=8.0mil; + } + ha:line.8 { + x1=25.0mil; y1=15.0mil; x2=25.0mil; y2=23.0mil; thickness=8.0mil; + } + ha:line.9 { + x1=20.0mil; y1=28.0mil; x2=25.0mil; y2=23.0mil; thickness=8.0mil; + } + } + } + ha:C { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=7.0mil; y1=50.0mil; x2=20.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=43.0mil; x2=7.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=17.0mil; x2=0.0; y2=43.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=0.0; y1=17.0mil; x2=7.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=7.0mil; y1=10.0mil; x2=20.0mil; y2=10.0mil; thickness=8.0mil; + } + } + } + ha:D { + width=0.635001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=5.0mil; y1=10.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=18.0mil; y1=10.0mil; x2=25.0mil; y2=17.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=25.0mil; y1=17.0mil; x2=25.0mil; y2=43.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=18.0mil; y1=50.0mil; x2=25.0mil; y2=43.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=0.0; y1=50.0mil; x2=18.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=0.0; y1=10.0mil; x2=18.0mil; y2=10.0mil; thickness=8.0mil; + } + } + } + ha:E { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=28.0mil; x2=15.0mil; y2=28.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=50.0mil; x2=20.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=10.0mil; x2=0.0; y2=50.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=0.0; y1=10.0mil; x2=20.0mil; y2=10.0mil; thickness=8.0mil; + } + } + } + ha:F { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=0.0; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=10.0mil; x2=20.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=28.0mil; x2=15.0mil; y2=28.0mil; thickness=8.0mil; + } + } + } + ha:G { + width=0.635001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=20.0mil; y1=10.0mil; x2=25.0mil; y2=15.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=5.0mil; y1=10.0mil; x2=20.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=15.0mil; x2=5.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=0.0; y1=15.0mil; x2=0.0; y2=45.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=5.0mil; y1=50.0mil; x2=20.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=20.0mil; y1=50.0mil; x2=25.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=25.0mil; y1=35.0mil; x2=25.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.8 { + x1=20.0mil; y1=30.0mil; x2=25.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.9 { + x1=10.0mil; y1=30.0mil; x2=20.0mil; y2=30.0mil; thickness=8.0mil; + } + } + } + ha:H { + width=0.635001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=0.0; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=25.0mil; y1=10.0mil; x2=25.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=30.0mil; x2=25.0mil; y2=30.0mil; thickness=8.0mil; + } + } + } + ha:I { + width=0.254001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=10.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=5.0mil; y1=10.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=50.0mil; x2=10.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:J { + width=0.381001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=7.0mil; y1=10.0mil; x2=15.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=15.0mil; y1=10.0mil; x2=15.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=10.0mil; y1=50.0mil; x2=15.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=5.0mil; y1=50.0mil; x2=10.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=0.0; y1=45.0mil; x2=0.0; y2=40.0mil; thickness=8.0mil; + } + } + } + ha:K { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=0.0; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=30.0mil; x2=20.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=30.0mil; x2=20.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:L { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=0.0; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=50.0mil; x2=20.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:M { + width=0.762001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=0.0; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=10.0mil; x2=15.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=15.0mil; y1=30.0mil; x2=30.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=30.0mil; y1=10.0mil; x2=30.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:&2f { + width=0.762001mm; height=1.143001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=45.0mil; x2=30.0mil; y2=15.0mil; thickness=8.0mil; + } + } + } + ha:&3a { + width=0.127001mm; height=0.889001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=25.0mil; x2=5.0mil; y2=25.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=35.0mil; x2=5.0mil; y2=35.0mil; thickness=8.0mil; + } + } + } + ha:&3b { + width=0.254001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=50.0mil; x2=10.0mil; y2=40.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=10.0mil; y1=25.0mil; x2=10.0mil; y2=30.0mil; thickness=8.0mil; + } + } + } + ha:&3d { + width=0.508001mm; height=0.889001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=25.0mil; x2=20.0mil; y2=25.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=35.0mil; x2=20.0mil; y2=35.0mil; thickness=8.0mil; + } + } + } + ha:O { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=15.0mil; x2=0.0; y2=45.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=15.0mil; x2=5.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=5.0mil; y1=10.0mil; x2=15.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=15.0mil; y1=10.0mil; x2=20.0mil; y2=15.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=20.0mil; y1=15.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=15.0mil; y1=50.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=5.0mil; y1=50.0mil; x2=15.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:P { + width=0.635001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=5.0mil; y1=10.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=10.0mil; x2=20.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=20.0mil; y1=10.0mil; x2=25.0mil; y2=15.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=25.0mil; y1=15.0mil; x2=25.0mil; y2=25.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=20.0mil; y1=30.0mil; x2=25.0mil; y2=25.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=5.0mil; y1=30.0mil; x2=20.0mil; y2=30.0mil; thickness=8.0mil; + } + } + } + ha:N { + width=0.635001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=0.0; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=10.0mil; x2=25.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=25.0mil; y1=10.0mil; x2=25.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:R { + width=0.635001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=20.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=20.0mil; y1=10.0mil; x2=25.0mil; y2=15.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=25.0mil; y1=15.0mil; x2=25.0mil; y2=25.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=20.0mil; y1=30.0mil; x2=25.0mil; y2=25.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=5.0mil; y1=30.0mil; x2=20.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=5.0mil; y1=10.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=13.0mil; y1=30.0mil; x2=25.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:S { + width=0.635001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=20.0mil; y1=10.0mil; x2=25.0mil; y2=15.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=5.0mil; y1=10.0mil; x2=20.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=15.0mil; x2=5.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=0.0; y1=15.0mil; x2=0.0; y2=25.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=0.0; y1=25.0mil; x2=5.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=5.0mil; y1=30.0mil; x2=20.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=20.0mil; y1=30.0mil; x2=25.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=25.0mil; y1=35.0mil; x2=25.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.8 { + x1=20.0mil; y1=50.0mil; x2=25.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.9 { + x1=5.0mil; y1=50.0mil; x2=20.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.10 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:Q { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=15.0mil; x2=0.0; y2=45.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=15.0mil; x2=5.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=5.0mil; y1=10.0mil; x2=15.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=15.0mil; y1=10.0mil; x2=20.0mil; y2=15.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=20.0mil; y1=15.0mil; x2=20.0mil; y2=40.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=10.0mil; y1=50.0mil; x2=20.0mil; y2=40.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=5.0mil; y1=50.0mil; x2=10.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.8 { + x1=10.0mil; y1=35.0mil; x2=20.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:U { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=0.0; y2=45.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=5.0mil; y1=50.0mil; x2=15.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=15.0mil; y1=50.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=20.0mil; y1=10.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + } + } + ha:V { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=10.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=10.0mil; y1=50.0mil; x2=20.0mil; y2=10.0mil; thickness=8.0mil; + } + } + } + ha:T { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=20.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=10.0mil; y1=10.0mil; x2=10.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:X { + width=0.635001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=50.0mil; x2=25.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=10.0mil; x2=25.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:Y { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=10.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=10.0mil; y1=30.0mil; x2=20.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=10.0mil; y1=30.0mil; x2=10.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:W { + width=0.762001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=0.0; y2=30.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=30.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=5.0mil; y1=50.0mil; x2=15.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=15.0mil; y1=30.0mil; x2=25.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=25.0mil; y1=50.0mil; x2=30.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=30.0mil; y1=30.0mil; x2=30.0mil; y2=10.0mil; thickness=8.0mil; + } + } + } + ha:[ { + width=0.127001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=5.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=10.0mil; x2=0.0; y2=50.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=50.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:^ { + width=0.254001mm; height=0.381001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=15.0mil; x2=5.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=5.0mil; y1=10.0mil; x2=10.0mil; y2=15.0mil; thickness=8.0mil; + } + } + } + ha:Z { + width=0.635001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=10.0mil; x2=25.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=0.0; y1=50.0mil; x2=25.0mil; y2=10.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=50.0mil; x2=25.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + ha:a { + width=0.635001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=15.0mil; y1=30.0mil; x2=20.0mil; y2=35.0mil; thickness=8.0mil; + } + ha:line.1 { + x1=5.0mil; y1=30.0mil; x2=15.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.2 { + x1=0.0; y1=35.0mil; x2=5.0mil; y2=30.0mil; thickness=8.0mil; + } + ha:line.3 { + x1=0.0; y1=35.0mil; x2=0.0; y2=45.0mil; thickness=8.0mil; + } + ha:line.4 { + x1=0.0; y1=45.0mil; x2=5.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.5 { + x1=20.0mil; y1=30.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + ha:line.6 { + x1=20.0mil; y1=45.0mil; x2=25.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.7 { + x1=5.0mil; y1=50.0mil; x2=15.0mil; y2=50.0mil; thickness=8.0mil; + } + ha:line.8 { + x1=15.0mil; y1=50.0mil; x2=20.0mil; y2=45.0mil; thickness=8.0mil; + } + } + } + ha:_ { + width=0.508001mm; height=1.270001mm; delta=12.0mil; + li:objects { + ha:line.0 { + x1=0.0; y1=50.0mil; x2=20.0mil; y2=50.0mil; thickness=8.0mil; + } + } + } + } + id = 0 + } + } + ha:layer_stack { + li:groups { + ha:0 { + name = top_paste + ha:type { top=1; paste=1; } + li:layers { 9; } + } + ha:1 { + name = top_silk + ha:type { silk=1; top=1; } + li:layers { 8; } + } + ha:2 { + name = top_mask + ha:type { top=1; mask=1; } + li:layers { 10; } + } + ha:3 { + name = top_copper + ha:type { copper=1; top=1; } + li:layers { 0; 2; } + } + ha:4 { + name = grp_4 + ha:type { substrate=1; intern=1; } + li:layers { } + } + ha:5 { + name = Intern + ha:type { copper=1; intern=1; } + li:layers { 5; } + } + ha:6 { + name = grp_6 + ha:type { substrate=1; intern=1; } + li:layers { } + } + ha:7 { + name = Intern + ha:type { copper=1; intern=1; } + li:layers { 4; } + } + ha:8 { + name = grp_8 + ha:type { substrate=1; intern=1; } + li:layers { } + } + ha:9 { + name = global_outline + ha:type { boundary=1; } + li:layers { 6; } + purpose = uroute + } + ha:10 { + name = bottom_copper + ha:type { bottom=1; copper=1; } + li:layers { 1; 3; } + } + ha:11 { + name = bottom_mask + ha:type { bottom=1; mask=1; } + li:layers { 11; } + } + ha:12 { + name = bottom_silk + ha:type { silk=1; bottom=1; } + li:layers { 7; } + } + ha:13 { + name = bottom_paste + ha:type { bottom=1; paste=1; } + li:layers { 12; } + } + ha:14 { + name = pmech + ha:type { mech=1; } + li:layers { 13; } + purpose = proute + } + ha:15 { + name = umech + ha:type { mech=1; } + li:layers { 14; } + purpose = uroute + } + } + } + li:pcb-rnd-conf-v1 { + ha:overwrite { + ha:design { + text_font_id = 0 + text_scale = 100 + via_thickness = 2.0000 mm + via_drilling_hole = 31.50 mil + text_thickness = 0 + line_thickness = 10.00 mil + poly_isle_area = 200000000.0 + clearance = 20.00 mil + } + ha:editor { + buffer_number = 0 + grids_idx = 3 + grid = 10.00 mil + grid_unit = mil + } + } + } +} Index: dev_comm/notes.txt =================================================================== --- dev_comm/notes.txt (nonexistent) +++ dev_comm/notes.txt (revision 23464) @@ -0,0 +1,61 @@ + +Units +- We need to specify units. OpenEMS by default uses meters but this could be + fudged to scale things to inches or something non-metric if we wanted. ++ We should support scaling to enable people to incorporate other objects + the model from sources other than pcb-rnd (like mech-cad) for things + like the chassis or what ever. + +Boundary Conditions (http://openems.de/index.php/FDTD_Boundary_Conditions) +- There are 6 fields because this is the cube that contains the model we are + solving. +- Boundary conditions for the environment the model is in must be defined. For + antenna's these will be different than for say a filter. There are a few pre- + coded constants PMC, MUR, PML_8 and etc that we should provide as options. + Users can also manually enter any number they want. +- It is important to locate the model at the right distance from the boundary + box walls. This is actually set by how far up/down/left/right you mesh from + the model. For PML it is suggested to use a distance of 1/4 the wavelength + of the longest frequency involved. + (In openems's documentation this is actually one of the rules of thumb for + meshing.) + +Excitation (http://openems.de/index.php/Excitation) +- We want Gaussian excitation for a default. This is what most people will use + to plot the spectrum of filter absorbtions and etc. It does this on ports. +- The next most useful excitation is spatial excitiation is the standard + excitation. AddExcitation does this but I have honestly not seen it used in + an examples. Basically everything uses the SetGaussExcite. + +Mesh (http://openems.de/index.php/FDTD_Mesh) +(This is really just a list of exactly the same things stated in the URL +above) +- Mesh density should be at minimum 1/10 of the shortest wavelength being + studied. +- Mesh density shouldn't go finer than 1/15 of the shortest wavelength being + studied. +- Mesh density should avoid radical changes. (I believe this is what damns 3D + copper and via modeling) Mesh density shouldn't double from one cell to it's + neighbor. +- For 2D copper (which must be the default and currently is the only fully + supported mode.) At the edge of the copper 1/3 of the copper should land + inside the cell leaving 2/3 outside. +- Please see the last note in boundary conditions about centering the model in + the mesh. + +Graphing (http://openems.de/index.php/Visualization_of_Results) +- Honestly it's just described in that url. I can't condense it. +- There are features missing but I should experiment more before pretending to + know something the authors did not. + +Dump Boxes (http://openems.de/index.php/Dump_Box_Property) +- The term "box" isn't quite accurate. Supposedly this can be invoked with any + other primitives but the documentation also says the results are invalid. + (eye roll) +- + +N2FF (http://openems.de/index.php/NF2FF) +- Honestly again they did a better than I could. +- The N2FF lets you map + + Index: dev_comm/readme.txt =================================================================== --- dev_comm/readme.txt (nonexistent) +++ dev_comm/readme.txt (revision 23464) @@ -0,0 +1,46 @@ + +There has been some confusion about what these directories are. + +matlab +this is the library used by our direct exporter + +examples +this is a set of example files using my library for pcb export. i also use +them to test the library. at some point igor2 contributed an antenna to this +which he pulled from some ti data sheet. + +ref +this is a set of example files i made for myself showing how openems's +geometry works + +koen +this directory has a collection of variations on examples originally written +by Koen De Vleeschauwer. + +koen/eagle +this is his original work with the output he got renamed and the output it +produces now for comparison. it uses an eagle file to make a hyp file which is +then run through hyp2mat. + +koen/pcbrnd +this is what i got when i modified the example to import the hyp file into +pcb-rnd and then export it again to prove the hyp2mat export and our hyp +output could work. + +koen/pcbrnd_direct/hairpinfilter +this is what i got when i took that example fixed the import errors up more +(from hyp-> lht conversion) and redid everything using our direct exporter and +utlimately our mesher as well. + +koen/pcbrnd_direct/hairpinfilter_diff/ +this is a series of diff's i created to try to document the alterations our +exporter needed to produce working output. + +landscape +this was a set of drawings in gschem outlining the ecology of tools currently +existing in the space. it also has a few drawings i did in the start showing +early thoughts about how geometry should be exported. they are not really +relivant now. + + + Index: dev_comm/todo.txt =================================================================== --- dev_comm/todo.txt (nonexistent) +++ dev_comm/todo.txt (revision 23464) @@ -0,0 +1,44 @@ +Step 1: crunch-mode export plugin development +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +We need each and every one of the followig points done _before_ the +crunch-mode export plugin development can start. This is a checklist. + +1. 2..6 example input (.pcb) files with different simple constructions + that'd test different output features. Keep each as simple as possible: + e.g. a single trace line, a single polygon with 6..8 point, a single arc, + etc. + +2. One hand written output file for each of the .pcb files of point 1. that + contains the expected output. Preferrably these files are byte-to-byte what + pcb-rnd needs to generate when exporting the given .pcb. You don't need to + write a converter tool or do anything complicated, just use a text editor + to write the file and then test if it looks good with openEMS. So for a + point 1. foo.pcb there would be foo.whatever, which can be loaded in openEMS. + +3. A step-by-step explanation of what exactly needs to be done in openEMS + to check whether an exported file works. Chose simplicity over completeness: + pick one process/action/method-to-check, probably the most sensitive one, + that is the most likely to break if the export file is wrong + and document that one process. Do _not_ assume the reader knows or wants + to know openEMS, so write down each step, dumbed down, like "file menu, load, + select the exported file", etc. + +4. For each of the export files of point 2., a reference output when it went + through process 3. It can be an output file from openEMS or a screenshot. + +5. If there's anything interesting with an input of 1., please also write a + short plain text file explaining the trick. E.g. if in point 1 bar.pcb + you have an arc and openEMS doesn't support arc and you had to approximate + it with 4 line segments in bar.whatever, there should be a bar.txt explaining + this and giving some hints on the process, e.g. how many line segments + should be used, what should happen at corner cases, etc. This file can be + ommited for real straight-forward examples. + +6. All these files should be commited in this directory before I can start. + + +Step 2: testing with real data and bugfixing +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +(will write this section when we get here) Index: examples/koen/pcbrnd_direct/hairpinfilter/hairpinfilter.lht =================================================================== --- examples/koen/pcbrnd_direct/hairpinfilter/hairpinfilter.lht (revision 23463) +++ examples/koen/pcbrnd_direct/hairpinfilter/hairpinfilter.lht (revision 23464) @@ -39,7 +39,7 @@ } board_name = ha:grid { - spacing = 0.5mm + spacing = 0.05mm offs_x = 0.0 offs_y = 0.0 } @@ -101,7 +101,7 @@ li:objects { ha:padstack_ref.7837 { - proto=1; x=10.0mm; y=37.0mm; rot=0.000000; xmirror=0; smirror=0; clearance=20.0mil; + proto=1; x=9.9mm; y=37.0mm; rot=0.000000; xmirror=0; smirror=0; clearance=20.0mil; ha:flags { clearline=1 } @@ -114,7 +114,7 @@ } } ha:padstack_ref.7898 { - proto=1; x=38.0mm; y=37.0mm; rot=0.000000; xmirror=0; smirror=0; clearance=20.0mil; + proto=1; x=38.35mm; y=37.0mm; rot=0.000000; xmirror=0; smirror=0; clearance=20.0mil; ha:flags { clearline=1 } @@ -2344,8 +2344,8 @@ grid_unit = mm buffer_number = 0 show_solder_side = 0 - grids_idx = 11 - grid = 500.00 um + grids_idx = 8 + grid = 50.00 um } } } Index: examples/koen/pcbrnd_direct/hairpinfilter/hairpinfilter.m =================================================================== --- examples/koen/pcbrnd_direct/hairpinfilter/hairpinfilter.m (revision 23463) +++ examples/koen/pcbrnd_direct/hairpinfilter/hairpinfilter.m (revision 23464) @@ -1,14 +1,3 @@ -%%% Board mesh, part 1 -unit = 1.0e-3; -FDTD = InitFDTD(); -fc= 1.1e9; % center frequency -f0= 1.0e9; % estimated 20db frequency -FDTD = SetGaussExcite( FDTD, f0, fc ); -BC = {'PML_8' 'PML_8' 'PML_8' 'PML_8' 'PML_8' 'PML_8'}; -FDTD = SetBoundaryCond(FDTD, BC); -physical_constants; -CSX = InitCSX(); - %%% User tunables %% base_priority and offset: chassis for the board to sit in. @@ -32,15 +21,13 @@ %%% Board mesh, part 2 -z_bottom_copper=1.5000 -mesh.y=[0.0000 0.4570 0.9140 1.3710 1.8279 2.2849 2.7419 3.1989 3.6559 4.1129 4.5698 5.3198 5.3198 5.9165 6.5132 7.1098 7.1098 7.3598 7.8598 7.8598 8.1098 8.1098 8.6098 32.0098 31.2598 9.3598 10.0898 10.8198 11.5498 12.2798 13.0098 13.7398 14.4698 15.1998 15.9298 16.6598 17.3898 18.1198 18.8498 19.5798 20.3098 21.0398 21.7698 22.4998 23.2298 23.9598 24.6898 25.4198 26.1498 26.8798 27.6098 28.3398 29.0698 29.7998 30.5298 32.5098 32.7598 32.7598 33.2598 33.5098 33.5098 33.5098 34.1065 34.7032 35.2998 36.0498 37.0000 37.8398 38.5898 38.5898 39.0489 39.5079 39.9669 40.4259 40.8849 41.3439 41.8030 42.2620 42.7210 43.1800]; -mesh.x=[0.0000 0.4786 0.9572 1.4358 1.9144 2.3929 2.8715 3.3501 3.8287 4.3073 4.7859 5.2645 5.7431 6.2216 6.7002 7.1788 7.6574 8.1360 8.8860 10.0000 10.9280 11.6780 11.6780 12.3587 13.0393 13.7200 14.4700 15.5020 16.2520 16.2520 16.9320 17.6120 18.2920 19.0420 19.0420 19.3860 19.7300 20.0740 20.8240 20.8240 21.5040 22.1840 22.8640 23.6140 24.6460 25.3960 25.3960 26.0760 26.7560 27.4360 28.1860 28.1860 28.5300 28.8740 29.2180 29.9680 29.9680 30.6480 31.3280 32.0080 32.7580 33.7900 34.5400 34.5400 35.2207 35.9013 36.5820 37.3320 38.0000 39.3740 40.1240 40.1240 40.5840 41.0440 41.5039 41.9639 42.4239 42.8839 43.3439 43.8039 44.2638 44.7238 45.1838 45.6438]; -mesh.z=[0.0000 0.7500 1.5000 -4.0000 -3.3333 -2.6667 -2.0000 -1.3333 -0.6667 1.5000 2.1667 2.8333 3.5000 4.1667 4.8333]; +z_bottom_copper=0.0000 +mesh.y=[]; +mesh.x=[]; +mesh.z=[]; mesh.x = mesh.x .+ offset.x; mesh.y = offset.y .- mesh.y; mesh.z = z_bottom_copper .- mesh.z .+ offset.z; -mesh = AddPML(mesh, 8); -mesh CSX = DefineRectGrid(CSX, unit, mesh); %%% Layer mapping @@ -57,8 +44,8 @@ layers(2).clearn = 0; layer_types(2).name = 'SUBSTRATE_2'; layer_types(2).subtype = 3; -layer_types(2).thickness = 1.5000; -layer_types(2).epsilon = 4.8; +layer_types(2).thickness = 0.0500; +layer_types(2).epsilon = 3.66; layer_types(2).mue = 0; layer_types(2).kappa = 0; layer_types(2).sigma = 0; @@ -132,55 +119,22 @@ poly5_xy(1, 3) = 37.0840; poly5_xy(2, 3) = -38.0898; poly5_xy(1, 4) = 37.0840; poly5_xy(2, 4) = -7.6098; CSX = AddPcbrndPoly(CSX, PCBRND, 1, poly5_xy, 1); -poly6_xy(1, 1) = 9.5000; poly6_xy(2, 1) = -36.5000; -poly6_xy(1, 2) = 10.5000; poly6_xy(2, 2) = -36.5000; -poly6_xy(1, 3) = 10.5000; poly6_xy(2, 3) = -37.5000; -poly6_xy(1, 4) = 9.5000; poly6_xy(2, 4) = -37.5000; +poly6_xy(1, 1) = 9.4000; poly6_xy(2, 1) = -36.5000; +poly6_xy(1, 2) = 10.4000; poly6_xy(2, 2) = -36.5000; +poly6_xy(1, 3) = 10.4000; poly6_xy(2, 3) = -37.5000; +poly6_xy(1, 4) = 9.4000; poly6_xy(2, 4) = -37.5000; CSX = AddPcbrndPoly(CSX, PCBRND, 1, poly6_xy, 1); -poly7_xy(1, 1) = 37.5000; poly7_xy(2, 1) = -36.5000; -poly7_xy(1, 2) = 38.5000; poly7_xy(2, 2) = -36.5000; -poly7_xy(1, 3) = 38.5000; poly7_xy(2, 3) = -37.5000; -poly7_xy(1, 4) = 37.5000; poly7_xy(2, 4) = -37.5000; +poly7_xy(1, 1) = 37.8500; poly7_xy(2, 1) = -36.5000; +poly7_xy(1, 2) = 38.8500; poly7_xy(2, 2) = -36.5000; +poly7_xy(1, 3) = 38.8500; poly7_xy(2, 3) = -37.5000; +poly7_xy(1, 4) = 37.8500; poly7_xy(2, 4) = -37.5000; CSX = AddPcbrndPoly(CSX, PCBRND, 1, poly7_xy, 1); %%% Port(s) on terminals -a1_point(1, 1) = 10.0000; a1_point(2, 1) = -37.0000; -[a1_start, a1_stop] = CalcPcbrnd2PortV(PCBRND, a1_point, 1, 3); -[CSX, port{1}] = AddLumpedPort(CSX, 999, 1, 50.000000, a1_start, a1_stop, [0 0 -1], true); +1_point(1, 1) = 9.9000; 1_point(2, 1) = -37.0000; +[1_start, 1_stop] = CalcPcbrnd2PortV(PCBRND, 1_point, 1, 3); +[CSX, port{1}] = AddLumpedPort(CSX, 999, 1, 50.000000, 1_start, 1_stop, [0 0 -1], true); -a2_point(1, 1) = 38.0000; a2_point(2, 1) = -37.0000; -[a2_start, a2_stop] = CalcPcbrnd2PortV(PCBRND, a2_point, 1, 3); -[CSX, port{2}] = AddLumpedPort(CSX, 999, 2, 50.000000, a2_start, a2_stop, [0 0 -1]); - - -Sim_Path = 'tmp'; -Sim_CSX = 'msl.xml'; - -[status, message, messageid] = rmdir( Sim_Path, 's' ); % clear previous directory -[status, message, messageid] = mkdir( Sim_Path ); % create empty simulation folder - -disp([ 'Estimated simulation runtime: 25000 timesteps' ]); % inform user this may take a while... -WriteOpenEMS( [Sim_Path '/' Sim_CSX], FDTD, CSX ); -CSXGeomPlot( [Sim_Path '/' Sim_CSX] ); -RunOpenEMS( Sim_Path, Sim_CSX ); - -% post-processing -close all -f = linspace( 1e6, 2e9, 1601 ); -port = calcPort( port, Sim_Path, f, 'RefImpedance', 50); - -s11 = port{1}.uf.ref./ port{1}.uf.inc; -s21 = port{2}.uf.ref./ port{1}.uf.inc; - -plot(f/1e9,20*log10(abs(s11)),'k-','LineWidth',2); -hold on; -grid on; -plot(f/1e9,20*log10(abs(s21)),'r--','LineWidth',2); -legend('S_{11}','S_{21}'); -ylabel('S-Parameter (dB)','FontSize',12); -xlabel('frequency (GHz) \rightarrow','FontSize',12); -ylim([-60 2]); -print ('hairpinfilter_simulation.png', '-dpng'); - - - +2_point(1, 1) = 38.3500; 2_point(2, 1) = -37.0000; +[2_start, 2_stop] = CalcPcbrnd2PortV(PCBRND, 2_point, 1, 3); +[CSX, port{2}] = AddLumpedPort(CSX, 999, 2, 50.000000, 2_start, 2_stop, [0 0 -1]);