明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3563|回复: 16

[讨论] 怎么把布局按照大小自动排列顺序

[复制链接]
发表于 2020-2-15 18:26:15 | 显示全部楼层 |阅读模式
10明经币
本帖最后由 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-1a  ABC-2  ABC-2a  ABC-2b..........一直往后(ABC为固定前缀)


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


哪位朋友研究一下,帮忙搞一下,非常感谢!!
附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

你这个图,我的代码只要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) ...
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 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)
)

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2020-2-16 21:57:12 | 显示全部楼层
字符串比较
回复

使用道具 举报

 楼主| 发表于 2020-2-27 15:13:54 | 显示全部楼层

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

使用道具 举报

发表于 2020-2-28 01:42:52 | 显示全部楼层
CAD版本太低,打不开
回复

使用道具 举报

 楼主| 发表于 2020-2-28 08:36:42 | 显示全部楼层
mahuan1279 发表于 2020-2-28 01:42
CAD版本太低,打不开

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

使用道具 举报

 楼主| 发表于 2020-2-28 13:37:15 | 显示全部楼层
tryhi 发表于 2020-2-15 18:26
你这个图,我的代码只要0.2秒

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

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

使用道具 举报

发表于 2020-2-28 14:58:25 | 显示全部楼层
xj6019 发表于 2020-2-28 13:37
谢谢,谢谢,测试了一下,源文件我测试了一下我的电脑大约在三四秒,可能我电脑配置稍微低一点的事吧,我 ...

"经历时间为:271毫秒"


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


本帖子中包含更多资源

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

x
回复

使用道具 举报

 楼主| 发表于 2020-2-28 16:24:11 | 显示全部楼层
本帖最后由 xj6019 于 2020-2-28 16:27 编辑
tryhi 发表于 2020-2-28 14:58
"经历时间为:271毫秒"

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

本帖子中包含更多资源

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

x
回复

使用道具 举报

 楼主| 发表于 2020-2-28 16:32:43 | 显示全部楼层
tryhi 发表于 2020-2-28 14:58
"经历时间为:271毫秒"

如果有可调整优化的方法诚然最好,就这个速度也已经很好了,非常感谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-17 01:10 , Processed in 0.194947 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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