明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2880|回复: 4

自定义实体的问题

[复制链接]
发表于 2011-12-21 20:12:05 | 显示全部楼层 |阅读模式
  1. Adesk::Boolean lxdxh::worldDraw (AcGiWorldDraw *mode) {
  2.         assertReadEnabled () ;
  3.        
  4.         // 声明下一个输入点.
  5.         double changdu = sqrt((m_PtB.x - m_PtA.x)*(m_PtB.x - m_PtA.x)+(m_PtB.y - m_PtA.y)*(m_PtB.y - m_PtA.y));//A点到B点的距离
  6.         //得到距离B点(圆的中心)为2.5的ptNext点
  7.         AcGePoint3d ptNext(m_PtB.x -  m_bl*5 * (m_PtB.x - m_PtA.x)/changdu, m_PtB.y - m_bl*5 * (m_PtB.y - m_PtA.y)/changdu, 0);

  8.     // 添加指引线
  9.         AcGePoint3d pts[2];
  10.         pts[0] = m_PtA;
  11.         pts[1] = ptNext;
  12.     mode->geometry().worldLine(pts);
  13.     // 添加序号球
  14.         mode->subEntityTraits().setSelectionMarker(1); // Mark 1
  15.     mode->subEntityTraits().setColor(1); // Red
  16.     mode->geometry().circle(m_PtB, m_bl*5, AcGeVector3d::kZAxis);
  17.     // 设置Text
  18.     mode->subEntityTraits().setSelectionMarker(2); // Mark 2  
  19.     mode->subEntityTraits().setColor(256); // ByLayer
  20.         AcGiTextStyle style;
  21.     style.setFileName(_T("txt.shx"));
  22.     style.setBigFontFileName(_T(""));
  23.     style.setTextSize(m_bl*3.5);
  24.     style.loadStyleRec();   
  25.         TCHAR buffer [20] ;
  26.         _stprintf (buffer, _T("%d"), m_ID) ;

  27.         size_t max=wcsnlen(buffer, 20);
  28.        
  29.         // 文本插入点
  30.     AcGePoint3d ptText(m_PtB.x-m_bl*1.5, m_PtB.y-m_bl*1.5, 0);
  31.         if (max==1)
  32.         {
  33.             AcGePoint3d ptText1(m_PtB.x-m_bl*1.5, m_PtB.y-m_bl*1.5, 0);
  34.                 ptText=ptText1;
  35.         }
  36.         if (max==2)
  37.         {
  38.             AcGePoint3d ptText1(m_PtB.x-m_bl*3, m_PtB.y-m_bl*1.5, 0);
  39.                 ptText=ptText1;
  40.         }
  41.         if (max==3)
  42.         {
  43.             AcGePoint3d ptText1(m_PtB.x-m_bl*4.5, m_PtB.y-m_bl*1.5, 0);
  44.                 ptText=ptText1;
  45.         }
  46.     // 添加Text
  47.     mode->geometry().text(ptText, AcGeVector3d::kZAxis, AcGeVector3d::kXAxis, buffer, max, Adesk::kFalse, style);

  48.     return Adesk::kTrue;
  49. }
复制代码
我做了一个序号的自定义实体,在做比例时,不能缩放。我加了一个参数,做为缩放比例,但加了以后,在夹点移动时,圆和字就不随着鼠标移动了,当夹点移动结束后,才移动到当前位置,请问:这个应该怎么做?
 楼主| 发表于 2011-12-22 18:25:00 | 显示全部楼层
已经解决了
 楼主| 发表于 2011-12-22 18:26:56 | 显示全部楼层
但是,新问题又来了,在缩放时,怎么把缩放的参数传递给对象呢?
发表于 2011-12-23 13:52:25 | 显示全部楼层
重载transformby()函数,在这里进行对象的缩放操作
 楼主| 发表于 2011-12-23 19:18:20 | 显示全部楼层
谢谢楼上的朋友,问题又解决了,呵呵,总是问题多多啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 10:05 , Processed in 0.166864 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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