Re: 作中垂線的 AutoCAD AutoLISP 程式

看板Cad_Cae (電腦輔助設計)作者 (sjgau)時間18年前 (2007/01/10 17:29), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
這是 行數 比較少的版本 ; mid-per2.LSP (defun dtor(d1 / ) (* (/ d1 180.0) pi) ); end of defun ; ----------------------------------------------- (defun c:mid-per2( / ) (setq ent1 (entsel "\n pick the line: ")) (setq p1 (cadr ent1)) (setq pm (osnap p1 "mid")) (setq p2 (osnap p1 "end")) (setq t1 (angle pm p2)) (setq s1 (distance pm p2)) (setq t2 (+ t1 (dtor 90.0))) (setq t3 (- t1 (dtor 90.0))) (setq p3 (polar pm t2 s1)) (setq p4 (polar pm t3 s1)) (command "LINE" p3 p4 "") (princ) ); end of defun ; end of file ※ 引述《sjgau (sjgau)》之銘言: : 以下,一共 40行。 : 其實,簡單的話,10行就可以解決了。 : 為了教學起見,採用 中規中矩的模式, : 讓大家一看 就懂 : ; fle: mid-per.LSP : (defun mid-pt(p1 p2 / ) : (list (/ (+ (car p1) (car p2)) 2.0) : (/ (+ (cadr p1) (cadr p2)) 2.0)) : ); end defun : ; ----------------------------------------------- : (defun dtor(d1 / ) : (* (/ d1 180.0) pi) : ); end defun : ; ----------------------------------------------- : (defun c:mid-per( / ss1 entn1 ent1 p1 p2 p3 p4 pm t1 t3 t4 s1) : (princ "\n pick the Line: ") : (setq ss1 (ssget)) : (setq entn1 (ssname ss1 0)) : (setq ent1 (entget entn1)) : (setq p1 (cdr (assoc '10 ent1))) : (setq p2 (cdr (assoc '11 ent1))) : (setq pm (mid-pt p1 p2)) : (setq t1 (angle pm p2)) : (setq s1 (distance pm p1)) : (setq t3 (+ t1 (dtor 90.0))) : (setq t4 (- t1 (dtor 90.0))) : (setq p3 (polar pm t3 s1)) : (setq p4 (polar pm t4 s1)) : (command "LINE" p3 p4 "") : (princ) : ); end defun : (princ) : ; end of file -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.34.222.10
文章代碼(AID): #15fB8Jq7 (Cad_Cae)
文章代碼(AID): #15fB8Jq7 (Cad_Cae)