Does anyone know of the best appraoch to passing Points and/or vectors as parameters to external functions written using VB.NET and incorperating Inventor API calls?
I would like to have a function written in Intent that looks something like:
Function iv_FooBar(PointParam As Point, VectParam as Vector) As String
.......
End Function
But I am unclear as to what the VB end needs to look like:
I was hoping to have something like:
Public SharedFunction iv_FooBar(ByVal PointParam As Inventor.ComponentOccurrence, ByVal VectParam as ????????) As String
But I guess it's not as simple as that!
Solved! Go to Solution.
Solved by nagwani. Go to Solution.
Hi There,
You just need to create Inventor point and vector using %%inventorapplication object in ETO 2012 or inventorapplication rule in 2013. Below is my Intent method which called external VB function with two arguments. I have also given the sample code of VB DLL.
Method TestExternalVB() As String
Dim pt As Any = %%inventorapplication.transientgeometry.createpoint(10,10,100)
Dim vec As Any = %%inventorapplication.transientgeometry.createvector(0,0,1)
' The name of DLL is ExternallVBFunction
' The name of Class is MyExternalFunctions
' The name of Function in class is iv_FooBar
Dim customFunction As Any = New ExternallVBFunction.MyExternalFunctions()
Dim s As String
s=customFunction.iv_FooBar( pt,vec)
Return s
End Method
'======================================
' Code of VB DLL
'======================================
Imports Autodesk.Intent.IntentAPI
Imports Inventor
Public Class MyExternalFunctions
Public Function iv_FooBar(ByVal pt As Inventor.Point, ByVal vec As Inventor.Vector) As String
Dim s As String
s = "Point:" + CStr(pt.X) + "," + CStr(pt.Y) + "," + CStr(pt.Z)
Return s
End Function
End Class