xhwhy 发表于 2003-6-19 17:51:00

求助(arx二次开发)!!!!!!!-->mccad转移

用arx生成两个实体,用循环语句反复进行布尔运算(subtract),循环到一半时,autocad名令行提示如下:实体上布尔运算失败。建模操作错误:相交曲线的包容不一致。实在搞不清楚什么意思。请各位高手指点。源代码如下。两个实体指针已定义。       
   int tol=int(Q2);
   AcDbObjectId objIdS1;
   for(i=tol-30;i<=tol+30;i++)
   {
    if(i<tol+30){objIdS1=copy(ids);}
    else{objIdS1=ids;}
    acdbOpenObject(p3dObj1,objIdS1,AcDb::kForWrite);
    x1.set(cos(Jf2),0,-sin(Jf2));
    y1.set(-sin(Jf2),0,-cos(Jf2));
    z1.set(0,1,0);
    moveBy1.x=sg*cos(i*PI/180)*cos(Jf2);
        moveBy1.y=-sg*sin(i*PI/180);
        moveBy1.z=-sg*sin(Jf2)*cos(i*PI/180);
        mat1.setCoordSystem(moveBy1,x1,y1,z1);
    p3dObj1->transformBy(mat1);
    p3dObj1->close();
    x.set(1,0,0);
    y.set(0,cos(PI*mg2/180),-sin(PI*mg2/180));
    z.set(0,sin(PI*mg2/180),cos(PI*mg2/180));
    mat.setCoordSystem(moveBy,x,y,z);
    acdbOpenObject(p3dObj,objId,AcDb::kForWrite);
    acdbOpenObject(p3dObj1,objIdS1,AcDb::kForWrite);
    p3dObj->transformBy(mat);
    p3dObj->booleanOper(AcDb::kBoolSubtract,p3dObj1);
    p3dObj->close();
    p3dObj1->close();

friendyuan 发表于 2003-6-27 10:20:00

循环次数是不是不对?

xhwhy 发表于 2003-6-27 14:26:00

感谢你的关注,friendyuan!
该问题已解决.既不在autocad2000下运行,改在aucad2002下运行即可,
没有任何问题。
再次感谢你的关注。

funlxming 发表于 2003-7-1 17:29:00

是的.我曾碰到類似的問題.
實在并不是在任意狀況下都能做布爾操作(2000下).例如一個下陷,一個上陷.就不用減.
當時我是在2000下開發.
页: [1]
查看完整版本: 求助(arx二次开发)!!!!!!!-->mccad转移