CAELinux2020Liteを使い倒す!

CAELinux2020にあるソフトの活用事例を紹介します。Linuxで使用する方にお勧めの環境設定です。
Linuxは、Windowsに対して性能が低いパソコンでも使用可能で例えば、自宅の古くなったパソコンやパソコンショップの中古品でも利用可能です。参考まで、当サイトで使用しているノートパソコンのインストール事例を紹介します。(ブログはこちら
Ardiuno以外は、Windows10またはwindows11のパソコンの仮想環境に導入したCAELinux2020でも追加可能です。

1.LibreOffice( MicrosoftOffice互換ソフト)

MicrosoftOfficeと互換性のあるオフィスソフトでフリーウェアとして開発されたソフトです。
古くはStarOffice後継ソフトの位置づけです。
日本語ページ:https://ja.libreoffice.org/
CAELinux2020には、既にWord相当のWriterとExcel相当のCalcがインストール済みです。Powerpoint相当のImpressがはいっていませんが追加可能です。また、DrawやMath(数式作成)などもあるので必要に応じてインストールしてするとよいと思います。
なお、Windows版の場合、LibreOfficeのWindows版がありますのでこちらも使用可能です。
MicrosoftOfficeを持っている人と共同で資料を作成するときは、MicrosoftOfficeと互換性があるといってもレイアウトがずれるなど完全ではないため、どこまで可能か見極めるのがよいと考えます。

本ブログではImpressのインストール手順を紹介します。

1.1 LibreOfficeのインストール

(1)画面左上のアイコンをクリックしメニュバーを立ち上げて、「ソフトウェア」を選択します。

(2)検索バーから”impress”を入力すると、”LibreOffice impress”が表示されますので、これをクリックします。

(3)ログオンパスワードを要求されるので、パスワードを入力します。

(4)impressの起動
(1)と同様画面左上のアイコンをクリック後検索バーからimpressと入力するとimpressが表示されますのでクリックすることで起動します。下図はパワーポイントで作成した資料です。

2.Python(Spyder)

CAELinux2020にはSpyderというpython向けの統合開発環境IDEソフトがインストール済みです。SpyderはNumpy,Scipy,Pandas,Sympy,MatplotLibといって科学技術計算用ライブラリはインストール済みのため、環境構築に時間をかけるぐらいなら、最初にこれを使うのがお勧めです。
CAELinux2020には、Spyderはバージョン3.2.6、組み込まれているpythonバージョンは3.6.9です。
URL:https://www.spyder-ide.org/

なお、統合開発環境IDEソフトだと、pyCharm、JupiterNotebook、Visual Stodio Codeなどがあります。
(1)Spyderの起動
メニューからspy..と入力すると、spyderのアイコンが表示されるのでこれをクリックします。

(2)Spyderの操作
メニューバーのFileからpythonファイルを開き、実行して結果を見ることになります。下図は片持ち梁のたわみを計算した事例です。

(3)pythonライブラリの追加
spyderのIpythonコンソール上から入力をします。例は、scipyを追加しています。

!pip install scipy

3.FreeCAD

オープンソースの3DCADソフトで、一般的な部品のモデリング、アセンブリの作成、2D図面の作成ができます。CAE機能もあるようですが私は使っていません。
URL:https://www.freecadweb.org/?lang=ja

Windows上のVirtualBoxから動作は可能ですが、仮想環境上で動かしていることから動きは遅いのでCADデータのチェックや修正であれば利用だと思います。モデリングは動きの遅さからストレスを感じる可能性があります。Linux上であれば直接利用可能です。

例えば、ドラゴンクエストシリーズのスライムも作れます。

4.Ardiuno IDE

Ardiunoは、ラズベリーパイともに有名なマイコンです。当サイトのブログでもやってみた結果を紹介しています。CAELinux2020にも開発環境であるArdiunoIDEを追加することが可能です。
CAELinux2020 へのインストール方法と動作テストとしてLEDを表示させるプログラム動作結果を紹介します。

4.1  Ardiuno IDE のインストール

(1)画面左上のアイコンをクリックしメニュバーを立ち上げて、「ソフトウェア」を選択します。
下図に示すダイアログボックスが表示されるので、検索バーから”ardiuno”を入力すると、” ardiuno ”が表示されますので、これをクリックします。

(2)ログオンパスワードを要求されるので、パスワードを入力します。

(3)パソコンとArdiunoをUSBケーブルに接続するには、設定が必要なため下図のダイアログボックスの指示通りにTerminalからコマンドを入力をします。($USERはLinuxで設定したユーザーアカウント名です)

sudo usermod -a -G dialout $USER

4.2  サンプルプログラムの動作確認

(1)ライブラリのインストール
ArduinoIDEに”LiquidCrystal_I2C.h”ライブラリをインストールします。ライブラリは、ArduinoIDEの[スケッチ | ライブラリをインクルード | ライブラリを管理] からライブラリマネージャを開き、”LiquidCrystal I2C” を検索してインストール可能です。

(2)サンプルプログラムを Arduinoへ書き込む
パソコンとArdiunoをUSBケーブルにて接続します。メニューバーから[スケッチ]を選択し、[検証・コンパイル]にソースコードからプログラム作成を行います。その後、作成したプログラムを メニューバーから[スケッチ]を選択し、[マイコンボードに書き込む]を選択することで、Ardiunoにプログラムが書き込まれます。
サンプルプログラムはLCDに1行名は”Hello World!”、2行目に “Arduino LCM IIC 2004” と表示させます。

//サンプルプログラムのソースコード
//Compatible with the Arduino IDE 1.0
//Library version:1.1
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup() {
  // put your setup code here, to run once:
  lcd.init();                      // initialize the lcd 
  // Print a message to the LCD.
  lcd.backlight();
  lcd.setCursor(0,0);
  lcd.print("Hello, world!");
  lcd.setCursor(0,1);
  lcd.print("Arduino LCM IIC 2004");
}

void loop() {
  // put your main code here, to run repeatedly:

}

(3)動作結果

ArdiunoをUSBケーブルにて接続して電源を供給すると、LCDに文字が表示されてるのが確認できます。

5.電子組版システムRe:ViewStarterの導入

技術書典向けにRe:ViewStarterを使って電子書籍を出しています。
Windows11パソコンを購入をきっかけにLinux上に導入しました。dockerという仕組みがあるのでdockerを導入してから、Re:ViewStarterを導入しました。

(1) dockerのインストール
公式サイトにLinux版のページがインストール説明があがあります。
英語ばっかりで読むのが大変ですが、terminalに入力するコマンドはコピーペーストなので、案内沿って行けばインストール可能です。
Install Docker Engine on Ubuntu | Docker Documentation

(2)Re:ViewStarterの導入
githubにdockerのイメージが公開されています。
GitHub – srz-zumix/review-retrovert: Re:VIEW Starter to Re:VIEW
上記ページ内にあるUse Docker下にあるコマンドをterminalから入力します。

docker run -v "$(pwd):/work" -w /work srzzumix/review-retrovert convert target/config.yml outdir

(3)使うときは?
PDF原稿を作る場合、Re:viewstrterが保存されているフォルダに移動し、以下のコマンドを入力します。

docker run --rm -v $PWD:/work -w /work kauplan/review2.5 rake pdf

(4)シェルスプリクトを使った便利な方法
terminal上での文字入力は手間なので、デスクトップにシェルスプリクトを作って、コマンドラインから入力するのが便利です。
名前をreview_starter.shを作成します。原稿が保存されているフォルダを”/home/caelinux/book”とします。
シェルスプリクト(review_starter.sh)は以下で作成します。

#!/bin/bash

cd /home/caelinux/book
docker run --rm -v $PWD:/work -w /work kauplan/review2.5 rake pdf

シェルスプリクトの実行は、terminal上から以下を入力すると、毎回コマンドを入力せずに原稿をPDFにしてくれて便利です。

./review_starter.sh


あらかじめ実行前にreview_starter.shを実行可能に設定してください。

6.まとめ

CAELinuxのようなソフトウェアがプリインストールされているLinuxに対して一部ソフトを追加することで、フリーウェアによる事務処理(オフィス環境)やCAEやプログラミングなどの学習環境構築ができます。
中古パソコンを活用すれば導入コストも抑えられ、新しいことにチャレンジができると考えます。

補足資料.CAELinux2020のPythonライブラリについて

Pythonを活用するには、機械学習用のscikit-learnや科学技術計算用のnumpy、sympy、pandasなどのさまざまなライブラリが必要です。どんなものが入っているかを調べました。

1)メニューからSpyderを起動させる。

