2015年10月2日金曜日

FreeCADで切り込みの入った円錐を作る。

ボールの窓を作っていると、切り込みの入った円錐が欲しくなった。
作り方を調べてもなかなか見つからなかったが、試行錯誤の末、なんとかできた。


まず、XY平面スケッチを書く。
適当な三角形。
ワークベンチ「Part」にある「選択した図形の回転」で先ほどのスケッチを選択。
角度10°、軸Y、ソリッドを作成にチェックをしてOK

円錐の欠片ができた。

これを軸を中心に回転させていくつか配置させたい。
そのためにワークベンチ「Draft」にある「配列」を使うのだが、
設定は少々ややこしい。

作成したモデルを選択し、「配列」をつかうといくつか並んだ状態で表示される。

このままではZ軸方向にモデルが並んだ状態なので、
軸を中心に回転させるためには「プロパティ」の「Array Type」を「ortho」にする。

 そして、「Number Polar」の数を変えると、
軸を中心にその数だけ均等に配列される。
「Axis」で回転の軸を変更できるので、「y」を1.00にし、他を0.00にすると、


隙間の開いた円錐が出来上がる。

配列による回転の他のパラメータとして重要なのが、
回転軸の位置をずらすことができる「Center」
配置ひとつずつ軸をずらす「Interval Axis」
先ほどの「Number Polar」、「Axis」と組み合わせれば色々と面白い図形ができる。
それと、「Fuse」はTrueにすれば重なり部分を統合することができる。



隙間円錐を同じサイズの円錐と減算して組み合わせるとようやく切り込み円錐。
下底と上底のスケッチを作ってロフトを使えばこれみたいな円錐台なら作れると思うが、
スケッチが面倒だし先の尖った円錐は無理っぽい(?)

こちらのほうが切り欠きの増減も簡単だし、形状変更も簡単だと思う。

FreeCADをインストールしてみよう。

最近は更新をめっきりサボっていた。
本業の方が忙しかったせいで、すっかりプログラミングから離れていたのと
元々の趣味の模型ばかりやっていたせいだ。

最近いじっていたのは機動戦士ガンダムに出てくるボールのプラモ。

ちょっと大砲とか追加してみた改造ボール(作りかけ)だ。

改造していて思ったのだが、やっていると完成したイメージというのがつきづらい。
いつもいきあたりばったりで改造したり、塗装していた。

全体のバランスとか色の組み合わせとかCGでできたら面白そうなので3DCGに挑戦してみることにした。


一応、CATIAは仕事でほんの少しだけカジッたことがあった。
でも、このソフトは買おうとするととんでもなく高い・・・
学生なら1年無料ライセンスとかあるみたいだけね。
同様の製品にPTC Creoがあるが、こちらも高い。


いろいろ調べてみたら、LINUXで使えそうなフリーソフトとして
Blender
FreeCAD
が候補に挙がった。

Blenderの方は3DCGによるアニメーション作成向けと言った感じ。
FreeCADはパラメトリックCADと言われる設計向け。

一応、ひと通り試してみたが、今回は設計に近いものがあるので、
FreeCADを使ってみることにした。

公式サイトにアクセスし、Downloadのページに入るとインストーラーがダウンロードできる。

Ubuntu系の場合、PPAを追加してパッケージ導入することも可。
私の場合、記事を参照にして以下のとおりにコマンドから導入。
多分、一番簡単でトラブルがないと思う。

sudo add-apt-repository ppa:freecad-maintainers/freecad-daily
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install freecad freecad-doc

この記事を書いている段階では安定版は0.15なのだが、
この方法だと、最新の0.16がインストールされた。

ついでにアセンブリ機能を強化するため
というのを導入。
こちらもFreeCADと同様なインストール方法が書かれているが、
こちらはページの右側にあるDownloadからファイルをダウンロードし、
解凍後の中身を、FreeCADのModディレクトリ内に放り込んでやってもOK。

そんなわけでFreeCADの導入完了。

ちゃんとassembly2が導入された状態だ。

2015年7月26日日曜日

シェルスクリプトってなんだろね?

