|
|

楼主 |
发表于 2008-10-28 14:13:34
|
显示全部楼层
来自: 中国山东烟台
本人找到了一个这样的例子,但改写成函数却行不通,到底问题出在什么地方呢/ c* g+ i3 F+ I$ _8 d
产生“V”字型的样例:. g; G* ]6 C6 j" M; C& `
void defineBlock()9 T) b# c2 ~' v) v8 {
{
# {# K' X+ j5 J AcDbBlockTableRecord *pBTableRec1=new AcDbBlockTableRecord();
. I2 j+ n1 n) ?; O; L4 O5 e pBTableRec1->setName("VSBlock");
: e* G9 |" e2 A# L: v, b0 @" g# f AcDbBlockTable *pBTable=NULL;) \; t6 z- D* I" Z, a" ~" y8 P- _- q
acdbCurDwg()->getBlockTable(pBTable,AcDb::kForWrite);
1 z# K6 m7 d k' s AcDbObjectId id1;
8 e4 o( u8 f6 B' X% C: R) B pBTable->add(id1,pBTableRec1);
2 E h! Z9 S% Z* }4 K' w% D* D( W pBTable->close();
! ]$ h' d- p! h! }9 [, D$ _ AcGePoint3dArray ptArr1;
9 b- P+ J$ _* x9 o/ n8 ?0 ? ptArr1.setLogicalLength(3);$ m- k5 E, k# o4 N6 a" I0 G+ W
ptArr1[0].set(-2,3,0);
. P. c2 o/ @( w0 { ptArr1[1].set( 0,0,0);0 I" s$ Y; u5 B; J4 u
ptArr1[2].set( 2,3,0);; d$ X5 Q) N) l2 w0 @' ^
AcDb2dPolyline *pPline1=new AcDb2dPolyline(AcDb::k2dSimplePoly,ptArr1,0.0,Adesk::kFalse);1 e/ [; X9 V+ r0 z2 G, }3 w
pBTableRec1->appendAcDbEntity(pPline1);
0 p* c I4 c& A9 _. g+ G pBTableRec1->close();# Y0 {/ J1 x8 U, A3 f
pPline1->close();
9 T8 P5 z7 C# M; T} |
|