|

楼主 |
发表于 2008-10-28 14:13:34
|
显示全部楼层
来自: 中国山东烟台
本人找到了一个这样的例子,但改写成函数却行不通,到底问题出在什么地方呢! N" B* @, i$ m& ]9 r
产生“V”字型的样例:
- {+ B) Z6 V' o, d' Nvoid defineBlock()% B! r' e! `# z3 V$ L
{
6 p% J' X. b5 X3 `" F8 L, W AcDbBlockTableRecord *pBTableRec1=new AcDbBlockTableRecord();4 ]0 ~1 ?3 z1 ^, W0 ]) d7 o
pBTableRec1->setName("VSBlock"); q7 k3 K' G+ S* N
AcDbBlockTable *pBTable=NULL;# L3 }" ?8 i: `8 {. f0 I- \
acdbCurDwg()->getBlockTable(pBTable,AcDb::kForWrite);1 P; T7 [& i, c( O3 D2 q2 ^
AcDbObjectId id1;
( I) z0 b, c3 x7 Z9 j% i" l2 K pBTable->add(id1,pBTableRec1);
8 |* v1 i/ t, p pBTable->close();9 ]. `0 U/ B( t% ?( Q3 i* ^
AcGePoint3dArray ptArr1;
- {; s9 `: K0 \% {: F7 N) J | ptArr1.setLogicalLength(3);; m, t( W/ D C r6 s- [0 e9 K: q
ptArr1[0].set(-2,3,0);0 h- z$ ?; t4 m( T3 I
ptArr1[1].set( 0,0,0);
& M* _- a7 b, J5 z/ w, N ptArr1[2].set( 2,3,0);
& c$ u. x. F; P6 b f3 q AcDb2dPolyline *pPline1=new AcDb2dPolyline(AcDb::k2dSimplePoly,ptArr1,0.0,Adesk::kFalse);5 x1 r0 [" O7 M+ b7 O/ g+ W8 }. L+ L
pBTableRec1->appendAcDbEntity(pPline1);, `. R+ X( E$ X% e; _( c
pBTableRec1->close();
+ V% {9 o9 X5 V" {2 V. @ pPline1->close();4 i, c, l. B8 X( k1 L+ z3 p
} |
|