-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathshowcase.py
58 lines (49 loc) · 1.77 KB
/
showcase.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import os
import sys
from kiapi import KiApiItem, KiApi, KiApiItemCont
g_lib ="MyLib"
g_symDesigs = ["MyIC1", "MyIC2", "MyIC3"]
g_csvStr = ""
def createItem(symIdx, style, type, pos, pinNum):
item = KiApiItem()
item.lib = g_lib
item.sym = "MyIC"
item.desig = g_symDesigs[symIdx]
item.pin = type + "_" + style
item.pinNumber = str(pinNum)
item.pinPos = pos
item.pinType = type
item.pinStyle = style
if pos == "left":
for i in range(symIdx):
item.addGlobalLabel(item.pin + str(i))
elif (symIdx % 2) == 0:
item.addGlobalLabel(item.pin)
return item
g_numSyms = len(g_symDesigs)
g_apiItemCont = KiApiItemCont()
g_apiItemCont.name = "showcase"
for i in range(g_numSyms):
g_pinNum = 0
for j in range(KiApiItemCont.numOfAvailPinStyles):
for k in range(KiApiItemCont.numOfAvailPinTypes):
for l in range(KiApiItemCont.numOfAvailPinPoss):
item = createItem(
i,
KiApiItemCont.availPinStyles[j],
KiApiItemCont.availPinTypes[k],
KiApiItemCont.availPinPoss[l],
g_pinNum
)
g_apiItemCont.add(item)
g_pinNum = g_pinNum + 1
g_kiApi = KiApi(
apiItemCont=g_apiItemCont,
logFolderPath="log",
outFolderPath="out/showcase",
showPinNumbers=False
)
genPaths = g_kiApi.genPrj(216,384)
# print generated files
for g in genPaths:
print("Gen: " + str(g))