iPX社員によるブログ

iPX社員が"社の動向"から"自身の知見や趣味"、"セミナーなどのおすすめ情報"に至るまで幅広い話題を投下していくブログ。社の雰囲気を感じ取っていただけたら幸いです。

Abaqus CAEで会社ロゴを自動でメッシュ分割する

EPLU(Engineering Process Leading Unit)のパルハットです。

以前仕事現場でCAE関連の業務に関わりました。今回それに関係する内容で書こうと思います。

CAE関連のソフトはたくさんありますが、今回はAbaqus14 Student Editionを使用して、簡単な会社ロゴ(iPXの文字)のメッシュをスクリプトで作ります。
Abaqusスクリプト言語としてPython2.6を使用できます。Pythonは完全にオブジェクト指向の構造です。

AbaqusではPythonオブジェクトとしてSession, Mdb, Odbが提供されています。SessionオブジェクトにはViewportの定義、リモートキュー、ユーザ定義Views等を含みます。
Mdbオブジェクトはモデル情報を含みます。Odbオブジェクトは解析結果データ関連情報を含みます。プログラム作成手順は以下のとおりです。

  1. 初期定義とモデル定義
  2. 2次元スケッチ作成
  3. パート作成
  4. アセンブリ設定
  5. メッシュ作成

初期定義とモデル定義

from abaqus import *
from abaqusConstants import *
from caeModules import *

# モデルオブジェクトの作成
Mdb()
mdl = mdb.Model(name="Model-iPXLogo")

2次元スケッチ作成

# 2次元スケッチ作成
stk = mdb.models['Model-iPXLogo'].ConstrainedSketch(name='Sketch iPX', sheetSize=200.0)

# i字の作成
# 指定座標に円を作成
stk.CircleByCenterPerimeter(center=(-12.5, 10.0), point1=(-10.0, 10.0))

#指定座標に長方形を作成
stk.rectangle(point1=(-15.0, 5.0), point2=(-10.0, -17.5))

# P字の作成
xyCoords=[[6.25, 12.5],[-5.0, 12.5],[-5.0, 12.5],[-5.0, -17.5],[-5.0, -17.5],
          [0.0, -17.5],[0.0, -17.5],[0.0, -2.5],[0.0, -2.5],[6.25, -2.5],
          [0.0, 2.5], [5.0, 2.5], [0.0, 2.5], [0.0, 7.5], [0.0, 7.5], [5.0, 7.5]]

for i in range(0, len(xyCoords) - 1, 2):
    stk.Line(point1=xyCoords[i], point2=xyCoords[i+1])

stk.Arc3Points(point1=(5.0, 7.5), point2=(5.0, 2.5), point3=(7.5, 5.0))
stk.Arc3Points(point1=(6.25, 12.5), point2=(6.25, -2.5), point3=(12.5, 5.0))

# X字の作成
xyCoords1=[[15.0, 12.5],[23.75, -2.5],[23.75, -2.5],[15.0, -17.5],[15.0, -17.5],[20.0, -17.5],
           [20.0, -17.5],[27.5, -5.0],[15.0, 12.5],[20.0, 12.5],[20.0, 12.5],[27.5, 0.0],
           [27.5, 0.0],[35.0, 12.5],[35.0, 12.5],[40.0, 12.5],[40.0, 12.5],[31.25, -2.5],
           [31.25, -2.5],[40.0, -17.5],[40.0, -17.5],[35.0, -17.5],[35.0, -17.5],[27.5, -5.0]]

for i in range(0, len(xyCoords1) - 1, 2):
    stk.Line(point1=xyCoords1[i], point2=xyCoords1[i+1])

作成されたスケッチ図は以下の通りです。

f:id:ipx-writer:20160910223501p:plain

パート作成

#パートを作成します。
p = mdb.models['Model-iPXLogo'].Part(name='iPXLogo', dimensionality=THREE_D, type=DEFORMABLE_BODY)
p = mdb.models['Model-iPXLogo'].parts['iPXLogo']
p.BaseSolidExtrude(sketch=stk, depth=5.0)
session.viewports['Viewport: 1'].setValues(displayedObject=p)

作成されたパート図は以下の通りです。

f:id:ipx-writer:20160910223727p:plain

アセンブリ設定

# アセンブリにパートをインスタンス化します。
iPXAssambely = mdb.models['Model-iPXLogo'].rootAssembly
iPXInstance = iPXAssambely.Instance(name="iPXLogo A-1", part=p, dependent=OFF)

作成されたアセンブリ図は以下の通りです。

f:id:ipx-writer:20160910223810p:plain

メッシュ作成

# メッシュを作成します。
partInstances = [iPXInstance] 
iPXAssambely.seedPartInstance(regions=partInstances, size=2.0)
iPXAssambely.generateMesh(regions=partInstances)

