这是加载了网络自定义函数吧
是的,
原来下面也是从左到右啊。
代码和视频已更正。 本帖最后由 kucha007 于 2024-2-2 00:01 编辑
XXXXXXXXXXXXX guosheyang 发表于 2024-1-31 20:31
方法一 保证节点方向为顺时针 然后 x从小到大排 x相同时 y从大到小排确定第一点pt1 多段线节点表中 依 ...
我用这个排序方法实现了,先把四个点表按x排序,然后把最x最小的两个点按y排序得出左上和左下,剩余x最大的两个点同样按y排序得出右上和右下 本帖最后由 xyp1964 于 2024-2-2 13:51 编辑
tanle2020 发表于 2024-2-2 12:48
我用这个排序方法实现了,先把四个点表按x排序,然后把最x最小的两个点按y排序得出左上和左下,剩余x最大 ...
(defun abc (pl / ptn ptn1 ptn2 p1 p2 p3 p4)
(setq ptn (mapcar 'cdr (vl-remove-if '(lambda (x) (/= 10 (car x))) (entget pl)))
ptn (vl-sort ptn '(lambda (x y) (> (cadr x) (cadr y))))
)
(mapcar 'set '(p1 p2 p3 p4) ptn)
(setq ptn1 (vl-sort (list p1 p2) '(lambda (x y) (< (car x) (car y))))
ptn2 (vl-sort (list p3 p4) '(lambda (x y) (< (car x) (car y))))
)
(append ptn1 ptn2)
)
(defun abc2 (pl / ptn pptn1 ptn2 p1 p2 p3 p4)
(setq ptn (mapcar 'cdr(vl-remove-if '(lambda (x) (/= (car x) 10)) (entget pl)))
ptn (vl-sort ptn '(lambda (x y) (< (car x) (car y))))
)
(mapcar 'set '(p1 p2 p3 p4) ptn)
(setq ptn1 (vl-sort (list p1 p2) '(lambda (x y) (> (cadr x) (cadr y))))
ptn2 (vl-sort (list p3 p4) '(lambda (x y) (> (cadr x) (cadr y))))
)
(list (car ptn1) (car ptn2) (cadr ptn1) (cadr ptn2))
)
页:
1
[2]