e719 发表于 2023-5-31 10:44:29

求大神帮帮忙,把这个程序改成可以框选使用。

;;功能:属性块中属性文字的修改
;;作者 zml84
;;参数:
;;      EN -----包含属性的块的图元名称
;;      AttName -----属性名称
;;      int -----修改的组码编号
;;      Value -----修改为的值


;;用法示例:
;;(ZL-INSERT-SETATT entname "TEST1" 1 "WG-4/TL"),即修改图元名为entname的TEST1属性值为"WG-4/TL"

;;int为2时可以修改属性名(即标记)的值

(DEFUN ZL-INSERT-SETATT      (EN ATTNAME INT VALUE / RETURN E FLAG ENT)
(SETQ E EN RETURN NIL FLAG T)
(WHILE (AND FLAG (SETQ E (ENTNEXT E)))
    (SETQ ENT (ENTGET E))
    (COND
      ((NOT (= (CDR (ASSOC '0 ENT)) "ATTRIB")) (SETQ FLAG NIL))
      ((= "SEQEND" (CDR (ASSOC '0 ENT))) (SETQ FLAG NIL))
      ((= (CDR (ASSOC '2 ENT)) ATTNAME)
       (IF (ASSOC INT ENT)
         (SETQ ENT (SUBST (CONS INT VALUE) (ASSOC INT ENT) ENT))
         (SETQ ENT (CONS (CONS INT VALUE) ENT))
       )
       (ENTMOD ENT)
       (ENTUPD EN)
       (SETQ RETURN T)
      )
    ) ;_结束COND
)
;;返回RETURN
)


;;(ZL-INSERT-SETATT (car(entsel)) "TEST1" 2 "ATT1")
;;(ZL-INSERT-SETATT (car(entsel)) "TEST2" 1 "WG-4/TL")
(DEFUN C:1QA ()
(ZL-INSERT-SETATT (car(entsel)) "图纸编号" 1 "66")
(ZL-INSERT-SETATT (car(entsel)) "页码" 1 "A-15")
(PRINC)
)程序是论坛里找到的。我想改成框选两个以上不同图框的可以使用。谢谢老铁们.

start4444 发表于 2023-5-31 10:57:04

弄清楚自定义函数的用法就很简单了,就像给了你个工具,你想整哪个就整哪个

自贡黄明儒 发表于 2023-5-31 10:58:54

(DEFUN C:1QA (/ E N SS)
(while (setq ss (ssget ":S" '((0 . "INSERT"))))
    (repeat (setq n (sslength ss))
      (setq e (ssname ss (setq n (1- n))))
      (ZL-INSERT-SETATT e "图纸编号" 1 "66")
    )
)
(PRINC)
)
页: [1]
查看完整版本: 求大神帮帮忙,把这个程序改成可以框选使用。