シェルとは?
OSの中核となるカーネルを操作するためのコマンドライン。通常、直接操作することのないカーネルを包み込むという意味でシェル(貝)と呼ばれるらしい。つまりはユーザーがパソコンに色々な動作をさせるための受付窓口みたいなもん。

シェルとしてLinuxではbashが代表的だが、他にもいくつか種類があって切り替えて使用ができる。


スクリプトとは?
単語としては台本や脚本といった意味。機械語への翻訳が不要ですぐに実行できる簡易的なプログラミングとされる。

そんじゃシェルスクリプトとは?
シェルの動作をまとめたスクリプトのこと。なにが便利かというと、同じ作業を繰り返し行う場合に、これを作っておくと一度の操作で済むようになるということ。

他のプログラミング言語と比較した場合の最大の特徴は、普段使っているコマンドがそのまま使えるということ。つまりファイルのリネームとかバックアップといったことでも一般的なコマンドの組み合わせでできちゃう。

その実体はテキストファイルであり、その内容はごく簡単に言えば実行可能なコマンドを並べて記述したもの。

実行するには作成したテキストファイルに実行権限を与え、端末上のコマンドラインで実行すれば良い。

具体的には以下のリンクを参照。

詳細はまた後日追記。

2015年7月19日日曜日

Deja-Dupをとりあえず使ってみる。おまけでHDD増設。

Linuxを色々といじっていると、何かの拍子に不具合が出ることがある。

自分で行うつもりのない設定ファイルの変更や、重要なライブラリを削除してしまった時のためにバックアップを用意したい。

システム・バックアップを基礎の基礎から


写真や音楽のようなドキュメントは単純にコピーをとっても良いのだが、
システムに関する部分は移動するにもいちいちユーザー権限が必要だったり、把握しきれない複雑なディレクトリ構造であったりと、かなり面倒。私がイロイロと遊んでいるPCは古いパーツの寄せ集めを再利用したもの。
今回は古いHDDがあるのでそれを増設してやろうと思う。

このHDDは80GB程度のもので今どきとしてはずいぶんと容量が少ない。
が、私の周りにはこれよりもさらに容量が小さなHDDがいくつも余ってたりするw

そんなわけで、OSのバックアップ用に再利用してやろうと考えた。
追加したHDDは自動的に認識されるが、より柔軟に利用したいならメニューの「設定」、「ディスク」から設定を変えられる。再起動後もマウントの設定を有効にしたいなら/etc/fstabをいじる必要があるとか。詳しくは下記。
Linux ハードディスクをマウント(mount)する


写真や文書ファイル等の一般的なユーザーデータのバックアップはこちらが簡単らしい。
第103回 Deja Dupで簡単バックアップ(内容としては古い)

導入と運用が手軽そうなこのDeja-Dupを利用してみる。

導入は
  sudo aptitude install deja-dup
と、楽ちん。

メニューにバックアップができているので、こちらから必要な部分を設定してやる
必要そうかな〜と思われる部分を指定してやった。
本当に必要かどうなのかは今の私ではよくわからん。

操作自体はかんたんなので、悩むことはなかった。


以下はいまのところ試してないが、復元方法はDeja-Dupを起動して「復元」を選んでやれば良いらしい。

ただし、ルート直下にあるディレクトリのような変更に実行権限が必要な場所に関しては
端末からコマンドで
 sudo deja-dup restore [レストアするフォルダ]
あるいは
 sudo deja-dup-preference
としてDeja-Dupを管理者として起動する必要があるとのこと。
ローカルの Ubuntu12.04 から Amazon S3 へバックアップ



ちなみに。Linuxの標準的なバックアップ方法として、dumpコマンドの利用があるらしいが、操作が煩雑になるので、直接打ち込んで使う気にならなかった。

また、OSの状態を含めたシステムバックアップはまるごとバックアップができるClonezillaが便利そう。
Clonezilla その1 - Clonezillaのダウンロード

2015年7月8日水曜日

Lubuntuのまとめ


自分の記事とかのまとめ

基礎知識

Linux技術トレーニング 基本管理コース

便利なコマンド
【 which 】 コマンドを探す
【 find 】 ファイルやディレクトリを検索する
 ホームディレクトリ以下の拡張子shtmlのファイルをファイル詳細付きで検索する
  find ~/ -name "*.shtml" -ls 
       sudo find / -name "*.shtml" -ls
