乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 44|回复: 3

[ARX] SOS求助:尺寸标注方面问题!!!!!!!

[复制链接]

6

主题

14

帖子

1

银币

初来乍到

Rank: 1

铜币
38
发表于 2005-9-7 10:40:00 | 显示全部楼层 |阅读模式
我是一个ARX二次开发CAD的新手,做了一个尺寸自动标注的程序,部分代码如下:
AcDbDatabase *pcurdb=acdbHostApplicationServices()->workingDatabase();
   AcDbDimStyleTable *pnewdimtable;
   pcurdb->getSymbolTable(pnewdimtable,AcDb::kForWrite);
   AcDbDimStyleTableRecord *pnewdimrecord=new AcDbDimStyleTableRecord();
   pnewdimrecord->setDimasz(20);//设置箭头大小
   pnewdimrecord->setDimzin(8);//十进制小数显示时,抑制后续零
   pnewdimrecord->setDimexe(30);//设置尺寸界线超出尺寸线距离为400
   pnewdimrecord->setDimexo(0);//设置尺寸界线的起点偏移量为300
   pnewdimrecord->setDimtxt(30);//设置文字高度
   pnewdimrecord->setDimtad(1);//设置文字位置-垂直为上方,水平默认为居中,不用设置
   pnewdimrecord->setDimgap(10);//设置文字位置-从尺寸线的偏移量
   pnewdimrecord->setDimtih(0);  
   pnewdimrecord->setDimtix(1);//设置标注文字始终绘制在尺寸界线之间
   pnewdimrecord->setDimtofl(1);//即使箭头放置于测量点之外,尺寸线也将绘制在测量点之间
  // pnewdimrecord->setDimgap(0.5);
   color.setColorIndex(iDimColor);
   pnewdimrecord->setDimclrd(color);        //尺寸线颜色
   pnewdimrecord->setDimclre(color);        //尺寸边界线颜色
   color.setColorIndex(iTextColor);         
   pnewdimrecord->setDimclrt(color);        //文字颜色
   AcDbObjectId dimrecordid;
   pnewdimtable->add(dimrecordid,pnewdimrecord);
   pnewdimtable->close();
   pnewdimrecord->close();

   AcGePoint3d Pt1(KD[k].ZB_X+t,KD[k].ZB_Y+t,0);
   AcGePoint3d Pt2(DY.m_Chang+t,KD[k].ZB_Y+t,0);
   AcGePoint3d Pt3(KD[k].ZB_X+t,DY.m_Kuan+t+150+k*70,0);
   AcGePoint3d Pt6(KD[k].ZB_X+t-KD[k].KongJing/2*cos(PI/4.0),KD[k].ZB_Y+t+KD[k].KongJing/2*sin(PI/4.0),0);
   AcGePoint3d Pt7(KD[k].ZB_X+t+KD[k].KongJing/2*cos(PI/4.0),KD[k].ZB_Y+t-KD[k].KongJing/2*sin(PI/4.0),0);
   
   AcDbBlockTable *pBlockTable;//定义块表指针
   acdbHostApplicationServices()->workingDatabase()
   ->getSymbolTable(pBlockTable, AcDb::kForRead);
   AcDbBlockTableRecord *pBlockTableRecord;
   pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord,
   AcDb::kForWrite);
   pBlockTable->close();
   AcDbAlignedDimension *pDim1 = new AcDbAlignedDimension(Pt1, Pt2,Pt3,NULL,dimrecordid);
   AcDbDiametricDimension *pDim3 = new AcDbDiametricDimension(Pt6, Pt7,leaderLength,dimText,dimrecordid);
   pDim3->setLeaderLength(20);
   AcDbObjectId Id;
   pBlockTableRecord->appendAcDbEntity(Id, pDim1);
   pBlockTableRecord->appendAcDbEntity(Id, pDim3);
   pBlockTableRecord->close();
   pDim1->close();
   pDim3->close();
现在我希望标出的值是图形实际尺寸的一半,而不是尺寸的实际值,不知道对程序怎样操作。恳请高手不吝赐教,再次表示感谢,鲜花赠上
回复

使用道具 举报

4

主题

6

帖子

2

银币

初来乍到

Rank: 1

铜币
22
发表于 2005-9-8 11:18:00 | 显示全部楼层
AcDbRotatedDimension *pdim;pdim->setDimlfac(0.5)就可以了
回复

使用道具 举报

6

主题

14

帖子

1

银币

初来乍到

Rank: 1

铜币
38
发表于 2005-9-12 09:40:00 | 显示全部楼层
谢谢wuddy的热心指教,问题解决了。
再次表示感谢!!
回复

使用道具 举报

2

主题

87

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
95
发表于 2011-7-30 11:22:00 | 显示全部楼层
为什么在我的电脑上运行有问题
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-5 14:52 , Processed in 0.155837 second(s), 60 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表