Inkscapeでハッチングパターンの作成・完全版

ドキュメント履歴:2019-06-29 初回アップ


ドローイングソフトは Adobeの Illustrator の独壇場らしいが、あいにく Adobe社のライセンスはどれも破格で”しがない”貧乏老人には手が出ない。まぁ仮に手が出たって使いこなすにはかなりの気合がいるから同じかもしれないが。で今まではちょっとお絵かきしたい場合は仕方なく Wordの図形挿入( Shape)とかで凌いできたが、ちょっと特許図面を描こうかと思ったらさすがになかなか思うようには行かない。
そこで、「フリーウェア」で簡単な図形ならそれなりに「簡単に」使えそうなドローイングソフトを探してつついてみた。


関連ページ: PNGに背景色を指定してExportする / 起動時の画面設定方法



  1. Inkscapeで図面描き
  2. というような次第で、あれこれ Webをうろついて探したらフリーウェアの Inkscape と言うツールが、機能的には簡易 Illustrator的で面白そうだと分かって、早速インストールして使い始めた。
    ちょっと使ってみたら Inkscapeは 一般的な画像処理ソフトなどと操作感が似ており初心者でも比較的敷居は低い。ペンツールやノードツールで角を丸める操作をある程度使いこなせるようになったら普通の図形はそこそこ描けるようになったが、特許図面では断面を示すのにハッチングが不可欠。しかし、ハウツー本(と言うか Webの解説ページ)では、「ハッチングは塗りつぶしのストライプで」と説明されているので試してみたが「出来る」と言うレベルで「使える」と言うには程遠いと分かった。
    もう少し探すと、Inkscape ではカスタムのハッチングパターンを作って登録すれば良さそうだと分かった。しかし、数あるカスタムパターンの説明では、どれも作成する文書毎にパターンデータが保存されるので、別の文書に同じパターンを描こうと思うと、そのオブジェクトを既存のファイルからコピーして使うしか方法がなさそう。せっかく作ったカスタムパターンは新規作成文書で使えるように本体に登録するのがスマートだ。
    そこでもう少しうろつきまわって、英語ページなどを参考にしながら Inkscape の標準パターンファイルにカスタムパターンを登録する方法を探ってみた。それらのページの通りに操作すれば ある程度はハッチングパターンを登録できることが分かったが、何回も繰り返したら出来たり出来なかったり、あるいはハッチングの線が途切れたりとか、イマイチしっくりこないのでこの際徹底的に掘り下げてマニュアル化してみた。
    最後には私の作成したパターンの XMLを載せたので、これをコピペすれば簡単にハッチングパターンを登録できると思う。

  3. 予備設定
  4. カスタムのハッチングパターンを簡単に作成するにはページグリッド(マス目)を表示させて、描画オブジェクトをこのグリッドにスナップさせる(図形の端点がグリッドに引っ張られる)ようにするといい。
    図-1
    まず「表示」メニューの「ページグリッド」を ONにする。
    ただ、このままだとグリッドの間隔が px単位になって、印刷したときに”mmあたり何本のハッチング”とかの判断が困難だ。
    図-2
    「ファイル」メニューの「ドキュメントのプロパティ」で、「ページ」の「一般」の「デフォルトの単位」を「px」から、「mm」に変更し、
    図-3
    「グリッドの単位」も「mm」にしたうえで、「グリッド」の「X方向の間隔」と「Y方向の間隔」を「1.0」にする。
    (ハッチングの線の間隔を 1.5mmにしたい場合は 1.5とか 0.5とかにした方がいいかも知れない。)
    こうするとグリッドの単位は 「mm」になるが、スタート時の表示では縮小されすぎているので、「Ctrl」+マウスホイールで何倍かにズームインさせないと 1mm単位のグリッド表示にはならない。
    図-4
    同じ「ドキュメントのプロパティ」の「スナップ」タブで、スナップの条件が「グリッドにスナップ」で「常にスナップ」にチェックが付いているか確認する。

  5. ハッチングパターンの作成
  6. 作図画面にグリッドが 1mm単位で表示されたら、ペンツールを使ってハッチング用の平行な斜め線を2本引く。このときに、用紙サイズ枠の左上隅に近いところに線を引くのがコツだ。(こうしないとハッチングの間隔や角度を調整するためのコントロールの基点がどこにあるのか見つけづらくなる。)
    図-5
    例えば図のようなハッチングパターンを描く場合、まずパターンの外枠を決め、上下の枠(AとB)と左右の枠(CとD)のそれぞれ同じ位置に線の交点が来るようにして、更に枠の外側に1グリッド分以上長く平行線を引く。この図からも分かる通り、ハッチングの角度を何種類も作ろうとする場合はグリッド間隔を 1mmよりも細かくしておくか、もっと大きなパターン外形にしないと出来ない。
    Inkscapeのデフォルトの線の太さは 0.265mmになっているがハッチングはもう少し細いほうが良いと思われる。ここでは 0.1mmにした。
    図-6
    また、後からクリップする枠を作るが、その枠の角にハッチングの線が来ると、クリップ枠で線がトリミングされてハッチングを拡大した時に隙間が生じるので角は通らない線を引く(クリップ枠の四隅の上を通さない)。
    図-7
    次に矩形ツールでその上に、パターンの外枠(クリップ枠)になる 3mm X 2mmの正方形を描く。
    図-8
    その四角形が選択された状態で右クリックして「複製」を実行する。(または「編集」>「複製」でも可)
    図-9
    四角形を複製したら複製した方の四角形を脇に移動させる。(この複製した四角形はハッチングの間が透けないようにするための白マスクを後で作る。)
    図-10
    元の四角形の「ストロークのスタイル」で「幅」を 0mm にして枠線を消す。
    図-11
    斜め線と元の四角形を両方選択した状態で、「オプジェクト」>「クリップ」>「設定」を実行すると斜め線の余分な部分が消える。
    図-12
    次に、複製した方の四角形のストロークの幅を 0にして見えなくする。塗りつぶし(フィル)はデフォルトで RGBA 全て「255」(白色で非透過)になっているはずだが、念の為それを確認する。
    図-13
    上記操作で矩形枠が見えなくなるが、コントロールの矢印マークを頼りに、この四角形を斜め線の上に移動させておいて(斜め線が見えなくなる)、「オブジェクト」>「再背面へ」を実行すると一旦消えた斜め線が再び表示される。
    「選択ツール」で全てのオブジェクトの周りをドラッグして選択し(<<ここがポイント)、「オブジェクト」>「パターン」>オブジェクトをパターンに」を実行する。
    図-14
    メニューの「編集」>「XMLエディタ」でXMLエディターを表示させて右図のように「patternXXXX」と言う新しいパターンが作成されたことを確認し、XXXXの部分の番号をメモする。
    パターンは作成されたが、このまま SVGファイルを保存すると、経験的に失敗することがあるようなのでひと手間加える。(その後の確認では不要かもしれない)
    図-15
    矩形ツールで離れた場所に新しく少し大きめの四角形を描き、「フィル」で「パターンフィル」を選択すると、新しく作成したパターンが指定されて、新しい四角形がハッチングで塗られる。
    ハッチングした図形を選択しておいてノードツールに切り替えると、「x」「○」「□」のコントロールが表示され、角度や間隔が調整できる。
    ただし、このコントロールはハッチングを適用した図形の近くではなく、どこにハッチングしても用紙の元のパターンを作った位置(用紙枠の左上隅)に表示される。「○」や「□」で角度や間隔を変えるときはズームアウトして「x」を図形の近くにドラッグしてきてからおよその実寸サイズにズームしてから調整するとわかりやすい。 ハッチングで塗りつぶすことが確認できたら、「名前をつけて保存」で SVGファイルを保存する。(例として hatchsample01.svg とする)

  7. pattern.svg ファイルに登録
  8. 図-16
    上記で作成した hatchsample01.svg をエディタで開いて、図-14でコピーした該当番号の id="patternXXXX" の行を含む <pattern> ~ </pattern> の範囲を選択コピーする。

    以下の作業は Inkscapeのインストールディレクトリが Windows標準の Program Files もしくは Program Files(x86)配下である場合と、それ以外のディレクトリにインストールした 場合で編集するファイルの場所が異なる。
    Windows標準の Program Files か Program Files(x86)の場合は直接その配下の patterns.svg は保護されていて変更できないので C:\Users\ユーザ名\AppData\Local\VirtualStore\Program Files(x86)\Inkscape\share\patterns ディレクトリを、それ以外のディレクトリにインストールした場合は、インストールディレクトリの下の \share\patterns ディレクトリ内の patterns.svg と言うファイルを patterns_org.svg などとリネームしてから エディタで開いて、<pattern と言う行を探し(多分 16行目あたり)その上に上記でコピーした <pattern> ~ </pattern> の部分をペーストする。
    図-17
    ペーストしたら <pattern の後ろに inkscape:collect="always" と言う1行を追加する。
        <pattern
         inkscape:collect="always" ← 追加
         patternUnits="userSpaceOnUse"
    

    id="patternXXXX"の部分はそのままだとどんなハッチングパターンなのか分かりづらいので 分かりやすい適当な名前に変更する。但し patternの後ろに数字を並べると Inkscapeが自動で付加する名前とバッティングする可能性があるので patternは使わないようにする。(ここでは hatch+127 とした)
    更にその後ろに同じ名前で inkscape:stockid="hatch+127" と言う行を挿入する。
    タグの終端を示す > 記号を後ろに移動することを忘れないように!

         id="hatch+127"
         inkscape:stockid="hatch+127">
    

    その下の方の id="*" と clip-path="url(#clipPathXXXX)" と言う行は全て探して削除する。(今回はパターンの要素のオブジェクトが直線 2本と背景の四角形なので 合計 5行を削除する。)
    patterns_org.svg ファイルの以上の編集が終わったら、「名前をつけて保存」で元の「patterns.svg」として保存する。
    以下は Inkscapeのインストールディレクトリが Windows標準の Program Files や Program Files(x86)である場合のみ必要。
    そのインストールディレクトリの \share\patterns\patterns.svg ファイルに上記のファイルを管理者権限で上書きコピーする。
    以上で Inkscapeのデフォルトのパターンに作成したカスタムパターン情報が登録されて、新規作成のドキュメントで使うことが出来るようになった。
    >>ワンポイント: パターン名に2バイトコード(かな・漢字)が使えるようだが、その場合は文字コードを UTF-8Nで保存する必要があると思われる。
    以下、確認を行う。

  9. 確認
  10. Inkscapeを起動する(上記 patterns.svg ファイルの変更時点で起動していた場合は再起動が必要)
    図-18
    四角形などの図形オブジェクトを配置して「フィル」>「パターン」をクリックして「パターンフィル」を展開するとリストの上部に作成したカスタムパターンの名前が表示されるので、これを選択する。
    図-19
    もう一つ別の図形オブジェクトを端が重なるように描いて、同じように新しく作成したカスタムパターンをフィルすると、上になったハッチングの隙間(白部分)は透けずに下の図形が隠れて、図-13でパターン外形と同じ白色の四角形を背面に重ねた効果が確認できる。(ハッチングの間が透けると断面の図形の上下関係が不明になり、重なったときに見づらくなる)
    説明だけ読むと面倒な作業に思えるが、2回もやれば作業はスムースに行えるようになる(と思う)。

  11. ダウンロード
  12. 図-20
    参考までに私の作成したハッチングパターンのコードのダウンロードはこちら
    (標準のパターンに追加する場合は全て選択コピーして、既存の patterns.svg ファイルをエディタで開き <pattern と言う行を探し(多分 16行目あたり)その上にペーストする。

オススメのシェーバー  by Amazon



熟睡したいなら  by 楽 天

Access Counter:  総アクセス数