|

楼主 |
发表于 2008-10-28 14:13:34
|
显示全部楼层
来自: 中国山东烟台
本人找到了一个这样的例子,但改写成函数却行不通,到底问题出在什么地方呢- l3 L* N J0 l7 I6 c
产生“V”字型的样例:
# d' `! w; t5 E* E+ [. Ivoid defineBlock()4 ^* a* `% F: M; Q# N$ R Z# S8 }" Y1 l y
{# q6 |8 G Y/ T3 A4 p+ O( y
AcDbBlockTableRecord *pBTableRec1=new AcDbBlockTableRecord();
' S0 ?9 z6 e- L$ u pBTableRec1->setName("VSBlock");
+ B7 E3 ?+ ~. U AcDbBlockTable *pBTable=NULL;& M1 ?+ r+ A( M' F
acdbCurDwg()->getBlockTable(pBTable,AcDb::kForWrite);; r8 T3 w- m; U/ K5 B+ U
AcDbObjectId id1;# B) z: z* A+ s/ G& z
pBTable->add(id1,pBTableRec1);2 s8 N# b; M5 E" W, R, U
pBTable->close();
1 y# [. ]) W7 h1 Z4 ~ AcGePoint3dArray ptArr1;/ K( j- T- B6 J5 A7 Y
ptArr1.setLogicalLength(3);& y# B0 \) c" x! ^$ {) S0 e6 {6 r
ptArr1[0].set(-2,3,0);% S" F- w8 K5 _3 u$ G9 W
ptArr1[1].set( 0,0,0);
- f' K. i; z* D3 L ptArr1[2].set( 2,3,0);* D. X! |! f3 t0 w* @. s
AcDb2dPolyline *pPline1=new AcDb2dPolyline(AcDb::k2dSimplePoly,ptArr1,0.0,Adesk::kFalse);
* M+ O0 a4 X* r; a& y pBTableRec1->appendAcDbEntity(pPline1);
2 u ]# f( w3 B' }+ k# ? pBTableRec1->close();
! i' t `3 [3 T/ Y pPline1->close();7 b' G( }( {( R) K N) b3 {2 _
} |
|