Hi Mwhite,
Several things here: first of all that's not a forum where you'd post jobs for other people to do it for you. Supposing somebody over there has enought free time and willingness to implement and package for you the whole thing, that's great, but I'd think this is going to be unlikely.
Rather what we do here is provide support and guidance to people who have already little knowledge in programming and who can use the instructions or sample code we point out to accomplish what they need.
If you are a novice in Inventor programming and want to take the step, here are useful resources:
http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=17324828
https://github.com/ADN-DevTech/Inventor-Training-Material
The other thing is that what you're asking for here is going to need to cover several aspects of the API: UI customization, work with the part API and so on...
Also projecting a plane on a sketch has no meaning in general, in the case they are perpendicular you will get an infinite line, but in case they are not, there is no mathematical meaning to that projection. What you should rather do is projecting two points that represent a direction on your sketch.
Supposing you have a little experience with the API, the following code sample should help you to figure out how to project a point on a selected workplane: a sketch is always based either on a workplane or a planar face, so you can extract the underlying Plane from a specific sketch:
Private Function ProjectOnPlane(point As point, plane As plane) As point
Dim measureTools As measureTools
Set measureTools = ThisApplication.measureTools
Dim minDist As Double
Dim Context As NameValueMap
minDist = measureTools.GetMinimumDistance(point, plane, kNoInference, kNoInference, Context)
Dim projectedPoint As point
Set projectedPoint = Context.item(2)
Set ProjectOnPlane = projectedPoint
End Function
Public Sub ProjectOnPlaneTest()
Dim wp As workplane
Set wp = ThisApplication.CommandManager.Pick(kWorkPlaneFilter, "Select a workplane:")
If wp Is Nothing Then
Exit Sub
End If
Dim vertex As vertex
Set vertex = ThisApplication.CommandManager.Pick(kPartVertexFilter, "Select a vertex:")
If vertex Is Nothing Then
Exit Sub
End If
Dim point As point
Set point = ProjectOnPlane(vertex.point, wp.plane)
Debug.Print "Projected point: [" & point.X & "; " & point.Y & "; " & point.Z & "]"
End Sub
In that other post I illustrate how to customize the marking menu with custom commands:
http://adndevblog.typepad.com/manufacturing/2012/05/customizing-radialmarkingmenu-and-linearmarkingm...
This information should help you to get started with implementing the required functionality.
If you have more specific questions, feel free to ask or log a new thread in our forum.
Regards,
Philippe.
Philippe Leefsma
Developer Technical Services
Autodesk Developer Network