Dadgad 发表于 2022-7-6 00:19:54

 
虽然在0.3秒内做任何事情听起来都是个好主意,但你建议eldon的方式非常优雅,直截了当,
简单来说,创建自定义lisp似乎不值得。

ymg3 发表于 2022-7-6 00:22:55

达德加德,
 
 
就我而言,这是一个反复出现的问题,为了构建一组点的Delaunay三角剖分,需要解决这个问题。
 
ymg公司

Dadgad 发表于 2022-7-6 00:27:19

 
作为一个非常欣赏那些写Lisp程序的人,以及李·麦克杰出作品的惯常粉丝,
我经常看到新手希望只需点击一个按钮就能完成一整天的工作。
 
显然,这不是其中之一。
 
由于我不擅长写lisps,所以我倾向于寻找类似eldon的模拟解决方案。我也会这样做。
 
无意冒犯。
希望你能解决。
新年快乐。

ymg3 发表于 2022-7-6 00:30:15

达德加德,
 
一点也不生气。
 
我倾向于同一学派。
用锤子杀死苍蝇,通常意味着麻烦。
 
新年快乐!你也是。
 
ymg公司

Lee Mac 发表于 2022-7-6 00:31:41

 
另一种尝试,仅使用一个vl排序表达式:

(defun c:fixpoints2 ( / e i l s )
   (if (setq s (ssget '((0 . "POINT"))))
       (progn
         (repeat (setq i (sslength s))
               (setq e (ssname s (setq i (1- i)))
                     l (cons (cons (cdr (assoc 10 (entget e))) e) l)
               )
         )
         (mapcar
               (function
                   (lambda ( a b )
                     (if (equal (list (caar a) (cadar a)) (list (caar b) (cadar b)) 1e-
                           (entmod (cons (cons -1 (cdr a)) '((8 . "Lower Points"))))
                     )
                   )
               )
               (setq l
                   (vl-sort l
                     (function
                           (lambda ( a b )
                               (if (equal (caar a) (caar b) 1e-
                                 (if (equal (cadar a) (cadar b) 1e-
                                       (< (caddar a) (caddar b))
                                       (< (cadara) (cadarb))
                                 )
                                 (< (caar a) (caar b))
                               )
                           )
                     )
                   )
               )
               (cdr l)
         )
       )
   )
   (princ)
)

 
Lisp方法的一个优势是,如果两个点的X、Y和Z完全相同
它被困住了。
 
ymg公司

ymg3 发表于 2022-7-6 00:34:04

 
..........

Lee Mac 发表于 2022-7-6 00:38:52

很抱歉,由于假期的原因,回复太晚
我非常感谢大家的努力,我喜欢Lee Mac提供的代码,我也要求将较高的值分离到不同的层,只保留那些在其原始层上没有重复的值。
 
祝大家新年快乐

CADWORKER 发表于 2022-7-6 00:40:11

CADWORKER,
 
似乎现在您已经有了低海拔的代码,您应该能够进行创建高海拔所需的少量修改。请认识到,在这里发布代码的人正在花费他们的时间和专业知识(他们为此收费)并将其送走。你应该有足够的尊重,尝试做出轻微的修改,以满足你的要求。如果你没有表现出自己的努力,那么你很可能不会得到任何其他人的努力作为回报。

Snownut 发表于 2022-7-6 00:46:11

我没有看到一幅画。有人贴了吗?
 
我想知道是否所有的点都是地面上的点,并且在零海拔处有一个重复点。这是一个典型的测量问题,但无需lisp即可轻松解决。
 
但是Lisp程序的人有一点圣诞节的工作了

eldon 发表于 2022-7-6 00:47:58

页: 1 [2]
查看完整版本: 更改重复点的层