还是关于UCS的问题
上次问了关于UCS和WCS的夹角的问题,在alin兄弟的帮助下,取得了一些进展,但是还有一些不明白的问题,希望兄弟们帮我解决一下,我还是没有弄清楚怎么回事!在自定义的UCS的X轴逆时针的转角没有超过180度的时候,我发现UCS.XVector——(0,0,0)的夹角是UCS的X轴的转角的2倍,但是当X转角大于180度到360度时,UCS.XVector——(0,0,0)的角度又经历了一次如同0到180度时候的变化,为此我在CAD中画出了不同的UCS X轴角度,以及对应的UCS.XVector的位置!
其中紫红蓝灰点其实位置与绿白青黄位置相同,只是为了看清楚,我把它们往外挪了一下。
那么我本来是要求UCS与WCS的夹角的,如果是小于180度时候,我还可以用XVector夹角除与2。但是大于180度的时候实际求出来的角,比需要的角度小了180度,本来加上就了事了,但是现在的问题是,我怎么判断当前的UCS是与WCS的夹角是大于180度,还是小于180度呢?因为两种状态下,可以说相对应的UCS的XVector是乎是完全重合的。
我晕了!!!!
注意你这里的XVector的值是WCS里的值,如果你把它当成UCS中的值来划线,当然变成两倍!
下面是用ADDLINE划线,保证其在WCS中进行。
Sub tt()
Dim wcsOrigin(0 To 2) As Double
Dim XVector As Variant
Dim YVector As Variant
wcsOrigin(0) = 0: wcsOrigin(1) = 0: wcsOrigin(2) = 0:
XVector = ThisDrawing.ActiveUCS.XVector
YVector = ThisDrawing.ActiveUCS.YVector
ThisDrawing.ModelSpace.AddLine wcsOrigin, XVector
ThisDrawing.ModelSpace.AddLine wcsOrigin, YVector
ThisDrawing.ModelSpace.AddLine XVector, YVector
End Sub
页:
[1]