I know there used to be a macro available for this but I couldn't get to it. So if anyone is interested I created a new one today here is the code. I wanted the plane so that I can project onto faces so that I can apply a hatch to a surface that is partially hidden. Anyway here is the code. What a stuborn wh@re the math utility is. I had to create a point array and then pass it to a variant for the darn thing to work right.
Sub main() 'Create a plane parallel to the current view 'written in it's entirety by Corey Scheich 'No warranty is expressed or implied 'I will not be held responsible if this code renders anything 'useless. Use it at your own risk.
Dim swApp As SldWorks.SldWorks Dim Model As SldWorks.ModelDoc2 Dim ThisView As SldWorks.ModelView Dim ViewTransform As SldWorks.MathTransform Dim MathUtil As SldWorks.MathUtility Dim Point1 As SldWorks.MathPoint Dim Point2 As SldWorks.MathPoint Dim Point3 As SldWorks.MathPoint Dim dPoint(2) As Double Dim vPoint As Variant Dim NewPlane As SldWorks.refPlane
Set swApp = Application.SldWorks Set Model = swApp.ActiveDoc Set ThisView = Model.ActiveView Set MathUtil = swApp.GetMathUtility
dPoint(0) = 0 dPoint(1) = 0 dPoint(2) = 0
vPoint = dPoint
Set Point1 = MathUtil.CreatePoint((vPoint)) Point1.ArrayData = vPoint dPoint(0) = 1 dPoint(1) = 0 dPoint(2) = 0
vPoint = dPoint
Set Point2 = MathUtil.CreatePoint((vPoint))
dPoint(0) = 0 dPoint(1) = 1 dPoint(2) = 0
vPoint = dPoint
Set Point3 = MathUtil.CreatePoint((vPoint))
Set ViewTransform = ThisView.Orientation3 'change from (model to view) to (view to model) Set ViewTransform = ViewTransform.Inverse 'transform the points Set Point1 = Point1.MultiplyTransform(ViewTransform) Set Point2 = Point2.MultiplyTransform(ViewTransform) Set Point3 = Point3.MultiplyTransform(ViewTransform)
'Create the plane Set NewPlane = Model.CreatePlaneFixed2( _ Point1.ArrayData, _ Point2.ArrayData, _ Point3.ArrayData, _ True) 'Unhide the plane Model.UnBlankRefGeom
End Sub