@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.
@@ -0,0 +1,5 @@
1
+ import type { VECTOR2 } from '@modular-circuit/electronics-model';
2
+ export declare const calc_boxes_pos: (boxes: {
3
+ [id: string]: VECTOR2;
4
+ }) => Record<string, VECTOR2>;
5
+ //# sourceMappingURL=calc_boxes_pos.d.ts.map
@@ -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;AAatD,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;IAYvB;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAiEnB,OAAO,CAAC,0BAA0B;IAYlC,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,2BAA2B;IA8CnC,OAAO,CAAC,oBAAoB;IAqC5B,OAAO,CAAC,iBAAiB;IAgCzB,OAAO,CAAC,iBAAiB;CAQ1B"}
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, } from './layout';
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 _d, _e;
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 _f = __values(schematic.powers), _g = _f.next(); !_g.done; _g = _f.next()) {
135
- var it_2 = _g.value;
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
- (_d = sch.lib_symbols) === null || _d === void 0 ? void 0 : _d.symbols.push(gen_lib_vcc(it_2.value));
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
- (_e = sch.lib_symbols) === null || _e === void 0 ? void 0 : _e.symbols.push(gen_lib_gnd(it_2.value));
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 (_g && !_g.done && (_a = _f.return)) _a.call(_f);
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
- this.convert_sheet_symbol(it_3, block_geo.box, sch, sheet_names_count);
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
- // Finally the hierarchical labels
178
- for (var _h = __values(schematic.hiera_labels), _j = _h.next(); !_j.done; _j = _h.next()) {
179
- var it_4 = _j.value;
180
- this.convert_hierarchical_label(it_4, sch);
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 (_j && !_j.done && (_c = _h.return)) _c.call(_h);
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.74",
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/electronics-model": "0.0.51"
33
+ "@modular-circuit/perc": "0.0.58"
33
34
  },
34
35
  "scripts": {
35
36
  "clean": "rimraf build",