Compare commits

..

2 commits
main ... wip

Author SHA1 Message Date
jaseg
5c0eb54ace WIP 2024-09-10 15:47:28 +02:00
jaseg
81ee2ad5e7 Paper intro WIP 2024-09-09 18:05:28 +02:00
69 changed files with 127 additions and 1894759 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,3 +1,21 @@
Coil_Solver:
Equation: CoilSolver
Procedure: '"CoilSolver" "CoilSolver"'
Linear System Solver: Iterative
Linear System Preconditioning: ILU1
Linear System Max Iterations: 1000
Linear System Convergence Tolerance: 1e-10
Linear System Iterative Method: BiCGStab
Linear System Residual Output: 10
Steady State Convergence Tolerance: 1e-06
Normalize Coil Current: True
Nonlinear System Consistent Norm: True
Coil Closed: True
Narrow Interface: True
Save Coil Set: True
Save Coil Index: True
Calculate Elemental Fields: True
Static_Current_Conduction: Static_Current_Conduction:
Equation: Static Current Conduction Equation: Static Current Conduction
Variable: Potential Variable: Potential

View file

@ -208,13 +208,13 @@ def inductance(mesh_file, sim_dir, solver_method):
fr4 = elmer.load_material('fr4', sim, 'coil_mag_materials.yml') fr4 = elmer.load_material('fr4', sim, 'coil_mag_materials.yml')
copper = elmer.load_material('copper', sim, 'coil_mag_materials.yml') copper = elmer.load_material('copper', sim, 'coil_mag_materials.yml')
solver_current = elmer.load_solver('Static_Current_Conduction', sim, 'coil_mag_solvers.yml') solver_coil = elmer.load_solver('Coil_Solver', sim, 'coil_mag_solvers.yml')
solver_magdyn = elmer.load_solver('Magneto_Dynamics', sim, 'coil_mag_solvers.yml') solver_magdyn = elmer.load_solver('Magneto_Dynamics', sim, 'coil_mag_solvers.yml')
if solver_method: if solver_method:
solver_magdyn.data['Linear System Iterative Method'] = solver_method solver_magdyn.data['Linear System Iterative Method'] = solver_method
solver_magdyn_calc = elmer.load_solver('Magneto_Dynamics_Calculations', sim, 'coil_mag_solvers.yml') solver_magdyn_calc = elmer.load_solver('Magneto_Dynamics_Calculations', sim, 'coil_mag_solvers.yml')
copper_eqn = elmer.Equation(sim, 'copperEqn', [solver_current, solver_magdyn, solver_magdyn_calc]) copper_eqn = elmer.Equation(sim, 'copperEqn', [solver_coil, solver_magdyn, solver_magdyn_calc])
air_eqn = elmer.Equation(sim, 'airEqn', [solver_magdyn, solver_magdyn_calc]) air_eqn = elmer.Equation(sim, 'airEqn', [solver_magdyn, solver_magdyn_calc])
bdy_trace = elmer.Body(sim, 'trace', [physical['trace'][1]]) bdy_trace = elmer.Body(sim, 'trace', [physical['trace'][1]])
@ -237,20 +237,20 @@ def inductance(mesh_file, sim_dir, solver_method):
bdy_if_bottom.material = copper bdy_if_bottom.material = copper
bdy_if_bottom.equation = copper_eqn bdy_if_bottom.equation = copper_eqn
potential_force = elmer.BodyForce(sim, 'electric_potential', {'Electric Potential': 'Equals "Potential"'}) comp_coil = elmer.Component(sim, 'Coil', [bdy_trace])
bdy_trace.body_force = potential_force comp_coil.data['Desired Current Density'] = 'Real 1.0'
current_force = elmer.BodyForce(sim, 'Source', {
'Current Density 1': 'Equals "CoilCurrent e 1"',
'Current Density 2': 'Equals "CoilCurrent e 2"',
'Current Density 3': 'Equals "CoilCurrent e 3"',
})
bdy_trace.body_force = current_force
# boundaries # boundaries
boundary_airbox = elmer.Boundary(sim, 'FarField', [physical['airbox_surface'][1]]) boundary_airbox = elmer.Boundary(sim, 'FarField', [physical['airbox_surface'][1]])
boundary_airbox.data['Electric Infinity BC'] = 'True' boundary_airbox.data['Electric Infinity BC'] = 'True'
boundary_vplus = elmer.Boundary(sim, 'Vplus', [physical['interface_top'][1]])
boundary_vplus.data['Potential'] = 1.0
boundary_vplus.data['Save Scalars'] = True
boundary_vminus = elmer.Boundary(sim, 'Vminus', [physical['interface_bottom'][1]])
boundary_vminus.data['Potential'] = 0.0
with tempfile.TemporaryDirectory() as tmpdir: with tempfile.TemporaryDirectory() as tmpdir:
tmpdir = sim_dir if sim_dir else Path(tmpdir) tmpdir = sim_dir if sim_dir else Path(tmpdir)
@ -261,6 +261,8 @@ def inductance(mesh_file, sim_dir, solver_method):
stdout_log=(tmpdir / 'ElmerGrid_stdout.log'), stdout_log=(tmpdir / 'ElmerGrid_stdout.log'),
stderr_log=(tmpdir / 'ElmerGrid_stderr.log')) stderr_log=(tmpdir / 'ElmerGrid_stderr.log'))
solver_stdout, solver_stderr = (tmpdir / 'ElmerSolver_stdout.log'), (tmpdir / 'ElmerSolver_stderr.log') solver_stdout, solver_stderr = (tmpdir / 'ElmerSolver_stdout.log'), (tmpdir / 'ElmerSolver_stderr.log')
print('Solver stdout:', solver_stdout)
print('Solver stderr:', solver_stderr)
res = elmer_solver(tmpdir, res = elmer_solver(tmpdir,
stdout_log=solver_stdout, stdout_log=solver_stdout,
stderr_log=solver_stderr) stderr_log=solver_stderr)

View file

@ -10,7 +10,6 @@
"opacity": { "opacity": {
"images": 0.6, "images": 0.6,
"pads": 1.0, "pads": 1.0,
"shapes": 1.0,
"tracks": 1.0, "tracks": 1.0,
"vias": 1.0, "vias": 1.0,
"zones": 0.6 "zones": 0.6
@ -63,10 +62,9 @@
35, 35,
36, 36,
39, 39,
40, 40
41
], ],
"visible_layers": "ffffffff_ffffffff", "visible_layers": "fffffff_ffffffff",
"zone_display_mode": 0 "zone_display_mode": 0
}, },
"git": { "git": {
@ -77,71 +75,9 @@
}, },
"meta": { "meta": {
"filename": "coil_test_board.kicad_prl", "filename": "coil_test_board.kicad_prl",
"version": 4 "version": 3
},
"net_inspector_panel": {
"col_hidden": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
],
"col_order": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9
],
"col_widths": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"custom_group_rules": [],
"expanded_rows": [],
"filter_by_net_name": true,
"filter_by_netclass": true,
"filter_text": "",
"group_by_constraint": false,
"group_by_netclass": false,
"show_unconnected_nets": false,
"show_zero_pad_nets": false,
"sort_ascending": true,
"sorting_column": 0
}, },
"project": { "project": {
"files": [] "files": []
},
"schematic": {
"selection_filter": {
"graphics": true,
"images": true,
"labels": true,
"lockedItems": false,
"otherItems": true,
"pins": true,
"symbols": true,
"text": true,
"wires": true
}
} }
} }

View file

@ -6,14 +6,14 @@
"apply_defaults_to_fp_fields": false, "apply_defaults_to_fp_fields": false,
"apply_defaults_to_fp_shapes": false, "apply_defaults_to_fp_shapes": false,
"apply_defaults_to_fp_text": false, "apply_defaults_to_fp_text": false,
"board_outline_line_width": 0.05, "board_outline_line_width": 0.049999999999999996,
"copper_line_width": 0.2, "copper_line_width": 0.19999999999999998,
"copper_text_italic": false, "copper_text_italic": false,
"copper_text_size_h": 1.5, "copper_text_size_h": 1.5,
"copper_text_size_v": 1.5, "copper_text_size_v": 1.5,
"copper_text_thickness": 0.3, "copper_text_thickness": 0.3,
"copper_text_upright": false, "copper_text_upright": false,
"courtyard_line_width": 0.05, "courtyard_line_width": 0.049999999999999996,
"dimension_precision": 4, "dimension_precision": 4,
"dimension_units": 3, "dimension_units": 3,
"dimensions": { "dimensions": {
@ -24,13 +24,13 @@
"text_position": 0, "text_position": 0,
"units_format": 1 "units_format": 1
}, },
"fab_line_width": 0.1, "fab_line_width": 0.09999999999999999,
"fab_text_italic": false, "fab_text_italic": false,
"fab_text_size_h": 1.0, "fab_text_size_h": 1.0,
"fab_text_size_v": 1.0, "fab_text_size_v": 1.0,
"fab_text_thickness": 0.15, "fab_text_thickness": 0.15,
"fab_text_upright": false, "fab_text_upright": false,
"other_line_width": 0.1, "other_line_width": 0.09999999999999999,
"other_text_italic": false, "other_text_italic": false,
"other_text_size_h": 1.0, "other_text_size_h": 1.0,
"other_text_size_v": 1.0, "other_text_size_v": 1.0,
@ -41,11 +41,11 @@
"height": 1.524, "height": 1.524,
"width": 1.524 "width": 1.524
}, },
"silk_line_width": 0.1, "silk_line_width": 0.09999999999999999,
"silk_text_italic": false, "silk_text_italic": false,
"silk_text_size_h": 1.0, "silk_text_size_h": 1.0,
"silk_text_size_v": 1.0, "silk_text_size_v": 1.0,
"silk_text_thickness": 0.1, "silk_text_thickness": 0.09999999999999999,
"silk_text_upright": false, "silk_text_upright": false,
"zones": { "zones": {
"min_clearance": 0.5 "min_clearance": 0.5
@ -63,20 +63,15 @@
"copper_edge_clearance": "error", "copper_edge_clearance": "error",
"copper_sliver": "warning", "copper_sliver": "warning",
"courtyards_overlap": "error", "courtyards_overlap": "error",
"creepage": "error",
"diff_pair_gap_out_of_range": "error", "diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error", "diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error", "drill_out_of_range": "error",
"duplicate_footprints": "warning", "duplicate_footprints": "warning",
"extra_footprint": "warning", "extra_footprint": "warning",
"footprint": "error", "footprint": "error",
"footprint_filters_mismatch": "ignore",
"footprint_symbol_mismatch": "warning",
"footprint_type_mismatch": "ignore", "footprint_type_mismatch": "ignore",
"hole_clearance": "error", "hole_clearance": "error",
"hole_near_hole": "error", "hole_near_hole": "error",
"hole_to_hole": "warning",
"holes_co_located": "warning",
"invalid_outline": "error", "invalid_outline": "error",
"isolated_copper": "warning", "isolated_copper": "warning",
"item_on_disabled_layer": "error", "item_on_disabled_layer": "error",
@ -103,9 +98,7 @@
"text_thickness": "warning", "text_thickness": "warning",
"through_hole_pad_without_hole": "error", "through_hole_pad_without_hole": "error",
"too_many_vias": "error", "too_many_vias": "error",
"track_angle": "error",
"track_dangling": "warning", "track_dangling": "warning",
"track_segment_length": "error",
"track_width": "error", "track_width": "error",
"tracks_crossing": "error", "tracks_crossing": "error",
"unconnected_items": "error", "unconnected_items": "error",
@ -118,29 +111,27 @@
"min_clearance": 0.0, "min_clearance": 0.0,
"min_connection": 0.0, "min_connection": 0.0,
"min_copper_edge_clearance": 0.5, "min_copper_edge_clearance": 0.5,
"min_groove_width": 0.0,
"min_hole_clearance": 0.25, "min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25, "min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.2, "min_microvia_diameter": 0.19999999999999998,
"min_microvia_drill": 0.1, "min_microvia_drill": 0.09999999999999999,
"min_resolved_spokes": 2, "min_resolved_spokes": 2,
"min_silk_clearance": 0.0, "min_silk_clearance": 0.0,
"min_text_height": 0.8, "min_text_height": 0.7999999999999999,
"min_text_thickness": 0.08, "min_text_thickness": 0.08,
"min_through_hole_diameter": 0.3, "min_through_hole_diameter": 0.3,
"min_track_width": 0.0, "min_track_width": 0.0,
"min_via_annular_width": 0.1, "min_via_annular_width": 0.09999999999999999,
"min_via_diameter": 0.5, "min_via_diameter": 0.5,
"solder_mask_to_copper_clearance": 0.0, "solder_mask_to_copper_clearance": 0.0,
"use_height_for_length_calcs": true "use_height_for_length_calcs": true
}, },
"teardrop_options": [ "teardrop_options": [
{ {
"td_onpthpad": true, "td_onpadsmd": true,
"td_onroundshapesonly": false, "td_onroundshapesonly": false,
"td_onsmdpad": true,
"td_ontrackend": false, "td_ontrackend": false,
"td_onvia": true "td_onviapad": true
} }
], ],
"teardrop_parameters": [ "teardrop_parameters": [
@ -215,7 +206,6 @@
"mfg": "", "mfg": "",
"mpn": "" "mpn": ""
}, },
"layer_pairs": [],
"layer_presets": [], "layer_presets": [],
"viewports": [] "viewports": []
}, },
@ -244,7 +234,6 @@
"microvia_drill": 0.1, "microvia_drill": 0.1,
"name": "Default", "name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)", "pcb_color": "rgba(0, 0, 0, 0.000)",
"priority": 2147483647,
"schematic_color": "rgba(0, 0, 0, 0.000)", "schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.2, "track_width": 0.2,
"via_diameter": 0.6, "via_diameter": 0.6,
@ -253,7 +242,7 @@
} }
], ],
"meta": { "meta": {
"version": 4 "version": 3
}, },
"net_colors": null, "net_colors": null,
"netclass_assignments": null, "netclass_assignments": null,
@ -268,7 +257,7 @@
"pos_files": "", "pos_files": "",
"specctra_dsn": "", "specctra_dsn": "",
"step": "", "step": "",
"svg": "svg_vis", "svg": "",
"vrml": "" "vrml": ""
}, },
"page_layout_descr_file": "" "page_layout_descr_file": ""

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,100 +0,0 @@
#!/bin/sh
import math
import subprocess
import tempfile
from gerbonara import utils
from gerbonara.cad.kicad import pcb as kicad_pcb
from gerbonara.cad.kicad import graphical_primitives as kicad_gr
from gerbonara.cad.kicad import footprints as kicad_fp
outer_dias = [40, 65, 90]
nks = [[(1, 150),
(1, 300),
(1, 480)],
[(53, 50),
(53, 100),
(53, 160)],
[(53, 100),
(53, 200),
(53, 320)],
[(53, 150),
(53, 300),
(53, 480)],
[(53, 1),
(53, 1),
(53, 1)]]
def make_pad(x, y, side, w, h, **kwargs):
f = kicad_fp.Footprint(name=f'conn_gen_01x{n}', _version=None, generator=None, at=kicad_fp.AtPos(x, y, 0), **kwargs)
for i in range(n):
f.pads.append(kicad_fp.Pad(
layers=['F.Mask', 'F.Cu'] if side == 'top' else ['B.Mask', 'B.Cu'],
number=str(i+1),
type=kicad_fp.Atom.smd,
shape=kicad_fp.Atom.rect,
at=kicad_fp.AtPos(0, 0, 0),
size=kicad_fp.XYCoord(w, h),
footprint=f))
return f
for case_num, nk in enumerate(nks, start=1):
board_out = kicad_pcb.Board.empty_board()
for (i, d2), (n, k) in zip(enumerate(outer_dias), nk):
d1 = d2 - 15
with tempfile.NamedTemporaryFile(suffix='.kicad_pcb') as f:
args = 'python twisted_coil_gen_twolayer.py --circle-segments 331 --trace-width 0.13 --via-drill 0.3 --via-diameter 0.6 --via-offset 0.3'.split() + [
'--pcb', f.name,
'--turns', str(n), '--twists', str(k),
'--inner-diameter', str(d1), '--outer-diameter', str(d2),
]
if k > 100:
args += ['--stagger-inner-vias', '--stagger-outer-vias', '--via-offset', '0.4']
subprocess.run(args, check=True)
for obj in kicad_pcb.Board.open(f.name).objects():
board_out.add(obj)
board_out.add(kicad_gr.Text(text=f'case {case_num} n={n} k={k}\\nd={d1:.1f}-{d2:.2f}mm\\nt=0.15mm',
at=kicad_gr.AtPos(0, (d1+d2)/2/2), layer=kicad_gr.TextLayer('F.SilkS')))
# Slots
if i < len(outer_dias)-1:
na = 8
r2 = d2/2
r = r2 + 2.5
aw = 2*math.asin(3 / 2 / r)
for j in range(na):
start = utils.rotate_point(r, 0, (j+1)*2*math.pi/na - aw/2)
end = utils.rotate_point(r, 0, j*2*math.pi/na + aw/2)
arc = kicad_gr.Arc(end=end, center=(0, 0), start=start, stroke=kicad_gr.Stroke(width=1.2), layer='Edge.Cuts')
board_out.add(arc)
# Connecting pads
board_out.add(make_pad(d2/2+1, 0, 'top', 2, 0.7))
board_out.add(make_pad(d2/2+1, 0, 'bottom', 2, 0.7))
board_out.add(kicad_pcb.TrackSegment(start=kicad_pcb.XYCoord(d2/2, 0), end=kicad_pcb.XYCoord(d2/2+1, 0), width=0.15, layer='F.Cu'))
board_out.add(kicad_pcb.TrackSegment(start=kicad_pcb.XYCoord(d2/2, 0), end=kicad_pcb.XYCoord(d2/2+1, 0), width=0.15, layer='B.Cu'))
# Circular board outline
board_out.add(kicad_gr.Circle(center=kicad_gr.XYCoord(0, 0), end=kicad_gr.XYCoord(d2/2+5, 0), layer='Edge.Cuts'))
# Silk crosshairs
r = d2/2 * math.sin(math.pi/4)
board_out.add(kicad_gr.Line(start=kicad_gr.XYCoord(-r, -r), end=kicad_gr.XYCoord(r, r), layer='F.SilkS'))
board_out.add(kicad_gr.Line(start=kicad_gr.XYCoord(r, -r), end=kicad_gr.XYCoord(-r, r), layer='F.SilkS'))
board_out.add(kicad_gr.Line(start=kicad_gr.XYCoord(-r, -r), end=kicad_gr.XYCoord(r, r), layer='B.SilkS'))
board_out.add(kicad_gr.Line(start=kicad_gr.XYCoord(r, -r), end=kicad_gr.XYCoord(-r, r), layer='B.SilkS'))
r = d2/2
board_out.add(kicad_gr.Line(start=kicad_gr.XYCoord(0, r), end=kicad_gr.XYCoord(0, -r), layer='B.SilkS'))
board_out.add(kicad_gr.Line(start=kicad_gr.XYCoord(r, 0), end=kicad_gr.XYCoord(-r, 0), layer='B.SilkS'))
board_out.write(f'wide_coil_{case_num}.kicad_pcb')

