找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1915|回复: 4

[求助]:高手看看这个小小的程序,关于图形变换

[复制链接]
发表于 2004-6-4 10:11:47 | 显示全部楼层 |阅读模式

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

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

×
我刚学ARX就只是一个简单的图形变换,,老出问题,手什么东西不是一制度的形式打开,那位能看看吗。急。万分感激!
void tss()
{
                                // Row of ads_matrix
        AcGeMatrix3d xform;        // 定义转换矩阵

        // 所选择物体名
        int rc;                                // 返回值
               
    ads_real d,s;  //
        ads_name en; //选择实体名
        ads_point pt; //选择点
        AcDbObjectId eid;  //选择实体的id 号
        //**********************************
        acedEntSel("\n请选择要转换的实体",en,pt);
        acdbGetObjectId(eid,en);
        AcDbEntity *pent1,*pent2;   //定义实体
        AcDb::OpenMode kForWrite;
        //acdbOpenObject(pent,eid, kForWrite);

           //acedPrompt("\n请选择要转换的实体 ");
       
        acedInitGet(RSG_NONULL + RSG_NONEG + RSG_NOZERO, NULL);
        acedGetReal("\n请输入x对y的错切量: ", &d);
        acedGetReal("\n请输入x对z的错切量: ", &s);
        //初始化矩阵
    xform.entry[1,0,0,0,0,1,0,0,d,s,0,0,0,0,0,1];
       

       



       
acdbOpenAcDbEntity(pent1,eid,kForWrite,false);
   if(pent1)//当指针不空时
           //pent1->getTransformedCopy(xform,pent1);
         pent1->transformBy(xform);
   
    acedSSFree(en);        //释放选择集
        //*********************************
       

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

  1. void tss()
  2. {
  3. // Row of ads_matrix
  4. AcGeMatrix3d xform; // 定义转换矩阵

  5. // 所选择物体名
  6. int rc; // 返回值

  7. ads_real d,s; //
  8. ads_name en; //选择实体名
  9. ads_point pt; //选择点
  10. AcDbObjectId eid; //选择实体的id 号
  11. //**********************************
  12. acedEntSel("\n请选择要转换的实体",en,pt);
  13. acdbGetObjectId(eid,en);
  14. AcDbEntity *pent1,*pent2; //定义实体
  15. [COLOR=Red]AcDb::OpenMode kForWrite;  // It is not needed! [/COLOR]
  16. //acdbOpenObject(pent,eid, kForWrite);

  17. //acedPrompt("\n请选择要转换的实体 ");

  18. acedInitGet(RSG_NONULL + RSG_NONEG + RSG_NOZERO, NULL);
  19. acedGetReal("\n请输入x对y的错切量: ", &d);
  20. acedGetReal("\n请输入x对z的错切量: ", &s);
  21. //初始化矩阵
  22. xform.entry[1,0,0,0,0,1,0,0,d,s,0,0,0,0,0,1];

  23. //[COLOR=Red]acdbOpenAcDbEntity(pent1,eid,kForWrite,false);[/COLOR][COLOR=Blue] //==>>
  24.   acdbOpenAcDbEntity(pent1,eid, AcDb::kForWrite,false);[/COLOR]

  25. if(pent1)//当指针不空时
  26. //pent1->getTransformedCopy(xform,pent1);
  27. pent1->transformBy(xform);

  28. acedSSFree(en); //释放选择集
  29. //*********************************


  30. }
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2009-8-11 14:49:17 | 显示全部楼层
学习,感谢ishou这样高手的无私援助。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2009-11-18 10:48:01 | 显示全部楼层
void tss()
{
        ads_name en; //选择实体名
        ads_point pt; //选择点

        int rc=acedEntSel("\n请选择要转换的实体",en,pt);

        AcDbObjectId eid; //选择实体的id 号
        acdbGetObjectId(eid,en);
        //acedSSFree(en); //释放选择集

        acedInitGet(RSG_NONULL + RSG_NONEG + RSG_NOZERO, NULL);
        acedGetReal("\n请输入x对y的错切量: ", &d);
        acedGetReal("\n请输入x对z的错切量: ", &s);

        //初始化矩阵
        AcGeMatrix3d xform; // 定义转换矩阵
        xform.entry[1,0,0,0,0,1,0,0,d,s,0,0,0,0,0,1];

        AcDbEntity* pent1=NULL;
        acdbOpenAcDbEntity(pent1,eid,AcDb::kForWrite);
        if(pent1)//当指针不空时
        {
                pent1->transformBy(xform);
                pent1->close();
        }
}
另外开始学习的时候代码一定要规范,否则会形成坏习惯。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-24 10:24 , Processed in 0.202548 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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