ltaotie 发表于 2004-2-23 20:04:00

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

本帖最后由 作者 于 2004-2-24 11:03:50 编辑 <br /><br /> 画了两条直线,怎样标注它们得尺寸啊。要加些什么代码?



double x1,x2,x3,y1,y2,y3;





AcGePoint3d pt1(x1,y1,0),pt2(x2,y2,0),pt3(x3,y3,0);<BR>        AcDbLine* pLine1=new AcDbLine(pt1,pt2);<BR>                AcDbLine* pLine2=new AcDbLine(pt2,pt3);


AcDbDatabase *pCurDb;<BR>        AcDbBlockTable *pBlockTable;<BR>        pCurDb=acdbHostApplicationServices()-&gt;workingDatabase();


        pCurDb-&gt;getSymbolTable(pBlockTable,AcDb::kForRead);<BR>        AcDbBlockTableRecord *pBlockTableRecord;<BR>        pBlockTable-&gt;getAt(ACDB_MODEL_SPACE,pBlockTableRecord,AcDb::kForWrite);<BR>        pBlockTable-&gt;close();


        AcDbObjectId lineId;<BR>        pBlockTableRecord-&gt;appendAcDbEntity(lineId,pLine1);<BR>        pBlockTableRecord-&gt;appendAcDbEntity(lineId,pLine2);<BR>        <BR>        pBlockTableRecord-&gt;close();<BR>        pLine1-&gt;close();<BR>        pLine2-&gt;close();

leeyeafu 发表于 2004-2-23 20:58:00

与画线相似,当然稍微麻烦一点点。


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


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


<P class=signature>然后添加到当前图形数据库即可。

ltaotie 发表于 2004-2-24 11:07:00

不好意思,能不能些详细一些啊。

leeyeafu 发表于 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对象。

ltaotie 发表于 2004-2-26 15:37:00

非常感谢<A name=82005><FONT color=#000066><B>leeyeafu</B></FONT></A>的指导!标注了尺寸之后,发现图形看起来非常小而尺寸很大,不协调。怎样处理啊?还有如果有斜线又怎样标注它的水平和铅直尺寸呢?

leeyeafu 发表于 2004-2-27 20:09:00

不知道楼主是否有ACAD手工绘图经验,请回忆一下手工绘图时遇到尺寸与图形不协调时是如何解决的,这对于编程解决是有帮助的。


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


第二个问题:使用AcDbRotatedDimension类,详见ARX联机文档。

ltaotie 发表于 2004-3-2 11:21:00

是不是用setDimscale(0.2)啊,我试了一下好像图形没有什么变化。

ltaotie 发表于 2004-3-11 20:44:00

我定义了一个修改尺寸标注样式的函数editDimStyle(),主要是修改全局变量:pDimStyleTblRcd-&gt;setDimscale(0.1)。运行后图形的标注还是那样没什么变化。打开cad标注-样式,发现当前标注样式还是原来的。从新定义了一个设置尺寸标注样式的函数setDimStyle(),设置新的样式名NewDim,还是一样的问题。怎么办啊。
页: [1]
查看完整版本: 怎样标注尺寸啊?新手求助!