7
paper/.gitignore vendored
View file

@ -1,7 +0,0 @@
*.bbl
*.blg
*.aux
*.log
*.bcf
*.run.xml
*.out

View file

@ -8,7 +8,7 @@ MAKEFLAGS += --no-builtin-rules
main_tex ?= paper main_tex ?= paper
VERSION_STRING := $(shell git describe --tags --long) VERSION_STRING := $(shell git describe --tags --long --dirty)
all: ${main_tex}.pdf all: ${main_tex}.pdf
@ -17,26 +17,8 @@ all: ${main_tex}.pdf
biber $* biber $*
pdflatex -shell-escape $< pdflatex -shell-escape $<
paper_biber.bib:
biber --output-format=bibtex --output-resolve paper.bcf
submission.zip:
rm -f submission.zip
zip -r submission.zip paper.tex paper.bib version.tex \
figures/klein-spulen-schwingkreise-korbspule.jpg\
figures/k_ripple_plot.pdf\
figures/nk_combined.pdf\
figures/nk_complex_illust.pdf\
figures/rms_ripple_double_rotation_n3_r4.pdf\
figures/saacke-radiotechnik-3-ledionspule.jpg\
figures/svg_vis_paper_plain.png\
figures/svg_vis_paper.png\
figures/symmetry_3turn_n_twist.pdf\
figures/test_schematic.pdf\
figures/setup_probe_small.jpg
version.tex: ${main_tex}.tex paper.bib version.tex: ${main_tex}.tex paper.bib
echo -n "${VERSION_STRING}" > $@ echo "${VERSION_STRING}" > $@
.PHONY: clean .PHONY: clean
clean: clean:

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 383 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 391 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

View file