2)Spyder画面のIPythonコンソールから!pip3 listと入力し、エンターキーを押します。

!pip3 listからの出力リスト

alabaster (0.7.8)

apt-clone (0.2.1)

asn1crypto (0.24.0)

astroid (1.6.0)

Babel (2.4.0)

bleach (2.1.2)

catfish (1.4.4)

certifi (2018.1.18)

chardet (3.0.4)

cloudpickle (0.5.2)

command-not-found (0.3)

cryptography (2.1.4)

cupshelpers (1.0)

cycler (0.10.0)

decorator (4.1.2)

defer (1.0.6)

distro-info (0.18ubuntu0.18.04.1)

docutils (0.14)

dxf2gcode (20170925)

entrypoints (0.2.3.post1)

html5lib (0.999999999)

httplib2 (0.9.2)

idna (2.6)

imagesize (0.7.1)

ipykernel (4.8.2)

ipython (5.5.0)

ipython-genutils (0.2.0)

isort (4.3.4)

jedi (0.11.1)

Jinja2 (2.10)

jsonschema (2.6.0)

jupyter-client (5.2.2)

jupyter-core (4.4.0)

keyring (10.6.0)

keyrings.alt (3.0)

language-selector (0.1)

launchpadlib (1.10.6)

lazr.restfulclient (0.13.5)

