;;;Place a user supplied block name near the end of a line. (bend part, tee, gv, bfv) ;;; ;;;> Author: Henry C. Francis ;;;> 425 N. Ashe St. ;;;> Southern Pines, NC 28387 ;;;> http://paracadd.com ;;;> All rights reserved. ;;; ;;;> COPYRIGHT: 8-6-2000 ;;;> EDITED: 04-22-2004 ;;; (DEFUN c:symblt (/) ;ent end1 end2 dis1 dis2 curla ang inpt (IF dimscl nil (LOAD "dimscl") ) ;_ end of if (dimscl) (IF c:svlayr nil (LOAD "mklayr") ) ;_ end of if (c:svlayr) (SETQ oldosmode (GETVAR "osmode")) (SETVAR "osmode" 0) (WHILE (AND (SETQ symblt_name (ukword 0 "XBFvlt XBVlt XCvlt XGvlt XPvlt XTeelt XRedlt XEnllt XFLglt XDOwnlt XUplt XCAplt XPLuglt XFHlt XMhlt XDIlt BFvlt BVlt Cvlt Gvlt Pvlt Teelt Redlt Enllt FLglt DOwnlt Uplt CAplt PLuglt FHlt Mhlt DIlt Quit" "Symbol to use (BFv BV Cv Gv Pv Tee Red Enl FLg DOwn Up CAp PLug FH Mh DI Quit (add 'X' prefix for exist.))" symblt_name ) ;_ end of ukword ) ;_ end of setq (/= symblt_name "Quit") ) (IF (OR (FINDFILE (STRCAT symblt_name ".dwg")) (TBLSEARCH "BLOCK" symblt_name) ) ;_ end of or (WHILE (SETQ ent (NENTSEL (STRCAT "\nSelect nearer end of line for " symblt_name) ) ;_ end of nentsel ) ;_ end of setq (COND ((EQ (CDR (ASSOC 0 (ENTGET (CAR ent)))) "LINE") (SETQ pickpt (NTH 1 ent)) (SETQ pickpt (LIST (CAR pickpt) (CADR pickpt))) (SETQ end1 (CDR (ASSOC 10 (ENTGET (CAR ent))))) (SETQ end2 (CDR (ASSOC 11 (ENTGET (CAR ent))))) (SETQ end1 (LIST (CAR end1) (CADR end1))) (SETQ end2 (LIST (CAR end2) (CADR end2))) (SETQ dis1 (DISTANCE pickpt end1)) (SETQ dis2 (DISTANCE pickpt end2)) (SETQ curla (CDR (ASSOC 8 (ENTGET (CAR ent))))) (IF (> dis1 dis2) (SETQ ang (ANGTOS (ANGLE end2 end1) 0 4) inpt end2 ) ;_ end of setq (SETQ ang (ANGTOS (ANGLE end1 end2) 0 4) inpt end1 ) ;_ end of setq ) ;if (IF (WCMATCH curla "*|*") (PRINC (STRCAT "\nEntity is on Xref layer " curla ". Place symbol in the same file. " ) ;_ end of strcat ) ;_ end of princ (PROGN (SETVAR "clayer" curla) (COND ((OR (EQ symblt_name "Mhlt")(EQ symblt_name "XMhlt")) (COMMAND ".insert" symblt_name inpt (IF (>= (GETVAR "dimscale") 40) dimsc 40 ) ;_ end of IF (IF (>= (GETVAR "dimscale") 40) dimsc 40 ) ;_ end of IF ang ) ;_ end of command ) ((OR (EQ symblt_name "DIlt")(EQ symblt_name "XDIlt")) (COMMAND ".insert" symblt_name inpt (IF (>= (GETVAR "dimscale") 30) dimsc 30 ) ;_ end of IF (IF (>= (GETVAR "dimscale") 30) dimsc 30 ) ;_ end of IF ang ) ;_ end of command ) (T (COMMAND ".insert" symblt_name inpt dimsc dimsc ang)) ) ;_ end of COND ) ;_ end of progn ) ;_ end of if ) ;eq ((EQ (CDR (ASSOC 0 (ENTGET (CAR ent)))) "VERTEX") (SETQ end1 (CDR (ASSOC 10 (ENTGET (CAR ent))))) (SETQ next_ent (ENTGET (ENTNEXT (CAR ent)))) (IF (EQ (CDR (ASSOC 0 next_ent)) "VERTEX") (PROGN (SETQ end2 (CDR (ASSOC 10 next_ent))) (SETQ pickpt (NTH 1 ent)) (SETQ pickpt (LIST (CAR pickpt) (CADR pickpt))) (SETQ end1 (LIST (CAR end1) (CADR end1))) (SETQ end2 (LIST (CAR end2) (CADR end2))) (SETQ dis1 (DISTANCE pickpt end1)) (SETQ dis2 (DISTANCE pickpt end2)) (SETQ curla (CDR (ASSOC 8 (ENTGET (CAR ent))))) (IF (> dis1 dis2) (SETQ ang (ANGTOS (ANGLE end2 end1) 0 4) inpt end2 ) ;_ end of setq (SETQ ang (ANGTOS (ANGLE end1 end2) 0 4) inpt end1 ) ;_ end of setq ) ;if ) ;progn ) ;if (IF (WCMATCH curla "*|*") (PRINC (STRCAT "\nEntity is on Xref layer " curla ". Place symbol in the same file. " ) ;_ end of strcat ) ;_ end of princ (PROGN (SETVAR "clayer" curla) (COND ((OR (EQ symblt_name "Mhlt")(EQ symblt_name "XMhlt")) (COMMAND ".insert" symblt_name inpt (IF (>= (GETVAR "dimscale") 40) dimsc 40 ) ;_ end of IF (IF (>= (GETVAR "dimscale") 40) dimsc 40 ) ;_ end of IF ang ) ;_ end of command ) ((OR (EQ symblt_name "DIlt")(EQ symblt_name "XDIlt")) (COMMAND ".insert" symblt_name inpt (IF (>= (GETVAR "dimscale") 30) dimsc 30 ) ;_ end of IF (IF (>= (GETVAR "dimscale") 30) dimsc 30 ) ;_ end of IF ang ) ;_ end of command ) (T (COMMAND ".insert" symblt_name inpt dimsc dimsc ang)) ) ;_ end of COND ) ;_ end of progn ) ;_ end of if ) ;eq (T (PRINC (CDR (ASSOC 0 (ENTGET (CAR ent)))))) ) ;_ end of cond ) ;while (PRINC (STRCAT "\nSymbol (block or file) " symblt_name " not found! " ) ;_ end of strcat ) ;_ end of princ ) ;_ end of if ) (SETVAR "osmode" oldosmode) (c:rslayr) (PRINC) ) ;defun ;|«Visual LISP© Format Options» (72 2 40 2 T "end of " 60 9 2 1 0 nil T nil T) ;*** DO NOT add text below the comment! ***|;