 - (DEFUN C:TT (/ SS I LEN E PLST)
- (SETQ I 0)
- (SETQ LEN 100);;;;;偏移距离设置
- (SETQ SS (SSGET '((70 . 1))))
- (IF SS
- (PROGN
-
- (REPEAT (SSLENGTH SS)
- (SETQ E (SSNAME SS I)
- PLST (LH:Massoc 10 (ENTGET E))
- I (1+ I)
- )
- (IF (LH:ListClockwise-p PLST)
- (vl-catch-all-apply
- 'VLA-OFFSET
- (LIST (vlax-ename->vla-object E) LEN)
- )
- (vl-catch-all-apply
- 'VLA-OFFSET
- (LIST (vlax-ename->vla-object E) (* -1 LEN))
- )
- )
- )
- )
- )
- (PRINC)
- )
- ;; List Clockwise-p - Lee Mac
- ;; Returns T if the point list is clockwise oriented
- ;; 顺时针列出-p-Lee Mac
- ;; 如果点列表为顺时针方向,则返回T
- (defun LH:ListClockwise-p (lst)
- (minusp
- (apply '+
- (mapcar
- (function
- (lambda (a b)
- (- (* (car b) (cadr a)) (* (car a) (cadr b)))
- )
- )
- lst
- (cons (last lst) lst)
- )
- )
- )
- )
- ;;46.1 [功能] 多段线各顶点(见99.3)
- ;;示例 (MJ:Massoc 10 (entget (car (entsel))))
- ;; Notes:特别适合多段线各顶点
- (defun LH:Massoc (key alist)
- (apply
- 'append
- (mapcar '(lambda (x)
- (if (eq (car x) key)
- (list (cdr x))
- )
- )
- alist
- )
- )
- )
内偏移 |