modified kikit script
@@ -20,7 +20,7 @@
|
|||||||
"footprints": true,
|
"footprints": true,
|
||||||
"graphics": true,
|
"graphics": true,
|
||||||
"keepouts": true,
|
"keepouts": true,
|
||||||
"lockedItems": false,
|
"lockedItems": true,
|
||||||
"otherItems": true,
|
"otherItems": true,
|
||||||
"pads": true,
|
"pads": true,
|
||||||
"text": true,
|
"text": true,
|
||||||
@@ -40,6 +40,7 @@
|
|||||||
"footprint_references",
|
"footprint_references",
|
||||||
"tracks",
|
"tracks",
|
||||||
"drc_errors",
|
"drc_errors",
|
||||||
|
"drawing_sheet",
|
||||||
"bitmaps",
|
"bitmaps",
|
||||||
"pads",
|
"pads",
|
||||||
"zones",
|
"zones",
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 278 KiB After Width: | Height: | Size: 1.7 MiB |
@@ -1,24 +1,306 @@
|
|||||||
## Panelize the board
|
# Install kikit
|
||||||
|
|
||||||
Install `kikit`:
|
Install `kikit`:
|
||||||
```bash
|
```bash
|
||||||
pipx install --system-site-packages kikit
|
pipx install --system-site-packages kikit
|
||||||
```
|
```
|
||||||
|
|
||||||
Panelize a finished PCB:
|

|
||||||
```bash
|
|
||||||
mkdir -p panel
|
|
||||||
|
|
||||||
|
|
||||||
|
# KiKit Fixture Post-Processor
|
||||||
|
|
||||||
|
Post-processing script for KiKit panelized PCBs that places any generated panel
|
||||||
|
inside a fixed CNC fixture coordinate system.
|
||||||
|
|
||||||
|
The script:
|
||||||
|
|
||||||
|
- Centres the finished panel inside a predefined fixture opening
|
||||||
|
- Adds mechanical alignment pin holes
|
||||||
|
- Draws fixture reference geometry
|
||||||
|
- Moves the complete design so the fixture origin is always at `(0, 0)`
|
||||||
|
|
||||||
|
The resulting output is intended for repeatable CNC manufacturing workflows
|
||||||
|
where drilling, routing, and UV exposure all share the same physical fixture
|
||||||
|
and machine datum.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Fixture Geometry
|
||||||
|
|
||||||
|
## Outer Fixture Frame
|
||||||
|
|
||||||
|
| Parameter | Value |
|
||||||
|
|---|---|
|
||||||
|
| Width | 200.0 mm |
|
||||||
|
| Height | 130.0 mm |
|
||||||
|
|
||||||
|
## Inner Fixture Opening
|
||||||
|
|
||||||
|
| Parameter | Value |
|
||||||
|
|---|---|
|
||||||
|
| Width | 153.4 mm |
|
||||||
|
| Height | 87.0 mm |
|
||||||
|
|
||||||
|
The inner opening defines the usable panel area.
|
||||||
|
|
||||||
|
The region between the outer frame and inner opening forms the fixture rails.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Alignment Pins
|
||||||
|
|
||||||
|
The script inserts four non-plated alignment holes:
|
||||||
|
|
||||||
|
- Diameter: `Ø 3.172 mm NPTH`
|
||||||
|
- Naming: `PIN1`–`PIN4`
|
||||||
|
- Positioning: fully user-defined absolute coordinates
|
||||||
|
|
||||||
|
This allows:
|
||||||
|
|
||||||
|
- deterministic CNC coordinates
|
||||||
|
- compatibility with existing jigs
|
||||||
|
- custom asymmetric fixtures
|
||||||
|
- reuse across multiple panel layouts
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Coordinate System
|
||||||
|
|
||||||
|
After processing:
|
||||||
|
|
||||||
|
- The fixture outer top-left corner is positioned at `(0, 0)`
|
||||||
|
- All PCB data is translated accordingly
|
||||||
|
- Every generated panel shares the same global coordinate system
|
||||||
|
|
||||||
|
This creates deterministic CAM output suitable for automated tooling and
|
||||||
|
repeatable fixture-based manufacturing.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Usage
|
||||||
|
|
||||||
|
Place `fixture_postprocess.py` next to the source `.kicad_pcb` file and run KiKit:
|
||||||
|
|
||||||
|
```bash
|
||||||
kikit panelize \
|
kikit panelize \
|
||||||
--layout 'type: grid; rows: 1; cols: 2; space: 0mm' \
|
-p myPreset.json \
|
||||||
--tabs 'type: fixed; width: 48mm; vcount: 1' \
|
../Flow_Controller.kicad_pcb \
|
||||||
--cuts 'type: mousebites; drill: 1mm; spacing: 1.5mm' \
|
panel/Flow_Controller_Panel.kicad_pcb
|
||||||
--post 'origin: tl; script: move_to_origin.py' \
|
|
||||||
--framing 'type: none' \
|
|
||||||
../Flow_Controller.kicad_pcb panel/Flow_Controller_Panel.kicad_pcb
|
|
||||||
```
|
```
|
||||||
|
|
||||||

