很无聊,所以让你做这个
- ;; ============ Num.lsp ===============
- ;;
- ;; FUNCTION:
- ;; Will sequentially place numerical
- ;; text upon mouse click, with optional
- ;; prefix and suffix.
- ;;
- ;; SYNTAX: num
- ;;
- ;; AUTHOR:
- ;; Copyright (c) 2009, Lee McDonnell
- ;; (Contact Lee Mac, CADTutor.net)
- ;;
- ;; PLATFORMS:
- ;; No Restrictions,
- ;; only tested in ACAD 2004.
- ;;
- ;; VERSION:
- ;; 1.0 ~ 05.04.2009
- ;;
- ;; ====================================
- (defun c:num (/ vlst ovar stmp intmp ptmp sutmp vars pt)
- (setq vlst '("OSMODE" "CLAYER")
- ovar (mapcar 'getvar vlst))
- (setvar "OSMODE" 0)
- (or (tblsearch "LAYER" "NumText")
- (vla-add (vla-get-layers
- (vla-get-ActiveDocument
- (vlax-get-acad-object)))
- "NumText"))
- (or sNum (setq sNum 1))
- (or inNum (setq inNum 1))
- (or Pref (setq Pref ""))
- (or Suff (setq Suff ""))
- (setq stmp (getreal (strcat "\nSpecify Starting Number <" (rtos sNum) ">: "))
- intmp(getreal (strcat "\nSpecify Increment <" (rtos inNum) ">: "))
- ptmp (getstring (strcat "\nSpecify Prefix <" (if (eq "" Pref) "-None-" Pref) ">: "))
- sutmp(getstring (strcat "\nSpecify Suffix <" (if (eq "" Suff) "-None-" Suff) ">: ")))
- (or (not stmp) (setq sNum stmp))
- (or (not intmp) (setq inNum intmp))
- (or (eq "" ptmp) (setq Pref ptmp))
- (or (eq "" sutmp) (setq Suff sutmp))
- (while (setq pt (getpoint "\nClick for Text... "))
- (Make_Text pt (strcat Pref (rtos sNum) Suff))
- (setq sNum (+ sNum inNum)))
- (mapcar 'setvar vlst ovar)
- (princ))
- (defun Make_Text (txt_pt txt_val)
- (entmake (list '(0 . "TEXT")
- '(8 . "NumText")
- (cons 10 txt_pt)
- (cons 40 (max 2.5 (getvar "TEXTSIZE")))
- (cons 1 txt_val)
- '(50 . 0.0)
- (cons 7 (getvar "TEXTSTYLE"))
- '(71 . 0)
- '(72 . 1)
- '(73 . 2)
- (cons 11 txt_pt))))
|