找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 458|回复: 3

[ARX函数]:如何加载图块>?>?

[复制链接]
发表于 2006-6-27 20:25:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我想在 当前图形中加载 B 图中的一个块,假设B图是在 d:\B.dwg在磁盘上

请问如何操作?????

谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-6-27 22:16:29 | 显示全部楼层
insert wblock
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-7-1 12:46:07 | 显示全部楼层
别人的程序:

AcDbDatabase *pNewDb =new AcDbDatabase(Adesk::kFalse);
                        int        es=pNewDb->readDwgFile(dwgpath , _SH_DENYNO, false);
                        if (es!=Acad::eOk)
                        {
                        acutPrintf("\nThe file %s cannot be opend",dwgpath);
                        return;
                        }
                       
               
                AcDbDatabase *pDb;
                pDb =acdbHostApplicationServices ()->workingDatabase () ;*/
       
        //        pDb->insert( AcGeMatrix3d::kIdentity, pNewDb );
               
                 
                 /*
                  CString pBlockName="TestBlock";
                                             AcDbObjectId blockId;
                                             if((es=pDb->insert(blockId, pBlockName,pNewDb, true))==Acad::eOk)
                                             {
                                             acutPrintf("\ninsert ok\n");
                                             }
                                             else
                                             {
                                             AfxMessageBox("Insert failed");
                                             delete pNewDb;
                                             return;
                                             } */
                 
       
                   /*
                    const AcGePoint3d& Pt=AcGePoint3d(0,0,0);
                    
                          double Angle=0;
                          double XrefScale=0;
                          AcDbBlockReference *pBlkRef = new AcDbBlockReference;
                          pBlkRef->setBlockTableRecord(blockId);//指向blockId;
                          pBlkRef->setPosition(Pt);//设定位置
                          pBlkRef->setRotation(Angle);//设定转角
                          pBlkRef->setScaleFactors( XrefScale);//设定放大比例
                                 
                                    AcDbBlockTable *pBlockTable;
                                    pDb->getSymbolTable(pBlockTable, AcDb::kForRead);
                                    
                                          AcDbBlockTableRecord *pBlockTableRecord;
                                          pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord, AcDb::kForWrite);
                                          pBlockTable->close();
                                          AcDbObjectId newEntId;
                                          pBlockTableRecord->appendAcDbEntity(newEntId, pBlkRef);
                                          pBlockTableRecord->close();
                                         
                                            AcDbBlockTableRecord *pBlockDef;
                                            acdbOpenObject(pBlockDef, blockId, AcDb::kForRead);
                                            
                                                  AcDbBlockTableRecordIterator *pIterator;
                                                  pBlockDef->newIterator(pIterator);
                                                  AcGePoint3d basePoint;
                                                  AcDbEntity *pEnt;
                                                  AcDbAttributeDefinition *pAttdef;
                                                  for (pIterator->start(); !pIterator->done();
                                                  pIterator->step())//将source.dwg中所有的Attibute进行遍历
                                                  {
                                                  pIterator->getEntity(pEnt, AcDb::kForRead);
                                                  pAttdef = AcDbAttributeDefinition::cast(pEnt);
                                                  if (pAttdef != NULL && !pAttdef->isConstant()) {
                                                  AcDbAttribute *pAtt = new AcDbAttribute();
                                                  pAtt->setPropertiesFrom(pAttdef);
                                                  pAtt->setInvisible(pAttdef->isInvisible());
                                                  basePoint = pAttdef->position();
                                                  basePoint += pBlkRef->position().asVector();
                                                  pAtt->setPosition(basePoint);
                                                  pAtt->setHeight(pAttdef->height());
                                                  pAtt->setRotation(pAttdef->rotation());
                                                  pAtt->setTag("Tag");
                                                  pAtt->setFieldLength(25);
                                                  char *pStr = pAttdef->tag();
                                                  pAtt->setTag(pStr);
                                                  //                        acutDelString(pStr);
                                                  pAtt->setFieldLength(pAttdef->fieldLength());
                                                  pAtt->setTextString("-");
                                                 
                                                    AcDbObjectId attId;
                                                    
                                                          pBlkRef->appendAttribute(attId, pAtt);
                                                          pAtt->close();
                                                          }
                                                          pEnt->close(); // use pEnt... pAttdef might be NULL
                                                          }
                                                          delete pIterator;
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-7-3 12:43:44 | 显示全部楼层
厉害
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-23 14:35 , Processed in 0.292666 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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