久久久国产一区二区_国产精品av电影_日韩精品中文字幕一区二区三区_精品一区二区三区免费毛片爱

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
查看: 3244|回復: 7

請教,怎樣才能用autolisp在直線兩端各加一個矩形?

[復制鏈接]
1#
發表于 2024-2-7 18:01:20 | 只看該作者 |倒序瀏覽 |閱讀模式
本人不會autolisp。請教,怎樣才能用autolisp在直線兩端各加一個矩形?比如在白色直線的兩端各加一個1*5的矩形?$ t% A; @( e$ ?' Z  o1 t
! o, x9 h) O: ^- L) h# q
- m. A% J; ~% B. y1 D

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號?注冊會員

×
回復

使用道具 舉報

2#
發表于 2024-2-8 00:13:47 | 只看該作者
你是直線先畫出,再加矩形,還是畫直線的同時,加上矩形,一次完成?

點評

先手動畫出直線,然后運行程序提示選擇哪一條直線,鼠標手動點擊選擇直線,然后機器自己畫出矩形。  發表于 2024-2-8 11:13
3#
發表于 2024-2-8 18:15:14 | 只看該作者
我用VBA實現。
4#
發表于 2024-2-8 18:17:12 | 只看該作者

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號?注冊會員

×
5#
發表于 2024-2-8 18:18:18 | 只看該作者
Sub creatEndRect()
2 W; o3 B  ~5 F/ n" h2 r# u6 G7 y   
( ^! V9 M4 ]+ o9 P2 U6 u6 N    Dim line2 As AcadLine; J6 C) S" v  K& N/ H8 o
    ThisDrawing.Utility.GetEntity line2, basePnt, "Select an line:", ~2 @+ g" c# y
   
4 D0 f1 s' q, i* B  `9 i0 r    Dim p1/ E# o, f- M( V
    p1 = line2.startPoint. l1 E: [9 Q% E$ m9 Q9 N: r& c) l
    Dim p2* O  f  y2 }) g9 E& s) T
    p2 = line2.endPoint& T& U: o# Q( @. J; L5 W) m: r, S
    ! A4 b8 Q( M, ~* A$ J
    Dim angle2 As Double% v5 q( ^! o. l: a( U0 s
    angle2 = line2.angle
/ c$ S) \5 p: M: T6 N8 [' {3 m, X, L$ a; k( _
    Dim pts1(0 To 7) As Double
2 O0 i2 B+ J  g6 y; I# n    Dim pts2(0 To 7) As Double
  G# b1 }5 V- Y$ z      
' q* M, b" S/ H' T    pts1(0) = CDbl(p1(0)) + 0.5 * Sin(angle2): pts1(1) = CDbl(p1(1)) - 0.5 * Cos(angle2)6 ?( ?7 q7 _, j$ }* D
    pts1(2) = pts1(0) + 5 * Cos(angle2): pts1(3) = pts1(1) + 5 * Sin(angle2)$ B2 S3 m2 I# _' G+ o
    pts1(4) = pts1(2) - 1 * Sin(angle2): pts1(5) = pts1(3) + 1 * Cos(angle2)
+ b5 n% Y4 U/ d* z9 |7 I* n    pts1(6) = pts1(4) - 5 * Cos(angle2): pts1(7) = pts1(5) - 5 * Sin(angle2)
, k3 X: v2 h: L    . j; I8 U4 B/ S% A2 n
    pts2(0) = CDbl(p2(0)) + 0.5 * Sin(angle2): pts2(1) = CDbl(p2(1)) - 0.5 * Cos(angle2)
( c. ~' t7 T- A, f" {    pts2(2) = pts2(0) - 5 * Cos(angle2): pts2(3) = pts2(1) - 5 * Sin(angle2)
$ n9 y% C: u2 l. Q* d    pts2(4) = pts2(2) - 1 * Sin(angle2): pts2(5) = pts2(3) + 1 * Cos(angle2)
# n( @1 a2 @8 p# b+ r4 k0 b    pts2(6) = pts2(4) + 5 * Cos(angle2): pts2(7) = pts2(5) + 5 * Sin(angle2)' M# o2 U* q/ X% s
    - F3 u, U, K* D4 C' x; D: v
    Dim pl0 As AcadLWPolyline
/ {& W  a6 F) E, T; B  R    Set pl0 = ThisDrawing.ModelSpace.AddLightWeightPolyline(pts1)7 R, {! c$ e7 Z& t. v7 ?; D
    Dim pl1 As AcadLWPolyline" v( g; ]$ p- C8 P. i8 Z7 t
    Set pl1 = ThisDrawing.ModelSpace.AddLightWeightPolyline(pts2)
" U" K, K) i- D7 G
: W& f5 I! Y* J4 T$ c" q    pl0.Closed = True
6 O* E5 m" k9 P) r$ x5 M    pl1.Closed = True
, f: p9 Y3 _% ?1 h  _/ H5 X7 U9 V5 ^" b* p) W1 v. ?$ n
End Sub

點評

這個管用,謝謝你哦!  發表于 2024-2-11 19:48
6#
發表于 2024-2-12 08:21:21 | 只看該作者
不客氣!管用就好!
您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規則

Archiver|手機版|小黑屋|機械社區 ( 京ICP備10217105號-1,京ICP證050210號,浙公網安備33038202004372號 )

GMT+8, 2025-7-6 23:21 , Processed in 0.072985 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表