Ohnoto 发表于 2022-7-6 07:17:31

属性编号

我有下面的代码,它完全按照我的需要工作,除了一件事。
 
代码根据用户在开始时选择的数字以增量顺序插入具有属性的块。
 
我想修改代码,使数字至少为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)
)

pBe 发表于 2022-7-6 07:30:01

为了提供替代方案,这将允许前导零:
 
http://lee-mac.com/numinc.html

Lee Mac 发表于 2022-7-6 07:51:11

我倾向于这样做:
然后你可以这样称呼它:
(defun PrefixStr (str pre len)
(repeat (/ (- len (strlen str)) (strlen pre)) (setq str (strcat pre str)))
str)

irneb 发表于 2022-7-6 08:01:53

感谢大家提供的各种选择。
 
我一直在尝试与Irneb发布的内容类似的东西,在itoa部分后加上“3”,但没有意识到在它之前需要前缀字符串编码。

Ohnoto 发表于 2022-7-6 08:09:59

如果将IF更改为cond 0 00或添加额外的IF,则会有点愚蠢
 
3

BIGAL 发表于 2022-7-6 08:24:39

页: [1]
查看完整版本: 属性编号