【 locate 】 ファイルを高速に検索する
【 ls 】 ファイルやディレクトリの情報を表示する
【 rm 】 ファイルやディレクトリを削除する
       sudo rm -r xxxx ディレクトリxxxxを中身ごと削除。

aptitude show xxxx    パッケージxxxxの情報表示
aptitude search xxxx    パッケージxxxxの検索
apt-file search xxxx              探したいファイルやライブラリが含まれているパッケージを検索

【 ln 】 ファイルやディレクトリにリンクを張る
ln -s xxxx yyyy   yyyyにxxxxのショートカットを作成。









初期設定について
初期設定をする際に参考にさせていただいたサイトとか。

Lubuntu 14.04 LTS を Windows XP の代わりに インストールしてみた
Lubuntu – インストール直後に行う設定まとめ 
Ubuntu kledgeb
Linux(Debian系)を導入した直後にやる設定の殴り書き


インストールの方法や日本語環境の整備、ウィンドウやアイコンの変更、おすすめアプリなど
とりあえずは一読しておくと便利に使いやすくなるかもしれない。


自分が実際にやったこと
以下の記事を参照されたし。





あとはドキュメントやピクチャといったカタカナ表記になっているディレクトリを英語化
端末上で以下を入力
 LANG=C xdg-user-dirs-gtk-update
Don't ask me this againにチェックを入れてUpdate Namesで完了。
※これはやるなら一番最初に行うことをおすすめ。ディレクトリに何か入っていると、そのまま残ってしまう。
Ubuntu Gnome 14.04 をインストールしてからやったこと

その他

ディレクトリ構造の概要
パッケージ管理システムの概要
Lubuntuってどんなもん?

2015年7月3日金曜日

GTK+を自力でインストールしてみよう まとめ

関連記事。

GTK+を自力でインストールしてみよう① GTK+インストールガイドの翻訳
GTK+を自力でインストールしてみよう② GlibのINSTALL翻訳
GTK+を自力でインストールしてみよう③ PangoのINSTALL翻訳
GTK+を自力でインストールしてみよう④ ATKとgdk-pixbufの翻訳


LubuntuにGTK+3をインストールする方法についてだが、
パッケージマネージャーや、apt-get等を利用するのがとても簡単。
しかし、その場合は最新版が手に入るとは限らない。

そこで、現在の最新版であるGTK+ 3.16を公式サイトからダウンロードして導入してみることにした。

最初はダウンロードしたファイルをテキトーに解凍してビルドしてインストールしてみようとしたのだが、あちこちでエラー頻発。しまいには余計なことまでしてLubuntuをインストールし直すハメに・・・・

そんなわけで、ちゃんとインストールガイドを読んだうえで再チャレンジすることにした。
ちゃんと説明書は読まなきゃダメだね~

結果としては(ほぼ)最新版を導入することに成功。
と、いうのもgobjectだけはうまく行かず、今のところ私では解決できそうになかったので、パッケージマネージャーを利用したため。

それ以外のものは標準ディレクトリにインストールすることができた。
今のところ動作に問題はなさそうだ。

やったことは以下の通り。

○基本のコマンド

基本的には端末から解凍したパッケージのディレクトリに入り、./configureを実行後、makeしてsudo make installが基本。以下は標準ではない/opt/gtkにインストールする場合を想定して説明している。

1.pkg-config の環境変数設定(標準ディレクトリ以外にインストールする場合)

検索パスの追加
 export PKG_CONFIG_PATH=/opt/gtk/lib/pkgconfig
インクルードファイルの検索設定
 CPPFLAGS="-I/opt/gtk/include"
 LDFLAGS="-L/opt/gtk/lib"
 PKG_CONFIG_PATH="/opt/gtk/lib/pkgconfig"
 export CPPFLAGS LDFLAGS PKG_CONFIG_PATH
ライブラリの検索設定
 LD_LIBRARY_PATH="/opt/gtk/lib"
 PATH="/opt/gtk/bin:$PATH"
 export LD_LIBRARY_PATH PATH

2.端末を使って移動

cd /Download/xxxx

3.パッケージの解凍(拡張子に応じて)

 tar xvfj xxxx..tar.bz2
