@modular-circuit/transpiler 0.0.69 → 0.0.71

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.
@@ -1,5 +1,5 @@
1
1
  import { type At, type Color, type VECTOR2 } from '@modular-circuit/electronics-model';
2
- import { type Drawing, type Effects, type Fill, type Justify, type LIB_SYMBOL, type PIN_DEFINITION, type PIN_DISPLAY_OPT, type PIN_INSTANCE, type SCHEMATIC, type SCH_FIELD, type SCH_LABEL, type SCH_SHEET, type SCH_SHEET_PIN, type SCH_SYMBOL, type Stroke } from '@modular-circuit/ir';
2
+ import { type Drawing, type Effects, type Fill, type Justify, type LIB_SYMBOL, type PIN_DEFINITION, type PIN_DISPLAY_OPT, type PIN_INSTANCE, type SCHEMATIC, type SCH_FIELD, type SCH_LABEL, type SCH_LINE, type SCH_SHEET, type SCH_SHEET_PIN, type SCH_SYMBOL, type Stroke } from '@modular-circuit/ir';
3
3
  export declare class SCHEMATIC_PRINTER {
4
4
  schematic(sch: SCHEMATIC): string;
5
5
  power(power?: boolean): "" | "(power)";
@@ -17,6 +17,7 @@ export declare class SCHEMATIC_PRINTER {
17
17
  label(label: SCH_LABEL): string;
18
18
  unit(c?: number): string;
19
19
  sch_symbol(sch_symbol: SCH_SYMBOL): string;
20
+ wire(w: SCH_LINE): string;
20
21
  lib_id(id?: string | null): string | undefined;
21
22
  sch_symbol_pin(pin: PIN_INSTANCE): string;
22
23
  sch_sheet(sheet: SCH_SHEET): string;
@@ -1 +1 @@
1
- {"version":3,"file":"printer.d.ts","sourceRoot":"","sources":["../../../../src/converter/kicad_sexpr/eeschema/printer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,KAAK,EAA+B,KAAK,OAAO,EAAE,MAAM,oCAAoC,CAAA;AACnH,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,IAAI,EACT,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,UAAU,EAEf,KAAK,MAAM,EACZ,MAAM,qBAAqB,CAAA;AAU5B,qBAAa,iBAAiB;IAC5B,SAAS,CAAC,GAAG,EAAE,SAAS;IAiCxB,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO;IAKrB,eAAe,CAAC,GAAG,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,eAAe,CAAC;QAAC,SAAS,CAAC,EAAE,eAAe,CAAA;KAAE;IAapF,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM;IAc1C,YAAY,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,MAAM;IAKzC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE;IAKrB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE;IAI1B,OAAO,CAAC,IAAI,EAAE,OAAO;IAgBrB,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE;IAKhC,OAAO,CAAC,GAAG,EAAE,cAAc;IAa3B,KAAK,CAAC,KAAK,EAAE,SAAS;IAUtB,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM;IAIf,UAAU,CAAC,UAAU,EAAE,UAAU;IAYjC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAKzB,cAAc,CAAC,GAAG,EAAE,YAAY;IAIhC,SAAS,CAAC,KAAK,EAAE,SAAS;IAa1B,aAAa,CAAC,SAAS,EAAE,aAAa;IAQtC,EAAE,CAAC,GAAG,EAAE,EAAE;IAIV,IAAI,CAAC,EAAE,EAAE,MAAM;IAGf,OAAO,CAAC,CAAC,EAAE,OAAO;IASlB,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO;IAKzB,QAAQ,CAAC,EAAE,EAAE,OAAO;IAUpB,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE;IAK3B,KAAK,CAAC,KAAK,EAAE,SAAS;IAQtB,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC;IAKtB,IAAI,CAAC,CAAC,EAAE,OAAO;IAGf,iBAAiB;IAKjB,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM;IAUjB,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK;CAIhB"}
1
+ {"version":3,"file":"printer.d.ts","sourceRoot":"","sources":["../../../../src/converter/kicad_sexpr/eeschema/printer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,KAAK,EAA+B,KAAK,OAAO,EAAE,MAAM,oCAAoC,CAAA;AACnH,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,IAAI,EACT,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,UAAU,EAEf,KAAK,MAAM,EACZ,MAAM,qBAAqB,CAAA;AAU5B,qBAAa,iBAAiB;IAC5B,SAAS,CAAC,GAAG,EAAE,SAAS;IA2CxB,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO;IAKrB,eAAe,CAAC,GAAG,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,eAAe,CAAC;QAAC,SAAS,CAAC,EAAE,eAAe,CAAA;KAAE;IAapF,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM;IAc1C,YAAY,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,MAAM;IAKzC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE;IAKrB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE;IAI1B,OAAO,CAAC,IAAI,EAAE,OAAO;IAgBrB,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE;IAKhC,OAAO,CAAC,GAAG,EAAE,cAAc;IAa3B,KAAK,CAAC,KAAK,EAAE,SAAS;IAUtB,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM;IAIf,UAAU,CAAC,UAAU,EAAE,UAAU;IAWjC,IAAI,CAAC,CAAC,EAAE,QAAQ;IAShB,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAKzB,cAAc,CAAC,GAAG,EAAE,YAAY;IAIhC,SAAS,CAAC,KAAK,EAAE,SAAS;IAa1B,aAAa,CAAC,SAAS,EAAE,aAAa;IAQtC,EAAE,CAAC,GAAG,EAAE,EAAE;IAIV,IAAI,CAAC,EAAE,EAAE,MAAM;IAGf,OAAO,CAAC,CAAC,EAAE,OAAO;IASlB,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO;IAKzB,QAAQ,CAAC,EAAE,EAAE,OAAO;IAUpB,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE;IAK3B,KAAK,CAAC,KAAK,EAAE,SAAS;IAQtB,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC;IAKtB,IAAI,CAAC,CAAC,EAAE,OAAO;IAGf,iBAAiB;IAKjB,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM;IAUjB,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK;CAIhB"}
@@ -94,6 +94,12 @@ var SCHEMATIC_PRINTER = function () {
94
94
  return '';
95
95
  return "".concat(SCOPE_START, "(lib_symbols ").concat((_c = sch.lib_symbols) === null || _c === void 0 ? void 0 : _c.symbols.map(function (it) { return _this.lib_symbol(it); }).join("".concat(SCOPE_END)), "\t)");
96
96
  })();
97
+ var wires = (function () {
98
+ var _b;
99
+ if (!((_b = sch.wires) === null || _b === void 0 ? void 0 : _b.length))
100
+ return '';
101
+ return "".concat(SCOPE_START).concat(sch.wires.map(function (it) { return _this.wire(it); }).join("".concat(SCOPE_END)), "\t");
102
+ })();
97
103
  var labels = (function () {
98
104
  var _b;
99
105
  if (!((_b = sch.labels) === null || _b === void 0 ? void 0 : _b.length))
@@ -112,7 +118,7 @@ var SCHEMATIC_PRINTER = function () {
112
118
  return '';
113
119
  return "".concat(SCOPE_START).concat(sch.symbols.map(function (it) { return _this.sch_symbol(it); }).join("".concat(SCOPE_END)), "\t");
114
120
  })();
115
- return "\n(kicad_sch\n (version ".concat(SCH_VERSION, ")\n (generator \"").concat(GENERATOR_NAME, "\")\n (generator_version \"").concat(GENERATOR_VERSION, "\")\n (uuid \"").concat(gen_uuid(), "\")\n (paper \"").concat(PAPER, "\")").concat(lib_symbols).concat(labels).concat(sch_symbols).concat(sch_sheets, "\n)\n ");
121
+ return "\n(kicad_sch\n (version ".concat(SCH_VERSION, ")\n (generator \"").concat(GENERATOR_NAME, "\")\n (generator_version \"").concat(GENERATOR_VERSION, "\")\n (uuid \"").concat(gen_uuid(), "\")\n (paper \"").concat(PAPER, "\")\n ").concat(lib_symbols, "\n ").concat(wires, "\n ").concat(labels, "\n ").concat(sch_symbols, "\n ").concat(sch_sheets, "\n)\n ");
116
122
  };
117
123
  SCHEMATIC_PRINTER.prototype.power = function (power) {
118
124
  return power ? '(power)' : '';
@@ -172,6 +178,9 @@ var SCHEMATIC_PRINTER = function () {
172
178
  var _this = this;
173
179
  return "(symbol\n\t\t".concat(this.lib_id(sch_symbol.lib_id), "\n\t\t").concat(this.at(sch_symbol.at), "\n\t\t").concat(this.unit(sch_symbol.unit), "\n ").concat(this.booleans(sch_symbol), "\n\t\t").concat(this.fields(sch_symbol.properties), "\n ").concat(sch_symbol.pins.map(function (pin) { return _this.sch_symbol_pin(pin); }).join(SCOPE_START), "\n\t)");
174
180
  };
181
+ SCHEMATIC_PRINTER.prototype.wire = function (w) {
182
+ return "(wire\n ".concat(this.pts([w.start, w.end]), "\n ").concat(this.stroke(w.stroke), "\n ").concat(this.uuid(w.uuid), "\n )");
183
+ };
175
184
  SCHEMATIC_PRINTER.prototype.lib_id = function (id) {
176
185
  if (!id)
177
186
  return;
@@ -1,14 +1,25 @@
1
1
  import type { BOX2 } from '@modular-circuit/electronics-model';
2
2
  export declare const GRID_SIZE: number;
3
+ export declare const FONT_SIZE: number;
3
4
  export declare function get_power_pos(pwr_number: number): {
4
5
  x: number;
5
6
  y: number;
6
7
  };
7
8
  export declare const BLOCK_PIN_GAP: number;
9
+ export declare const WIRE_PADDING: number;
10
+ export interface BlockPadding {
11
+ l_side: number;
12
+ r_side: number;
13
+ }
14
+ export interface BlockBoxPadding {
15
+ internal: BlockPadding;
16
+ outer: BlockPadding;
17
+ total_pin_num: number;
18
+ }
8
19
  export declare class Layout {
9
20
  private width;
10
21
  private height;
11
22
  private max_height;
12
- get_block_rect(pin_num: number): BOX2;
23
+ get_block_bounding_box(factor: BlockBoxPadding): BOX2;
13
24
  }
14
25
  //# sourceMappingURL=layout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/converter/netlist_to_kicad/layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;AAK9D,eAAO,MAAM,SAAS,QAAiB,CAAA;AASvC,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM;;;EAE/C;AAKD,eAAO,MAAM,aAAa,QAAgB,CAAA;AAO1C,qBAAa,MAAM;IACjB,OAAO,CAAC,KAAK,CAAgB;IAE7B,OAAO,CAAC,MAAM,CAAgB;IAE9B,OAAO,CAAC,UAAU,CAAI;IAEf,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CA0B7C"}
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/converter/netlist_to_kicad/layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;AAI9D,eAAO,MAAM,SAAS,QAAiB,CAAA;AAEvC,eAAO,MAAM,SAAS,QAAY,CAAA;AAQlC,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM;;;EAE/C;AAKD,eAAO,MAAM,aAAa,QAAgB,CAAA;AAO1C,eAAO,MAAM,YAAY,QAAY,CAAA;AAErC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,YAAY,CAAA;IACtB,KAAK,EAAE,YAAY,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,KAAK,CAAgB;IAE7B,OAAO,CAAC,MAAM,CAAgB;IAE9B,OAAO,CAAC,UAAU,CAAI;IAEf,sBAAsB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;CAoC7D"}
@@ -1,6 +1,7 @@
1
1
  import { PAPER_SIZE } from '../../utils/constraints';
2
2
  var MIL_TO_MM = 0.0254;
3
3
  export var GRID_SIZE = 50 * MIL_TO_MM;
4
+ export var FONT_SIZE = GRID_SIZE;
4
5
  var POWER_START_Y = 30 * GRID_SIZE;
5
6
  var POWER_START_X = (PAPER_SIZE.A4.height - 30) * GRID_SIZE;
6
7
  var POWER_Y_STEP = 16 * GRID_SIZE;
@@ -11,30 +12,37 @@ var BLOCK_START_Y = 36 * GRID_SIZE;
11
12
  var BLOCK_START_X = BLOCK_START_Y;
12
13
  export var BLOCK_PIN_GAP = 4 * GRID_SIZE;
13
14
  var BLOCK_MARGIN_TOP = 8 * GRID_SIZE;
14
- var BLOCK_WIDTH = 36 * GRID_SIZE;
15
+ var MIN_BLOCK_WIDTH = 16 * GRID_SIZE;
15
16
  var BLOCK_MARGIN_LEFT = 16 * GRID_SIZE;
16
17
  var BLOCK_MARGIN_RIGHT = BLOCK_MARGIN_LEFT;
18
+ export var WIRE_PADDING = GRID_SIZE;
17
19
  var Layout = /** @class */ (function () {
18
20
  function Layout() {
19
21
  this.width = BLOCK_START_X;
20
22
  this.height = BLOCK_START_Y;
21
23
  this.max_height = 0;
22
24
  }
23
- Layout.prototype.get_block_rect = function (pin_num) {
24
- var block_height = (BLOCK_PIN_GAP * pin_num) / 2 + BLOCK_PIN_GAP * 2;
25
+ Layout.prototype.get_block_bounding_box = function (factor) {
26
+ var block_height = (BLOCK_PIN_GAP * factor.total_pin_num) / 2 + BLOCK_PIN_GAP * 2;
27
+ var block_width = Math.max(MIN_BLOCK_WIDTH, factor.internal.l_side +
28
+ factor.internal.r_side +
29
+ factor.outer.l_side +
30
+ factor.outer.r_side +
31
+ // | txt | | txt |
32
+ WIRE_PADDING * 4);
25
33
  var rect = {
26
34
  pos: {
27
35
  x: this.width,
28
36
  y: this.height,
29
37
  },
30
38
  size: {
31
- x: BLOCK_WIDTH,
39
+ x: block_width,
32
40
  y: block_height,
33
41
  },
34
42
  };
35
43
  this.max_height = Math.max(this.max_height, block_height);
36
- this.width += BLOCK_WIDTH + BLOCK_MARGIN_LEFT;
37
- if (this.width + BLOCK_MARGIN_RIGHT + BLOCK_WIDTH + BLOCK_MARGIN_LEFT > POWER_START_X) {
44
+ this.width += block_width + BLOCK_MARGIN_LEFT;
45
+ if (this.width + BLOCK_MARGIN_RIGHT + block_width + BLOCK_MARGIN_LEFT > POWER_START_X) {
38
46
  this.width = BLOCK_START_X;
39
47
  this.height += this.max_height + BLOCK_MARGIN_TOP;
40
48
  this.max_height = 0;
@@ -5,6 +5,7 @@ export declare class NetListConverter {
5
5
  private block_calc;
6
6
  private sheet_pwr_count;
7
7
  private net_name;
8
+ private wires;
8
9
  constructor(ctx: NetlistToKicadContext);
9
10
  pin_is_connected(id: string): boolean;
10
11
  get_pin_net_name(id: string): string;
@@ -19,6 +20,7 @@ export declare class NetListConverter {
19
20
  private convert_sch;
20
21
  private convert_hierarchical_label;
21
22
  private convert_pwr_symbol;
23
+ private get_sheet_symbol_paddings;
22
24
  private convert_sheet_symbol;
23
25
  private convert_sheet_pin;
24
26
  private convert_net_label;
@@ -1 +1 @@
1
- {"version":3,"file":"netlist_converter.d.ts","sourceRoot":"","sources":["../../../src/converter/netlist_to_kicad/netlist_converter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyC,KAAK,SAAS,EAAsB,MAAM,qBAAqB,CAAA;AAM/G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AAItD,qBAAa,gBAAgB;IAOR,OAAO,CAAC,GAAG;IAN9B,OAAO,CAAC,UAAU,CAAU;IAE5B,OAAO,CAAC,eAAe,CAAI;IAE3B,OAAO,CAAC,QAAQ,CAA6B;gBAElB,GAAG,EAAE,qBAAqB;IAQrD,gBAAgB,CAAC,EAAE,EAAE,MAAM;IAI3B,gBAAgB,CAAC,EAAE,EAAE,MAAM;IAIpB,gBAAgB;IAYvB;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IA4DnB,OAAO,CAAC,0BAA0B;IAKlC,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,oBAAoB;IAqC5B,OAAO,CAAC,iBAAiB;IAazB,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;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;IAqEnB,OAAO,CAAC,0BAA0B;IAYlC,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,yBAAyB;IA8CjC,OAAO,CAAC,oBAAoB;IAgD5B,OAAO,CAAC,iBAAiB;IA+BzB,OAAO,CAAC,iBAAiB;CAQ1B"}
@@ -26,19 +26,21 @@ var __read = (this && this.__read) || function (o, n) {
26
26
  return ar;
27
27
  };
28
28
  import { PowerShape } from '@modular-circuit/electronics-model';
29
- import { MODULAR_CIRCUIT_SCH_EXT } from '@modular-circuit/ir';
29
+ import { MODULAR_CIRCUIT_SCH_EXT, } from '@modular-circuit/ir';
30
30
  import { replaceAll } from '@modular-circuit/utils';
31
31
  import { gen_hierarchical_label, gen_net_label, gen_sheet_pin } from '../../kicad/label';
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, Layout, get_power_pos } from './layout';
35
+ import { BLOCK_PIN_GAP, FONT_SIZE, Layout, WIRE_PADDING, get_power_pos, } from './layout';
36
+ import { gen_wire } from '../../kicad/wire/gen_wire';
36
37
  var NetListConverter = /** @class */ (function () {
37
38
  function NetListConverter(ctx) {
38
39
  var e_1, _a, e_2, _b;
39
40
  this.ctx = ctx;
40
41
  this.sheet_pwr_count = 0;
41
42
  this.net_name = {};
43
+ this.wires = [];
42
44
  try {
43
45
  for (var _c = __values(this.ctx.netlist.nets), _d = _c.next(); !_d.done; _d = _c.next()) {
44
46
  var net = _d.value;
@@ -102,6 +104,7 @@ var NetListConverter = /** @class */ (function () {
102
104
  var e_4, _a, e_5, _b, e_6, _c;
103
105
  var _d, _e;
104
106
  var powers = new Set();
107
+ this.wires = [];
105
108
  var sch = {
106
109
  version: SCH_VERSION,
107
110
  generator: GENERATOR_NAME,
@@ -157,7 +160,8 @@ var NetListConverter = /** @class */ (function () {
157
160
  return b.pins.length - a.pins.length;
158
161
  })), _j = _h.next(); !_j.done; _j = _h.next()) {
159
162
  var it_3 = _j.value;
160
- this.convert_sheet_symbol(it_3, this.block_calc.get_block_rect(it_3.pins.length), sch, sheet_names_count);
163
+ var sheet_padding = this.get_sheet_symbol_paddings(it_3);
164
+ this.convert_sheet_symbol(it_3, this.block_calc.get_block_bounding_box(sheet_padding), sch, sheet_names_count, sheet_padding.outer);
161
165
  }
162
166
  }
163
167
  catch (e_5_1) { e_5 = { error: e_5_1 }; }
@@ -181,11 +185,16 @@ var NetListConverter = /** @class */ (function () {
181
185
  }
182
186
  finally { if (e_6) throw e_6.error; }
183
187
  }
188
+ sch.wires = this.wires;
184
189
  return sch;
185
190
  };
186
191
  NetListConverter.prototype.convert_hierarchical_label = function (pin, sch) {
187
192
  var _a;
188
- var pin_pos = this.block_calc.get_block_rect(1).pos;
193
+ var pin_pos = this.block_calc.get_block_bounding_box({
194
+ internal: { l_side: 0, r_side: 0 },
195
+ outer: { l_side: 0, r_side: 0 },
196
+ total_pin_num: 1,
197
+ }).pos;
189
198
  (_a = sch.labels) === null || _a === void 0 ? void 0 : _a.push(gen_hierarchical_label(pin.name, pin_pos, { horizontal: 'left', vertical: 'bottom' }, 0, pin.shape));
190
199
  };
191
200
  NetListConverter.prototype.convert_pwr_symbol = function (pwr, at, sch) {
@@ -197,7 +206,51 @@ var NetListConverter = /** @class */ (function () {
197
206
  sch.symbols.push(sch_pwr_symbol);
198
207
  this.convert_net_label(pwr.value, at, sch);
199
208
  };
200
- NetListConverter.prototype.convert_sheet_symbol = function (sheet_sym, rect, sch, sheet_names_count) {
209
+ NetListConverter.prototype.get_sheet_symbol_paddings = function (sheet_sym) {
210
+ var factor = {
211
+ internal: {
212
+ l_side: 0,
213
+ r_side: 0,
214
+ },
215
+ outer: {
216
+ l_side: 0,
217
+ r_side: 0,
218
+ },
219
+ total_pin_num: sheet_sym.pins.length,
220
+ };
221
+ var port_count = sheet_sym.pins.length;
222
+ for (var i = 0; i < port_count; i++) {
223
+ var is_left = i < port_count / 2;
224
+ var cur_pin = sheet_sym.pins[i];
225
+ if (is_left) {
226
+ factor.internal.l_side = Math.max(factor.internal.l_side, cur_pin.name.length);
227
+ }
228
+ else {
229
+ factor.internal.r_side = Math.max(factor.internal.r_side, cur_pin.name.length);
230
+ }
231
+ if (this.pin_is_connected(cur_pin.uuid)) {
232
+ var net_name = this.get_pin_net_name(cur_pin.uuid);
233
+ if (is_left) {
234
+ factor.outer.l_side = Math.max(factor.outer.l_side, net_name.length);
235
+ }
236
+ else {
237
+ factor.outer.r_side = Math.max(factor.outer.r_side, net_name.length);
238
+ }
239
+ }
240
+ }
241
+ return {
242
+ internal: {
243
+ l_side: factor.internal.l_side * FONT_SIZE,
244
+ r_side: factor.internal.r_side * FONT_SIZE,
245
+ },
246
+ outer: {
247
+ l_side: factor.outer.l_side * FONT_SIZE,
248
+ r_side: factor.outer.r_side * FONT_SIZE,
249
+ },
250
+ total_pin_num: sheet_sym.pins.length,
251
+ };
252
+ };
253
+ NetListConverter.prototype.convert_sheet_symbol = function (sheet_sym, rect, sch, sheet_names_count, outer_padding) {
201
254
  var port_count = sheet_sym.pins.length;
202
255
  var pins = [];
203
256
  for (var i = 0; i < port_count; i++) {
@@ -206,7 +259,7 @@ var NetListConverter = /** @class */ (function () {
206
259
  var y = rect.pos.y + BLOCK_PIN_GAP * ((i < port_count / 2 ? i : i - port_count / 2) + 1);
207
260
  var justify = is_left ? 'left' : 'right';
208
261
  var rotation = is_left ? 180 : 0;
209
- pins.push(this.convert_sheet_pin(sheet_sym.pins[i], { x: x, y: y }, sch, justify, rotation));
262
+ pins.push(this.convert_sheet_pin(sheet_sym.pins[i], { x: x, y: y }, sch, justify, rotation, is_left, is_left ? outer_padding.l_side : outer_padding.r_side));
210
263
  }
211
264
  var sheet_name = sheet_sym.sheet_name;
212
265
  if (sheet_names_count.has(sheet_name)) {
@@ -222,9 +275,17 @@ var NetListConverter = /** @class */ (function () {
222
275
  Sheetname: sheet_name,
223
276
  }));
224
277
  };
225
- NetListConverter.prototype.convert_sheet_pin = function (pin, pin_pos, sch, horizontal, rotation) {
278
+ NetListConverter.prototype.convert_sheet_pin = function (pin, pin_pos, sch, horizontal, rotation, is_left, padding) {
226
279
  if (this.pin_is_connected(pin.uuid)) {
227
- this.convert_net_label(this.get_pin_net_name(pin.uuid), pin_pos, sch, horizontal === 'left' ? 'right' : 'left');
280
+ this.convert_net_label(this.get_pin_net_name(pin.uuid), {
281
+ x: pin_pos.x + (is_left ? -WIRE_PADDING : WIRE_PADDING),
282
+ y: pin_pos.y,
283
+ }, sch, horizontal === 'left' ? 'right' : 'left');
284
+ var wire_padding = padding + 2 * WIRE_PADDING;
285
+ this.wires.push(gen_wire(pin_pos, {
286
+ x: pin_pos.x + (is_left ? -wire_padding : wire_padding),
287
+ y: pin_pos.y,
288
+ }));
228
289
  }
229
290
  return gen_sheet_pin(pin.name, pin_pos, { horizontal: horizontal, vertical: 'bottom' }, rotation, pin.shape);
230
291
  };
@@ -0,0 +1,4 @@
1
+ import type { VECTOR2 } from '@modular-circuit/electronics-model';
2
+ import type { SCH_LINE } from '@modular-circuit/ir';
3
+ export declare const gen_wire: (start: VECTOR2, end: VECTOR2) => SCH_LINE;
4
+ //# sourceMappingURL=gen_wire.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gen_wire.d.ts","sourceRoot":"","sources":["../../../src/kicad/wire/gen_wire.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAA;AAEjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAGnD,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,EAAE,KAAK,OAAO,KAAG,QAStD,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { GS_SCH_ITEM_TYPE } from '@modular-circuit/electronics-model';
2
+ import { gen_uuid } from '@modular-circuit/utils';
3
+ export var gen_wire = function (start, end) { return ({
4
+ stroke: {
5
+ type: 'default',
6
+ width: 0,
7
+ },
8
+ start: start,
9
+ end: end,
10
+ uuid: gen_uuid(),
11
+ type: GS_SCH_ITEM_TYPE.LINE,
12
+ }); };
@@ -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/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/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.69",
3
+ "version": "0.0.71",
4
4
  "description": "Intermediate representation of the modular circuit",
5
5
  "main": "./build/index.js",
6
6
  "files": [
@@ -27,9 +27,9 @@
27
27
  "js-base64": "^3.7.7",
28
28
  "jszip": "^3.10.1",
29
29
  "@modular-circuit/ir": "0.0.58",
30
- "@modular-circuit/electronics-model": "0.0.50",
31
30
  "@modular-circuit/perc": "0.0.58",
32
- "@modular-circuit/utils": "0.0.37"
31
+ "@modular-circuit/utils": "0.0.37",
32
+ "@modular-circuit/electronics-model": "0.0.51"
33
33
  },
34
34
  "scripts": {
35
35
  "clean": "rimraf build",