@ -1,825 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="185.356mm"
height="93.594002mm"
viewBox="0 0 185.356 93.594002"
version="1.1"
id="svg1"
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
sodipodi:docname="test_schematic.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="1.6641134"
inkscape:cx="244.27422"
inkscape:cy="142.71864"
inkscape:window-width="3183"
inkscape:window-height="1783"
inkscape:window-x="26"
inkscape:window-y="23"
inkscape:window-maximized="0"
inkscape:current-layer="layer1" />
<defs
id="defs1">
<rect
x="437.73779"
y="348.87198"
width="177.31618"
height="129.1815"
id="rect10" />
<rect
x="385.70886"
y="297.09421"
width="102.83019"
height="111.67734"
id="rect3" />
<marker
style="overflow:visible"
id="ConcaveTriangle"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Concave triangle arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.7)"
d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
style="fill:context-stroke;fill-rule:evenodd;stroke:none"
id="path7" />
</marker>
<rect
x="385.70886"
y="297.09421"
width="102.83019"
height="111.67734"
id="rect4" />
<rect
x="385.70886"
y="297.09421"
width="102.83019"
height="111.67734"
id="rect5" />
<rect
x="385.70886"
y="297.09421"
width="102.83019"
height="111.67734"
id="rect6" />
<rect
x="437.73779"
y="348.87198"
width="177.31618"
height="129.1815"
id="rect10-5" />
<rect
x="437.73779"
y="348.87198"
width="177.31618"
height="129.1815"
id="rect39" />
<rect
x="437.73779"
y="348.87198"
width="177.31618"
height="129.1815"
id="rect40" />
<rect
x="437.73779"
y="348.87198"
width="177.31618"
height="129.1815"
id="rect47" />
<rect
x="437.73779"
y="348.87198"
width="177.31618"
height="129.1815"
id="rect48" />
<rect
x="437.73779"
y="348.87198"
width="177.31618"
height="129.1815"
id="rect55" />
<rect
x="437.73779"
y="348.87198"
width="273.77188"
height="112.60981"
id="rect56" />
<rect
x="437.73779"
y="348.87198"
width="177.31618"
height="129.1815"
id="rect57" />
<rect
x="437.73779"
y="348.87198"
width="177.31618"
height="129.1815"
id="rect58" />
<rect
x="437.73779"
y="348.87198"
width="177.31618"
height="129.1815"
id="rect60" />
<rect
x="437.73779"
y="348.87198"
width="177.31618"
height="129.1815"
id="rect61" />
<rect
x="437.73779"
y="348.87198"
width="177.31618"
height="129.1815"
id="rect62" />
<rect
x="437.73779"
y="348.87198"
width="177.31618"
height="129.1815"
id="rect63" />
<rect
x="437.73779"
y="348.87198"
width="177.31618"
height="129.1815"
id="rect64" />
<rect
x="437.73779"
y="348.87198"
width="177.31618"
height="129.1815"
id="rect65" />
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-38.334231,-50.81432)">
<rect
style="fill:#ffeeaa;stroke:none;stroke-width:0.365;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
id="rect7"
width="57.955029"
height="67.441551"
x="83.425385"
y="68.577538"
rx="1.9671597"
ry="1.9671596" />
<g
id="g6"
transform="matrix(0.7372429,0,0,0.73667369,66.561458,44.083962)"
style="stroke-width:1.35693">
<path
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.678464;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker-end:url(#ConcaveTriangle);stop-color:#000000;stop-opacity:1"
d="M 68.349571,99.162305 H 89.106306"
id="path1"
sodipodi:nodetypes="cc" />
<path
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.678464;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker-end:url(#ConcaveTriangle);stop-color:#000000;stop-opacity:1"
d="M 75.35578,106.3617 V 85.604966"
id="path2"
sodipodi:nodetypes="cc" />
<path
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.678464;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker-end:url(#ConcaveTriangle);stop-color:#000000;stop-opacity:1"
d="M 68.916477,102.85268 86.892335,92.474311"
id="path3"
sodipodi:nodetypes="cc" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-23.790662,1.7156218)"
id="text3"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;white-space:pre;shape-inside:url(#rect3);display:inline;stroke-width:1.35693"><tspan
x="385.70898"
y="321.1139"
id="tspan17">z</tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-8.2310232,15.859299)"
id="text4"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;white-space:pre;shape-inside:url(#rect4);display:inline;stroke-width:1.35693"><tspan
x="385.70898"
y="321.1139"
id="tspan19">x</tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-11.147673,6.5390471)"
id="text5"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;white-space:pre;shape-inside:url(#rect5);display:inline;stroke-width:1.35693"><tspan
x="385.70898"
y="321.1139"
id="tspan20">y</tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-19.884406,21.928304)"
id="text6"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;white-space:pre;shape-inside:url(#rect6);display:inline;stroke-width:1.35693"><tspan
x="385.70898"
y="321.1139"
id="tspan33">α</tspan></text>
<path
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.678464;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker-end:url(#ConcaveTriangle);stop-color:#000000;stop-opacity:1"
d="m 71.585314,104.55786 c -1.060219,0.28749 -1.388316,0.86549 -1.381645,1.3205 0.0208,1.419 3.116278,1.75043 4.838231,1.81736 2.514725,0.0977 5.827504,-0.48364 5.827504,-2.03119 0,-0.63687 -0.518568,-1.15241 -1.996357,-1.55072"
id="path6"
sodipodi:nodetypes="csssc" />
</g>
<g
id="g8"
transform="rotate(-90,84.02158,87.2593)">
<rect
style="fill:#000000;stroke:#000000;stroke-width:0.499999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
id="rect8"
width="15.001786"
height="5.0005956"
x="76.25853"
y="147.85533" />
<path
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
d="M 69.838171,150.35563 H 97.680675"
id="path8"
sodipodi:nodetypes="cc" />
<path
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
d="M 97.680675,150.35563 V 162.5472"
id="path18"
sodipodi:nodetypes="cc" />
<path
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
d="m 97.680675,198.09083 v 10.6746"
id="path24"
sodipodi:nodetypes="cc" />
</g>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,46.590248,-34.083774)"
id="text9"
style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect10);display:inline"><tspan
x="437.73828"
y="373.61669"
id="tspan35"><tspan
style="font-family:Inter;-inkscape-font-specification:Inter"
id="tspan34">Receiver</tspan></tspan></text>
<g
id="g11"
transform="rotate(-90,113.22648,58.0544)">
<path
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
d="M 69.838171,150.35563 H 97.680675"
id="path11"
sodipodi:nodetypes="cc" />
<rect
style="fill:#f9f9f9;stroke:#000000;stroke-width:0.499999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
id="rect11"
width="15.001786"
height="5.0005956"
x="76.25853"
y="147.85533" />
</g>
<path
style="font-variation-settings:normal;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
d="m 147.1179,101.44271 h 22.71879"
id="path18-1"
sodipodi:nodetypes="cc" />
<path
style="font-variation-settings:normal;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
d="m 169.80619,112.66126 0.0305,-31.223089"
id="path8-9"
sodipodi:nodetypes="cc" />
<path
style="font-variation-settings:normal;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
d="M 185.43453,101.44271 V 81.438168"
id="path25"
sodipodi:nodetypes="cc" />
<g
id="g33"
transform="rotate(-90,108.31112,80.71908)">
<g
id="g29"
transform="translate(-0.25,0.061)">
<g
id="g28"
transform="translate(7.2026149,12.184985)">
<g
id="g26"
transform="matrix(0.53527713,0,0,0.54772615,50.414423,56.309066)"
style="stroke-width:1.84684">
<ellipse
style="fill:#f9f9f9;stroke:#000000;stroke-width:0.923418;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
id="ellipse25"
cx="108.48818"
cy="169.1588"
rx="5.2521563"
ry="1.7507188" />
<path
id="path26"
style="fill:#f9f9f9;stroke:#000000;stroke-width:0.923417;stroke-linecap:round;stroke-linejoin:round"
d="m 103.22521,169.1588 v -42.90097 h 10.51513 v 42.90097"
sodipodi:nodetypes="cccc" />
<ellipse
style="fill:#f9f9f9;stroke:#000000;stroke-width:0.923418;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
id="ellipse26"
cx="108.47737"
cy="126.25288"
rx="5.2521563"
ry="1.7507188" />
</g>
<path
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
d="m 108.47737,119.47146 v 8.53214"
id="path27"
sodipodi:nodetypes="cc" />
<path
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
d="m 108.47737,128.0036 v 27.01149"
id="path28"
sodipodi:nodetypes="cc" />
</g>
</g>
<circle
style="fill:#000000;stroke:#000000;stroke-width:0.499999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
id="circle29"
cx="112.62113"
cy="142.24466"
r="0.73016149" />
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 113.35129,142.24465 h -5.75927"
id="path29"
sodipodi:nodetypes="cc" />
<g
id="g32"
transform="matrix(1,0,0,-1,0.51562288,313.42993)">
<circle
style="fill:#000000;stroke:#000000;stroke-width:0.499999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
id="circle30"
cx="112.10551"
cy="155.58745"
r="0.73016149" />
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="M 112.83567,155.58744 H 107.0764"
id="path31"
sodipodi:nodetypes="cc" />
</g>
</g>
<path
style="font-variation-settings:normal;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
d="m 185.43453,101.44271 h 20.09318"
id="path18-1-8"
sodipodi:nodetypes="cc" />
<g
id="g38"
transform="matrix(0,1,1,0,27.561533,5.0692385)">
<g
id="g36"
transform="translate(-0.25,0.061)">
<g
id="g35"
transform="translate(7.2026149,12.184985)">
<g
id="g34"
transform="matrix(0.53527713,0,0,0.54772615,50.414423,56.309066)"
style="stroke-width:1.84684">
<ellipse
style="fill:#f9f9f9;stroke:#000000;stroke-width:0.923418;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
id="ellipse33"
cx="108.48818"
cy="169.1588"
rx="5.2521563"
ry="1.7507188" />
<path
id="path33"
style="fill:#f9f9f9;stroke:#000000;stroke-width:0.923417;stroke-linecap:round;stroke-linejoin:round"
d="m 103.22521,169.1588 v -42.90097 h 10.51513 v 42.90097"
sodipodi:nodetypes="cccc" />
<ellipse
style="fill:#f9f9f9;stroke:#000000;stroke-width:0.923418;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
id="ellipse34"
cx="108.47737"
cy="126.25288"
rx="5.2521563"
ry="1.7507188" />
</g>
<path
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
d="m 108.47737,119.47146 v 8.53214"
id="path34"
sodipodi:nodetypes="cc" />
<path
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
d="m 108.47737,128.0036 v 27.01149"
id="path35"
sodipodi:nodetypes="cc" />
</g>
</g>
<circle
style="fill:#000000;stroke:#000000;stroke-width:0.499999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
id="circle36"
cx="112.62113"
cy="142.24466"
r="0.73016149" />
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 113.35129,142.24465 h -5.75927"
id="path36"
sodipodi:nodetypes="cc" />
<g
id="g37"
transform="matrix(1,0,0,-1,0.51562288,313.42993)">
<circle
style="fill:#000000;stroke:#000000;stroke-width:0.499999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
id="circle37"
cx="112.10551"
cy="155.58745"
r="0.73016149" />
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 112.83567,155.58744 h -8.81671"
id="path37"
sodipodi:nodetypes="cc" />
</g>
</g>
<circle
style="fill:#000000;stroke:#000000;stroke-width:0.499999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
id="circle29-1"
cx="-101.44271"
cy="169.82144"
r="0.73016149"
transform="rotate(-90)" />
<path
style="font-variation-settings:normal;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
d="M 159.27898,73.600206 V 120.49922"
id="path8-9-4-9"
sodipodi:nodetypes="cc" />
<circle
style="fill:#000000;stroke:#000000;stroke-width:0.499999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
id="circle29-1-8"
cx="73.600204"
cy="159.27896"
transform="matrix(0,1,1,0,0,0)"
r="0.73016149" />
<g
id="g40"
transform="rotate(-90,95.949903,67.216385)">
<circle
style="font-variation-settings:normal;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.499999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
id="path38"
cx="42.667065"
cy="170.93503"
r="4.845932" />
<text
xml:space="preserve"
transform="matrix(0,0.26458333,-0.26458333,0,138.95415,52.731509)"
id="text9-2"
style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect10-5);display:inline"><tspan
x="437.73828"
y="373.61669"
id="tspan37"><tspan
style="font-family:Inter;-inkscape-font-specification:Inter"
id="tspan36">V</tspan></tspan></text>
</g>
<g
id="g41"
transform="translate(136.59026,-96.367894)">
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-42.558683,87.081574)"
id="text39"
style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect39);display:inline"><tspan
x="437.73828"
y="373.61669"
id="tspan39"><tspan
style="font-family:Inter;-inkscape-font-specification:Inter"
id="tspan38">R</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.14864912,0,0,0.14864912,13.222331,131.43791)"
id="text40"
style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect40);display:inline;stroke-width:1.77992"><tspan
x="437.73828"
y="373.61669"
id="tspan41"><tspan
style="font-family:Inter;-inkscape-font-specification:Inter"
id="tspan40">L</tspan></tspan></text>
</g>
<path
style="font-variation-settings:normal;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
d="m 185.40403,109.60382 h 25.06601"
id="path39"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 204.51447,120.49922 h 5.95557"
id="path37-6"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 210.47004,120.49922 v -10.8954"
id="path37-3"
sodipodi:nodetypes="cc" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-39.978173,33.881434)"
id="text56"
style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect56);display:inline"
x="50.625053"
y="0"><tspan
x="474.62395"
y="373.61669"
id="tspan43"><tspan
style="font-family:Inter;-inkscape-font-specification:Inter"
id="tspan42">Motion platform</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,36.505656,-9.437934)"
id="text58"
style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect58);display:inline"><tspan
x="437.73828"
y="373.61669"
id="tspan45"><tspan
style="font-family:Inter;-inkscape-font-specification:Inter"
id="tspan44">L</tspan></tspan></text>
<g
id="g60"
transform="translate(121.10514,-53.606385)">
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-42.558683,87.081574)"
id="text59"
style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect60);display:inline"><tspan
x="437.73828"
y="373.61669"
id="tspan47"><tspan
style="font-family:Inter;-inkscape-font-specification:Inter"
id="tspan46">V</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.14864912,0,0,0.14864912,12.012663,131.43791)"
id="text60"
style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect61);display:inline;stroke-width:1.77992"><tspan
x="437.73828"
y="373.61669"
id="tspan49"><tspan
style="font-family:Inter;-inkscape-font-specification:Inter"
id="tspan48">Out</tspan></tspan></text>
</g>
<g
id="g9"
transform="rotate(-90,73.52791,97.752971)">
<rect
style="fill:#000000;stroke:#000000;stroke-width:0.499999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
id="rect9"
width="15.001786"
height="5.0005956"
x="76.25853"
y="147.85533" />
<path
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
d="M 69.838171,150.35563 H 97.680675"
id="path9"
sodipodi:nodetypes="cc" />
</g>
<path
style="font-variation-settings:normal;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
d="m 113.939,73.6002 h 12.19157"
id="path18-9"
sodipodi:nodetypes="cc" />
<g
id="g46"
transform="rotate(-90,61.076952,127.95324)">
<g
id="g44"
transform="translate(-0.25,0.061)">
<g
id="g43"
transform="translate(7.2026149,12.184985)">
<g
id="g42"
transform="matrix(0.53527713,0,0,0.54772615,50.414423,56.309066)"
style="stroke-width:1.84684">
<ellipse
style="fill:#f9f9f9;stroke:#000000;stroke-width:0.923418;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
id="ellipse41"
cx="108.48818"
cy="193.9332"
rx="5.2521563"
ry="1.7507188" />
<path
id="path41"
style="fill:#f9f9f9;stroke:#000000;stroke-width:0.923417;stroke-linecap:round;stroke-linejoin:round"
d="m 103.22521,193.90511 v -67.64728 h 10.51513 v 67.64728"
sodipodi:nodetypes="cccc" />
<ellipse
style="fill:#f9f9f9;stroke:#000000;stroke-width:0.923418;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
id="ellipse42"
cx="108.47737"
cy="126.25288"
rx="5.2521563"
ry="1.7507188" />
</g>
<path
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
d="m 108.47737,119.47146 v 8.53214"
id="path42"
sodipodi:nodetypes="cc" />
<path
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
d="m 108.47737,128.0036 v 40.56569"
id="path43"
sodipodi:nodetypes="cc" />
</g>
</g>
<circle
style="fill:#000000;stroke:#000000;stroke-width:0.499999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
id="circle44"
cx="112.62113"
cy="142.24466"
r="0.73016149" />
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 113.35129,142.24465 h -5.75927"
id="path44"
sodipodi:nodetypes="cc" />
<g
id="g45"
transform="matrix(1,0,0,-1,0.51562288,313.42993)">
<circle
style="fill:#000000;stroke:#000000;stroke-width:0.499999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
id="circle45"
cx="112.10551"
cy="142.03323"
r="0.73016149" />
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="M 112.83567,142.03324 H 107.0764"
id="path45"
sodipodi:nodetypes="cc" />
</g>
</g>
<g
id="g47"
transform="rotate(-90,12.020498,118.16803)">
<circle
style="font-variation-settings:normal;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.499999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
id="circle46"
cx="42.667065"
cy="170.93503"
r="4.845932" />
<text
xml:space="preserve"
transform="matrix(0,0.26458333,-0.26458333,0,138.95415,52.731509)"
id="text46"
style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect47);display:inline"><tspan
x="437.73828"
y="373.61669"
id="tspan51"><tspan
style="font-family:Inter;-inkscape-font-specification:Inter"
id="tspan50">V</tspan></tspan></text>
</g>
<g
id="g48"
transform="rotate(-90,102.24798,61.168296)">
<circle
style="font-variation-settings:normal;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.499999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
id="circle47"
cx="75.894829"
cy="9.9268379"
r="4.845932" />
<path
style="fill:none;stroke:#000000;stroke-width:0.500002;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 75.882664,12.622933 c 0,0 -1.320624,-0.616184 -1.320624,-1.348048 0,-0.718365 0.885426,-1.113278 1.320624,-1.3480463 0.436571,-0.23551 1.344954,-0.571053 1.344954,-1.406328 0,-0.781986 -1.344954,-1.289768 -1.344954,-1.289768"
id="path44-8"
sodipodi:nodetypes="csssc" />
</g>
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 64.799615,73.6002 -0.0121,8.991146"
id="path44-7"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 51.012582,73.6002 -0.01211,8.991146"
id="path48"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 64.799615,92.45156 -0.0121,8.99114"
id="path49"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 51.012582,92.45156 -0.01211,8.99114"
id="path50"
sodipodi:nodetypes="cc" />
<path
style="font-variation-settings:normal;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
d="M 51.012582,73.6002 H 64.841165"
id="path42-3"
sodipodi:nodetypes="cc" />
<path
style="font-variation-settings:normal;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
d="M 51.000472,101.4427 H 64.829055"
id="path51"
sodipodi:nodetypes="cc" />
<path
style="font-variation-settings:normal;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
d="m 64.787505,101.4427 h 10.58086"
id="path52"
sodipodi:nodetypes="cc" />
<path
style="font-variation-settings:normal;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
d="M 75.368365,81.438165 V 101.4427"
id="path53"
sodipodi:nodetypes="cc" />
<circle
style="fill:#000000;stroke:#000000;stroke-width:0.499999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
id="circle44-0"
cx="-101.4427"
cy="64.793571"
r="0.73016149"
transform="rotate(-90)" />
<circle
style="fill:#000000;stroke:#000000;stroke-width:0.499999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
id="circle53"
cx="-73.600197"
cy="64.793571"
r="0.73016149"
transform="rotate(-90)" />
<path
style="font-variation-settings:normal;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
d="M 104.52041,81.438162 V 101.4427"
id="path54"
sodipodi:nodetypes="cc" />
<path
style="font-variation-settings:normal;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
d="m 104.52041,101.4427 h 21.61016"
id="path55"
sodipodi:nodetypes="cc" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-52.418097,-33.843802)"
id="text55"
style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect55);display:inline"><tspan
x="437.73828"
y="373.61669"
id="tspan53"><tspan
style="font-family:Inter;-inkscape-font-specification:Inter"
id="tspan52">Transmitter</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,1.3112422,-9.1879403)"
id="text57"
style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect57);display:inline"><tspan
x="437.73828"
y="373.61669"
id="tspan55"><tspan
style="font-family:Inter;-inkscape-font-specification:Inter"
id="tspan54">L</tspan></tspan></text>
<g
id="g62"
transform="translate(-6.158472,-88.237458)">
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-42.558683,87.081574)"
id="text61"
style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect62);display:inline"><tspan
x="437.73828"
y="373.61669"
id="tspan57"><tspan
style="font-family:Inter;-inkscape-font-specification:Inter"
id="tspan56">V</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.14864912,0,0,0.14864912,12.012663,131.43791)"
id="text62"
style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect63);display:inline;stroke-width:1.77992"><tspan
x="437.73828"
y="373.61669"
id="tspan59"><tspan
style="font-family:Inter;-inkscape-font-specification:Inter"
id="tspan58">in</tspan></tspan></text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