lazr.uri (1.0.3)

lazy-object-proxy (1.3.1)

lightdm-gtk-greeter-settings (1.2.2)

logilab-common (1.4.1)

MarkupSafe (1.0)

matplotlib (2.1.1)

mccabe (0.6.1)

meld (3.18.0)

menulibre (2.2.0)

mistune (0.8.3)

mugshot (0.4.0)

nbconvert (5.3.1)

nbformat (4.4.0)

netifaces (0.10.4)

numpy (1.13.3)

numpydoc (0.7.0)

oauth (1.0.1)

olefile (0.45.1)

onboard (1.4.1)

PAM (0.4.2)

pandocfilters (1.4.2)

parso (0.1.1)

pexpect (4.2.1)

pickleshare (0.7.4)

Pillow (5.1.0)

pip (9.0.1)

Pivy (0.6.5a0)

prompt-toolkit (1.0.15)

psutil (5.4.2)

pycairo (1.16.2)

pycodestyle (2.3.1)

pycrypto (2.6.1)

pycups (1.9.73)

pycurl (7.43.0.1)

pyflakes (1.6.0)

Pygments (2.2.0)

pygobject (3.26.1)

PyICU (1.9.8)

pylint (1.8.3)

PyOpenGL (3.1.0)

pyparsing (2.2.0)

python-apt (1.6.5+ubuntu0.5)

python-dateutil (2.6.1)

python-debian (0.1.32)

python-debianbts (2.7.2)

python-magic (0.4.16)

pytz (2018.3)

pyxdg (0.25)

PyYAML (3.12)

pyzmq (16.0.2)

QtAwesome (0.4.4)

qtconsole (4.3.1)

QtPy (1.3.1)

reportlab (3.4.0)

requests (2.18.4)

requests-unixsocket (0.1.5)

roman (2.0.0)

rope (0.10.5)

scour (0.36)

SecretStorage (2.3.1)

setuptools (39.0.1)

sgt-launcher (0.2.4)

simplegeneric (0.8.1)

simplejson (3.13.2)

six (1.11.0)

Sphinx (1.6.7)

spyder (3.2.6)

ssh-import-id (5.7)

systemd-python (234)

testpath (0.3.1)

tornado (4.5.3)

