;;;Auto invoke DDATTE, DDEDIT or DIM NEW based upon filtered selection. ;;; Routine will only select MTEXT, TEXT, ATTRIB, DIMENSION or ;;; INSERT w/attrib. It will report the type of entity selected ;;; select again. ;;; ;;; It was initially intended to be a command, hence the function name ;;; C:.... Note that the variable pstr is required, e.g. (c:ded pstr). ;;; pstr is simply the prompt string. It is set in redefinition ;;; of the commands that are affected in order to give the expected ;;; prompts. Invoke this routine from the redefined ddedit and ddatte. ;;; ;;; ;;; ;;; Changed selection window to set after each entsel pick. ;;; Fixes unexpected selections following transparent zooms. ;;; ;;;> Author: Henry C. Francis ;;;> 425 N. Ashe St. ;;;> Southern Pines, NC 28387 ;;;> http://paracadd.com ;;;> All rights reserved. ;;; ;;;> COPYRIGHT: 1995-2005 ;;;> EDITED: 02-28-2005 ;;; (command "undefine" "ddedit") (IF (>= (ATOF (GETVAR "acadver")) 15) NIL (COMMAND "undefine" "ddatte") ) ;================================================================================================== (defun c:ddedit (/ pstr) (setq pstr "\n: "))) (setq scrnsz (getvar"screensize")) (if (or (eq (getvar "tilemode") 1) (and (eq (getvar "tilemode") 0) (eq (getvar "cvport") 1) ) ) (progn (setq pboxsz (*(/(GETVAR"PICKBOX")(CADR(GETVAR"SCREENSIZE")))(GETVAR"VIEWSIZE"))) ) (progn (COMMAND ".PSPACE") (setq viewsz (getvar"viewsize")) (COMMAND ".MSPACE") (setq pbfact (car (TRANS (LIST (/ viewsz(cadr scrnsz))(/ viewsz(cadr scrnsz))(/ viewsz(cadr scrnsz))) 3 2 0))) (setq pboxsz (* pbfact (getvar"pickbox"))) ) ) ;;; (setq pboxsz (*(/ viewsz(cadr scrnsz))2(getvar"pickbox"))) ;;; pbdiag (* 1.41421(/ viewsz(cadr scrnsz))(getvar"pickbox")) ;;; tspt1 (polar tspt(* 1.25 pi)pbdiag) ;;; tspt2 (polar tspt(* 0.25 pi)pbdiag) ;;; ) ;;; (if (and (setq CURVNO (getvar "cvport")) ;;; (> CURVNO 1) ;;; (eq (getvar "tilemode") 0) ;;; ) ;_ end of and ;;; (progn ;;; (command ".pspace") ;;; (setq pboxsz (*(/(GETVAR"PICKBOX")(CADR(GETVAR"SCREENSIZE")))(GETVAR"VIEWSIZE")1.5(GETVAR"ZOOMFACTOR"))) ;;; (command ".mspace") ;;; ) ;;; (setq pboxsz (*(/(GETVAR"PICKBOX")(CADR(GETVAR"SCREENSIZE")))(GETVAR"VIEWSIZE"))) ;;; ) ;;; (setq dvwtwst (getvar "viewtwist")) ;;; (setq tspt1 (polar tspt ;;; (- (* 1.25 pi) dvwtwst) ;;; (* (sin (* 0.25 pi)) pboxsz 2.0) ;;; ) ;_ end of polar ;;; tspt1a (polar tspt1 (- 0 dvwtwst) (* 2.0 pboxsz)) ;;; tspt2 (polar tspt ;;; (- (* 0.25 pi) dvwtwst) ;;; (* (sin (* 0.25 pi)) pboxsz 2.0) ;;; ) ;_ end of polar ;;; tspt2a (polar tspt2 (- 0 dvwtwst pi) (* 2.0 pboxsz)) ;;; ) ;_ end of setq ;;; (command "PLINE" ;;; TSTPT1 ;;; (list (car TSTPT2) (cadr TSTPT1)) ;;; TSTPT2 ;;; (list (car TSTPT1) (cadr TSTPT2)) ;;; ) ;_ end of COMMAND ;;; (princ "\n\n scrnsz= ") ;;; (PRINC scrnsz) ;;; (princ "\n\n viewsz= ") ;;; (PRINC viewsz) ;;; (princ "\n\n dvwtwst= ") ;;; (PRINC dvwtwst) ;;; (princ "\n\n pboxsz= ") ;;; (PRINC pboxsz) ;;; (princ (strcat "\n\n tspt1= (POLAR tspt1 (-(* 1.25 PI) " (RTOS DVWTWST 2 4) ") (*(SIN(* 0.25 PI)) " (RTOS PBOXSZ 2 4) " 2.0))")) ;;; (princ (strcat "\n\n tspt1a= (POLAR tspt (- 0 " (RTOS DVWTWST 2 4) ") (* 2.0 " (RTOS PBOXSZ 2 4) "))")) ;;; (PRINC) ;;; (setq pboxsz (*(/(GETVAR"PICKBOX")(CADR(GETVAR"SCREENSIZE")))(GETVAR"VIEWSIZE"))) (setq dvwtwst (getvar "viewtwist")) (setq tspt1 (polar tspt (- (* 1.25 pi) dvwtwst) (* (sin (* 0.25 pi)) pboxsz 2.0) ) ;_ end of polar tspt1a (polar tspt1 (- 0 dvwtwst) (* 2.0 pboxsz)) tspt2 (polar tspt (- (* 0.25 pi) dvwtwst) (* (sin (* 0.25 pi)) pboxsz 2.0) ) ;_ end of polar tspt2a (polar tspt2 (- 0 dvwtwst pi) (* 2.0 pboxsz)) ) ;_ end of setq ;;; (COMMAND "PLINE" TSPT1 TSPT1A TSPT2 TSPT2A "C"); tests CP pick points for match w/ pickbox at mult. zoom MS/PS combos (setq tss (ssget "CP" (list tspt1 tspt1a tspt2 tspt2a tspt1) '((-4 . "") (-4 . "AND>") (-4 . "OR>"))) );setq ; (setq ent (entsel pstr)) (if tss (progn (setq ent (ssname tss 0)) (if (or (eq "TEXT" (cdr(assoc 0 (entget ent)))) (eq "MTEXT" (cdr(assoc 0 (entget ent)))) (eq "ATTDEF" (cdr(assoc 0 (entget ent)))) ) (progn (prompt (strcat "\n" (cdr(assoc 0 (entget ent))) " selected ")) (prompt "\n