;;;Xref attachment function. Attach 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: 1991-2001 ;;;> EDITED: 10-17-2005 ;;; (DEFUN C:XA1 (/ inss1 aname bnndx pt1 bname2) (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 ustr nil (load "uutils")) ;;; (setq blkname (ustr 0 "Block Name " bname nil)) (setq blkname (getfiled "Select Xref to Attach @ 0,0 1:1 0°" (getvar "DWGPREFIX") "dwg" 8)) (if (AND blk_name 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))) ) ) (if (tblsearch "block" bname) (progn (while (tblsearch "block" (strcat bname (itoa bnndx))) (setq bnndx (1+ bnndx)) ) ;_ end of while (command "rename" "b" bname (strcat (substr bname 1 4) (itoa bnndx)) ) ;_ end of command ) ;_ end of progn ) ;_ end of if (setq pt1 (list 0 0 0)) (setq bname2 (strcat (substr bname 1 7) "l")) (setq inss1 1) (command "_.layer" "m" bname "") (command ".xref" "attach" blkname pt1 inss1 inss1 "0") (if (or (wcmatch bname "H@?#0@?@") (wcmatch bname "h@?#0@?@")) (progn (command "_.layer" "m" bname2 "") (command ".insert" bname2 pt1 inss1 inss1 "0") ) ;_ 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!***|;