乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 70|回复: 3

利用ObjectDBX技术在当前图形中插入其他未打开图形中的图块

[复制链接]

8

主题

33

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2005-2-22 09:44:00 | 显示全部楼层 |阅读模式
张帆老师讲过在vba中的实现方式,不知在objectarx中怎么实现?
回复

使用道具 举报

8

主题

33

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2005-2-23 11:56:00 | 显示全部楼层
怎么没人回答?
回复

使用道具 举报

124

主题

837

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1333
发表于 2005-2-23 13:39:00 | 显示全部楼层
readDwgFile(),取得实体ID,然后clone对象.voidcloneSameOwnerObjects(){    // Step 1:  Obtain the set of objects to be cloned.    ads_name sset;    if (acedSSGet(NULL, NULL, NULL, NULL, sset) != RTNORM) {        acutPrintf("\nNothing selected");        return;    }    // Step 2: Add obtained object IDs to list of objects    // to be cloned.    long length;    acedSSLength(sset, &length);    AcDbObjectIdArray  objList;    AcDbObjectId ownerId = AcDbObjectId::kNull;    for (int i = 0; i         ads_name ent;        acedSSName(sset, i, ent);        AcDbObjectId objId;        acdbGetObjectId(objId, ent);        // Check to be sure this has the same owner as the first        // object.        //        AcDbObject *pObj;        acdbOpenObject(pObj, objId, AcDb::kForRead);        if (pObj->ownerId() == ownerId)            objList.append(objId);        else if (i == 0) {            ownerId = pObj->ownerId();            objList.append(objId);        }        pObj->close();    }    acedSSFree(sset);    // Step 3: Get the object ID of the desired owner for    // the cloned objects.  We'll use model space for    // this example.    //    AcDbBlockTable *pBlockTable;    acdbHostApplicationServices()->workingDatabase()        ->getSymbolTable(pBlockTable, AcDb::kForRead);    AcDbObjectId  modelSpaceId;    pBlockTable->getAt(ACDB_MODEL_SPACE, modelSpaceId);    pBlockTable->close();    // Step 4:  Create a new ID map.    //    AcDbIdMapping idMap;    // Step 5: Call deepCloneObjects().    //    acdbHostApplicationServices()->workingDatabase()        ->deepCloneObjects(objList, modelSpaceId, idMap);    // Now we can go through the ID map and do whatever we'd    // like to the original and/or clone objects.    //    // For this example, we'll print out the object IDs of    // the new objects resulting from the cloning process.    //    AcDbIdMappingIter iter(idMap);    for (iter.start(); !iter.done(); iter.next()) {        AcDbIdPair idPair;        iter.getMap(idPair);        if (!idPair.isCloned())            continue;        acutPrintf("\nObjectId is: %Ld",            idPair.value().asOldId());    }}
回复

使用道具 举报

8

主题

33

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2005-2-23 16:12:00 | 显示全部楼层
谢谢,我先看看,学习学习
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-2 00:46 , Processed in 1.053629 second(s), 61 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表