机械必威体育网址

标题: 请教,怎样才能用autolisp在直线两端各加一个矩形? [打印本页]

作者: laotoule8    时间: 2024-2-7 18:01
标题: 请教,怎样才能用autolisp在直线两端各加一个矩形?
本人不会autolisp。请教,怎样才能用autolisp在直线两端各加一个矩形?比如在白色直线的两端各加一个1*5的矩形?& i& ]/ N. _( f8 B9 n
[attach]558335[/attach][attach]558336[/attach]
' {8 C+ r1 W+ W( s. b6 b. E1 W' A- z4 Y) W1 O! J4 d

作者: bianjun68    时间: 2024-2-8 00:13
你是直线先画出,再加矩形,还是画直线的同时,加上矩形,一次完成?
作者: bianjun68    时间: 2024-2-8 18:15
我用VBA实现。
作者: bianjun68    时间: 2024-2-8 18:17
[attach]558339[/attach]
作者: bianjun68    时间: 2024-2-8 18:18
Sub creatEndRect(): n: r7 u# H' F4 T9 X& ^
   
8 `* q- p, s1 q: k  g, \    Dim line2 As AcadLine
3 p4 E$ H# ^! B    ThisDrawing.Utility.GetEntity line2, basePnt, "Select an line:"
1 ]4 U  N2 d- s- Y) K. b$ k    / p1 S# L  e- |( M% L, j6 E5 W
    Dim p1# A0 g0 a, L4 A" @: L  l( ]/ c
    p1 = line2.startPoint
# @# [, z5 M0 {; b' ]) h    Dim p2
) e+ f+ u6 d3 v7 J8 g  c    p2 = line2.endPoint
5 f. r& t1 Y: Z8 U$ S, k: o   
) O$ P' ~5 a1 I) W7 Z    Dim angle2 As Double
& H2 E6 z+ H7 ]7 k4 G    angle2 = line2.angle3 x' m) O7 T3 |( n. B

( @: R. C3 @0 B6 k6 l; E( {  n, \    Dim pts1(0 To 7) As Double; O* Q6 c8 P- t0 w. J! c. |; t
    Dim pts2(0 To 7) As Double
+ L7 W! Y/ j0 w5 r4 |( G! n        e; w5 i1 j; T& j6 Q4 y
    pts1(0) = CDbl(p1(0)) + 0.5 * Sin(angle2): pts1(1) = CDbl(p1(1)) - 0.5 * Cos(angle2)* y  Y8 F) z! x* @  Y; U* j8 v
    pts1(2) = pts1(0) + 5 * Cos(angle2): pts1(3) = pts1(1) + 5 * Sin(angle2)5 Y8 _: d7 y- T8 G
    pts1(4) = pts1(2) - 1 * Sin(angle2): pts1(5) = pts1(3) + 1 * Cos(angle2)) g2 C# ~, k& Z# J6 I' R# D! P
    pts1(6) = pts1(4) - 5 * Cos(angle2): pts1(7) = pts1(5) - 5 * Sin(angle2)
1 d! m" s9 v; N2 C   
1 K2 x# V7 Z* S    pts2(0) = CDbl(p2(0)) + 0.5 * Sin(angle2): pts2(1) = CDbl(p2(1)) - 0.5 * Cos(angle2)$ I7 x% k5 r) F
    pts2(2) = pts2(0) - 5 * Cos(angle2): pts2(3) = pts2(1) - 5 * Sin(angle2)
! I/ \2 d9 M* K, n8 Z    pts2(4) = pts2(2) - 1 * Sin(angle2): pts2(5) = pts2(3) + 1 * Cos(angle2)% I" B6 C( K- \: R2 E5 b% e7 h
    pts2(6) = pts2(4) + 5 * Cos(angle2): pts2(7) = pts2(5) + 5 * Sin(angle2)/ U4 |# L! t, X6 Q6 [; U; T
    ! q1 b2 Q* O6 {  m. Z7 t2 v
    Dim pl0 As AcadLWPolyline
) p2 l* z2 y9 b& l- _/ a! m    Set pl0 = ThisDrawing.ModelSpace.AddLightWeightPolyline(pts1)# L5 @3 D( F2 F1 c4 B5 {
    Dim pl1 As AcadLWPolyline, R' b7 u3 I% G) }. }  I# a  p
    Set pl1 = ThisDrawing.ModelSpace.AddLightWeightPolyline(pts2)5 L- A0 a. M0 q# i

( w- J( P7 |2 q* }  q2 t    pl0.Closed = True
- B" x  d+ ^8 A* {6 H( c2 g    pl1.Closed = True1 s/ c9 [8 X* [3 U2 r* U
( [/ j( c$ t; l; \
End Sub
作者: bianjun68    时间: 2024-2-12 08:21
不客气!管用就好!




欢迎光临 机械必威体育网址 (//www.szfco.com/) Powered by Discuz! X3.4