明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4681|回复: 22

排序

  [复制链接]
发表于 2009-11-25 15:57:00 | 显示全部楼层 |阅读模式
求助:按s形顺序提取点坐标程序,如图

本帖子中包含更多资源

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

x
 楼主| 发表于 2009-11-25 18:10:00 | 显示全部楼层
有高手出来帮助下
发表于 2009-11-25 18:49:00 | 显示全部楼层
不知你要在保存之前排序,还是在保存后重新排列?
 楼主| 发表于 2009-11-25 20:17:00 | 显示全部楼层
保存之前排序,先排序,再写入文件
 楼主| 发表于 2009-11-25 21:56:00 | 显示全部楼层
顶一下
发表于 2009-11-25 23:04:00 | 显示全部楼层
本帖最后由 作者 于 2009-11-26 0:40:19 编辑

以下程序是对含整数子列表的列表的排序(按照子列表第一单元从小到大),具体到你的程序中可做些修改
  1. (defun vl-sort-list (lst / index_lst e1 e2 lst1)
  2.   (setq index_lst (vl-sort-i lst
  3.         (function (lambda (e1 e2)
  4.       (< (car e1) (car e2))
  5.            )
  6.         )
  7.     )
  8.   )
  9.   (setq lst1 '())
  10.   (foreach item index_lst
  11.     (setq lst1 (cons (nth item lst) lst1))
  12.   )
  13.   (reverse lst1)
  14. )
  15. (setq lst (vl-sort-list'((1 3 2 3) (3 2 3 5) (2 1 2 3))))
发表于 2009-11-26 00:32:00 | 显示全部楼层

请教xianaihua,也是排序问题, 见附件图,左边的图,想变成右边的效果,谢谢

 

本帖子中包含更多资源

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

x
发表于 2009-11-26 00:37:00 | 显示全部楼层
luyu9635:不明白你的意思。是标号排序还是,图形变换?
 楼主| 发表于 2009-11-26 09:21:00 | 显示全部楼层

此排序不是单纯x或y排序,有些类似最短路径,由起点找下一点

发表于 2009-11-26 11:19:00 | 显示全部楼层

为007编一个

(defun c:ttt ( / ss pt ss1 out n fid x y h)
(if (and (setq ss (ssget '((0 . "CIRCLE"))))
  (setq pt (getpoint "起点:"))
  (setq h (getdist pt "文字高度:"))
    )
    (progn
       (setq ss1 nil out nil)
       (setq n -1)
       (repeat (sslength ss) (setq ss1 (cons (ssname ss (setq n (+ n 1)) ) ss1)))      
       (setq ss1 (mapcar '(lambda (x) (cdr (assoc 10 (entget x)))) ss1))
      
       (setq out (list (cons 0 pt)) n 0)      
       (while ss1
          (setq ss1 (vl-sort ss1 '(lambda (x y) (< (distance (cdr (car out)) (list (car x)(cadr x) 0))
          (distance (cdr (car out)) (list (car y)(cadr y) 0)))))
  out (cons (cons (setq n (+ n 1)) (car ss1)) out)
                ss1 (cdr ss1)
       )  )
       (setq out (cdr (reverse out)))
       (setq fid (open "c:\\test.txt" "w"))
       (foreach x out
   (entmake (list '(0 . "TEXT") (cons 10 (cdr x)) (cons 1 (itoa (car x))) (cons 40 h)))
   (write-line (strcat (itoa (car x)) "," (rtos (cadr x) 2 3) "," (rtos (caddr x) 2 3)  "," (rtos (cadddr x) 2 3)) fid)
       )
       (close fid)
)  )
)

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

本版积分规则

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

GMT+8, 2024-10-2 18:29 , Processed in 0.199741 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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