iCAx开思工具箱

标题: 草绘过程中与3D元素相交 [打印本页]

作者: leihaizhe    时间: 2012-11-21 10:58
标题: 草绘过程中与3D元素相交
我在草绘中想把一个草绘平面和一个球面相交,采用了IntersectGeometry函数:

public virtual CATISpecObject_var IntersectGeometry(const CATBaseUnknown_var& iGeom,
CATListValCATI2DWFGeometry_var& oGeoms,
const int iPhantom=0,
CATBaseUnknown* iNearGeom=NULL,
const double* iSel2DPt=NULL,
const int iDatum=0,
const int iCanonic=1) = 0

但是我有点不明白CATListValCATI2DWFGeometry是个什么类型,而且程序报错找不到该头文件:
.cpp(86) : fatal error C1083: 无法打开包括文件:“CATListValCATI2DWFGeometry.h”: No such file or directory

我想请教一下,#include CATListValCATI2DWFGeometry.h 是包含在哪个LINK_MODULES中???

而且iGeom一定要是 External geometric element么???


作者: linlily0925    时间: 2012-11-21 11:03
#include "CATLISTV_CATI2DWFGeometry.h"
作者: linlily0925    时间: 2012-11-21 11:05
CATListValCATI2DWFGeometry是一个列表,存放CATI2DWFGeometry类型的元素,CATI2DWFGeometry是草图中2D元素的类型,在这个方法中,应该是你求交后交点的列表~~
作者: leihaizhe    时间: 2012-11-21 11:14
linlily0925 发表于 2012-11-21 11:03
#include "CATLISTV_CATI2DWFGeometry.h"

        CATISpecObject_var spIntersectLine = NULL_var;
        CATListValCATI2DWFGeometry_var wfList = NULL;
        wfList.Append(spLine1);
        wfList.Append(spLine2);
        wfList.Append(spLine3);
        wfList.Append(spLine4);
spIntersectLine = spWF2DFactOnSketch->IntersectGeometry(UnknownSphere, wfList,0,NULL,NULL,0,1);

它报错error C2664: “CATListValCATI2DWFGeometry_var::Append”: 不能将参数 1 从“CATISpecObject_var”转换为“const CATI2DWFGeometry_var &”
求指教啊?
作者: linlily0925    时间: 2012-11-21 11:18
wfList是个输出列表,是你的草图和UnknownSphere求交后交点或者交线的列表~~而且草图中只有发布的元素可以直接转换到CATISpecObject接口上,你的wfList列表是CATI2DWFGeometry类型,而spLine1是CATISpecObject类型,所以会报错~~
作者: leihaizhe    时间: 2012-11-21 11:29
linlily0925 发表于 2012-11-21 11:18
wfList是个输出列表,是你的草图和UnknownSphere求交后交点或者交线的列表~~而且草图中只有发布的元素可以直 ...

我感觉没入门啊。。。
CATIGSMSphere_var gsmSphere=NULL_var;
CATBaseUnknown_var UnknownSphere = gsmSphere;

CATI2DWFFactory_var spWF2DFactOnSketch(spSketch);
然后我生成了一个spSketch。

        CATISpecObject_var spIntersectLine = NULL_var;
        CATListValCATI2DWFGeometry_var wfList = NULL;

        spIntersectLine = spWF2DFactOnSketch->IntersectGeometry(UnknownSphere, wfList,0,NULL,NULL,0,1);

//显示
        spIntersectLine->Update();
        CATIGSMProceduralView_var pvspIntersectLine = spIntersectLine;
        pvspIntersectLine->InsertInProceduralView();

麻烦帮忙看看这有什么问题?先谢谢了。
作者: linlily0925    时间: 2012-11-21 13:39
leihaizhe 发表于 2012-11-21 11:29
我感觉没入门啊。。。
CATIGSMSphere_var gsmSphere=NULL_var;
CATBaseUnknown_var UnknownSphere = gs ...

如果接口不为空,应该木有问题~~~程序中判断一下吧,找一下问题出在哪里~~
作者: zsong22    时间: 2012-11-22 09:56
求交 问题解决方案:
//草图与面求交
        CATBaseUnknown* UnknownSphere = gsmface;//gemface为空间曲面
       CATISpecObject_var spIntersectLine = NULL_var;
        CATListValCATI2DWFGeometry_var wfList ;
        spIntersectLine = spWF2DFactOnSketch->IntersectGeometry(UnknownSphere, wfList,0,NULL,NULL,0,1);





欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3