|
|

楼主 |
发表于 2010-9-25 14:20
|
显示全部楼层
其中的核心代码如下:
* `) T% ~, i' C1 M" U, M% H8 BFor Each returnobj In doc.ModelSpace G; l9 y% x; _4 g" l6 Q
If returnobj.ObjectName = "AcDb2dPolyline" Then
: b5 T, a( b, L {1 s6 q# Q If Round(returnobj.Area, 4) >= 62370 Then
n z9 i, t1 C0 V; S returnobj.GetBoundingBox minext, maxext1 G3 k0 p' v' h( d+ {+ J& ?
# W& w4 Z' ?9 }* i {6 s: {
point1(0) = minext(0): point1(1) = minext(1); B$ l" j- @/ G, x; A
point2(0) = maxext(0): point2(1) = maxext(1)# H7 Q* n+ g, ?" q, o) z. R8 T: D% Y0 w
doc.ActiveLayout.CenterPlot = True '中心打印/ L; p4 k: j7 P2 ]1 C0 B
doc.ActiveLayout.StandardScale = acScaleToFit '合适比例: }" p9 e s: M7 K& T- a
doc.ActiveLayout.SetWindowToPlot point1, point2$ R* M3 E1 ]: t( W! @+ C
doc.ActiveLayout.PlotRotation = ac0degrees '旋转90度
4 k; E, J* N4 r) [9 j! Kdoc.ActiveLayout.PlotType = acWindow
; m7 W; K9 q. M5 C- {doc.Plot.PlotToDevice "D:\plot\pdfFactory Pro.pc3" '打印机pc3文件,或者打印机名称,我这里用到的事PDFfactory pro
) N7 S4 Q% e& V& X8 M, G/ K" uEnd If
( f, N8 \- S/ v5 v" k4 HEnd If% ?3 p* C7 V m; o* t, K
Next) T( g6 I5 t: O% W9 G$ u
上面的代码是搜索面积大于一定值的2dPolyline,并以他的最大点和最小点作为Window打印模式的边界点 doc是autcad.activedocument |
|