vba中关于ucs的及时更新问题
www.dimcax.com
vba中关于ucs的及时更新问题
一般而言,激活ucs采用的方法是 .activeucs=...
但这样似乎会遇到一个问题
我的代码过程如下:
do
函数:点的在ucs1中的坐标转换成ucs2中的坐标
loop while 条件
函数:
取得当前ucs0
激活ucs1
点在ucs1中的坐标转换成wcs
激活ucs2
wcs转换成ucs2中的坐标
恢复当前ucs0
在这样一个过程中,如果单步执行,没有一点问题,但是正式运行的时候,取得当前ucs总会失败,提示x,y轴不垂直。我的取得当前ucs的代码是引用cad例子文件里的,是通过取得系统变量,来获取当前ucs的x、y轴向量以及原点坐标,在我另一个工程里运行时,非常成功。
是不是系统变量不能及时更新,导致得出这样的结果?
相关代码:
with thisdrawing
set currucs = .usercoordinatesystems.add( _
.getvariable("ucsorg"), _
.utility.translatecoordinates(.getvariable("ucsxdir"), acucs, acworld, 0), _
.utility.translatecoordinates(.getvariable("ucsydir"), acucs, acworld, 0), _
"originalucs")
end with