明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1622|回复: 4

图框排序函数

[复制链接]
发表于 2022-12-4 09:00:08 | 显示全部楼层 |阅读模式
本帖最后由 尘缘一生 于 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

本帖子中包含更多资源

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

x

评分

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

查看全部评分

发表于 2022-12-4 09:07:52 | 显示全部楼层
听说过秋枫,没听说过秋榄
发表于 2022-12-4 20:50:42 | 显示全部楼层
Model中同样的出图图框,比例不同,其大小不同很正常。在layout里面才能一样大小。
发表于 2022-12-5 14:42:50 | 显示全部楼层
秋榄是谁?满头的问号
+100861000010010   
发表于 2024-3-30 08:22:56 | 显示全部楼层
赞,感谢大佬分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 04:39 , Processed in 0.163112 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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