# viewportでメッシュインスタンスを表示します。
iPXViewport = session.Viewport(name="ipx viewport", origin=(10,10), width=400, height=200)
iPXViewport.assemblyDisplay.setValues(renderStyle=SHADED, mesh=ON)
iPXViewport.setValues(displayObject=iPXAssambely)

作成されたメッシュ図は以下の通りです。

f:id:ipx-writer:20160910223846p:plain
f:id:ipx-writer:20160910223857p:plain

まとめ

今回Abaqusを使用して簡単なロゴを作成して、メッシュまで作りました。メッシュサイズをもっと小さくすると、刻みがきれいに出来ます。
次回は材料情報の追加と何らかの境界条件を追加して、解析コンター図まで出してみたいです。

参考情報

  1. http://www.jikosoft.com/cae/abaqus/index.html
  2. Abaqus14 Student Editionドキュメント(インストール時に一緒にインストールされます。)

どうも。VFDU(Vehicle Function Development Unit)のカワグチです。

先日海外へ出張させていただいたので、その時の運転訓練の話をば少々。
写真と一緒に振り返ってみます。

初めての海外出張inアメリカ

ことの始まりは上長からの依頼。
業務としてアメリカ合衆国オハイオ州へ出張してほしいと打診があり、
私と同僚の二人で渡米することとなりました。

宿泊先はオハイオ州のとある街のホテル。
出張先は街はずれにある建屋でした。
ホテルから建屋まで自動車で60分程度かかり車での移動が必要不可欠なため、
レンタカーを借り、不慣れな右側通行・左ハンドル車両の運転訓練(慣らし運転)を行いました。

運転中に驚いたこと

・とにかく道路が広い
一般道もフリーウェイもアメリカサイズでした。

・とにかく道路が真っ直ぐ
特にフリーウェイはとにかく直線(と緩いカーブ)で長距離運転しても疲れませんでした。
f:id:ipx-writer:20160831212339p:plain

・フリーウェイが無料
日本の高速道路のように料金を支払ったりしません。うらやましい!

・速度はマイル表示
アメリカなので当たり前ですが、車の速度メーターの表示がマイルでした。
フリーウェイは70mph(≒112km/h) 制限の箇所が多かったです。

・赤信号でも右折可
他車両が接近していない等、安全であれば赤信号でも右折することができます。
※ただし「NO TURN ONRED」の標識がある場合は赤信号時の右折禁止。

・果てしなく続くトウモロコシ畑
映画で観たことあるやつ
f:id:ipx-writer:20160831212334j:plain

・ノーヘルライダー
映画で観たことあるやつ
オハイオ州では基本的に18才以下のみ要。詳細は下記参照。
f:id:ipx-writer:20160831212348p:plain

所感

今までほとんど海外に行ったことがなく苦手意識がありましたが、
今回ありがたいことにお仕事で海外経験をさせていただきました。
おっかなびっくりの海外出張でしたが、
日本と比べて良いところ悪いところを発見するという楽しみを知れて良い勉強になりました。
次はプライベートで海外旅行というのも悪くないと思います。

最後に、出張中に色々対応して下さった方々、出張先でお世話になった皆様、ブログを読んで下さった読者様、どうもありがとうございました。

参考URL

車でアメリカを走るために必要なもの、交通ルール
abroad.driver.jp
www5b.biglobe.ne.jp
アメリカバイク事情
アメリカツーリング情報/交通規制ガイド/ヘルメット規制 - WWW.NPNY.COM

おまけ(オハイオの食事)

f:id:ipx-writer:20160831212326j:plain
f:id:ipx-writer:20160831212355j:plain
f:id:ipx-writer:20160831212351j:plain
f:id:ipx-writer:20160831212345j:plain

大学入試における物理問題の解き方

お初にお目にかかります。2016年4月入社の高橋です。

今回は、私が大学受験をしていた時にやっていた物理の解き方について書いていこうと思います。
このテーマを選んだ理由は後で出てきます。

高校教育課程の物理

普通高校で習う物理は、いろいろな法則や方程式などを学んでいくと思います。

例えば、hの高さにあるボールを自由落下させたときのt秒後の状態について考えます。
そのときボールは上向きを正として
・v=-gt
・x=h-1/2*gt^2
もしくは、速さv0で地上から鉛直投げ上げしたボールのt秒後は
・v=v0-gt
・x=v0t-1/2*gt^2
・v^2-v0^2=2gx
といったような状態が求まります。

高校ですとこれらを「覚えさせられます」。。。

こういうのあまりよろしくないと思うんですよね。
最初物理に触れるときにこういう入り方(微積のカリキュラムも考慮されて)なのは良いと思うのですが、受験物理を解くにあたって方程式を暗記して使うみたいなのだと到底太刀打ちできません。
こういう考え方のままでいると、ちょっと複雑になるとたぶんすぐ思考が止まってしまうんじゃないかと思います。

