Advertisement
tarekfarrag

MOFF offset all objects

Nov 12th, 2019
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.85 KB | None | 0 0
  1. (defun c:mOff (/ ss tmp safe lst)
  2. (vl-load-com)
  3. (or *moff (setq *moff 10.0))
  4. (setq doc (vla-get-ActiveDocument
  5. (vlax-get-acad-object)))
  6. (if (setq ss (ssget '((0 . "ARC,CIRCLE,ELLIPSE,*LINE"))))
  7. (progn
  8. (initget 6)
  9. (and (setq tmp (getdist (strcat "\nSpecify Offset <" (vl-princ-to-string *moff) "> : ")))
  10. (setq *moff tmp))
  11. (vla-StartUndoMark doc)
  12. (foreach var (mapcar (function (lambda (x) (vla-offset x *moff)))
  13. (mapcar 'vlax-ename->vla-object
  14. (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))))
  15.  
  16. (cond ((<= 0 (vlax-safearray-get-u-bound
  17. (setq safe (vlax-variant-value var)) 1))
  18. (setq lst (cons (vlax-safearray->list safe) lst)))))
  19. (foreach Obj (setq lst (apply 'append lst))
  20. (if (vl-some
  21. (function
  22. (lambda (x)
  23. (vlax-invoke obj 'IntersectWith x acExtendNone)))
  24. (vl-remove Obj lst))
  25. (vla-put-color Obj acred)))
  26. (vla-EndUndoMark doc)))
  27.  
  28. (princ))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement