Private Sub ll()
Dim SwApp As SldWorks.SldWorks, SwModel As ModelDoc2
Set SwApp = Application.SldWorks
Set SwModel = SwApp.ActiveDoc
Dim SwDraw As DrawingDoc
Set SwDraw = SwModel
Dim SwView As View
Set SwView = SwDraw.GetFirstView
'SwDraw.ActivateView SwView.Name
'SwApp.ActiveDoc.ActiveView.FrameState = 1
xx = 0.09 '283462373492
yy = 0.03500318526879
zz = 0
SwModel.CreatePoint xx, yy, zz
tmp = SwModel.Extension.SelectByID2("", "EDGE", xx, yy, zz, False, 0, Nothing, 0)
Stop
End Sub
''
Private Sub ll2()
''
Dim SwApp As SldWorks.SldWorks, SwModel As ModelDoc2
Set SwApp = Application.SldWorks
Set SwModel = SwApp.ActiveDoc
Dim SwMatUtil As MathUtility
Set SwMatUtil = SwApp.GetMathUtility
Dim SwViewXForm As MathTransform
Dim SwDraw As DrawingDoc
Set SwDraw = SwModel
Dim SwView As View
Set SwView = SwDraw.GetFirstView
Set SwView = SwView.GetNextView
Dim SwSketch As Sketch
Set SwSketch = SwModel.GetActiveSketch
Dim SwModelToViewXForm As MathTransform
Dim swModelToSketchXForm As MathTransform
Dim swDrawingToViewXForm As MathTransform
Set SwModelToViewXForm = SwView.ModelToViewTransform
Set swModelToSketchXForm = SwSketch.ModelToSketchTransform
Set swDrawingToViewXForm = DrawingToViewTransform(SwView, SwMatUtil)
'SwDraw.ActivateView SwView.Name
'SwApp.ActiveDoc.ActiveView.FrameState = 1
xx = 0.09 '283462373492
yy = 0.03500318526879
zz = 0
tmp = SwModel.Extension.SelectByID2("", "EDGE", xx, yy, zz, False, 0, Nothing, 0)
Stop
Dim vPt(2) As Double
vPt(0) = xx
vPt(1) = yy
Dim MatPt As MathPoint
Set MatPt = SwMatUtil.CreatePoint(vPt)
Set MatPt = MatPt.MultiplyTransform(SwModelToViewXForm)
With MatPt
Debug.Print .ArrayData(0), .ArrayData(1), zz
SwDraw.CreatePoint .ArrayData(0), .ArrayData(1), zz
SwModel.CreatePoint xx, yy, zz
End With
Stop
''
Set MatPt = SwMatUtil.CreatePoint(vPt)
Set MatPt = MatPt.MultiplyTransform(swModelToSketchXForm)
With MatPt
Debug.Print .ArrayData(0), .ArrayData(1), zz
SwDraw.CreatePoint .ArrayData(0), .ArrayData(1), zz
End With
Stop
''
Set MatPt = SwMatUtil.CreatePoint(vPt)
Set MatPt = MatPt.MultiplyTransform(swDrawingToViewXForm)
With MatPt
Debug.Print .ArrayData(0), .ArrayData(1), zz
SwDraw.CreatePoint .ArrayData(0), .ArrayData(1), zz
End With
Stop
End Sub
Function DrawingToViewTransform(SwView As View, SwMathUtil As MathUtility) As MathTransform
'Dim SwMathUtil As SldWorks.MathUtility
Dim transformData(15) As Double
'Set SwMathUtil = SwApp.GetMathUtility
transformData(0) = 1#
transformData(1) = 0#
transformData(2) = 0#
transformData(3) = 0#
transformData(4) = 1#
transformData(5) = 0#
transformData(6) = 0#
transformData(7) = 0#
transformData(8) = 1#
transformData(9) = SwView.Position(0)
transformData(10) = SwView.Position(1)
transformData(11) = 0#
transformData(12) = 1#
transformData(13) = 0#
transformData(14) = 0#
transformData(15) = 0#
Set DrawingToViewTransform = SwMathUtil.CreateTransform(transformData)
End Function