马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
刚接触lisp,想编一个批量打印程序,将图框按先X后Y的顺序打印。
找到一个通用排序工具,试了一下,打印顺序总是不对。我对下面这句不太明白 :
[php](if (or (= xory "xy") (= xory "XY"))
(setq coy (+ (cadr (assoc 10 lp)) (caddr (assoc 10 lp))))
)
[/php]
我不理解“X坐标+Y坐标”后得出什么结果,请指教,谢谢!
通用程序如下:
[php]
;;将选择的图元安X、Y或X+Y坐标排序 (其中SE为选择集,XORY为X、Y或XY
;;
(defun zhy_sort_se (se xory)
(setq newse nil)
(setq n (sslength se))
(setq index 0)
(setq aal '())
(repeat n
(setq name (ssname se index))
(setq lp (entget name))
(if (or (= xory "y") (= xory "Y"))
(setq coy (caddr (assoc 10 lp)))
)
(if (or (= xory "x") (= xory "X"))
(setq coy (cadr (assoc 10 lp)))
)
(if (or (= xory "xy") (= xory "XY"))
(setq coy (+ (cadr (assoc 10 lp)) (caddr (assoc 10 lp))))
)
(setq item (list coy (cdr (assoc 5 lp))))
(setq aal (cons item aal))
(setq index (1+ index))
)
(setq newsort
(vl-sort aal
(function (lambda (e1 e2)
(> (car e1) (car e2))
)
)
)
)
(setq n1 (length newsort))
(setq ind 0)
(repeat n1
(setq ntt (nth ind newsort))
(setq ind (1+ ind))
(setq ty (handent (cadr ntt)))
(if (/= ty nil)
(if (= newse nil)
(setq newse (ssadd ty))
(setq newse (ssadd ty newse))
)
)
)
)
[/php]
广告位,后台可以设置,支持js
您好,您暂时不能浏览帖子的全部内容,请 登录
| 没有账号? 请 注册