@modular-circuit/transpiler 0.0.74 → 0.0.75
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/build/converter/netlist_to_kicad/calc_boxes_pos.d.ts +5 -0
- package/build/converter/netlist_to_kicad/calc_boxes_pos.d.ts.map +1 -0
- package/build/converter/netlist_to_kicad/calc_boxes_pos.js +60 -0
- package/build/converter/netlist_to_kicad/netlist_converter.d.ts.map +1 -1
- package/build/converter/netlist_to_kicad/netlist_converter.js +36 -15
- package/build/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +4 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calc_boxes_pos.d.ts","sourceRoot":"","sources":["../../../src/converter/netlist_to_kicad/calc_boxes_pos.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAA;AAKjE,eAAO,MAAM,cAAc,GAAI,OAAO;IACpC,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAA;CACtB,4BAqCA,CAAA"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
var __values = (this && this.__values) || function(o) {
|
|
2
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
3
|
+
if (m) return m.call(o);
|
|
4
|
+
if (o && typeof o.length === "number") return {
|
|
5
|
+
next: function () {
|
|
6
|
+
if (o && i >= o.length) o = void 0;
|
|
7
|
+
return { value: o && o[i++], done: !o };
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
11
|
+
};
|
|
12
|
+
import Yoga from 'yoga-layout';
|
|
13
|
+
import { DEFAULT_PAPER_SIZE } from '../../utils';
|
|
14
|
+
import { GRID_SIZE } from './layout';
|
|
15
|
+
export var calc_boxes_pos = function (boxes) {
|
|
16
|
+
var e_1, _a;
|
|
17
|
+
var node = Yoga.Node.create();
|
|
18
|
+
node.setAlignContent(Yoga.ALIGN_CENTER);
|
|
19
|
+
node.setWidth(DEFAULT_PAPER_SIZE.width / GRID_SIZE);
|
|
20
|
+
node.setHeight(DEFAULT_PAPER_SIZE.height / GRID_SIZE);
|
|
21
|
+
node.setFlexDirection(Yoga.FLEX_DIRECTION_ROW);
|
|
22
|
+
node.setJustifyContent(Yoga.JUSTIFY_CENTER);
|
|
23
|
+
node.setPadding(Yoga.EDGE_ALL, 1);
|
|
24
|
+
var idList = Object.keys(boxes);
|
|
25
|
+
try {
|
|
26
|
+
for (var idList_1 = __values(idList), idList_1_1 = idList_1.next(); !idList_1_1.done; idList_1_1 = idList_1.next()) {
|
|
27
|
+
var id = idList_1_1.value;
|
|
28
|
+
var box = boxes[id];
|
|
29
|
+
var child = Yoga.Node.create();
|
|
30
|
+
// Use box.x and box.y as width and height (assuming VECTOR2 is { x, y })
|
|
31
|
+
var width = box.x / GRID_SIZE;
|
|
32
|
+
var height = box.y / GRID_SIZE;
|
|
33
|
+
child.setWidth(width);
|
|
34
|
+
child.setHeight(height);
|
|
35
|
+
child.setMargin(Yoga.EDGE_ALL, 2);
|
|
36
|
+
node.insertChild(child, node.getChildCount());
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
40
|
+
finally {
|
|
41
|
+
try {
|
|
42
|
+
if (idList_1_1 && !idList_1_1.done && (_a = idList_1.return)) _a.call(idList_1);
|
|
43
|
+
}
|
|
44
|
+
finally { if (e_1) throw e_1.error; }
|
|
45
|
+
}
|
|
46
|
+
node.calculateLayout(undefined, undefined, Yoga.DIRECTION_LTR);
|
|
47
|
+
// Map layout result by id
|
|
48
|
+
var result = {};
|
|
49
|
+
for (var i = 0; i < idList.length; i++) {
|
|
50
|
+
var id = idList[i];
|
|
51
|
+
var child = node.getChild(i);
|
|
52
|
+
result[id] = {
|
|
53
|
+
x: child.getComputedLeft() * GRID_SIZE,
|
|
54
|
+
y: child.getComputedTop() * GRID_SIZE,
|
|
55
|
+
};
|
|
56
|
+
child.free();
|
|
57
|
+
}
|
|
58
|
+
node.free();
|
|
59
|
+
return result;
|
|
60
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"netlist_converter.d.ts","sourceRoot":"","sources":["../../../src/converter/netlist_to_kicad/netlist_converter.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,SAAS,EAGf,MAAM,qBAAqB,CAAA;AAM5B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"netlist_converter.d.ts","sourceRoot":"","sources":["../../../src/converter/netlist_to_kicad/netlist_converter.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,SAAS,EAGf,MAAM,qBAAqB,CAAA;AAM5B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AAMtD,qBAAa,gBAAgB;IASR,OAAO,CAAC,GAAG;IAR9B,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,eAAe,CAAI;IAE3B,OAAO,CAAC,QAAQ,CAA6B;IAE7C,OAAO,CAAC,KAAK,CAAiB;gBAEH,GAAG,EAAE,qBAAqB;IAQrD,gBAAgB,CAAC,EAAE,EAAE,MAAM;IAI3B,gBAAgB,CAAC,EAAE,EAAE,MAAM;IAIpB,gBAAgB;IAavB;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAqFnB,OAAO,CAAC,0BAA0B;IAalC,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,2BAA2B;IA8CnC,OAAO,CAAC,oBAAoB;IAqC5B,OAAO,CAAC,iBAAiB;IAgCzB,OAAO,CAAC,iBAAiB;CAQ1B"}
|
|
@@ -32,8 +32,9 @@ import { gen_hierarchical_label, gen_net_label, gen_sheet_pin } from '../../kica
|
|
|
32
32
|
import { gen_sch_sheet } from '../../kicad/sheet';
|
|
33
33
|
import { gen_lib_gnd, gen_lib_vcc, gen_sch_gnd, gen_sch_vcc } from '../../kicad/symbols';
|
|
34
34
|
import { GENERATOR_NAME, GENERATOR_VERSION, SCH_VERSION } from '../../utils/constraints';
|
|
35
|
-
import { BLOCK_PIN_GAP, FONT_SIZE, Layout, WIRE_PADDING, get_power_pos
|
|
35
|
+
import { BLOCK_PIN_GAP, FONT_SIZE, Layout, WIRE_PADDING, get_power_pos } from './layout';
|
|
36
36
|
import { gen_wire } from '../../kicad/wire/gen_wire';
|
|
37
|
+
import { calc_boxes_pos } from './calc_boxes_pos';
|
|
37
38
|
var NetListConverter = /** @class */ (function () {
|
|
38
39
|
function NetListConverter(ctx) {
|
|
39
40
|
var e_1, _a, e_2, _b;
|
|
@@ -81,6 +82,7 @@ var NetListConverter = /** @class */ (function () {
|
|
|
81
82
|
var _d = __read(_c.value, 2), k = _d[0], v = _d[1];
|
|
82
83
|
this.sheet_pwr_count = 0;
|
|
83
84
|
this.block_calc = new Layout();
|
|
85
|
+
this.wires = [];
|
|
84
86
|
all_sch[k] = this.convert_sch(k, v);
|
|
85
87
|
}
|
|
86
88
|
}
|
|
@@ -101,10 +103,9 @@ var NetListConverter = /** @class */ (function () {
|
|
|
101
103
|
* @returns
|
|
102
104
|
*/
|
|
103
105
|
NetListConverter.prototype.convert_sch = function (name, schematic) {
|
|
104
|
-
var e_4, _a, e_5, _b, e_6, _c;
|
|
105
|
-
var
|
|
106
|
+
var e_4, _a, e_5, _b, e_6, _c, e_7, _d;
|
|
107
|
+
var _e, _f;
|
|
106
108
|
var powers = new Set();
|
|
107
|
-
this.wires = [];
|
|
108
109
|
var sch = {
|
|
109
110
|
version: SCH_VERSION,
|
|
110
111
|
generator: GENERATOR_NAME,
|
|
@@ -131,15 +132,15 @@ var NetListConverter = /** @class */ (function () {
|
|
|
131
132
|
sheets: [],
|
|
132
133
|
};
|
|
133
134
|
try {
|
|
134
|
-
for (var
|
|
135
|
-
var it_2 =
|
|
135
|
+
for (var _g = __values(schematic.powers), _h = _g.next(); !_h.done; _h = _g.next()) {
|
|
136
|
+
var it_2 = _h.value;
|
|
136
137
|
if (!powers.has(it_2.value)) {
|
|
137
138
|
switch (it_2.shape) {
|
|
138
139
|
case PowerShape.VCC:
|
|
139
|
-
(
|
|
140
|
+
(_e = sch.lib_symbols) === null || _e === void 0 ? void 0 : _e.symbols.push(gen_lib_vcc(it_2.value));
|
|
140
141
|
break;
|
|
141
142
|
case PowerShape.GND:
|
|
142
|
-
(
|
|
143
|
+
(_f = sch.lib_symbols) === null || _f === void 0 ? void 0 : _f.symbols.push(gen_lib_gnd(it_2.value));
|
|
143
144
|
break;
|
|
144
145
|
}
|
|
145
146
|
powers.add(it_2.value);
|
|
@@ -150,7 +151,7 @@ var NetListConverter = /** @class */ (function () {
|
|
|
150
151
|
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
151
152
|
finally {
|
|
152
153
|
try {
|
|
153
|
-
if (
|
|
154
|
+
if (_h && !_h.done && (_a = _g.return)) _a.call(_g);
|
|
154
155
|
}
|
|
155
156
|
finally { if (e_4) throw e_4.error; }
|
|
156
157
|
}
|
|
@@ -158,12 +159,15 @@ var NetListConverter = /** @class */ (function () {
|
|
|
158
159
|
var ordered_sheets = schematic.sheet_symbols.sort(function (a, b) {
|
|
159
160
|
return b.pins.length - a.pins.length;
|
|
160
161
|
});
|
|
162
|
+
var sheet_bounding_boxes = {};
|
|
163
|
+
var sheet_size = {};
|
|
161
164
|
try {
|
|
162
165
|
for (var ordered_sheets_1 = __values(ordered_sheets), ordered_sheets_1_1 = ordered_sheets_1.next(); !ordered_sheets_1_1.done; ordered_sheets_1_1 = ordered_sheets_1.next()) {
|
|
163
166
|
var it_3 = ordered_sheets_1_1.value;
|
|
164
167
|
var sheet_padding = this.get_sheet_symbol_lb_padding(it_3);
|
|
165
168
|
var block_geo = this.block_calc.get_block_geometry(sheet_padding);
|
|
166
|
-
|
|
169
|
+
sheet_bounding_boxes[it_3.uuid] = block_geo.bounding_box.size;
|
|
170
|
+
sheet_size[it_3.uuid] = block_geo.box.size;
|
|
167
171
|
}
|
|
168
172
|
}
|
|
169
173
|
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
@@ -173,25 +177,42 @@ var NetListConverter = /** @class */ (function () {
|
|
|
173
177
|
}
|
|
174
178
|
finally { if (e_5) throw e_5.error; }
|
|
175
179
|
}
|
|
180
|
+
var sheet_pos = calc_boxes_pos(sheet_bounding_boxes);
|
|
176
181
|
try {
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
182
|
+
for (var ordered_sheets_2 = __values(ordered_sheets), ordered_sheets_2_1 = ordered_sheets_2.next(); !ordered_sheets_2_1.done; ordered_sheets_2_1 = ordered_sheets_2.next()) {
|
|
183
|
+
var it_4 = ordered_sheets_2_1.value;
|
|
184
|
+
this.convert_sheet_symbol(it_4, {
|
|
185
|
+
pos: sheet_pos[it_4.uuid],
|
|
186
|
+
size: sheet_size[it_4.uuid],
|
|
187
|
+
}, sch, sheet_names_count);
|
|
181
188
|
}
|
|
182
189
|
}
|
|
183
190
|
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
184
191
|
finally {
|
|
185
192
|
try {
|
|
186
|
-
if (
|
|
193
|
+
if (ordered_sheets_2_1 && !ordered_sheets_2_1.done && (_c = ordered_sheets_2.return)) _c.call(ordered_sheets_2);
|
|
187
194
|
}
|
|
188
195
|
finally { if (e_6) throw e_6.error; }
|
|
189
196
|
}
|
|
197
|
+
try {
|
|
198
|
+
for (var _j = __values(schematic.hiera_labels), _k = _j.next(); !_k.done; _k = _j.next()) {
|
|
199
|
+
var it_5 = _k.value;
|
|
200
|
+
this.convert_hierarchical_label(it_5, sch);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
204
|
+
finally {
|
|
205
|
+
try {
|
|
206
|
+
if (_k && !_k.done && (_d = _j.return)) _d.call(_j);
|
|
207
|
+
}
|
|
208
|
+
finally { if (e_7) throw e_7.error; }
|
|
209
|
+
}
|
|
190
210
|
sch.wires = this.wires;
|
|
191
211
|
return sch;
|
|
192
212
|
};
|
|
193
213
|
NetListConverter.prototype.convert_hierarchical_label = function (pin, sch) {
|
|
194
214
|
var _a;
|
|
215
|
+
// FIXME: layout them in the Yoga layout
|
|
195
216
|
var pin_pos = this.block_calc.get_block_geometry({
|
|
196
217
|
internal: { l_side: 0, r_side: 0 },
|
|
197
218
|
outer: { l_side: 0, r_side: 0 },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/index.ts","../src/builder/index.ts","../src/builder/graph_to_kicad/do_convert_graph_to_kicad_project.ts","../src/builder/graph_to_kicad/index.ts","../src/converter/index.ts","../src/converter/graph_to_netlist/context.ts","../src/converter/graph_to_netlist/graph_converter.ts","../src/converter/graph_to_netlist/index.ts","../src/converter/kicad_sexpr/index.ts","../src/converter/kicad_sexpr/eeschema/index.ts","../src/converter/kicad_sexpr/eeschema/printer.ts","../src/converter/kicad_sexpr/eeschema/drawing_sheet/index.ts","../src/converter/kicad_sexpr/eeschema/drawing_sheet/sch_default_drawing_sheet.ts","../src/converter/kicad_sexpr/pcb/index.ts","../src/converter/link_to_netlist/context.ts","../src/converter/link_to_netlist/converter.ts","../src/converter/link_to_netlist/index.ts","../src/converter/link_to_netlist/links/converter_base.ts","../src/converter/link_to_netlist/links/converters.ts","../src/converter/link_to_netlist/links/index.ts","../src/converter/netlist_to_kicad/context.ts","../src/converter/netlist_to_kicad/index.ts","../src/converter/netlist_to_kicad/layout.ts","../src/converter/netlist_to_kicad/netlist_converter.ts","../src/kicad/index.ts","../src/kicad/constraints/index.ts","../src/kicad/label/index.ts","../src/kicad/label/net_label.ts","../src/kicad/label/sheet_pin.ts","../src/kicad/project/index.ts","../src/kicad/project/kicad_prl.ts","../src/kicad/project/kicad_pro.ts","../src/kicad/project/kicad_project_achieve.ts","../src/kicad/project/wildcards_and_files_ext.ts","../src/kicad/sheet/index.ts","../src/kicad/sheet/sheet.ts","../src/kicad/symbols/index.ts","../src/kicad/symbols/symbol_utils.ts","../src/kicad/symbols/lib_symbol/gnd.ts","../src/kicad/symbols/lib_symbol/index.ts","../src/kicad/symbols/lib_symbol/vcc.ts","../src/kicad/symbols/sch_symbol/gnd.ts","../src/kicad/symbols/sch_symbol/index.ts","../src/kicad/symbols/sch_symbol/vcc.ts","../src/kicad/wire/gen_wire.ts","../src/utils/collect_sub_sheets.ts","../src/utils/constraints.ts","../src/utils/filter_null_undefined.ts","../src/utils/index.ts","../src/utils/string_formatter.ts"],"version":"5.8.3"}
|
|
1
|
+
{"root":["../src/index.ts","../src/builder/index.ts","../src/builder/graph_to_kicad/do_convert_graph_to_kicad_project.ts","../src/builder/graph_to_kicad/index.ts","../src/converter/index.ts","../src/converter/graph_to_netlist/context.ts","../src/converter/graph_to_netlist/graph_converter.ts","../src/converter/graph_to_netlist/index.ts","../src/converter/kicad_sexpr/index.ts","../src/converter/kicad_sexpr/eeschema/index.ts","../src/converter/kicad_sexpr/eeschema/printer.ts","../src/converter/kicad_sexpr/eeschema/drawing_sheet/index.ts","../src/converter/kicad_sexpr/eeschema/drawing_sheet/sch_default_drawing_sheet.ts","../src/converter/kicad_sexpr/pcb/index.ts","../src/converter/link_to_netlist/context.ts","../src/converter/link_to_netlist/converter.ts","../src/converter/link_to_netlist/index.ts","../src/converter/link_to_netlist/links/converter_base.ts","../src/converter/link_to_netlist/links/converters.ts","../src/converter/link_to_netlist/links/index.ts","../src/converter/netlist_to_kicad/calc_boxes_pos.ts","../src/converter/netlist_to_kicad/context.ts","../src/converter/netlist_to_kicad/index.ts","../src/converter/netlist_to_kicad/layout.ts","../src/converter/netlist_to_kicad/netlist_converter.ts","../src/kicad/index.ts","../src/kicad/constraints/index.ts","../src/kicad/label/index.ts","../src/kicad/label/net_label.ts","../src/kicad/label/sheet_pin.ts","../src/kicad/project/index.ts","../src/kicad/project/kicad_prl.ts","../src/kicad/project/kicad_pro.ts","../src/kicad/project/kicad_project_achieve.ts","../src/kicad/project/wildcards_and_files_ext.ts","../src/kicad/sheet/index.ts","../src/kicad/sheet/sheet.ts","../src/kicad/symbols/index.ts","../src/kicad/symbols/symbol_utils.ts","../src/kicad/symbols/lib_symbol/gnd.ts","../src/kicad/symbols/lib_symbol/index.ts","../src/kicad/symbols/lib_symbol/vcc.ts","../src/kicad/symbols/sch_symbol/gnd.ts","../src/kicad/symbols/sch_symbol/index.ts","../src/kicad/symbols/sch_symbol/vcc.ts","../src/kicad/wire/gen_wire.ts","../src/utils/collect_sub_sheets.ts","../src/utils/constraints.ts","../src/utils/filter_null_undefined.ts","../src/utils/index.ts","../src/utils/string_formatter.ts"],"version":"5.8.3"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@modular-circuit/transpiler",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.75",
|
|
4
4
|
"description": "Intermediate representation of the modular circuit",
|
|
5
5
|
"main": "./build/index.js",
|
|
6
6
|
"files": [
|
|
@@ -26,10 +26,11 @@
|
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"js-base64": "^3.7.7",
|
|
28
28
|
"jszip": "^3.10.1",
|
|
29
|
+
"yoga-layout": "^3.2.1",
|
|
30
|
+
"@modular-circuit/electronics-model": "0.0.51",
|
|
29
31
|
"@modular-circuit/ir": "0.0.58",
|
|
30
|
-
"@modular-circuit/perc": "0.0.58",
|
|
31
32
|
"@modular-circuit/utils": "0.0.37",
|
|
32
|
-
"@modular-circuit/
|
|
33
|
+
"@modular-circuit/perc": "0.0.58"
|
|
33
34
|
},
|
|
34
35
|
"scripts": {
|
|
35
36
|
"clean": "rimraf build",
|