天气与日历 切换到窄版

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

ObjectARX_填充

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
須要頭文件#include " dbhatch.h "lua

void ZffCHAP2AddHatch()
{
// 提示用戶選擇填充邊界
ads_name ss;
int rt = acedSSGet(NULL, NULL, NULL, NULL, ss);
AcDbObjectIdArray objIds;

// 初始化填充邊界的ID數組
if (rt == RTNORM)
{
long length;
acedSSLength(ss, &length);
for (int i = 0; i < length; i++)
{
ads_name ent;
acedSSName(ss, i, ent);
AcDbObjectId objId;
acdbGetObjectId(objId, ent);
objIds.append(objId);
}
}
acedSSFree(ss); // 釋放選擇集
CCreateEnt::CreateHatch(objIds, "SOLID", true);
}

AcDbObjectId CCreateEnt::CreateHatch(AcDbObjectIdArray objIds,const char* patName, bool bAssociative)
{
Acad::ErrorStatus es;
AcDbHatch *pHatch = new AcDbHatch();

// 設置填充平面
AcGeVector3d normal(0, 0, 1);
pHatch->setNormal(normal);
pHatch->setElevation(0);

// 設置關聯性
pHatch->setAssociative(bAssociative);

// 設置填充圖案
pHatch->setPattern(AcDbHatch::kPreDefined, patName);

// 添加填充邊界
es = pHatch->appendLoop(AcDbHatch::kExternal, objIds);

// 顯示填充對象
es = pHatch->evaluateHatch();

// 添加到模型空間
AcDbObjectId hatchId;
hatchId = CCreateEnt::PostToModelSpace(pHatch);

// 若是是關聯性的填充,將填充對象與邊界綁定,以便使其能得到邊界對象修改的通知
if (bAssociative)
{
AcDbEntity *pEnt;
for (int i = 0; i < objIds.length(); i++)
{
es = acdbOpenAcDbEntity(pEnt, objIds[i],AcDb::kForWrite);
if (es == Acad::eOk)
{
// 添加一個永久反應器
pEnt->addPersistentReactor(hatchId);
pEnt->close();
}
}
}
return hatchId;
}
appendLoop函數定義爲:3d

Acad::ErrorStatus appendLoop(Adesk::Int32 loopType,const AcDbObjectIdArray& dbObjIds);
第一個參數:邊界類型;第二個參數:邊界實體的id數組code

 

 

 

 

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

本版积分规则

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

GMT+8, 2024-11-1 10:25 , Processed in 0.129908 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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