しかし、過去の偉人たちが観測を元に割り出した基本法則などは覚えなければなりません。
なぜならなにかから計算したわけではないので、様々なアプローチの元になります。四則演算のようなものです。

要するに私が言いたいのは
「覚えることは少なくして楽をしよう」
ということです。

問題へのアプローチ

「図を描け」

短いです。短いですけど大事なことです。
こちらは塾の先生が物理を解くときに大事にしていたことです。

大学入試の問題として出てくる大部分は古典力学です。
図を描いて解けるようになれば力学、電磁気系統の問題はかなり楽に解けるかと思います。
波動系とか量子系に関しては微妙かもしれません。

それでは具体的にどのような図を描けばいいのでしょうか。
下の図を見てください。

f:id:ipx-writer:20160719162810j:plain

これは重力加速度のある空間で自由運動する物体を考えます。
物体にかかっている外力は重力のみです。

ここで注意する点として、問題を解く人が設定する変数は必ず「軸の正の方向」に対して正と置くようにしましょう。
上向きを正としてる時に下向きの加速度を設定すると、符号の処理が一気にややこしくなります。

図を描いたらやることは簡単で、1方向もしくは直交する2方向に関して運動方程式や力の釣り合いを見ます。
運動方程式とはma=Fです。物理を始めるとき習う最も基本的な方程式です。今回は鉛直方向に当てはめると
・ma=-mg
が方程式となります。

簡単ですね。
このように方程式さえ導出してしまえば、あとは方程式を連立していけば未知数は導き出せます。

両辺をmで割れば加速度aを求めることもできます。
・a=-g
加速度が求まったので積分を行えば
・v=-gt+v0
・x=-1/2*gt^2+v0t+x0
となり速さと変位が求まります。v0,x0は初期値です。
ちなみにこのとき加速度aの設定を軸の向きと逆にすると
d^2x/dt^2=-a
となりすこし面倒です。

次の例を見ていきましょう。

f:id:ipx-writer:20160719162814j:plain

こちらは摩擦の発生する坂の上に物体が静止している状態です。

今回は重力に加え、坂からの垂直抗力と静止摩擦力が加わっています。
先に書いた自由運動とは違い、物体にかかる外力が同軸上にありません。
こういう時は直交2成分に分割して考察します。

どのような2成分を取るかは問題によります。
どのように分けようと答えは導き出せますが、計算の分量は大きく変わります。

今回は坂に対して平行・垂直でとります。こういう問題は坂の上を運動する問題にも発展するので、変数の設定上こちらが楽です。
ただ下の土台が固定じゃない場合は、加速度の設定などで水平・鉛直の方が良かったりしますがそれはまた別の機会にお話しします。

f:id:ipx-writer:20160719165856j:plain

重力を坂の角度θで分解できたので、それぞれの釣り合いの式を見ます。
・mgsinθ=μN
・N=mgcosθ
となります。

最初に「図を描け」と書きましたが、それとセットで図から運動方程式や力のつりあいなどを書き出すことが大切です。
逆に言うとそれをするだけで大概の問題は解けます。

仕事における活躍

さて、わたしがなぜこの題材をブログ記事に選んだかについて触れようかと思います。

今私がかかわっているモデルベース開発というものがあるのですが、ここで使われるModelica言語でこの考え方が有用になってくるのです。

Modelicaはオブジェクト指向言語であり、特徴として非因果的な記述が行えます。
どういうことかというと、(微分)方程式を複数記述すると、それらを連立して求める変数の時間変化が得られるのです。

このように、物理現象を抽象化した図を描き方程式を書き出すということができれば、それをそのままModelicaで記述し計算できるのです。

まとめ

物理現象を解くときには
・図を描く
・方程式を書き出す
の二つを意識しましょう。これだけで大学入試の物理は解けます。
特にめんどくさい誘導にしただけの問題とかはすぐに解けます。

また、物体に働く力をきちんと把握し書き出す技術は、物理現象の理解をより深める助けにもなるので活用しましょう。

次回出番が回ってきたときには、図の描き方を掘り下げるか問題を解いてみるかモデルベース開発に触れていくかを使用と思います。

基礎は大事

こんにちは。2度めの登場となる阿部でございます。

先日誕生日を迎えました。
まあ、人生後半戦に差し掛かっている身としては「誕生日 冥土の旅の一里塚 嬉しくもあり 嬉しくもなし」といった心境ですが。

今回は自分の身の上話も少し交えつつ基礎の大切さについてちょっと書いていこうかなと思います。

続きを読む

思考を止める

こんにちは、和田です。

最近、色々と思うところがありました。
その事について書いてみます。

case: 1

