明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: taozhen

[求助]如何修改扩展数据?

  [复制链接]
发表于 2005-12-16 16:19 | 显示全部楼层
  1. ;;很好!自已讨论很闷的...就是要人多
  2. ;;指令:(ATT_REORDER LST)
  3. ;;指令:(ATT_REORDER '("25500300" "25500200" "25401000" "25401000"))
  4. (defun ATT_REORDER
  5.        (MARK_LST / ATT ENT LST N N1 NEWENT NEWENT1 OBJ SS SSS STR)
  6.   (vl-load-com)
  7.   ;;(prompt "\n选处理物件")
  8.   (setq SS (ssget "X" '((-3 ("TBH_INFO")))))
  9.   (foreach ST MARK_LST
  10.     (setq N1  0
  11.    N   0
  12.    SSS (ssadd)
  13.     )
  14.     (setq ST (strcat "*" ST "*"))
  15.     (if SS
  16.       (repeat (sslength SS)
  17. (setq NEWENT1 (entget (ssname SS N) '("TBH_INFO")))
  18. (setq STR (cdr (cadadr (assoc -3 NEWENT1))))
  19. (if (wcmatch STR ST)
  20.    (progn
  21.      (ssadd (setq ENT (ssname SS N)) SSS)
  22.      (setq OBJ (vlax-ename->vla-object ENT))
  23.      (setq
  24.        NEWENT
  25.         (subst
  26.    (list
  27.      -3
  28.      (list
  29.        "TBH_INFO"
  30.        (cons
  31.          1000
  32.          (strcat
  33.     (rtos (setq N1 (1+ N1)))
  34.     (substr STR
  35.      (1+ (vl-string-position (ascii "|") STR))
  36.     )
  37.          )
  38.        )
  39.      )
  40.    )
  41.    (assoc -3 NEWENT1)
  42.    NEWENT1
  43.         )
  44.      )
  45.      (entmod NEWENT)
  46.      (if (= :vlax-true (vla-get-hasattributes OBJ))
  47.        (progn
  48.   (setq ATT (vlax-safearray->list
  49.        (vlax-variant-value
  50.          (vla-getattributes
  51.     OBJ
  52.          )
  53.        )
  54.      )
  55.   )
  56.   (foreach AT ATT
  57.     (if (= (vla-get-tagstring AT) "TBH")
  58.       (vla-put-textstring AT N1)
  59.     )
  60.   )
  61.        )
  62.      )
  63.    )
  64. )
  65. (setq N (1+ N))
  66.       )
  67.     )
  68.     (setq LST (cons SSS LST))
  69.   )
  70.   (princ "\nAtt_Reorder ,By LUCAS\n")
  71.   LST
  72. )
  73. (princ "\nType Att_Reorder ,By LUCAS")
  74. (princ)

发表于 2005-12-16 18:43 | 显示全部楼层

请教一下

(setq ss (ssget "x" '((-3 ("TBH_INFO")))))一句改为

(setq ss  (ssget "x" '((-3 ("TBH_INFO"(1000 . "*25500300"))))))

为何不可?

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-17 19:02 , Processed in 0.214935 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表