不确定这是不是你想要的,好好锻炼,但这一点也不差
- (defun c:angline (/ scale lne selpt pt1 pt2 dist1 dist2 bp bp2 rad)
- (setq scale (getvar "cannoscalevalue"))
- (setq lne (entsel "\nSelect line: "))
- (setq selpt (cadr lne))
- (setq pt1 (cdr (assoc 10 (entget (car lne)))))
- (setq pt2 (cdr (assoc 11 (entget (car lne)))))
- (setq dist1 (/ (distance pt1 pt2) 2))
- (setq dist2 (distance pt1 selpt))
- (if (< dist1 dist2)
- (progn
- (setq rad (angle pt1 pt2))
- (setq bp (polar pt2 rad (* 1 (/ 1 scale))))
- (setq bp2 (polar bp rad 1))
- (command "_.line" bp bp2 "")
- (command "_.lengthen" "dy" bp2 pause)
- )
- (progn
- (setq rad (angle pt2 pt1))
- (setq bp (polar pt1 rad (* 1 (/ 1 scale))))
- (setq bp2 (polar bp rad 1))
- (command "_.line" bp bp2 "")
- (command "_.lengthen" "dy" bp2 pause "" "")
- )
- )
- (princ)
- )
这可能就是你们许多人所说的“笨拙”代码,作为一名学习者,我很想了解这段代码,以及如何改进它 |