デカ文字A4ジェネレータというのを書いた。

https://github.com/cho45/dekaimoji-a4

原寸印刷について

いくつか方法があるがピンヘッダのレイアウトを実寸で印刷するツールを書くときに検討した通り、PDF をつくるのが現状では確実と思われる。

その上で、プレビューとの兼ね合いを考えるとさらにいくつか方法がある。

canvas で作った画像を PDF に貼る

「画像で作ってPDFに貼りつける」という方法は JS に限らず安定して確実な出力ができる。

JS の場合でもスムーズにプレビューできるし出力も簡単。ただし出力サイズが大きい場合、メモリが足りなくなることがある。

また、テキストの選択はできなくなる。

PDF オンリー PDF プレビュー

PDF オンリーの場合、ブラウザーがPDFのインライン表示に対応していれば、iframe でプレビューができる。昨今、だいたいのブラウザーで実はpdfが組み込み表示可能なので案外いける。ただしスマフォでは未対応。

2D Context の API にあわせる

jsPDF の場合、単純な図形化なら、2D Context と APIをあわせることができるので、canvasプレビュー、pdf出力がスムーズにできそう。ただしこれはテキストレンダリングしたくなった時点で確実に破綻すると思われる。

  1. トップ
  2. tech
  3. デカい文字をA4で分割して印刷するツールをJSで書いた

404 Not Found を参考につくった。まちがえてキルティングが表裏逆になってしまった。

作ってみたけどキルティングは 14x36 ぐらいでもいいかな

[tech] デカい文字をA4で分割して印刷するツールをJSで書いた | Sat, Mar 7. 2015 - 氾濫原 では、実寸サイズを扱うので、多くの場所で mm や cm やら pt などの単位で数値を書きたくなる。

いろんな方法

mm を係数にして毎回乗算する方法

var mm = dpi / 25.4;

10*mm

mm を係数にして毎回除算する方法

var mm = 25.4 / dpi;

10/mm

乗算の逆。

変換を関数にする方法

function mm (num) { ... }

mm(10)

Number のプロトタイプ拡張

Number.prototype.mm = function () { ... };

10..mm()


しかし JSLint とかは 10..mm みたいな呼びかたをすると怒る。

Number のアクセサディスクリプタ

単純なプロトタイプ拡張と比べ、括弧がいらない。

10..mm
function setDPI (dpi) {
	var dpmm = dpi / 25.4;
	var pt = dpi / 72;
	var units = {
		'in' : dpi,
		'pt' : pt,
		'mm' : dpmm,
		'cm' : dpmm * 10,
		'm' : dpmm * 1000
	};

	for (var unit in units) if (units.hasOwnProperty(unit)) (function (factor) {
		Object.defineProperty(Number.prototype, unit, {
			get: function () {
				return this.valueOf() * factor;
			}
		});
	})(units[unit]);
}

setDPI(150);

console.log(10..mm);
console.log(10..cm);

しかし JSLint とかは 10..mm みたいな呼びかたをすると怒る。

アクロバティックな方法

'10 mm'

とかを数値に変換する形

var UnitConverter = function () { this.init.apply(this, arguments) };
UnitConverter.prototype = {
	init : function (opts) {
		if (!opts) opts = {};
		this.setDPI(opts.dpi || 96);
	},

	setDPI : function (dpi) {
		this.dpi = dpi;
		var dpmm = dpi / 25.4;
		var pt = dpi / 72;
		this.units = {
			'in' : dpi,
			'pt' : pt,
			'mm' : dpmm,
			'cm' : dpmm * 10,
			'm' : dpmm * 1000
		};

		var unitNames = [];
		for (var key in this.units) if (this.units.hasOwnProperty(key)) {
			unitNames.push(key);
		}

		this.re = new RegExp('([0-9.]+) (' + unitNames.join('|') + ')');
	},

	unit : function (string) {
		if (string.match(new RegExp('^' + this.re.source + '$'))) {
			return +RegExp.$1 * this.units[RegExp.$2];
		} else {
			return null;
		}
	},

	context : function (fun) {
		var self = this;
		var args = Array.prototype.slice.call(arguments, 1);
		fun = eval('(' + fun.toString().replace(new RegExp("'(" + this.re.source + ")'", 'g'), function (_, s) {
			return self.unit(s);
		}) + ')');
		fun.apply(null ,args);
	}
};

