Autodesk Inventor将零件放置在用户定义的位置

时间:2016-04-21 11:01:14

标签: vb.net autodesk-inventor

我正在尝试创建一个将文件放入程序集的方法,我想让它像在Inventor中选择文件一样。

该文件是通过它的路径选择的。现在它需要放置。我知道如何将文件放在坐标处,但我希望文件位于光标上,用户可以选择放置它的位置。

你是如何做到这一点的?我尝试了编程帮助搜索,但我只能找到关于事件和对话的事情。

UPDATE tbl_master m
   SET m.some_column = some_value
 WHERE m.masteID = updatetable_id
   AND EXISTS (SELECT * FROM tbl_slave s WHERE s.masterID = m.masterID)

通常我只是放置并磨碎,但现在不好......

FileDialog.InsertMode() As Boolean

1 个答案:

答案 0 :(得分:2)

如何实现你想要的东西当然不是很明显,但如果你知道如何,这是可能的。下面的代码演示了使用PostPrivateEvent方法,在该方法中,您要将要插入的文件的文件名发布到Inventor中的内部队列中。接下来,它获取并运行放置组件,就像用户启动命令一样。该命令首先检查文件名是否在专用队列上,如果是,则采用该文件名并跳过对话步骤。这导致用户能够拖动和定位事件。

Public Function Place_and_Ground_Part(ByVal invApp As Application,
                                      ByVal path As String) As ComponentOccurrence

    ' Post the filename to the private event queue.
    invApp.CommandManager.PostPrivateEvent(Inventor.PrivateEventTypeEnum.kFileNameEvent, filename)

    ' Get the control definition for the Place Component command.
    Dim ctrlDef As Inventor.ControlDefinition
    ctrlDef = invApp.CommandManager.ControlDefinitions.Item("AssemblyPlaceComponentCmd")

    ' Execute the command.
    ctrlDef.Execute()

    Return Nothing
End Function

您可能已经注意到该功能正在返回Nothing。使用此方法时出现问题,因为您执行命令然后将控制权转交给Inventor。可以使用事件来观察和查看是否放置了新的事件然后得到它但是它使代码变得相当复杂,因为它不再是一个简单的函数。