试试这段代码。
- (defun c:Test (/ *error* d e s k)
- (vl-load-com)
- ;;; Tharwat 09. Oct. 2012 ;;;
- (defun *error* (x)
- (princ "\n*Cancel*")
- )
- (if (and (not (tblsearch "LAYER" "SURVEY LIMIT"))
- (not (tblsearch "LAYER" "SURVEY LINES"))
- )
- (progn
- (alert " One or two layers [sURVEY LIMIT , SURVEY LINES] are not found in the drawing")
- (exit)
- )
- )
- (if (and (setq s (ssget "_+.:S:L" '((0 . "LINE"))))
- (progn
- (initget "WINGLINES CORRIDOR")
- (setq k
- (cond ((getkword
- "\n Choose one [Winglines/Corridor] <Winglines> :"
- )
- )
- ("Winglines")
- )
- )
- )
- )
- (while
- (setq d (getdist "\n Specify offset distance :"))
- (progn
- (foreach x (list d (- d))
- (vla-offset
- (vlax-ename->vla-object (ssname s 0))
- x
- )
- (vla-put-layer
- (vlax-ename->vla-object (entlast))
- (if (eq k "Winglines")
- "SURVEY LIMIT"
- "SURVEY LINES"
- )
- )
- )
- )
- )
- )
- (princ)
- )
|