qunitamaのモノづくりブログ

レザークラフトなど、モノづくりのブログです

Noteshelf 2 テンプレート

普段、iPad miniで利用しているNoteshelf2、標準のテンプレートはとても素晴らしいのですが、細かめのグラフ用紙のテンプレートが欲しかったので自作する事にしました。

作成ツール

普段はInkscapeExcelなどで作るのですが、miniではないiPadやGoodnotes5などでも使う可能性があり、毎回微調整しながら作成するのは大変なので、PerlImageMagickで作る事にしました。

作成ポイント

スクリプトを作る際、下記の点を実現出来るようにしました。

  • 作成するPDFは描画エリアピッタリの縦横比
  • グラフの1マスの長さをmmで指定出来るようにする
  • 線の太さと色を指定出来るようにする

実行環境

PerlImageMagickのconvertコマンドが使用出来る環境でしたら、おそらく動くと思われます。私はWIndows10環境にcygwinをインストール後、PerlImageMagickをインストールして動かしました。

注意事項

  • スクリプトはファイルを生成します。生成するファイル名はスクリプト内で指定していますが、既存のファイル名を指定した場合、上書きされてしまいますのでご注意下さい。
  • 実行は自己責任でお願いします。

スクリプト

 完成したPerlスクリプトです。

グラフ用紙版

#!/usr/bin/perl
# ---------------------------------------------------------------
# Script Name : Template Create Script for Note Application
#
# Copyright (c) 2019 qunitama. All rights reserved.
# ---------------------------------------------------------------
# --- 固定値
# ---------------------------------------------------------------
$MM_PER_IN = 25.4;   # 1インチは25.4mm
$FILE_WK1 = "wk_graph_1.png"; #ワークファイル名
$FILE_WK2 = "wk_graph_2.png"; #ワークファイル名
$FILE_PDF = "NS_graph.pdf"; #出力PDFファイル名

# ---------------------------------------------------------------
# --- アプリの用紙エリアの実寸を記入 機種:iPad mini アプリ:Noteshelf
# ---------------------------------------------------------------
$PAPER_AREA_X_MM_NS_IPADMINI  = 120; #縦置き時の横幅をmmで記入
$PAPER_AREA_Y_MM_NS_IPADMINI  = 150; #縦置き時の縦幅をmmで記入
$PAPER_AREA_X_PIX_NS_IPADMINI = 1536; #縦置き時の横幅をピクセルで記入

#縦置き時の縦幅(自動計算)
$PAPER_AREA_Y_PIX_NS_IPADMINI = int($PAPER_AREA_X_PIX_NS_IPADMINI
				* $PAPER_AREA_Y_MM_NS_IPADMINI
				/ $PAPER_AREA_X_MM_NS_IPADMINI);

# ---------------------------------------------------------------
# --- 描画する方眼のサイズをmmで指定
# ---------------------------------------------------------------
$HOUGAN_SIZE_MM = 1;

# ---------------------------------------------------------------
# --- 太線指定
# --- 5を指定すれば5本目は太線,0で太線なし
# ---------------------------------------------------------------
$FUTOSEN_STEP = 5;

# ---------------------------------------------------------------
# --- タイトル区切り線の位置を指定
# --- 10を指定すれば10本目は太線,0で区切り線なし
# ---------------------------------------------------------------
$KUGIRISEN_POS = 10;

# ---------------------------------------------------------------
# --- 機種とアプリを指定
# ---------------------------------------------------------------
$PDF_X_MM  = $PAPER_AREA_X_MM_NS_IPADMINI;
$PDF_Y_MM  = $PAPER_AREA_Y_MM_NS_IPADMINI;
$IMG_X_PIX = $PAPER_AREA_X_PIX_NS_IPADMINI;
$IMG_Y_PIX = $PAPER_AREA_Y_PIX_NS_IPADMINI;

# ---------------------------------------------------------------
# --- 生成倍率を指定 実寸で生成すると実際に書いた時の線が
# --- 太いので2,3倍の大きさで生成
# ---------------------------------------------------------------
$BAIRITSU = 2.4;

