#title: Cast-On Sampler (plain python)
# Creates several sheets, all with different cast-ons.
#Write header:
print(';!knitout-2')
print(';;Machine: Kniterate')
print(';;Carriers: 1 2 3 4 5 6')
#Parameters:
carrier = "3" #carrier name
min = 1 #needle number of left edge
max = 20 #needle number of right edge
rows = 20 #rows of knitting in each sample
cordWidth = 4 #cord width (for I-cord cast-on)
# === Alternating Tucks ===
#Bring in carrier:
print(f"in {carrier}")
#On Kniterate machines, carriers start on the left,
#so will start tucking onto needles left-to-right,
#and will be sure to tuck the leftmost needle in the first pass:
for n in range(min, max+1, 1):
#tuck alternating needles, making sure to do the left edge:
if (n - min) % 2 == 0:
print(f"tuck + f{n} {carrier}")
#now, moving right-to-left, tuck the needles that were not tucked on the first pass:
for n in range(max, min-1, -1):
if (n - min) % 2 != 0:
print(f"tuck - f{n} {carrier}")
#knit three plain rows to allow cast-on stitches to relax:
# three isn't set in stone here -- it's just convenient
# for this example code to have the carrier end up on the right.
for n in range(min, max+1, 1):
print(f"knit + f{n} {carrier}")
for n in range(max, min-1, -1):
print(f"knit - f{n} {carrier}")
for n in range(min, max+1, 1):
print(f"knit + f{n} {carrier}")
# ---- single jersey sheet ----
for r in range(0, rows+1, 1):
if r % 2 == 0:
#left-going row:
for n in range(max, min-1, -1):
print(f"knit - f{n} {carrier}")
else:
#right-going row:
for n in range(min, max+1, 1):
print(f"knit + f{n} {carrier}")
# ---- take carrier out and drop remaining loops ----
#Send carrier back to its parking location:
print(f"out {carrier}")
#drop loops:
for n in range(min, max+1, 1):
print(f"drop f{n}")
# === All-Needle Welt ===
#Bring in carrier:
print(f"in {carrier}")
#On Kniterate machines, carriers start on the left,
#so will start by tucking all needles left-to-right,
#and will be sure to tuck the rightmost back-bed needle last.
#Need to use quarter-pitch racking to tuck all needles in one pass:
print(f"rack 0.5")
for n in range(min, max+1, 1):
print(f"tuck + f{n} {carrier}")
print(f"tuck + b{n} {carrier}")
#Return to aligned racking:
print(f"rack 0")
#Do a row of plain knitting on the front and back:
for n in range(max, min-1, -1):
print(f"knit - f{n} {carrier}")
for n in range(min, max+1, 1):
print(f"knit + b{n} {carrier}")
#One can knit more on the front or back beds here to make a larger "welt" at the edge.
#Stack back-bed stitches with front-bed stitches:
for n in range(min, max+1, 1):
print(f"xfer b{n} f{n}")
#knit two plain rows through the stacked stitches to return carrier to the right edge:
for n in range(max, min-1, -1):
print(f"knit - f{n} {carrier}")
for n in range(min, max+1, 1):
print(f"knit + f{n} {carrier}")
# ---- single jersey sheet ----
for r in range(0, rows+1, 1):
if r % 2 == 0:
#left-going row:
for n in range(max, min-1, -1):
print(f"knit - f{n} {carrier}")
else:
#right-going row:
for n in range(min, max+1, 1):
print(f"knit + f{n} {carrier}")
# ---- take carrier out and drop remaining loops ----
#Send carrier back to its parking location:
print(f"out {carrier}")
#drop loops:
for n in range(min, max+1, 1):
print(f"drop f{n}")
# === Twisted Tucks ===
#Bring in carrier:
print(f"in {carrier}")
#Use a twisted tuck to cast on every stitch.
#Note: this requires a new pass for every stitch, so is pretty slow!
#There are both faster and fancier cast-ons.
#On Kniterate machines, carriers start on the left, so will start with leftmost needle.
for n in range(min, max+1, 1):
#tuck alternating needles, making sure to do the left edge:
print(f"tuck - f{n} {carrier}")
#knit two plain rows to allow cast-on stitches to relax and bring carrier to the right:
for n in range(max, min-1, -1):
print(f"knit - f{n} {carrier}")
for n in range(min, max+1, 1):
print(f"knit + f{n} {carrier}")
# ---- single jersey sheet ----
for r in range(0, rows+1, 1):
if r % 2 == 0:
#left-going row:
for n in range(max, min-1, -1):
print(f"knit - f{n} {carrier}")
else:
#right-going row:
for n in range(min, max+1, 1):
print(f"knit + f{n} {carrier}")
# ---- take carrier out and drop remaining loops ----
#Send carrier back to its parking location:
print(f"out {carrier}")
#drop loops:
for n in range(min, max+1, 1):
print(f"drop f{n}")
# === I-Cord ===
#; not supported at full guage on kniterate