|
发表于 2024-2-8 18:18:18
|
显示全部楼层
Sub creatEndRect()
$ U8 K |' n% Z7 | 8 q0 v9 T1 o2 L
Dim line2 As AcadLine" E5 }2 b p3 @/ |4 z- a e
ThisDrawing.Utility.GetEntity line2, basePnt, "Select an line:"
4 H6 c/ b; V. g/ t$ u5 \+ G , @# N/ O/ k! P
Dim p1$ D$ d t" t3 C2 T
p1 = line2.startPoint; ~% D7 o9 F2 j7 s: h" K
Dim p2
8 c4 l5 p: U4 L% @6 R; | Y; _ p2 = line2.endPoint! s) B6 Q' e8 p4 l$ K0 q5 h
. R1 u, ]5 \, Y& Q, p# Y8 l# a
Dim angle2 As Double
' u+ Z+ C/ h! |2 B angle2 = line2.angle8 h' i$ M5 Z% K! f
* H3 q+ c+ r5 N& F8 m. T
Dim pts1(0 To 7) As Double
& e' @# ^/ e1 M2 g- A Dim pts2(0 To 7) As Double5 {: c* Y' ^; A# |& H+ ?
) x/ N# C. Y9 ~# Z6 Y
pts1(0) = CDbl(p1(0)) + 0.5 * Sin(angle2): pts1(1) = CDbl(p1(1)) - 0.5 * Cos(angle2)5 E c* {" p5 e9 x4 _) A
pts1(2) = pts1(0) + 5 * Cos(angle2): pts1(3) = pts1(1) + 5 * Sin(angle2)* r0 z2 s0 `$ @% `3 K
pts1(4) = pts1(2) - 1 * Sin(angle2): pts1(5) = pts1(3) + 1 * Cos(angle2)3 d7 G) x) X4 E& Y
pts1(6) = pts1(4) - 5 * Cos(angle2): pts1(7) = pts1(5) - 5 * Sin(angle2)% U9 @" s6 Y) g" Y5 c) C0 ?; K3 r
7 a; y h$ M1 t
pts2(0) = CDbl(p2(0)) + 0.5 * Sin(angle2): pts2(1) = CDbl(p2(1)) - 0.5 * Cos(angle2)
/ ?) g; @5 B9 |5 b pts2(2) = pts2(0) - 5 * Cos(angle2): pts2(3) = pts2(1) - 5 * Sin(angle2)
3 O1 |# H1 [6 C: R n1 a+ v3 l6 u pts2(4) = pts2(2) - 1 * Sin(angle2): pts2(5) = pts2(3) + 1 * Cos(angle2), m& T( _/ s7 K
pts2(6) = pts2(4) + 5 * Cos(angle2): pts2(7) = pts2(5) + 5 * Sin(angle2)
0 ~$ z! K. `$ O ' a% z( ~7 w# N& b5 @' Q
Dim pl0 As AcadLWPolyline. a `& H0 t8 p3 c4 M( x; v+ Y& h
Set pl0 = ThisDrawing.ModelSpace.AddLightWeightPolyline(pts1) a3 |0 u% {) o2 s
Dim pl1 As AcadLWPolyline* N. u! X7 S. }& @
Set pl1 = ThisDrawing.ModelSpace.AddLightWeightPolyline(pts2)- q, r% Q% O( B- X* \
+ v: y* N4 D. p- x( G. K7 F+ | pl0.Closed = True/ m1 o+ C" G0 P' M
pl1.Closed = True& g d, w( s- r
# n# I% q+ g$ `; e( P; k
End Sub |
|