;;;Xref overlay function. Overlay at 0,0; scale=1:1; angle=0°. ;;; ;;;> Author: Henry C. Francis ;;;> 425 N. Ashe St. ;;;> Southern Pines, NC 28387 ;;;> http://paracadd.com ;;;> All rights reserved. ;;; ;;;> COPYRIGHT: 3-3-2001 ;;;> EDITED: 03-14-2006 ;;; (DEFUN C:XO1 (/ inss1 aname bnndx pt1 bname2 xo1_whatodo) (setq cmdec (getvar "cmdecho") attrq (getvar "attreq") ) ;_ end of setq (setvar "cmdecho" 0) (setvar "attreq" 0) (if c:svlayr nil (load "mklayr") ) ;_ end of if (c:svlayr) (if ukword nil (load "ukword" "\nFile UKWORD.LSP not loaded! ")) ;_ end of if ;;; (setq blkname (ustr 0 "Block Name " bname nil)) ;;; (if (eq blkname "~") (setq blkname (getfiled "Select Xref to Overlay @ 0,0 1:1 0°" (strcat (getvar "DWGPREFIX") (if blkname blkname "")) "dwg" 8)) (if (AND blkname dos_relativepath) ;dos_relativepath is part of McNeel & Associates free DOSLIB utility v6.1 (PROGN ;If this function is available the relative path will be used where possible (setq relblkname (dos_relativepath (getvar "dwgprefix") blkname)) (if relblkname (setq blkname relblkname)) ) ) ;;; ) ;;; (setq namlen (strlen blkname) ;;; cnt 1 ;;; strtss 1 ;;; ) ;_ end of setq ;;; (while (<= cnt namlen) ;;; (if (member (substr blkname cnt 1) (list "." "\\" "/" ":")) ;;; (setq strtss (1+ cnt) ;;; bname (substr blkname strtss) ;;; ) ;_ end of setq ;;; (setq bname (substr blkname strtss)) ;;; ) ;_ end of if ;;; (setq cnt (1+ cnt)) ;;; ) ;_ end of while ;;; (setq aname (strcat blkname ".dwg")) (WHILE (AND blkname (eq(substr blkname 1 1)"\\")) (SETQ blkname (SUBSTR blkname 2)) ) (if (AND blkname (WCMATCH (STRCASE blkname) "*.DWG")(FINDFILE blkname)) (progn (setq bnndx 1) (IF dos_splitpath (SETQ BNAME (CADDR(DOS_SPLITPATH BLKNAME))) (progn (SETQ blkncnt 1 bname blkname) (WHILE (WCMATCH bname "*\\*") (SETQ bname (SUBSTR blkname blkncnt) blkncnt (1+ blkncnt) ) ) (SETQ bname (SUBSTR blkname (1- blkncnt) (-(strlen bname)4))) ) ) (WHILE (WCMATCH bname "\\*") (SETQ bname (SUBSTR bname 2)) ) (if (tblsearch "block" bname) (progn (while (tblsearch "block" (strcat bname (itoa bnndx))) (setq bnndx (1+ bnndx)) ) ;_ end of while (setq xo1_whatodo (ukword 1 "Yes No" (strcat "Do you want to rename existing xref " bname "? (Yes or No)" ) ;_ end of strcat "No" ) ;_ end of ukword ) ;_ end of setq (if (eq xo1_whatodo "Yes") (progn (command "rename" "b" bname (strcat (substr bname 1 4) (itoa bnndx)) ) ;_ end of command ) ;_ end of progn ) ;_ end of if ) ;_ end of progn ) ;_ end of if (if (or (not xo1_whatodo) (eq xo1_whatodo "Yes")) (progn (setq pt1 (list 0 0 0)) (setq bname2 (strcat (substr bname 1 7) "l")) (setq inss1 1) ;;; (princ "\nBegin LAYER command(1)... ") ;;; (princ) (command "_.layer" "m" bname "") ;;; (princ "\nEnd LAYER command(1), Begin XREF command(1)... ") ;;; (princ) (command ".xref" "overlay" blkname pt1 inss1 inss1 "0") ;;; (princ "\nEnd XREF command(1)... ") ;;; (princ) (if (or (wcmatch bname "H@?#0@?@") (wcmatch bname "h@?#0@?@")) (progn ;;; (princ "\nBegin LAYER command... ") ;;; (princ) (command "_.layer" "m" bname2 "") ;;; (princ "\nEnd LAYER command, Begin XREF command... ") ;;; (princ) (command ".insert" bname2 pt1 inss1 inss1 "0") ;;; (princ "\nEnd XREF command... ") ;;; (princ) ) ;_ end of progn ) ;_ end of if ) ;_ end of progn ) ;_ end of if ) ;_ end of progn (IF blkname (prompt (strcat "\nReference File " blkname " not found! \n")) ) ) ;_ end of if (setvar "cmdecho" cmdec) (setvar "attreq" attrq) (c:rslayr) (princ) ) ;_ end of DEFUN ;|«Visual LISP© Format Options» (72 2 40 2 T "end of " 60 9 0 0 0 T T nil T) ***Don't add text below the comment!***|;