Skip to content

Commit

Permalink
fixed waste-section bug
Browse files Browse the repository at this point in the history
  • Loading branch information
gabrielle-ohlson committed May 10, 2021
1 parent fdbab91 commit a26d488
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 18 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/*.k
/*.kc
extras/*.k
extras/*.knitout
extras/*.kc
extras/*.html
extras/*.css
Expand Down
9 changes: 6 additions & 3 deletions extras/knitout-alter-kniterate.js
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,10 @@ const steps = {
for (let line in lines) {
if (lines[line] === '') continue;
let info = lines[line].split(' ');
if (info[0] === 'in' || info[0] === 'inhook') {
if (info[0].charAt(0) === ';' && info[0].charAt(1) === ';') {
if (info[0] === ';;Carriers:') lines[line] = ';;Carriers: 1 2 3 4 5 6';
else if (info[0] === ';;Machine:') lines[line] = ';;Machine: Kniterate';
} else if (info[0] === 'in' || info[0] === 'inhook') {
if (!carriers.includes(info[1])) carriers.push(info[1]);
if (info[0] === 'inhook') {
lines[line] = `in ${info[1]}`;
Expand All @@ -91,7 +94,7 @@ const steps = {
} else if (info[0] === 'x-stitch-number') {
xStitch = true;
if (stitchNumber) lines[line] = `x-stitch-number ${stitchNumber}`;
else defaultStitchNumber = chopOffComment(info[1]); //TODO: determine if this should be redefined...
else defaultStitchNumber = chopOffComment(info[1]);
} else if (info[0] === 'x-speed-number') {
xSpeed = true;
if (speedNumber) lines[line] = `x-speed-number ${speedNumber}`;
Expand All @@ -112,7 +115,7 @@ const steps = {
replacementLine += `${lines[line]}`;
lines[line] = replacementLine;
xfer = true;
}
} else if (info[0] === 'x-presser-mode') lines[line] = '';
//
if (xfer && info[0] !== 'xfer' && info[0] !== 'rack' && info[0].charAt(0) !== ';') {
let replacementLine = '';
Expand Down
58 changes: 43 additions & 15 deletions extras/waste-section.js
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ const steps = {
if (file) {
lines = file.split('\n');
header = lines.splice(0, lines.findIndex(ln => ln.split(' ')[0] === 'in'));
let inCarrier = lines[0].split(' ')[1].charAt(0); //let //?
let inCarrier = lines[0].split(' ')[1].charAt(0); //note: charAt is fine here since kniterate only has single-digit carriers //TODO: change if make waste-section.js for SWG too
lines.shift();
if (inCarrier === wasteCarrier) {
inWasteC = true;
Expand Down Expand Up @@ -204,31 +204,52 @@ const steps = {
}
}
let removeComment = (str) => {
if (str.includes(';')) return str.slice(0, str.indexOf(';'));
else return str;
};
if (file) {
let dir, carrier, rack;
for (let i = 0; i < lines.length; ++i) {
findMinMax: for (let i = 0; i < lines.length; ++i) {
let info = lines[i].trim().split(' ');
if (info[0].charAt(0) !== ';' && info.length > 1) {
if (info[0] === 'rack') {
if (!rack || !dir) rack = info[1].charAt(0);
else if (rack !== info[1].charAt(0)) break;
}
else if (info[1] === '+' || info[1] === '-') {
if (!rack || !dir) rack = removeComment(info[1]);
else if (rack !== info[1].charAt(0)) break findMinMax;
} else if (info[1] === '+' || info[1] === '-') {
if (!dir) {
dir = info[1];
minN = maxN = Number(info[2].charAt(1));
minN = maxN = Number(removeComment(info[2].slice(1)));
carrier = info[info.length - 1];
} else {
if (info[1] === dir && info[info.length - 1] === carrier) {
let needle = Number(info[2].charAt(1));
if (info[1] === dir && removeComment(info[info.length - 1]) === carrier) {
let needle = Number(removeComment(info[2].slice(1)));
if (needle < minN) {
if (dir === '-') minN = needle;
else break;
else break findMinMax;
} else if (needle > maxN) {
if (dir === '+') maxN = needle;
else break;
else break findMinMax;
}
} else { // break findMinMax; //remove
if (castonStyle !== 0 || removeComment(info[info.length - 1]) !== carrier) break findMinMax;
else {
for (let m = i; m < lines.length; ++m) {
info = lines[m].trim().split(' ');
if (info.length > 2) {
let needle = Number(removeComment(info[2].slice(1)));
if (info[1] === '+' || info[1] === '-') {
if (info[1] === dir || removeComment(info[info.length - 1]) !== carrier) break findMinMax;
else {
if (needle < minN) minN = needle;
if (needle > maxN) maxN = needle;
}
}
}
}
}
} else break;
}
}
}
}
Expand All @@ -250,25 +271,31 @@ const steps = {
wasteSection.push(`in ${carriers[i]}`);
let bed = 'f';
for (let n = wasteMin; n <= wasteMax; ++n) {
if (n % carriers.length === i) {
if (Math.abs(n) % carriers.length === i) {
wasteSection.push(`tuck + ${bed}${n} ${carriers[i]}`);
bed === 'f' ? bed = 'b' : bed = 'f';
} else {
if (n === wasteMax) wasteSection.push(`miss + ${bed}${n} ${carriers[i]}`);
}
if (i === 0) if (n < minN || n > maxN) toDrop.push(n);
}
bed = 'b';
for (let n = wasteMax; n >= wasteMin; --n) {
if (n % carriers.length === i) {
if (Math.abs(n) % carriers.length === i) {
wasteSection.push(`tuck - ${bed}${n} ${carriers[i]}`);
bed === 'f' ? bed = 'b' : bed = 'f';
} else {
if (n === wasteMin) wasteSection.push(`miss - ${bed}${n} ${carriers[i]}`);
}
}
if (negCarriers.includes(carriers[i])) {
let bed = 'f';
for (let n = wasteMin; n <= wasteMax; ++n) {
if (n % carriers.length === i) {
if (Math.abs(n) % carriers.length === i) {
wasteSection.push(`tuck + ${bed}${n} ${carriers[i]}`);
bed === 'f' ? bed = 'b' : bed = 'f';
} else {
if (n === wasteMax) wasteSection.push(`miss + ${bed}${n} ${carriers[i]}`);
}
if (i === 0) if (n < minN || n > maxN) toDrop.push(n);
}
Expand Down Expand Up @@ -339,6 +366,7 @@ const steps = {
}
if (castonStyle !== 0) {
wasteSection.push(`;cast-on`);
if (castonStyle === 1) {
wasteSection.push('rack 0.25'); // or 0.5 ? (visualizer)
if (castonDir === '+') {
Expand Down

0 comments on commit a26d488

Please sign in to comment.