iCAx开思工具箱
标题:
再三求助
[打印本页]
作者:
wuyancai1122
时间:
2005-6-5 13:38
标题:
再三求助
我在OPEN++里用了这样的语句,想创建圆弧,其中radius,stangle,etangle为半径,起始角和终止角,已经在程序前面赋值,xc,yc,zc的值也在前面赋值了:
Point3 pt1(xc,yc,zc);
CoordSys csys(pt1);
UgArc *pArc=UgArcreate(radius,stangle,etangle,csys);
作者:
wuyancai1122
时间:
2005-6-5 13:39
我在OPEN++里用了这样的语句,想创建圆弧,其中radius,stangle,etangle为半径,起始角和终止角,已经在程序前面赋值,xc,yc,zc的值也在前面赋值了:
Point3 pt1(xc,yc,zc);
CoordSys csys(pt1);
UgArc *pArc=UgAr : : create(radius,stangle,etangle,csys);
调试的时候为什么create语句老是出错?
作者:
wuyancai1122
时间:
2005-6-5 14:46
为什么执行到create语句时出现的错误提示是:
UNhandled exception in ugraf.exe(KERNEL32.DLL):0xE06D7363:Microsoft C++ Exception.
作者:
深夜摔键盘
时间:
2005-6-5 17:04
static UgArc * create (
double radius,
double start_angle,
double end_angle,
const CoordSys & csys,
const UgObject * part_or_object = UgSession:: getWorkPart() );
你怎么刚4个参数?????
作者:
wuyancai1122
时间:
2005-6-5 21:14
可是就是用了第四个参数,也还是出现同样的错误,不知道什么原因?
作者:
深夜摔键盘
时间:
2005-6-5 22:36
你给的角度值是弧度吗?
作者:
wuyancai1122
时间:
2005-6-5 23:05
我给的不是弧度,谢谢键盘兄的提醒,我发现你真是厉害!!!我再试试
作者:
wuyancai1122
时间:
2005-6-6 16:39
我按上面在UG里创建了一个椭圆,但是用UG里面的"信息"查看时,它的旋转角度却为0,事实上应该为45度.我想这应该由于坐标系出现的问题,不知道如何解决?我把图附上,请高手给予帮助,不胜感激!!!
作者:
深夜摔键盘
时间:
2005-6-6 18:21
"信息"查看里没有“旋转角度”这项吧。
你说的是Rho Value ?
作者:
wuyancai1122
时间:
2005-6-6 19:38
信息里有个"对象",然后选中曲线,弹出了信息框,它显示了旋转=0;
作者:
wuyancai1122
时间:
2005-6-6 19:42
我附上UG图,请帮忙看下
作者:
深夜摔键盘
时间:
2005-6-6 20:26
没用过OPEN C++,看了看文档,好象建椭圆的成员函数,漏掉了一个旋转角度,所以你用OPEN C++是做不到旋转角度的。
分析一下,它那个旋转角度,你可能误认为它是相对于世界坐标系的,OPEN C++的文档语焉不详,你看看OPEN C 的说明就知道了。
rotation_angle
double rotation_angle
angle of rotation of conic X from matrix X
而matrix X,在OPEN C文档里说它是圆锥曲线的矩阵,实际上,它是一个几何变换矩阵,它是一个对象,有tag值,它和OPEN ++里的坐标系对象是一个道理。
另外这个旋转角度其实没什么用处。你想怎么变换,只需要指定相应的坐标系就可以了。这也可能是OPEN ++中把它取消的原因 (仅是个人猜测)。
作者:
wuyancai1122
时间:
2005-6-6 21:15
我这样认为:
Matrix3 (double angle,const Vector3 [$vector)]
这条语句就已经定义了它的旋转角度,这个angle就是旋转角度,vector可表示z轴的单位向量,
不知道对不对?
如果是这样,创建的曲线对于WCS确实是旋转了,但是原点在圆弧中心的一个坐标系,圆弧对它来讲没有旋转,不知道是不是因为对于这个坐标系来说,旋转角度为0,于是信息-->对象--->选择圆弧弹出的信息里旋转为0,但是这个坐标系不是工作坐标系啊,
不知道可不可以把这个坐标系与工作坐标系重合?
这样有可能查出的信息里旋转角度才是对的/
作者:
深夜摔键盘
时间:
2005-6-6 21:28
你还是用OPEN C API来做这个吧,OPEN ++里也应该可以调用OPEN C API的。
欢迎光临 iCAx开思工具箱 (https://t.icax.org/)
Powered by Discuz! X3.3