|
发表于 2024-2-8 18:18:18
|
显示全部楼层
Sub creatEndRect()' o% I4 ?4 B8 x" M. P4 e( b
8 f( p" `. C. w8 _$ B
Dim line2 As AcadLine
. }, u( f2 e$ y6 F2 h& Q! n ThisDrawing.Utility.GetEntity line2, basePnt, "Select an line:"
; @' g& l1 n; N4 M/ i. A8 b . q7 U+ v4 W4 {* X0 E% l, n
Dim p1
A5 j) O$ G* @. S: E1 C p1 = line2.startPoint S' L0 ^& h+ J' A) |! j+ ]
Dim p2 R) n* H- e$ G5 ?
p2 = line2.endPoint+ B& ^. y$ M' M+ t5 U5 T2 y
% A1 W7 n& D. U0 r4 l! J Dim angle2 As Double8 P3 l5 D9 Q: ~! h) j$ s
angle2 = line2.angle' Q3 c' ?/ C/ U8 C% U
( N/ [ [, G- k/ X( N) N1 s Dim pts1(0 To 7) As Double
& p0 w3 j3 I8 D* J! E7 _% m# { Dim pts2(0 To 7) As Double9 [* m% b( p& n0 x; Y+ m
$ y4 c# |2 {! l
pts1(0) = CDbl(p1(0)) + 0.5 * Sin(angle2): pts1(1) = CDbl(p1(1)) - 0.5 * Cos(angle2): L+ n v: m# s1 |
pts1(2) = pts1(0) + 5 * Cos(angle2): pts1(3) = pts1(1) + 5 * Sin(angle2)
" W8 ]* E! ]& N" C pts1(4) = pts1(2) - 1 * Sin(angle2): pts1(5) = pts1(3) + 1 * Cos(angle2)0 T. e }( m3 n4 C6 V
pts1(6) = pts1(4) - 5 * Cos(angle2): pts1(7) = pts1(5) - 5 * Sin(angle2)
. X, y) ^/ h! j+ r* _ 8 o$ h. Y z6 J! b3 R) p/ c
pts2(0) = CDbl(p2(0)) + 0.5 * Sin(angle2): pts2(1) = CDbl(p2(1)) - 0.5 * Cos(angle2)
" H) [ W! Y( @ pts2(2) = pts2(0) - 5 * Cos(angle2): pts2(3) = pts2(1) - 5 * Sin(angle2)
3 ?) {: B6 J+ i$ e+ M pts2(4) = pts2(2) - 1 * Sin(angle2): pts2(5) = pts2(3) + 1 * Cos(angle2)
6 U( A. j- P( L! m/ s( ?, ] pts2(6) = pts2(4) + 5 * Cos(angle2): pts2(7) = pts2(5) + 5 * Sin(angle2)+ c+ @! m- G( ~, `1 E" T8 F
, b" t( K" [( A) `6 T, } Dim pl0 As AcadLWPolyline& E3 O' A( F T& B; U" e" I
Set pl0 = ThisDrawing.ModelSpace.AddLightWeightPolyline(pts1)! h6 @: P8 U% k5 ~
Dim pl1 As AcadLWPolyline* C6 ?/ s: D; z Y) H
Set pl1 = ThisDrawing.ModelSpace.AddLightWeightPolyline(pts2)
# Z: z5 ?! `& u |
; C+ J& [( q2 @& R' o( ~0 H+ X pl0.Closed = True) _ j9 S2 ^( }/ ^8 n
pl1.Closed = True
" s( }/ I! i( i/ |5 c$ E& k& L$ F& D' X+ g
End Sub |
|