|
发表于 2024-2-8 18:18:18
|
显示全部楼层
Sub creatEndRect()
! N/ E7 o+ }& i0 l" e/ t* g- G; ?
) f6 V- [& Y; \0 G Dim line2 As AcadLine
- A; A5 Z2 H4 K/ G) C/ H8 n8 l9 q ThisDrawing.Utility.GetEntity line2, basePnt, "Select an line:") |, s: J( ^, N+ E+ G* ?
# E, E8 h# T/ l! ~ Dim p1, V% g. }- V3 |
p1 = line2.startPoint
; `# D- \9 d: q Dim p2
& K4 y& O/ k& ]- _1 l: V p2 = line2.endPoint7 m3 S- d9 G1 g0 r3 n: i2 s
- p- ]+ I5 U& z+ E( D2 f1 d, f0 i
Dim angle2 As Double
5 i- y J8 _+ R- o$ | angle2 = line2.angle/ @- V: v5 e. r5 Q: p
& `2 C8 W0 m) L j' @
Dim pts1(0 To 7) As Double/ @; N5 _# K" T1 I3 M7 h$ C7 ^: M
Dim pts2(0 To 7) As Double
9 ^- {4 S/ z2 `! H4 H6 g" Z) _2 S
: H2 J8 `0 c+ j$ R& f4 D8 L pts1(0) = CDbl(p1(0)) + 0.5 * Sin(angle2): pts1(1) = CDbl(p1(1)) - 0.5 * Cos(angle2)$ M5 A1 J2 u E/ ]1 Q: B2 P0 I
pts1(2) = pts1(0) + 5 * Cos(angle2): pts1(3) = pts1(1) + 5 * Sin(angle2)
$ Z/ W% M: `) s& [2 @1 n% v2 B pts1(4) = pts1(2) - 1 * Sin(angle2): pts1(5) = pts1(3) + 1 * Cos(angle2)
+ ], c h- ^ ?6 [& k pts1(6) = pts1(4) - 5 * Cos(angle2): pts1(7) = pts1(5) - 5 * Sin(angle2)
, p$ l) g3 k9 L8 |2 L Y, t& c
9 H5 l1 i) @9 r% b pts2(0) = CDbl(p2(0)) + 0.5 * Sin(angle2): pts2(1) = CDbl(p2(1)) - 0.5 * Cos(angle2)! W7 z; P6 c I$ |9 y
pts2(2) = pts2(0) - 5 * Cos(angle2): pts2(3) = pts2(1) - 5 * Sin(angle2)' Z% s# i& j: a+ K/ u/ s5 V
pts2(4) = pts2(2) - 1 * Sin(angle2): pts2(5) = pts2(3) + 1 * Cos(angle2)5 k/ R% d" t2 ] f
pts2(6) = pts2(4) + 5 * Cos(angle2): pts2(7) = pts2(5) + 5 * Sin(angle2)
5 R9 D/ V/ [ Z7 H @# K
4 L4 b' G6 l( |" p4 T4 ] Dim pl0 As AcadLWPolyline
1 t; ]& h' M2 Z n Set pl0 = ThisDrawing.ModelSpace.AddLightWeightPolyline(pts1)
! ~# P3 x$ t1 S+ `0 g3 s6 w Dim pl1 As AcadLWPolyline( I0 k' R( {9 i! B
Set pl1 = ThisDrawing.ModelSpace.AddLightWeightPolyline(pts2), F/ g4 ^1 s; p. T
# y/ {' }0 _6 [
pl0.Closed = True
1 d/ H1 |: t. \7 y9 F( L pl1.Closed = True
- x% `, X! X2 K! z3 _
/ v1 q$ \9 o& o& s5 MEnd Sub |
|