|
|

楼主 |
发表于 2008-10-28 14:13:34
|
显示全部楼层
来自: 中国山东烟台
本人找到了一个这样的例子,但改写成函数却行不通,到底问题出在什么地方呢4 m- A2 P2 Z1 H9 ~+ P( o2 u
产生“V”字型的样例:) |6 ~3 A. Z6 P* n% g0 ^: `
void defineBlock()8 q+ L' ~( i2 I& Z# N' i
{9 t# ^& b+ z4 H/ P
AcDbBlockTableRecord *pBTableRec1=new AcDbBlockTableRecord();* _/ U/ C; s7 F5 U" F( {. |
pBTableRec1->setName("VSBlock");9 r; U. j$ d5 P3 l( k
AcDbBlockTable *pBTable=NULL;
' b h& w2 t4 K% g! S; }9 w! q" e acdbCurDwg()->getBlockTable(pBTable,AcDb::kForWrite);5 Z' _& L4 g% F2 o# E
AcDbObjectId id1;& B/ [; O3 x/ b& F# ^( f
pBTable->add(id1,pBTableRec1);
' V! \3 ~( H0 t5 N: T pBTable->close();
6 k) m' B$ r& d, I! U6 j AcGePoint3dArray ptArr1;
: u; k& v9 Z1 z9 c ptArr1.setLogicalLength(3);& N& E1 D2 x- U: Y9 T, a3 X
ptArr1[0].set(-2,3,0);
& C( V) D+ ~4 C8 k' R2 I2 m( f9 i ptArr1[1].set( 0,0,0);
- q% [% ^3 K: ~, q. u1 ? ptArr1[2].set( 2,3,0);
9 i1 M m. }- m% P* t AcDb2dPolyline *pPline1=new AcDb2dPolyline(AcDb::k2dSimplePoly,ptArr1,0.0,Adesk::kFalse);2 i6 w# F1 A' J; N1 Z! Q; q
pBTableRec1->appendAcDbEntity(pPline1);
! e# O8 A, Q* y0 m7 N8 q pBTableRec1->close();$ b4 p8 c0 k0 T7 U- k
pPline1->close();( L9 T2 q" ?+ x' ?! ^( V
} |
|