判断太复杂,换个思路 - (defun c:ts11()
- (setvar "cmdecho" 1)
- (princ "\n选择相交直线")
- (if (and (setq ss (ssget '((0 . "LINE")))) (= (sslength ss) 2)) (progn
- (setq ent1 (entget(ssname ss 0))
- a (cdr (assoc 10 ent1))
- b (cdr (assoc 11 ent1))
- ent2 (entget (ssname ss 1))
- c (cdr (assoc 10 ent2))
- d (cdr (assoc 11 ent2))
- wzb (inters a b c d nil)
- uzb (trans wzb 0 1))
- (setq ang1 (if (< (distance a wzb) (distance b wzb)) (angle a b) (angle b a)))
- (setq ang2 (if (< (distance c wzb) (distance d wzb)) (angle c d) (angle d c)))
- (setq pt (polar(polar uzb ang1 2) ang2 2))
- (entmake (list '(0 . "CIRCLE") (cons 10 pt) '(40 . 0.444)))
- (command "ucs" "O" uzb )
- ))
- (princ)
- )
|