找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 453|回复: 3

[求助] 属性值重新排序

[复制链接]

已领礼包: 10个

财富等级: 恭喜发财

发表于 2018-2-20 22:59:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
图中有些属性,值为A01,A02,......A12,因某种原因,中间删除了几个,现在想求个工具,一次性把这些属性值重新排序
比如 A01,A02,A03,A07,A10,A11 ---->A01,A02,A03,A04,A05,A06

谢谢!

请点击此处下载

查看状态:需购买或无权限

您的用户组是:游客

文件名称:属性.rar 
下载次数:11  文件大小:17.22 KB 
下载权限: 不限 以上  [免费赚D豆]


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 6468个

财富等级: 富甲天下

发表于 2018-2-21 00:31:15 | 显示全部楼层
属性块?文字?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6个

财富等级: 恭喜发财

发表于 2018-2-22 16:29:56 | 显示全部楼层
支持起来,等待学习。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2018-2-24 10:05:58 | 显示全部楼层
本帖最后由 marting 于 2018-2-24 10:07 编辑

试试

  1. (defun c:tt (/ _split _padZero ss i e attVal_collection Startnum
  2.               Low_Num High_Num Preifxformat
  3.              )
  4.   (defun _padZero (num md)
  5.     (while (< (strlen num) md) (setq num (strcat "0" num)))
  6.     num
  7.   )
  8.   (defun _split (lst i / numbers)
  9.     (while (< 46 (setq n (nth (setq i (1- i)) lst)) 58)
  10.       (setq numbers (cons n numbers))
  11.     )
  12.     (if (and numbers (setq str (vl-list->string lst)))
  13.       (list (substr str 1 (1+ i)) (vl-list->string numbers))
  14.     )
  15.   )
  16.   (and (setq ss (ssget "_:L" '((0 . "INSERT") (66 . 1))))
  17.        (repeat (setq i (sslength ss))
  18.          (setq e (vlax-ename->vla-object (ssname ss (setq i (1- i)))))
  19.          (setq attval
  20.                 (car
  21.                   (mapcar
  22.                     (function
  23.                       (lambda (at / num)
  24.                         (list (_split (vl-string->list
  25.                                         (setq str (vla-get-textstring at))
  26.                                       )
  27.                                       (strlen str)
  28.                               )
  29.                               at
  30.                         )
  31.                       )
  32.                     )
  33.                     (vlax-invoke e 'Getattributes)
  34.                   )
  35.                 )
  36.          )
  37.          (if (car attval)
  38.            (setq attVal_collection (cons attval attVal_collection))
  39.          )
  40.          attVal_collection
  41.        )
  42.        (setq attVal_collection
  43.               (vl-sort
  44.                 attVal_collection
  45.                 '(lambda (a b)
  46.                    (< (distof (cadar a)) (distof (cadar b)))
  47.                  )
  48.               )
  49.        )
  50.        (setq Low_Num (cadar (car attVal_collection)))
  51.        (setq High_Num (cadar (last attVal_collection)))
  52.        (setq Preifxformat
  53.               (if (< (strlen Low_Num) (strlen High_Num))
  54.                 0
  55.                 (strlen High_Num)
  56.               )
  57.        )
  58.        (setq startNum
  59.               (cond
  60.                 ((getint (strcat "\n输入起始值<"
  61.                                  (itoa (setq startNum (atoi Low_Num)))
  62.                                  ">: "
  63.                          )
  64.                  )
  65.                 )
  66.                 (startNum)
  67.               )
  68.        )
  69.        (Foreach itm attVal_collection
  70.          (vla-put-textstring
  71.            (Cadr itm)
  72.            (strcat (Caar itm)
  73.                    (if (zerop Preifxformat)
  74.                      (itoa startNum)
  75.                      (_padZero (itoa startNum) Preifxformat)
  76.                    )
  77.            )
  78.          )
  79.          (setq startNum (1+ startNum))
  80.        )
  81.   )
  82. )


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-27 12:20 , Processed in 0.170438 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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