|
发表于 2024-2-8 18:18:18
|
显示全部楼层
Sub creatEndRect()6 i+ r9 M+ i* r F9 v$ t
0 U3 v0 Q1 v2 I Dim line2 As AcadLine% I) M. w5 p( q. F
ThisDrawing.Utility.GetEntity line2, basePnt, "Select an line:"; V6 a+ G$ F3 I4 m5 I
) i2 C5 { G0 A9 t0 w5 u% K Dim p1
& \6 u' |8 T7 j' Z0 C p1 = line2.startPoint
3 i' D; z) x- Z3 D Dim p2
, @: x3 D( B) M$ ?3 ^4 E: d b p2 = line2.endPoint
( y v% P8 z4 b, [. L# @ : f0 _- j7 @+ D% m6 L
Dim angle2 As Double
& B8 G' Y! g8 g0 V angle2 = line2.angle
% h# T/ R/ _# Z- B5 F* _# d$ s% I3 i2 Q
Dim pts1(0 To 7) As Double
) L: v6 R; i! d Dim pts2(0 To 7) As Double* n+ l* |, z; r* g
. @& X. u3 k' J" f" @* }8 M) P
pts1(0) = CDbl(p1(0)) + 0.5 * Sin(angle2): pts1(1) = CDbl(p1(1)) - 0.5 * Cos(angle2)6 ?- B% E9 E# A) S8 Y3 D6 V
pts1(2) = pts1(0) + 5 * Cos(angle2): pts1(3) = pts1(1) + 5 * Sin(angle2)
7 J3 l& Y5 c0 [% n+ d pts1(4) = pts1(2) - 1 * Sin(angle2): pts1(5) = pts1(3) + 1 * Cos(angle2)
+ }1 X* [, x6 c& Q9 {. u; L pts1(6) = pts1(4) - 5 * Cos(angle2): pts1(7) = pts1(5) - 5 * Sin(angle2)7 f% m% C0 k+ g, U0 A) V
" K( G: m6 a( a4 D4 B% R4 r8 \7 r A
pts2(0) = CDbl(p2(0)) + 0.5 * Sin(angle2): pts2(1) = CDbl(p2(1)) - 0.5 * Cos(angle2)& ], w8 }' O% e2 T
pts2(2) = pts2(0) - 5 * Cos(angle2): pts2(3) = pts2(1) - 5 * Sin(angle2)
( \0 P( t H+ F& x& l* X* M pts2(4) = pts2(2) - 1 * Sin(angle2): pts2(5) = pts2(3) + 1 * Cos(angle2)
. [: m& I3 }* W2 ` pts2(6) = pts2(4) + 5 * Cos(angle2): pts2(7) = pts2(5) + 5 * Sin(angle2): M$ @8 m# @+ \/ \5 }, g K
, L+ |; ]" ?- N$ X3 E
Dim pl0 As AcadLWPolyline1 t( V% G! K8 Y
Set pl0 = ThisDrawing.ModelSpace.AddLightWeightPolyline(pts1)- w8 g: _# ?4 e/ |
Dim pl1 As AcadLWPolyline
$ ^+ y; p9 n: d& @% J, B9 y Set pl1 = ThisDrawing.ModelSpace.AddLightWeightPolyline(pts2)
( W& @2 h! I: U# o
5 C) {" p6 T3 q, q# B pl0.Closed = True
; C% I0 L: ?; a) b+ x0 j pl1.Closed = True
% @+ A, _$ T$ O, h6 J. y7 Y9 w
3 H4 }1 f/ `, c4 t3 i$ [- UEnd Sub |
|