「 折り図 」一覧

折り図tips:余計なポイントを削除する

折り図を描き進めていくと、いつのまにかポイント数1の点のようなオブジェクトが増えています。線を消し損ねて残ってしまったものや、一部だけ選択されてコピペされたものが多いですね。

基本的には余計なデータなので、定期的に消しておきましょう。

「グラフィックの検索・置換」パネルで該当するオブジェクトを選択して、削除できます。

属性を「オブジェクトの種類」、ポイント数「1」で検索します。該当するオブジェクトが選択されるので、そのまま削除すれば問題ないでしょう。


折り図tips:オビの書き方手抜き版

折り図の順番を示すオビをFreeHandで比較的簡単に描く方法。

まずは図の中心あたりにポイントをおくようにして線を描きます。まだ直線です。図やネームのオブジェクトは別レイヤーでロックしておくよいでしょう。

次。描いた線のポイントを選択して、「オブジェクト」パネルでベジェ曲線化(左側)、さらに自動設定(右側)にチェックをいれます。

これでそれっぽい曲線になります。

不自然な部分が出来てしまうこともあるので、手動で調整しましょう。ポイントの「自動設定」が生きていれば、ポイントの位置を動かすとベジェ曲線も自動的に調整されます。便利。


折り図tips:展開図の利用

折り図を描く時に、展開図を先に用意しておいてテンプレートとして使うと非常に便利です。形や距離の定規代わりはもちろん、形のゆがみなどの確認にも使えます。

最終的な展開図だけではなく、つける折り筋に合わせたものや、部分だけのものなど何段階か用意しておくと使いやすいですね。


折り図tips:ポイントへ吸着とカーソル距離

折り図を描く時には、「ポイントへ吸着」は常にオンにしています。ポイントの近くへカーソルを持っていくと同じ位置に合わせてくれるという機能で、カドや折り筋を一点に揃えられるので折り図描きには欠かせません。

(画像は見てのとおりFreeHand MX。大抵のドローソフトには同じような機能があるはず)

とはいえ、紙の重なり等の表現のため、少しだけずらしたいという場合もあります。そんな時は、キーボードの矢印キーが便利です。微妙な重なりの差や、カドの先を等間隔でずらしたい時などにも使えます。

私の場合、移動距離には、0.1mmを設定しています。

 

ヒダのような、等間隔でずらしたい場合にも矢印キーは使い易いですね。


アリの折り図 『折紙探偵団マガジン163号』

本日発行の『折紙探偵団マガジン163号』に、アリの折り図が掲載されます。

既に購読等を申し込まれている方には、もうすぐお届けされるかと思います。お楽しみに。

まだ更新されていない方、もしくは興味のある方。購読申し込み等については、日本折紙学会のウェブサイトをご覧下さい。サイトからPaypalでの申し込みも可能です。

http://www.origami.gr.jp/JOAS/subscribe.html


線を短くするスクリプト

選択されたポイントがパスの起点か終点の場合のみ、2pt分短くするスクリプト。紙のフチから折り筋線を少し離す時に使えます。こういう作業を一括処理できるのが、スクリプトの良いところ。

以下仕様と注意点など。

  • 処理としては、オブジェクトの起点と終点のポイントを選択されているか判定して、それぞれ2番目のポイントの方向へ移動させています。
  • 最初は選択されたポイントを判定していけば出来るのでは?と考えたのだけれど、判定方法に悩んだ結果、結局上記の順番になっています。
  • 実際のコードについては、素人目で見てもかなり酷い。とりあえずポイント移動の座標計算で起点・終点で同じ事をしているので、切り離して関数化した方がよさそう。
  • ベジェ曲線には未対応。ハンドルが消えるので注意。
  • 短すぎる際の処理についても未対応なので、多分反対側に飛び出す。

cutline.zip


inkscapeでの変換しやすいデータの作り方、もしくは折り図を投稿する際のガイドライン。

という事で、変換の際にエラーの少ない/変換しやすい折り図の書き方tips集。

折り図集などに投稿するための折り図を用意する際や、AIを買ったあとinkscapeで描いた折り図を変換したい場合などに便利かと思います。

  • マスクではなく切り抜きを使おう
  • 切り抜きはグループ化をしてから
  • 半透明グラデは避ける
  • やり取りは結局PDFがベター。PDFと相性の良いデータを目指そう

とりあえず思いついた、上記の項目について書きます。本文中の略称はAI=Adobe Illustrator、FH=FreeHandです。

・切り抜き奨励、マスクは非奨励。

拡大図などで、枠内のみを表示させるような時に使われます。この二つの機能、画面上の結果はあまり変わらないのですが、書き出しや変換の際に大きな差が出ます。

切り抜きの場合:内部のデータが枠の形に「切り抜き」されます。データの状態として、FH的には枠の中に貼付けるような形になります。PDFでもAIの切り抜き状態で書き出されるようです。

マスクの場合:枠外を見えない(マスク)状態にします。イメージとしては、枠外を覆い隠しているような形です。で、これがPDFに書き出した際にどうなるかというと、マスクごとに画面全体を覆うようなオブジェクトが作成され、そこに空いている穴の部分のみがレンダリングされているというようなデータになります。さらに言えば、このマスク用のオブジェクトはラスターデータです。画面全体を覆っているため何より編集しづらい。

