明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3158|回复: 7

怎样标注尺寸啊?新手求助!

[复制链接]
发表于 2004-2-23 20:04:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2004-2-24 11:03:50 编辑

画了两条直线,怎样标注它们得尺寸啊。要加些什么代码? double x1,x2,x3,y1,y2,y3; AcGePoint3d pt1(x1,y1,0),pt2(x2,y2,0),pt3(x3,y3,0);
AcDbLine* pLine1=new AcDbLine(pt1,pt2);
AcDbLine* pLine2=new AcDbLine(pt2,pt3); AcDbDatabase *pCurDb;
AcDbBlockTable *pBlockTable;
pCurDb=acdbHostApplicationServices()->workingDatabase(); pCurDb->getSymbolTable(pBlockTable,AcDb::kForRead);
AcDbBlockTableRecord *pBlockTableRecord;
pBlockTable->getAt(ACDB_MODEL_SPACE,pBlockTableRecord,AcDb::kForWrite);
pBlockTable->close(); AcDbObjectId lineId;
pBlockTableRecord->appendAcDbEntity(lineId,pLine1);
pBlockTableRecord->appendAcDbEntity(lineId,pLine2);

pBlockTableRecord->close();
pLine1->close();
pLine2->close();
发表于 2004-2-23 20:58:00 | 显示全部楼层
与画线相似,当然稍微麻烦一点点。


以对齐标注为例,使用AcDbAlignedDimsion类的构造函数建立标注对象,构造函数原型为:


< class=signature>AcDbAlignedDimension(const AcGePoint3d&amp; xLine1Point, const AcGePoint3d&amp; xLine2Point, const AcGePoint3d&amp; dimLinePoint, const char* dimText = NULL, AcDbObjectId dimStyle = AcDbObjectId::kNull);


< class=signature>然后添加到当前图形数据库即可。
 楼主| 发表于 2004-2-24 11:07:00 | 显示全部楼层
不好意思,能不能些详细一些啊。
发表于 2004-2-24 13:35:00 | 显示全部楼层
在你给出的代码最后三行前加上以下代码试试:


AcDbAlignedDimension pDim = new AcDbAlignedDimension(pLine1-&gt;startpoint(), pLine1-&gt;endpoint(), AcGePoint3d(x3, y3, 0), "&lt;&gt;");


AcDbObjectId Id;


pBlockTableRecord-&gt;appendEntity(Id, pDim);


最后close pDim对象。
 楼主| 发表于 2004-2-26 15:37:00 | 显示全部楼层
非常感谢leeyeafu的指导!标注了尺寸之后,发现图形看起来非常小而尺寸很大,不协调。怎样处理啊?还有如果有斜线又怎样标注它的水平和铅直尺寸呢?
发表于 2004-2-27 20:09:00 | 显示全部楼层
不知道楼主是否有ACAD手工绘图经验,请回忆一下手工绘图时遇到尺寸与图形不协调时是如何解决的,这对于编程解决是有帮助的。


具体编程解决5楼提出的第一个问题,要使用标注样式表,请先阅读ARX联机文档中有关AcDbDimStyleTableRecord类及其变量编辑函数的说明。若还有问题再发帖。


第二个问题:使用AcDbRotatedDimension类,详见ARX联机文档。
 楼主| 发表于 2004-3-2 11:21:00 | 显示全部楼层
是不是用setDimscale(0.2)啊,我试了一下好像图形没有什么变化。
 楼主| 发表于 2004-3-11 20:44:00 | 显示全部楼层
我定义了一个修改尺寸标注样式的函数editDimStyle(),主要是修改全局变量:pDimStyleTblRcd-&gt;setDimscale(0.1)。运行后图形的标注还是那样没什么变化。打开cad标注-样式,发现当前标注样式还是原来的。从新定义了一个设置尺寸标注样式的函数setDimStyle(),设置新的样式名NewDim,还是一样的问题。怎么办啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 00:38 , Processed in 0.183536 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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