天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 150|回复: 0

图案填充

[复制链接]
  • TA的每日心情
    开心
    昨天 06:36
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    105

    主题

    11

    回帖

    1308

    积分

    管理员

    积分
    1308
    QQ
    发表于 2024-3-6 11:49:25 | 显示全部楼层 |阅读模式
    1. //图案填充(ID,图案名称,图案缩放因子)
    2. AcDbObjectId FymHatch::Add(const AcDbObjectIdArray& objIds, const ACHAR* patName, double patternScale)
    3. {
    4.         Acad::ErrorStatus es;
    5.         //1创建空的填充对象
    6.         AcDbHatch* pHatch = new AcDbHatch();
    7.         //2设置填充平面
    8.         AcGeVector3d normal(0, 0, 1);//法线
    9.         pHatch->setNormal(normal);
    10.         //设置图案的标高。首先设置为0,然后设置为true使图案在实体表面上方
    11.         pHatch->setElevation(0);
    12.         pHatch->setElevation(true);        //3设置关联性
    13.         //设置填充图案类型为预定义,并指定图案名称为输入的 patName。
    14.         pHatch->setPattern(AcDbHatch::kPreDefined, patName);
    15.         //5添加填充边界
    16.         es = pHatch->appendLoop(AcDbHatch::kExternal, objIds);
    17.         //6显示填充对象
    18.         es = pHatch->evaluateHatch();
    19.         //7添加到模型空间
    20.         AcDbObjectId hatchId = FymDatabase::PostToModelSpace(pHatch);
    21.         //关联性填充,填充对象与边界进行绑定,使其能获得边界对象修改的通知
    22.         if (acdbOpenObject(pHatch, hatchId, AcDb::kForRead) == Acad::eOk)
    23.         {
    24.                 AcDbObjectIdArray assocEntids;
    25.                 pHatch->getAssocObjIds(assocEntids);
    26.                 //将与填充图案关联的所有对象的ID存储在assocEntids数组
    27.                 for (int i = 0; i < assocEntids.length(); i++)
    28.                 {
    29.                         AcDbEntity* pEnt = NULL;
    30.                         //以只写模式打开与当前关联对象ID对应的实体对象
    31.                         if (acdbOpenObject(pEnt, assocEntids.at(i), AcDb::kForWrite) == Acad::eOk)
    32.                         {
    33.                                 pEnt->addPersistentReactor(hatchId);
    34.                                 pEnt->close();
    35.                                 /*如果成功打开了实体对象,这行代码将为该实体添加一个持久反应器(Reactor),
    36.                                 该反应器的ID是当前的填充图案的ID(hatchId)。
    37.                                 这意味着,每当该实体发生更改时,与其关联的填充图案也将被更新。*/
    38.                         }
    39.                 }
    40.                 pHatch->close();
    41.         }
    42.         return hatchId;
    43. }
    复制代码

     

     

     

     

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

    本版积分规则

    QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

    GMT+8, 2024-11-1 08:03 , Processed in 0.136389 second(s), 26 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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