traitlets (4.3.2)

ubuntu-drivers-common (0.0.0)

ufw (0.36)

unattended-upgrades (0.1)

urllib3 (1.22)

virtualenv (15.1.0)

wadllib (1.3.2)

wcwidth (0.1.7)

webencodings (0.5)

wheel (0.30.0)

wrapt (1.9.0)

xcffib (0.5.1)

xkit (0.0.0)

zope.interface (4.3.2)

!pip listからの出力リスト

antlr (2.7.5rc1)
asn1crypto (0.24.0)
attrs (17.4.0)
autobahn (17.10.1)
Automat (0.6.0)
backports-abc (0.5)
backports.functools-lru-cache (1.6.1)
beautifulsoup4 (4.6.0)
cairocffi (0.8.0)
CairoSVG (1.0.20)
cbor (1.0.0)
cffi (1.11.5)
chardet (3.0.4)
click (6.7)
colorama (0.3.7)
configparser (3.5.0)
constantly (15.1.0)
cryptography (2.1.4)
cvxopt (1.1.9)
cycler (0.10.0)
Cython (0.26.1)
decorator (4.1.2)
defusedxml (0.5.0)
enum34 (1.1.6)
et-xmlfile (1.0.1)
funcsigs (1.0.2)
future (0.15.2)
futures (3.2.0)
html5lib (0.999999999)
hyperlink (17.3.1)
idna (2.6)
incremental (16.10.1)
ipaddress (1.0.17)
jdcal (1.0)
joblib (0.11)
keyring (10.6.0)
keyrings.alt (3.0)
kiwisolver (1.1.0)
lxml (4.2.1)
lz4 (0.10.1)
matplotlib (2.2.4)
mercurial (4.5.3)
mock (2.0.0)
mpi4py (2.0.0)
nose (1.3.7)
numexpr (2.6.4)
numpy (1.16.6)
olefile (0.45.1)
openpyxl (2.4.9)
PAM (0.4.2)
pandas (0.22.0)
patsy (0.4.1+dev)
pbr (3.1.1)
Pillow (5.1.0)
PinguyBuilder-gtk (5.1.post8)
pip (9.0.1)
pluggy (0.6.0)
ply (3.11)
Printrun (1.6.0)
psutil (5.4.2)
py (1.5.2)
py-ubjson (0.8.5)
pyasn1 (0.4.2)
pyasn1-modules (0.2.1)
pycairo (1.16.2)
pycparser (2.18)
pycrypto (2.6.1)
pyglet (1.3.0)
pygobject (3.26.1)
pyliblzma (0.5.3)
PyNaCl (1.1.2)
PyOpenGL (3.1.0)
pyOpenSSL (17.5.0)
pyparsing (2.4.6)
pyserial (3.4)
pytest (3.3.2)
python-dateutil (2.8.1)
python-snappy (0.5)
PyTrie (0.2)
pytz (2019.3)
pyxdg (0.25)
qrcode (5.3)
Rtree (0.9.3)
scikit-learn (0.19.1)
scipy (0.19.1)
scour (0.36)
SecretStorage (2.3.1)
service-identity (16.0.0)
setuptools (44.0.0)
Shapely (1.7.0)
simplejson (3.13.2)
singledispatch (3.4.0.3)
six (1.14.0)
sklearn-pandas (1.5.0)
SOAPpy (0.12.22)
statsmodels (0.8.0)
stevedore (1.28.0)
subprocess32 (3.5.4)
svg.path (4.0.2)
tables (3.4.2)
tornado (4.5.3)
trollius (2.0.1)
Twisted (17.9.0)
txaio (2.8.1)
u-msgpack-python (2.1)
virtualenv (15.1.0)
virtualenv-clone (0.2.5)
virtualenvwrapper (4.3.1)
webencodings (0.5)
wheel (0.30.0)
wsaccel (0.6.2)
wstools (0.4.3)
wxPython (3.0.2.0)
wxPython-common (3.0.2.0)
xcffib (0.5.1)
xlrd (1.1.0)
xlwt (0.7.5)
zope.interface (4.3.2)