精華區beta Cad_Cae 關於我們 聯絡資訊
以下,一共 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: 220.228.165.65 > -------------------------------------------------------------------------- < 作者: sjgau (sjgau) 看板: Cad_Cae 標題: Re: 作中垂線的 AutoCAD AutoLISP 程式 時間: Wed Jan 10 17:29:54 2007 這是 行數 比較少的版本 ; 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) 看板: Cad_Cae 標題: Re: 作中垂線的 AutoCAD AutoLISP 程式 時間: Thu Jan 11 11:41:23 2007 這是 行數最短的 版本 不到 十行吧 ; file: mid-per4.LSP (defun c:mid-per4( / ) (setq en1 (entsel "\n Select Line: ")) (setq ent1 (car en1)) (setq p1 (cadr en1)) (command "-array" ent1 "" "p" (osnap p1 "mid") 2 90 "") (princ) ); end defun ; end of file > -------------------------------------------------------------------------- <