enocheasty 发表于 2007-10-25 21:59:00

还是关于UCS的问题

<p>上次问了关于UCS和WCS的夹角的问题,在alin兄弟的帮助下,取得了一些进展,但是还有一些不明白的问题,希望兄弟们帮我解决一下,我还是没有弄清楚怎么回事!</p><p>在自定义的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的位置!</p><p>&nbsp;</p><p>其中紫红蓝灰点其实位置与绿白青黄位置相同,只是为了看清楚,我把它们往外挪了一下。</p><p>那么我本来是要求UCS与WCS的夹角的,如果是小于180度时候,我还可以用XVector夹角除与2。但是大于180度的时候实际求出来的角,比需要的角度小了180度,本来加上就了事了,但是现在的问题是,我怎么判断当前的UCS是与WCS的夹角是大于180度,还是小于180度呢?因为两种状态下,可以说相对应的UCS的XVector是乎是完全重合的。</p><p>我晕了!!!!</p>

alin 发表于 2007-10-26 21:34:00

<p>我发现UCS.XVector——(0,0,0)的夹角是UCS的X轴的转角的2倍?!</p><p>注意你这里的XVector的值是WCS里的值,如果你把它当成UCS中的值来划线,当然变成两倍!</p><p>下面是用ADDLINE划线,保证其在WCS中进行。</p><p>Sub tt()<br/>Dim wcsOrigin(0 To 2) As Double<br/>Dim XVector As Variant<br/>Dim YVector As Variant<br/>wcsOrigin(0) = 0: wcsOrigin(1) = 0: wcsOrigin(2) = 0:<br/>XVector = ThisDrawing.ActiveUCS.XVector<br/>YVector = ThisDrawing.ActiveUCS.YVector<br/>ThisDrawing.ModelSpace.AddLine wcsOrigin, XVector<br/>ThisDrawing.ModelSpace.AddLine wcsOrigin, YVector<br/>ThisDrawing.ModelSpace.AddLine XVector, YVector<br/>End Sub</p><p></p>
页: [1]
查看完整版本: 还是关于UCS的问题