modified kikit script
@@ -20,7 +20,7 @@
|
||||
"footprints": true,
|
||||
"graphics": true,
|
||||
"keepouts": true,
|
||||
"lockedItems": false,
|
||||
"lockedItems": true,
|
||||
"otherItems": true,
|
||||
"pads": true,
|
||||
"text": true,
|
||||
@@ -40,6 +40,7 @@
|
||||
"footprint_references",
|
||||
"tracks",
|
||||
"drc_errors",
|
||||
"drawing_sheet",
|
||||
"bitmaps",
|
||||
"pads",
|
||||
"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`:
|
||||
```bash
|
||||
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 \
|
||||
--layout 'type: grid; rows: 1; cols: 2; space: 0mm' \
|
||||
--tabs 'type: fixed; width: 48mm; vcount: 1' \
|
||||
--cuts 'type: mousebites; drill: 1mm; spacing: 1.5mm' \
|
||||
--post 'origin: tl; script: move_to_origin.py' \
|
||||
--framing 'type: none' \
|
||||
../Flow_Controller.kicad_pcb panel/Flow_Controller_Panel.kicad_pcb
|
||||
-p myPreset.json \
|
||||
../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
|
||||
|
||||
|
||||
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
|
||||
|
||||
G1 F500.00000
|
||||
G0 X4.60000 Y-4.60000
|
||||
G0 X0.00000 Y-10.75000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X12.15400 Y-6.09600
|
||||
G0 X29.05000 Y-40.20000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X14.69400 Y-6.09600
|
||||
G0 X28.05000 Y-40.20000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X17.23400 Y-6.09600
|
||||
G0 X27.05000 Y-40.20000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X5.45000 Y-13.00000
|
||||
G0 X26.05000 Y-40.20000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X5.45000 Y-15.50000
|
||||
G0 X25.05000 Y-40.20000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X5.45000 Y-18.00000
|
||||
G0 X24.05000 Y-40.20000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X4.60000 Y-45.40000
|
||||
G0 X23.05000 Y-40.20000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X20.00000 Y-44.91800
|
||||
G0 X20.36700 Y-45.14700
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X20.00000 Y-42.41800
|
||||
G0 X14.13000 Y-45.55000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X20.00000 Y-39.91800
|
||||
G0 X11.59000 Y-45.55000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X32.15000 Y-29.42500
|
||||
G0 X9.05000 Y-45.55000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X32.25000 Y-25.67500
|
||||
G0 X4.05000 Y-43.00000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X42.63400 Y-16.12000
|
||||
G0 X-4.05000 Y-43.00000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X42.63400 Y-18.66000
|
||||
G0 X-8.84800 Y-45.17900
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X42.63400 Y-21.20000
|
||||
G0 X-8.41600 Y-56.12000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X42.63400 Y-23.74000
|
||||
G0 X-8.41600 Y-58.66000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X42.63400 Y-26.28000
|
||||
G0 X-8.41600 Y-61.20000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X42.63400 Y-28.82000
|
||||
G0 X-8.41600 Y-63.74000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X42.63400 Y-31.36000
|
||||
G0 X-8.41600 Y-66.28000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X42.63400 Y-33.90000
|
||||
G0 X-8.41600 Y-68.82000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X45.40000 Y-45.40000
|
||||
G0 X-8.41600 Y-71.36000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-48.00000
|
||||
G0 X-1.25000 Y-62.00000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-46.46700
|
||||
G0 X-1.25000 Y-63.00000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X54.60000 Y-45.40000
|
||||
G0 X-1.25000 Y-64.00000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-44.93300
|
||||
G0 X-1.25000 Y-65.00000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-43.40000
|
||||
G0 X-1.25000 Y-66.00000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-41.86700
|
||||
G0 X-1.25000 Y-67.00000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-40.33300
|
||||
G0 X-8.41600 Y-73.90000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-38.80000
|
||||
G0 X-18.90000 Y-69.42500
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-37.26700
|
||||
G0 X-18.80000 Y-65.67500
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-35.73300
|
||||
G0 X-31.73300 Y-45.14700
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-34.20000
|
||||
G0 X-23.05000 Y-40.20000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-32.66700
|
||||
G0 X-24.05000 Y-40.20000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-31.13300
|
||||
G0 X-25.05000 Y-40.20000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-29.60000
|
||||
G0 X-26.05000 Y-40.20000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-28.06700
|
||||
G0 X-27.05000 Y-40.20000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-26.53300
|
||||
G0 X-28.05000 Y-40.20000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-25.00000
|
||||
G0 X-29.05000 Y-40.20000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-23.46700
|
||||
G0 X-37.97000 Y-45.55000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-21.93300
|
||||
G0 X-40.51000 Y-45.55000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-20.40000
|
||||
G0 X-45.60000 Y-53.00000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-18.86700
|
||||
G0 X-45.60000 Y-55.50000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-17.33300
|
||||
G0 X-43.05000 Y-45.55000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-15.80000
|
||||
G0 X-48.05000 Y-43.00000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-14.26700
|
||||
G0 X-88.35000 Y-65.00000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-12.73300
|
||||
G0 X-50.85000 Y-62.00000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-11.20000
|
||||
G0 X-45.60000 Y-58.00000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-9.66700
|
||||
G0 X-50.85000 Y-63.00000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-8.13300
|
||||
G0 X-50.85000 Y-64.00000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X45.40000 Y-4.60000
|
||||
G0 X-50.85000 Y-65.00000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-6.60000
|
||||
G0 X-50.85000 Y-66.00000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-5.06700
|
||||
G0 X-50.85000 Y-67.00000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-3.53300
|
||||
G0 X-50.85000 Y-68.00000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X50.00000 Y-2.00000
|
||||
G0 X-45.65000 Y-73.85000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X54.60000 Y-4.60000
|
||||
G0 X-45.65000 Y-76.35000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X62.15400 Y-6.09600
|
||||
G0 X-45.65000 Y-78.85000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X64.69400 Y-6.09600
|
||||
G0 X-48.05000 Y-87.00000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X67.23400 Y-6.09600
|
||||
G0 X-31.78400 Y-84.82200
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X55.45000 Y-13.00000
|
||||
G0 X-29.05000 Y-89.80000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X55.45000 Y-15.50000
|
||||
G0 X-28.05000 Y-89.80000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X55.45000 Y-18.00000
|
||||
G0 X-27.05000 Y-89.80000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X70.00000 Y-39.91800
|
||||
G0 X-26.05000 Y-89.80000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X70.00000 Y-42.41800
|
||||
G0 X-25.05000 Y-89.80000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X70.00000 Y-44.91800
|
||||
G0 X-24.05000 Y-89.80000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X95.40000 Y-45.40000
|
||||
G0 X-23.05000 Y-89.80000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X92.63400 Y-33.90000
|
||||
G0 X-8.92400 Y-84.84700
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X92.63400 Y-31.36000
|
||||
G0 X-4.05000 Y-87.00000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X92.63400 Y-28.82000
|
||||
G0 X4.05000 Y-87.00000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X92.63400 Y-26.28000
|
||||
G0 X6.45000 Y-78.85000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X82.25000 Y-25.67500
|
||||
G0 X6.45000 Y-76.35000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X82.15000 Y-29.42500
|
||||
G0 X6.45000 Y-73.85000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X92.63400 Y-23.74000
|
||||
G0 X1.25000 Y-68.00000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X92.63400 Y-21.20000
|
||||
G0 X-1.25000 Y-68.00000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X92.63400 Y-18.66000
|
||||
G0 X1.25000 Y-67.00000
|
||||
G1 Z-2.20000
|
||||
G1 Z2.00000
|
||||
G0 X92.63400 Y-16.12000
|
||||
G0 X1.25000 Y-66.00000
|
||||
G1 Z-2.20000
|
||||
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 Z2.00000
|
||||
|
||||
|
||||
@@ -1,84 +1,121 @@
|
||||
<?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="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:xlink="http://www.w3.org/1999/xlink">
|
||||
<circle cx="7681.1" cy="531.496" r="37.4016" style=""/>
|
||||
<circle cx="7086.3" cy="649.291" r="37.4016" style=""/>
|
||||
<circle cx="6886.3" cy="649.291" r="37.4016" style=""/>
|
||||
<circle cx="6686.3" cy="649.291" r="37.4016" style=""/>
|
||||
<circle cx="7614.17" cy="1192.91" r="37.4016" style=""/>
|
||||
<circle cx="7614.17" cy="1389.76" r="37.4016" style=""/>
|
||||
<circle cx="7614.17" cy="1586.61" r="37.4016" style=""/>
|
||||
<circle cx="7681.1" cy="3744.09" r="37.4016" style=""/>
|
||||
<circle cx="6468.5" cy="3706.14" r="37.4016" style=""/>
|
||||
<circle cx="6468.5" cy="3509.29" r="37.4016" style=""/>
|
||||
<circle cx="6468.5" cy="3312.44" r="37.4016" style=""/>
|
||||
<circle cx="5511.81" cy="2486.22" r="37.4016" style=""/>
|
||||
<circle cx="5503.94" cy="2190.94" r="37.4016" style=""/>
|
||||
<circle cx="4686.3" cy="1438.58" r="37.4016" style=""/>
|
||||
<circle cx="4686.3" cy="1638.58" r="37.4016" style=""/>
|
||||
<circle cx="4686.3" cy="1838.58" r="37.4016" style=""/>
|
||||
<circle cx="4686.3" cy="2038.58" r="37.4016" style=""/>
|
||||
<circle cx="4686.3" cy="2238.58" r="37.4016" style=""/>
|
||||
<circle cx="4686.3" cy="2438.58" r="37.4016" style=""/>
|
||||
<circle cx="4686.3" cy="2638.58" r="37.4016" style=""/>
|
||||
<circle cx="4686.3" cy="2838.58" r="37.4016" style=""/>
|
||||
<circle cx="4468.5" cy="3744.09" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="3948.82" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="3828.11" r="37.4016" style=""/>
|
||||
<circle cx="3744.09" cy="3744.09" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="3707.32" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="3586.61" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="3465.91" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="3345.12" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="3224.41" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="3103.7" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="2982.91" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="2862.2" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="2741.5" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="2620.71" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="2500" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="2379.29" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="2258.5" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="2137.8" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="2017.09" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="1896.3" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="1775.59" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="1654.88" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="1534.09" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="1413.39" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="1292.68" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="1171.89" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="1051.18" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="930.472" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="809.685" r="37.4016" style=""/>
|
||||
<circle cx="4468.5" cy="531.496" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="688.976" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="568.268" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="447.48" r="37.4016" style=""/>
|
||||
<circle cx="4106.3" cy="326.772" r="37.4016" style=""/>
|
||||
<circle cx="3744.09" cy="531.496" r="37.4016" style=""/>
|
||||
<circle cx="3149.29" cy="649.291" r="37.4016" style=""/>
|
||||
<circle cx="2949.29" cy="649.291" r="37.4016" style=""/>
|
||||
<circle cx="2749.29" cy="649.291" r="37.4016" style=""/>
|
||||
<circle cx="3677.17" cy="1192.91" r="37.4016" style=""/>
|
||||
<circle cx="3677.17" cy="1389.76" r="37.4016" style=""/>
|
||||
<circle cx="3677.17" cy="1586.61" r="37.4016" style=""/>
|
||||
<circle cx="2531.5" cy="3312.44" r="37.4016" style=""/>
|
||||
<circle cx="2531.5" cy="3509.29" r="37.4016" style=""/>
|
||||
<circle cx="2531.5" cy="3706.14" r="37.4016" style=""/>
|
||||
<circle cx="531.496" cy="3744.09" r="37.4016" style=""/>
|
||||
<circle cx="749.291" cy="2838.58" r="37.4016" style=""/>
|
||||
<circle cx="749.291" cy="2638.58" r="37.4016" style=""/>
|
||||
<circle cx="749.291" cy="2438.58" r="37.4016" style=""/>
|
||||
<circle cx="749.291" cy="2238.58" r="37.4016" style=""/>
|
||||
<circle cx="1566.93" cy="2190.94" r="37.4016" style=""/>
|
||||
<circle cx="1574.8" cy="2486.22" r="37.4016" style=""/>
|
||||
<circle cx="749.291" cy="2038.58" r="37.4016" style=""/>
|
||||
<circle cx="749.291" cy="1838.58" r="37.4016" style=""/>
|
||||
<circle cx="749.291" cy="1638.58" r="37.4016" style=""/>
|
||||
<circle cx="749.291" cy="1438.58" r="37.4016" style=""/>
|
||||
<circle cx="531.496" cy="531.496" r="37.4016" style=""/>
|
||||
<circle cx="4354.33" cy="-1968.53" r="37.4016" style=""/>
|
||||
<circle cx="2066.93" cy="350.371" r="37.4016" style=""/>
|
||||
<circle cx="2145.67" cy="350.371" r="37.4016" style=""/>
|
||||
<circle cx="2224.41" cy="350.371" r="37.4016" style=""/>
|
||||
<circle cx="2303.15" cy="350.371" r="37.4016" style=""/>
|
||||
<circle cx="2381.89" cy="350.371" r="37.4016" style=""/>
|
||||
<circle cx="2460.63" cy="350.371" r="37.4016" style=""/>
|
||||
<circle cx="2539.37" cy="350.371" r="37.4016" style=""/>
|
||||
<circle cx="2750.63" cy="739.899" r="37.4016" style=""/>
|
||||
<circle cx="3241.73" cy="771.631" r="37.4016" style=""/>
|
||||
<circle cx="3441.73" cy="771.631" r="37.4016" style=""/>
|
||||
<circle cx="3641.73" cy="771.631" r="37.4016" style=""/>
|
||||
<circle cx="4035.43" cy="570.844" r="37.4016" style=""/>
|
||||
<circle cx="4673.23" cy="570.844" r="37.4016" style=""/>
|
||||
<circle cx="5051.02" cy="742.419" r="37.4016" style=""/>
|
||||
<circle cx="5017.01" cy="1603.91" r="37.4016" style=""/>
|
||||
<circle cx="5017.01" cy="1803.91" r="37.4016" style=""/>
|
||||
<circle cx="5017.01" cy="2003.91" r="37.4016" style=""/>
|
||||
<circle cx="5017.01" cy="2203.91" r="37.4016" style=""/>
|
||||
<circle cx="5017.01" cy="2403.91" r="37.4016" style=""/>
|
||||
<circle cx="5017.01" cy="2603.91" r="37.4016" style=""/>
|
||||
<circle cx="5017.01" cy="2803.91" r="37.4016" style=""/>
|
||||
<circle cx="4452.76" cy="2066.91" r="37.4016" style=""/>
|
||||
<circle cx="4452.76" cy="2145.65" r="37.4016" style=""/>
|
||||
<circle cx="4452.76" cy="2224.39" r="37.4016" style=""/>
|
||||
<circle cx="4452.76" cy="2303.13" r="37.4016" style=""/>
|
||||
<circle cx="4452.76" cy="2381.87" r="37.4016" style=""/>
|
||||
<circle cx="4452.76" cy="2460.61" r="37.4016" style=""/>
|
||||
<circle cx="5017.01" cy="3003.91" r="37.4016" style=""/>
|
||||
<circle cx="5842.52" cy="2651.55" r="37.4016" style=""/>
|
||||
<circle cx="5834.65" cy="2356.28" r="37.4016" style=""/>
|
||||
<circle cx="6852.99" cy="739.899" r="37.4016" style=""/>
|
||||
<circle cx="6169.29" cy="350.371" r="37.4016" style=""/>
|
||||
<circle cx="6248.03" cy="350.371" r="37.4016" style=""/>
|
||||
<circle cx="6326.77" cy="350.371" r="37.4016" style=""/>
|
||||
<circle cx="6405.51" cy="350.371" r="37.4016" style=""/>
|
||||
<circle cx="6484.25" cy="350.371" r="37.4016" style=""/>
|
||||
<circle cx="6562.99" cy="350.371" r="37.4016" style=""/>
|
||||
<circle cx="6641.73" cy="350.371" r="37.4016" style=""/>
|
||||
<circle cx="7344.09" cy="771.631" r="37.4016" style=""/>
|
||||
<circle cx="7544.09" cy="771.631" r="37.4016" style=""/>
|
||||
<circle cx="7944.88" cy="1358.25" r="37.4016" style=""/>
|
||||
<circle cx="7944.88" cy="1555.1" r="37.4016" style=""/>
|
||||
<circle cx="7744.09" cy="771.631" r="37.4016" style=""/>
|
||||
<circle cx="8137.8" cy="570.844" r="37.4016" style=""/>
|
||||
<circle cx="11311" cy="2303.13" r="37.4016" style=""/>
|
||||
<circle cx="8358.27" cy="2066.91" r="37.4016" style=""/>
|
||||
<circle cx="7944.88" cy="1751.95" r="37.4016" style=""/>
|
||||
<circle cx="8358.27" cy="2145.65" r="37.4016" style=""/>
|
||||
<circle cx="8358.27" cy="2224.39" r="37.4016" style=""/>
|
||||
<circle cx="8358.27" cy="2303.13" r="37.4016" style=""/>
|
||||
<circle cx="8358.27" cy="2381.87" r="37.4016" style=""/>
|
||||
<circle cx="8358.27" cy="2460.61" r="37.4016" style=""/>
|
||||
<circle cx="8358.27" cy="2539.35" r="37.4016" style=""/>
|
||||
<circle cx="7948.82" cy="2999.98" r="37.4016" style=""/>
|
||||
<circle cx="7948.82" cy="3196.83" r="37.4016" style=""/>
|
||||
<circle cx="7948.82" cy="3393.68" r="37.4016" style=""/>
|
||||
<circle cx="8137.8" cy="4035.41" r="37.4016" style=""/>
|
||||
<circle cx="6857.01" cy="3863.91" r="37.4016" style=""/>
|
||||
<circle cx="6641.73" cy="4255.88" r="37.4016" style=""/>
|
||||
<circle cx="6562.99" cy="4255.88" r="37.4016" style=""/>
|
||||
<circle cx="6484.25" cy="4255.88" r="37.4016" style=""/>
|
||||
<circle cx="6405.51" cy="4255.88" r="37.4016" style=""/>
|
||||
<circle cx="6326.77" cy="4255.88" r="37.4016" style=""/>
|
||||
<circle cx="6248.03" cy="4255.88" r="37.4016" style=""/>
|
||||
<circle cx="6169.29" cy="4255.88" r="37.4016" style=""/>
|
||||
<circle cx="5057.01" cy="3865.88" r="37.4016" style=""/>
|
||||
<circle cx="4673.23" cy="4035.41" r="37.4016" style=""/>
|
||||
<circle cx="4035.43" cy="4035.41" r="37.4016" style=""/>
|
||||
<circle cx="3846.46" cy="3393.68" r="37.4016" style=""/>
|
||||
<circle cx="3846.46" cy="3196.83" r="37.4016" style=""/>
|
||||
<circle cx="3846.46" cy="2999.98" r="37.4016" style=""/>
|
||||
<circle cx="4255.91" cy="2539.35" r="37.4016" style=""/>
|
||||
<circle cx="4452.76" cy="2539.35" r="37.4016" style=""/>
|
||||
<circle cx="4255.91" cy="2460.61" r="37.4016" style=""/>
|
||||
<circle cx="4255.91" cy="2381.87" 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>
|
||||
|
||||
|
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 )
|
||||
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. )
|
||||
G04 P0 ( dwell for no time -- G64 should not smooth over this point )
|
||||
G01 F400.00000
|
||||
G01 X101.04996 Y-26.29491
|
||||
G00 Z0.00000
|
||||
G01 X101.04996 Y-23.69491
|
||||
G01 X51.99966 Y-90.71861
|
||||
G01 Z-4.00000 F50.00000
|
||||
G01 F400.00000
|
||||
G01 X101.04993 Y0.01016
|
||||
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
|
||||
G01 X51.99938 Y-90.55170
|
||||
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 F400.00000
|
||||
G01 X0.00002 Y1.04999
|
||||
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
|
||||
G01 X51.59941 Y-90.94934
|
||||
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 F400.00000
|
||||
G01 X-1.04991 Y-50.01014
|
||||
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
|
||||
G01 X-51.62078 Y-90.86662
|
||||
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 F400.00000
|
||||
G01 X100.01016 Y-51.04991
|
||||
G01 X100.11176 Y-51.04397
|
||||
G01 X100.21232 Y-51.02824
|
||||
G01 X100.31087 Y-51.00290
|
||||
G01 X100.40650 Y-50.96805
|
||||
G01 X100.49832 Y-50.92418
|
||||
G01 X100.58544 Y-50.87160
|
||||
G01 X100.66708 Y-50.81082
|
||||
G01 X100.74244 Y-50.74242
|
||||
G01 X100.81084 Y-50.66706
|
||||
G01 X100.87163 Y-50.58542
|
||||
G01 X100.92420 Y-50.49830
|
||||
G01 X100.97201 Y-50.39708
|
||||
G01 X101.00587 Y-50.30112
|
||||
G01 X101.03030 Y-50.20231
|
||||
G01 X101.04506 Y-50.10163
|
||||
G01 X101.04999 Y-49.99998
|
||||
G01 X51.94434 Y-39.45064
|
||||
G00 Z0.00000
|
||||
G01 X51.99679 Y-39.54362
|
||||
G01 X51.99921 Y-39.54790
|
||||
G01 X52.00002 Y-39.53165
|
||||
G04 P0 ( dwell for no time -- G64 should not smooth over this point )
|
||||
G00 Z2.00000 ( retract )
|
||||
|
||||
G00 X-51.49954 Y-39.05087 ( 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.83765 Y-39.05105
|
||||
G01 Z-4.00000 F50.00000
|
||||
G01 F400.00000
|
||||
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 )
|
||||
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",
|
||||
"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": {
|
||||
"ProjectId": {
|
||||
@@ -14,8 +14,8 @@
|
||||
"Revision": "rev?"
|
||||
},
|
||||
"Size": {
|
||||
"X": 100.1,
|
||||
"Y": 50.1
|
||||
"X": 106.3996,
|
||||
"Y": 54.2993
|
||||
},
|
||||
"LayerNumber": 2,
|
||||
"BoardThickness": 1.6002,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
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}
|
||||
; #@! 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.FileFunction,MixedPlating,1,2
|
||||
FMAT,2
|
||||
@@ -13,92 +13,135 @@ T2C1.000
|
||||
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
||||
T3C1.000
|
||||
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
|
||||
T4C1.000
|
||||
T4C0.500
|
||||
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
|
||||
T5C3.200
|
||||
T5C2.150
|
||||
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
|
||||
T6C2.700
|
||||
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
|
||||
T7C3.172
|
||||
%
|
||||
G90
|
||||
G05
|
||||
T1
|
||||
X30.0Y-39.918
|
||||
X30.0Y-42.418
|
||||
X30.0Y-44.918
|
||||
X44.55Y-13.0
|
||||
X44.55Y-15.5
|
||||
X44.55Y-18.0
|
||||
X80.0Y-39.918
|
||||
X80.0Y-42.418
|
||||
X80.0Y-44.918
|
||||
X94.55Y-13.0
|
||||
X94.55Y-15.5
|
||||
X94.55Y-18.0
|
||||
X93.5Y-53.0
|
||||
X93.5Y-55.5
|
||||
X93.5Y-58.0
|
||||
X93.55Y-73.85
|
||||
X93.55Y-76.35
|
||||
X93.55Y-78.85
|
||||
X145.6Y-53.0
|
||||
X145.6Y-55.5
|
||||
X145.6Y-58.0
|
||||
X145.65Y-73.85
|
||||
X145.65Y-76.35
|
||||
X145.65Y-78.85
|
||||
T2
|
||||
X17.75Y-25.675
|
||||
X17.85Y-29.425
|
||||
X67.75Y-25.675
|
||||
X67.85Y-29.425
|
||||
X66.7Y-65.675
|
||||
X66.8Y-69.425
|
||||
X118.8Y-65.675
|
||||
X118.9Y-69.425
|
||||
T3
|
||||
X7.366Y-16.12
|
||||
X7.366Y-18.66
|
||||
X7.366Y-21.2
|
||||
X7.366Y-23.74
|
||||
X7.366Y-26.28
|
||||
X7.366Y-28.82
|
||||
X7.366Y-31.36
|
||||
X7.366Y-33.9
|
||||
X32.766Y-6.096
|
||||
X35.306Y-6.096
|
||||
X37.846Y-6.096
|
||||
X57.366Y-16.12
|
||||
X57.366Y-18.66
|
||||
X57.366Y-21.2
|
||||
X57.366Y-23.74
|
||||
X57.366Y-26.28
|
||||
X57.366Y-28.82
|
||||
X57.366Y-31.36
|
||||
X57.366Y-33.9
|
||||
X82.766Y-6.096
|
||||
X85.306Y-6.096
|
||||
X87.846Y-6.096
|
||||
X56.316Y-56.12
|
||||
X56.316Y-58.66
|
||||
X56.316Y-61.2
|
||||
X56.316Y-63.74
|
||||
X56.316Y-66.28
|
||||
X56.316Y-68.82
|
||||
X56.316Y-71.36
|
||||
X56.316Y-73.9
|
||||
X85.87Y-45.55
|
||||
X88.41Y-45.55
|
||||
X90.95Y-45.55
|
||||
X108.416Y-56.12
|
||||
X108.416Y-58.66
|
||||
X108.416Y-61.2
|
||||
X108.416Y-63.74
|
||||
X108.416Y-66.28
|
||||
X108.416Y-68.82
|
||||
X108.416Y-71.36
|
||||
X108.416Y-73.9
|
||||
X137.97Y-45.55
|
||||
X140.51Y-45.55
|
||||
X143.05Y-45.55
|
||||
T4
|
||||
X50.0Y-2.0
|
||||
X50.0Y-3.533
|
||||
X50.0Y-5.067
|
||||
X50.0Y-6.6
|
||||
X50.0Y-8.133
|
||||
X50.0Y-9.667
|
||||
X50.0Y-11.2
|
||||
X50.0Y-12.733
|
||||
X50.0Y-14.267
|
||||
X50.0Y-15.8
|
||||
X50.0Y-17.333
|
||||
X50.0Y-18.867
|
||||
X50.0Y-20.4
|
||||
X50.0Y-21.933
|
||||
X50.0Y-23.467
|
||||
X50.0Y-25.0
|
||||
X50.0Y-26.533
|
||||
X50.0Y-28.067
|
||||
X50.0Y-29.6
|
||||
X50.0Y-31.133
|
||||
X50.0Y-32.667
|
||||
X50.0Y-34.2
|
||||
X50.0Y-35.733
|
||||
X50.0Y-37.267
|
||||
X50.0Y-38.8
|
||||
X50.0Y-40.333
|
||||
X50.0Y-41.867
|
||||
X50.0Y-43.4
|
||||
X50.0Y-44.933
|
||||
X50.0Y-46.467
|
||||
X50.0Y-48.0
|
||||
X49.15Y-62.0
|
||||
X49.15Y-63.0
|
||||
X49.15Y-64.0
|
||||
X49.15Y-65.0
|
||||
X49.15Y-66.0
|
||||
X49.15Y-67.0
|
||||
X49.15Y-68.0
|
||||
X70.95Y-40.2
|
||||
X70.95Y-89.8
|
||||
X71.95Y-40.2
|
||||
X71.95Y-89.8
|
||||
X72.95Y-40.2
|
||||
X72.95Y-89.8
|
||||
X73.95Y-40.2
|
||||
X73.95Y-89.8
|
||||
X74.95Y-40.2
|
||||
X74.95Y-89.8
|
||||
X75.95Y-40.2
|
||||
X75.95Y-89.8
|
||||
X76.95Y-40.2
|
||||
X76.95Y-89.8
|
||||
X98.75Y-62.0
|
||||
X98.75Y-63.0
|
||||
X98.75Y-64.0
|
||||
X98.75Y-65.0
|
||||
X98.75Y-66.0
|
||||
X98.75Y-67.0
|
||||
X98.75Y-68.0
|
||||
X101.25Y-62.0
|
||||
X101.25Y-63.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
|
||||
X4.6Y-4.6
|
||||
X4.6Y-45.4
|
||||
X45.4Y-4.6
|
||||
X45.4Y-45.4
|
||||
X54.6Y-4.6
|
||||
X54.6Y-45.4
|
||||
X95.4Y-4.6
|
||||
X95.4Y-45.4
|
||||
X56.748Y-45.179
|
||||
X56.824Y-84.847
|
||||
X79.633Y-45.147
|
||||
X79.684Y-84.822
|
||||
X108.848Y-45.179
|
||||
X108.924Y-84.847
|
||||
X131.733Y-45.147
|
||||
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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"board": {
|
||||
"active_layer": 17,
|
||||
"active_layer": 0,
|
||||
"active_layer_preset": "",
|
||||
"auto_track_width": true,
|
||||
"hidden_netclasses": [],
|
||||
@@ -40,7 +40,6 @@
|
||||
"footprint_references",
|
||||
"tracks",
|
||||
"drc_errors",
|
||||
"drawing_sheet",
|
||||
"bitmaps",
|
||||
"pads",
|
||||
"zones",
|
||||
@@ -50,7 +49,7 @@
|
||||
"conflict_shadows",
|
||||
"shapes"
|
||||
],
|
||||
"visible_layers": "00000000_00000000_0fffffff_fffffffe",
|
||||
"visible_layers": "00000000_00000000_0fffffff_ffffffff",
|
||||
"zone_display_mode": 0
|
||||
},
|
||||
"git": {
|
||||
|
||||
@@ -37,9 +37,9 @@
|
||||
"other_text_thickness": 0.15,
|
||||
"other_text_upright": false,
|
||||
"pads": {
|
||||
"drill": 0.95,
|
||||
"height": 1.95,
|
||||
"width": 1.7
|
||||
"drill": 0.0,
|
||||
"height": 0.4,
|
||||
"width": 1.325
|
||||
},
|
||||
"silk_line_width": 0.1524,
|
||||
"silk_text_italic": false,
|
||||
@@ -123,7 +123,7 @@
|
||||
},
|
||||
"rules": {
|
||||
"max_error": 0.005,
|
||||
"min_clearance": 0.3,
|
||||
"min_clearance": 0.25,
|
||||
"min_connection": 0.0,
|
||||
"min_copper_edge_clearance": 0.5,
|
||||
"min_groove_width": 0.0,
|
||||
@@ -321,45 +321,29 @@
|
||||
"net_colors": null,
|
||||
"netclass_assignments": null,
|
||||
"netclass_patterns": [
|
||||
{
|
||||
"netclass": "Board_0-Default",
|
||||
"pattern": "Board_0-/FLOW_PULSE_MCU"
|
||||
},
|
||||
{
|
||||
"netclass": "Board_0-Default",
|
||||
"pattern": "Board_0-+5V"
|
||||
},
|
||||
{
|
||||
"netclass": "Board_0-Default",
|
||||
"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",
|
||||
"pattern": "Board_0-/RAW_SENSOR"
|
||||
},
|
||||
{
|
||||
"netclass": "Board_0-Default",
|
||||
"pattern": "Board_0-Net-(Q1-G)"
|
||||
},
|
||||
{
|
||||
"netclass": "Board_0-Default",
|
||||
"pattern": "Board_0-/ALARM_TRIGGER"
|
||||
},
|
||||
{
|
||||
"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",
|
||||
@@ -367,7 +351,23 @@
|
||||
},
|
||||
{
|
||||
"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",
|
||||
@@ -375,11 +375,19 @@
|
||||
},
|
||||
{
|
||||
"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",
|
||||
"pattern": "Board_1-GND"
|
||||
"pattern": "Board_1-/I2C_SCL"
|
||||
},
|
||||
{
|
||||
"netclass": "Board_1-Default",
|
||||
"pattern": "Board_1-/RAW_SENSOR"
|
||||
},
|
||||
{
|
||||
"netclass": "Board_1-Default",
|
||||
@@ -387,20 +395,40 @@
|
||||
},
|
||||
{
|
||||
"netclass": "Board_1-Default",
|
||||
"pattern": "Board_1-/FLOW_PULSE_MCU"
|
||||
"pattern": "Board_1-Net-(Q1-G)"
|
||||
},
|
||||
{
|
||||
"netclass": "Board_1-Default",
|
||||
"pattern": "Board_1-unconnected-(J3-*-Pad5)"
|
||||
"pattern": "Board_1-GND"
|
||||
},
|
||||
{
|
||||
"netclass": "Board_1-Default",
|
||||
"pattern": "Board_1-unconnected-(J3-#-Pad6)"
|
||||
},
|
||||
{
|
||||
"netclass": "Board_1-Default",
|
||||
"pattern": "Board_1-+5V"
|
||||
},
|
||||
{
|
||||
"netclass": "Board_1-Default",
|
||||
"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",
|
||||
"pattern": "Board_1-Net-(J3-UP)"
|
||||
@@ -411,27 +439,7 @@
|
||||
},
|
||||
{
|
||||
"netclass": "Board_1-Default",
|
||||
"pattern": "Board_1-/I2C_SCL"
|
||||
},
|
||||
{
|
||||
"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"
|
||||
"pattern": "Board_1-/FLOW_PULSE_MCU"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
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)
|
||||