明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1193|回复: 1

还是关于UCS的问题

[复制链接]
发表于 2007-10-25 21:59:00 | 显示全部楼层 |阅读模式

上次问了关于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是乎是完全重合的。

我晕了!!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2007-10-26 21:34:00 | 显示全部楼层

我发现UCS.XVector——(0,0,0)的夹角是UCS的X轴的转角的2倍?!

注意你这里的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

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 12:49 , Processed in 0.175951 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表