您好,bsimpson,
我很快键入了这个LISP,但我不确定它是否完全适合你的需要,但还是试一试。
它将根据第一条线的选择来标注一组线的尺寸,并且始终将这些线标注到一侧。
如果有任何帮助,请告诉我。
- (defun c:ldist (/ l1 l2 pt1s pt1e pt1 pt2s pt2e pt2)
- (setvar "cmdecho" 0)
- (if
- (setq l1 (car (entsel "\nSelect First Line: ")))
- (progn
- (while
- (setq l2 (car (entsel "\nSelect Second Line: ")))
- (setq pt1s (cdr (assoc 10 (entget l1))))
- (setq pt1e (cdr (assoc 11 (entget l1))))
- (if
- (> (car pt1s)(car pt1e))
- (setq pt1 (cdr (assoc 10 (entget l1))))
- (setq pt1 (cdr (assoc 11 (entget l1))))
- ) ; end if
- (setq pt2s
- (cdr (assoc 10 (entget l2)))
- ) ; end setq
- (setq pt2e
- (cdr (assoc 11 (entget l2)))
- ) ; end setq
- (if
- (> (car pt2s)(car pt2e))
- (setq pt2 (cdr (assoc 10 (entget l2))))
- (setq pt2 (cdr (assoc 11 (entget l2))))
- ) ; end if
- (command "_dimlinear"
- pt1
- pt2
- pause
- ) ; end dim
- ) ; end while
- ) ; end progn
- (alert "No Line Selected")
- ) ; end if
- (setvar "cmdecho" 1)
- (princ "\nFunction Complete.")
- (princ)
- ) ; end function
|