View file

@ -1 +1 @@
final-tpel-submission-2025-01-27-0-g99d4905

Binary file not shown.

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 1.2 MiB

View file

@ -14,7 +14,6 @@ import time
import math import math
import json import json
import subprocess import subprocess
import re
import tqdm import tqdm
import click import click
@ -26,7 +25,7 @@ def mesh_args(db, coil_id, mesh_type, mesh_file, outfile, **kwargs):
rows = dict(db.execute('SELECT key, value FROM results WHERE coil_id=?', (coil_id,)).fetchall()) rows = dict(db.execute('SELECT key, value FROM results WHERE coil_id=?', (coil_id,)).fetchall())
rows.update(kwargs) rows.update(kwargs)
args = ['python', '-m', 'twisted_coil_gen_twolayer', mesh_type, mesh_file, '--pcb'] args = ['python', '-m', 'twisted_coil_gen_twolayer', mesh_type, mesh_file, '--pcb']
for k, v in rows.items(): for k, v in rows:
prefix, _, k = k.partition('.') prefix, _, k = k.partition('.')
if v != 'False' and prefix == 'gen': if v != 'False' and prefix == 'gen':
args.append('--' + k.replace('_', '-')) args.append('--' + k.replace('_', '-'))
@ -105,10 +104,9 @@ def list_runs(ctx):
@cli.command() @cli.command()
@click.option('-r', '--run-id') @click.option('-r', '--run-id')
@click.option('-l', '--log-dir', default='logs', type=click.Path(dir_okay=True, file_okay=False, path_type=pathlib.Path))
@click.option('-m', '--mesh-dir', default='meshes') @click.option('-m', '--mesh-dir', default='meshes')
@click.pass_context @click.pass_context
def list_coils(ctx, run_id, log_dir, mesh_dir): def list_coils(ctx, run_id, mesh_dir):
db = ctx.obj['db_connect']() db = ctx.obj['db_connect']()
if run_id is None: if run_id is None:
run_id, = db.execute('SELECT run_id FROM runs ORDER BY timestamp DESC LIMIT 1').fetchone() run_id, = db.execute('SELECT run_id FROM runs ORDER BY timestamp DESC LIMIT 1').fetchone()
@ -124,11 +122,9 @@ def list_coils(ctx, run_id, log_dir, mesh_dir):
'gen.inner_diameter': 'ID[mm]', 'gen.inner_diameter': 'ID[mm]',
'gen.outer_diameter': 'OD[mm]', 'gen.outer_diameter': 'OD[mm]',
'calculated_fill_factor': 'Fill factor', 'calculated_fill_factor': 'Fill factor',
'calculated_approximate_inductance': 'L [µH] (design)', 'calculated_approximate_inductance': 'L [µH]',
'calculated_trace_length': 'track len [mm]', 'calculated_trace_length': 'track len [mm]',
'calculated_approximate_resistance': 'R [mΩ] (design)', 'calculated_approximate_resistance': 'R [mΩ]'}
'sim_inductance': 'L [µH] (sim)',
'sim_resistance': 'R [mΩ] (sim)'}
out = [] out = []
for row in db.execute('SELECT *, MAX(meshes.timestamp) FROM coils LEFT JOIN meshes ON coils.coil_id=meshes.coil_id WHERE run_id=? GROUP BY coils.coil_id, mesh_type ORDER BY meshes.timestamp', (run_id,)).fetchall(): for row in db.execute('SELECT *, MAX(meshes.timestamp) FROM coils LEFT JOIN meshes ON coils.coil_id=meshes.coil_id WHERE run_id=? GROUP BY coils.coil_id, mesh_type ORDER BY meshes.timestamp', (run_id,)).fetchall():
if row['timestamp']: if row['timestamp']:
@ -155,19 +151,6 @@ def list_coils(ctx, run_id, log_dir, mesh_dir):
if 'calculated_fill_factor' in params: if 'calculated_fill_factor' in params:
params['calculated_fill_factor'] = f'{float(params["calculated_fill_factor"]):.03f}' params['calculated_fill_factor'] = f'{float(params["calculated_fill_factor"]):.03f}'
log_file = log_dir / (pathlib.Path(row['filename']).stem + '_elmer_self_inductance.log')
if log_file.is_file():
log = log_file.read_text()
resistance = re.search(r'Coil resistance calculated by solver: ([0-9.e+-]*) (\w?)Ω', log)
inductance = re.search(r'Inductance calucated from field: ([0-9.e+-]*) (\w?)H', log)
si_prefix = {'': 1, 'm': 1e-3, 'µ': 1e-6, 'n': 1e-9, 'p': 1e-12}
if resistance:
resistance = float(resistance.group(1)) * si_prefix[resistance.group(2)]
params['sim_resistance'] = format(resistance*1e3, '.3f')
if inductance:
inductance = float(inductance.group(1)) * si_prefix[inductance.group(2)]
params['sim_inductance'] = format(inductance*1e6, '.3f')
out.append([row['coil_id'], row['mesh_type'], state, row['timestamp']] + [params.get(key, '-') for key in keys]) out.append([row['coil_id'], row['mesh_type'], state, row['timestamp']] + [params.get(key, '-') for key in keys])
print(tabulate(out, headers=['coil', 'mesh', 'state', 'time'] + list(keys.values()), disable_numparse=True, stralign='right')) print(tabulate(out, headers=['coil', 'mesh', 'state', 'time'] + list(keys.values()), disable_numparse=True, stralign='right'))
@ -197,13 +180,13 @@ def run(ctx, run_id, log_dir, mesh_dir):
@run.command() @run.command()
@click.option('-j', '--num-jobs', type=int, default=1, help='Number of jobs to run in parallel') @click.option('-j', '--num-jobs', type=int, default=1, help='Number of jobs to run in parallel')
@click.option('-t', '--mesh-type', type=click.Choice(['split', 'normal', 'mutual']), default=['split', 'normal', 'mutual'], multiple=True)
@click.pass_context @click.pass_context
def generate_meshes(ctx, num_jobs, mesh_type): def generate_meshes(ctx, num_jobs):
db = ctx.obj['db_connect']() db = ctx.obj['db_connect']()
rows = [row['coil_id'] for row in db.execute('SELECT coil_id FROM coils WHERE run_id=?', (ctx.obj['run_id'],)).fetchall()] rows = [row['coil_id'] for row in db.execute('SELECT coil_id FROM coils WHERE run_id=?', (ctx.obj['run_id'],)).fetchall()]
mesh_types = ['split', 'normal', 'mutual']
params = list(itertools.product(rows, mesh_type)) params = list(itertools.product(rows, mesh_types))
all_files = {get_mesh_file(db, ctx.obj['mesh_dir'], ctx.obj['run_id'], coil_id, mesh_type): (coil_id, mesh_type) for coil_id, mesh_type in params} all_files = {get_mesh_file(db, ctx.obj['mesh_dir'], ctx.obj['run_id'], coil_id, mesh_type): (coil_id, mesh_type) for coil_id, mesh_type in params}
todo = [(coil_id, mesh_type) for f, (coil_id, mesh_type) in all_files.items() if not f.is_file()] todo = [(coil_id, mesh_type) for f, (coil_id, mesh_type) in all_files.items() if not f.is_file()]
@ -249,7 +232,7 @@ def self_inductance(ctx, num_jobs):
with tempfile.TemporaryDirectory() as tmpdir: with tempfile.TemporaryDirectory() as tmpdir:
try: try:
tqdm.tqdm.write(f'Processing {mesh_file}') tqdm.tqdm.write(f'Processing {mesh_file}')
res = subprocess.run(['python', '-m', 'coil_parasitics', 'inductance', '--sim-dir', tmpdir, mesh_file], check=True, capture_output=True, text=True) res = subprocess.run(['python', '-m', 'coil_parasitics', 'inductance', '--sim-dir', tmpdir, mesh_file], check=True, capture_output=True)
logfile.write_text(res.stdout+res.stderr) logfile.write_text(res.stdout+res.stderr)
except subprocess.CalledProcessError as e: except subprocess.CalledProcessError as e:
print(f'Error running simulation, rc={e.returncode}') print(f'Error running simulation, rc={e.returncode}')
@ -283,8 +266,8 @@ def self_inductance(ctx, num_jobs):
q.join() q.join()
@run.command() @run.command()
@click.argument('target_hosts', type=click.Path(exists=True, dir_okay=False, path_type=pathlib.Path)) @click.option('target_hosts', type=click.Path(exists=True, dir_okay=False, path_type=pathlib.Path), help='File with one SSH target host name per line')
@click.argument('job_file', type=click.Path(exists=True, dir_okay=False, path_type=pathlib.Path)) @click.option('job_file', type=click.Path(exists=True, dir_okay=False, path_type=pathlib.Path), help='JSON job description file')
@click.pass_context @click.pass_context
def run_mutual_inductance(ctx, target_hosts, job_file): def run_mutual_inductance(ctx, target_hosts, job_file):
db = ctx.obj['db_connect']() db = ctx.obj['db_connect']()
@ -318,7 +301,7 @@ def run_mutual_inductance(ctx, target_hosts, job_file):
'ElmerGrid_stderr.log', 'ElmerGrid_stderr.log',
'ElmerSolver_stdout.log', 'ElmerSolver_stdout.log',
'ElmerSolver_stderr.log']: 'ElmerSolver_stderr.log']:
subprocess.run(['scp', f'{host}:{mesh_abs}/{workdir.name}/{fn}', str(host_log(Path(fn).stem))], check=True, capture_output=True, text=True) subprocess.run(['scp', f'{host}:{mesh_abs}/{workdir.name}/{fn}', str(host_log(Path(fn).stem))], check=True, capture_output=True, text=True)
except subprocess.CalledProcessError as e: except subprocess.CalledProcessError as e:
print(f'Error copying simulation logs, rc={e.returncode}', file=sys.stderr) print(f'Error copying simulation logs, rc={e.returncode}', file=sys.stderr)

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 22 KiB

View file

@ -1,369 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="45.350204mm"
height="42.200001mm"
viewBox="0 0 45.350204 42.200001"
version="1.1"
id="svg1"
sodipodi:docname="svg-vis-paper-3.svg"
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="4.6942248"
inkscape:cx="61.458497"
inkscape:cy="121.10626"
inkscape:window-width="3840"
inkscape:window-height="2091"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1335"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1336"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1337"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1338"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1516"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1517"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1518"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1519"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1520"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1521"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1522"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1523"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1524"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1525"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1526"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1527"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1528"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1529"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#1a1a1a;fill-opacity:1;stroke:none"
id="g1530"
transform="translate(-178.4,-349.4)">
<g
id="g76"
style="fill:#1a1a1a">
<circle
cx="180"
cy="351"
r="1.6"
id="circle1334"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="180"
cy="390"
r="1.6"
id="circle1335"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="219"
cy="351"
r="1.6"
id="circle1336"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="219"
cy="390"
r="1.6"
id="circle1337"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="194.82381"
cy="376.36371"
r="0.60000002"
id="circle1515"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="192"
cy="370.5"
r="0.60000002"
id="circle1516"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="210.4111"
cy="384.1821"
r="0.60000002"
id="circle1517"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="194.82381"
cy="364.63629"
r="0.60000002"
id="circle1518"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="195.6059"
cy="387.56119"
r="0.60000002"
id="circle1519"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="201.1689"
cy="363.18799"
r="0.60000002"
id="circle1520"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="183.733"
cy="378.09299"
r="0.60000002"
id="circle1521"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="206.25729"
cy="367.24591"
r="0.60000002"
id="circle1522"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="183.733"
cy="362.90701"
r="0.60000002"
id="circle1523"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="206.25729"
cy="373.75409"
r="0.60000002"
id="circle1524"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="195.6059"
cy="353.43881"
r="0.60000002"
id="circle1525"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="201.1689"
cy="377.81201"
r="0.60000002"
id="circle1526"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="210.4111"
cy="356.8179"
r="0.60000002"
id="circle1527"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="222"
cy="369.23001"
r="0.55000001"
id="circle1528"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="222"
cy="371.76999"
r="0.55000001"
id="circle1529"
style="fill:#1a1a1a" />
</g>
</g>
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2516"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2517"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2518"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2519"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2520"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2521"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2522"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2523"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2524"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2525"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2526"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2527"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2528"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2529"
transform="translate(-178.4,-349.4)" />
<g
style="fill:none;stroke:#4d7fc4;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g2530"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2759"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2760"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2761"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2762"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2940"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2941"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2942"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2943"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2944"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2945"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2946"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2947"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2948"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2949"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2950"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2951"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2952"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2953"
transform="translate(-178.4,-349.4)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 11 KiB

