最初由 cqxt00 发布
[B](defun c:int()
(setq s1(entsel"请选择第一条直线:"))
(setq s2(cadr s1))
(setq s1(entsel"请选择第二条直线:"))
(setq s3(cadr s1))
(setq s4(osnap s2 "endp"))
(setq s5(osnap s2 "midp"))
... [/B]
楼主的思路的确很特别,不过学Lisp还是要学习用下面的方法。
- (defun c:int (/ ln1 ln2 l1sp l1ep l2sp l2ep intpt lname oldos)
- (if (and (setq ln1 (entsel "请选择第一条直线:"))
- (setq ln2 (entsel "请选择第二条直线:"))
- )
- (progn
- (setq l1sp (cdr (assoc 10 (setq el1 (entget (car ln1)))));Line1 startpoint
- l1ep (cdr (assoc 11 el1));line1 endpoint
- l2sp (cdr (assoc 10 (setq el2 (entget (car ln2)))));line2 startpoint
- l2ep (cdr (assoc 11 el2));line2 endpoint
- )
- (setq intpt (inters l1sp l1ep l2sp l2ep nil));inters point
- (setq lname (getvar "clayer");crruct layer
- oldos (getvar "osmode");crruct osnap
- )
- (command "layer" "m" "_aid" "c" "4" "" "")
- (setvar "osmode" 0)
- (command "insert" "int" intpt "" "" "")
- (setvar "clayer" lname);restore layer
- (setvar "osmode" oldos);restore osnap
- )
- )
- (princ)
- )
|