本帖最后由 作者 于 2005-9-19 13:27:55 编辑
这是我编的LISP程序判断那个图元X坐标最小,先选择图元集(里面有直线和圆弧),再判断那个图元上的点在最左边,也就是X坐标最小,X坐标最小我已求出,但它的Y 坐标怎么求,请高人指点.谢谢!
(defun c:BDXZ (/ X1 X2 I X SST N SA EA) (setvar "cmdecho" 0) (setq sst (ssget)) (setq n (sslength sst)) (setq I 0) (setq X 10000) (setq X1 10001) (setq X2 10002) (while (< I n) (setq ety (entget (ssname sst I))) (setq name (cdr (assoc 0 ety))) (cond ((= name "LINE") (setq x1 (car (cdr (assoc 10 ety)))) (setq x2 (car (cdr (assoc 11 ety))))) ((= name "ARC") (setq Sa (cdr (assoc 50 ety))) (setq ea (cdr (assoc 51 ety))) (IF (OR (>= EA PI) (= SA PI)) (setq X1 (- (car (cdr (assoc 10 ety))) (cdr (assoc 40 ety)))))(= X1 10000)) (T (princ "\n 请重新选择"))) (SETQ I (+ I 1)) (setq X (MIN X X1 X2))) (PRINC "\n 坐标最小点 X=") (princ X) (PRIN1) ) |