文字列化した関数を置換する。みためクロージャなのにクロージャになってないので変数アクセスで混乱する。つくれない。

結論

普通に係数使うのが一番シンプル。除算のほうがかっこいい気がする。ただし演算子の優先順位に気をつかわないとハマる。

  1. トップ
  2. tech
  3. JS 数値リテラルに単位をつけたい

とりあえず本は必要。本については後述

作業について

裁断でデキの70%が決まる

伸縮性のある布を正確に裁断するのは、それだけでも大変難しい…

オルファ(OLFA) セーフティロータリカッター ゴム L型 156B - オルファ(OLFA)

オルファ(OLFA)

5.0 / 5.0


オルファ(OLFA) カッターマットA2 (450x620x2mm) 159B - オルファ(OLFA)

オルファ(OLFA)

5.0 / 5.0

基本的に裁断バサミよりロータリーカッターが良い。なぜなら布を持ちあげずに裁断できるため。型紙が動きようがない状態で裁断できると正確に切りやすくて精神的に良い。

カッティングマットはA2ぐらいがちょうどいいと思う。A1だとテーブルに乗らなかったりして扱いにくいし、A3だと小さすぎる。A2 でも結構マットを動かす必要はあります。


「水通し」「地なおし」などのキーワードを知っているかいないかでだいぶ変わる。

洗濯するものは裁断前に「水通し」をして予めある程度縮ませてから裁断するか、厳密にあわせる必要がないものは3%〜10%程度大きく裁断する。

水通しは工場で縮める処理をしているものならやる必要がないみたいな話もあるが、売られているもののうちどれがそれなのか判断することができないので、水通しをするほうが安全。ただし一度綺麗に広げて干す必要があるので矮小住宅環境ではクソ面倒。

(今のところの個人的見解では身につける衣類でなければ水通しをせずに5%大きめに作るのが良い気がしている。身につけるものは作る予定がないので水通しやらずに押しきりたい)

「縫い代」は正確にとる

「縫い代」は縫ってひっくり返すと見えなくなるので適当に切ってもええやろと思ってしまうが、これは大きな間違い。

ミシンをかけるときは常に裁ち切り線を基準に縫い代分をオフセットして縫うことになるので、裁ち切りが正確であることと同様に縫い代も正確にとれていないと、当然ミシンの縫い目(=仕上り線)も直線にならない、ということになる。

また、適当に切ってしまうと、複数枚重ねて縫うときに位置をあわせることができなくなる。がんばって仕上がり線を書いても重ねるときにそれであわせることは難しい。マチ針駆使したらできるだろうけど…

裁縫用語

微妙に特殊な「言いまわし」があって混乱することがあった。主観で重要な順に並べた。

かがり

→ 裁断した部分のほつれ防止。基本はジグザグ縫い。「端にジグザグ縫いまたはロックミシンをかける」と書いてある場合すなわちかがるということ。ロックミシンはかがり専用のミシンのことで素人には関係ない。

返し縫い

→ ミシンの文脈では縫いはじめと縫いおわりで逆方向に少し縫うこと。普通は返し縫い機能があるので簡単にできる。手縫いの場合は「縫いかた」の種類でミシンの返し縫いとは関係がない。

返し縫いは縫いはじめに針を置いて、少し普通にすすめて、戻って、もう一度すすむ。つまり返し縫い部分は3回針が刺さる。

表あわせ

→ 布の表同士をあわせること。最後にひっくり返すので裏面を見ながらミシンをかけることが多い。

ステッチ

→ 2つの布を縫いあわせる機能がない縫い目のことっぽい? 飾り・強度のためにかけるミシンのよう。「ミシンをかける」は逆に縫いあわせるという意味を含むようだ。使いわけてる人がいるけど、正確に使いわけてない場合があってややこしい。「なんとなく縫う」ぐらいのニュアンスがある。

仕上がり線