# ---------------------------------------------------------------
# --- 生成サイズを計算
# ---------------------------------------------------------------
$PDF_X_MM  *= $BAIRITSU;
$PDF_Y_MM  *= $BAIRITSU;
$IMG_X_PIX *= $BAIRITSU;
$IMG_Y_PIX *= $BAIRITSU;

$HOUGAN_SIZE_MM *= $BAIRITSU;

# ---------------------------------------------------------------
# --- DPI計算
# ---------------------------------------------------------------
$PDF_DPI = $IMG_X_PIX / ($PDF_X_MM / $MM_PER_IN);

# ---------------------------------------------------------------
# --- 描画する方眼のピクセル数を自動計算
# ---------------------------------------------------------------
$HOUGAN_SIZE_PIX = $IMG_X_PIX / $PDF_X_MM * $HOUGAN_SIZE_MM;

# ---------------------------------------------------------------
# --- 色指定,太さ指定
# ---------------------------------------------------------------
$PAPER_COLOR    = "#fafbfb";

$LINE_USU_COLOR = "#cccccc"; #薄い線の色
$LINE_USU_WIDTH = "1";       #薄い線の幅

$LINE_KOI_COLOR = "#767676"; #濃い線の色
$LINE_KOI_WIDTH = "2";       #濃い線の幅

$LINE_KUG_COLOR = "#767676"; #タイトル区切り線の色
$LINE_KUG_WIDTH = "4";       #タイトル区切り線の幅

# ---------------------------------------------------------------
# --- 描画ルーチン
# ---------------------------------------------------------------
sub line_draw {

	my ($x1,$y1,$x2,$y2,$col,$width) = @_;

        $cmd = sprintf("convert -stroke xc:%s -strokewidth".
                        " %s -draw 'line %d,%d %d,%d' %s %s",
                        $col,$width,$x1,$y1,$x2,$y2,
                        $FILE_WK1,$FILE_WK2);

	system($cmd);
	$cmd = sprintf("mv %s %s",$FILE_WK2,$FILE_WK1); 
	system($cmd);
}

# ---------------------------------------------------------------
# --- 生成処理開始
# ---------------------------------------------------------------
# 用紙生成
$cmd = sprintf("convert -size %dx%d xc:%s %s",
		$IMG_X_PIX,$IMG_Y_PIX,$PAPER_COLOR,$FILE_WK1); 
system($cmd);

# 縦線描画
$wk_x = $HOUGAN_SIZE_PIX;
$count = 1;
while($wk_x < $IMG_X_PIX){
	if ($FUTOSEN_STEP>0 && $count % $FUTOSEN_STEP == 0){
		line_draw($wk_x,0,$wk_x,$IMG_Y_PIX,
			$LINE_KOI_COLOR,$LINE_KOI_WIDTH);
	}else{
		line_draw($wk_x,0,$wk_x,$IMG_Y_PIX,
			$LINE_USU_COLOR,$LINE_USU_WIDTH);
	}
	$wk_x += $HOUGAN_SIZE_PIX;
	$count++;
}
# 横線描画
$wk_y = $HOUGAN_SIZE_PIX;
$count = 1;
while($wk_y < $IMG_Y_PIX){
	if ($FUTOSEN_STEP>0 && $count % $FUTOSEN_STEP == 0){
		line_draw(0,$wk_y,$IMG_X_PIX,$wk_y,
			$LINE_KOI_COLOR,$LINE_KOI_WIDTH);
	}else{
		line_draw(0,$wk_y,$IMG_X_PIX,$wk_y,
			$LINE_USU_COLOR,$LINE_USU_WIDTH);
	}
	$wk_y += $HOUGAN_SIZE_PIX;
	$count++;
}
# 区切り線描画

if ($KUGIRISEN_POS>0){
	$wk_y = $HOUGAN_SIZE_PIX * $KUGIRISEN_POS;
	line_draw(0,$wk_y,$IMG_X_PIX,$wk_y,
			$LINE_KUG_COLOR,$LINE_KUG_WIDTH);
}

