本帖最后由 vitalgg 于 2023-4-22 09:08 编辑
我们知道,使用vl-sort 对列表进行排序时,结果列表会删除相同的元素。
使用这个 list:sort 排序可以保留相同的元素.
- (defun list:sort (lst fun / res)
- "无损排序,vl-sort 可能会删除相同的元素,导致结果列表内的个数小于原列表。list:sort 不会删除表内元素。fun:排序依据"
- "lst"
- "(list:sort '(1 2 3 1 2) '<)"
- (setq res (cons (car lst) nil))
- (while (setq lst (cdr lst))
- (if ((eval fun) (car res)(car lst))
- (setq res (cons (car lst) res))
- (progn
- (setq tmp (cons (car res)nil))
- (while ((eval fun)(car lst)(car tmp))
- (setq tmp (cons (car (setq res (cdr res))) tmp)))
- (setq res (append (reverse (cdr tmp))
- (list (car lst))
- res))))
- )
- (reverse res))
无须复制,在CAD内 安装 @lisp ,可以直接调用这个函数。
将以下代码复制到 CAD 命令行内,回车即可开始安装。
(在代码行里用鼠标连续三击全选,然后右键复制或Ctrl+C 。到CAD命令行内,右键粘贴或Ctrl+V)
- (progn(vl-load-com)(setq s strcat h "http" o(vlax-create-object (s"win"h".win"h"request.5.1"))v vlax-invoke e eval r read)(v o'open "get" (s h"://atlisp.""org/@"):vlax-true)(v o'send)(v o'WaitforResponse 1000)(e(r(vlax-get o'ResponseText))))
关注 公众号,快速查看 @lisp 函数用法
安装 @lisp函数库 VSCode 扩展,在编辑器内查看 函数用法。
|