没问题,除了双方都有一个选择之外,还有一个对双方都有效的选择。
试试看,让我知道。。。
(defun c:Test (/ leg _LW ss lt rt k)
;; Tharwat 06. jan. 2014 ;;
(defun leg (x e) (cdr (assoc x (entget e))))
(defun _LW (pts)
(entmakex (append (list '(0 . "LWPOLYLINE")
'(100 . "AcDbEntity")
'(100 . "AcDbPolyline")
(cons 90 (length pts))
'(70 . 0)
)
(mapcar (function (lambda (p) (cons 10 (list (car p) (cadr p))))) pts)
)
)
)
(princ "\n Select Dimensions ...")
(if (setq ss (ssget '((0 . "*DIMENSION"))))
(progn ((lambda (i / sn a b)
(while (setq sn (ssname ss (setq i (1+ i))))
(if (< (car (setq a (leg 13 sn))) (car (setq b (leg 14 sn))))
(setq rt (cons b rt)
lt (cons a lt)
)
(setq rt (cons a rt)
lt (cons b lt)
)
)
)
)
-1
)
(if (and (> (length lt) 1) (> (length rt) 1))
(if (progn (initget 6 "Left Right Both")
(setq k (cond ((getkword (strcat "\n Specify a side < "
(cond (*side*)
((setq *side* "Left"))
)
" > :"
)
)
)
(*side*)
)
)
)
(cond ((eq k "Left") (mapcar '_LW (list (vl-sort lt '(lambda (p q) (< (cadr p) (cadr q)))))))
((eq k "Right") (mapcar '_LW (list (vl-sort rt '(lambda (p q) (< (cadr p) (cadr q)))))))
(t
(mapcar '_LW
(list (vl-sort lt '(lambda (p q) (< (cadr p) (cadr q))))
(vl-sort rt '(lambda (p q) (< (cadr p) (cadr q))))
)
)
)
)
)
(princ "\n <!> You should select two dimensions at least <!> ")
)
)
)
(princ)
)
我想实际的绘图会比你发布的rk25134更复杂,你能发布一个更真实的绘图样本吗。
工作正常 任何其他Lisp程序
既然它工作得很好,那么有什么必要要求另一个lisp? 请查看随附的屏幕截图。我使用了最新的例程,并从lisp中输入right选项
我做了你的第一个附加图纸的工作。 如果你对这条线再粗心,请告诉我。
页:
1
[2]