找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 418|回复: 2

[求助]:不能实现一个Rectangle的填充,错在那里,急急急!!!!!!!!!

[复制链接]
发表于 2004-4-18 13:49:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我按照咱们网站的以前的文章,做HATCH,但是不能实现,错在那里?
void  zhupingmian(AcGePoint3d insertpt,double kuan,double gao,AcDbBlockTableRecord *pBlockTableRecord)
{
double m_RZuoTuBiLi(10.0);
int m_NID(0);
        AcGePoint3dArray zhuppingmianptArr;   zhuppingmianptArr.setLogicalLength(5);
        zhuppingmianptArr[0].set(insertpt.x-kuan/2*m_RZuoTuBiLi,insertpt.y-gao/2*m_RZuoTuBiLi,0.0);
        zhuppingmianptArr[1].set(zhuppingmianptArr[0].x,zhuppingmianptArr[0].y+gao*m_RZuoTuBiLi,0.0);
        zhuppingmianptArr[2].set(zhuppingmianptArr[1].x+kuan*m_RZuoTuBiLi,zhuppingmianptArr[1].y,0.0);
        zhuppingmianptArr[3].set(zhuppingmianptArr[2].x,zhuppingmianptArr[0].y,0.0);
        zhuppingmianptArr[4]=zhuppingmianptArr[0];
    AnyPline(zhuppingmianptArr,2,pBlockTableRecord);

        AcGePoint2d temp;
        AcGePoint2dArray External;
        AcDbObjectId FillId=plineObjId[m_NID]; m_NID=m_NID+1;
        for (int i=0;i<5;i++) {
                temp.set(zhuppingmianptArr.x,zhuppingmianptArr.y);
                External.append(temp);
        }        //填加区域点
        AcDbHatch * pHatch = new AcDbHatch();//创建图案填充对象
        AcGeVector3d normal(0.0,0.0,1.0);
        pHatch->setNormal(normal);                                                                        //设置法线适量
        pHatch->setElevation(0.0);                                                                        //设置绘图标高
        pHatch->setAssociative(Adesk::kFalse);                                                       
        pHatch->setPatternScale(0.1);                                                              //设置缩放比例
        pHatch->setPattern(AcDbHatch::kPreDefined,"ANSI31");            //设置填充图案
        pHatch->setHatchStyle(AcDbHatch::kNormal);                                        //设置填充样式
        pHatch->setColorIndex(1);                                                                    //设置剖面线颜色
        pHatch->setLayer("0");                                                                //设置所在图图层

        AcGeDoubleArray vertexBulges;
    vertexBulges.setPhysicalLength(0).setLogicalLength(5);
    for (int j=0;j<5;j++) vertexBulges[j]=0.0;                                //清零
        //边界生成:外边界
    if (pHatch->appendLoop(AcDbHatch::kExternal, External, vertexBulges) != Acad::eOk) {
                ads_printf("\n错误:无法形成填充外边界!\n");
                pHatch->close();
        }
        if (pHatch->evaluateHatch()!=Acad::eOk) {        //用设定的剖面线样式填充
                ads_printf("\n错误:无法用设定的剖面线样式填充!\n");
                pHatch->close();
        }
        if (pBlockTableRecord->appendAcDbEntity(FillId, pHatch) != Acad::eOk) {
                ads_printf("\n错误:无法将填充实体填加至数据库中!\n");
                pHatch->close();
        }
}

BUG为不能将当前数据库使用SAVEAS保存为一个DWG文件,提示写文件错误!


运行没有问题,但是不能实现功能!!!,实在很急,望各位赐教,跪求!!!!!!!!!!!!!
各位仁兄仁弟靓姐靓妹帮忙啊,!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-4-18 15:49:06 | 显示全部楼层
我没细看,一般的错误是"设置缩放比例"不对,你试试pHatch->setPattern(AcDbHatch::kPreDefined,"SOLID"); //设置填充图案
这样与比例无关,最后把工程贴上来,那样别人下下来一编译,运行,debug就知道错误了,

代码是不是很不标准?
可以看看<高质量C++编程指南>
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-4-18 16:38:30 | 显示全部楼层
我的代码完全可以调用的啊,只要把
AcDbObjectId FillId=plineObjId[m_NID]; m_NID=m_NID+1;
变换成AcDbObjectId FillId;

附值m_RZuoTuBiLi=10.0即可.
我的运行没有问题,没有BUG,
请教斑竹,来看看啊!!!!!!!!!!!!!!!!!!!
我修改成SLOID 还是不行啊.
帮帮忙吧!!!!!!!!!!!

谢谢楼上的文件,我提议大家都来下啊,
很好,对于C++/C编程很有帮助的???
建议斑竹加分!!!!!!!!!!!!!!!!!!!!

我将1楼的帖子做了修改,可以被任何命令调用,
大家帮我测试一下吧,
实在没有人的话,还得麻烦斑竹了,真的好急啊,归求!!!!!!!!!!!!!!!!!!!!!!!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-15 14:24 , Processed in 0.400077 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表