天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 172|回复: 0

ObjectArx尺寸标注设置

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-2-27 16:24:34 | 显示全部楼层 |阅读模式
  1.    AcDbDatabase *pcurdb=acdbHostApplicationServices()->workingDatabase();
  2.    AcDbDimStyleTable *pnewdimtable;
  3.    pcurdb->getSymbolTable(pnewdimtable,AcDb::kForWrite);
  4.    AcDbDimStyleTableRecord *pnewdimrecord=new AcDbDimStyleTableRecord();
  5.    pnewdimrecord->setDimasz(20);//设置箭头大小
  6.    pnewdimrecord->setDimzin(8);//十进制小数显示时,抑制后续零
  7.    pnewdimrecord->setDimexe(30);//设置尺寸界线超出尺寸线距离为400
  8.    pnewdimrecord->setDimexo(0);//设置尺寸界线的起点偏移量为300
  9.    pnewdimrecord->setDimtxt(30);//设置文字高度
  10.    pnewdimrecord->setDimtad(1);//设置文字位置-垂直为上方,水平默认为居中,不用设置
  11.    pnewdimrecord->setDimgap(10);//设置文字位置-从尺寸线的偏移量
  12.    pnewdimrecord->setDimtih(0); 
  13.    pnewdimrecord->setDimtix(1);//设置标注文字始终绘制在尺寸界线之间
  14.    pnewdimrecord->setDimtofl(1);//即使箭头放置于测量点之外,尺寸线也将绘制在测量点之间
  15.   // pnewdimrecord->setDimgap(0.5);
  16.    color.setColorIndex(iDimColor);
  17.    pnewdimrecord->setDimclrd(color);        //尺寸线颜色
  18.    pnewdimrecord->setDimclre(color);        //尺寸边界线颜色
  19.    color.setColorIndex(iTextColor);        
  20.    pnewdimrecord->setDimclrt(color);        //文字颜色
  21.    AcDbObjectId dimrecordid;
  22.    pnewdimtable->add(dimrecordid,pnewdimrecord);
  23.    pnewdimtable->close();
  24.    pnewdimrecord->close();
  25.  
  26.    AcGePoint3d Pt1(KD[k].ZB采用X+t,KD[k].ZB采用Y+t,0);
  27.    AcGePoint3d Pt2(DY.m采用Chang+t,KD[k].ZB采用Y+t,0);
  28.    AcGePoint3d Pt3(KD[k].ZB采用X+t,DY.m采用Kuan+t+150+k*70,0);
  29.    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);
  30.    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);
  31.     
  32.    AcDbBlockTable *pBlockTable;//定义块表指针
  33.    acdbHostApplicationServices()->workingDatabase()
  34.    ->getSymbolTable(pBlockTable, AcDb::kForRead);
  35.    AcDbBlockTableRecord *pBlockTableRecord;
  36.    pBlockTable->getAt(ACDB采用MODEL采用SPACE, pBlockTableRecord,
  37.    AcDb::kForWrite);
  38.    pBlockTable->close();
  39.    AcDbAlignedDimension *pDim1 = new AcDbAlignedDimension(Pt1, Pt2,Pt3,NULL,dimrecordid);
  40.    AcDbDiametricDimension *pDim3 = new AcDbDiametricDimension(Pt6, Pt7,leaderLength,dimText,dimrecordid);
  41.    pDim3->setLeaderLength(20);
  42.    AcDbObjectId Id;
  43.    pBlockTableRecord->appendAcDbEntity(Id, pDim1);
  44.    pBlockTableRecord->appendAcDbEntity(Id, pDim3);
  45.    pBlockTableRecord->close();
  46.    pDim1->close();
  47.    pDim3->close();
复制代码


设置自动标注的精度pnewdimrecord->setDimdec(2);        //小数点后两位

设置标出的值是图形实际尺寸的一半,而不是尺寸的实际值

AcDbRotatedDimension *pdim;pdim->setDimlfac(0.5)



在我们建立标注样式或文字样式时都习惯把他们设一个名字,如setName(采用T("仿宋"))

但是取了名字之后有一个问题就是,下次再调用这个程序是,如果程序识别到已经有这个名字的存在,它就不会再对样式表进行设置了,所以我们很多时候调用了一次,下次调用发现根本就没起作用就是这个道理。(当然这也是我自己的判断)

 

 

 

 

ObjectArx尺寸标注设置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-1 13:40 , Processed in 0.130645 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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