乐筑天下

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

[求助]请帮忙把这段代码转成*.ARX

[复制链接]

1

主题

2

帖子

2

银币

初来乍到

Rank: 1

铜币
6
发表于 2010-1-30 10:25:00 | 显示全部楼层 |阅读模式
ads_name ents;
if(ads_ssget(NULL,NULL,NULL,NULL,ents) == RTNORM)
{
  AcDbExtents ext;
  long nLen = 0;
  ads_sslength(ents,&nLen);
  long i = 0;
  for (; i getGeomExtents(curExt);
   ext.addExt(curExt);
  }
  ads_ssfree(ents);
  AcDbDatabase * pDb = acdbCurDwg();
  if (pDb == NULL)
   return;
  AcDbBlockTable * pBlock = NULL;
  pDb->getBlockTable(pBlock,AcDb::kForWrite);
  if (pBlock == NULL)
   return;
  AcDbBlockTableRecord * pRecord = NULL;
  pBlock->getAt(ACDB_MODEL_SPACE,pRecord,AcDb::kForWrite);
  if (pRecord == NULL)
  {
   pBlock->close();
   return;
  }
  pBlock->close();

  //绘制矩形
  AcDbPolyline *pPolyExt = new AcDbPolyline;
  pPolyExt->addVertexAt(0,AcGePoint2d(ext.minPoint().x,ext.minPoint().y));
  pPolyExt->addVertexAt(1,AcGePoint2d(ext.minPoint().x,ext.maxPoint().y));
  pPolyExt->addVertexAt(2,AcGePoint2d(ext.maxPoint().x,ext.maxPoint().y));
  pPolyExt->addVertexAt(3,AcGePoint2d(ext.maxPoint().x,ext.minPoint().y));
  pPolyExt->setClosed(Adesk::kTrue);
  //绘制中心线
  AcDbLine * pVLn = new AcDbLine,* pHLn = new AcDbLine;
  pVLn->setStartPoint(AcGePoint3d((ext.minPoint().x+ext.maxPoint().x)*0.5,ext.minPoint().y,0));
  pVLn->setEndPoint(AcGePoint3d((ext.minPoint().x+ext.maxPoint().x)*0.5,ext.maxPoint().y,0));
  pHLn->setStartPoint(AcGePoint3d(ext.minPoint().x,(ext.minPoint().y+ext.maxPoint().y)*0.5,0));
  pHLn->setEndPoint(AcGePoint3d(ext.maxPoint().x,(ext.minPoint().y+ext.maxPoint().y)*0.5,0));
  pRecord->appendAcDbEntity(pPolyExt);
  pRecord->appendAcDbEntity(pVLn);
  pRecord->appendAcDbEntity(pHLn);
  pPolyExt->close();
  pVLn->close();
  pHLn->close();
  pRecord->close();
}
回复

使用道具 举报

3

主题

7

帖子

2

银币

初来乍到

Rank: 1

铜币
19
发表于 2010-1-30 15:48:00 | 显示全部楼层
貌似可以在ARX下运行的,如果真的要转,把ads函数改为arx对应的函数吧。
回复

使用道具 举报

0

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
3
发表于 2010-4-29 15:56:00 | 显示全部楼层
  ads_name ents;
  if(acedSSGet(NULL,NULL,NULL,NULL,ents) == RTNORM)
  {
    AcDbExtents ext;
    long nLen = 0;
    acedSSLength(ents,&nLen);
    for ( long i = 0; i
      AcDbObjectId curId;
      if(acdbGetObjectId(curId,curEnt) != Acad::eOk)
        continue;
      AcDbEntity * pEnt = NULL;
      acdbOpenAcDbEntity(pEnt,curId,AcDb::kForRead);
      if (pEnt == NULL)
        continue;
      AcDbExtents curExt;
      pEnt->getGeomExtents(curExt);
      ext.addExt(curExt);
    }
   
    acedSSFree(ents);
    AcDbDatabase * pDb = acdbCurDwg();
    if (pDb == NULL)
      return 1;
    AcDbBlockTable * pBlock = NULL;
    pDb->getBlockTable(pBlock,AcDb::kForWrite);
    if (pBlock == NULL)
      return 1;
    AcDbBlockTableRecord * pRecord = NULL;
    pBlock->getAt(ACDB_MODEL_SPACE,pRecord,AcDb::kForWrite);
    if (pRecord == NULL)
    {
      pBlock->close();
      return 1;
    }
    pBlock->close();
// ...
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-5 20:49 , Processed in 0.282228 second(s), 58 queries .

© 2020-2025 乐筑天下

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