お知らせ

2024 年 12月中に 10 年以上前に投稿されたコンテンツをアーカイブすることとなりました。詳しくは FAQ ページをご覧ください。

拘束をつけようとすると例外が発生してしまう

CCT-DX
Contributor
Contributor

拘束をつけようとすると例外が発生してしまう

CCT-DX
Contributor
Contributor

Inventor 2022において、アセンブリ内の部品に角度拘束やメイト拘束をつけるプログラムを作ろうとしています。

部品のXY作業平面やX作業軸を指定してAssemblyConstraintsのAddAngleConstraintとAddMateConstraintで拘束をつけようとしているのですが、どちらも例外0x80004005となってしまいます。

拘束対象の作業平面と作業軸をInventor上で手動で拘束をつける場合には問題ないことは確認済みです。

プログラム上で作業平面や作業軸はPartComponentDefinitionのWorkPlanesとWorkAxesから取得しています。

上記問題について解決策をご教授いただけますでしょうか。

 

OS: Windows11

バージョン: Inventor 2022

0 件のいいね
返信
解決済み
96件の閲覧回数
2件の返信
返信 (2)

CCT-DX
Contributor
Contributor
解決済み

上記ですが、サポートに問い合わせをして解決いたしました。

 


状況から、指定している作業平面等のパラメータが誤っている状況と思われます。

以下サンプルコードの様に、取得した作業平面等をアセンブリコンテキストでの作業平面(Proxy)にした形で状況が改善するかをご確認いただけますでしょうか。

Public Sub MateConstraintOfWorkPlanes()

    Dim oAsmCompDef As AssemblyComponentDefinition

     oAsmCompDef = ThisApplication.ActiveDocument.ComponentDefinition

 

    1番目と2番目のオカレンスを取得

    Dim oOcc1 As ComponentOccurrence

      oOcc1 = oAsmCompDef.Occurrences.Item(1)

 

    Dim oOcc2 As ComponentOccurrence

      oOcc2 = oAsmCompDef.Occurrences.Item(2)

 

    ‘ それぞれのオカレンスのXY平面を取得。

    ‘ 取得した作業平面は、パートのコンテキストとして取得される

    Dim oPartPlane1 As WorkPlane

      oPartPlane1 = oOcc1.Definition.WorkPlanes.Item(3)

 

    Dim oPartPlane2 As WorkPlane

      oPartPlane2 = oOcc2.Definition.WorkPlanes.Item(3)

 

    ‘アセンブリのコンテキストでの作業平面が必要なため、作業平面にプロキシとして作成する必要がある。

    ‘プロキシは、アセンブリコンテキストでの作業平面を表す

    Dim oAsmPlane1 As WorkPlaneProxy

    Call oOcc1.CreateGeometryProxy(oPartPlane1, oAsmPlane1)

 

    Dim oAsmPlane2 As WorkPlaneProxy

    Call oOcc2.CreateGeometryProxy(oPartPlane2, oAsmPlane2)

 

    ‘作業平面プロキシを用いて拘束を作成

    Call oAsmCompDef.Constraints.AddMateConstraint(oAsmPlane1, oAsmPlane2, 0)

End Sub 

mari.shimode
Community Manager
Community Manager

@CCT-DX さん、こんにちは。

 

サポートへのお問い合わせと解決策の共有ありがとうございます。大変助かります。

またお困りのことがございましたら、コミュニティをご利用ください。

 



Mari Shimode
Community Manager
0 件のいいね