正如我所说,对于向量,但不是半透明的:
- ;;------------------=={ Shaded SelectionSet }==--------------;;
- ;; ;;
- ;; Provides a UCS oriented window/crossing selection set ;;
- ;; interface, with shading visual effect. ;;
- ;;------------------------------------------------------------;;
- ;; Author: Lee McDonnell, 2010 ;;
- ;; ;;
- ;; Copyright © 2010 by Lee McDonnell, All Rights Reserved. ;;
- ;; Contact: Lee Mac @ TheSwamp.org, CADTutor.net ;;
- ;;------------------------------------------------------------;;
- ;; Arguments: ;;
- ;; str - prompt string ;;
- ;; p1 - base point for window (UCS) ;;
- ;; filter - optional selection set filter ;;
- ;;------------------------------------------------------------;;
- ;; Returns: SelectionSet of selected objects, else nil ;;
- ;;------------------------------------------------------------;;
- (defun LM:GrSelectionSetShaded ( str p1 filter / gr p1 pt1 pt2 vsr hgt wid s1 s2 c1 c2 pi/2 lst )
- ;; © Lee Mac 2010
- (princ str)
- (while (and (= 5 (car (setq gr (grread t 13 1)))) (listp (setq p3 (cadr gr))))
- (redraw)
- (setq vsr (/ (getvar 'VIEWSIZE) (cadr (getvar 'SCREENSIZE)))
- p2 (list (car p3) (cadr p1) (caddr p3))
- p4 (list (car p1) (cadr p3) (caddr p3))
- hgt (- (cadr p3) (cadr p1))
- wid (- (car p3) (car p1))
- s1 (if (minusp wid) -1. 1.) s2 (if (minusp hgt) -1. 1.)
- c1 (if (minusp wid) -256 256) c2 (if (minusp wid) 106 156) pi/2 (/ pi 2.) i 0
- hgt (- hgt (* vsr 2. s2))
- )
- (grvecs (setq lst (list c1 p1 p2 p1 p4 p2 p3 p4 p3)))
- (repeat (1- (fix (/ (abs wid) vsr)))
- (grdraw (setq p5 (polar (polar p1 0. (* s1 (setq i (1+ i)) vsr)) pi/2 (* s2 vsr))) (polar p5 pi/2 hgt) c2)
- )
- )
- (redraw)
- (ssget (if (minusp (car lst)) "_C" "_W") p1 p3 filter)
- )
- ;; Test Function
- (defun c:test ( / p )
- (if (setq p (getpoint "\nClick!: "))
- (sssetfirst nil (LM:GrSelectionSetShaded "\nCorner..." p nil))
- )
- (princ)
- )
(测试类型) |