
- (defun C:TT (/ enline old_cmdEcho old_osmode en PT ret Next_PT typ)
- (vl-load-com)
- (setq old_cmdEcho (getvar "CMDECHO")
- old_osmode (getvar "OSMODE"))
- (setq en (car (entsel "\n选线: ")))
- (setvar "CMDECHO" 0)
- (setvar "OSMODE" 0)
- (setq PT (cadr (grread 1 1)))
- (while PT
- (setq ret (grread 1 1))
- (setq Next_PT (cadr ret)
- typ (car ret))
- (cond ((= typ 5)
- (if (not (equal Next_PT PT 0.00000001))
- (progn
- (redraw)
- (updline Next_PT en enline)
- ))
- (setq PT Next_PT))
- ((= typ 3)
- (if (not (equal Next_PT PT 0.00000001))
- (updline Next_PT en enline)
- )
- (setq PT nil))
- (T (setq PT Next_PT))))
- (redraw)
- (setvar "CMDECHO" old_cmdEcho)
- (setvar "OSMODE" old_osmode)
- (princ)
- )
- ;;-------------------------------------------------
- (defun updline (pt enc enl / pt1 el)
- (setq pt1 (vlax-curve-getClosestPointTo enc pt))
- (DrawMark pt1)
- (if (not (boundp 'enl))
- (if (vl-cmdf "_.line" pt pt1 "")
- (setq enline (entlast)))
- (if (not (equal pt1 pt 0.00000001))
- (progn
- (setq el (entget enl))
- (setq el (subst (cons 10 pt) (assoc 10 el) el))
- (setq el (subst (cons 11 pt1) (assoc 11 el) el))
- (entmod el)
- )
- )
- )
- )
- ;;--------------------------------------------------
- (defun DrawMark (p / marksize)
- (setq marksize (/ (getvar "viewsize") 25))
- (grdraw (polar p pi (* marksize 0.5))
- (polar p 0 (* marksize 0.5))
- 2)
- (grdraw (polar p (* pi 0.5) (* marksize 0.5))
- (polar p (* pi 1.5) (* marksize 0.5))
- 2)
- )
|