明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1413|回复: 3

[函数] 如何删除坐标点相同的表元素,保留第一次出现的那个元素

[复制链接]
发表于 2014-10-18 11:28:34 | 显示全部楼层 |阅读模式
本帖最后由 南国浪子 于 2014-10-18 11:30 编辑

(
((10 301.618 399.453 0.0) <图元名: 7b9c24d0>)
((10 301.618 399.453 0.0) <图元名: 7b9c24d8>)
((10 216.618 399.453 0.0) <图元名: 7b9c24e0>)
((10 216.618 399.453 0.0) <图元名: 7b9c24e8>)
((10 216.618 494.453 0.0) <图元名: 7b9c24f0>)
((10 216.618 494.453 0.0) <图元名: 7b9c24f8>)
((10 131.618 399.453 0.0) <图元名: 7b9c2500>)
((10 131.618 399.453 0.0) <图元名: 7b9c2508>)
((10 131.618 494.453 0.0) <图元名: 7b9c2510>)
((10 131.618 494.453 0.0) <图元名: 7b9c2518>)
((10 166.618 494.453 0.0) <图元名: 7b9c2520>)
((10 266.618 399.453 0.0) <图元名: 7b9c2530>)
)
如以上自定义表,现在需要将坐标点相同的表元素删除,只保留第一次出现的那个,如上表最终的结果为
(
((10 301.618 399.453 0.0) <图元名: 7b9c24d0>)
((10 216.618 399.453 0.0) <图元名: 7b9c24e0>)
((10 216.618 494.453 0.0) <图元名: 7b9c24f0>)
((10 131.618 399.453 0.0) <图元名: 7b9c2500>)
((10 131.618 494.453 0.0) <图元名: 7b9c2510>)
((10 166.618 494.453 0.0) <图元名: 7b9c2520>)
((10 266.618 399.453 0.0) <图元名: 7b9c2530>)
)
拜求各路高手不吝赐教!
发表于 2014-10-18 11:43:14 | 显示全部楼层
  1. (defun aaa (lst / lst1 lst2 a b)
  2.   (setq        lst1 '()
  3.         lst2 '()
  4.   )
  5.   (foreach a lst
  6.     (setq b (car a))
  7.     (if        (not (member b lst1))
  8.       (setq lst2 (cons a lst2)
  9.             lst1 (cons b lst2)
  10.       )
  11.     )
  12.   )
  13.   lst2
  14. )
 楼主| 发表于 2014-10-18 11:54:34 | 显示全部楼层
xyp1964 发表于 2014-10-18 11:43

多谢大侠赐教。。
发表于 2014-10-18 14:14:07 | 显示全部楼层
本帖最后由 llsheng_73 于 2014-10-18 14:25 编辑

  1. (defun delsame(lst n / a b);;lst嵌套表,n为子表第几项
  2.   (while(setq a(cons(car lst)a)b(nth n(car a))lst(vl-remove-if'(lambda(x)(equal(nth n x)b))(cdr lst))))
  3.   (reverse a))


(delsame '(((10 301.618 399.453 0.0) <图元名: 7b9c24d0>)
((10 301.618 399.453 0.0) <图元名: 7b9c24d8>)
((10 216.618 399.453 0.0) <图元名: 7b9c24e0>)
((10 216.618 399.453 0.0) <图元名: 7b9c24e8>)
((10 216.618 494.453 0.0) <图元名: 7b9c24f0>)
((10 216.618 494.453 0.0) <图元名: 7b9c24f8>)
((10 131.618 399.453 0.0) <图元名: 7b9c2500>)
((10 131.618 399.453 0.0) <图元名: 7b9c2508>)
((10 131.618 494.453 0.0) <图元名: 7b9c2510>)
((10 131.618 494.453 0.0) <图元名: 7b9c2518>)
((10 166.618 494.453 0.0) <图元名: 7b9c2520>)
((10 266.618 399.453 0.0) <图元名: 7b9c2530>)) 0)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-24 02:21 , Processed in 0.148976 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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