CATIA自動化のススメ

記事
IT・テクノロジー
CATIA業務においての自動化とはどんな物か?

CATIAを業務としている人の中でCATIAの自動化、効率化を行っていないところも多くあると思います。
今回はCATIAの業務を自動化・効率化する方法について少し体験していただこうと思います。

例えば毎回XY平面の原点を中心に100mm四方のサーフェスを作る業務があるとします。
スクリーンショット 2021-08-03 152219.jpg
実際に手作業でこのサーフェスを作るとなるとだいたい5分程度かかってしまうと思います。
この5分の作業を数秒で終わらせてしまうのがCATIAの自動化・効率化です。

実際に体験してもらうためにCATIAが導入されている端末にテキストファイルを新規作成して中身に以下の内容を書き込んでみてください。(選択してコピーで構いません)

'==========================================
'Const SIZE_VALUE As Double = 100#
Dim SIZE_VALUE 'As Double
SIZE_VALUE = 100

Dim appCATIA 'As INFITF.Application
Set appCATIA = GetObject(, "CATIA.Application")

Dim docs 'As INFITF.Documents
Set docs = appCATIA.Documents

Dim partDocNew 'As MECMOD.PartDocument
Set partDocNew = docs.Add("Part")

Dim partNew 'As MECMOD.Part
Set partNew = partDocNew.Part

Dim hbWork 'As MECMOD.HybridBody
Set hbWork = partNew.HybridBodies.Add()

Dim hsFactory 'As HybridShapeTypeLib.HybridShapeFactory
Set hsFactory = partNew.HybridShapeFactory

Dim dX 'As Double
Dim dY 'As Double
Dim dZ 'As Double
Dim hsPt1 'As HybridShapeTypeLib.HybridShapePointCoord
Dim refPt1 'As INFITF.Reference
dX = (SIZE_VALUE / 2)
dY = (SIZE_VALUE / 2)
dZ = 0
Set hsPt1 = hsFactory.AddNewPointCoord(dX, dY, dZ)
Call hbWork.AppendHybridShape(hsPt1)
Call partNew.UpdateObject(hsPt1)
Set refPt1 = partNew.CreateReferenceFromObject(hsPt1)
Dim hsPt2 'As HybridShapeTypeLib.HybridShapePointCoord
Dim refPt2 'As INFITF.Reference
dX = (SIZE_VALUE / 2) * -1
Set hsPt2 = hsFactory.AddNewPointCoord(dX, dY, dZ)
Call hbWork.AppendHybridShape(hsPt2)
Call partNew.UpdateObject(hsPt2)
Set refPt2 = partNew.CreateReferenceFromObject(hsPt2)
Dim hsPt3 'As HybridShapeTypeLib.HybridShapePointCoord
Dim refPt3 'As INFITF.Reference
dY = (SIZE_VALUE / 2) * -1
Set hsPt3 = hsFactory.AddNewPointCoord(dX, dY, dZ)
Call hbWork.AppendHybridShape(hsPt3)
Call partNew.UpdateObject(hsPt3)
Set refPt3 = partNew.CreateReferenceFromObject(hsPt3)
Dim hsPt4 'As HybridShapeTypeLib.HybridShapePointCoord
Dim refPt4 'As INFITF.Reference
dX = (SIZE_VALUE / 2)
Set hsPt4 = hsFactory.AddNewPointCoord(dX, dY, dZ)
Call hbWork.AppendHybridShape(hsPt4)
Call partNew.UpdateObject(hsPt4)
Set refPt4 = partNew.CreateReferenceFromObject(hsPt4)

Dim hsLine1 'As HybridShapeTypeLib.HybridShapeLinePtPt
Dim refLine1 'As INFITF.Reference
Set hsLine1 = hsFactory.AddNewLinePtPt(refPt1, refPt2)
Call hbWork.AppendHybridShape(hsLine1)
Call partNew.UpdateObject(hsLine1)
Set refLine1 = partNew.CreateReferenceFromObject(hsLine1)
Dim hsLine2 'As HybridShapeTypeLib.HybridShapeLinePtPt
Dim refLine2 'As INFITF.Reference
Set hsLine2 = hsFactory.AddNewLinePtPt(refPt2, refPt3)
Call hbWork.AppendHybridShape(hsLine2)
Call partNew.UpdateObject(hsLine2)
Set refLine2 = partNew.CreateReferenceFromObject(hsLine2)
Dim hsLine3 'As HybridShapeTypeLib.HybridShapeLinePtPt
Dim refLine3 'As INFITF.Reference
Set hsLine3 = hsFactory.AddNewLinePtPt(refPt3, refPt4)
Call hbWork.AppendHybridShape(hsLine3)
Call partNew.UpdateObject(hsLine3)
Set refLine3 = partNew.CreateReferenceFromObject(hsLine3)
Dim hsLine4 'As HybridShapeTypeLib.HybridShapeLinePtPt
Dim refLine4 'As INFITF.Reference
Set hsLine4 = hsFactory.AddNewLinePtPt(refPt4, refPt1)
Call hbWork.AppendHybridShape(hsLine4)
Call partNew.UpdateObject(hsLine4)
Set refLine4 = partNew.CreateReferenceFromObject(hsLine4)

Dim hsFill 'As HybridShapeTypeLib.HybridShapeFill
Set hsFill = hsFactory.AddNewFill()
Call hsFill.AddBound(refLine1)
Call hsFill.AddBound(refLine2)
Call hsFill.AddBound(refLine3)
Call hsFill.AddBound(refLine4)
Call hbWork.AppendHybridShape(hsFill)
Call partNew.UpdateObject(hsFill)
'==========================================

テキストに書き込み出来たらファイル名を任意、拡張子を「.vbs」にして保存してください。
保存が出来たら今度はCATIAを起動しておきます。
CATIAが起動できたら先ほど保存した拡張子が「.vbs」のファイルをダブルクリックして処理を実行してみてください。
数秒でCATIAに新規のPartが作成され、XY平面へ原点を中心とした100mm四方のサーフェスが作成されます。
※エラーメッセージが出た場合には何か間違っているのでもう一度始めからトライしてみましょう。

これだけで4分の業務時間短縮になりました。

例えばこの作業が毎日平均5回あったとした場合、年間営業日が120日と考えると
4分×5回×120日=2400分 年間40時間の削減になります。
※この程度の自動化であれば5,000円~で開発します

こんな感じで単純作業の繰り返しが業務の中に存在している場合は自動化・効率化により大きな効果が得られます。

どんな物でも構いません、気になる事があれば相談してください。
Excelならこちら

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す