AutoCAD下繪制直線對稱中心線的方法
:-Gf GL>] \_H-TbU8 AutoCAD是目前國內應用最廣范的CAD系統(tǒng)之一,AutoCAD 功能強大,是一個通用的CAD平臺,但是如果不根據本專業(yè)的需要進行二次開發(fā),使用起來是很不方便的。畫對稱中心線是機械設計中經常遇到的一個問題。
'3B\I# 筆者用AutoLISP依據國家標準開發(fā)了兩個程序,可以很方便地解決直線對稱中心線的問題。
{R`,iWV 第一個程序適用于兩條邊是連續(xù)直線的情況。使用方法是:用LOAD命令裝入GLS.LSP,運行C:GSL,依據屏幕提示,分別選擇兩邊,自動繪制出中心線。
%Pl
7FHfB GSL.LSP:
!Db0r/_:G (defun mid(pt1 pt2 ) 計算兩點之中點的功能函數
Q<TD5t9 (setq pt (mapcar'+pt1 pt2 ))
Iud]*5W (setq pt (mapcar'/pt'(2 2 2)))
s06tCwPp
)
p8yn? ~]^ (defun c:gsl/m cl1 cl cl2 e pt pt1 pt2 pt3 pt4 a) (SETQ M 1)
Jptzc:~B (WHILE M
SkGh@\ (SETQ CL1 (ENTSEL"\n選擇第一條直線 "))
zGm#erE (cond
8#NI`s* ((not cl1 ) (prompt"\n 沒有發(fā)現實體"))
M]\p9p(_ ((/="LINE"(cdr (assoc 0 (setqe(entget (car cl1))))))
}B-@lbK6) (prompt"\n 所選不是直線")
al{;]>W )
-N'xQ(#n3q (t (prompt"找到了第一條直線”)
irqNnnMGEa (setq m nil);退出循環(huán)
z^tws*u],5 )
-68E]O )
-c%K_2` )
3Thb0\<" (setq cl (ssget (nth 0 (cdr cl1))));取得第一條直線的實體數據
q]1HCWde (SETQ M 1)
^F5Q(A (WHILE M
f-Yp`lnn.d (SETQ CL2 (ENTSEL"\n選擇第二條直線"))
+4[L_ (if cl2
%by8i1HR (if (ssmemb (car cl2) cl )
iw`,\V& (progn
P=Au~2X (princ"\n選擇重復,重新選擇")
ZS\jbii8 (setq cl2 nil)
bnll-G| )
&C_0JyT )
([Gb]0 )
[^iQE (cond
1e Wl:S} ((not cl2 ) (prompt"沒有發(fā)現實體或重復"))
9XU"Ppv ((/="LINE"(cdr (assoc 0 (setq e (entget (car cl2))))))
z(-j%? (prompt"\n 所選不是直線")
xG802?2i/; )
1M%'Xe7 (t (prompt"\n兩條直線已經選擇完畢")
SONv])); (setq m nil);;;退出循環(huán)
@-uV6X8| )
}3G`f> s )
HM'P<< )
6EHYIN^D ;;;取得第一直線兩端點的坐標
W(5et5DN, (setq pt1 (cdr (assoc 10 e )) pt2 (cdr (assoc 11 e )))
V$D+Joj (setq e (entget (car cl1)));;取得第二條直線的實體數據
j3<|X ;;;取得第二直線兩端點的坐標
$d<vPpJ3 (setq pt3 (cdr (assoc 10 e )) pt4 (cdr (assoc 11 e )))
0+a-l[!p ;;調整端點
ba=-F4? (if (inters pt1 pt3 pt2 pt4 t)
v'