图框排序函数
本帖最后由 尘缘一生 于 2022-12-4 19:44 编辑对秋榄大侠的图框排序函数,进行下容差补充,
对一行图框,排列错位的,进行容差
注:对于画图,图幅不统一者(例:实际都是1号图,但画的图电子版却是大大小小),无效,大大小的那种。实际上,那种画法也很多,
要求高的设计院是不允许的。
[*];图框排序左右上下排序点表----(一级)-----
[*];lis ((p1 p2) (p3 p4)...))包容合对角点表之表
[*];1 2 3 4
[*];5 6 7 8
[*];秋榄,MODIFY 尘缘一生
[*](defun order-pt1 (lis)
[*](setq lis
[*] (vl-sort lis
[*] '(lambda (f1 f2 / p1 p2 p-3 p3 p4 rt x1 y1 x2 y2)
[*] ;x1, y1对应于第一组的图框中心点的坐标
[*] (setq p1 (car f1) p2 (cadr f1))
[*] (setq p-3 (list (car p2) (cadr p1)));第一图框右下角
[*] (setq x1 (* (+ (car p1) (car p2)) 0.5))
[*] (setq y1 (* (+ (cadr p1) (cadr p2)) 0.5))
[*] (setq p3 (car f2) p4 (cadr f2))
[*] (setq x2 (* (+ (car p3) (car p4)) 0.5))
[*] (setq y2 (* (+ (cadr p3) (cadr p4)) 0.5))
[*] (if (< (abs (- y1 y2)) (* 0.2 (distance p2 p-3)));如果中心点y坐标之差小于第一个图框高度的1/5倍
[*] (setq y1 y2) ; 排序认为在同一行
[*] )
[*] (setq rt (< y1 y2)) ;优先Y坐标比较,小的话在前
[*] (if (and (null tr) (equal y1 y2 1e1))
[*] ;Y坐标相同时,比较X坐标,大的话在前
[*] (setq rt (> x1 x2))
[*] )
[*] rt
[*] )
[*] )
[*])
[*]lis
[*])
链接:https://pan.baidu.com/s/1VyaYDqSsYxiBMbk6OzR91g
提取码:m3lb
听说过秋枫,没听说过秋榄 Model中同样的出图图框,比例不同,其大小不同很正常。在layout里面才能一样大小。 秋榄是谁?满头的问号
+100861000010010 赞,感谢大佬分享;P
页:
[1]