这个怎么样?
- (defun c:lazy_dim (/ doc spc bpt ss ept)
- (vl-load-com)
- (setq doc (vla-get-ActiveDocument
- (vlax-get-Acad-Object))
- spc (if (zerop (vla-get-activespace doc))
- (if (= (vla-get-mspace doc) :vlax-true)
- (vla-get-modelspace doc)
- (vla-get-paperspace doc))
- (vla-get-modelspace doc)))
- (if (and (setq bpt (getpoint "\nSelect Base Point: "))
- (princ "\nSelect Points...")
- (setq ss (ssget '((0 . "POINT")))))
- (foreach pt (mapcar 'vlax-3D-point
- (vl-sort
- (mapcar
- (function
- (lambda (x)
- (cdr (assoc 10 (entget x)))))
- (vl-remove-if 'listp
- (mapcar 'cadr (ssnamex ss))))
- (function
- (lambda (x1 x2)
- (> (cadr x1) (cadr x2))))))
- (if (setq ept
- (getpoint bPt "\nSelect Point to Dimension: "))
- (progn
- (vla-addDimRotated spc
- (vlax-3D-point bPt)
- (vlax-3D-point ePt) pt 0))))
- (princ "\n<< Incorrect Selection >>"))
- (princ))
-
选择基点,然后选择所有点(红色),然后只需单击每个点即可进行标注。 |