または  tar xvfJ xxxxx.tar.xz

4.解凍してできたディレクトリに移動

 cd xxxx

5.makefileの作成とインストール

./configure
※標準ディレクトリ以外なら./configure --prefix=/opt/gtkのようにする。
 make
 sudo make install
ldconfig  プログラム構成の更新。標準ディレクトリにインストールしている場合のみ?)


○コマンドについて補足

他に関連するコマンドとして。
インストールのチェック
 make installcheck
ソースコードディレクトリからプログラムバイナリおよびオブジェクトファイルを削除
 make clean
インストールされたファイルを削除
 make uninstall


ちなみに、環境変数を設定するexportコマンドはオプションをつけることができる。
export -n 設定した環境変数の削除
export -p 環境変数の表示
また、printenvコマンドでも環境変数を表示可能。
細かいところはこちらを参照
【 export 】 変数を大域変数として追加する【 printenv 】 環境変数を表示するLinux入門 » Linuxコマンド集 » システム
 環境変数を設定するには export - 環境変数を定義・リスト表示する - Linuxコマンド


pkg-configでちゃんと引数が返ってくるかテスト(glib-2.0.pcを参照)。
 pkg-config glib-2.0 --cflags --libs
単純にこのコマンドを打ち込むと、標準ディレクトリにインストールされたglib-2.0.pcに反応してしまう。こいつを改変してもいいのだけれど、一応古いGTKも残しておきたいので、このままにしておく。

新しくインストールした方を利用するためには、
 export PKG_CONFIG_PATH=/opt/gtk/lib/pkgconfig
を先に実行しておくこと。
このままでは少々使い辛いが、当面はこれで。



○事前に用意すること。

端末やパッケージマネージャーを利用して必要なものを探しておく。
最新版でなくてもよいのなら、サイトから直接ダウンロードしなくてもほとんど集めることができた。
GTK以外のものは最新版でなくても妥協するとしよう。

解凍用
  • tar 
ビルド用
  • autoconf 
  • automake 
  • libtool 
依存するツール、ライブラリ
  • gcc 
  • pkg-config 
  • (GNU make(gmake)) だだのmakeで代用可。エラーが出たら検討。 
  • (iconv) http://www.gnu.org/software/libiconv/(最近のシステムでは不要?) 
  • (gettext)https://www.gnu.org/software/gettext/(最近のシステムでは不要?) 
  • libx11-dev  Xwindowの開発環境?libX11.aがあれば良いらしい。 
  • libfontconfig 
  • libcairo2-dev (GTKと同じライブラリにあることが必要になる。)
  • libwayland-dev 
  • shared-mime-info 
  • libjpeg-dev 
  • libpng12-dev 
  • libtiff5-dev 
  • freetype2-demos 
そのほかにエラーの原因となったため、先に導入した方がよさそうなものは
GLib

Pango

GTK+
  • libXi-devel
  • libatk-bridge2.0-dev

   ※GTK+本体はインストール順に注意。後述。


gobject
  • Flex
  • Python-all-dev



○インストールの手順

ライブラリの順番がインストールガイドで指定されているので以下の順で行うことにした。

 GLib、 Pango、 ATK,、GTK+

 Gdk-Pixbuf、GObject-Introspectionの順番は不明。GTK+の前あたりでOK?

GTK+は同じディレクトリ以下のものがインストールされている必要があるらしいのでその点も注意。
  • GLib 2.43.4以上
  • Cairo 1.14.0以上 
  • Pango 1.36.7以上
  • GdkPixbuf 2.30.0以上
  • ATK 2.15.1以上

インストール先は特に指定しない場合、勝手に標準ディレクトリにインストールされるようだが、管理がしづらいので自分でディレクトリを指定することにした。
この場合、環境変数の設定や、引数が必要になる。
インストールガイドに書いてあるのを参考に/opt/gtkにインストール

それと、/usr/include/glib-2.0の無効化をしておいた。
といっても、でリネームしてでバックアップしただけ。
 /usr/include$ sudo mv glib-2.0 glib-2.0_BU
これで古いバージョンのヘッダが参照されてもエラーになってわかるはず。


