请问lisp中如何把选择的图元排序哪
guanlocust
guanlocust Lv.7
2007年06月10日 21:38:47
只看楼主

选择了图元,然后对每个图元进行遍历的操作,我想问怎样才能对图元排序操作,比如按y坐标的递增的排序进行图元操作那

选择了图元,然后对每个图元进行遍历的操作,我想问怎样才能对图元排序操作,比如按y坐标的递增的排序进行图元操作那
免费打赏
小萝卜的头
2007年06月11日 08:28:19
2楼
先给个按y坐标排序的点表吧。。。
(defun vl-sort_y (ptlist / e1 e2)
(vl-sort ptlist
(function (lambda (e1 e2)
(< (cadr e1) (cadr e2)) ) ) )
)
如果这个不够用的话。再改改。。。
回复
guanlocust
2007年06月11日 22:07:31
3楼
(setq ss (ssget))
(setq sl (sslength ss))
;我是想在这个位置把图元按y坐标排序,然后继续依次后面的图元操作
(setq index 0)
(repeat sl
(setq ent (entget (ssname ss index)))
(setq index (+ 1 index))
回复
biechen
2007年06月12日 08:20:20
4楼
首先要确定用于排序的坐标点,比如说文字的插入点,线段的起点等等,图元不同依据的点就不同,最简单的办法就是用图元的最小外包框的最小点或最大点,至于排序只要确定了排序规则,比如说按x坐标或者按y坐标等,这个应该没什么困难。
有了用于排序的点,有了排序规则,排序就简单了。
回复

相关推荐

APP内打开