围绕向量旋转的最简单方法是移动ucs,使向量成为z轴(旋转轴),只要x和y仍然是正交的,就不管x和y指向哪个方向,因为你只是围绕z轴旋转给定的量。 要使用这个矩阵,我仍然需要找到一些神奇的数字。
我认为它与acad help
中提到的3d视图的中心有关。 这是一个我感到困惑的例子
运行此子命令,然后运行3dorbit命令
目标是找到3dorbit的中心,
这在一段时间内效果很好
Sub OrbitCenter()
Dim C, T, O, P As AcadPoint
Dim Util As AcadUtility
Set Util = ThisDrawing.Utility
ThisDrawing.SetVariable "PDSIZE", 0.5
ThisDrawing.SetVariable "PDMODE", 35
C = ThisDrawing.GetVariable("viewctr")
C = Util.TranslateCoordinates(C, acUCS, acWorld, 0)
T = ThisDrawing.GetVariable("target")
T = Util.TranslateCoordinates(T, acUCS, acWorld, 0)
Set P = ThisDrawing.ModelSpace.AddPoint(C)
P.color = acGreen
Set P = ThisDrawing.ModelSpace.AddPoint(T)
Dim dMid(2) As Double
dMid(0) = (C(0) + T(0)) / 2
dMid(1) = (C(1) + T(1)) / 2
dMid(2) = (C(2) + T(2)) / 2
Set P = ThisDrawing.ModelSpace.AddPoint(dMid)
P.color = acYellow
ThisDrawing.ModelSpace.AddLine C, T
End Sub
在新图形中,目标getvar为0,0,0
类型摄像机和
命令:ca摄像机指定新摄像机位置
:
指定新摄像机目标
:再生模型
因为我在一个英寸的dwg中,x和y值是极限的中心(12,9)(我假设实际数字随分辨率而变化)
新的目标值似乎从旧的z值开始,以屏幕中心x和y为中心。
但18.3799从何而来
是的,这很难。当使用内部函数进行放大、缩小和平移时,视图目标可能会发生变换,因此实际上,除非您要求或将其交给函数(可能是将其作为几何体边界框的中心),否则您永远不会知道目标将在何处。请注意,在使用鼠标滚轮缩放和移动鼠标时,它也会平移,从而有效地移动目标
我一直在相机命令中寻找目标的关系...
在vba中没有相机,但有一个目标不使用平移或缩放更新。
相机命令中的目标确实更新了,如您所知。
到目前为止,z值似乎是视图大小的0.52855倍,我还没有将其与扭曲的视图联系起来。
页:
1
[2]