我有下面的代码,它完全按照我的需要工作,除了一件事。
代码根据用户在开始时选择的数字以增量顺序插入具有属性的块。
我想修改代码,使数字至少为3位。例如,键入1将使属性显示为001,11将为011,111将仅此而已。
- ;;; --- Version Notes ---
- ;;; v0001 - Initial Development
- (defun c:pnm (/ atd blk cnt ech ipt next next_data osm pref suff tag i)
- (setq osm (getvar "osmode"))
- (setq ech (getvar "cmdecho"))
- (setq atd (getvar "attdia"))
- (setq cla (getvar "clayer"))
-
- (setvar "osmode" 0)
- (setvar "cmdecho" 0)
- (setvar "attdia" 0)
- (setvar "clayer" "A-AREA-IMAG-FLOR")
- (setq cnt (cond
- ((getint
- (strcat "\nStarting Photo Number <"
- (itoa
- (setq i
- (cond ( i ) ( 1 ))
- )
- )
- ">: "
- )
- )
- )
- ( i)
- )
- i (1- i))
-
- (if cnt
- (progn
- ;(setq tag (strcase (getstring "\nEnter attribute tag for numbering: ")))
- (setq tag "Pic0") ;change attribute tag "Pic0" on tag name in your block which uses for increment numbering
-
- (while (setq ipt (getpoint "\nPick insertion point of block or press Enter to Exit: "))
- (command "-insert" "PhotoBubble" ipt 1 0 0) ;<- change block name "PhotoBubble" on your block name here
- (setq blk (entlast))
- (setq next blk)
- (while (setq next (entnext next))
- (setq next_data (entget next))
- (if (= tag (cdr (assoc 2 next_data)))
- (progn
- (entmod (subst (cons 1 (itoa (cons 1 (itoa cnt)) (assoc 1 next_data) next_data))
- (entupd blk)
- )
- )
- )
- (setq cnt (1+ cnt))
- )
- )
- )
- (setvar "osmode" osm)
- (setvar "attdia" atd)
- (setvar "cmdecho" ech)
- (setvar "clayer" cla)
- (princ)
- )
|