明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: xj6019

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

[复制链接]
发表于 2020-2-28 16:42 | 显示全部楼层
本帖最后由 tryhi 于 2020-2-28 16:44 编辑

看来不是电脑的问题而是版本的问题,08以下版本超快,我的电脑2010居然要14秒,2018要3秒,其实还能优化算法,主要时间用在了修改布局位置这个指令上,可以优化算法达到最少的改动次数来提高速度
回复

使用道具 举报

 楼主| 发表于 2020-2-28 16:51 | 显示全部楼层
tryhi 发表于 2020-2-28 16:42
看来不是电脑的问题而是版本的问题,08以下版本超快,我的电脑2010居然要14秒,2018要3秒,其实还能优化算 ...

有时间有兴趣的的话,再帮忙弄一下好吗,谢谢,能做到极致就更完美了!!
回复

使用道具 举报

发表于 2020-2-28 17:02 | 显示全部楼层
本帖最后由 tryhi 于 2020-2-28 17:03 编辑

思路就是让try-layou-set-position执行最少的次数,本来有多少个布局就执行多少次,有一种情况是执行最多的,就是原来完全是倒序,此时最多只能减掉一次,而其他情况比如乱序的情况,至少可以减掉一半以上,你可以思考一下如何让它执行最少的次数
回复

使用道具 举报

 楼主| 发表于 2020-2-28 17:09 | 显示全部楼层
tryhi 发表于 2020-2-28 17:02
思路就是让try-layou-set-position执行最少的次数,本来有多少个布局就执行多少次,有一种情况是执行最多的 ...

老师,我的代码水平刚刚学前班毕业水平吧,这种复杂的函数基本搞不了,拜托再帮优化一下吧,劳驾您了,谢谢!!
回复

使用道具 举报

发表于 2020-2-29 12:00 | 显示全部楼层
如果字符串仅仅是“ABC-123a”,即前面是“ABC-”,后面是数字加一个小写字母(或者全是数字)的情形,可以采取27进制来简单处理。
_$ (setq lst '((3 "ABC-3")(2 "ABC-4a")(1 "ABC-2a")(5 "ABC-1a")(6 "ABC-1")(7 "ABC-3a")(8 "ABC-2")))
(defun ff (lst)   
  (setq vlst nil)
  (foreach en lst
                   (setq ntol (strlen (cadr en)))
                   (setq nn (vl-string-position (ascii "-") (cadr en)))
                   (if (= "" (vl-string-trim "123456789" (substr (cadr en) (+ nn 2))))
                       (setq vlst (cons (cons (* 27 (atoi (substr (cadr en) (+ nn 2)))) en) vlst))
                       (setq vlst (cons (cons (+ (* 27 (atoi (substr (cadr en) (+ nn 2) (- ntol 1)))) (- (ascii (substr (cadr en) ntol)) (ascii "a") -1)) en) vlst))
                        )
        )
(mapcar 'cdr (vl-sort vlst '(lambda (ea eb)(< (car ea) (car eb)))))
)
(ff lst)
((3 "ABC-3") (2 "ABC-4a") (1 "ABC-2a") (5 "ABC-1a") (6 "ABC-1") (7 "ABC-3a") (8 "ABC-2"))
FF
((6 "ABC-1") (5 "ABC-1a") (8 "ABC-2") (1 "ABC-2a") (3 "ABC-3") (7 "ABC-3a") (2 "ABC-4a"))
_$

评分

参与人数 1明经币 +1 收起 理由
xj6019 + 1 赞一个!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2020-2-29 13:44 | 显示全部楼层
mahuan1279 发表于 2020-2-29 12:00
如果字符串仅仅是“ABC-123a”,即前面是“ABC-”,后面是数字加一个小写字母(或者全是数字)的情形,可以 ...

辛苦,谢谢回答!
回复

使用道具 举报

发表于 2021-6-28 22:28 | 显示全部楼层
用了一下,确实不错,希望有更多的布局工具
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 18:59 , Processed in 0.228201 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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