xiao88gang 发表于 2017-11-24 19:20:37

为什么没有对象捕捉

请问一下,这个插件为什么没有对象捕捉呢,要怎么改才能捕捉到中点和端点呢,帮忙看一下
(defun c:tt (/ myerr olderr d ss e pt pam p1 p2 vec an wid)
(defun myerr (msg)
    (setvar "nomutt" 0)
    (princ)
)
(setq      olderr      *error*
      *error*      myerr
)
(if (null **GlobleWidth**)
    (setq **GlobleWidth** 0.0)
)
(if (null **GlobleLength**)
    (setq **GlobleLength** 0.0)
)
(if (setq d
             (getdist (strcat "\n线长<" (rtos **GlobleLength** 2 2) ">: "))
      )
    (setq **GlobleLength** d)
)
(if (setq wid
             (getdist (strcat "\n线宽<" (rtos **GlobleWidth** 2 2) ">: "))
      )
    (setq **GlobleWidth** wid)
)
(while
    (progn (setvar "nomutt" 1)
         (princ "\r请选择线: ")
         (setq ss (ssget ":S" '((0 . "*Line,Arc,Circle,Ellipse"))))
    )
   (setq e   (ssname ss 0)
         pt(cadr (last (last (ssnamex ss))))
         pt(vlax-curve-getclosestpointto e pt)
         pam (vlax-curve-getparamatpoint e pt)
         vec (vlax-curve-getfirstderiv e pam)
         an(angle '(0 0 0) vec)
         p1(polar pt (+ an (/ pi 2)) (/ **GlobleLength** 2))
         p2(polar pt (- an (/ pi 2)) (/ **GlobleLength** 2))
   )
   (entmake (list '(0 . "LWPOLYLINE")
                  '(100 . "AcDbEntity")
                  '(100 . "AcDbPolyline")
                  '(90 . 2)
                  (list 10 (car p1) (cadr p1))
                  (list 10 (car p2) (cadr p2))
                  (cons 43 **GlobleWidth**)
            )
   )
)
(setvar "nomutt" 0)
(setq *error* olderr)
(princ)
)

页: [1]
查看完整版本: 为什么没有对象捕捉