天气与日历 切换到窄版

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

ObjectArx 插入文件块

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
[code]//读*.dwg文件以textDrawing块名插入打开文件



void inserblk()
{
// 建立一个空的数据库对象(Adesk::kTrue则不为空)
AcDbDatabase *pDwg =new AcDbDatabase (Adesk::kFalse) ;
//  设置插入块的路径
pDwg->readDwgFile("d:\\1.dwg");

AcDbObjectId blockId;
Acad::ErrorStatus es = acdbHostApplicationServices()->workingDatabase()->insert(blockId, "mydrawing", pDwg, Adesk::kFalse);
if ( es != Acad::eOk )   
{
  acutPrintf ("\n插入块错误.");
}
//  释放内存
delete pDwg;

// 上面创建了“名字是myfile的块定义AcDbBlockTableRecord”,
// ObjectId是blockId,接着就可以实例AcDbBlockReference对象,
//  创建INSERT实体了。
AcDbBlockReference *pBlkRef =new AcDbBlockReference();
pBlkRef->setBlockTableRecord (blockId) ;

//  输入插入点
ads_point pickPt;
int retCode;
// 限制用户必须选择或输入点(输入模式:x,y,z)
acedInitGet(RSG_NONULL, NULL);
acedGetPoint(NULL, "\n请选择插入点:", pickPt);

//---- 设置插入点,旋转角度,比例等等
pBlkRef->setPosition(AcGePoint3d(pickPt[X],pickPt[Y],0.0)) ;
pBlkRef->setRotation(0.0);


//  获得模型空间块表记录
AcDbBlockTable *pBlockTable;
acdbHostApplicationServices()->workingDatabase()->getBlockTable(pBlockTable,AcDb::kForRead);
AcDbBlockTableRecord *pBlockTableRecord;
pBlockTable->getAt(ACDB_MODEL_SPACE,pBlockTableRecord,AcDb::kForWrite);
pBlockTable->close();

//----- 添加块引用pBlkRef实体到模型空间
AcDbObjectId newEntId ;
pBlockTableRecord->appendAcDbEntity(newEntId, pBlkRef);



//  释放资源
pBlockTableRecord->close();
pBlkRef->close();
}[/code]

 

 

 

 

ObjectArx 插入文件块
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-1 11:32 , Processed in 0.119981 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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