以上のライブラリ等をそろえたうえでビルドしてインストールを行ったところ、
GLib、 Pango、 ATK,、 Gdk-Pixbufについては所々で警告を出しつつも成功。




続いてGTK+本体。

まずconfigureで出てきたエラーは

 configure: error: *** XInput2 extension not found. Check 'config.log' for more details.

このエラーについて検索した結果、ここを参考にした。

XInput2 extension not found この方法でxorg-devを入れてもダメだったが、


こちらを参考に。libXi-devを追加したらOKだった。

続いてのエラーは

 configure: error: Package requirements (atk atk-bridge-2.0) were not met:


を参考にして、libatk-bridge2.0-devを導入。

これでconfigureを行うと、最後に

GTK+ 3.16.4
       ===========

       GDK backends:         x11
       X11 extensions:       XKB XI2.2 XFIXES
       Print backends:       file lpr
       Dynamic modules:      yes
       Included immodules:   none
       colord support:       no
       libcanberra support:  no
       Introspection:        no
       Debugging:            minimum
       Documentation:        no
と表示され、ようやく通る。
あとはインストールしても特にエラーはなかった。


そしてgobject
configureでflexが見つからないエラー。
さらにbison見つからないエラー。
おまけにPythonのヘッダファイルのエラー。Python-all-devを導入してOK
make してみると、cairoに関する一時ファイルらしきものにアクセスしてた模様。もしかして先にインストールすればcairoいらなかった?

問題はmake install時の以下のエラー
`GLib-2.0.gir' に必要なターゲット `/usr/include/glib-2.0/glib/*.h' を make するルールがありません.  中止.

環境変数を指定しているのに、なぜ標準ディレクトリを探しているのか謎。
原因っぽいのを解説してるのは
の記事。
これによると、今までconfigureは引数で--prefix=/opt/gtkとしているため、includeファイルもそちらにあるはずなのに、引数を付けなかった場合のデフォルトのインストール先である/usr/include/
を読みに行っているためとのこと。バグらしい。確かに、バックアップ用に名前を変えてあるので、エラーになるのは納得。環境変数も指定しているんだけど、ダメらしい。
congigureの引数で参考になりそうなのが
-with-glib-src=PATH
でありこのPATHはglibのあるパスだそう。でも、今回はヘッダファイルなんだよね。

仕方がないので、標準ディレクトリにインストールすることにした。
上記の方法をすべてやり直し、再びgobject。
しかし、makeの時点でglib-autocleanups.hに関するエラーが・・・

この原因が調べてもいまいちハッキリせず。
仕方がないので、このobject-introspectionはパッケージマネージャーからの導入となった。

GTK+を自力でインストールしてみよう④ ATKとgdk-pixbufの翻訳

まずATK。

READMEファイルの中身

このディレクトリには、ATKライブラリが含まれています。

ATKとGNOMEでアクセシビリティについての詳細は、以下を参照してください。
http://projects.gnome.org/accessibility

依存関係
============

ATK は GLib2.31.2以上を必要とします。. GLibに関する情報はから入手可能です
http://www.gtk.org/.

ソースコードの取得
=======================

あなたは、tarballなど各ATKリリースのソースコードを入手することができます。
https://download.gnome.org/sources/atk/

また、GNOMEリポジトリからATKのマスターブランチのクローンを作成することができます。
https://git.gnome.org/browse/atk

構築
========

リリースのtarballからATKをビルドするには、通常としてautotoolを使用します:

 $ ./configure
 $ make
 # make install

GitのクローンからATKを構築するには、いずれかのconfigureの代わりに、autogen.shスクリプトを実行します。 autogen.shまたはconfigureを実行する前に、あなたのパスにlibtoolがあることを確認してください。

autogen.shがconfigureを実行することに注意してください。


バグを報告する方法
==================

バグは、GNOMEのバグ追跡システムに報告する必要があります。
 http://bugzilla.gnome.org/enter_bug.cgi?product=atk

あなたは自分のアカウントを作成する必要があります。

You can also mail the mailing list gnome-accessibility-devel@gnome.org



INSTALLの中身は完全にチェックしたわけではないが、Pangoと一緒らしい。

gdk-pixbufに関してはINSTALLファイルととREADMEファイルはあるけれど、
なぜか中身が空・・・・