xj6019 发表于 2020-2-15 18:26:15

怎么把布局按照大小自动排列顺序

本帖最后由 xj6019 于 2020-2-28 08:35 编辑

如题:求lisp可以自动对布局的名称进行排序
对尾号有数字和英文混合的,也能识别
举例说明:
杂乱无章的布局运行命令后,排序结果要求如下:


1.最简单的纯数字1.2.3.4.5.6...........一直往后


2.混合的数字1.1a.1b.1c.2.2a.3.3a.3b........一直往后


3.ABC-1   ABC-1aABC-2ABC-2aABC-2b..........一直往后(ABC为固定前缀)


最大的难点在于运行速度,超过几十个布局后(50个以上),要求速度必须在5秒内运行完成!!
重要的事情强调一下,速度要求第一,速度必须快才行,最好不要超过5秒,如果是几十秒才能完成就不行喽


哪位朋友研究一下,帮忙搞一下,非常感谢!!

tryhi 发表于 2020-2-15 18:26:16

本帖最后由 tryhi 于 2020-2-28 12:02 编辑




你这个图,我的代码只要0.2秒

;;自动排序布局tt__作者:大海-tryhi
(defun c:tt (/ i layname layname-s)
      (try-time-be)
      (setq
                layname(try-layoutlist)
                layname-s(try-str-sort-num layname)
                i 0
      )
      
      (foreach n layname-s
                (setq i(1+ i))
                (try-layou-set-position n i)
      )
      (try-time-end nil t)
)

mahuan1279 发表于 2020-2-16 21:57:12

字符串比较

xj6019 发表于 2020-2-27 15:13:54

mahuan1279 发表于 2020-2-16 21:57
字符串比较

方便的时候可以搞一下吗,谢谢!!

mahuan1279 发表于 2020-2-28 01:42:52

CAD版本太低,打不开

xj6019 发表于 2020-2-28 08:36:42

mahuan1279 发表于 2020-2-28 01:42
CAD版本太低,打不开

不好意思,之前保存的是2010的版本,现在改存2000版了,已经更新附件了,麻烦了,谢谢!

xj6019 发表于 2020-2-28 13:37:15

tryhi 发表于 2020-2-15 18:26
你这个图,我的代码只要0.2秒

;;自动排序布局tt__作者:大海-tryhi


谢谢,谢谢,测试了一下,源文件我测试了一下我的电脑大约在三四秒,可能我电脑配置稍微低一点的事吧,我把布局扩展到我一般比较多的情况100个左右测试了一下,分两种情况如果很靠近最后耗时在两三秒左右,如果从第一个布局转移到最后,这样跨度大,耗时大约在十五六秒,不过这已经非常非常好了,算是很快了吧,至少比我之前快很多了,谢谢啦!!!!

tryhi 发表于 2020-2-28 14:58:25

xj6019 发表于 2020-2-28 13:37
谢谢,谢谢,测试了一下,源文件我测试了一下我的电脑大约在三四秒,可能我电脑配置稍微低一点的事吧,我 ...
"经历时间为:271毫秒"


你的电脑到底有多慢,我i3的CPU都能吊打你十倍


xj6019 发表于 2020-2-28 16:24:11

本帖最后由 xj6019 于 2020-2-28 16:27 编辑

tryhi 发表于 2020-2-28 14:58
"经历时间为:271毫秒"



哥们真没骗你,截图你看看,我电脑上的运行情况,电脑配置如图
我说一下怎么用的哦,你看看方法对不,你写上的代码应该是调用的上传的附件里面的函数吧,我把你的代码直接放到
附件的文件最末尾,然后改了个命令名字JUPX,cad加载后直接调用命令jupx执行
所得到的效果如图片所示
第一次是文件打开直接命令jupx
第二次是布局50先移动到最左开始位置,保证跨度最大
第三次是排序完成后,再次运行命令,这样是没有跨度的排序
我这电脑好像只能如此了!!

http://bbs.mjtd.com/forum.php?mod=image&aid=107502&size=300x300&key=69d264dcf45eec16&nocache=yes&type=fixnonehttp://bbs.mjtd.com/forum.php?mod=image&aid=107501&size=300x300&key=c336331a9ae3c17f&nocache=yes&type=fixnone

xj6019 发表于 2020-2-28 16:32:43

tryhi 发表于 2020-2-28 14:58
"经历时间为:271毫秒"




如果有可调整优化的方法诚然最好,就这个速度也已经很好了,非常感谢!
页: [1] 2
查看完整版本: 怎么把布局按照大小自动排列顺序