View file

@ -1,378 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="45.350204mm"
height="42.200001mm"
viewBox="0 0 45.350204 42.200001"
version="1.1"
id="svg1"
sodipodi:docname="svg-vis-paper-4.svg"
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="6.6386364"
inkscape:cx="89.702157"
inkscape:cy="89.85279"
inkscape:window-width="3840"
inkscape:window-height="2091"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1335"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1336"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1337"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1338"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1516"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1517"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1518"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1519"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1520"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1521"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1522"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1523"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1524"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1525"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1526"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1527"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1528"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1529"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#1a1a1a;fill-opacity:1;stroke:none"
id="g1530"
transform="translate(-178.4,-349.4)">
<g
id="g76"
style="fill:#1a1a1a">
<circle
cx="180"
cy="351"
r="1.6"
id="circle1334"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="180"
cy="390"
r="1.6"
id="circle1335"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="219"
cy="351"
r="1.6"
id="circle1336"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="219"
cy="390"
r="1.6"
id="circle1337"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="194.82381"
cy="376.36371"
r="0.60000002"
id="circle1515"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="192"
cy="370.5"
r="0.60000002"
id="circle1516"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="210.4111"
cy="384.1821"
r="0.60000002"
id="circle1517"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="194.82381"
cy="364.63629"
r="0.60000002"
id="circle1518"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="195.6059"
cy="387.56119"
r="0.60000002"
id="circle1519"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="201.1689"
cy="363.18799"
r="0.60000002"
id="circle1520"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="183.733"
cy="378.09299"
r="0.60000002"
id="circle1521"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="206.25729"
cy="367.24591"
r="0.60000002"
id="circle1522"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="183.733"
cy="362.90701"
r="0.60000002"
id="circle1523"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="206.25729"
cy="373.75409"
r="0.60000002"
id="circle1524"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="195.6059"
cy="353.43881"
r="0.60000002"
id="circle1525"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="201.1689"
cy="377.81201"
r="0.60000002"
id="circle1526"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="210.4111"
cy="356.8179"
r="0.60000002"
id="circle1527"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="222"
cy="369.23001"
r="0.55000001"
id="circle1528"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<circle
cx="222"
cy="371.76999"
r="0.55000001"
id="circle1529"
style="fill:#1a1a1a" />
</g>
</g>
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2516"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2517"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2518"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2519"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2520"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2521"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2522"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2523"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2524"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2525"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2526"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2527"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2528"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2529"
transform="translate(-178.4,-349.4)" />
<g
style="fill:none;stroke:#4d7fc4;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g2530"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2759"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2760"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2761"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2762"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2940"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2941"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2942"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2943"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2944"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2945"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2946"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2947"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2948"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2949"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2950"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2951"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2952"
transform="translate(-178.4,-349.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2953"
transform="translate(-178.4,-349.4)" />
<rect
style="fill:#1a1a1a;stroke:none;stroke-width:0.365001;stroke-linecap:round;stroke-linejoin:round"
id="rect76"
width="45.350204"
height="42.200001"
x="0"
y="0"
rx="0"
ry="0" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 11 KiB

View file

@ -1,51 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="45.349998mm"
height="42.200001mm"
viewBox="0 0 45.349998 42.200001"
version="1.1"
id="svg1"
sodipodi:docname="svg-vis-paper-plain-board-outline.svg"
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="6.6386364"
inkscape:cx="60.027388"
inkscape:cy="122.84149"
inkscape:window-width="3840"
inkscape:window-height="2091"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#000000;stroke-width:0.365001;stroke-linecap:round;stroke-linejoin:round"
id="rect2"
width="45.349998"
height="42.200001"
x="0"
y="0"
rx="0"
ry="0" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -1,194 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="45.349998mm"
height="42.200001mm"
viewBox="0 0 45.349998 42.200001"
version="1.1"
id="svg1"
sodipodi:docname="svg-vis-paper-plain-bottom-copper.svg"
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="6.6386364"
inkscape:cx="40.821636"
inkscape:cy="110.94146"
inkscape:window-width="3840"
inkscape:window-height="2091"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1379"
transform="translate(-349.4,-121.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1380"
transform="translate(-349.4,-121.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1381"
transform="translate(-349.4,-121.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1382"
transform="translate(-349.4,-121.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1411"
transform="translate(-349.4,-121.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1412"
transform="translate(-349.4,-121.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1413"
transform="translate(-349.4,-121.4)" />
<path
id="path1652"
style="fill:#4d7fc4;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 42.850098 18.830375 A 1 1 0 0 0 41.850159 19.830314 A 1 1 0 0 0 42.850098 20.830253 L 44.349748 20.830253 A 1 1 0 0 0 45.350203 19.830314 A 1 1 0 0 0 44.349748 18.830375 L 42.850098 18.830375 z M 43.599923 19.27996 A 0.55000001 0.55000001 0 0 1 44.14976 19.829797 A 0.55000001 0.55000001 0 0 1 43.599923 20.380151 A 0.55000001 0.55000001 0 0 1 43.050085 19.829797 A 0.55000001 0.55000001 0 0 1 43.599923 19.27996 z M 28.599805 20.699512 A 0.40000001 0.40000001 0 0 0 28.597221 20.700028 A 0.40000001 0.40000001 0 0 0 28.405501 20.751705 A 0.40000001 0.40000001 0 0 0 28.3962 20.756873 A 0.40000001 0.40000001 0 0 0 28.256156 20.896916 A 0.40000001 0.40000001 0 0 0 28.251506 20.905184 A 0.40000001 0.40000001 0 0 0 28.199829 21.100004 A 0.40000001 0.40000001 0 0 0 28.251506 21.294824 A 0.40000001 0.40000001 0 0 0 28.256156 21.303092 A 0.40000001 0.40000001 0 0 0 28.3962 21.443136 A 0.40000001 0.40000001 0 0 0 28.405501 21.448303 A 0.40000001 0.40000001 0 0 0 28.597221 21.49998 A 0.40000001 0.40000001 0 0 0 28.599805 21.500496 L 38.434347 21.500496 L 39.586214 22.652881 A 0.40000001 0.40000001 0 0 0 39.603784 22.666833 A 0.40000001 0.40000001 0 0 0 39.639441 22.695256 A 0.40000001 0.40000001 0 0 0 39.677165 22.719027 A 0.40000001 0.40000001 0 0 0 39.714372 22.736597 A 0.40000001 0.40000001 0 0 0 39.762948 22.75365 A 0.40000001 0.40000001 0 0 0 39.799121 22.761918 A 0.40000001 0.40000001 0 0 0 39.850798 22.767603 A 0.40000001 0.40000001 0 0 0 39.869401 22.76967 L 41.850159 22.76967 L 41.937492 22.76967 A 1 1 0 0 0 41.987101 22.849251 A 1 1 0 0 0 42.055314 22.959322 A 1 1 0 0 0 42.181921 23.096265 A 1 1 0 0 0 42.272355 23.176363 A 1 1 0 0 0 42.456323 23.276099 A 1 1 0 0 0 42.545207 23.317957 A 1 1 0 0 0 42.850098 23.369633 L 44.349748 23.369633 A 1 1 0 0 0 45.350203 22.369694 A 1 1 0 0 0 44.349748 21.369755 L 42.850098 21.369755 A 1 1 0 0 0 42.545207 21.421431 A 1 1 0 0 0 42.454773 21.463806 A 1 1 0 0 0 42.273389 21.561991 A 1 1 0 0 0 42.181405 21.64364 A 1 1 0 0 0 42.054797 21.781099 A 1 1 0 0 0 41.988652 21.887036 A 1 1 0 0 0 41.937492 21.969202 L 41.850159 21.969202 L 40.035282 21.969202 L 38.883415 20.816817 A 0.40000001 0.40000001 0 0 0 38.875663 20.810616 A 0.40000001 0.40000001 0 0 0 38.871529 20.806999 A 0.40000001 0.40000001 0 0 0 38.816235 20.76359 A 0.40000001 0.40000001 0 0 0 38.813652 20.761523 A 0.40000001 0.40000001 0 0 0 38.811584 20.76049 A 0.40000001 0.40000001 0 0 0 38.801766 20.755839 A 0.40000001 0.40000001 0 0 0 38.747506 20.728967 A 0.40000001 0.40000001 0 0 0 38.742855 20.7269 A 0.40000001 0.40000001 0 0 0 38.724768 20.719666 A 0.40000001 0.40000001 0 0 0 38.719084 20.718115 A 0.40000001 0.40000001 0 0 0 38.656038 20.704163 A 0.40000001 0.40000001 0 0 0 38.651904 20.703129 A 0.40000001 0.40000001 0 0 0 38.62865 20.701579 A 0.40000001 0.40000001 0 0 0 38.600228 20.699512 L 28.599805 20.699512 z M 28.599805 20.900016 A 0.2 0.2 0 0 1 28.799792 21.100004 A 0.2 0.2 0 0 1 28.599805 21.299992 A 0.2 0.2 0 0 1 28.399817 21.100004 A 0.2 0.2 0 0 1 28.599805 20.900016 z M 43.599923 21.819857 A 0.55000001 0.55000001 0 0 1 44.14976 22.370211 A 0.55000001 0.55000001 0 0 1 43.599923 22.920048 A 0.55000001 0.55000001 0 0 1 43.050085 22.370211 A 0.55000001 0.55000001 0 0 1 43.599923 21.819857 z " />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2411"
transform="translate(-349.4,-121.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2412"
transform="translate(-349.4,-121.4)" />
<g
style="fill:none;stroke:#4d7fc4;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g2413"
transform="translate(-349.4,-121.4)" />
<g
style="fill:none;stroke:#4d7fc4;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g2662"
transform="translate(-349.4,-121.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2803"
transform="translate(-349.4,-121.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2804"
transform="translate(-349.4,-121.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2805"
transform="translate(-349.4,-121.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2806"
transform="translate(-349.4,-121.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2835"
transform="translate(-349.4,-121.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2836"
transform="translate(-349.4,-121.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2837"
transform="translate(-349.4,-121.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1359"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1360"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1361"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1362"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1408"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1409"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1410"
transform="translate(-292.4,-121.4)" />
<g
style="fill:none;stroke:#4d7fc4;stroke-width:0.8;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g1651"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2408"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#4d7fc4;fill-opacity:1;stroke:none"
id="g2409"
transform="translate(-292.4,-121.4)" />
<g
style="fill:none;stroke:#4d7fc4;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g2410"
transform="translate(-292.4,-121.4)" />
<g
style="fill:none;stroke:#4d7fc4;stroke-width:0.8;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g2659"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2783"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2784"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2785"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2786"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2832"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2833"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2834"
transform="translate(-292.4,-121.4)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 9.5 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 12 KiB

View file

@ -1,159 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="45.349998mm"
height="42.200001mm"
viewBox="0 0 45.349998 42.200001"
version="1.1"
id="svg1"
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
sodipodi:docname="svg-vis-paper-plain-vias.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="6.6386364"
inkscape:cx="60.102704"
inkscape:cy="110.94146"
inkscape:window-width="3840"
inkscape:window-height="2091"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1379"
transform="translate(-349.4,-134.36458)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1380"
transform="translate(-349.4,-134.36458)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1381"
transform="translate(-349.4,-134.36458)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1382"
transform="translate(-349.4,-134.36458)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1411"
transform="translate(-349.4,-134.36458)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1412"
transform="translate(-349.4,-134.36458)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1413"
transform="translate(-349.4,-134.36458)" />
<g
style="fill:#c83434;fill-opacity:1;stroke:none"
id="g2597"
transform="translate(-349.4,-134.36458)" />
<g
style="fill:#c83434;fill-opacity:1;stroke:none"
id="g2598"
transform="translate(-349.4,-134.36458)" />
<g
style="fill:none;stroke:#c83434;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g2599"
transform="translate(-349.4,-134.36458)" />
<g
style="fill:none;stroke:#c83434;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g2848"
transform="translate(-349.4,-134.36458)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1359"
transform="translate(-292.4,-121.4)">
<path
id="circle1358"
d="M 293.9999 121.4 A 1.6 1.6 0 0 0 292.4 122.9999 A 1.6 1.6 0 0 0 293.9999 124.5998 A 1.6 1.6 0 0 0 295.5998 122.9999 A 1.6 1.6 0 0 0 293.9999 121.4 z M 333.00011 121.4 A 1.6 1.6 0 0 0 331.4002 122.9999 A 1.6 1.6 0 0 0 333.00011 124.5998 A 1.6 1.6 0 0 0 334.60001 122.9999 A 1.6 1.6 0 0 0 333.00011 121.4 z M 335.99992 140.67996 A 0.55000001 0.55000001 0 0 0 335.45009 141.2298 A 0.55000001 0.55000001 0 0 0 335.99992 141.78015 A 0.55000001 0.55000001 0 0 0 336.54976 141.2298 A 0.55000001 0.55000001 0 0 0 335.99992 140.67996 z M 320.9998 142.30002 A 0.2 0.2 0 0 0 320.79982 142.5 A 0.2 0.2 0 0 0 320.9998 142.69999 A 0.2 0.2 0 0 0 321.19979 142.5 A 0.2 0.2 0 0 0 320.9998 142.30002 z M 335.99992 143.21986 A 0.55000001 0.55000001 0 0 0 335.45009 143.77021 A 0.55000001 0.55000001 0 0 0 335.99992 144.32005 A 0.55000001 0.55000001 0 0 0 336.54976 143.77021 A 0.55000001 0.55000001 0 0 0 335.99992 143.21986 z M 293.9999 160.4002 A 1.6 1.6 0 0 0 292.4 162.00011 A 1.6 1.6 0 0 0 293.9999 163.60001 A 1.6 1.6 0 0 0 295.5998 162.00011 A 1.6 1.6 0 0 0 293.9999 160.4002 z M 333.00011 160.4002 A 1.6 1.6 0 0 0 331.4002 162.00011 A 1.6 1.6 0 0 0 333.00011 163.60001 A 1.6 1.6 0 0 0 334.60001 162.00011 A 1.6 1.6 0 0 0 333.00011 160.4002 z "
style="fill:#000000" />
</g>
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1360"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1361"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1362"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1408"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1409"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#d0d2cd;fill-opacity:1;stroke:none"
id="g1410"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#c83434;fill-opacity:1;stroke:none"
id="g2594"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#c83434;fill-opacity:1;stroke:none"
id="g2595"
transform="translate(-292.4,-121.4)" />
<g
style="fill:none;stroke:#c83434;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g2596"
transform="translate(-292.4,-121.4)" />
<g
style="fill:none;stroke:#c83434;stroke-width:0.8;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g2845"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2970"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2971"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g2972"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g3018"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g3019"
transform="translate(-292.4,-121.4)" />
<g
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="g3020"
transform="translate(-292.4,-121.4)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.3 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 26 KiB

