围绕矢量旋转的最简单方法是移动ucs,使矢量为z轴(旋转轴),它不';不管x和y指向哪个方向,只要它们#039;re仍然是正交的,因为您仅围绕z轴旋转给定量。 要使用这个矩阵,我仍然需要找到一些幻数
我认为它与acad帮助中提到的3d视图的中心有关。 这是一个混淆I#039;我有
运行此子命令,然后运行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摄像机指定新摄像机位置<;6.0000,4.8571,18.3799>;: 
指定新的摄像机目标(<;6.0000,4.8571,0.0000>;: ;再生模型
自I';m在英寸dwg中,x和y值是;极限(12,9)(我假设实际数随分辨率而变化)
新的目标值似乎从旧的z值开始,并取屏幕中心x和y。但是18.3799来自哪里
是的,那';这很难。当使用内部函数进行放大、缩小和平移时,视图目标可能会发生变换,因此实际上,除非您要求或将其交给您的函数(可能通过将其作为几何体的边界框的中心),否则您永远不会知道目标将在何处。请注意,在使用鼠标滚轮缩放和移动鼠标时,它也会平移,从而有效地移动目标
也就是说,我认为目标会随着相机移动,除非你在缩放,然后将目标移开;这是一个棘手的问题,没有看到它如何滴答作响。也许值得一看,看看这是不是真的发生了什么
本人';我一直在寻找p> 本人';我一直在寻找摄像机命令中目标的关系。在vba中,没有摄像机,但有一个目标不随更新;平移或缩放
如您所知,camera命令中的目标确实会更新
到目前为止,z值似乎是viewsize的0.52855倍,我还没有将其与扭曲视图联系起来。
页:
1
[2]