明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2079|回复: 4

[基础] 求助怎么实现cad多边形顶点从左上角顺时针重排序

[复制链接]
发表于 2017-12-13 18:07 | 显示全部楼层 |阅读模式
求助怎么实现cad多边形顶点从左上角顺时针重排序
发表于 2017-12-14 11:41 | 显示全部楼层
回复 支持 1 反对 0

使用道具 举报

发表于 2017-12-14 18:51 | 显示全部楼层
  1. ;;以指定起点逆时针重新排列多段线
  2. ;;参数1:点表、凸度表((点 凸度)(点 凸度)(点 凸度)……)
  3. ;;参数2:起点索引号
  4. ;;参数3:是否反向T为反向nil不反
  5. (defun qidiansort (lss nn clock)
  6. (if clock (setq nn (1+ nn)))
  7. (setq lss(try-SortList lss nn))
  8. (if clock
  9.   (setq lss (reverse lss)
  10.    lss(try-SortList(cadr(setq lssx(try-Array-Matrix lss)))1);将凸度倒退一步
  11.    lss(mapcar '- lss)
  12.    lss2(car lssx)
  13.    lss(try-Array-Matrix (list lss2 lss))
  14.   )
  15. )
  16. lss
  17. )

  18. ;; 以表内指定序号为首重新排序
  19. ;;(try-SortList 任意表 序号(零基)
  20. ;;参数:任意表
  21. ;; (try-SortList '(1 2 3 4 5 6 7 8 9 10) 4)
  22. ;;                →(5 6 7 8 9 10 1 2 3 4)
  23. (defun try-SortList(lst sub / lists n pt_list retun)
  24. (setq lists '())
  25. (setq n (length lst))
  26. (repeat n
  27.   (setq lists(cons (nth sub lst) lists))
  28.   
  29.   (setq sub(1+ sub))
  30.   (if(= sub n)(setq sub 0))
  31. )
  32. (reverse lists)
  33. )

  34. ;; SortList 以表内指定序号为首重新排序 (SortList 表 序号(零基))
  35. ;; (SortList '(1 2 3 4 5 6 7 8 9 10) 4) → '(5 6 7 8 9 10 1 2 3 4)
  36. (defun SortList (lst sub)
  37.   (setq lst (xyp-List-Div lst sub)
  38. lst (append (cdr lst) (list (car lst)))
  39. lst (apply 'append lst)
  40.   )
  41. )
  42. ;;矩阵互换
  43. ;(try-Array-one2n'((0 1 2 3 4)(5 6 7 8 9)(a b c d e))))
  44. ; <->'((0 5 a)(1 6 b)(2 7 c)(3 8 d)(4 9 e))
  45. (defun try-Array-Matrix(lst)(apply 'mapcar (cons 'list lst)))


借花献佛  这样就好做了吧,坐标点排序找到坐上点坐标,然后重绘多线段
发表于 2018-2-11 19:54 来自手机 | 显示全部楼层
这个程序怎样运行,快捷键是什么?
发表于 2021-1-28 10:45 | 显示全部楼层
这些正是需要的,非常感谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-20 15:39 , Processed in 0.250237 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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