→ 縫う線。この線に縫い代を加えると裁ち切り線になる。つまり普通はこの線で裁断しない。

縫い代

→ 縫うためにつける 1cm ぐらいの領域。

縫い代を割る

→ 縫ったあと、2枚の布の縫い代がくっついているが、これをそれぞれの布の方向に開いて固定すること(アイロンをかけたりする)

裁ち切り

型紙に「裁ち切り」と書いてある場合、縫い代をつけないという。仕上がり線がすなわち裁ち切り線になる。

切替

→ 途中で別の布 (または同じ布) を繋ぐこと。途中で柄を変えたいときにやる。

パターン

→ 型紙のこと

レシピ

→ 型紙も含めた製作の手順のこと

コード (Cord)

→ 紐のこと。

地直し

→ 買ってきた布が歪んでいることがあるので (そのまま作ると洗濯したときに歪みが表面化する) それを直すこと。最近の布の品質ならやる必要ないという話もある

バイアステープ

→ 斜めに裁断されたテープ状の生地のことをバイアステープというらしい。少し伸縮性があり縁取りとかに使う

返し口

→ ひっくり返すために縫い残す部分のこと。これがないとひっくり返せない。最後は手縫いで返し口を閉じるか、周囲にステッチをかけて強制的に閉じる。

目が落ちる

→ ミシンの針が布地以外のところに落ちて空振りすること。特殊なことではなく、特に布端をジグザグ縫いでかがるときは片側はほぼ目が落ちる位置になる。

パイピング

→ 布端をバイアステープ処理すること

イセる

→ 寄せ集める。縮める。英語で gather の意味

布の種類

名前は編みかたの分類なので、実際は使用される糸の太さによって厚さは変わる

ブロード

よくあるプリントされたりしていて表面がつるつるしている、比較的薄い生地。

私見:薄いので使いどころ次第でちょっと安っぽくなる

オックス

少し厚手で編み目が明確なやつ。丈夫。キャンバスよりは薄い。(10番オックスというのがよく使われるらしい)

私見:適度な光沢があって高級感があり、汎用性が高く感じる。手触りも布!って感じで良い。

シーチング

本来シーツ用の生地でちょっとざらざらとした厚手の生地。

私見:オックスの下位互換みたいな感じがする。ちょっと安っぽいというか、荒っぽい風合いがある。

キャンバス (帆布)

厚手でかたくかなり丈夫。カバンとかに良く使われる。(11番が一番薄いが、典型的なオックスと比べるとこれでもかなり厚い生地)

キルティング

2枚の布の中に綿が入っていて斜めに縫ってあるやつ。やわらかいが丈夫。ブロードのキルティング・オックスのキルティングとかデニムのキルティングとか、いろいろある。2枚生地を使ってる分高価だけど、手軽に作れるので便利。高価といっても2枚生地を買うよりはだいぶ安い。

私見:手軽で便利だけど、できあがりがまさに小学生とかが持ってそう!という感じになる。良く言うと手作り感がでる。

きれいに縫うための基礎の基礎 - 水野 佳子

水野 佳子

5.0 / 5.0

かなり細かく「縫いかた」について書いてある。服を作らない場合必要ない技術もあるけど一通り丁寧に書いてあってよかった。

いちばんよくわかる かんたんかわいい通園通学グッズ -

5.0 / 5.0

簡単な作例がたくさん載ってて参考になった。作りかたほぼいっしょだけどサイズだけ違うみたいなケースが結構あるなという発見がある。

  1. トップ
  2. tech
  3. 本気でなくとも裁縫するなら絶対に知る必要があること

まだ必要ないんだけど、作りたいベースで作ってみた。

上の写真は今日の状態のものだが、実はひとつ前のバージョンがある。

布団カバーを作る際にあまった布をフタに使ったのだが、あまりにも本体と色があっていなくてダサかった… 作る途中に気付けよという感じだが、とりあえず仕上げたかったのと、全部おわったら意外と納まるんじゃないかと思ったけど、やっぱダメだった。

なのでやはり別途布を購入しなおしてフタだけ切替なしで作りなおし、元のフタをはずしてつけた。