View file

@ -1,6 +1,5 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import warnings
import subprocess import subprocess
import sys import sys
import math import math
@ -606,8 +605,6 @@ def print_valid_twists(ctx, param, value):
@click.option('--outer-diameter', type=float, default=50, help='Outer diameter [mm]') @click.option('--outer-diameter', type=float, default=50, help='Outer diameter [mm]')
@click.option('--svg-out', type=click.Path(writable=True, dir_okay=False, path_type=Path), help='Filename to output SVG illustration of the coil to') @click.option('--svg-out', type=click.Path(writable=True, dir_okay=False, path_type=Path), help='Filename to output SVG illustration of the coil to')
@click.option('--inner-diameter', type=float, default=25, help='Inner diameter [mm]') @click.option('--inner-diameter', type=float, default=25, help='Inner diameter [mm]')
@click.option('--stagger-inner-vias/--no-stagger-inner-vias', default=False, help='Stagger inner via ring')
@click.option('--stagger-outer-vias/--no-stagger-outer-vias', default=False, help='Stagger outer via ring')
@click.option('--trace-width', type=float, default=None) @click.option('--trace-width', type=float, default=None)
@click.option('--via-diameter', type=float, default=0.6) @click.option('--via-diameter', type=float, default=0.6)
@click.option('--two-layer/--single-layer', default=True) @click.option('--two-layer/--single-layer', default=True)
@ -620,6 +617,7 @@ def print_valid_twists(ctx, param, value):
@click.option('--twists', type=int, default=1, help='Number of twists per revolution. Note that this number must be co-prime to the number of turns. Run with --show-twists to list valid values. (default: 1)') @click.option('--twists', type=int, default=1, help='Number of twists per revolution. Note that this number must be co-prime to the number of turns. Run with --show-twists to list valid values. (default: 1)')
@click.option('--circle-segments', type=int, default=64, help='When not using arcs, the number of points to use for arc interpolation per 360 degrees.') @click.option('--circle-segments', type=int, default=64, help='When not using arcs, the number of points to use for arc interpolation per 360 degrees.')
@click.option('--show-twists', callback=print_valid_twists, expose_value=False, type=int, is_eager=True, help='Calculate and show valid --twists counts for the given number of turns. Takes the number of turns as a value.') @click.option('--show-twists', callback=print_valid_twists, expose_value=False, type=int, is_eager=True, help='Calculate and show valid --twists counts for the given number of turns. Takes the number of turns as a value.')
@click.option('--close-loop', is_flag=True, help='Close coil loop for simulation meshes')
@click.option('--clearance', type=float, default=None) @click.option('--clearance', type=float, default=None)
@click.option('--arc-tolerance', type=float, default=0.02) @click.option('--arc-tolerance', type=float, default=0.02)
@click.option('--mesh-split-out', type=click.Path(writable=True, dir_okay=False, path_type=Path)) @click.option('--mesh-split-out', type=click.Path(writable=True, dir_okay=False, path_type=Path))
@ -637,7 +635,7 @@ def generate(outfile, turns, outer_diameter, inner_diameter, via_diameter, via_d
footprint_name, layer_pair, twists, clipboard, counter_clockwise, keepout_zone, keepout_margin, footprint_name, layer_pair, twists, clipboard, counter_clockwise, keepout_zone, keepout_margin,
arc_tolerance, pcb, mesh_out, magneticalc_out, circle_segments, mesh_split_out, copper_thickness, arc_tolerance, pcb, mesh_out, magneticalc_out, circle_segments, mesh_split_out, copper_thickness,
board_thickness, mesh_mutual_out, mutual_offset_x, mutual_offset_y, mutual_offset_z, mutual_rotation_z, board_thickness, mesh_mutual_out, mutual_offset_x, mutual_offset_y, mutual_offset_z, mutual_rotation_z,
two_layer, svg_out, stagger_inner_vias, stagger_outer_vias): two_layer, svg_out, close_loop):
if 'WAYLAND_DISPLAY' in os.environ: if 'WAYLAND_DISPLAY' in os.environ:
copy, paste, cliputil = ['wl-copy'], ['wl-paste'], 'xclip' copy, paste, cliputil = ['wl-copy'], ['wl-paste'], 'xclip'
@ -645,10 +643,7 @@ def generate(outfile, turns, outer_diameter, inner_diameter, via_diameter, via_d
copy, paste, cliputil = ['xclip', '-i', '-sel', 'clipboard'], ['xclip', '-o', '-sel' 'clipboard'], 'wl-clipboard' copy, paste, cliputil = ['xclip', '-i', '-sel', 'clipboard'], ['xclip', '-o', '-sel' 'clipboard'], 'wl-clipboard'
if gcd(twists, turns) != 1: if gcd(twists, turns) != 1:
raise click.ClickException(f'For the geometry to work out, the --twists parameter must be co-prime to --turns, i.e. the two must have 1 as their greatest common divisor. You can print valid values for --twists by running this command with --show-twists [turns number]. Right now, both are divisible by {gcd(twists, turns)}.') raise click.ClickException('For the geometry to work out, the --twists parameter must be co-prime to --turns, i.e. the two must have 1 as their greatest common divisor. You can print valid values for --twists by running this command with --show-twists [turns number].')
if (stagger_inner_vias or stagger_outer_vias) and twists%2 != 0:
raise click.ClickException('For --stagger-inner/outer-vias to work, --twists must be even and --turns must be odd.')
if (mesh_out or mesh_split_out or mesh_mutual_out) and not pcb: if (mesh_out or mesh_split_out or mesh_mutual_out) and not pcb:
raise click.ClickException('--pcb is required when --mesh-out, --mesh-mutual-out or --mesh-split-out are used.') raise click.ClickException('--pcb is required when --mesh-out, --mesh-mutual-out or --mesh-split-out are used.')
@ -713,9 +708,9 @@ def generate(outfile, turns, outer_diameter, inner_diameter, via_diameter, via_d
print(f' {degrees(outer_via_angle):.1f} deg / via', file=sys.stderr) print(f' {degrees(outer_via_angle):.1f} deg / via', file=sys.stderr)
# Check if the vias of the inner ring are so large that they would overlap # Check if the vias of the inner ring are so large that they would overlap
if inner_via_angle*twists > (4*pi if stagger_inner_vias else 2*pi): if inner_via_angle*twists > 2*pi:
min_dia = 2*((via_diameter + clearance) / (2*sin(pi / twists * (2 if stagger_inner_vias else 1))) + via_offset) min_dia = 2*((via_diameter + clearance) / (2*sin(pi / twists)) + via_offset)
warnings.warn(f'Overlapping vias in inner via ring. Calculated minimum inner diameter is {min_dia:.2f} mm.') raise click.ClickException(f'Error: Overlapping vias in inner via ring. Calculated minimum inner diameter is {min_dia:.2f} mm.')
pitch = clearance + trace_width pitch = clearance + trace_width
t, _, b = layer_pair.partition(',') t, _, b = layer_pair.partition(',')
@ -867,7 +862,7 @@ def generate(outfile, turns, outer_diameter, inner_diameter, via_diameter, via_d
x = inverse[i]*floor(2*sweeping_angle / (2*pi)) * 2*pi x = inverse[i]*floor(2*sweeping_angle / (2*pi)) * 2*pi
(x0, y0), (xn, yn), clen = do_spiral(0, outer_radius, inner_radius, start_angle, fold_angle, (x + start_angle)/total_angle, (x + fold_angle)/total_angle, circle_segments) (x0, y0), (xn, yn), clen = do_spiral(0, outer_radius, inner_radius, start_angle, fold_angle, (x + start_angle)/total_angle, (x + fold_angle)/total_angle, circle_segments)
if two_layer: if two_layer:
do_spiral(1, inner_radius, outer_radius, fold_angle, end_angle, (x + fold_angle)/total_angle, (x + end_angle)/total_angle, circle_segments) do_spiral(1, inner_radius, outer_radius, fold_angle, end_angle, (x + fold_angle)/total_angle, (x + end_angle)/total_angle)
else: else:
dr = outer_radius - inner_radius dr = outer_radius - inner_radius
xq = xn + cos(fold_angle) * dr xq = xn + cos(fold_angle) * dr
@ -880,11 +875,7 @@ def generate(outfile, turns, outer_diameter, inner_diameter, via_diameter, via_d
path.move(xn, yn) path.move(xn, yn)
path.line(xq, yq) path.line(xq, yq)
r = inner_via_ring_radius xv, yv = inner_via_ring_radius*cos(fold_angle), inner_via_ring_radius*sin(fold_angle)
if stagger_inner_vias:
if i%2 != 0:
r -= 2*via_offset
xv, yv = r*cos(fold_angle), r*sin(fold_angle)
pads.append(make_via(xv, yv, layer_pair)) pads.append(make_via(xv, yv, layer_pair))
if not isclose(via_offset, 0, abs_tol=1e-6): if not isclose(via_offset, 0, abs_tol=1e-6):
lines.append(make_line(xn, yn, xv, yv, layer_pair[0])) lines.append(make_line(xn, yn, xv, yv, layer_pair[0]))
@ -892,12 +883,8 @@ def generate(outfile, turns, outer_diameter, inner_diameter, via_diameter, via_d
svg_vias.append(Tag('circle', cx=xv, cy=yv, r=via_diameter/2, stroke='none', fill='white')) svg_vias.append(Tag('circle', cx=xv, cy=yv, r=via_diameter/2, stroke='none', fill='white'))
svg_vias.append(Tag('circle', cx=xv, cy=yv, r=via_drill/2, stroke='none', fill='black')) svg_vias.append(Tag('circle', cx=xv, cy=yv, r=via_drill/2, stroke='none', fill='black'))
if i > 0: if i > 0 or close_loop:
r = outer_via_ring_radius xv, yv = outer_via_ring_radius*cos(start_angle), outer_via_ring_radius*sin(start_angle)
if stagger_outer_vias:
if i%2 != 0:
r += 2*via_offset
xv, yv = r*cos(start_angle), r*sin(start_angle)
pads.append(make_via(xv, yv, layer_pair)) pads.append(make_via(xv, yv, layer_pair))
if not isclose(via_offset, 0, abs_tol=1e-6): if not isclose(via_offset, 0, abs_tol=1e-6):
lines.append(make_line(x0, y0, xv, yv, layer_pair[0])) lines.append(make_line(x0, y0, xv, yv, layer_pair[0]))
@ -905,7 +892,7 @@ def generate(outfile, turns, outer_diameter, inner_diameter, via_diameter, via_d
svg_vias.append(Tag('circle', cx=xv, cy=yv, r=via_diameter/2, stroke='none', fill='white')) svg_vias.append(Tag('circle', cx=xv, cy=yv, r=via_diameter/2, stroke='none', fill='white'))
svg_vias.append(Tag('circle', cx=xv, cy=yv, r=via_drill/2, stroke='none', fill='black')) svg_vias.append(Tag('circle', cx=xv, cy=yv, r=via_drill/2, stroke='none', fill='black'))
l_total = clen*twists*(2 if two_layer else 1) l_total = clen*twists*2
print(f'Approximate track length: {l_total:.2f} mm', file=sys.stderr) print(f'Approximate track length: {l_total:.2f} mm', file=sys.stderr)
A = copper_thickness/1e3 * trace_width/1e3 A = copper_thickness/1e3 * trace_width/1e3
rho = 1.68e-8 rho = 1.68e-8

File diff suppressed because it is too large Load diff

View file

@ -1,136 +0,0 @@
{
"board": {
"active_layer": 0,
"active_layer_preset": "All Layers",
"auto_track_width": true,
"hidden_netclasses": [],
"hidden_nets": [],
"high_contrast_mode": 0,
"net_color_mode": 1,
"opacity": {
"images": 0.6,
"pads": 1.0,
"shapes": 1.0,
"tracks": 1.0,
"vias": 1.0,
"zones": 0.6
},
"selection_filter": {
"dimensions": true,
"footprints": true,
"graphics": true,
"keepouts": true,
"lockedItems": false,
"otherItems": true,
"pads": true,
"text": true,
"tracks": true,
"vias": true,
"zones": true
},
"visible_items": [
0,
1,
2,
3,
4,
5,
8,
9,
10,
11,
12,
13,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
32,
33,
34,
35,
36,
39,
40,
41
],
"visible_layers": "ffffffff_ffffffff",
"zone_display_mode": 0
},
"git": {
"repo_password": "",
"repo_type": "",
"repo_username": "",
"ssh_key": ""
},
"meta": {
"filename": "wide_coil_1.kicad_prl",
"version": 4
},
"net_inspector_panel": {
"col_hidden": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
],
"col_order": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9
],
"col_widths": [],
"custom_group_rules": [],
"expanded_rows": [],
"filter_by_net_name": true,
"filter_by_netclass": true,
"filter_text": "",
"group_by_constraint": false,
"group_by_netclass": false,
"show_unconnected_nets": false,
"show_zero_pad_nets": false,
"sort_ascending": true,
"sorting_column": -1
},
"project": {
"files": []
},
"schematic": {
"selection_filter": {
"graphics": true,
"images": true,
"labels": true,
"lockedItems": false,
"otherItems": true,
"pins": true,
"symbols": true,
"text": true,
"wires": true
}
}
}

View file

@ -1,276 +0,0 @@
{
"board": {
"3dviewports": [],
"design_settings": {
"defaults": {
"apply_defaults_to_fp_fields": false,
"apply_defaults_to_fp_shapes": false,
"apply_defaults_to_fp_text": false,
"board_outline_line_width": 0.05,
"copper_line_width": 0.2,
"copper_text_italic": false,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"copper_text_upright": false,
"courtyard_line_width": 0.05,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": false,
"text_position": 0,
"units_format": 1
},
"fab_line_width": 0.1,
"fab_text_italic": false,
"fab_text_size_h": 1.0,
"fab_text_size_v": 1.0,
"fab_text_thickness": 0.15,
"fab_text_upright": false,
"other_line_width": 0.1,
"other_text_italic": false,
"other_text_size_h": 1.0,
"other_text_size_v": 1.0,
"other_text_thickness": 0.15,
"other_text_upright": false,
"pads": {
"drill": 0.8,
"height": 1.27,
"width": 2.54
},
"silk_line_width": 0.1,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.1,
"silk_text_upright": false,
"zones": {
"min_clearance": 0.5
}
},
"diff_pair_dimensions": [],
"drc_exclusions": [],
"meta": {
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"connection_width": "warning",
"copper_edge_clearance": "error",
"copper_sliver": "warning",
"courtyards_overlap": "error",
"diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error",
"duplicate_footprints": "warning",
"extra_footprint": "warning",
"footprint": "error",
"footprint_filters_mismatch": "ignore",
"footprint_symbol_mismatch": "warning",
"footprint_type_mismatch": "ignore",
"hole_clearance": "error",
"hole_to_hole": "warning",
"holes_co_located": "warning",
"invalid_outline": "error",
"isolated_copper": "warning",
"item_on_disabled_layer": "error",
"items_not_allowed": "error",
"length_out_of_range": "error",
"lib_footprint_issues": "warning",
"lib_footprint_mismatch": "warning",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "warning",
"pth_inside_courtyard": "ignore",
"shorting_items": "error",
"silk_edge_clearance": "warning",
"silk_over_copper": "warning",
"silk_overlap": "warning",
"skew_out_of_range": "error",
"solder_mask_bridge": "error",
"starved_thermal": "error",
"text_height": "warning",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_dangling": "warning",
"track_width": "error",
"tracks_crossing": "error",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zones_intersect": "error"
},
"rules": {
"max_error": 0.005,
"min_clearance": 0.0,
"min_connection": 0.0,
"min_copper_edge_clearance": 0.5,
"min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.2,
"min_microvia_drill": 0.1,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0,
"min_text_height": 0.8,
"min_text_thickness": 0.08,
"min_through_hole_diameter": 0.3,
"min_track_width": 0.0,
"min_via_annular_width": 0.1,
"min_via_diameter": 0.5,
"solder_mask_to_copper_clearance": 0.0,
"use_height_for_length_calcs": true
},
"teardrop_options": [
{
"td_onpadsmd": true,
"td_onroundshapesonly": false,
"td_ontrackend": false,
"td_onviapad": true
}
],
"teardrop_parameters": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [],
"tuning_pattern_settings": {
"diff_pair_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 1.0
},
"diff_pair_skew_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
},
"single_track_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
}
},
"via_dimensions": [],
"zones_allow_external_fillets": false
},
"ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_pairs": [],
"layer_presets": [],
"viewports": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "wide_coil_1.kicad_pro",
"version": 1
},
"net_settings": {
"classes": [
{
"bus_width": 12,
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"priority": -1,
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.2,
"via_diameter": 0.6,
"via_drill": 0.3,
"wire_width": 6
}
],
"meta": {
"version": 4
},
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": []
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"plot": "gerber_wide_1",
"pos_files": "",
"specctra_dsn": "",
"step": "",
"svg": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"legacy_lib_dir": "",
"legacy_lib_list": []
},
"sheets": [],
"text_variables": {}
}

