找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1551|回复: 16

[讨论]:动态极轴提示

[复制链接]
发表于 2005-9-9 21:20:29 | 显示全部楼层 |阅读模式

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

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

×
如果我们在极轴模式下画一条线,在慢慢移动鼠标的时候会显示当前点与起点的距离和一个角度,同样在拉伸一个实体的夹点时只要在正交方向时也会自动显示这样的提示信息,这很好啊,但在ARX中是否能实现呢,它采用了一个什么的类啊。




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

使用道具 举报

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

使用道具 举报

发表于 2005-10-1 15:17:15 | 显示全部楼层
CAD2006中就有这一功能,希望知道的朋友能给予帮助!原我们共同进步!!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-15 17:09:27 | 显示全部楼层
我不采用了,我自定义类的绘图过程中进行处理,效果还不错的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2005-10-20 15:13:40 | 显示全部楼层
比如我要画一个圆,我要在圆心点和光标点的中点动态显示半径,我不是自定义一个圆,而是用AcEdJig定义一个类,在这个类的Update中去画半径的数据,doit结束后不要调用APPEND(),最后在命令结束时在模型空间中加入一个圆,这个圆还是AutoCAD的AcDbCircle类。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-20 15:29:07 | 显示全部楼层
哦,是这样。
但是如果要画的也是自定义的用AcEdJig拖动产生的呢?
芑不是要操作两个AcEdJig。不好实现吧
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-21 11:34:39 | 显示全部楼层
好实现的,上面我讲得有点不清晰
是这样的:
我要画一个圆
第一用DBX自定义一个圆,在其WordDraw进行你希望的处理;
第二在你应用程序中用AcEdJig自定义一个绘圆的类;
        这个类中的处理实体是上面DBX定义的圆;
第三当DOIT结束是不要用APPEND加入DBX定义的圆,
       取出DBX定义圆的数据,然后用new创建一个AutoCAD的AcDbCircle类,并将它加入到数据库
       中,这样不是即满足了动态提示,同时加入数据中有没有多余的提示信息了。
最后你按此思路试一下,祝你成功,别忘了告诉我哦。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-21 12:00:39 | 显示全部楼层
多谢提示,如果我要加入数据库的实体不是AutoCAD的类,而是自定义的复杂的呢?
WorldDraw中,是不是不能同时用circle text mesh等,我看到屏幕上显示了圆就不显示文字了。显示了文字就不显示圆了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2005-10-21 14:38:55 | 显示全部楼层
Adesk::Boolean WJRedCircle::worldDraw(AcGiWorldDraw* mode)
{
        assertReadEnabled();
        // TODO: implement this function.
  double curRad=this->radius();
  if(curRad>SdToCd(20))
  {
    AcGeVector3d normal(0,0,1);
    AcGeVector3d direction;
    double texHigh=SdToCd(10);
    double ang;
    char str[10];
    AcGePoint3d strPt,endPt,insPt,newInspt;
    strPt=this->center();
    endPt=GetCurMousePt();
    insPt.x=(strPt.x+endPt.x)/2;
    insPt.y=(strPt.y+endPt.y)/2;
    mode->subEntityTraits().setColor(2);
    itoa(int(curRad),str,10);
    ang=acutAngle(asDblArray(strPt),asDblArray(endPt));
    if(ang<pi/2 || ang>pi*1.5)
    {
      direction=endPt-strPt;
      ang=ang+pi/2;
    }
    else
    {
      direction=strPt-endPt;
      ang=ang+pi*1.5;
    }
    acutPolar(asDblArray(insPt),ang,SdToCd(5),asDblArray(newInspt));
    mode->geometry().text(newInspt,normal,direction,texHigh,0.8,0,str);
    mode->subEntityTraits().setColor(0);
  }
        return AcDbEntity::worldDraw(mode);
}

AcGePoint3d GetCurMousePt()
{
  struct resbuf rb;
  CPoint CurPt;
  double douWidth,douHeight;
  AcGePoint3d mousPt;
  GetCursorPos(&CurPt);
  ScreenToClient(acedGetAcadDwgView()->m_hWnd,&CurPt);
  acedGetVar("VIEWCTR",&rb);
  rb.restype=RTPOINT;
  mousPt.x=rb.resval.rpoint[0];
  mousPt.y=rb.resval.rpoint[1];
  acedGetVar("VIEWSIZE",&rb);
  rb.restype=RTREAL;
  douHeight=rb.resval.rreal/2;
  acedGetVar("SCREENSIZE",&rb);
  rb.restype=RTPOINT;
  douWidth=douHeight*rb.resval.rpoint[0]/rb.resval.rpoint[1];
  mousPt.x=mousPt.x-douWidth;
  mousPt.y=mousPt.y+douHeight;
  mousPt.x=mousPt.x+SdToCd(CurPt.x);
  mousPt.y=mousPt.y-SdToCd(CurPt.y);
  return mousPt;
}

double SdToCd(int dis)
{
  struct resbuf rb1,rb2;
  acedGetVar("SCREENSIZE",&rb1);
  acedGetVar("VIEWSIZE",&rb2);
  rb1.restype=RTPOINT;
  rb2.restype=RTREAL;
  double ViewHeightLP;
  double ViewHeightDP;
  ViewHeightLP=rb2.resval.rreal;
  ViewHeightDP=rb1.resval.rpoint[1];
  return ViewHeightLP*dis/ViewHeightDP;
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-21 15:14:24 | 显示全部楼层
怎么只有mode->geometry().text(newInspt,normal,direction,texHigh,0.8,0,str);
绘圆的呢?我再加上mode->geometry().circle()后,拖动的时候只有圆,而没有文字。

终于搞定了。多谢RedCAD。我尝试实现的功能比较简单,不过也搞了这么久。........:
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2005-11-5 10:53:22 | 显示全部楼层
专门做一个完整的列子很花时间,如果你是集中精力在这一点上,那少量的提示就足够了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-8 19:56 , Processed in 0.236100 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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