找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 534|回复: 5

[求助]:ARX编程问题

[复制链接]
发表于 2002-11-8 17:55:48 | 显示全部楼层 |阅读模式

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

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

×

  1. [FONT=courier new]
  2. OOL InsertDwgBlock(ads_point insertpt, double scale, double angle,CString m_formname)
  3. {
  4.         char filename[100], temp[100];
  5.         strcpy(temp, m_formname);
  6.         strlwr(temp);
  7.         if (ads_findfile(temp, filename) != RTNORM) return FALSE;

  8.         ads_point basept;
  9.         if (!ReadDwgBlock(basept, filename)) return FALSE;

  10.         // 读取图形块
  11.         AcDbDatabase *dwgBlock = new AcDbDatabase(Adesk::kFalse);
  12.         Acad::ErrorStatus es;
  13.         es = dwgBlock->readDwgFile(filename);
  14.         if (es != Acad::eOk)
  15.         {
  16.                 AfxMessageBox("sdd");
  17.                 delete dwgBlock;
  18.                 return FALSE;
  19.         }

  20.         AcGePoint3d inbase(basept[0], basept[1], 0.0);       
  21.         dwgBlock->setInsbase(inbase);
  22.         double oldscale = dwgBlock->dimscale();

  23.         // 插入图形块       
  24.         AcGeMatrix3d matrix, m1, m2, m3;
  25.         matrix = m1 = m2 = m3 = AcGeMatrix3d::kIdentity;       
  26.         AcGePoint3d base(insertpt[0], insertpt[1], 0.0);
  27.         AcGePoint3d base2(insertpt[0], insertpt[1]+5, 0.0);
  28.         AcGeLine3d line(base,base2);

  29.         m1.setToScaling(scale/oldscale, base);
  30.         AcGeVector3d axis(0, 0, 1);       
  31.         if(angle == 180.00)
  32.         {
  33.                 m2.setToMirroring(line);
  34.        
  35.                 AcGeVector3d vector(insertpt[0]-basept[0], insertpt[1]-basept[1], 0.0);
  36.                 m3.setToTranslation(vector);
  37.                 matrix = m1*m2*m3;
  38.         }
  39.         else
  40.         {
  41.                 AcGeVector3d vector(insertpt[0]-basept[0], insertpt[1]-basept[1], 0.0);
  42.                 m3.setToTranslation(vector);
  43.                 matrix = m1*m3;
  44.         }
  45.         es = pDb->insert(matrix, dwgBlock);
  46.         if (es != Acad::eOk)
  47.         {

  48.                 delete dwgBlock;
  49.                 return FALSE;
  50.         }
  51.         delete dwgBlock;

  52.         return TRUE;
  53. }
  54. [/FONT]
复制代码

我用上述函数时,当转角为180时,我的本意是将图镜像,程序执行时,连文字也镜像了!!
如何解决????
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-11-8 18:48:40 | 显示全部楼层
你的意思是用户输入180度后,你想把图改变到和输入0度一样的效果吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-11-8 19:07:25 | 显示全部楼层
是的,我查看以下ARX帮助,setmirrtext()是控制文字镜像的,但我试了,还是不可以???
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-11-8 19:12:36 | 显示全部楼层
最初由 sywdl 发布
[B]是的,我查看以下ARX帮助,setmirrtext()是控制文字镜像的,但我试了,还是不可以??? [/B]


镜像不对啊,应该再旋转-180度才对。
而且不用那么做,完全可以在插入块前判断角度,如果是180度的整数倍的角度,你把角度改成0就可以了。

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

使用道具 举报

 楼主| 发表于 2002-11-8 19:30:42 | 显示全部楼层
是这样:
我现在做一个程序,  该程序需要读入外部的DWG文件,就是用上述函数,当angle=180时,将外部图形实体插入当前数据库并以y轴镜像,现在镜像可以实现,但文字和尺寸文字是反写的??
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 00:49 , Processed in 0.231878 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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