CyberChaos(さいばかおす)

プログラミング言語、トランスパイラ、RPA、ChatGPT、データマイニング、リバースエンジニアリングのための忘備録

CATIAで直方体を描くマクロを試したら・・・

2023-03-29 21:25:04 | CATIA
CATIA V5 Macro Programming with Visual Basic Script
という本に書かれてある通りに打ち込んでみたらエラーとなった。
コンパイルエラー。ステートメントが不正・・・だとよ。



Dim MyPart As Part
Set MyPart = CATIA.ActiveDocument.Part
Dim Wzk3D As HybridShapeFactory
Set Wzk3D = MyPart.HybridShapeFactory
Dim HBody As HybridBody
Set HBody = MyPart.HybridBodies.Item ("Join")
Dim F1, F2, F3, As AnyObject
Set F1 = HBody.HybridShapes.Item("Extrude.1")
Set F2 = HBody.HybridShapes.Item("Extrude.2")
Set F3 = HBody.HybridShapes.Item("Extrude.3")
Dim Ref1, Ref2, Ref3 As Reference
Set Ref1 = MyPart.CreateReferenceFromObject (F1)
Set Ref2 = MyPart.CreateReferenceFromObject (F2)
Set Ref3 = MyPart.CreateReferenceFromObject (F3)
Dim myJoin As HybridShapeAssemble
Set myJoin = Wzk3D.AddNewJoin (Ref1, Ref2)
Hbody.AppendHybridShape myJoin
MyPart.Update

アマゾンのkindleで12000円で買った。

バカ害人めが!デタラメばっか書きやがって。

P.S.
ChatGPTでは次のように修正すれば良いとのこと。
本当か?
このVBAコードの場合、コンパイルエラーが発生する原因としては、宣言された変数の型が不正確であることが考えられます。

具体的には、F1、F2、F3、およびAsの変数がAs AnyObjectと宣言されていますが、これらの変数にはそれぞれ特定のHybridShapeオブジェクトが割り当てられることが期待されます。そのため、これらの変数はHybridShape型として宣言する必要があります。

以下は修正されたコードです:

Dim MyPart As Part
Set MyPart = CATIA.ActiveDocument.Part
Dim Wzk3D As HybridShapeFactory
Set Wzk3D = MyPart.HybridShapeFactory
Dim HBody As HybridBody
Set HBody = MyPart.HybridBodies.Item("Join")
Dim F1 As HybridShape, F2 As HybridShape, F3 As HybridShape
Dim Ref1 As Reference, Ref2 As Reference, Ref3 As Reference
Set F1 = HBody.HybridShapes.Item("Extrude.1")
Set F2 = HBody.HybridShapes.Item("Extrude.2")
Set F3 = HBody.HybridShapes.Item("Extrude.3")
Set Ref1 = MyPart.CreateReferenceFromObject(F1)
Set Ref2 = MyPart.CreateReferenceFromObject(F2)
Set Ref3 = MyPart.CreateReferenceFromObject(F3)
Dim myJoin As HybridShapeAssemble
Set myJoin = Wzk3D.AddNewJoin(Ref1, Ref2)
HBody.AppendHybridShape myJoin
MyPart.Update

変数の型を修正することで、コンパイルエラーが解決されるはずです。


最新の画像もっと見る