怎么把布局按照大小自动排列顺序
本帖最后由 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-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
字符串比较
方便的时候可以搞一下吗,谢谢!! CAD版本太低,打不开 mahuan1279 发表于 2020-2-28 01:42
CAD版本太低,打不开
不好意思,之前保存的是2010的版本,现在改存2000版了,已经更新附件了,麻烦了,谢谢! tryhi 发表于 2020-2-15 18:26
你这个图,我的代码只要0.2秒
;;自动排序布局tt__作者:大海-tryhi
谢谢,谢谢,测试了一下,源文件我测试了一下我的电脑大约在三四秒,可能我电脑配置稍微低一点的事吧,我把布局扩展到我一般比较多的情况100个左右测试了一下,分两种情况如果很靠近最后耗时在两三秒左右,如果从第一个布局转移到最后,这样跨度大,耗时大约在十五六秒,不过这已经非常非常好了,算是很快了吧,至少比我之前快很多了,谢谢啦!!!! xj6019 发表于 2020-2-28 13:37
谢谢,谢谢,测试了一下,源文件我测试了一下我的电脑大约在三四秒,可能我电脑配置稍微低一点的事吧,我 ...
"经历时间为:271毫秒"
你的电脑到底有多慢,我i3的CPU都能吊打你十倍
本帖最后由 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 tryhi 发表于 2020-2-28 14:58
"经历时间为:271毫秒"
如果有可调整优化的方法诚然最好,就这个速度也已经很好了,非常感谢!
页:
[1]
2