|
发表于 2024-2-8 18:18:18
|
显示全部楼层
Sub creatEndRect()
5 S4 M# r: n" ?& m% v
! ?- G3 L& q8 n: `3 @( I, S- _8 h- C Dim line2 As AcadLine5 s Z+ b% ~6 ?9 I
ThisDrawing.Utility.GetEntity line2, basePnt, "Select an line:"6 A( D: P/ Y9 s$ u; b
, Z0 X) A+ \* ^
Dim p1
: O: j2 s; k6 \% o n( ~ p1 = line2.startPoint, t( ]0 v0 I( z2 c- F8 G: ]! p# K
Dim p29 }7 z% C; J$ E( P4 Z
p2 = line2.endPoint
" x. L3 [# ^; A: @
C4 [, e3 R$ h B# z Dim angle2 As Double
0 N/ @/ Y, c1 G: d3 f angle2 = line2.angle! k7 v. t+ H! |7 m: ~ z! u3 \
; P4 V; {) r2 w, }4 W% J
Dim pts1(0 To 7) As Double+ Z2 S# q. N& t5 V1 ?
Dim pts2(0 To 7) As Double
4 G3 z! C; H' k# v' S& U 9 K2 G9 `* q! }3 Z
pts1(0) = CDbl(p1(0)) + 0.5 * Sin(angle2): pts1(1) = CDbl(p1(1)) - 0.5 * Cos(angle2)
5 i- [2 n6 T+ o R- e { pts1(2) = pts1(0) + 5 * Cos(angle2): pts1(3) = pts1(1) + 5 * Sin(angle2); l4 }+ g6 O) \) k: k, v3 \
pts1(4) = pts1(2) - 1 * Sin(angle2): pts1(5) = pts1(3) + 1 * Cos(angle2)7 Q% P# ~# e9 K: H9 t
pts1(6) = pts1(4) - 5 * Cos(angle2): pts1(7) = pts1(5) - 5 * Sin(angle2)
7 j- r4 ]; h$ k ! @2 v& B2 r& h5 D. t6 d5 I- Z
pts2(0) = CDbl(p2(0)) + 0.5 * Sin(angle2): pts2(1) = CDbl(p2(1)) - 0.5 * Cos(angle2)+ X3 c0 g- x0 d6 P& O. Q5 }% W
pts2(2) = pts2(0) - 5 * Cos(angle2): pts2(3) = pts2(1) - 5 * Sin(angle2): O: O' [1 @' P( E
pts2(4) = pts2(2) - 1 * Sin(angle2): pts2(5) = pts2(3) + 1 * Cos(angle2)4 x# |) J p! |, ~5 y0 F; S
pts2(6) = pts2(4) + 5 * Cos(angle2): pts2(7) = pts2(5) + 5 * Sin(angle2)
# r5 Q4 b& f, |( K. k, s
: Q& S! K; N- b( A2 a- e Dim pl0 As AcadLWPolyline
D M, h/ Q4 h6 O0 x% c2 {5 _ Set pl0 = ThisDrawing.ModelSpace.AddLightWeightPolyline(pts1)
) @* s Z+ S0 ~. p) } Dim pl1 As AcadLWPolyline' |/ B8 l$ T$ k7 k7 `- _) z
Set pl1 = ThisDrawing.ModelSpace.AddLightWeightPolyline(pts2)! A. b1 H6 I5 R5 Z1 f
' I9 s8 [- A% c1 Y
pl0.Closed = True# C# ~( ]- f$ ]9 k0 E, X2 o6 _( D- M
pl1.Closed = True) D3 w) m! m4 M5 T! D
; g: r( i' }: v! {- x4 N3 |End Sub |
|