Noteshelf 2 テンプレート
普段、iPad miniで利用しているNoteshelf2、標準のテンプレートはとても素晴らしいのですが、細かめのグラフ用紙のテンプレートが欲しかったので自作する事にしました。
作成ツール
普段はInkscapeやExcelなどで作るのですが、miniではないiPadやGoodnotes5などでも使う可能性があり、毎回微調整しながら作成するのは大変なので、PerlとImageMagickで作る事にしました。
作成ポイント
スクリプトを作る際、下記の点を実現出来るようにしました。
- 作成するPDFは描画エリアピッタリの縦横比
- グラフの1マスの長さをmmで指定出来るようにする
- 線の太さと色を指定出来るようにする
実行環境
PerlとImageMagickのconvertコマンドが使用出来る環境でしたら、おそらく動くと思われます。私はWIndows10環境にcygwinをインストール後、PerlとImageMagickをインストールして動かしました。
注意事項
スクリプト
グラフ用紙版
#!/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 レザーケース製作記(9)コーナーカット
各コーナーを丸くカットしますが、市販のコーナーカッターを試したところ、刃先が外に逃げてしまい裏側は綺麗な弧になりませんでした。そこで、厚紙で30度と60度のガイドを作成して直線にカットし、やすりで削ります。
ガイド
カット後
やすりがけ
最初は200~300番、次に600番で綺麗な弧にします。
コーナー完成
iPad mini レザーケース製作記(6)Apple Pencilホルダー貼り付け
貼り付け位置をケガク
左から26mm、下から14mmの位置にホルダーを置いて、左上→下→右上の順にグルっとケガクます。その際、幅が30mmに満たない場合は、少し上から押して30mmの幅を確保しながらケガキます。
接着面を荒らす
接着力を上げる為にケガいた線の内側を荒らします。
貼り付ける
Gクリヤーで貼り付けます。
iPad mini レザーケース製作記(5)Apple Pencilホルダー製作
カットラインをケガク
一晩寝かして形成したApple Pencilホルダーを切り出しますので、まずはカットライン(赤線)をケガキいていきますが、その際、横幅を43mmにした状態でカットすると、完成したApple PencilホルダーにApple Pencilを刺した際、丁度良いテンションになります。
そこで、43mm幅の厚紙にマスキングテープで固定します。
次に、中心から左右15mmの位置に縦線2本をケガキます。
横線は上から160mmの位置にケガキます。
カット
ケガいた線でカットするとこうなります。
コーナーカット
上部は軽く、下部は半径5mmでコーナーをカットします。
ヘリ落とし、コバ磨き
最後にヘリを落としてから、コバを磨いて完成です。