# PDFに変換して完成

$cmd = sprintf("convert -density %d -geometry %dx%d %s %s",
	$PDF_DPI,$IMG_X_PIX,$IMG_Y_PIX,$FILE_WK1,$FILE_PDF);
system($cmd);

5mm方眼用紙版

#!/usr/bin/perl
# ---------------------------------------------------------------
# Script Name : Template Create Script for Note Application
#
# Copyright (c) 2019 qunitama. All rights reserved.
# ---------------------------------------------------------------
# --- 固定値
# ---------------------------------------------------------------
$MM_PER_IN = 25.4;   # 1インチは25.4mm
$FILE_WK1 = "wk_grid_1.png"; #ワークファイル名
$FILE_WK2 = "wk_grid_2.png"; #ワークファイル名
$FILE_PDF = "NS_grid.pdf"; #出力PDFファイル名

# ---------------------------------------------------------------
# --- アプリの用紙エリアの実寸を記入 機種:iPad mini アプリ:Noteshelf
# ---------------------------------------------------------------
$PAPER_AREA_X_MM_NS_IPADMINI  = 120; #縦置き時の横幅をmmで記入
$PAPER_AREA_Y_MM_NS_IPADMINI  = 150; #縦置き時の縦幅をmmで記入
$PAPER_AREA_X_PIX_NS_IPADMINI = 1536; #縦置き時の横幅をピクセルで記入

#縦置き時の縦幅(自動計算)
$PAPER_AREA_Y_PIX_NS_IPADMINI = int($PAPER_AREA_X_PIX_NS_IPADMINI
				* $PAPER_AREA_Y_MM_NS_IPADMINI
				/ $PAPER_AREA_X_MM_NS_IPADMINI);

# ---------------------------------------------------------------
# --- 描画する方眼のサイズをmmで指定
# ---------------------------------------------------------------
$HOUGAN_SIZE_MM = 5;

# ---------------------------------------------------------------
# --- 太線指定
# --- 5を指定すれば5本目は太線,0で太線なし
# ---------------------------------------------------------------
$FUTOSEN_STEP = 0;

# ---------------------------------------------------------------
# --- タイトル区切り線の位置を指定
# --- 10を指定すれば10本目は太線,0で区切り線なし
# ---------------------------------------------------------------
$KUGIRISEN_POS = 2;

# ---------------------------------------------------------------
# --- 機種とアプリを指定
# ---------------------------------------------------------------
$PDF_X_MM  = $PAPER_AREA_X_MM_NS_IPADMINI;
$PDF_Y_MM  = $PAPER_AREA_Y_MM_NS_IPADMINI;
$IMG_X_PIX = $PAPER_AREA_X_PIX_NS_IPADMINI;
$IMG_Y_PIX = $PAPER_AREA_Y_PIX_NS_IPADMINI;

# ---------------------------------------------------------------
# --- 生成倍率を指定 実寸で生成すると実際に書いた時の線が
# --- 太いので2,3倍の大きさで生成
# ---------------------------------------------------------------
$BAIRITSU = 2.4;

# ---------------------------------------------------------------
# --- 生成サイズを計算
# ---------------------------------------------------------------
$PDF_X_MM  *= $BAIRITSU;
$PDF_Y_MM  *= $BAIRITSU;
$IMG_X_PIX *= $BAIRITSU;
$IMG_Y_PIX *= $BAIRITSU;

$HOUGAN_SIZE_MM *= $BAIRITSU;

# ---------------------------------------------------------------
# --- DPI計算
# ---------------------------------------------------------------
$PDF_DPI = $IMG_X_PIX / ($PDF_X_MM / $MM_PER_IN);

# ---------------------------------------------------------------
# --- 描画する方眼のピクセル数を自動計算
# ---------------------------------------------------------------
$HOUGAN_SIZE_PIX = $IMG_X_PIX / $PDF_X_MM * $HOUGAN_SIZE_MM;

