lanwpbj 发表于 2010-8-25 13:44:00

请教extrudeAlongPath 沿路径拉伸的问题

我想画一个由圆管制成的框,我是先画一个圆,然后用extrudeAlongPath(const AcDbRegion* region,
const AcDbCurve* path)函数进行拉伸,但是这个path要求是 , , , , , , or a non-spline fit等,但是我的path偏偏是。因为我的path是由直线和圆角组成的,我用的是AcDbPolyline::addVertexAt(unsigned int index,const AcGePoint2d& pt,double bulge = 0.,double startWidth = -1.,double endWidth = -1)来创建这条path,而和 都没有找到能创建直线和圆角连接的方法。请高人指点,我这个path的类型如何解决。

lanwpbj 发表于 2010-8-25 15:33:00

经过尝试,发现AcDbPolyline形的也是可以作为路径的。看了张帆的教程才知道我原来错误原因,教材中有这么一句话:“在执行extrudeAlongPath函数时,region 和path都必须是模型空间中的实体”。所以要来个迂回操作,先把东西入库,然后再取出来,真NND脱裤子放屁。 先用&nbspostToModelSpace将AcDbPolyline创建的指针存起来,得到一个ID,再用acdbOpenObject将这个ID的指针读回来,然后用extrudeAlongPath就正常了,奇怪的是,我对region 并没有进行这种入库出库的操作,郁闷。


lanwpbj 发表于 2010-8-26 11:50:00

另外有一点值得注意的,就是拉伸的起点,你生成一个面域,想使它沿路径拉伸,那么这个面域的位置就要在路径的起点。我开始的时候一看是环形路径,以为只要在路径上随便某点都可以,结果形状是出来了,但位置老是不对,琢磨半天才明白过来,后来又试了下把面域画在与路径不相交的其它位置,发现路径随着移到面域的位置去了。一点收获与各位共享。
页: [1]
查看完整版本: 请教extrudeAlongPath 沿路径拉伸的问题