找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1248|回复: 9

[求助]:另类倾斜标注

[复制链接]
发表于 2003-11-6 11:58:15 | 显示全部楼层 |阅读模式

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

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

×
近日遇到倾斜标注难题(不是标注整体有倾斜角度,只是标注的ExtenLine线有倾斜角),请高手指点
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-11-6 14:39:51 | 显示全部楼层
用ArxDbg看了一下,这种情况用到了AcDbRotatedDimension 实体,要用setRotation来设置你的 倾斜角度。
具体的你再研究一下吧!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-11-6 17:23:10 | 显示全部楼层

:)

好久不见,谢谢先
现在由于工作需要,没有用ARX了,所以很少来这里
最近用的是AutoCAD开放的图形接口来直接操纵CAD(公司不用ARX,要用这种原始方法,狂晕)~

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

使用道具 举报

发表于 2003-11-6 18:38:33 | 显示全部楼层

Re: :)

最初由 Echoyin 发布
[B]好久不见,谢谢先
现在由于工作需要,没有用ARX了,所以很少来这里
最近用的是AutoCAD开放的图形接口来直接操纵CAD(公司不用ARX,要用这种原始方法,狂晕)~

如果是要操纵实体,那估计在底层没戏,我去看看,?.. [/B]


这种“用AutoCAD开放的图形接口来直接操纵CAD”是一种什么技术??
用的是什么方法??
不是很了解,能不能介绍一下??
谢谢!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2003-12-17 17:55:07 | 显示全部楼层
至于“用AutoCAD开放的图形接口来直接操纵CAD”
呵呵,这个是我刚开始换公司的时候接触到的东西,哪个时候不懂,描述的可能不准确,其实就是类Automation,它其实就是在VC框架下添加一个lib(也就是添加AutoCAD提供的acad.tlb),然后就可以添加AutoCAD提供的各类IACAD接口...

///////////////////////////////////////////////////////////////////
用ArxDbg看了一下,这种情况用到了AcDbRotatedDimension 实体,要用setRotation来设置你的 倾斜角度。
具体的你再研究一下吧!!
/////////////////////////////////////////////////////////////////

AcDbRotatedDimension标注,我以前也用过。不过这对我这种情况不行,他的RotateAngle是指整体的倾斜角(如下图),不是ExtenLine的倾斜角。比较一下前后2图就知道了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

发表于 2003-12-19 13:49:52 | 显示全部楼层
是在不行的化,你可以自己创建标注内容,包括Leader\Text\Line

顺便问一下Echoyin:
能谈谈用这种方式(Acad.tlb)的好处吗?
我的QQ:85184876
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-12-19 14:43:29 | 显示全部楼层
汗,我这个问题弄了好久。。。。。
我的QQ早被盗了,现在用MSN,就是我签名下面的。

就我现在对这2个方法的掌握水平而言:类Automation方法主要是侧重于程序操作,好像进行交互(比如实时标注等)非常困难;而ARX则两方面都很方便。无疑现在CAD二次开发方面还是ARX优势比较大。。。

你可以在CAD2002里面看->help->Developer help->ActiveX and VBA...

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

使用道具 举报

发表于 2003-12-19 17:05:39 | 显示全部楼层
最初由 HillMan 发布
[B]用ArxDbg看了一下,这种情况用到了AcDbRotatedDimension 实体,要用setRotation来设置你的 倾斜角度。
具体的你再研究一下吧!! [/B]




我研究过,要用AcDbRotatedDimension 的成员函数:setOblique。但我的代码还没写好,但应该没问题。Echoyin  兄你先试试!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-12-19 18:54:46 | 显示全部楼层

thx

谢谢DARCY 兄,谢谢大家~
问题搞定了。哈,用的就是setOblique,其实AcDbAlignedDimension或者AcDbRotateDimension都可以,不过AcDbAlignedDimension通用性强。测试代码如下



  1.   [FONT=courier new]
  2. Acad::ErrorStatus es;
  3.         AcGePoint3d spt(100,100,0);
  4.         AcGePoint3d ept(200,100,0);

  5.         AcDbBlockTable *pBlockTable;
  6.         es = acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pBlockTable,AcDb::kForRead);
  7.         if(es!=Acad::eOk)
  8.                 return ;

  9.         AcDbBlockTableRecord *pBlockTableRecord;
  10.         es=pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord,AcDb::kForWrite);
  11.         if(es!=Acad::eOk)
  12.         {
  13.                 pBlockTable->close();
  14.                 return;
  15.         }
  16.         pBlockTable->close();
  17.        
  18.         AcGePoint3d dimPt;
  19.         double dimLen = 20;
  20.         dimPt.set((spt.x+ept.x)/2,(spt.y+ept.y)/2,0);
  21.         AcGeVector3d vec=ept-spt;
  22.         vec.rotateBy(90*PI/180.0,AcGeVector3d(0,0,1));
  23.         vec.normalize();
  24.         dimPt+=vec*dimLen;

  25.         //double angle = 30;
  26.         int    color = 1;
  27.         CString dimText = "";
  28.         AcDbObjectId dimStyleId = AcDbObjectId::kNull;
  29.        
  30.         AcDbAlignedDimension* pRotDim=NULL;
  31.         pRotDim=new AcDbAlignedDimension;
  32.         //pRotDim->setRotation(angle*PI/180.0);
  33.         pRotDim->setXLine1Point(spt);
  34.         pRotDim->setXLine2Point(ept);
  35.         pRotDim->setDimLinePoint(dimPt);
  36.         pRotDim->setColorIndex(color);
  37.         pRotDim->setOblique(PI/4);
  38.        
  39.         if(dimText.Compare("") != 0)
  40.         {
  41.                 if(strlen(dimText)>0)
  42.                         pRotDim->setDimensionText(dimText);
  43.         }
  44.         es=pRotDim->setDimensionStyle(dimStyleId);
  45.         if(es!=Acad::eOk)
  46.         {
  47.                 pBlockTableRecord->close();
  48.                 if(pRotDim)
  49.                         delete pRotDim;
  50.                 return ;
  51.         }
  52.        
  53.         AcDbObjectId retId;
  54.         es=pBlockTableRecord->appendAcDbEntity(retId,pRotDim);
  55.         if(es!=Acad::eOk)
  56.         {
  57.                 pBlockTableRecord->close();
  58.                 if(pRotDim)
  59.                         delete pRotDim;
  60.                 return ;
  61.         }
  62.        
  63.         pBlockTableRecord->close();
  64.         pRotDim->close();
  65.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 10:25 , Processed in 0.208979 second(s), 50 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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