天气与日历 切换到窄版

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

[每日一码] 创建HATCH并设置比例

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

    [LV.4]偶尔看看III

    105

    主题

    11

    回帖

    1308

    积分

    管理员

    积分
    1308
    QQ
    发表于 2024-3-14 19:37:42 | 显示全部楼层 |阅读模式
    1. #define AOK(es) if(es != Acad::eOk) throw es;
    2. void createHatch(void)
    3. {         
    4.             AcDbObjectId objId;
    5.             AcDbEntity* pEnt;
    6.             ads采用name ent;
    7.             ads采用point point;
    8.             if (RTNORM != acedEntSel("SELECT AN ENTITY TO BE HATCHED: ", ent,
    9. point))
    10.                         return;
    11.             assert(objId.setFromOldId(ent[0]));
    12.             AOK( acdbOpenObject(pEnt,objId,AcDb::kForRead) );
    13.             AcDbHatch *pHatch = new AcDbHatch;
    14.             assert(pHatch);
    15.             try
    16.             {
    17.                         AcDbBlockTableRecordPointer pBtr(ACDB采用MODEL采用SPACE,
    18. curDoc()->database(), AcDb::kForWrite);
    19.                         AOK(pBtr.openStatus());
    20.                         AOK(pHatch->setPatternAngle(0));
    21.                         AOK(pHatch->setPatternScale(10));
    22.                         AOK(pHatch->setAssociative(Adesk::kFalse));
    23.                         AOK(pHatch->setPattern(AcDbHatch::kPreDefined, "ANSI32"));
    24.                         // append loop to hatch
    25.                         AcDbObjectIdArray dbObjIds;
    26.                         int objNum = dbObjIds.append(pEnt->objectId());
    27.                         acutPrintf("\nOBJ number is %d.", objNum);
    28.                         AOK(pHatch->appendLoop(AcDbHatch::kExternal, dbObjIds));
    29.                         AOK(pHatch->setLayer(pEnt->layer()));
    30.                         AOK(pHatch->setColorIndex(256));     //bylayer
    31.                         AOK(pHatch->setHatchStyle(AcDbHatch::kNormal));
    32.                         AOK(pHatch->evaluateHatch());
    33.                         AOK(pBtr->appendAcDbEntity(pHatch));
    34.                         AOK(pHatch->close());
    35.             }
    36.             catch (const Acad::ErrorStatus es)
    37.             {
    38.                         acutPrintf("Error: %s", acadErrorStatusText(es));
    39.                         delete pHatch;
    40.             }
    41. }
    复制代码

     

     

     

     

    [每日一码] 创建HATCH并设置比例
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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

    GMT+8, 2024-11-1 09:29 , Processed in 0.144202 second(s), 27 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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