;;;|双向偏移 SNSJ 2004.3.8
(defun c:OffsetBoth (/ getds obj lynm ptlay)
  (defun ptlay (x y)
    (foreach obj (vlax-safearray->list (vlax-variant-value x))
      (vla-put-layer obj y)
    )
  )
  (setq	getds
	 (getdist
	   (strcat "\n输入偏移距离<" (rtos (getvar "offsetdist")) ">:")
	 )
  )
  (or getds (setq getds (getvar "offsetdist")))
  (setvar "offsetdist" getds)
  (setq lynm (getvar "clayer"))
  (while (ssget ":S" '((0 . "Arc,Circle,Ellipse,*Line")))
    (vlax-for obj (vla-get-activeselectionset *doc*)
      (ptlay (vla-offset obj getds) lynm)
      (ptlay (vla-offset obj (* getds -1)) lynm)
      (vlax-release-object obj)
    )
  )
  (princ)
)