|
---
|
||||||
|
|
||||||
|
# Panel Layout Parameters
|
||||||
|
|
||||||
|
## Grid Layout
|
||||||
|
|
||||||
|
Adjust the panel dimensions using:
|
||||||
|
|
||||||
|
```text
|
||||||
|
rows: <n>
|
||||||
|
cols: <n>
|
||||||
|
```
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
- `1×1`
|
||||||
|
- `1×2`
|
||||||
|
- `2×2`
|
||||||
|
|
||||||
|
The script automatically recalculates centering offsets for the resulting panel size.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Tool Diameter Compensation
|
||||||
|
|
||||||
|
The following values should match the routing tool diameter:
|
||||||
|
|
||||||
|
```text
|
||||||
|
space
|
||||||
|
slotwidth
|
||||||
|
```
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```text
|
||||||
|
space: 2.1mm
|
||||||
|
slotwidth: 2.1mm
|
||||||
|
```
|
||||||
|
|
||||||
|
This is typically equal to the outline routing bit diameter.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Processing Pipeline
|
||||||
|
|
||||||
|
The post-processing script performs the following operations:
|
||||||
|
|
||||||
|
1. Reads the fully panelized KiKit output
|
||||||
|
2. Calculates the panel bounding box
|
||||||
|
3. Calculates the offset required to centre the panel inside the fixture opening
|
||||||
|
4. Translates the complete board dataset:
|
||||||
|
- footprints
|
||||||
|
- tracks
|
||||||
|
- vias
|
||||||
|
- zones
|
||||||
|
- drawings
|
||||||
|
- board outlines
|
||||||
|
- substrate geometry
|
||||||
|
- locked items
|
||||||
|
5. Places four NPTH alignment pin footprints
|
||||||
|
6. Draws fixture reference rectangles on the `User.1` layer
|
||||||
|
7. Repositions the design so the fixture outer top-left corner equals `(0, 0)`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Fixture Visualization
|
||||||
|
|
||||||
|
The script draws two rectangles on the `User.1` layer:
|
||||||
|
|
||||||
|
- Outer fixture boundary
|
||||||
|
- Inner fixture opening
|
||||||
|
|
||||||
|
These graphics:
|
||||||
|
|
||||||
|
- are visible in KiCad
|
||||||
|
- help verify positioning visually
|
||||||
|
- are NOT placed on `Edge.Cuts`
|
||||||
|
- are NOT exported into manufacturing Gerbers or NC drill files
|
||||||
|
|
||||||
|
They exist purely as fixture reference geometry.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# CNC Workflow
|
||||||
|
|
||||||
|
| Operation | File | Purpose |
|
||||||
|
|---|---|---|
|
||||||
|
| Drilling | Excellon `.drl` | PCB holes + fixture alignment pins |
|
||||||
|
| Routing | `Edge.Cuts` Gerber | Board outlines and mousebite tabs |
|
||||||
|
| UV exposure | Copper Gerbers | Soldermask/alignment registration |
|
||||||
|
|
||||||
|
Because all outputs share:
|
||||||
|
|
||||||
|
- identical `(0,0)` origin
|
||||||
|
- identical alignment pin locations
|
||||||
|
- identical fixture geometry
|
||||||
|
|
||||||
|
the PCB can remain mounted in the same physical fixture for the complete process.
|
||||||
|
|
||||||
|
No re-alignment or re-fixturing is required between operations.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Alignment Pins
|
||||||
|
|
||||||
|
The script inserts four non-plated alignment holes:
|
||||||
|
|
||||||
|
- Diameter: `Ø 3.172 mm NPTH`
|
||||||
|
- Naming: `PIN1`–`PIN4`
|
||||||
|
|
||||||
|
Users may override any coordinate manually.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Default Pin Placement Calculation
|
||||||
|
|
||||||
|
For the default fixture dimensions:
|
||||||
|
|
||||||
|
```python
|
||||||
|
OUTER_W_MM = 200.0
|
||||||
|
OUTER_H_MM = 130.0
|
||||||
|
|
||||||
|
INNER_W_MM = 153.4
|
||||||
|
INNER_H_MM = 87.0
|
||||||
|
```
|
||||||
|
|
||||||
|
the resulting suggested coordinates are:
|
||||||
|
|
||||||
|
| Pin | X (mm) | Y (mm) |
|
||||||
|
|---|---|---|
|
||||||
|
| PIN1 (top) | 100.0 | 10.75 |
|
||||||
|
| PIN2 (right) | 188.35 | 65.0 |
|
||||||
|
| PIN3 (bottom) | 100.0 | 119.25 |
|
||||||
|
| PIN4 (left) | 11.65 | 65.0 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Fixture Configuration
|
||||||
|
|
||||||
|
Edit the constants at the top of `fixture_postprocess.py`:
|
||||||
|
|
||||||
|
```python
|
||||||
|
# ============================================================
|
||||||
|
# Fixture geometry
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
OUTER_W_MM = 200.0
|
||||||
|
OUTER_H_MM = 130.0
|
||||||
|
|
||||||
|
INNER_W_MM = 153.4
|
||||||
|
INNER_H_MM = 87.0
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
# Alignment pins
|
||||||
|
# Absolute fixture-space coordinates in millimetres
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
PIN_DIAMETER_MM = 3.172
|
||||||
|
|
||||||
|
# Suggested defaults:
|
||||||
|
# top = centered in top rail
|
||||||
|
# right = centered in right rail
|
||||||
|
# bottom = centered in bottom rail
|
||||||
|
# left = centered in left rail
|
||||||
|
|
||||||
|
PIN1_X_MM = 100.0
|
||||||
|
PIN1_Y_MM = 10.75
|
||||||
|
|
||||||
|
PIN2_X_MM = 188.35
|
||||||
|
PIN2_Y_MM = 65.0
|
||||||
|
|
||||||
|
PIN3_X_MM = 100.0
|
||||||
|
PIN3_Y_MM = 119.25
|
||||||
|
|
||||||
|
PIN4_X_MM = 11.65
|
||||||
|
PIN4_Y_MM = 65.0
|
||||||
|
```
|
||||||
|
|
||||||
|
These values may be adjusted freely without changing the placement logic.
|
||||||
|
---
|
||||||
|
|
||||||
|
# Design Constraints
|
||||||
|
|
||||||
|
The generated panel must fit completely inside the inner fixture opening.
|
||||||
|
|
||||||
|
If the panel exceeds the available space, the script emits:
|
||||||
|
|
||||||
|
```text
|
||||||
|
WARNING: panel … is larger than the inner opening
|
||||||
|
```
|
||||||
|
|
||||||
|
Possible solutions:
|
||||||
|
|
||||||
|
- reduce `rows`
|
||||||
|
- reduce `cols`
|
||||||
|
- reduce KiKit frame width
|
||||||
|
- reduce spacing
|
||||||
|
- use a smaller PCB design
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Intended Use Case
|
||||||
|
|
||||||
|
This workflow is intended for:
|
||||||
|
|
||||||
|
- CNC isolation milling
|
||||||
|
- UV mask alignment systems
|
||||||
|
- repeatable prototyping fixtures
|
||||||
|
- hybrid PCB manufacturing workflows
|
||||||
|
- automated or semi-automated PCB handling
|
||||||
|
|
||||||
|
The primary design goal is deterministic panel placement independent of PCB size.
|
||||||
|
|
||||||
## Exporting gcode files from KiCad
|
## Exporting gcode files from KiCad
|
||||||
|
|
||||||
|
|||||||
BIN
scripts/__pycache__/fixture_postprocess.cpython-312.pyc
Normal file
BIN
scripts/__pycache__/tooling_plugin.cpython-312.pyc
Normal file
232
scripts/fixture_postprocess.py
Normal file
@@ -0,0 +1,232 @@
|
|||||||
|
import math
|
||||||
|
import pcbnew
|
||||||
|
from shapely.affinity import translate
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
# Fixture geometry
|
||||||
|
# ============================================================
|
||||||
|
OUTER_W_MM = 200.0
|
||||||
|
OUTER_H_MM = 130.0
|
||||||
|
|
||||||
|
INNER_W_MM = 153.4
|
||||||
|
INNER_H_MM = 87.0
|
||||||
|
|
||||||
|
INNER_X_MM = (OUTER_W_MM - INNER_W_MM) / 2 # 23.3
|
||||||
|
INNER_Y_MM = (OUTER_H_MM - INNER_H_MM) / 2 # 21.5
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
# Alignment pins
|
||||||
|
# Absolute fixture-space coordinates in millimetres
|
||||||
|
# ============================================================
|
||||||
|
PIN_DIAMETER_MM = 3.172
|
||||||
|
|
||||||
|
# Suggested defaults:
|
||||||
|
# top = centered in top rail
|
||||||
|
# right = centered in right rail
|
||||||
|
# bottom = centered in bottom rail
|
||||||
|
# left = centered in left rail
|
||||||
|
|
||||||
|
PIN1_X_MM = 100.0
|
||||||
|
PIN1_Y_MM = 10.75
|
||||||
|
|
||||||
|
PIN2_X_MM = 188.35
|
||||||
|
PIN2_Y_MM = 65.0
|
||||||
|
|
||||||
|
PIN3_X_MM = 100.0
|
||||||
|
PIN3_Y_MM = 119.25
|
||||||
|
|
||||||
|
PIN4_X_MM = 11.65
|
||||||
|
PIN4_Y_MM = 65.0
|
||||||
|
|
||||||
|
# KiCad internal unit: 1 mm = 1 000 000 nm
|
||||||
|
MM = 1_000_000
|
||||||
|
|
||||||
|
|
||||||
|
def mm(v: float) -> int:
|
||||||
|
"""Convert mm float to KiCad internal units (nm)."""
|
||||||
|
return int(round(v * MM))
|
||||||
|
|
||||||
|
|
||||||
|
def _move_all(panel, dx_nm: int, dy_nm: int) -> None:
|
||||||
|
"""Translate every object on the board by (dx_nm, dy_nm)."""
|
||||||
|
vec = pcbnew.VECTOR2I(dx_nm, dy_nm)
|
||||||
|
for fp in panel.board.GetFootprints():
|
||||||
|
fp.Move(vec)
|
||||||
|
for track in panel.board.GetTracks():
|
||||||
|
track.Move(vec)
|
||||||
|
for drawing in panel.board.GetDrawings():
|
||||||
|
drawing.Move(vec)
|
||||||
|
for zone in panel.board.Zones():
|
||||||
|
zone.Move(vec)
|
||||||
|
# Keep the Shapely substrate in sync
|
||||||
|
panel.boardSubstrate.substrates = translate(
|
||||||
|
panel.boardSubstrate.substrates,
|
||||||
|
xoff=dx_nm,
|
||||||
|
yoff=dy_nm,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def _edge_cuts_bbox(panel):
|
||||||
|
"""Return (minx, miny, maxx, maxy) in nm from the Shapely substrate."""
|
||||||
|
return panel.boardSubstrate.substrates.bounds # already in nm
|
||||||
|
|
||||||
|
|
||||||
|
def _draw_rect(board, layer, x0_nm, y0_nm, x1_nm, y1_nm, width_nm=None):
|
||||||
|
"""Draw an axis-aligned rectangle on *layer* using four PCB_SHAPE lines."""
|
||||||
|
if width_nm is None:
|
||||||
|
width_nm = mm(0.1) # 0.1 mm line width – thin reference line
|
||||||
|
corners = [
|
||||||
|
(x0_nm, y0_nm), (x1_nm, y0_nm),
|
||||||
|
(x1_nm, y1_nm), (x0_nm, y1_nm),
|
||||||
|
]
|
||||||
|
for i in range(4):
|
||||||
|
seg = pcbnew.PCB_SHAPE(board)
|
||||||
|
seg.SetShape(pcbnew.SHAPE_T_SEGMENT)
|
||||||
|
seg.SetLayer(layer)
|
||||||
|
seg.SetWidth(width_nm)
|
||||||
|
x_a, y_a = corners[i]
|
||||||
|
x_b, y_b = corners[(i + 1) % 4]
|
||||||
|
seg.SetStart(pcbnew.VECTOR2I(x_a, y_a))
|
||||||
|
seg.SetEnd(pcbnew.VECTOR2I(x_b, y_b))
|
||||||
|
board.Add(seg)
|
||||||
|
|
||||||
|
|
||||||
|
def _draw_circle(board, layer, cx_nm, cy_nm, r_nm, width_nm=None):
|
||||||
|
"""Draw a circle on *layer*."""
|
||||||
|
if width_nm is None:
|
||||||
|
width_nm = mm(0.1)
|
||||||
|
circ = pcbnew.PCB_SHAPE(board)
|
||||||
|
circ.SetShape(pcbnew.SHAPE_T_CIRCLE)
|
||||||
|
circ.SetLayer(layer)
|
||||||
|
circ.SetWidth(width_nm)
|
||||||
|
circ.SetCenter(pcbnew.VECTOR2I(cx_nm, cy_nm))
|
||||||
|
circ.SetEnd(pcbnew.VECTOR2I(cx_nm + r_nm, cy_nm))
|
||||||
|
board.Add(circ)
|
||||||
|
|
||||||
|
|
||||||
|
def _add_pin_footprint(board, x_nm, y_nm, diameter_mm, index):
|
||||||
|
"""
|
||||||
|
Add a non-plated through-hole (NPTH) mounting hole footprint at (x_nm, y_nm).
|
||||||
|
|
||||||
|
We create a minimal footprint with a single NPTH pad so that:
|
||||||
|
• The drill appears in the Excellon output → used for physical alignment pins.
|
||||||
|
• No copper ring is added.
|
||||||
|
"""
|
||||||
|
fp = pcbnew.FOOTPRINT(board)
|
||||||
|
fp.SetReference(f"PIN{index}")
|
||||||
|
fp.Reference().SetVisible(False)
|
||||||
|
fp.SetValue(f"Ø{diameter_mm:.3f}mm NPTH")
|
||||||
|
fp.Value().SetVisible(False)
|
||||||
|
fp.SetPosition(pcbnew.VECTOR2I(x_nm, y_nm))
|
||||||
|
|
||||||
|
pad = pcbnew.PAD(fp)
|
||||||
|
pad.SetAttribute(pcbnew.PAD_ATTRIB_NPTH)
|
||||||
|
pad.SetShape(pcbnew.PAD_SHAPE_CIRCLE)
|
||||||
|
pad.SetDrillShape(pcbnew.PAD_DRILL_SHAPE_CIRCLE)
|
||||||
|
|
||||||
|
d_nm = mm(diameter_mm)
|
||||||
|
pad.SetSize(pcbnew.VECTOR2I(d_nm, d_nm))
|
||||||
|
pad.SetDrillSize(pcbnew.VECTOR2I(d_nm, d_nm))
|
||||||
|
pad.SetLayerSet(pcbnew.LSET.AllCuMask()) # NPTH pads span all Cu layers
|
||||||
|
pad.SetNumber("")
|
||||||
|
|
||||||
|
fp.Add(pad)
|
||||||
|
board.Add(fp)
|
||||||
|
|
||||||
|
# Also draw a circle on Dwgs_User so the pin is visible even without
|
||||||
|
# the fab/courtyard layers being turned on.
|
||||||
|
_draw_circle(
|
||||||
|
board,
|
||||||
|
pcbnew.Dwgs_User,
|
||||||
|
x_nm, y_nm,
|
||||||
|
mm(diameter_mm / 2),
|
||||||
|
mm(0.1),
|
||||||
|
)
|
||||||
|
|
||||||
|
return fp
|
||||||
|
|
||||||
|
|
||||||
|
# ──────────────────────────────────────────────────────────────
|
||||||
|
# MAIN ENTRY POINT
|
||||||
|
# ──────────────────────────────────────────────────────────────
|
||||||
|
def kikitPostprocess(panel, args):
|
||||||
|
board = panel.board
|
||||||
|
|
||||||
|
# ── Step 1: get current Edge.Cuts bounding box ────────────────────────────
|
||||||
|
bounds = _edge_cuts_bbox(panel) # (minx, miny, maxx, maxy) in nm
|
||||||
|
panel_w_nm = bounds[2] - bounds[0]
|
||||||
|
panel_h_nm = bounds[3] - bounds[1]
|
||||||
|
|
||||||
|
panel_w_mm = panel_w_nm / MM
|
||||||
|
panel_h_mm = panel_h_nm / MM
|
||||||
|
|
||||||
|
print(f"[fixture] Panel size: {panel_w_mm:.3f} x {panel_h_mm:.3f} mm")
|
||||||
|
|
||||||
|
# ── Step 2: compute where panel top-left should land ─────────────────────
|
||||||
|
# We want the panel centred inside the inner opening of the fixture.
|
||||||
|
# Inner opening: top-left is at (INNER_X_MM, INNER_Y_MM) relative to
|
||||||
|
# the fixture outer top-left.
|
||||||
|
panel_target_x_mm = INNER_X_MM + (INNER_W_MM - panel_w_mm) / 2
|
||||||
|
panel_target_y_mm = INNER_Y_MM + (INNER_H_MM - panel_h_mm) / 2
|
||||||
|
|
||||||
|
print(f"[fixture] Panel will be placed at ({panel_target_x_mm:.3f}, {panel_target_y_mm:.3f}) mm")
|
||||||
|
|
||||||
|
# Warn if the panel is larger than the inner opening (it will still be
|
||||||
|
# centred but will overlap the frame rails).
|
||||||
|
if panel_w_mm > INNER_W_MM or panel_h_mm > INNER_H_MM:
|
||||||
|
print(
|
||||||
|
f"[fixture] WARNING: panel ({panel_w_mm:.1f}×{panel_h_mm:.1f} mm) "
|
||||||
|
f"is larger than the inner opening ({INNER_W_MM}×{INNER_H_MM} mm)!"
|
||||||
|
)
|
||||||
|
|
||||||
|
# ── Step 3: move everything so that the panel lands at the target ─────────
|
||||||
|
# Current panel TL is at (bounds[0], bounds[1]).
|
||||||
|
# We need to shift by (target - current).
|
||||||
|
dx_nm = mm(panel_target_x_mm) - bounds[0]
|
||||||
|
dy_nm = mm(panel_target_y_mm) - bounds[1]
|
||||||
|
_move_all(panel, int(dx_nm), int(dy_nm))
|
||||||
|
|
||||||
|
# ── Step 4: verify final position ────────────────────────────────────────
|
||||||
|
new_bounds = _edge_cuts_bbox(panel)
|
||||||
|
print(
|
||||||
|
f"[fixture] Panel TL after move: "
|
||||||
|
f"({new_bounds[0]/MM:.3f}, {new_bounds[1]/MM:.3f}) mm"
|
||||||
|
)
|
||||||
|
|
||||||
|
# ── Step 5: draw fixture frame on Dwgs_User ───────────────────────────
|
||||||
|
# Outer rectangle: (0,0) → (200, 130) mm
|
||||||
|
_draw_rect(
|
||||||
|
board, pcbnew.Dwgs_User,
|
||||||
|
mm(0), mm(0),
|
||||||
|
mm(OUTER_W_MM), mm(OUTER_H_MM),
|
||||||
|
mm(0.15),
|
||||||
|
)
|
||||||
|
# Inner rectangle: (23.3, 21.5) → (176.7, 108.5) mm
|
||||||
|
_draw_rect(
|
||||||
|
board, pcbnew.Dwgs_User,
|
||||||
|
mm(INNER_X_MM), mm(INNER_Y_MM),
|
||||||
|
mm(INNER_X_MM + INNER_W_MM), mm(INNER_Y_MM + INNER_H_MM),
|
||||||
|
mm(0.15),
|
||||||
|
)
|
||||||
|
|
||||||
|
print("[fixture] Fixture frame drawn on Dwgs_User layer.")
|
||||||
|
|
||||||
|
# ── Step 6: add alignment pin footprints ──────────────────────────────────
|
||||||
|
# Place pins at the absolute coordinates defined in the configuration block above
|
||||||
|
pin_positions_mm = [
|
||||||
|
(PIN1_X_MM, PIN1_Y_MM, "PIN1 (Top)"),
|
||||||
|
(PIN2_X_MM, PIN2_Y_MM, "PIN2 (Right)"),
|
||||||
|
(PIN3_X_MM, PIN3_Y_MM, "PIN3 (Bottom)"),
|
||||||
|
(PIN4_X_MM, PIN4_Y_MM, "PIN4 (Left)"),
|
||||||
|
]
|
||||||
|
|
||||||
|
for idx, (px_mm, py_mm, label) in enumerate(pin_positions_mm, start=1):
|
||||||
|
_add_pin_footprint(board, mm(px_mm), mm(py_mm), PIN_DIAMETER_MM, idx)
|
||||||
|
print(
|
||||||
|
f"[fixture] {label} placed at "
|
||||||
|
f"({px_mm:.3f}, {py_mm:.3f}) mm"
|
||||||
|
)
|
||||||
|
|
||||||
|
print("[fixture] Post-processing complete.")
|
||||||
15185
scripts/gcode/back.ngc
15
scripts/gcode/contentions_back.svg
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||||
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg width="418.014" height="221.1" viewBox="0 0 8708.63 4606.25" version="1.1"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<polyline points="1970.1,4028.53 1970.01,4028.52 1969.62,4028.52 1969.55,4028.53" style="stroke:rgb(255,0,0);stroke-width:3.937008;fill:none;stroke-opacity:0.5;stroke-linecap:round;stroke-linejoin:round;;fill:none"/>
|
||||||
|
<polyline points="1970.1,4028.53 1970.01,4028.52 1969.62,4028.52 1969.55,4028.53" style="stroke:rgb(0,0,0);stroke-width:1px;fill:none;stroke-opacity:1;stroke-linecap:round;stroke-linejoin:round;;fill:none"/>
|
||||||
|
<polyline points="1969.52,4028.53 1969.62,4028.52 1970.01,4028.52 1970.12,4028.53" style="stroke:rgb(255,0,0);stroke-width:3.937008;fill:none;stroke-opacity:0.5;stroke-linecap:round;stroke-linejoin:round;;fill:none"/>
|
||||||
|
<polyline points="1969.52,4028.53 1969.62,4028.52 1970.01,4028.52 1970.12,4028.53" style="stroke:rgb(0,0,0);stroke-width:1px;fill:none;stroke-opacity:1;stroke-linecap:round;stroke-linejoin:round;;fill:none"/>
|
||||||
|
<polyline points="6072.67,4028.57 6072.5,4028.56 6072.37,4028.54 6071.98,4028.53 6071.88,4028.53" style="stroke:rgb(255,0,0);stroke-width:3.937008;fill:none;stroke-opacity:0.5;stroke-linecap:round;stroke-linejoin:round;;fill:none"/>
|
||||||
|
<polyline points="6072.67,4028.57 6072.5,4028.56 6072.37,4028.54 6071.98,4028.53 6071.88,4028.53" style="stroke:rgb(0,0,0);stroke-width:1px;fill:none;stroke-opacity:1;stroke-linecap:round;stroke-linejoin:round;;fill:none"/>
|
||||||
|
<polyline points="6071.86,4028.54 6071.98,4028.53 6072.37,4028.54 6072.5,4028.56 6072.7,4028.57" style="stroke:rgb(255,0,0);stroke-width:3.937008;fill:none;stroke-opacity:0.5;stroke-linecap:round;stroke-linejoin:round;;fill:none"/>
|
||||||
|
<polyline points="6071.86,4028.54 6071.98,4028.53 6072.37,4028.54 6072.5,4028.56 6072.7,4028.57" style="stroke:rgb(0,0,0);stroke-width:1px;fill:none;stroke-opacity:1;stroke-linecap:round;stroke-linejoin:round;;fill:none"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.0 KiB |
11
scripts/gcode/contentions_back_final.svg
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||||
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg width="418.014" height="221.1" viewBox="0 0 8708.63 4606.25" version="1.1"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<polyline points="1969.56,4028.53 1970.06,4028.53" style="stroke:rgb(255,0,0);stroke-width:3.937008;fill:none;stroke-opacity:0.5;stroke-linecap:round;stroke-linejoin:round;;fill:none"/>
|
||||||
|
<polyline points="1969.56,4028.53 1970.06,4028.53" style="stroke:rgb(0,0,0);stroke-width:1px;fill:none;stroke-opacity:1;stroke-linecap:round;stroke-linejoin:round;;fill:none"/>
|
||||||
|
<polyline points="1970.06,4028.53 1969.56,4028.53" style="stroke:rgb(255,0,0);stroke-width:3.937008;fill:none;stroke-opacity:0.5;stroke-linecap:round;stroke-linejoin:round;;fill:none"/>
|
||||||
|
<polyline points="1970.06,4028.53 1969.56,4028.53" style="stroke:rgb(0,0,0);stroke-width:1px;fill:none;stroke-opacity:1;stroke-linecap:round;stroke-linejoin:round;;fill:none"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.0 KiB |
@@ -20,235 +20,346 @@ G0 Z2.00000
|
|||||||
G04 P1.00000
|
G04 P1.00000
|
||||||
|
|
||||||
G1 F500.00000
|
G1 F500.00000
|
||||||
G0 X4.60000 Y-4.60000
|
G0 X0.00000 Y-10.75000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X12.15400 Y-6.09600
|
G0 X29.05000 Y-40.20000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X14.69400 Y-6.09600
|
G0 X28.05000 Y-40.20000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X17.23400 Y-6.09600
|
G0 X27.05000 Y-40.20000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X5.45000 Y-13.00000
|
G0 X26.05000 Y-40.20000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X5.45000 Y-15.50000
|
G0 X25.05000 Y-40.20000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X5.45000 Y-18.00000
|
G0 X24.05000 Y-40.20000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X4.60000 Y-45.40000
|
G0 X23.05000 Y-40.20000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X20.00000 Y-44.91800
|
G0 X20.36700 Y-45.14700
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X20.00000 Y-42.41800
|
G0 X14.13000 Y-45.55000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X20.00000 Y-39.91800
|
G0 X11.59000 Y-45.55000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X32.15000 Y-29.42500
|
G0 X9.05000 Y-45.55000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X32.25000 Y-25.67500
|
G0 X4.05000 Y-43.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X42.63400 Y-16.12000
|
G0 X-4.05000 Y-43.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X42.63400 Y-18.66000
|
G0 X-8.84800 Y-45.17900
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X42.63400 Y-21.20000
|
G0 X-8.41600 Y-56.12000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X42.63400 Y-23.74000
|
G0 X-8.41600 Y-58.66000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X42.63400 Y-26.28000
|
G0 X-8.41600 Y-61.20000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X42.63400 Y-28.82000
|
G0 X-8.41600 Y-63.74000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X42.63400 Y-31.36000
|
G0 X-8.41600 Y-66.28000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X42.63400 Y-33.90000
|
G0 X-8.41600 Y-68.82000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X45.40000 Y-45.40000
|
G0 X-8.41600 Y-71.36000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-48.00000
|
G0 X-1.25000 Y-62.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-46.46700
|
G0 X-1.25000 Y-63.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X54.60000 Y-45.40000
|
G0 X-1.25000 Y-64.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-44.93300
|
G0 X-1.25000 Y-65.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-43.40000
|
G0 X-1.25000 Y-66.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-41.86700
|
G0 X-1.25000 Y-67.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-40.33300
|
G0 X-8.41600 Y-73.90000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-38.80000
|
G0 X-18.90000 Y-69.42500
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-37.26700
|
G0 X-18.80000 Y-65.67500
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-35.73300
|
G0 X-31.73300 Y-45.14700
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-34.20000
|
G0 X-23.05000 Y-40.20000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-32.66700
|
G0 X-24.05000 Y-40.20000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-31.13300
|
G0 X-25.05000 Y-40.20000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-29.60000
|
G0 X-26.05000 Y-40.20000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-28.06700
|
G0 X-27.05000 Y-40.20000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-26.53300
|
G0 X-28.05000 Y-40.20000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-25.00000
|
G0 X-29.05000 Y-40.20000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-23.46700
|
G0 X-37.97000 Y-45.55000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-21.93300
|
G0 X-40.51000 Y-45.55000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-20.40000
|
G0 X-45.60000 Y-53.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-18.86700
|
G0 X-45.60000 Y-55.50000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-17.33300
|
G0 X-43.05000 Y-45.55000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-15.80000
|
G0 X-48.05000 Y-43.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-14.26700
|
G0 X-88.35000 Y-65.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-12.73300
|
G0 X-50.85000 Y-62.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-11.20000
|
G0 X-45.60000 Y-58.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-9.66700
|
G0 X-50.85000 Y-63.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-8.13300
|
G0 X-50.85000 Y-64.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X45.40000 Y-4.60000
|
G0 X-50.85000 Y-65.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-6.60000
|
G0 X-50.85000 Y-66.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-5.06700
|
G0 X-50.85000 Y-67.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-3.53300
|
G0 X-50.85000 Y-68.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X50.00000 Y-2.00000
|
G0 X-45.65000 Y-73.85000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X54.60000 Y-4.60000
|
G0 X-45.65000 Y-76.35000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X62.15400 Y-6.09600
|
G0 X-45.65000 Y-78.85000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X64.69400 Y-6.09600
|
G0 X-48.05000 Y-87.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X67.23400 Y-6.09600
|
G0 X-31.78400 Y-84.82200
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X55.45000 Y-13.00000
|
G0 X-29.05000 Y-89.80000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X55.45000 Y-15.50000
|
G0 X-28.05000 Y-89.80000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X55.45000 Y-18.00000
|
G0 X-27.05000 Y-89.80000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X70.00000 Y-39.91800
|
G0 X-26.05000 Y-89.80000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X70.00000 Y-42.41800
|
G0 X-25.05000 Y-89.80000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X70.00000 Y-44.91800
|
G0 X-24.05000 Y-89.80000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X95.40000 Y-45.40000
|
G0 X-23.05000 Y-89.80000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X92.63400 Y-33.90000
|
G0 X-8.92400 Y-84.84700
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X92.63400 Y-31.36000
|
G0 X-4.05000 Y-87.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X92.63400 Y-28.82000
|
G0 X4.05000 Y-87.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X92.63400 Y-26.28000
|
G0 X6.45000 Y-78.85000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X82.25000 Y-25.67500
|
G0 X6.45000 Y-76.35000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X82.15000 Y-29.42500
|
G0 X6.45000 Y-73.85000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X92.63400 Y-23.74000
|
G0 X1.25000 Y-68.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X92.63400 Y-21.20000
|
G0 X-1.25000 Y-68.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X92.63400 Y-18.66000
|
G0 X1.25000 Y-67.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X92.63400 Y-16.12000
|
G0 X1.25000 Y-66.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
G0 X95.40000 Y-4.60000
|
G0 X1.25000 Y-65.00000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X1.25000 Y-64.00000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X1.25000 Y-63.00000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X1.25000 Y-62.00000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X6.50000 Y-58.00000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X6.50000 Y-55.50000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X6.50000 Y-53.00000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X33.30000 Y-65.67500
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X33.20000 Y-69.42500
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X20.31600 Y-84.82200
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X23.05000 Y-89.80000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X24.05000 Y-89.80000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X25.05000 Y-89.80000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X26.05000 Y-89.80000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X27.05000 Y-89.80000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X0.00000 Y-119.25000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X28.05000 Y-89.80000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X29.05000 Y-89.80000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X43.17600 Y-84.84700
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X48.05000 Y-87.00000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X43.68400 Y-73.90000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X43.68400 Y-71.36000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X43.68400 Y-68.82000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X43.68400 Y-66.28000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X43.68400 Y-63.74000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X50.85000 Y-68.00000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X50.85000 Y-67.00000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X50.85000 Y-66.00000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X50.85000 Y-65.00000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X50.85000 Y-64.00000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X50.85000 Y-63.00000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X50.85000 Y-62.00000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X43.68400 Y-61.20000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X43.68400 Y-58.66000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X43.68400 Y-56.12000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X43.25200 Y-45.17900
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X48.05000 Y-43.00000
|
||||||
|
G1 Z-2.20000
|
||||||
|
G1 Z2.00000
|
||||||
|
G0 X88.35000 Y-65.00000
|
||||||
G1 Z-2.20000
|
G1 Z-2.20000
|
||||||
G1 Z2.00000
|
G1 Z2.00000
|
||||||
|
|
||||||
|
|||||||
@@ -1,84 +1,121 @@
|
|||||||
<?xml version="1.0" standalone="no"?>
|
<?xml version="1.0" standalone="no"?>
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
<svg width="394.205" height="205.228" viewBox="0 0 8212.6 4275.59" version="1.1"
|
<svg width="418.014" height="221.1" viewBox="0 0 8708.63 4606.25" version="1.1"
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink">
|
xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
<circle cx="7681.1" cy="531.496" r="37.4016" style=""/>
|
<circle cx="4354.33" cy="-1968.53" r="37.4016" style=""/>
|
||||||
<circle cx="7086.3" cy="649.291" r="37.4016" style=""/>
|
<circle cx="2066.93" cy="350.371" r="37.4016" style=""/>
|
||||||
<circle cx="6886.3" cy="649.291" r="37.4016" style=""/>
|
<circle cx="2145.67" cy="350.371" r="37.4016" style=""/>
|
||||||
<circle cx="6686.3" cy="649.291" r="37.4016" style=""/>
|
<circle cx="2224.41" cy="350.371" r="37.4016" style=""/>
|
||||||
<circle cx="7614.17" cy="1192.91" r="37.4016" style=""/>
|
<circle cx="2303.15" cy="350.371" r="37.4016" style=""/>
|
||||||
<circle cx="7614.17" cy="1389.76" r="37.4016" style=""/>
|
<circle cx="2381.89" cy="350.371" r="37.4016" style=""/>
|
||||||
<circle cx="7614.17" cy="1586.61" r="37.4016" style=""/>
|
<circle cx="2460.63" cy="350.371" r="37.4016" style=""/>
|
||||||
<circle cx="7681.1" cy="3744.09" r="37.4016" style=""/>
|
<circle cx="2539.37" cy="350.371" r="37.4016" style=""/>
|
||||||
<circle cx="6468.5" cy="3706.14" r="37.4016" style=""/>
|
<circle cx="2750.63" cy="739.899" r="37.4016" style=""/>
|
||||||
<circle cx="6468.5" cy="3509.29" r="37.4016" style=""/>
|
<circle cx="3241.73" cy="771.631" r="37.4016" style=""/>
|
||||||
<circle cx="6468.5" cy="3312.44" r="37.4016" style=""/>
|
<circle cx="3441.73" cy="771.631" r="37.4016" style=""/>
|
||||||
<circle cx="5511.81" cy="2486.22" r="37.4016" style=""/>
|
<circle cx="3641.73" cy="771.631" r="37.4016" style=""/>
|
||||||
<circle cx="5503.94" cy="2190.94" r="37.4016" style=""/>
|
<circle cx="4035.43" cy="570.844" r="37.4016" style=""/>
|
||||||
<circle cx="4686.3" cy="1438.58" r="37.4016" style=""/>
|
<circle cx="4673.23" cy="570.844" r="37.4016" style=""/>
|
||||||
<circle cx="4686.3" cy="1638.58" r="37.4016" style=""/>
|
<circle cx="5051.02" cy="742.419" r="37.4016" style=""/>
|
||||||
<circle cx="4686.3" cy="1838.58" r="37.4016" style=""/>
|
<circle cx="5017.01" cy="1603.91" r="37.4016" style=""/>
|
||||||
<circle cx="4686.3" cy="2038.58" r="37.4016" style=""/>
|
<circle cx="5017.01" cy="1803.91" r="37.4016" style=""/>
|
||||||
<circle cx="4686.3" cy="2238.58" r="37.4016" style=""/>
|
<circle cx="5017.01" cy="2003.91" r="37.4016" style=""/>
|
||||||
<circle cx="4686.3" cy="2438.58" r="37.4016" style=""/>
|
<circle cx="5017.01" cy="2203.91" r="37.4016" style=""/>
|
||||||
<circle cx="4686.3" cy="2638.58" r="37.4016" style=""/>
|
<circle cx="5017.01" cy="2403.91" r="37.4016" style=""/>
|
||||||
<circle cx="4686.3" cy="2838.58" r="37.4016" style=""/>
|
<circle cx="5017.01" cy="2603.91" r="37.4016" style=""/>
|
||||||
<circle cx="4468.5" cy="3744.09" r="37.4016" style=""/>
|
<circle cx="5017.01" cy="2803.91" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="3948.82" r="37.4016" style=""/>
|
<circle cx="4452.76" cy="2066.91" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="3828.11" r="37.4016" style=""/>
|
<circle cx="4452.76" cy="2145.65" r="37.4016" style=""/>
|
||||||
<circle cx="3744.09" cy="3744.09" r="37.4016" style=""/>
|
<circle cx="4452.76" cy="2224.39" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="3707.32" r="37.4016" style=""/>
|
<circle cx="4452.76" cy="2303.13" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="3586.61" r="37.4016" style=""/>
|
<circle cx="4452.76" cy="2381.87" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="3465.91" r="37.4016" style=""/>
|
<circle cx="4452.76" cy="2460.61" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="3345.12" r="37.4016" style=""/>
|
<circle cx="5017.01" cy="3003.91" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="3224.41" r="37.4016" style=""/>
|
<circle cx="5842.52" cy="2651.55" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="3103.7" r="37.4016" style=""/>
|
<circle cx="5834.65" cy="2356.28" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="2982.91" r="37.4016" style=""/>
|
<circle cx="6852.99" cy="739.899" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="2862.2" r="37.4016" style=""/>
|
<circle cx="6169.29" cy="350.371" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="2741.5" r="37.4016" style=""/>
|
<circle cx="6248.03" cy="350.371" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="2620.71" r="37.4016" style=""/>
|
<circle cx="6326.77" cy="350.371" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="2500" r="37.4016" style=""/>
|
<circle cx="6405.51" cy="350.371" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="2379.29" r="37.4016" style=""/>
|
<circle cx="6484.25" cy="350.371" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="2258.5" r="37.4016" style=""/>
|
<circle cx="6562.99" cy="350.371" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="2137.8" r="37.4016" style=""/>
|
<circle cx="6641.73" cy="350.371" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="2017.09" r="37.4016" style=""/>
|
<circle cx="7344.09" cy="771.631" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="1896.3" r="37.4016" style=""/>
|
<circle cx="7544.09" cy="771.631" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="1775.59" r="37.4016" style=""/>
|
<circle cx="7944.88" cy="1358.25" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="1654.88" r="37.4016" style=""/>
|
<circle cx="7944.88" cy="1555.1" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="1534.09" r="37.4016" style=""/>
|
<circle cx="7744.09" cy="771.631" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="1413.39" r="37.4016" style=""/>
|
<circle cx="8137.8" cy="570.844" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="1292.68" r="37.4016" style=""/>
|
<circle cx="11311" cy="2303.13" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="1171.89" r="37.4016" style=""/>
|
<circle cx="8358.27" cy="2066.91" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="1051.18" r="37.4016" style=""/>
|
<circle cx="7944.88" cy="1751.95" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="930.472" r="37.4016" style=""/>
|
<circle cx="8358.27" cy="2145.65" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="809.685" r="37.4016" style=""/>
|
<circle cx="8358.27" cy="2224.39" r="37.4016" style=""/>
|
||||||
<circle cx="4468.5" cy="531.496" r="37.4016" style=""/>
|
<circle cx="8358.27" cy="2303.13" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="688.976" r="37.4016" style=""/>
|
<circle cx="8358.27" cy="2381.87" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="568.268" r="37.4016" style=""/>
|
<circle cx="8358.27" cy="2460.61" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="447.48" r="37.4016" style=""/>
|
<circle cx="8358.27" cy="2539.35" r="37.4016" style=""/>
|
||||||
<circle cx="4106.3" cy="326.772" r="37.4016" style=""/>
|
<circle cx="7948.82" cy="2999.98" r="37.4016" style=""/>
|
||||||
<circle cx="3744.09" cy="531.496" r="37.4016" style=""/>
|
<circle cx="7948.82" cy="3196.83" r="37.4016" style=""/>
|
||||||
<circle cx="3149.29" cy="649.291" r="37.4016" style=""/>
|
<circle cx="7948.82" cy="3393.68" r="37.4016" style=""/>
|
||||||
<circle cx="2949.29" cy="649.291" r="37.4016" style=""/>
|
<circle cx="8137.8" cy="4035.41" r="37.4016" style=""/>
|
||||||
<circle cx="2749.29" cy="649.291" r="37.4016" style=""/>
|
<circle cx="6857.01" cy="3863.91" r="37.4016" style=""/>
|
||||||
<circle cx="3677.17" cy="1192.91" r="37.4016" style=""/>
|
<circle cx="6641.73" cy="4255.88" r="37.4016" style=""/>
|
||||||
<circle cx="3677.17" cy="1389.76" r="37.4016" style=""/>
|
<circle cx="6562.99" cy="4255.88" r="37.4016" style=""/>
|
||||||
<circle cx="3677.17" cy="1586.61" r="37.4016" style=""/>
|
<circle cx="6484.25" cy="4255.88" r="37.4016" style=""/>
|
||||||
<circle cx="2531.5" cy="3312.44" r="37.4016" style=""/>
|
<circle cx="6405.51" cy="4255.88" r="37.4016" style=""/>
|
||||||
<circle cx="2531.5" cy="3509.29" r="37.4016" style=""/>
|
<circle cx="6326.77" cy="4255.88" r="37.4016" style=""/>
|
||||||
<circle cx="2531.5" cy="3706.14" r="37.4016" style=""/>
|
<circle cx="6248.03" cy="4255.88" r="37.4016" style=""/>
|
||||||
<circle cx="531.496" cy="3744.09" r="37.4016" style=""/>
|
<circle cx="6169.29" cy="4255.88" r="37.4016" style=""/>
|
||||||
<circle cx="749.291" cy="2838.58" r="37.4016" style=""/>
|
<circle cx="5057.01" cy="3865.88" r="37.4016" style=""/>
|
||||||
<circle cx="749.291" cy="2638.58" r="37.4016" style=""/>
|
<circle cx="4673.23" cy="4035.41" r="37.4016" style=""/>
|
||||||
<circle cx="749.291" cy="2438.58" r="37.4016" style=""/>
|
<circle cx="4035.43" cy="4035.41" r="37.4016" style=""/>
|
||||||
<circle cx="749.291" cy="2238.58" r="37.4016" style=""/>
|
<circle cx="3846.46" cy="3393.68" r="37.4016" style=""/>
|
||||||
<circle cx="1566.93" cy="2190.94" r="37.4016" style=""/>
|
<circle cx="3846.46" cy="3196.83" r="37.4016" style=""/>
|
||||||
<circle cx="1574.8" cy="2486.22" r="37.4016" style=""/>
|
<circle cx="3846.46" cy="2999.98" r="37.4016" style=""/>
|
||||||
<circle cx="749.291" cy="2038.58" r="37.4016" style=""/>
|
<circle cx="4255.91" cy="2539.35" r="37.4016" style=""/>
|
||||||
<circle cx="749.291" cy="1838.58" r="37.4016" style=""/>
|
<circle cx="4452.76" cy="2539.35" r="37.4016" style=""/>
|
||||||
<circle cx="749.291" cy="1638.58" r="37.4016" style=""/>
|
<circle cx="4255.91" cy="2460.61" r="37.4016" style=""/>
|
||||||
<circle cx="749.291" cy="1438.58" r="37.4016" style=""/>
|
<circle cx="4255.91" cy="2381.87" r="37.4016" style=""/>
|
||||||
<circle cx="531.496" cy="531.496" r="37.4016" style=""/>
|
<circle cx="4255.91" cy="2303.13" r="37.4016" style=""/>
|
||||||
|
<circle cx="4255.91" cy="2224.39" r="37.4016" style=""/>
|
||||||
|
<circle cx="4255.91" cy="2145.65" r="37.4016" style=""/>
|
||||||
|
<circle cx="4255.91" cy="2066.91" r="37.4016" style=""/>
|
||||||
|
<circle cx="3842.52" cy="1751.95" r="37.4016" style=""/>
|
||||||
|
<circle cx="3842.52" cy="1555.1" r="37.4016" style=""/>
|
||||||
|
<circle cx="3842.52" cy="1358.25" r="37.4016" style=""/>
|
||||||
|
<circle cx="1732.28" cy="2356.28" r="37.4016" style=""/>
|
||||||
|
<circle cx="1740.16" cy="2651.55" r="37.4016" style=""/>
|
||||||
|
<circle cx="2754.65" cy="3863.91" r="37.4016" style=""/>
|
||||||
|
<circle cx="2539.37" cy="4255.88" r="37.4016" style=""/>
|
||||||
|
<circle cx="2460.63" cy="4255.88" r="37.4016" style=""/>
|
||||||
|
<circle cx="2381.89" cy="4255.88" r="37.4016" style=""/>
|
||||||
|
<circle cx="2303.15" cy="4255.88" r="37.4016" style=""/>
|
||||||
|
<circle cx="2224.41" cy="4255.88" r="37.4016" style=""/>
|
||||||
|
<circle cx="4354.33" cy="6574.78" r="37.4016" style=""/>
|
||||||
|
<circle cx="2145.67" cy="4255.88" r="37.4016" style=""/>
|
||||||
|
<circle cx="2066.93" cy="4255.88" r="37.4016" style=""/>
|
||||||
|
<circle cx="954.646" cy="3865.88" r="37.4016" style=""/>
|
||||||
|
<circle cx="570.866" cy="4035.41" r="37.4016" style=""/>
|
||||||
|
<circle cx="914.646" cy="3003.91" r="37.4016" style=""/>
|
||||||
|
<circle cx="914.646" cy="2803.91" r="37.4016" style=""/>
|
||||||
|
<circle cx="914.646" cy="2603.91" r="37.4016" style=""/>
|
||||||
|
<circle cx="914.646" cy="2403.91" r="37.4016" style=""/>
|
||||||
|
<circle cx="914.646" cy="2203.91" r="37.4016" style=""/>
|
||||||
|
<circle cx="350.394" cy="2539.35" r="37.4016" style=""/>
|
||||||
|
<circle cx="350.394" cy="2460.61" r="37.4016" style=""/>
|
||||||
|
<circle cx="350.394" cy="2381.87" r="37.4016" style=""/>
|
||||||
|
<circle cx="350.394" cy="2303.13" r="37.4016" style=""/>
|
||||||
|
<circle cx="350.394" cy="2224.39" r="37.4016" style=""/>
|
||||||
|
<circle cx="350.394" cy="2145.65" r="37.4016" style=""/>
|
||||||
|
<circle cx="350.394" cy="2066.91" r="37.4016" style=""/>
|
||||||
|
<circle cx="914.646" cy="2003.91" r="37.4016" style=""/>
|
||||||
|
<circle cx="914.646" cy="1803.91" r="37.4016" style=""/>
|
||||||
|
<circle cx="914.646" cy="1603.91" r="37.4016" style=""/>
|
||||||
|
<circle cx="948.661" cy="742.419" r="37.4016" style=""/>
|
||||||
|
<circle cx="570.866" cy="570.844" r="37.4016" style=""/>
|
||||||
|
<circle cx="-2602.36" cy="2303.13" r="37.4016" style=""/>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 6.6 KiB |
@@ -20,93 +20,297 @@ G04 P1.00000 (Wait for spindle to get up to speed)
|
|||||||
G04 P0 ( dwell for no time -- G64 should not smooth over this point )
|
G04 P0 ( dwell for no time -- G64 should not smooth over this point )
|
||||||
G00 Z2.00000 ( retract )
|
G00 Z2.00000 ( retract )
|
||||||
|
|
||||||
G00 X101.04999 Y-49.99998 ( rapid move to begin. )
|
G00 X52.00002 Y-90.92517 ( rapid move to begin. )
|
||||||
G01 Z-4.00000 F50.00000 ( plunge. )
|
G01 Z-4.00000 F50.00000 ( plunge. )
|
||||||
G04 P0 ( dwell for no time -- G64 should not smooth over this point )
|
G04 P0 ( dwell for no time -- G64 should not smooth over this point )
|
||||||
G01 F400.00000
|
G01 F400.00000
|
||||||
G01 X101.04996 Y-26.29491
|
|
||||||
G00 Z0.00000
|
G00 Z0.00000
|
||||||
G01 X101.04996 Y-23.69491
|
G01 X51.99966 Y-90.71861
|
||||||
G01 Z-4.00000 F50.00000
|
G01 Z-4.00000 F50.00000
|
||||||
G01 F400.00000
|
G01 F400.00000
|
||||||
G01 X101.04993 Y0.01016
|
G01 X51.99938 Y-90.55170
|
||||||
G01 X101.03891 Y0.15217
|
|
||||||
G01 X101.00876 Y0.29136
|
|
||||||
G01 X100.98666 Y0.35911
|
|
||||||
G01 X100.95588 Y0.43449
|
|
||||||
G01 X100.88826 Y0.55984
|
|
||||||
G01 X100.80434 Y0.67490
|
|
||||||
G01 X100.70559 Y0.77757
|
|
||||||
G01 X100.64323 Y0.82989
|
|
||||||
G01 X100.58544 Y0.87163
|
|
||||||
G01 X100.46210 Y0.94282
|
|
||||||
G01 X100.35911 Y0.98666
|
|
||||||
G01 X100.24214 Y1.02169
|
|
||||||
G01 X100.12189 Y1.04290
|
|
||||||
G01 X100.00000 Y1.04999
|
|
||||||
G01 X51.30001 Y1.04999
|
|
||||||
G00 Z0.00000
|
G00 Z0.00000
|
||||||
G01 X48.70001 Y1.04999
|
G01 X51.99922 Y-90.45729
|
||||||
|
G01 X51.99921 Y-90.45212
|
||||||
|
G01 X51.94965 Y-90.54069
|
||||||
|
G01 X51.90472 Y-90.60924
|
||||||
|
G01 X51.86050 Y-90.66640
|
||||||
|
G01 X51.85455 Y-90.67409
|
||||||
|
G01 X51.79225 Y-90.74211
|
||||||
|
G01 X51.72425 Y-90.80442
|
||||||
|
G01 X51.65941 Y-90.85458
|
||||||
|
G01 X51.64306 Y-90.86530
|
||||||
|
G01 X51.59085 Y-90.89954
|
||||||
|
G01 X51.50215 Y-90.94917
|
||||||
|
G01 X51.57808 Y-90.94930
|
||||||
G01 Z-4.00000 F50.00000
|
G01 Z-4.00000 F50.00000
|
||||||
G01 F400.00000
|
G01 F400.00000
|
||||||
G01 X0.00002 Y1.04999
|
G01 X51.59941 Y-90.94934
|
||||||
G01 X-0.08133 Y1.04684
|
|
||||||
G01 X-0.15215 Y1.03891
|
|
||||||
G01 X-0.29134 Y1.00876
|
|
||||||
G01 X-0.35908 Y0.98666
|
|
||||||
G01 X-0.43447 Y0.95588
|
|
||||||
G01 X-0.55982 Y0.88826
|
|
||||||
G01 X-0.67488 Y0.80434
|
|
||||||
G01 X-0.77755 Y0.70559
|
|
||||||
G01 X-0.82987 Y0.64323
|
|
||||||
G01 X-0.87160 Y0.58544
|
|
||||||
G01 X-0.94280 Y0.46210
|
|
||||||
G01 X-0.98664 Y0.35911
|
|
||||||
G01 X-1.02167 Y0.24214
|
|
||||||
G01 X-1.04288 Y0.12189
|
|
||||||
G01 X-1.04996 Y0.00000
|
|
||||||
G01 X-1.04994 Y-23.70507
|
|
||||||
G00 Z0.00000
|
G00 Z0.00000
|
||||||
G01 X-1.04994 Y-26.30507
|
G01 X51.86031 Y-90.94979
|
||||||
|
G01 X51.97523 Y-90.94998
|
||||||
|
G01 X51.99885 Y-90.94881
|
||||||
|
G01 X52.00002 Y-90.92517
|
||||||
|
G04 P0 ( dwell for no time -- G64 should not smooth over this point )
|
||||||
|
G00 Z2.00000 ( retract )
|
||||||
|
|
||||||
|
G00 X-51.49954 Y-90.94907 ( rapid move to begin. )
|
||||||
|
G01 Z-4.00000 F50.00000 ( plunge. )
|
||||||
|
G04 P0 ( dwell for no time -- G64 should not smooth over this point )
|
||||||
|
G01 F400.00000
|
||||||
|
G00 Z0.00000
|
||||||
|
G01 X-51.50760 Y-90.94906
|
||||||
|
G01 X-51.83861 Y-90.94890
|
||||||
|
G01 X-51.99881 Y-90.94881
|
||||||
|
G01 X-51.99881 Y-90.81165
|
||||||
|
G01 X-51.99881 Y-90.78886
|
||||||
|
G01 X-51.99881 Y-90.54960
|
||||||
|
G01 X-51.99881 Y-90.45003
|
||||||
|
G01 X-51.94631 Y-90.53032
|
||||||
|
G01 X-51.90694 Y-90.58112
|
||||||
|
G01 X-51.88938 Y-90.60378
|
||||||
|
G01 X-51.72091 Y-90.77792
|
||||||
|
G01 X-51.70116 Y-90.79542
|
||||||
|
G01 X-51.63076 Y-90.85778
|
||||||
G01 Z-4.00000 F50.00000
|
G01 Z-4.00000 F50.00000
|
||||||
G01 F400.00000
|
G01 F400.00000
|
||||||
G01 X-1.04991 Y-50.01014
|
G01 X-51.62078 Y-90.86662
|
||||||
G01 X-1.03889 Y-50.15215
|
|
||||||
G01 X-1.00874 Y-50.29134
|
|
||||||
G01 X-0.98664 Y-50.35908
|
|
||||||
G01 X-0.95586 Y-50.43447
|
|
||||||
G01 X-0.88824 Y-50.55982
|
|
||||||
G01 X-0.80432 Y-50.67488
|
|
||||||
G01 X-0.70556 Y-50.77755
|
|
||||||
G01 X-0.64321 Y-50.82987
|
|
||||||
G01 X-0.58542 Y-50.87160
|
|
||||||
G01 X-0.46208 Y-50.94277
|
|
||||||
G01 X-0.35908 Y-50.98664
|
|
||||||
G01 X-0.24212 Y-51.02167
|
|
||||||
G01 X-0.12187 Y-51.04285
|
|
||||||
G01 X0.00002 Y-51.04996
|
|
||||||
G01 X48.70509 Y-51.04994
|
|
||||||
G00 Z0.00000
|
G00 Z0.00000
|
||||||
G01 X51.30509 Y-51.04994
|
G01 X-51.49954 Y-90.94907
|
||||||
|
G04 P0 ( dwell for no time -- G64 should not smooth over this point )
|
||||||
|
G00 Z2.00000 ( retract )
|
||||||
|
|
||||||
|
G00 X52.00002 Y-39.53165 ( rapid move to begin. )
|
||||||
|
G01 Z-4.00000 F50.00000 ( plunge. )
|
||||||
|
G04 P0 ( dwell for no time -- G64 should not smooth over this point )
|
||||||
|
G01 F400.00000
|
||||||
|
G00 Z0.00000
|
||||||
|
G01 X51.99904 Y-39.12963
|
||||||
|
G01 X51.99885 Y-39.05113
|
||||||
|
G01 X51.86234 Y-39.05103
|
||||||
|
G01 X51.82895 Y-39.05101
|
||||||
|
G01 X51.61072 Y-39.05085
|
||||||
|
G01 X51.50154 Y-39.05077
|
||||||
|
G01 X51.58783 Y-39.09875
|
||||||
|
G01 X51.65565 Y-39.14285
|
||||||
|
G01 X51.71988 Y-39.19205
|
||||||
|
G01 X51.75973 Y-39.22776
|
||||||
|
G01 X51.78013 Y-39.24605
|
||||||
|
G01 X51.84272 Y-39.31214
|
||||||
|
G01 X51.85955 Y-39.33333
|
||||||
|
G01 X51.89933 Y-39.38341
|
||||||
|
G01 X51.92100 Y-39.41578
|
||||||
G01 Z-4.00000 F50.00000
|
G01 Z-4.00000 F50.00000
|
||||||
G01 F400.00000
|
G01 F400.00000
|
||||||
G01 X100.01016 Y-51.04991
|
G01 X51.94434 Y-39.45064
|
||||||
G01 X100.11176 Y-51.04397
|
G00 Z0.00000
|
||||||
G01 X100.21232 Y-51.02824
|
G01 X51.99679 Y-39.54362
|
||||||
G01 X100.31087 Y-51.00290
|
G01 X51.99921 Y-39.54790
|
||||||
G01 X100.40650 Y-50.96805
|
G01 X52.00002 Y-39.53165
|
||||||
G01 X100.49832 Y-50.92418
|
G04 P0 ( dwell for no time -- G64 should not smooth over this point )
|
||||||
G01 X100.58544 Y-50.87160
|
G00 Z2.00000 ( retract )
|
||||||
G01 X100.66708 Y-50.81082
|
|
||||||
G01 X100.74244 Y-50.74242
|
G00 X-51.49954 Y-39.05087 ( rapid move to begin. )
|
||||||
G01 X100.81084 Y-50.66706
|
G01 Z-4.00000 F50.00000 ( plunge. )
|
||||||
G01 X100.87163 Y-50.58542
|
G04 P0 ( dwell for no time -- G64 should not smooth over this point )
|
||||||
G01 X100.92420 Y-50.49830
|
G01 F400.00000
|
||||||
G01 X100.97201 Y-50.39708
|
G00 Z0.00000
|
||||||
G01 X101.00587 Y-50.30112
|
G01 X-51.83765 Y-39.05105
|
||||||
G01 X101.03030 Y-50.20231
|
G01 Z-4.00000 F50.00000
|
||||||
G01 X101.04506 Y-50.10163
|
G01 F400.00000
|
||||||
G01 X101.04999 Y-49.99998
|
G01 X-51.86302 Y-39.05106
|
||||||
|
G00 Z0.00000
|
||||||
|
G01 X-51.99881 Y-39.05113
|
||||||
|
G01 X-51.99890 Y-39.21225
|
||||||
|
G01 X-51.99890 Y-39.21325
|
||||||
|
G01 X-51.99909 Y-39.55031
|
||||||
|
G01 X-51.91676 Y-39.42809
|
||||||
|
G01 X-51.90766 Y-39.41773
|
||||||
|
G01 X-51.84620 Y-39.34777
|
||||||
|
G01 X-51.82799 Y-39.32705
|
||||||
|
G01 X-51.68163 Y-39.18700
|
||||||
|
G01 X-51.65139 Y-39.15806
|
||||||
|
G01 X-51.63164 Y-39.14290
|
||||||
|
G01 Z-4.00000 F50.00000
|
||||||
|
G01 F400.00000
|
||||||
|
G01 X-51.57884 Y-39.10236
|
||||||
|
G00 Z0.00000
|
||||||
|
G01 X-51.49954 Y-39.05087
|
||||||
|
G04 P0 ( dwell for no time -- G64 should not smooth over this point )
|
||||||
|
G00 Z2.00000 ( retract )
|
||||||
|
|
||||||
|
G00 X0.59796 Y-90.94917 ( rapid move to begin. )
|
||||||
|
G01 Z-4.00000 F50.00000 ( plunge. )
|
||||||
|
G04 P0 ( dwell for no time -- G64 should not smooth over this point )
|
||||||
|
G01 F400.00000
|
||||||
|
G00 Z0.00000
|
||||||
|
G01 X-0.38604 Y-90.94915
|
||||||
|
G01 X-0.59840 Y-90.94914
|
||||||
|
G01 X-0.57576 Y-90.93378
|
||||||
|
G01 Z-4.00000 F50.00000
|
||||||
|
G01 F400.00000
|
||||||
|
G01 X-0.43737 Y-90.83987
|
||||||
|
G00 Z0.00000
|
||||||
|
G01 X-0.34275 Y-90.76319
|
||||||
|
G01 X-0.24445 Y-90.66063
|
||||||
|
G01 X-0.16635 Y-90.55430
|
||||||
|
G01 X-0.09787 Y-90.42982
|
||||||
|
G01 X-0.04682 Y-90.29723
|
||||||
|
G01 X-0.01413 Y-90.15898
|
||||||
|
G01 X-0.00041 Y-90.01757
|
||||||
|
G01 X-0.00040 Y-89.77894
|
||||||
|
G01 X-0.00038 Y-88.78861
|
||||||
|
G01 Z-4.00000 F50.00000
|
||||||
|
G01 F400.00000
|
||||||
|
G01 X-0.00022 Y-80.67196
|
||||||
|
G00 Z0.00000
|
||||||
|
G01 X-0.00017 Y-78.07196
|
||||||
|
G01 Z-4.00000 F50.00000
|
||||||
|
G01 F400.00000
|
||||||
|
G01 X0.00002 Y-68.72635
|
||||||
|
G01 X0.00095 Y-89.80499
|
||||||
|
G00 Z0.00000
|
||||||
|
G01 X0.00096 Y-90.03035
|
||||||
|
G01 X0.01481 Y-90.17231
|
||||||
|
G01 X0.04775 Y-90.31107
|
||||||
|
G01 X0.09918 Y-90.44409
|
||||||
|
G01 X0.16817 Y-90.56893
|
||||||
|
G01 X0.25344 Y-90.68323
|
||||||
|
G01 X0.35341 Y-90.78496
|
||||||
|
G01 X0.46626 Y-90.87218
|
||||||
|
G01 X0.59250 Y-90.94598
|
||||||
|
G01 X0.59796 Y-90.94917
|
||||||
|
G04 P0 ( dwell for no time -- G64 should not smooth over this point )
|
||||||
|
G00 Z2.00000 ( retract )
|
||||||
|
|
||||||
|
G00 X0.59796 Y-39.05077 ( rapid move to begin. )
|
||||||
|
G01 Z-4.00000 F50.00000 ( plunge. )
|
||||||
|
G04 P0 ( dwell for no time -- G64 should not smooth over this point )
|
||||||
|
G01 F400.00000
|
||||||
|
G00 Z0.00000
|
||||||
|
G01 X-0.38717 Y-39.05079
|
||||||
|
G01 X-0.59916 Y-39.05080
|
||||||
|
G01 X-0.57714 Y-39.06571
|
||||||
|
G01 Z-4.00000 F50.00000
|
||||||
|
G01 F400.00000
|
||||||
|
G01 X-0.43132 Y-39.16444
|
||||||
|
G00 Z0.00000
|
||||||
|
G01 X-0.34450 Y-39.23515
|
||||||
|
G01 X-0.25230 Y-39.33002
|
||||||
|
G01 X-0.16724 Y-39.44427
|
||||||
|
G01 X-0.09840 Y-39.56901
|
||||||
|
G01 X-0.04707 Y-39.70190
|
||||||
|
G01 X-0.01420 Y-39.84051
|
||||||
|
G01 X-0.00041 Y-39.98229
|
||||||
|
G01 X-0.00040 Y-40.22440
|
||||||
|
G01 X-0.00038 Y-41.21107
|
||||||
|
G01 Z-4.00000 F50.00000
|
||||||
|
G01 F400.00000
|
||||||
|
G01 X-0.00022 Y-49.32795
|
||||||
|
G00 Z0.00000
|
||||||
|
G01 X-0.00017 Y-51.92795
|
||||||
|
G01 Z-4.00000 F50.00000
|
||||||
|
G01 F400.00000
|
||||||
|
G01 X0.00002 Y-61.27361
|
||||||
|
G01 X0.00095 Y-40.19495
|
||||||
|
G00 Z0.00000
|
||||||
|
G01 X0.00096 Y-39.96959
|
||||||
|
G01 X0.01481 Y-39.82763
|
||||||
|
G01 X0.04775 Y-39.68887
|
||||||
|
G01 X0.09918 Y-39.55585
|
||||||
|
G01 X0.16817 Y-39.43101
|
||||||
|
G01 X0.25344 Y-39.31671
|
||||||
|
G01 X0.35341 Y-39.21498
|
||||||
|
G01 X0.46626 Y-39.12776
|
||||||
|
G01 X0.59665 Y-39.05154
|
||||||
|
G01 X0.59796 Y-39.05077
|
||||||
|
G04 P0 ( dwell for no time -- G64 should not smooth over this point )
|
||||||
|
G00 Z2.00000 ( retract )
|
||||||
|
|
||||||
|
G00 X54.20002 Y-37.91288 ( rapid move to begin. )
|
||||||
|
G01 Z-4.00000 F50.00000 ( plunge. )
|
||||||
|
G04 P0 ( dwell for no time -- G64 should not smooth over this point )
|
||||||
|
G01 F400.00000
|
||||||
|
G01 X54.19509 Y-37.81123
|
||||||
|
G01 X54.18033 Y-37.71054
|
||||||
|
G01 X54.15592 Y-37.61176
|
||||||
|
G01 X54.12204 Y-37.51580
|
||||||
|
G01 X54.07904 Y-37.42357
|
||||||
|
G01 X54.02732 Y-37.33592
|
||||||
|
G01 X53.96735 Y-37.25372
|
||||||
|
G01 X53.89969 Y-37.17768
|
||||||
|
G01 X53.82501 Y-37.10856
|
||||||
|
G01 X53.74398 Y-37.04699
|
||||||
|
G01 X53.65737 Y-36.99358
|
||||||
|
G01 X53.55663 Y-36.94478
|
||||||
|
G01 X53.46100 Y-36.90998
|
||||||
|
G01 X53.36245 Y-36.88458
|
||||||
|
G01 X53.26192 Y-36.86884
|
||||||
|
G01 X53.16032 Y-36.86292
|
||||||
|
G01 X1.30565 Y-36.85680
|
||||||
|
G00 Z0.00000
|
||||||
|
G01 X-1.29435 Y-36.85649
|
||||||
|
G01 Z-4.00000 F50.00000
|
||||||
|
G01 F400.00000
|
||||||
|
G01 X-53.14902 Y-36.85037
|
||||||
|
G01 X-53.27092 Y-36.85746
|
||||||
|
G01 X-53.39118 Y-36.87864
|
||||||
|
G01 X-53.50818 Y-36.91367
|
||||||
|
G01 X-53.62029 Y-36.96200
|
||||||
|
G01 X-53.74295 Y-37.03442
|
||||||
|
G01 X-53.85468 Y-37.12276
|
||||||
|
G01 X-53.95344 Y-37.22540
|
||||||
|
G01 X-54.03739 Y-37.34046
|
||||||
|
G01 X-54.10500 Y-37.46584
|
||||||
|
G01 X-54.15501 Y-37.59919
|
||||||
|
G01 X-54.17533 Y-37.67806
|
||||||
|
G01 X-54.18806 Y-37.74816
|
||||||
|
G01 X-54.19908 Y-37.89017
|
||||||
|
G01 X-54.19932 Y-63.69465
|
||||||
|
G00 Z0.00000
|
||||||
|
G01 X-54.19935 Y-66.29465
|
||||||
|
G01 Z-4.00000 F50.00000
|
||||||
|
G01 F400.00000
|
||||||
|
G01 X-54.19959 Y-92.09913
|
||||||
|
G01 X-54.19250 Y-92.22102
|
||||||
|
G01 X-54.17129 Y-92.34129
|
||||||
|
G01 X-54.13627 Y-92.45826
|
||||||
|
G01 X-54.08791 Y-92.57038
|
||||||
|
G01 X-54.01552 Y-92.69303
|
||||||
|
G01 X-53.97323 Y-92.75039
|
||||||
|
G01 X-53.92029 Y-92.81226
|
||||||
|
G01 X-53.81668 Y-92.91000
|
||||||
|
G01 X-53.70081 Y-92.99280
|
||||||
|
G01 X-53.57480 Y-93.05920
|
||||||
|
G01 X-53.50871 Y-93.08582
|
||||||
|
G01 X-53.43119 Y-93.11068
|
||||||
|
G01 X-53.29169 Y-93.13949
|
||||||
|
G01 X-53.14960 Y-93.14914
|
||||||
|
G01 X-1.30022 Y-93.14935
|
||||||
|
G00 Z0.00000
|
||||||
|
G01 X1.29978 Y-93.14936
|
||||||
|
G01 Z-4.00000 F50.00000
|
||||||
|
G01 F400.00000
|
||||||
|
G01 X53.14917 Y-93.14957
|
||||||
|
G01 X53.27106 Y-93.14249
|
||||||
|
G01 X53.39133 Y-93.12128
|
||||||
|
G01 X53.50830 Y-93.08625
|
||||||
|
G01 X53.62041 Y-93.03789
|
||||||
|
G01 X53.74307 Y-92.96550
|
||||||
|
G01 X53.85478 Y-92.87716
|
||||||
|
G01 X53.95351 Y-92.77452
|
||||||
|
G01 X54.03746 Y-92.65945
|
||||||
|
G01 X54.07340 Y-92.59791
|
||||||
|
G01 X54.10924 Y-92.52481
|
||||||
|
G01 X54.15793 Y-92.39098
|
||||||
|
G01 X54.18810 Y-92.25176
|
||||||
|
G01 X54.19913 Y-92.10977
|
||||||
|
G01 X54.19955 Y-66.31133
|
||||||
|
G00 Z0.00000
|
||||||
|
G01 X54.19959 Y-63.71133
|
||||||
|
G01 Z-4.00000 F50.00000
|
||||||
|
G01 F400.00000
|
||||||
|
G01 X54.20002 Y-37.91288
|
||||||
|
|
||||||
G04 P0 ( dwell for no time -- G64 should not smooth over this point )
|
G04 P0 ( dwell for no time -- G64 should not smooth over this point )
|
||||||
G00 Z35.000000 ( retract )
|
G00 Z35.000000 ( retract )
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 189 KiB After Width: | Height: | Size: 211 KiB |
|
Before Width: | Height: | Size: 518 B After Width: | Height: | Size: 8.7 KiB |
|
Before Width: | Height: | Size: 189 KiB After Width: | Height: | Size: 211 KiB |
|
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 1.7 MiB |
|
Before Width: | Height: | Size: 882 KiB After Width: | Height: | Size: 982 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 912 KiB After Width: | Height: | Size: 1006 KiB |
|
Before Width: | Height: | Size: 231 KiB After Width: | Height: | Size: 280 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 44 KiB |
88
scripts/myPreset.json
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
{
|
||||||
|
"layout": {
|
||||||
|
"type": "grid",
|
||||||
|
"rows": 1,
|
||||||
|
"cols": 2,
|
||||||
|
"hspace": "2.1mm",
|
||||||
|
"vspace": "2.1mm"
|
||||||
|
},
|
||||||
|
"tabs": {
|
||||||
|
"type": "fixed",
|
||||||
|
"hcount": 1,
|
||||||
|
"vcount": 1,
|
||||||
|
"hwidth": "3mm",
|
||||||
|
"vwidth": "3mm"
|
||||||
|
},
|
||||||
|
"cuts": {
|
||||||
|
"type": "mousebites",
|
||||||
|
"offset": "0.2mm",
|
||||||
|
"prolong": "0.7mm",
|
||||||
|
"drill": "0.5mm",
|
||||||
|
"spacing": "0.8mm"
|
||||||
|
},
|
||||||
|
"framing": {
|
||||||
|
"type": "tightframe",
|
||||||
|
"copperFill": true,
|
||||||
|
"slotwidth": "2.1mm",
|
||||||
|
"mintotalheight": "100mm",
|
||||||
|
"mintotalwidth": "160mm",
|
||||||
|
"maxtotalheight": "100mm",
|
||||||
|
"maxtotalwidth": "160mm"
|
||||||
|
},
|
||||||
|
"tooling": {
|
||||||
|
"type": "plugin",
|
||||||
|
"code": "tooling_plugin.py.CustomTooling",
|
||||||
|
"arg": ""
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"type": "simple",
|
||||||
|
"text": "v1",
|
||||||
|
"anchor": "mt",
|
||||||
|
"hoffset": "0mm",
|
||||||
|
"voffset": "2.5mm",
|
||||||
|
"orientation": "0deg",
|
||||||
|
"width": "1.5mm",
|
||||||
|
"height": "1.5mm",
|
||||||
|
"hjustify": "center",
|
||||||
|
"vjustify": "center",
|
||||||
|
"thickness": "0.3mm",
|
||||||
|
"layer": "F.SilkS"
|
||||||
|
},
|
||||||
|
"copperfill": {
|
||||||
|
"type": "solid",
|
||||||
|
"clearance": "0.5mm",
|
||||||
|
"edgeclearance": "0.5mm",
|
||||||
|
"layers": "B.Cu"
|
||||||
|
},
|
||||||
|
"post": {
|
||||||
|
"type": "auto",
|
||||||
|
"copperfill": false,
|
||||||
|
"reconstructarcs": false,
|
||||||
|
"millradius": "1mm",
|
||||||
|
"millradiusouter": "0mm",
|
||||||
|
"script": "",
|
||||||
|
"scriptarg": "",
|
||||||
|
"origin": "tl",
|
||||||
|
"refillzones": false,
|
||||||
|
"dimensions": false,
|
||||||
|
"edgewidth": "0.1mm"
|
||||||
|
},
|
||||||
|
"page": {
|
||||||
|
"type": "inherit",
|
||||||
|
"anchor": "tl",
|
||||||
|
"posx": "0mm",
|
||||||
|
"posy": "0mm",
|
||||||
|
"width": "1000mm",
|
||||||
|
"height": "1000mm"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"type": "none",
|
||||||
|
"drawPartitionLines": false,
|
||||||
|
"drawBackboneLines": false,
|
||||||
|
"drawboxes": false,
|
||||||
|
"trace": false,
|
||||||
|
"deterministic": false,
|
||||||
|
"drawtabfail": false,
|
||||||
|
"drawTabFillet": false
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
"Application": "Pcbnew",
|
"Application": "Pcbnew",
|
||||||
"Version": "9.0.9-9.0.9~ubuntu24.04.1"
|
"Version": "9.0.9-9.0.9~ubuntu24.04.1"
|
||||||
},
|
},
|
||||||
"CreationDate": "2026-05-16T18:36:28+02:00"
|
"CreationDate": "2026-05-20T19:29:47+02:00"
|
||||||
},
|
},
|
||||||
"GeneralSpecs": {
|
"GeneralSpecs": {
|
||||||
"ProjectId": {
|
"ProjectId": {
|
||||||
@@ -14,8 +14,8 @@
|
|||||||
"Revision": "rev?"
|
"Revision": "rev?"
|
||||||
},
|
},
|
||||||
"Size": {
|
"Size": {
|
||||||
"X": 100.1,
|
"X": 106.3996,
|
||||||
"Y": 50.1
|
"Y": 54.2993
|
||||||
},
|
},
|
||||||
"LayerNumber": 2,
|
"LayerNumber": 2,
|
||||||
"BoardThickness": 1.6002,
|
"BoardThickness": 1.6002,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
M48
|
M48
|
||||||
; DRILL file {KiCad 9.0.9-9.0.9~ubuntu24.04.1} date 2026-05-16T18:36:28+0200
|
; DRILL file {KiCad 9.0.9-9.0.9~ubuntu24.04.1} date 2026-05-20T19:29:47+0200
|
||||||
; FORMAT={-:-/ absolute / metric / decimal}
|
; FORMAT={-:-/ absolute / metric / decimal}
|
||||||
; #@! TF.CreationDate,2026-05-16T18:36:28+02:00
|
; #@! TF.CreationDate,2026-05-20T19:29:47+02:00
|
||||||
; #@! TF.GenerationSoftware,Kicad,Pcbnew,9.0.9-9.0.9~ubuntu24.04.1
|
; #@! TF.GenerationSoftware,Kicad,Pcbnew,9.0.9-9.0.9~ubuntu24.04.1
|
||||||
; #@! TF.FileFunction,MixedPlating,1,2
|
; #@! TF.FileFunction,MixedPlating,1,2
|
||||||
FMAT,2
|
FMAT,2
|
||||||
@@ -13,92 +13,135 @@ T2C1.000
|
|||||||
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
||||||
T3C1.000
|
T3C1.000
|
||||||
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
|
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
|
||||||
T4C1.000
|
T4C0.500
|
||||||
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
|
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
|
||||||
T5C3.200
|
T5C2.150
|
||||||
|
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
|
||||||
|
T6C2.700
|
||||||
|
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
|
||||||
|
T7C3.172
|
||||||
%
|
%
|
||||||
G90
|
G90
|
||||||
G05
|
G05
|
||||||
T1
|
T1
|
||||||
X30.0Y-39.918
|
X93.5Y-53.0
|
||||||
X30.0Y-42.418
|
X93.5Y-55.5
|
||||||
X30.0Y-44.918
|
X93.5Y-58.0
|
||||||
X44.55Y-13.0
|
X93.55Y-73.85
|
||||||
X44.55Y-15.5
|
X93.55Y-76.35
|
||||||
X44.55Y-18.0
|
X93.55Y-78.85
|
||||||
X80.0Y-39.918
|
X145.6Y-53.0
|
||||||
X80.0Y-42.418
|
X145.6Y-55.5
|
||||||
X80.0Y-44.918
|
X145.6Y-58.0
|
||||||
X94.55Y-13.0
|
X145.65Y-73.85
|
||||||
X94.55Y-15.5
|
X145.65Y-76.35
|
||||||
X94.55Y-18.0
|
X145.65Y-78.85
|
||||||
T2
|
T2
|
||||||
X17.75Y-25.675
|
X66.7Y-65.675
|
||||||
X17.85Y-29.425
|
X66.8Y-69.425
|
||||||
X67.75Y-25.675
|
X118.8Y-65.675
|
||||||
X67.85Y-29.425
|
X118.9Y-69.425
|
||||||
T3
|
T3
|
||||||
X7.366Y-16.12
|
X56.316Y-56.12
|
||||||
X7.366Y-18.66
|
X56.316Y-58.66
|
||||||
X7.366Y-21.2
|
X56.316Y-61.2
|
||||||
X7.366Y-23.74
|
X56.316Y-63.74
|
||||||
X7.366Y-26.28
|
X56.316Y-66.28
|
||||||
X7.366Y-28.82
|
X56.316Y-68.82
|
||||||
X7.366Y-31.36
|
X56.316Y-71.36
|
||||||
X7.366Y-33.9
|
X56.316Y-73.9
|
||||||
X32.766Y-6.096
|
X85.87Y-45.55
|
||||||
X35.306Y-6.096
|
X88.41Y-45.55
|
||||||
X37.846Y-6.096
|
X90.95Y-45.55
|
||||||
X57.366Y-16.12
|
X108.416Y-56.12
|
||||||
X57.366Y-18.66
|
X108.416Y-58.66
|
||||||
X57.366Y-21.2
|
X108.416Y-61.2
|
||||||
X57.366Y-23.74
|
X108.416Y-63.74
|
||||||
X57.366Y-26.28
|
X108.416Y-66.28
|
||||||
X57.366Y-28.82
|
X108.416Y-68.82
|
||||||
X57.366Y-31.36
|
X108.416Y-71.36
|
||||||
X57.366Y-33.9
|
X108.416Y-73.9
|
||||||
X82.766Y-6.096
|
X137.97Y-45.55
|
||||||
X85.306Y-6.096
|
X140.51Y-45.55
|
||||||
X87.846Y-6.096
|
X143.05Y-45.55
|
||||||
T4
|
T4
|
||||||
X50.0Y-2.0
|
X49.15Y-62.0
|
||||||
X50.0Y-3.533
|
X49.15Y-63.0
|
||||||
X50.0Y-5.067
|
X49.15Y-64.0
|
||||||
X50.0Y-6.6
|
X49.15Y-65.0
|
||||||
X50.0Y-8.133
|
X49.15Y-66.0
|
||||||
X50.0Y-9.667
|
X49.15Y-67.0
|
||||||
X50.0Y-11.2
|
X49.15Y-68.0
|
||||||
X50.0Y-12.733
|
X70.95Y-40.2
|
||||||
X50.0Y-14.267
|
X70.95Y-89.8
|
||||||
X50.0Y-15.8
|
X71.95Y-40.2
|
||||||
X50.0Y-17.333
|
X71.95Y-89.8
|
||||||
X50.0Y-18.867
|
X72.95Y-40.2
|
||||||
X50.0Y-20.4
|
X72.95Y-89.8
|
||||||
X50.0Y-21.933
|
X73.95Y-40.2
|
||||||
X50.0Y-23.467
|
X73.95Y-89.8
|
||||||
X50.0Y-25.0
|
X74.95Y-40.2
|
||||||
X50.0Y-26.533
|
X74.95Y-89.8
|
||||||
X50.0Y-28.067
|
X75.95Y-40.2
|
||||||
X50.0Y-29.6
|
X75.95Y-89.8
|
||||||
X50.0Y-31.133
|
X76.95Y-40.2
|
||||||
X50.0Y-32.667
|
X76.95Y-89.8
|
||||||
X50.0Y-34.2
|
X98.75Y-62.0
|
||||||
X50.0Y-35.733
|
X98.75Y-63.0
|
||||||
X50.0Y-37.267
|
X98.75Y-64.0
|
||||||
X50.0Y-38.8
|
X98.75Y-65.0
|
||||||
X50.0Y-40.333
|
X98.75Y-66.0
|
||||||
X50.0Y-41.867
|
X98.75Y-67.0
|
||||||
X50.0Y-43.4
|
X98.75Y-68.0
|
||||||
X50.0Y-44.933
|
X101.25Y-62.0
|
||||||
X50.0Y-46.467
|
X101.25Y-63.0
|
||||||
X50.0Y-48.0
|
X101.25Y-64.0
|
||||||
|
X101.25Y-65.0
|
||||||
|
X101.25Y-66.0
|
||||||
|
X101.25Y-67.0
|
||||||
|
X101.25Y-68.0
|
||||||
|
X123.05Y-40.2
|
||||||
|
X123.05Y-89.8
|
||||||
|
X124.05Y-40.2
|
||||||
|
X124.05Y-89.8
|
||||||
|
X125.05Y-40.2
|
||||||
|
X125.05Y-89.8
|
||||||
|
X126.05Y-40.2
|
||||||
|
X126.05Y-89.8
|
||||||
|
X127.05Y-40.2
|
||||||
|
X127.05Y-89.8
|
||||||
|
X128.05Y-40.2
|
||||||
|
X128.05Y-89.8
|
||||||
|
X129.05Y-40.2
|
||||||
|
X129.05Y-89.8
|
||||||
|
X150.85Y-62.0
|
||||||
|
X150.85Y-63.0
|
||||||
|
X150.85Y-64.0
|
||||||
|
X150.85Y-65.0
|
||||||
|
X150.85Y-66.0
|
||||||
|
X150.85Y-67.0
|
||||||
|
X150.85Y-68.0
|
||||||
T5
|
T5
|
||||||
X4.6Y-4.6
|
X56.748Y-45.179
|
||||||
X4.6Y-45.4
|
X56.824Y-84.847
|
||||||
X45.4Y-4.6
|
X79.633Y-45.147
|
||||||
X45.4Y-45.4
|
X79.684Y-84.822
|
||||||
X54.6Y-4.6
|
X108.848Y-45.179
|
||||||
X54.6Y-45.4
|
X108.924Y-84.847
|
||||||
X95.4Y-4.6
|
X131.733Y-45.147
|
||||||
X95.4Y-45.4
|
X131.784Y-84.822
|
||||||
|
T6
|
||||||
|
X51.95Y-43.0
|
||||||
|
X51.95Y-87.0
|
||||||
|
X95.95Y-43.0
|
||||||
|
X95.95Y-87.0
|
||||||
|
X104.05Y-43.0
|
||||||
|
X104.05Y-87.0
|
||||||
|
X148.05Y-43.0
|
||||||
|
X148.05Y-87.0
|
||||||
|
T7
|
||||||
|
X11.65Y-65.0
|
||||||
|
X100.0Y-10.75
|
||||||
|
X100.0Y-119.25
|
||||||
|
X188.35Y-65.0
|
||||||
M30
|
M30
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"board": {
|
"board": {
|
||||||
"active_layer": 17,
|
"active_layer": 0,
|
||||||
"active_layer_preset": "",
|
"active_layer_preset": "",
|
||||||
"auto_track_width": true,
|
"auto_track_width": true,
|
||||||
"hidden_netclasses": [],
|
"hidden_netclasses": [],
|
||||||
@@ -40,7 +40,6 @@
|
|||||||
"footprint_references",
|
"footprint_references",
|
||||||
"tracks",
|
"tracks",
|
||||||
"drc_errors",
|
"drc_errors",
|
||||||
"drawing_sheet",
|
|
||||||
"bitmaps",
|
"bitmaps",
|
||||||
"pads",
|
"pads",
|
||||||
"zones",
|
"zones",
|
||||||
@@ -50,7 +49,7 @@
|
|||||||
"conflict_shadows",
|
"conflict_shadows",
|
||||||
"shapes"
|
"shapes"
|
||||||
],
|
],
|
||||||
"visible_layers": "00000000_00000000_0fffffff_fffffffe",
|
"visible_layers": "00000000_00000000_0fffffff_ffffffff",
|
||||||
"zone_display_mode": 0
|
"zone_display_mode": 0
|
||||||
},
|
},
|
||||||
"git": {
|
"git": {
|
||||||
|
|||||||
@@ -37,9 +37,9 @@
|
|||||||
"other_text_thickness": 0.15,
|
"other_text_thickness": 0.15,
|
||||||
"other_text_upright": false,
|
"other_text_upright": false,
|
||||||
"pads": {
|
"pads": {
|
||||||
"drill": 0.95,
|
"drill": 0.0,
|
||||||
"height": 1.95,
|
"height": 0.4,
|
||||||
"width": 1.7
|
"width": 1.325
|
||||||
},
|
},
|
||||||
"silk_line_width": 0.1524,
|
"silk_line_width": 0.1524,
|
||||||
"silk_text_italic": false,
|
"silk_text_italic": false,
|
||||||
@@ -123,7 +123,7 @@
|
|||||||
},
|
},
|
||||||
"rules": {
|
"rules": {
|
||||||
"max_error": 0.005,
|
"max_error": 0.005,
|
||||||
"min_clearance": 0.3,
|
"min_clearance": 0.25,
|
||||||
"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_groove_width": 0.0,
|
||||||
@@ -321,45 +321,29 @@
|
|||||||
"net_colors": null,
|
"net_colors": null,
|
||||||
"netclass_assignments": null,
|
"netclass_assignments": null,
|
||||||
"netclass_patterns": [
|
"netclass_patterns": [
|
||||||
{
|
|
||||||
"netclass": "Board_0-Default",
|
|
||||||
"pattern": "Board_0-/FLOW_PULSE_MCU"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"netclass": "Board_0-Default",
|
|
||||||
"pattern": "Board_0-+5V"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"netclass": "Board_0-Default",
|
"netclass": "Board_0-Default",
|
||||||
"pattern": "Board_0-GND"
|
"pattern": "Board_0-GND"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"netclass": "Board_0-Default",
|
|
||||||
"pattern": "Board_0-/SWIO"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"netclass": "Board_0-Default",
|
|
||||||
"pattern": "Board_0-/I2C_SCL"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"netclass": "Board_0-Default",
|
|
||||||
"pattern": "Board_0-/ALARM _CNC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"netclass": "Board_0-Default",
|
|
||||||
"pattern": "Board_0-unconnected-(J3-#-Pad6)"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"netclass": "Board_0-Default",
|
"netclass": "Board_0-Default",
|
||||||
"pattern": "Board_0-/RAW_SENSOR"
|
"pattern": "Board_0-/RAW_SENSOR"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Board_0-Default",
|
||||||
|
"pattern": "Board_0-Net-(Q1-G)"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"netclass": "Board_0-Default",
|
"netclass": "Board_0-Default",
|
||||||
"pattern": "Board_0-/ALARM_TRIGGER"
|
"pattern": "Board_0-/ALARM_TRIGGER"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"netclass": "Board_0-Default",
|
"netclass": "Board_0-Default",
|
||||||
"pattern": "Board_0-/I2C_SDA"
|
"pattern": "Board_0-/SWIO"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Board_0-Default",
|
||||||
|
"pattern": "Board_0-Net-(J3-UP)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"netclass": "Board_0-Default",
|
"netclass": "Board_0-Default",
|
||||||
@@ -367,7 +351,23 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"netclass": "Board_0-Default",
|
"netclass": "Board_0-Default",
|
||||||
"pattern": "Board_0-Net-(Q1-G)"
|
"pattern": "Board_0-/I2C_SDA"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Board_0-Default",
|
||||||
|
"pattern": "Board_0-unconnected-(J3-#-Pad6)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Board_0-Default",
|
||||||
|
"pattern": "Board_0-+3.3V"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Board_0-Default",
|
||||||
|
"pattern": "Board_0-+5V"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Board_0-Default",
|
||||||
|
"pattern": "Board_0-/ALARM _CNC"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"netclass": "Board_0-Default",
|
"netclass": "Board_0-Default",
|
||||||
@@ -375,11 +375,19 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"netclass": "Board_0-Default",
|
"netclass": "Board_0-Default",
|
||||||
"pattern": "Board_0-Net-(J3-UP)"
|
"pattern": "Board_0-/I2C_SCL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Board_0-Default",
|
||||||
|
"pattern": "Board_0-/FLOW_PULSE_MCU"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"netclass": "Board_1-Default",
|
"netclass": "Board_1-Default",
|
||||||
"pattern": "Board_1-GND"
|
"pattern": "Board_1-/I2C_SCL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Board_1-Default",
|
||||||
|
"pattern": "Board_1-/RAW_SENSOR"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"netclass": "Board_1-Default",
|
"netclass": "Board_1-Default",
|
||||||
@@ -387,20 +395,40 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"netclass": "Board_1-Default",
|
"netclass": "Board_1-Default",
|
||||||
"pattern": "Board_1-/FLOW_PULSE_MCU"
|
"pattern": "Board_1-Net-(Q1-G)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"netclass": "Board_1-Default",
|
"netclass": "Board_1-Default",
|
||||||
"pattern": "Board_1-unconnected-(J3-*-Pad5)"
|
"pattern": "Board_1-GND"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"netclass": "Board_1-Default",
|
"netclass": "Board_1-Default",
|
||||||
"pattern": "Board_1-unconnected-(J3-#-Pad6)"
|
"pattern": "Board_1-unconnected-(J3-#-Pad6)"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Board_1-Default",
|
||||||
|
"pattern": "Board_1-+5V"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"netclass": "Board_1-Default",
|
"netclass": "Board_1-Default",
|
||||||
"pattern": "Board_1-/I2C_SDA"
|
"pattern": "Board_1-/I2C_SDA"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Board_1-Default",
|
||||||
|
"pattern": "Board_1-unconnected-(J3-*-Pad5)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Board_1-Default",
|
||||||
|
"pattern": "Board_1-/ALARM_TRIGGER"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Board_1-Default",
|
||||||
|
"pattern": "Board_1-/BUTTON_ADC"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Board_1-Default",
|
||||||
|
"pattern": "Board_1-+3.3V"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"netclass": "Board_1-Default",
|
"netclass": "Board_1-Default",
|
||||||
"pattern": "Board_1-Net-(J3-UP)"
|
"pattern": "Board_1-Net-(J3-UP)"
|
||||||
@@ -411,27 +439,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"netclass": "Board_1-Default",
|
"netclass": "Board_1-Default",
|
||||||
"pattern": "Board_1-/I2C_SCL"
|
"pattern": "Board_1-/FLOW_PULSE_MCU"
|
||||||
},
|
|
||||||
{
|
|
||||||
"netclass": "Board_1-Default",
|
|
||||||
"pattern": "Board_1-Net-(Q1-G)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"netclass": "Board_1-Default",
|
|
||||||
"pattern": "Board_1-/BUTTON_ADC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"netclass": "Board_1-Default",
|
|
||||||
"pattern": "Board_1-/ALARM_TRIGGER"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"netclass": "Board_1-Default",
|
|
||||||
"pattern": "Board_1-/RAW_SENSOR"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"netclass": "Board_1-Default",
|
|
||||||
"pattern": "Board_1-+5V"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
130
scripts/tooling_plugin.py
Normal file
@@ -0,0 +1,130 @@
|
|||||||
|
from kikit.plugin import ToolingPlugin
|
||||||
|
import pcbnew
|
||||||
|
|
||||||
|
class CustomTooling(ToolingPlugin):
|
||||||
|
def buildTooling(self, panel):
|
||||||
|
board = panel.board
|
||||||
|
|
||||||
|
# panelBBox() -> (xmin, ymin, xmax, ymax)
|
||||||
|
xmin, ymin, xmax, ymax = panel.panelBBox()
|
||||||
|
|
||||||
|
min_x = pcbnew.ToMM(xmin)
|
||||||
|
min_y = pcbnew.ToMM(ymin)
|
||||||
|
max_x = pcbnew.ToMM(xmax)
|
||||||
|
max_y = pcbnew.ToMM(ymax)
|
||||||
|
|
||||||
|
margin_x_mm = 10
|
||||||
|
margin_y_mm = 2.5
|
||||||
|
|
||||||
|
center_x = (min_x + max_x) / 2
|
||||||
|
center_y = (min_y + max_y) / 2
|
||||||
|
|
||||||
|
holes = [
|
||||||
|
(min_x + margin_x_mm, min_y + margin_y_mm), # top left
|
||||||
|
(center_x, min_y + margin_y_mm), # top center
|
||||||
|
(max_x - margin_x_mm, min_y + margin_y_mm), # top right
|
||||||
|
|
||||||
|
(min_x + margin_x_mm, max_y - margin_y_mm), # bottom left
|
||||||
|
(center_x, max_y - margin_y_mm), # bottom center
|
||||||
|
(max_x - margin_x_mm, max_y - margin_y_mm), # bottom right
|
||||||
|
]
|
||||||
|
|
||||||
|
hole_d = pcbnew.FromMM(3.172)
|
||||||
|
|
||||||
|
for x_mm, y_mm in holes:
|
||||||
|
fp = pcbnew.FOOTPRINT(board)
|
||||||
|
fp.SetReference("")
|
||||||
|
|
||||||
|
pos = pcbnew.VECTOR2I(
|
||||||
|
pcbnew.FromMM(x_mm),
|
||||||
|
pcbnew.FromMM(y_mm)
|
||||||
|
)
|
||||||
|
|
||||||
|
fp.SetPosition(pos)
|
||||||
|
|
||||||
|
pad = pcbnew.PAD(fp)
|
||||||
|
pad.SetShape(pcbnew.PAD_SHAPE_CIRCLE)
|
||||||
|
pad.SetAttribute(pcbnew.PAD_ATTRIB_NPTH)
|
||||||
|
|
||||||
|
pad.SetSize(pcbnew.VECTOR2I(hole_d, hole_d))
|
||||||
|
pad.SetDrillSize(pcbnew.VECTOR2I(hole_d, hole_d))
|
||||||
|
pad.SetPosition(pos)
|
||||||
|
|
||||||
|
fp.Add(pad)
|
||||||
|
board.Add(fp)
|
||||||
|
|
||||||
|
# =========================
|
||||||
|
# SCREEN RECTANGLE
|
||||||
|
# =========================
|
||||||
|
|
||||||
|
screen_w = 153.4
|
||||||
|
screen_h = 87.0
|
||||||
|
|
||||||
|
# Panel center
|
||||||
|
center_x = (min_x + max_x) / 2
|
||||||
|
center_y = (min_y + max_y) / 2
|
||||||
|
|
||||||
|
# Screen rectangle corners
|
||||||
|
screen_x0 = center_x - (screen_w / 2)
|
||||||
|
screen_y0 = center_y - (screen_h / 2)
|
||||||
|
|
||||||
|
screen_x1 = center_x + (screen_w / 2)
|
||||||
|
screen_y1 = center_y + (screen_h / 2)
|
||||||
|
|
||||||
|
screen = pcbnew.PCB_SHAPE(board)
|
||||||
|
screen.SetShape(pcbnew.SHAPE_T_RECT)
|
||||||
|
screen.SetLayer(pcbnew.Dwgs_User)
|
||||||
|
|
||||||
|
screen.SetStart(
|
||||||
|
pcbnew.VECTOR2I(
|
||||||
|
pcbnew.FromMM(screen_x0),
|
||||||
|
pcbnew.FromMM(screen_y0)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
screen.SetEnd(
|
||||||
|
pcbnew.VECTOR2I(
|
||||||
|
pcbnew.FromMM(screen_x1),
|
||||||
|
pcbnew.FromMM(screen_y1)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
screen.SetWidth(pcbnew.FromMM(0.2))
|
||||||
|
|
||||||
|
board.Add(screen)
|
||||||
|
|
||||||
|
# =========================
|
||||||
|
# FIXTURE RECTANGLE
|
||||||
|
# =========================
|
||||||
|
|
||||||
|
fixture_w = 200.0
|
||||||
|
fixture_h = 130.0
|
||||||
|
|
||||||
|
# Fixture rectangle corners
|
||||||
|
fixture_x0 = center_x - (fixture_w / 2)
|
||||||
|
fixture_y0 = center_y - (fixture_h / 2)
|
||||||
|
|
||||||
|
fixture_x1 = center_x + (fixture_w / 2)
|
||||||
|
fixture_y1 = center_y + (fixture_h / 2)
|
||||||
|
|
||||||
|
fixture = pcbnew.PCB_SHAPE(board)
|
||||||
|
fixture.SetShape(pcbnew.SHAPE_T_RECT)
|
||||||
|
fixture.SetLayer(pcbnew.Dwgs_User)
|
||||||
|
|
||||||
|
fixture.SetStart(
|
||||||
|
pcbnew.VECTOR2I(
|
||||||
|
pcbnew.FromMM(fixture_x0),
|
||||||
|
pcbnew.FromMM(fixture_y0)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
fixture.SetEnd(
|
||||||
|
pcbnew.VECTOR2I(
|
||||||
|
pcbnew.FromMM(fixture_x1),
|
||||||
|
pcbnew.FromMM(fixture_y1)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
fixture.SetWidth(pcbnew.FromMM(0.2))
|
||||||
|
|
||||||
|
board.Add(fixture)
|
||||||