# ---------------------------------------------------------------
# --- 色指定,太さ指定
# ---------------------------------------------------------------
$PAPER_COLOR    = "#fafbfb";

$LINE_USU_COLOR = "#767676"; #薄い線の色
$LINE_USU_WIDTH = "2";       #薄い線の幅

$LINE_KOI_COLOR = "#767676"; #濃い線の色
$LINE_KOI_WIDTH = "2";       #濃い線の幅

$LINE_KUG_COLOR = "#767676"; #タイトル区切り線の色
$LINE_KUG_WIDTH = "4";       #タイトル区切り線の幅

# ---------------------------------------------------------------
# --- 描画ルーチン
# ---------------------------------------------------------------
sub line_draw {

	my ($x1,$y1,$x2,$y2,$col,$width) = @_;

        $cmd = sprintf("convert -stroke xc:%s -strokewidth".
                        " %s -draw 'line %d,%d %d,%d' %s %s",
                        $col,$width,$x1,$y1,$x2,$y2,
                        $FILE_WK1,$FILE_WK2);

	system($cmd);
	$cmd = sprintf("mv %s %s",$FILE_WK2,$FILE_WK1); 
	system($cmd);
}

# ---------------------------------------------------------------
# --- 生成処理開始
# ---------------------------------------------------------------
# 用紙生成
$cmd = sprintf("convert -size %dx%d xc:%s %s",
		$IMG_X_PIX,$IMG_Y_PIX,$PAPER_COLOR,$FILE_WK1); 
system($cmd);

# 縦線描画
$wk_x = $HOUGAN_SIZE_PIX;
$count = 1;
while($wk_x < $IMG_X_PIX){
	if ($FUTOSEN_STEP>0 && $count % $FUTOSEN_STEP == 0){
		line_draw($wk_x,0,$wk_x,$IMG_Y_PIX,
			$LINE_KOI_COLOR,$LINE_KOI_WIDTH);
	}else{
		line_draw($wk_x,0,$wk_x,$IMG_Y_PIX,
			$LINE_USU_COLOR,$LINE_USU_WIDTH);
	}
	$wk_x += $HOUGAN_SIZE_PIX;
	$count++;
}
# 横線描画
$wk_y = $HOUGAN_SIZE_PIX;
$count = 1;
while($wk_y < $IMG_Y_PIX){
	if ($FUTOSEN_STEP>0 && $count % $FUTOSEN_STEP == 0){
		line_draw(0,$wk_y,$IMG_X_PIX,$wk_y,
			$LINE_KOI_COLOR,$LINE_KOI_WIDTH);
	}else{
		line_draw(0,$wk_y,$IMG_X_PIX,$wk_y,
			$LINE_USU_COLOR,$LINE_USU_WIDTH);
	}
	$wk_y += $HOUGAN_SIZE_PIX;
	$count++;
}
# 区切り線描画

if ($KUGIRISEN_POS>0){
	$wk_y = $HOUGAN_SIZE_PIX * $KUGIRISEN_POS;
	line_draw(0,$wk_y,$IMG_X_PIX,$wk_y,
			$LINE_KUG_COLOR,$LINE_KUG_WIDTH);
}

# PDFに変換して完成

$cmd = sprintf("convert -density %d -geometry %dx%d %s %s",
	$PDF_DPI,$IMG_X_PIX,$IMG_Y_PIX,$FILE_WK1,$FILE_PDF);
system($cmd);

完成したPDF

完成したPDFを置いておきますので、ご自由にお使い下さい。

グラフ用紙版

5mm方眼用紙版

iPad mini レザーケース製作記(10)縫って完成

ガイドライン

上部から10mmの位置より3mm幅でガイドラインをケガきます。

菱目打ち

 ガイドライン上に菱目打ちで縫い穴を開けます。

f:id:qunitama:20191117123601j:plain

コバ処理

ヘリ落とし、やすりがけをしてコバを磨きます。

縫う 

エスコートの中細で縫います。

完成

f:id:qunitama:20191117123749j:plain

 f:id:qunitama:20191117123815j:plain

 

