谢谢伙计们。
我有一个小pickpoint函数,可以将点转换为plines elevtion。我刚刚把它从使用当前视口viewdirection(需要保存才能更新)改为使用viewdir setvar。这是一个行为古怪,所以我有一个地狱的时间追查问题。我以为是在twistangle。但现在,它似乎通过输入翻译后的varpick来工作。我还在追查。这是在一个类中,所以有很多情况下,我可以得到混淆的翻译。
- Private Function PickPointToPolyElevation() As Variant
- 'Ax+ By + Cz + d = 0 formula for a plane where d=-oPline.Elevation
- 'pickpoint is line of sight to a ucs point w/ z=zero
- Dim v, N, Dir
- Dim newV(2) As Double
- Dim dist As Double
- Dim dViewtwist As Double
- Dim dOrigin As Variant
- N = oPline.Normal 'A 3D normal unit vector in WCS. Being a unit vector it's length=1
- v = VarPick
- addpt v, , 8
- Dir = ThisDrawing.GetVariable("viewdir")
- dist = (oPline.Elevation - (v(0) * N(0)) - (v(1) * N(1)) - (v(2) * N(2))) _
- / ((Dir(0) * N(0)) + (Dir(1) * N(1)) + (Dir(2) * N(2)))
- newV(0) = v(0) + dist * Dir(0)
- newV(1) = v(1) + dist * Dir(1)
- newV(2) = v(2) + dist * Dir(2)
-
- PickPointToPolyElevation = newV
-
- ' dViewtwist = ThisDrawing.GetVariable("Viewtwist")
- 'If dViewtwist 0 Then
- ' Dim dAng As Double
- 'dAng = Tan
- 'End If
- End Function
现在我想知道entsel函数是否应该总是转换选择点 |