lwh-1234 发表于 2005-5-27 09:42:00

请教一个设置线宽的问题

请教一个设置线宽的问题。我想画一条直线,自己控制直线线宽,下面是代码:


AcGePoint3d Pt1(500,700,0); <BR>        AcGePoint3d Pt2(100,200,0);


AcDbBlockTable *pBlockTable;<BR>        acdbHostApplicationServices()-&gt;workingDatabase()<BR>        -&gt;getSymbolTable(pBlockTable, AcDb::kForRead);<BR>        AcDbBlockTableRecord *pBlockTableRecord;<BR>        pBlockTable-&gt;getAt(ACDB_MODEL_SPACE, pBlockTableRecord,<BR>        AcDb::kForWrite);<BR>        pBlockTable-&gt;close();<BR>        AcDbLine *pLine1 = new AcDbLine(Pt1, Pt2);//创建line对象


pLine1-&gt;setLineWeight(AcDb::kLnWt040);//设置线宽为0.4mm


AcDbObjectId lineId;//定义标识符<BR>        pBlockTableRecord-&gt;appendAcDbEntity(lineId, pLine1);//将实体写入块表记录


pBlockTableRecord-&gt;close();//关闭块表记录


        pLine1-&gt;close();//调用关闭对象的成员函数


完毕。


可执行程序后生成的直线线宽没有变化。毛病是不是出在


pLine1-&gt;setLineWeight(AcDb::kLnWt040);//设置线宽为0.4mm


这句上。线宽枚举是不是得自己定义?在哪里定义?希望热心人指教!!!

pandoram 发表于 2005-5-27 15:43:00

代码没有问题.在CAD里面把系统参数LWDISPLAY开成ON就可以看到了.CAD默认是不显示线宽的.

lwh-1234 发表于 2005-5-30 10:52:00

谢谢<A name=34709><FONT color=#000066><B>pandoram</B></FONT></A>的指教,但是我在代码里加了一段       


        acdbHostApplicationServices()-&gt;workingDatabase()<BR>        -&gt;setLineWeightDisplay(true);


在CAD里使线宽属性显示为“开”,但还是线宽不变,不知道是怎末回事!

pandoram 发表于 2005-5-30 13:25:00

汗, 不应该这样的啊...


如果你已经用代码把线宽显示打开, CAD里就不用再开了, 查看到LWDISPLAY=ON就可以了..


如果还是不变的话..regen一下看看先..

chenpool 发表于 2005-5-30 14:57:00

估计是刷新的问题
页: [1]
查看完整版本: 请教一个设置线宽的问题