作者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)》之铭言:
: 以下,一共 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