File diff suppressed because it is too large Load diff

View file

@ -1,136 +0,0 @@
{
"board": {
"active_layer": 0,
"active_layer_preset": "All Layers",
"auto_track_width": true,
"hidden_netclasses": [],
"hidden_nets": [],
"high_contrast_mode": 0,
"net_color_mode": 1,
"opacity": {
"images": 0.6,
"pads": 1.0,
"shapes": 1.0,
"tracks": 1.0,
"vias": 1.0,
"zones": 0.6
},
"selection_filter": {
"dimensions": true,
"footprints": true,
"graphics": true,
"keepouts": true,
"lockedItems": false,
"otherItems": true,
"pads": true,
"text": true,
"tracks": true,
"vias": true,
"zones": true
},
"visible_items": [
0,
1,
2,
3,
4,
5,
8,
9,
10,
11,
12,
13,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
32,
33,
34,
35,
36,
39,
40,
41
],
"visible_layers": "ffffffff_ffffffff",
"zone_display_mode": 0
},
"git": {
"repo_password": "",
"repo_type": "",
"repo_username": "",
"ssh_key": ""
},
"meta": {
"filename": "wide_coil_2.kicad_prl",
"version": 4
},
"net_inspector_panel": {
"col_hidden": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
],
"col_order": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9
],
"col_widths": [],
"custom_group_rules": [],
"expanded_rows": [],
"filter_by_net_name": true,
"filter_by_netclass": true,
"filter_text": "",
"group_by_constraint": false,
"group_by_netclass": false,
"show_unconnected_nets": false,
"show_zero_pad_nets": false,
"sort_ascending": true,
"sorting_column": -1
},
"project": {
"files": []
},
"schematic": {
"selection_filter": {
"graphics": true,
"images": true,
"labels": true,
"lockedItems": false,
"otherItems": true,
"pins": true,
"symbols": true,
"text": true,
"wires": true
}
}
}

View file

@ -1,276 +0,0 @@
{
"board": {
"3dviewports": [],
"design_settings": {
"defaults": {
"apply_defaults_to_fp_fields": false,
"apply_defaults_to_fp_shapes": false,
"apply_defaults_to_fp_text": false,
"board_outline_line_width": 0.05,
"copper_line_width": 0.2,
"copper_text_italic": false,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"copper_text_upright": false,
"courtyard_line_width": 0.05,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": false,
"text_position": 0,
"units_format": 1
},
"fab_line_width": 0.1,
"fab_text_italic": false,
"fab_text_size_h": 1.0,
"fab_text_size_v": 1.0,
"fab_text_thickness": 0.15,
"fab_text_upright": false,
"other_line_width": 0.1,
"other_text_italic": false,
"other_text_size_h": 1.0,
"other_text_size_v": 1.0,
"other_text_thickness": 0.15,
"other_text_upright": false,
"pads": {
"drill": 0.8,
"height": 1.27,
"width": 2.54
},
"silk_line_width": 0.1,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.1,
"silk_text_upright": false,
"zones": {
"min_clearance": 0.5
}
},
"diff_pair_dimensions": [],
"drc_exclusions": [],
"meta": {
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"connection_width": "warning",
"copper_edge_clearance": "error",
"copper_sliver": "warning",
"courtyards_overlap": "error",
"diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error",
"duplicate_footprints": "warning",
"extra_footprint": "warning",
"footprint": "error",
"footprint_filters_mismatch": "ignore",
"footprint_symbol_mismatch": "warning",
"footprint_type_mismatch": "ignore",
"hole_clearance": "error",
"hole_to_hole": "warning",
"holes_co_located": "warning",
"invalid_outline": "error",
"isolated_copper": "warning",
"item_on_disabled_layer": "error",
"items_not_allowed": "error",
"length_out_of_range": "error",
"lib_footprint_issues": "warning",
"lib_footprint_mismatch": "warning",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "warning",
"pth_inside_courtyard": "ignore",
"shorting_items": "error",
"silk_edge_clearance": "warning",
"silk_over_copper": "warning",
"silk_overlap": "warning",
"skew_out_of_range": "error",
"solder_mask_bridge": "error",
"starved_thermal": "error",
"text_height": "warning",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_dangling": "warning",
"track_width": "error",
"tracks_crossing": "error",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zones_intersect": "error"
},
"rules": {
"max_error": 0.005,
"min_clearance": 0.0,
"min_connection": 0.0,
"min_copper_edge_clearance": 0.5,
"min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.2,
"min_microvia_drill": 0.1,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0,
"min_text_height": 0.8,
"min_text_thickness": 0.08,
"min_through_hole_diameter": 0.3,
"min_track_width": 0.0,
"min_via_annular_width": 0.1,
"min_via_diameter": 0.5,
"solder_mask_to_copper_clearance": 0.0,
"use_height_for_length_calcs": true
},
"teardrop_options": [
{
"td_onpadsmd": true,
"td_onroundshapesonly": false,
"td_ontrackend": false,
"td_onviapad": true
}
],
"teardrop_parameters": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [],
"tuning_pattern_settings": {
"diff_pair_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 1.0
},
"diff_pair_skew_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
},
"single_track_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
}
},
"via_dimensions": [],
"zones_allow_external_fillets": false
},
"ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_pairs": [],
"layer_presets": [],
"viewports": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "wide_coil_2.kicad_pro",
"version": 1
},
"net_settings": {
"classes": [
{
"bus_width": 12,
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"priority": -1,
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.2,
"via_diameter": 0.6,
"via_drill": 0.3,
"wire_width": 6
}
],
"meta": {
"version": 4
},
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": []
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"plot": "gerber_wide_2",
"pos_files": "",
"specctra_dsn": "",
"step": "",
"svg": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"legacy_lib_dir": "",
"legacy_lib_list": []
},
"sheets": [],
"text_variables": {}
}

File diff suppressed because it is too large Load diff

View file

@ -1,136 +0,0 @@
{
"board": {
"active_layer": 0,
"active_layer_preset": "All Layers",
"auto_track_width": true,
"hidden_netclasses": [],
"hidden_nets": [],
"high_contrast_mode": 0,
"net_color_mode": 1,
"opacity": {
"images": 0.6,
"pads": 1.0,
"shapes": 1.0,
"tracks": 1.0,
"vias": 1.0,
"zones": 0.6
},
"selection_filter": {
"dimensions": true,
"footprints": true,
"graphics": true,
"keepouts": true,
"lockedItems": false,
"otherItems": true,
"pads": true,
"text": true,
"tracks": true,
"vias": true,
"zones": true
},
"visible_items": [
0,
1,
2,
3,
4,
5,
8,
9,
10,
11,
12,
13,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
32,
33,
34,
35,
36,
39,
40,
41
],
"visible_layers": "ffffffff_ffffffff",
"zone_display_mode": 0
},
"git": {
"repo_password": "",
"repo_type": "",
"repo_username": "",
"ssh_key": ""
},
"meta": {
"filename": "wide_coil_3.kicad_prl",
"version": 4
},
"net_inspector_panel": {
"col_hidden": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
],
"col_order": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9
],
"col_widths": [],
"custom_group_rules": [],
"expanded_rows": [],
"filter_by_net_name": true,
"filter_by_netclass": true,
"filter_text": "",
"group_by_constraint": false,
"group_by_netclass": false,
"show_unconnected_nets": false,
"show_zero_pad_nets": false,
"sort_ascending": true,
"sorting_column": -1
},
"project": {
"files": []
},
"schematic": {
"selection_filter": {
"graphics": true,
"images": true,
"labels": true,
"lockedItems": false,
"otherItems": true,
"pins": true,
"symbols": true,
"text": true,
"wires": true
}
}
}

View file

