明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 79|回复: 3

[提问] 图层名列表中的元素排序问题,请各位赐教!

[复制链接]
发表于 昨天 10:08 | 显示全部楼层 |阅读模式
列表中的元素排序问题: DWG图中有图层名有如下 "DIE_1_PW" "DIE_2_PW""DIE_PW" "PH_1_PW"  "PH_PW" "PS_1_PW" "PS_2_PW"  "PS_PW",怎么写个程序自动获取图层名列表的排序为:"DIE_PW" "DIE_1_PW" "DIE_2_PW" "PS_1_PW" "PS_2_PW" "PS_PW"  "PH_PW" "PH_1_PW"
发表于 昨天 20:34 | 显示全部楼层
"DIE_PW" "DIE_1_PW" "DIE_2_PW"
"PS_1_PW" "PS_2_PW" "PS_PW"  
"PH_PW" "PH_1_PW"

还有更多图层吗?

若只此好办...
发表于 昨天 21:51 | 显示全部楼层
针对你所讲的这种情况和规律。


  1. (setq lst '("DIE_1_PW" "DIE_2_PW" "DIE_PW" "PH_1_PW"  "PH_PW" "PS_1_PW" "PS_2_PW"  "PS_PW"))
  2. (setq lst0 (mapcar '(lambda (x)
  3.         (if (not (wcmatch x "*_[0-9]_*"))
  4.                 (progn
  5.                         (setq p (vl-string-position (ascii "_") x))
  6.                         (strcat (substr x 1 p) "_0_" (substr x (+ 2 p)))
  7.                 )
  8.                 x
  9.         ))
  10.         lst
  11. ))

  12. (mapcar '(lambda (x) (nth x lst)) (vl-sort-i lst0 '<))
发表于 昨天 22:12 | 显示全部楼层

Command: (mapcar '(lambda (x) (nth x lst)) (vl-sort-i lst0 '<))
("DIE_PW" "DIE_1_PW" "DIE_2_PW" "PH_PW" "PH_1_PW" "PS_PW" "PS_1_PW" "PS_2_PW")

察觉与诉求的排列不合
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-23 04:27 , Processed in 0.489422 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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