@tscircuit/core 0.0.340 → 0.0.342
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +81 -53
- package/dist/index.js +23 -4
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -105,7 +105,86 @@ interface SchematicBoxDimensions {
|
|
|
105
105
|
};
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
type
|
|
108
|
+
type SimplifiedPcbTrace = {
|
|
109
|
+
type: "pcb_trace";
|
|
110
|
+
pcb_trace_id: string;
|
|
111
|
+
connection_name?: string;
|
|
112
|
+
route: Array<{
|
|
113
|
+
route_type: "wire";
|
|
114
|
+
x: number;
|
|
115
|
+
y: number;
|
|
116
|
+
width: number;
|
|
117
|
+
layer: string;
|
|
118
|
+
} | {
|
|
119
|
+
route_type: "via";
|
|
120
|
+
x: number;
|
|
121
|
+
y: number;
|
|
122
|
+
to_layer: string;
|
|
123
|
+
from_layer: string;
|
|
124
|
+
}>;
|
|
125
|
+
};
|
|
126
|
+
type Obstacle = {
|
|
127
|
+
type: "rect";
|
|
128
|
+
layers: string[];
|
|
129
|
+
center: {
|
|
130
|
+
x: number;
|
|
131
|
+
y: number;
|
|
132
|
+
};
|
|
133
|
+
width: number;
|
|
134
|
+
height: number;
|
|
135
|
+
connectedTo: string[];
|
|
136
|
+
};
|
|
137
|
+
interface SimpleRouteConnection {
|
|
138
|
+
name: string;
|
|
139
|
+
pointsToConnect: Array<{
|
|
140
|
+
x: number;
|
|
141
|
+
y: number;
|
|
142
|
+
layer: string;
|
|
143
|
+
}>;
|
|
144
|
+
}
|
|
145
|
+
interface SimpleRouteJson {
|
|
146
|
+
layerCount: number;
|
|
147
|
+
minTraceWidth: number;
|
|
148
|
+
obstacles: Obstacle[];
|
|
149
|
+
connections: Array<SimpleRouteConnection>;
|
|
150
|
+
bounds: {
|
|
151
|
+
minX: number;
|
|
152
|
+
maxX: number;
|
|
153
|
+
minY: number;
|
|
154
|
+
maxY: number;
|
|
155
|
+
};
|
|
156
|
+
traces?: SimplifiedPcbTrace[];
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
type RootCircuitEventName = "asyncEffect:start" | "asyncEffect:end" | "renderable:renderLifecycle:anyEvent" | `renderable:renderLifecycle:${RenderPhase}:start` | `renderable:renderLifecycle:${RenderPhase}:end` | "external:evalError" | "autorouting:start" | "autorouting:end" | "autorouting:error" | "autorouting:progress" | "renderComplete";
|
|
160
|
+
interface AutoroutingStartEvent {
|
|
161
|
+
type: "autorouting:start";
|
|
162
|
+
subcircuit_id: string;
|
|
163
|
+
componentDisplayName: string;
|
|
164
|
+
simpleRouteJson: SimpleRouteJson;
|
|
165
|
+
}
|
|
166
|
+
interface AutoroutingErrorEvent {
|
|
167
|
+
type: "autorouting:error";
|
|
168
|
+
subcircuit_id: string;
|
|
169
|
+
componentDisplayName: string;
|
|
170
|
+
error?: {
|
|
171
|
+
message: string;
|
|
172
|
+
stack?: string;
|
|
173
|
+
};
|
|
174
|
+
simpleRouteJson?: SimpleRouteJson;
|
|
175
|
+
debugGraphics?: any;
|
|
176
|
+
}
|
|
177
|
+
interface AutoroutingProgressEvent {
|
|
178
|
+
type: "autorouting:progress";
|
|
179
|
+
subcircuit_id: string;
|
|
180
|
+
componentDisplayName: string;
|
|
181
|
+
progress: number;
|
|
182
|
+
debugGraphics?: any;
|
|
183
|
+
}
|
|
184
|
+
interface AutoroutingEndEvent {
|
|
185
|
+
type: "autorouting:end";
|
|
186
|
+
}
|
|
187
|
+
|
|
109
188
|
declare class RootCircuit {
|
|
110
189
|
firstChild: PrimitiveComponent | null;
|
|
111
190
|
children: PrimitiveComponent[];
|
|
@@ -915,57 +994,6 @@ declare class NormalComponent<ZodProps extends ZodType = any, PortNames extends
|
|
|
915
994
|
_createTracesFromConnectionsProp(): void;
|
|
916
995
|
}
|
|
917
996
|
|
|
918
|
-
type SimplifiedPcbTrace = {
|
|
919
|
-
type: "pcb_trace";
|
|
920
|
-
pcb_trace_id: string;
|
|
921
|
-
connection_name?: string;
|
|
922
|
-
route: Array<{
|
|
923
|
-
route_type: "wire";
|
|
924
|
-
x: number;
|
|
925
|
-
y: number;
|
|
926
|
-
width: number;
|
|
927
|
-
layer: string;
|
|
928
|
-
} | {
|
|
929
|
-
route_type: "via";
|
|
930
|
-
x: number;
|
|
931
|
-
y: number;
|
|
932
|
-
to_layer: string;
|
|
933
|
-
from_layer: string;
|
|
934
|
-
}>;
|
|
935
|
-
};
|
|
936
|
-
type Obstacle = {
|
|
937
|
-
type: "rect";
|
|
938
|
-
layers: string[];
|
|
939
|
-
center: {
|
|
940
|
-
x: number;
|
|
941
|
-
y: number;
|
|
942
|
-
};
|
|
943
|
-
width: number;
|
|
944
|
-
height: number;
|
|
945
|
-
connectedTo: string[];
|
|
946
|
-
};
|
|
947
|
-
interface SimpleRouteConnection {
|
|
948
|
-
name: string;
|
|
949
|
-
pointsToConnect: Array<{
|
|
950
|
-
x: number;
|
|
951
|
-
y: number;
|
|
952
|
-
layer: string;
|
|
953
|
-
}>;
|
|
954
|
-
}
|
|
955
|
-
interface SimpleRouteJson {
|
|
956
|
-
layerCount: number;
|
|
957
|
-
minTraceWidth: number;
|
|
958
|
-
obstacles: Obstacle[];
|
|
959
|
-
connections: Array<SimpleRouteConnection>;
|
|
960
|
-
bounds: {
|
|
961
|
-
minX: number;
|
|
962
|
-
maxX: number;
|
|
963
|
-
minY: number;
|
|
964
|
-
maxY: number;
|
|
965
|
-
};
|
|
966
|
-
traces?: SimplifiedPcbTrace[];
|
|
967
|
-
}
|
|
968
|
-
|
|
969
997
|
declare class Group<Props extends z.ZodType<any, any, any> = typeof groupProps> extends NormalComponent<Props> implements ISubcircuit {
|
|
970
998
|
pcb_group_id: string | null;
|
|
971
999
|
subcircuit_id: string | null;
|
|
@@ -11190,4 +11218,4 @@ declare module "react/jsx-runtime" {
|
|
|
11190
11218
|
}
|
|
11191
11219
|
}
|
|
11192
11220
|
|
|
11193
|
-
export { type AsyncEffect, type AutorouterCompleteEvent, type AutorouterErrorEvent, type AutorouterEvent, type AutorouterProgressEvent, Battery, Board, Capacitor, Chip, Circuit, type ComponentWithPins, Constraint, Crystal, Diode, FabricationNotePath, FabricationNoteText, Footprint, type GenericLocalAutorouter, Group, Hole, type IRenderable, Inductor, Jumper, Keepout, Led, Mosfet, Net, NetAlias, NormalComponent, type Obstacle, PinHeader, type PinLabelSpec, PlatedHole, Port, Potentiometer, PowerSource, PrimitiveComponent, Project, PushButton, type RenderPhase, type RenderPhaseFn, type RenderPhaseFunctions, type RenderPhaseStates, Renderable, Resistor, Resonator, RootCircuit, type RootCircuitEventName, type Sel, SilkscreenCircle, SilkscreenLine, SilkscreenPath, SilkscreenRect, SilkscreenText, type SimpleRouteConnection, type SimpleRouteJson, type SimplifiedPcbTrace, SmtPad, Subcircuit, Switch, Trace, TraceHint, Transistor, Via, applyEditEventsToManualEditsFile, createUseComponent, getPhaseTimingsFromRenderEvents, getSimpleRouteJsonFromCircuitJson, orderedRenderPhases, sel, useCapacitor, useChip, useDiode, useLed, useRenderedCircuit, useResistor };
|
|
11221
|
+
export { type AsyncEffect, type AutorouterCompleteEvent, type AutorouterErrorEvent, type AutorouterEvent, type AutorouterProgressEvent, type AutoroutingEndEvent, type AutoroutingErrorEvent, type AutoroutingProgressEvent, type AutoroutingStartEvent, Battery, Board, Capacitor, Chip, Circuit, type ComponentWithPins, Constraint, Crystal, Diode, FabricationNotePath, FabricationNoteText, Footprint, type GenericLocalAutorouter, Group, Hole, type IRenderable, Inductor, Jumper, Keepout, Led, Mosfet, Net, NetAlias, NormalComponent, type Obstacle, PinHeader, type PinLabelSpec, PlatedHole, Port, Potentiometer, PowerSource, PrimitiveComponent, Project, PushButton, type RenderPhase, type RenderPhaseFn, type RenderPhaseFunctions, type RenderPhaseStates, Renderable, Resistor, Resonator, RootCircuit, type RootCircuitEventName, type Sel, SilkscreenCircle, SilkscreenLine, SilkscreenPath, SilkscreenRect, SilkscreenText, type SimpleRouteConnection, type SimpleRouteJson, type SimplifiedPcbTrace, SmtPad, Subcircuit, Switch, Trace, TraceHint, Transistor, Via, applyEditEventsToManualEditsFile, createUseComponent, getPhaseTimingsFromRenderEvents, getSimpleRouteJsonFromCircuitJson, orderedRenderPhases, sel, useCapacitor, useChip, useDiode, useLed, useRenderedCircuit, useResistor };
|
package/dist/index.js
CHANGED
|
@@ -3656,7 +3656,18 @@ var pushEdgesOfSchematicTraceToPreventOverlap = ({
|
|
|
3656
3656
|
var isRouteOutsideBoard = (mergedRoute, { db }) => {
|
|
3657
3657
|
const pcbBoard = db.pcb_board.list()[0];
|
|
3658
3658
|
if (pcbBoard.outline) {
|
|
3659
|
-
|
|
3659
|
+
const boardOutline = pcbBoard.outline;
|
|
3660
|
+
const isInsidePolygon = (point, polygon) => {
|
|
3661
|
+
let inside = false;
|
|
3662
|
+
for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {
|
|
3663
|
+
const xi = polygon[i].x, yi = polygon[i].y;
|
|
3664
|
+
const xj = polygon[j].x, yj = polygon[j].y;
|
|
3665
|
+
const intersect = yi > point.y !== yj > point.y && point.x < (xj - xi) * (point.y - yi) / (yj - yi) + xi;
|
|
3666
|
+
if (intersect) inside = !inside;
|
|
3667
|
+
}
|
|
3668
|
+
return inside;
|
|
3669
|
+
};
|
|
3670
|
+
return mergedRoute.some((point) => !isInsidePolygon(point, boardOutline));
|
|
3660
3671
|
}
|
|
3661
3672
|
const boardWidth = pcbBoard.width;
|
|
3662
3673
|
const boardHeight = pcbBoard.height;
|
|
@@ -5875,9 +5886,17 @@ var Group = class extends NormalComponent {
|
|
|
5875
5886
|
} catch (error) {
|
|
5876
5887
|
const { db: db2 } = this.root;
|
|
5877
5888
|
db2.pcb_autorouting_error.insert({
|
|
5878
|
-
pcb_error_id: `
|
|
5889
|
+
pcb_error_id: `pcb_autorouter_error_subcircuit_${this.subcircuit_id}`,
|
|
5879
5890
|
message: error instanceof Error ? error.message : String(error)
|
|
5880
5891
|
});
|
|
5892
|
+
this.root?.emit("autorouting:error", {
|
|
5893
|
+
subcircuit_id: this.subcircuit_id,
|
|
5894
|
+
componentDisplayName: this.getString(),
|
|
5895
|
+
error: {
|
|
5896
|
+
message: error instanceof Error ? error.message : String(error)
|
|
5897
|
+
},
|
|
5898
|
+
simpleRouteJson
|
|
5899
|
+
});
|
|
5881
5900
|
throw error;
|
|
5882
5901
|
} finally {
|
|
5883
5902
|
autorouter.stop();
|
|
@@ -7234,7 +7253,7 @@ import { identity as identity4 } from "transformation-matrix";
|
|
|
7234
7253
|
var package_default = {
|
|
7235
7254
|
name: "@tscircuit/core",
|
|
7236
7255
|
type: "module",
|
|
7237
|
-
version: "0.0.
|
|
7256
|
+
version: "0.0.341",
|
|
7238
7257
|
types: "dist/index.d.ts",
|
|
7239
7258
|
main: "dist/index.js",
|
|
7240
7259
|
module: "dist/index.js",
|
|
@@ -7286,7 +7305,7 @@ var package_default = {
|
|
|
7286
7305
|
},
|
|
7287
7306
|
dependencies: {
|
|
7288
7307
|
"@lume/kiwi": "^0.4.3",
|
|
7289
|
-
"@tscircuit/capacity-autorouter": "^0.0.
|
|
7308
|
+
"@tscircuit/capacity-autorouter": "^0.0.15",
|
|
7290
7309
|
"@tscircuit/infgrid-ijump-astar": "^0.0.33",
|
|
7291
7310
|
"@tscircuit/math-utils": "^0.0.9",
|
|
7292
7311
|
"@tscircuit/props": "^0.0.159",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tscircuit/core",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.342",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"module": "dist/index.js",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
55
|
"@lume/kiwi": "^0.4.3",
|
|
56
|
-
"@tscircuit/capacity-autorouter": "^0.0.
|
|
56
|
+
"@tscircuit/capacity-autorouter": "^0.0.15",
|
|
57
57
|
"@tscircuit/infgrid-ijump-astar": "^0.0.33",
|
|
58
58
|
"@tscircuit/math-utils": "^0.0.9",
|
|
59
59
|
"@tscircuit/props": "^0.0.159",
|