@ -1,276 +0,0 @@
{
"board": {
"3dviewports": [],
"design_settings": {
"defaults": {
"apply_defaults_to_fp_fields": false,
"apply_defaults_to_fp_shapes": false,
"apply_defaults_to_fp_text": false,
"board_outline_line_width": 0.05,
"copper_line_width": 0.2,
"copper_text_italic": false,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"copper_text_upright": false,
"courtyard_line_width": 0.05,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": false,
"text_position": 0,
"units_format": 1
},
"fab_line_width": 0.1,
"fab_text_italic": false,
"fab_text_size_h": 1.0,
"fab_text_size_v": 1.0,
"fab_text_thickness": 0.15,
"fab_text_upright": false,
"other_line_width": 0.1,
"other_text_italic": false,
"other_text_size_h": 1.0,
"other_text_size_v": 1.0,
"other_text_thickness": 0.15,
"other_text_upright": false,
"pads": {
"drill": 0.8,
"height": 1.27,
"width": 2.54
},
"silk_line_width": 0.1,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.1,
"silk_text_upright": false,
"zones": {
"min_clearance": 0.5
}
},
"diff_pair_dimensions": [],
"drc_exclusions": [],
"meta": {
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"connection_width": "warning",
"copper_edge_clearance": "error",
"copper_sliver": "warning",
"courtyards_overlap": "error",
"diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error",
"duplicate_footprints": "warning",
"extra_footprint": "warning",
"footprint": "error",
"footprint_filters_mismatch": "ignore",
"footprint_symbol_mismatch": "warning",
"footprint_type_mismatch": "ignore",
"hole_clearance": "error",
"hole_to_hole": "warning",
"holes_co_located": "warning",
"invalid_outline": "error",
"isolated_copper": "warning",
"item_on_disabled_layer": "error",
"items_not_allowed": "error",
"length_out_of_range": "error",
"lib_footprint_issues": "warning",
"lib_footprint_mismatch": "warning",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "warning",
"pth_inside_courtyard": "ignore",
"shorting_items": "error",
"silk_edge_clearance": "warning",
"silk_over_copper": "warning",
"silk_overlap": "warning",
"skew_out_of_range": "error",
"solder_mask_bridge": "error",
"starved_thermal": "error",
"text_height": "warning",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_dangling": "warning",
"track_width": "error",
"tracks_crossing": "error",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zones_intersect": "error"
},
"rules": {
"max_error": 0.005,
"min_clearance": 0.0,
"min_connection": 0.0,
"min_copper_edge_clearance": 0.5,
"min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.2,
"min_microvia_drill": 0.1,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0,
"min_text_height": 0.8,
"min_text_thickness": 0.08,
"min_through_hole_diameter": 0.3,
"min_track_width": 0.0,
"min_via_annular_width": 0.1,
"min_via_diameter": 0.5,
"solder_mask_to_copper_clearance": 0.0,
"use_height_for_length_calcs": true
},
"teardrop_options": [
{
"td_onpadsmd": true,
"td_onroundshapesonly": false,
"td_ontrackend": false,
"td_onviapad": true
}
],
"teardrop_parameters": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [],
"tuning_pattern_settings": {
"diff_pair_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 1.0
},
"diff_pair_skew_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
},
"single_track_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
}
},
"via_dimensions": [],
"zones_allow_external_fillets": false
},
"ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_pairs": [],
"layer_presets": [],
"viewports": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "wide_coil_3.kicad_pro",
"version": 1
},
"net_settings": {
"classes": [
{
"bus_width": 12,
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"priority": -1,
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.2,
"via_diameter": 0.6,
"via_drill": 0.3,
"wire_width": 6
}
],
"meta": {
"version": 4
},
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": []
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"plot": "gerber_wide_3",
"pos_files": "",
"specctra_dsn": "",
"step": "",
"svg": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"legacy_lib_dir": "",
"legacy_lib_list": []
},
"sheets": [],
"text_variables": {}
}

File diff suppressed because it is too large Load diff

View file

@ -1,136 +0,0 @@
{
"board": {
"active_layer": 0,
"active_layer_preset": "All Layers",
"auto_track_width": true,
"hidden_netclasses": [],
"hidden_nets": [],
"high_contrast_mode": 0,
"net_color_mode": 1,
"opacity": {
"images": 0.6,
"pads": 1.0,
"shapes": 1.0,
"tracks": 1.0,
"vias": 1.0,
"zones": 0.6
},
"selection_filter": {
"dimensions": true,
"footprints": true,
"graphics": true,
"keepouts": true,
"lockedItems": false,
"otherItems": true,
"pads": true,
"text": true,
"tracks": true,
"vias": true,
"zones": true
},
"visible_items": [
0,
1,
2,
3,
4,
5,
8,
9,
10,
11,
12,
13,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
32,
33,
34,
35,
36,
39,
40,
41
],
"visible_layers": "ffffffff_ffffffff",
"zone_display_mode": 0
},
"git": {
"repo_password": "",
"repo_type": "",
"repo_username": "",
"ssh_key": ""
},
"meta": {
"filename": "wide_coil_4.kicad_prl",
"version": 4
},
"net_inspector_panel": {
"col_hidden": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
],
"col_order": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9
],
"col_widths": [],
"custom_group_rules": [],
"expanded_rows": [],
"filter_by_net_name": true,
"filter_by_netclass": true,
"filter_text": "",
"group_by_constraint": false,
"group_by_netclass": false,
"show_unconnected_nets": false,
"show_zero_pad_nets": false,
"sort_ascending": true,
"sorting_column": -1
},
"project": {
"files": []
},
"schematic": {
"selection_filter": {
"graphics": true,
"images": true,
"labels": true,
"lockedItems": false,
"otherItems": true,
"pins": true,
"symbols": true,
"text": true,
"wires": true
}
}
}

View file

@ -1,276 +0,0 @@
{
"board": {
"3dviewports": [],
"design_settings": {
"defaults": {
"apply_defaults_to_fp_fields": false,
"apply_defaults_to_fp_shapes": false,
"apply_defaults_to_fp_text": false,
"board_outline_line_width": 0.05,
"copper_line_width": 0.2,
"copper_text_italic": false,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"copper_text_upright": false,
"courtyard_line_width": 0.05,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": false,
"text_position": 0,
"units_format": 1
},
"fab_line_width": 0.1,
"fab_text_italic": false,
"fab_text_size_h": 1.0,
"fab_text_size_v": 1.0,
"fab_text_thickness": 0.15,
"fab_text_upright": false,
"other_line_width": 0.1,
"other_text_italic": false,
"other_text_size_h": 1.0,
"other_text_size_v": 1.0,
"other_text_thickness": 0.15,
"other_text_upright": false,
"pads": {
"drill": 0.8,
"height": 1.27,
"width": 2.54
},
"silk_line_width": 0.1,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.1,
"silk_text_upright": false,
"zones": {
"min_clearance": 0.5
}
},
"diff_pair_dimensions": [],
"drc_exclusions": [],
"meta": {
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"connection_width": "warning",
"copper_edge_clearance": "error",
"copper_sliver": "warning",
"courtyards_overlap": "error",
"diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error",
"duplicate_footprints": "warning",
"extra_footprint": "warning",
"footprint": "error",
"footprint_filters_mismatch": "ignore",
"footprint_symbol_mismatch": "warning",
"footprint_type_mismatch": "ignore",
"hole_clearance": "error",
"hole_to_hole": "warning",
"holes_co_located": "warning",
"invalid_outline": "error",
"isolated_copper": "warning",
"item_on_disabled_layer": "error",
"items_not_allowed": "error",
"length_out_of_range": "error",
"lib_footprint_issues": "warning",
"lib_footprint_mismatch": "warning",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "warning",
"pth_inside_courtyard": "ignore",
"shorting_items": "error",
"silk_edge_clearance": "warning",
"silk_over_copper": "warning",
"silk_overlap": "warning",
"skew_out_of_range": "error",
"solder_mask_bridge": "error",
"starved_thermal": "error",
"text_height": "warning",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_dangling": "warning",
"track_width": "error",
"tracks_crossing": "error",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zones_intersect": "error"
},
"rules": {
"max_error": 0.005,
"min_clearance": 0.0,
"min_connection": 0.0,
"min_copper_edge_clearance": 0.5,
"min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.2,
"min_microvia_drill": 0.1,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0,
"min_text_height": 0.8,
"min_text_thickness": 0.08,
"min_through_hole_diameter": 0.3,
"min_track_width": 0.0,
"min_via_annular_width": 0.1,
"min_via_diameter": 0.5,
"solder_mask_to_copper_clearance": 0.0,
"use_height_for_length_calcs": true
},
"teardrop_options": [
{
"td_onpadsmd": true,
"td_onroundshapesonly": false,
"td_ontrackend": false,
"td_onviapad": true
}
],
"teardrop_parameters": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [],
"tuning_pattern_settings": {
"diff_pair_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 1.0
},
"diff_pair_skew_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
},
"single_track_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
}
},
"via_dimensions": [],
"zones_allow_external_fillets": false
},
"ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_pairs": [],
"layer_presets": [],
"viewports": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "wide_coil_4.kicad_pro",
"version": 1
},
"net_settings": {
"classes": [
{
"bus_width": 12,
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"priority": -1,
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.2,
"via_diameter": 0.6,
"via_drill": 0.3,
"wire_width": 6
}
],
"meta": {
"version": 4
},
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": []
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"plot": "gerber_wide_4",
"pos_files": "",
"specctra_dsn": "",
"step": "",
"svg": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"legacy_lib_dir": "",
"legacy_lib_list": []
},
"sheets": [],
"text_variables": {}
}

File diff suppressed because it is too large Load diff

View file

@ -1,136 +0,0 @@
{
"board": {
"active_layer": 0,
"active_layer_preset": "All Layers",
"auto_track_width": true,
"hidden_netclasses": [],
"hidden_nets": [],
"high_contrast_mode": 0,
"net_color_mode": 1,
"opacity": {
"images": 0.6,
"pads": 1.0,
"shapes": 1.0,
"tracks": 1.0,
"vias": 1.0,
"zones": 0.6
},
"selection_filter": {
"dimensions": true,
"footprints": true,
"graphics": true,
"keepouts": true,
"lockedItems": false,
"otherItems": true,
"pads": true,
"text": true,
"tracks": true,
"vias": true,
"zones": true
},
"visible_items": [
0,
1,
2,
3,
4,
5,
8,
9,
10,
11,
12,
13,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
32,
33,
34,
35,
36,
39,
40,
41
],
"visible_layers": "ffffffff_ffffffff",
"zone_display_mode": 0
},
"git": {
"repo_password": "",
"repo_type": "",
"repo_username": "",
"ssh_key": ""
},
"meta": {
"filename": "wide_coil_5.kicad_prl",
"version": 4
},
"net_inspector_panel": {
"col_hidden": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
],
"col_order": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9
],
"col_widths": [],
"custom_group_rules": [],
"expanded_rows": [],
"filter_by_net_name": true,
"filter_by_netclass": true,
"filter_text": "",
"group_by_constraint": false,
"group_by_netclass": false,
"show_unconnected_nets": false,
"show_zero_pad_nets": false,
"sort_ascending": true,
"sorting_column": -1
},
"project": {
"files": []
},
"schematic": {
"selection_filter": {
"graphics": true,
"images": true,
"labels": true,
"lockedItems": false,
"otherItems": true,
"pins": true,
"symbols": true,
"text": true,
"wires": true
}
}
}

View file

@ -1,276 +0,0 @@
{
"board": {
"3dviewports": [],
"design_settings": {
"defaults": {
"apply_defaults_to_fp_fields": false,
"apply_defaults_to_fp_shapes": false,
"apply_defaults_to_fp_text": false,
"board_outline_line_width": 0.05,
"copper_line_width": 0.2,
"copper_text_italic": false,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"copper_text_upright": false,
"courtyard_line_width": 0.05,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": false,
"text_position": 0,
"units_format": 1
},
"fab_line_width": 0.1,
"fab_text_italic": false,
"fab_text_size_h": 1.0,
"fab_text_size_v": 1.0,
"fab_text_thickness": 0.15,
"fab_text_upright": false,
"other_line_width": 0.1,
"other_text_italic": false,
"other_text_size_h": 1.0,
"other_text_size_v": 1.0,
"other_text_thickness": 0.15,
"other_text_upright": false,
"pads": {
"drill": 0.8,
"height": 1.27,
"width": 2.54
},
"silk_line_width": 0.1,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.1,
"silk_text_upright": false,
"zones": {
"min_clearance": 0.5
}
},
"diff_pair_dimensions": [],
"drc_exclusions": [],
"meta": {
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"connection_width": "warning",
"copper_edge_clearance": "error",
"copper_sliver": "warning",
"courtyards_overlap": "error",
"diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error",
"duplicate_footprints": "warning",
"extra_footprint": "warning",
"footprint": "error",
"footprint_filters_mismatch": "ignore",
"footprint_symbol_mismatch": "warning",
"footprint_type_mismatch": "ignore",
"hole_clearance": "error",
"hole_to_hole": "warning",
"holes_co_located": "warning",
"invalid_outline": "error",
"isolated_copper": "warning",
"item_on_disabled_layer": "error",
"items_not_allowed": "error",
"length_out_of_range": "error",
"lib_footprint_issues": "warning",
"lib_footprint_mismatch": "warning",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "warning",
"pth_inside_courtyard": "ignore",
"shorting_items": "error",
"silk_edge_clearance": "warning",
"silk_over_copper": "warning",
"silk_overlap": "warning",
"skew_out_of_range": "error",
"solder_mask_bridge": "error",
"starved_thermal": "error",
"text_height": "warning",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_dangling": "warning",
"track_width": "error",
"tracks_crossing": "error",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zones_intersect": "error"
},
"rules": {
"max_error": 0.005,
"min_clearance": 0.0,
"min_connection": 0.0,
"min_copper_edge_clearance": 0.5,
"min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.2,
"min_microvia_drill": 0.1,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0,
"min_text_height": 0.8,
"min_text_thickness": 0.08,
"min_through_hole_diameter": 0.3,
"min_track_width": 0.0,
"min_via_annular_width": 0.1,
"min_via_diameter": 0.5,
"solder_mask_to_copper_clearance": 0.0,
"use_height_for_length_calcs": true
},
"teardrop_options": [
{
"td_onpadsmd": true,
"td_onroundshapesonly": false,
"td_ontrackend": false,
"td_onviapad": true
}
],
"teardrop_parameters": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [],
"tuning_pattern_settings": {
"diff_pair_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 1.0
},
"diff_pair_skew_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
},
"single_track_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
}
},
"via_dimensions": [],
"zones_allow_external_fillets": false
},
"ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_pairs": [],
"layer_presets": [],
"viewports": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "wide_coil_5.kicad_pro",
"version": 1
},
"net_settings": {
"classes": [
{
"bus_width": 12,
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"priority": -1,
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.2,
"via_diameter": 0.6,
"via_drill": 0.3,
"wire_width": 6
}
],
"meta": {
"version": 4
},
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": []
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"plot": "gerber_wide_5",
"pos_files": "",
"specctra_dsn": "",
"step": "",
"svg": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"legacy_lib_dir": "",
"legacy_lib_list": []
},
"sheets": [],
"text_variables": {}
}