iPad mini レザーケース製作記(9)コーナーカット

 各コーナーを丸くカットしますが、市販のコーナーカッターを試したところ、刃先が外に逃げてしまい裏側は綺麗な弧になりませんでした。そこで、厚紙で30度と60度のガイドを作成して直線にカットし、やすりで削ります。

ガイド

f:id:qunitama:20191116215655j:image

 f:id:qunitama:20191116215711j:image

カット後

f:id:qunitama:20191116215733j:image

 やすりがけ

最初は200~300番、次に600番で綺麗な弧にします。

f:id:qunitama:20191116215753j:image

 コーナー完成

f:id:qunitama:20191116215805j:image

 

iPad mini レザーケース製作記(8)張り合わせ

次は本体をゴムのりで貼り合わせます。

ゴムのり

図面で示した部分に、ヘラを用いてゴムのりを塗っていきます。

f:id:qunitama:20191112081317j:image

ここでゴムのり厚く塗ってしまうと、コバ面の張り合わせ部分が黒い線になってしまいますので、出来る限り薄く塗ります。

f:id:qunitama:20191112082014j:image

圧着

2枚共塗ったら乾燥させてから張り合わせて圧着します。

カット

次に、4mm幅で4辺(上、下、右、左)をカットして完成です。

 カット後のコバです。まぁまぁでしょうか!

f:id:qunitama:20191112220051j:image

f:id:qunitama:20191112220407j:image

iPad mini レザーケース製作記(7)Apple Pencilホルダー縫い付け

ガイドラインをケガク

貼り付けたApple Pencilホルダーに、縫い付け用のガイドラインを内側3mmに位置にケガきます。

f:id:qunitama:20191110154537j:plain

ガイドラインをケガク

縫い穴を開ける

ガイドラインに沿って菱目打ちで縫い穴を開けます。

f:id:qunitama:20191110155139j:plain

縫い穴を開ける

f:id:qunitama:20191110155222j:plain

縫い穴開け完了

 縫う

f:id:qunitama:20191110155353j:plain

エスコード 中細 生成

エスコード 中細 生成で縫います。

 

f:id:qunitama:20191110155608j:plain

縫い付け完了

 

iPad mini レザーケース製作記(6)Apple Pencilホルダー貼り付け

貼り付け位置をケガク

左から26mm、下から14mmの位置にホルダーを置いて、左上→下→右上の順にグルっとケガクます。その際、幅が30mmに満たない場合は、少し上から押して30mmの幅を確保しながらケガキます。

f:id:qunitama:20191104101502p:plain

貼り付け位置をケガク

接着面を荒らす

接着力を上げる為にケガいた線の内側を荒らします。

f:id:qunitama:20191104104732j:plain

接着面を荒らす

 貼り付ける

Gクリヤーで貼り付けます。

f:id:qunitama:20191104110928j:plain

貼り付け完了

 

 

iPad mini レザーケース製作記(5)Apple Pencilホルダー製作

カットラインをケガク

 一晩寝かして形成したApple Pencilホルダーを切り出しますので、まずはカットライン(赤線)をケガキいていきますが、その際、横幅を43mmにした状態でカットすると、完成したApple PencilホルダーにApple Pencilを刺した際、丁度良いテンションになります。

そこで、43mm幅の厚紙にマスキングテープで固定します。

次に、中心から左右15mmの位置に縦線2本をケガキます。

横線は上から160mmの位置にケガキます。

f:id:qunitama:20191103112927p:plain

Apple Pencilホルダーのカット位置

カット

 ケガいた線でカットするとこうなります。

 

f:id:qunitama:20191103164135j:plain

カット直後

 コーナーカット

上部は軽く、下部は半径5mmでコーナーをカットします。

 

f:id:qunitama:20191103164621j:plain

コーナーカット

ヘリ落とし、コバ磨き

最後にヘリを落としてから、コバを磨いて完成です。

f:id:qunitama:20191103164930j:plain

完成したApple Pencilホルダー