明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3096|回复: 7

怎样实现拷贝,移动,镜像,偏移,阵列等

[复制链接]
发表于 2006-3-11 10:03:00 | 显示全部楼层 |阅读模式
怎样实现拷贝,移动,镜像,偏移,阵列等,但是我不想用acedCommand来调用AutoCAD的命令,用arx怎么实现?
发表于 2006-3-11 23:55:00 | 显示全部楼层
//移动实体
//移动实体
void CTszDwg::MoveEntity(const AcDbObjectIdArray& aryIds,
       AcGePoint3d ptStart,
       AcGePoint3d ptEnd)
{
AcGeMatrix3d xform1;
xform1.setTranslation(AcGeVector3d(ptEnd-ptStart));

ads_name ssname;
ads_ssadd(NULL,NULL,ssname);
for(int i=0;i<aryIds.length();i++)
{
  AcDbObjectId Id=aryIds.at(i);
  ads_name name;
  acdbGetAdsName(name,Id);
  ads_ssadd(name,ssname,ssname);
  ads_ssfree(name);
}
ads_xformss(ssname,xform1.entry);
ads_ssfree(ssname);
}
 楼主| 发表于 2006-3-12 07:26:00 | 显示全部楼层

谢谢,

 楼主| 发表于 2006-3-13 15:30:00 | 显示全部楼层

那怎么样拷贝,偏移?

 楼主| 发表于 2006-3-29 13:50:00 | 显示全部楼层
顶一下
发表于 2006-4-5 09:02:00 | 显示全部楼层


AcDbObjectId CLjDwg::GetMirrorEntity(const AcDbObjectId Id,
        AcGePoint3d ptMirAxisStart,
        AcGePoint3d ptMirAxisEnd)
{
 AcDbObjectId idMirror=AcDbObjectId::kNull;
 AcGeMatrix3d xform1;
 //xform1.setToMirroring(AcGeLine3d(ptMirAxisStart,ptMirAxisEnd));
 AcGePlane Plan(ptMirAxisStart,AcGePoint3d(ptMirAxisEnd.x,ptMirAxisEnd.y,-100),ptMirAxisEnd);
 xform1.setToMirroring(Plan);
 
 AcDbEntity* pEnt=NULL;
 acdbOpenObject(pEnt,Id,AcDb::kForRead);
 if(pEnt)
 {
  AcDbEntity* pEnt0=(AcDbEntity*)pEnt->clone();
  pEnt->close();
  pEnt0->transformBy(xform1);
  idMirror=AddEntity(pEnt0);
  pEnt0->close();
 }
 return idMirror;
}

void CLjDwg::RotateEntity(const AcDbObjectId Id,
         const AcGePoint3d ptCenter,
         const double dAngle)
{
 AcDbObjectId idMirror=AcDbObjectId::kNull;
 AcGeMatrix3d xform1;
 xform1.setToRotation(dAngle,AcGeVector3d(0,0,1),ptCenter);
  
 AcDbEntity* pEnt=NULL;
 acdbOpenObject(pEnt,Id,AcDb::kForWrite);
 if(pEnt)
 {  
  pEnt->transformBy(xform1);
  pEnt->close();
 }
}

 楼主| 发表于 2006-4-6 21:16:00 | 显示全部楼层
多谢!
发表于 2006-4-8 21:28:00 | 显示全部楼层

ding

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 02:43 , Processed in 0.147164 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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