という事で結論。マスクである必然性がなければ、切り抜きを使おう。

※マスクの必然性。当然ラスタ画像データや、半透グラデでマスクしたい場合とかはマスクでなければいけないはず。

・切り抜きはグループ化した後に。

切り抜きをする場合は、まとめてグループ化してから切り抜きを行いましょう。

inkscapeの仕様だと思うのですが、まとめてグループ化をしておかないと「オブジェクトごと」に切り抜きされます。グループ化されていないたくさんのオブジェクトにまとめて切り抜きを行った場合、オブジェクトの数だけ切り抜き枠が作成され、そのまま何十もの切り抜きが重なった状態になります。レンダリングが無駄に重くなり、データとしても修正や編集もしづらいので、メリットは全くありません。本当に百害あって一利無し。

※この仕様の有効な使い方……各図をそれぞれグループ化、同じ位置に重ねて、一気に切り抜き処理ができる。その後動かしてレイアウトしていく。あ、これは便利かもしれない。試してないけど。

・半透明グラデーションは非奨励。

これは単純に、書き出しなどの際の互換性が低いのです。グラデーション以外でも、半透明オブジェクトのコンバートは、上手くいかないケースが多いので、可能であれば使わない方が無難です。

とりあえず半透明グラデに関しては、PDF書き出しの段階でグラデ属性が消える、またそのPDFをそのまま読み込むとオブジェクトが消えてしまう事を確認しています。

PDFへの書き出しと互換性が原因なので、バージョンアップで解決される可能性は十分ありますが、現段階ではなるべく使わない方がよさそうです。

・SVGはPDF書き出しして読み込む。

AIを導入し、これまでinkscapeで描いたデータを読み込んでみたら酷い状態だったという経験はないでしょうか?

これはAI側の問題かもしれませんが、矢印が消えたり、線の太さが酷い状態になります。後者はおそらくはtransform属性が上手く読み込めていないのではないかと思いますが。(ちなみに手持ちの環境のAI-CS5でそのまま読み込んだ場合です。)

回避方法としては、inkscapeからまずはPDF形式で書き出し、それをAIで読み込むのが比較的安全です。データの作り方次第ですが、inkscapeのバージョンアップに伴って読み込んだデータも使いやすくなっているようです。

グループ化などは死にますが、必要経費と思って諦めましょう。

※ちなみに、読み込めないPDFについては、「MacOSのプレビューで開きPDFで保存し直す→AIで開く」でどうにかなる場合もあります。ただしデータは酷い状態になりますが……


数字を加算するスクリプト

選択されたテキストを数値として取得し、1を加算・減算して返すだけのスクリプト。

要するに図番号用で、図が一つ増えたり減ったりした時、その後の数字をずらすのに使えます。

例によってエラー処理などなにもしていません。parseIntのみで強引に整数化しているので、例えば「15a」の「a」は消えてしまいます。また、数値以外で始まるテキストが含まれていると、NaNを返します。

ORZnumber


同じ種類の鎖線を選択するスクリプト

同じ種類の鎖線を選択するだけのスクリプト。特定の鎖線、たとえば山折り線だけを選択したいときなどに使えます。

見て分かるとおり、エラー処理などは全くしていないので、使用ついては自己責任でお願いします。

スクリプトファイル:SelectSameDashes

RunSclipt = confirm (“選択されたオブジェクトと同じ鎖線を、選択状態にします。\nスクリプトを実行しますか”);

if (RunSclipt == true){

     ORZsel = activeDocument.selection;

     ORZlinedashes = “”+ORZsel[0].strokeDashes;

     ORZobj = activeDocument.pathItems;

     for (i=0; i<ORZobj.length; i++){

          if( ORZobj[ i ].strokeDashes == ORZlinedashes ){

               ORZobj[ i ].selected = true;

          }

     }

}


Adobe Illustratorでスクリプトを動かす

Illustratorでは、JavaScriptなどで書いたスクリプトを動かすことができます。これによって、メニューやアクションでは出来ないようなことを、簡単に行う事が出来るようになります。

幸いプログラムに関しては、昔BASICやHyperCardで遊んでいたこともあり、簡単なものであれば書いたり改造もできます。

ということで、実際に使ってみるととても便利で、作業によってはスクリプト無しは考えられないというくらい手放せなくなりました。特に判定が必要な自動化については、アクションの機能だけでは実装が難しいため、スクリプトが使えるかどうかで出来る事がまったく変わってきます。

Illustratorで折り図を描いていて、かつ簡単なプログラムが出来る人は、導入を検討してみてはいかがでしょうか?

ツールや資料など。

「ScriptKeyAi」

http://tama-san.com/scriptkey/

ショートカットからスクリプトを起動するサポートソフトウェア。とても便利。特に何種類かのスクリプトを何度も実行するような場合には必須。アイコンもかわいいですね。

Illustrator自動化基本編

参考書。スクリプト例文集。著者はMZ-700ユーザーにはおなじみの古籏一浩氏。サイトにも異常な量の情報があふれています。

http://www.openspc2.org/

余談ですが、古籏氏とMZ-700から生まれた「MZ-700に不可能はない」という言葉は、私にとっての座右の銘的な言葉の一つです。