台湾人の友達が居ます。
彼は現在日本に留学していて、たまに一緒に食事をしたりしています。

先日一緒にお酒を飲みながら話をしていたところ、兵役についての話になりました。
別に兵役その物についての是非を説いたりするつもりはありません。
ただ、その話の中で一つ、凄く印象に残った話がありました。

僕は兵役でしばらく兵隊さんをやっていたけど、その時は日本語を喋れなくなりました。
それは考えるという事が出来なかったから。
あの時はとても辛くて大変でした。色々な事を考えていては毎日を過ごす事は出来なかった。

自分は兵役を経験した事が無いので、そう言うものなのかと思いながら聞いていたのですが、
ふと似たような話に心当たりがあるなと思いました。

case: 2

最近、仕事をしていて気になる事があります。
昔に比べて「言われた通りにしかやらない」人が増えている気がします。

そういった人と会話をすると、とても他人行儀な言動が目立ちます。


「なぜこんな事をしたの?」と問えば「こうしろと言われたので」
「こんなパターンは想定しなかったの?」と問えば「そんな話は聞いていません」
「工夫しようとは思わなかったの?」と問えば「設計書にそう書いてあるので」


と、言った塩梅で、もっと頭を使おうとは思わんのか!!!と心の中で叫んでいたりします。
こういう人にとって、仕事はやらされてる物と言う認識なのかなって思いました。

case: 3

たまたま転職したいと言っている人が身近に何人か居て、連続して話を聞きました。
転職したいと言っている人の話しを聞くと、同じような傾向がでるなと感じました。

そもそも何故会社を辞めたいのか、新しい会社に求める物はなんなのか。
そう言う話を聞いていると、初めのうちはオブラートに包まれていた愚痴が、
次第にポロポロと零れ落ちてきます。
そんな愚痴を聞いていると、毎回共通して思うことがありました。

「それ、前提条件おかしくね?」

例え話に置き換えて話すと「みんなから1日1回頭を叩かれる役」を任命されて、
「あの人の叩き方痛いから辛い」と、言っているような感じ。

そんな時に「そもそも何で頭叩かれること自体は受け入れちゃってるの?」
と、聞くと鳩が豆鉄砲食らったような顔したりします。

思ったこと

人間って、ストレスから自分を守ろうとすると「思考を止める」と言う選択肢が出てくるのかなぁと。
ただ、思考を止めると耐え忍び、事が過ぎ去るのを待つ事しか出来ないんですよね。

とは言え、思考を止めることは必ずしも悪い事とは思いません。
いつもいつでも、全ての事に抗っていては疲れてしまいます。
あえて思考を止めて、流れに身を任せると言う選択肢も有りだと思っています。

その為には、しっかりと思考を止めていると意識してコントロールしないといけません。
意識から外れると、ズルズルと流されて行ってしまいます。


この話を自分に当てはめて考えたときに、ちょっとマズいなと思う事もありました。
なので、自戒の意を込めて記します。

自動運転の法整備

三度目のごあいさつ

こんにちは。三度目の投稿となります、chibaです。今回は前回の自分担当回で話題にした自動運転の法整備について昨今のニュースを交えて語りたいと思います。

続きを読む

自動運転・ADASに必要なコト

どうも、おのまです。
ハイ、早速タイトルから最近流行りのコトバを入れてみました。
一応、製造系に関係した会社にいるので、たまにはそれっぽいことも記事にしてみようという魂胆です。
現在、本業は自動車の車体設計の最適化に関わる業務をしております。
それとはまた別に、最近ちょっとした野望のようなものができまして、それがADASです。

相変わらずクルマはド素人で免許を持っていない自分ですが、免許を持っていないのはちゃんとした理由があります。
まず、お金がないのが一つです。
さらに自分は性格上車の運転に向いていないというのがもう一つです。

飛行機の製造に関わっている人が全て飛行機の操縦をできるわけではないので、車も同じと考えればいいのかなとか思っております。

そんな私でも、もしかしたら車を持てる未来がやってくるかもしれません。
それが、今話題のADAS (Advanced Driver Assistance Systems) です。
日本語に訳すと、先進運転支援システムといいます。英語の訳そのままです。

ADASってなんですか?というと、カメラやセンサーを駆使して、人間が運転する車をより安全、より快適に自動制御してくれるというお助けシステムです。
例えば、「歩行者が飛びしてきたら、方向転換をしてブレーキをかける」とか、「ドライバーが眠ってしまったら、安全に道の端に止まる」といったことを自動的に行ってくれるような機能です。

すごいですね。
便利ですね。

これが更に進むと、「自動運転」という夢のような技術が実現することになります。
実際に完全自動運転をやろうとする動きは出てきていて、最近だとGoogleが話題になっていたのは記憶にも新しいところです。

続きを読む