你留言的那个问题,我 - (defun c:tt();标注矩形高*宽(高为Y方向,宽为X方向),倾斜的矩形宽高判断标准不明确,为保持准确性,不参与计算。
- (setq ss(ssget '((0 . "lwpolyline"))))
- (setq i 0 lst'())
- (repeat (sslength ss)
- (setq plw(ssname ss i))
- (setq pts(mapcar 'cdr (vl-remove-if '(lambda(a)(/= (car a) 10)) (entget plw))))
- (setq pts1(vl-sort pts '(lambda(a b) (<= (car a) (car b)))))
- (setq hh(abs (- (cadr (car pts1)) (cadr (cadr pts1))))
- ww (- (car (caddr pts1)) (car (car pts1))))
- (if
- (or
- (and (equal (car (car pts)) (car (cadr pts)) 0.001)
- (equal (car (caddr pts)) (car (cadddr pts)) 0.001)
- (equal (cadr(car pts)) (cadr (cadddr pts)) 0.001)
- (equal (cadr(cadr pts)) (cadr (caddr pts)) 0.001)
- )
- (and (equal (cadr (car pts)) (cadr (cadr pts)) 0.001)
- (equal (cadr (caddr pts)) (cadr (cadddr pts)) 0.001)
- (equal (car(car pts)) (car (cadddr pts)) 0.001)
- (equal (car(cadr pts)) (car (caddr pts)) 0.001)
- )
- )
- (setq lst (append lst (list (list hh ww))))
- )
- (setq i(1+ i))
- )
- (setq lst(vl-sort lst '(lambda(a b) (<= (car a) (car b)))))
- (setq tmp_lst'())
- (setq i 0)
- (while lst
- (setq tmp_lst(append tmp_lst (list (list (car lst)
- (- (length lst)
- (length (setq lst(vl-remove (car lst) lst))))))))
- )
- (setq lst tmp_lst)
-
- (setq pt(getpoint "\n文字插入点:"))
- ;;; (command "_.TEXT" "c" (polar p2 (* pi 0.5) (* 2 (getvar "textsize"))) (getvar "textsize") "0" "高*宽=数量")
- (entmake (list '(0 . "text")(cons 1 "高*宽=数量") (cons 10 pt)(cons 40 (getvar "textsize"))))
- (setq i 0)
- (repeat (length lst)
- (setq hh(car (car (nth i lst)))
- ww(cadr (car (nth i lst)))
- co(cadr (nth i lst)))
- (entmake (list '(0 . "text")
- (cons 1 (strcat (rtos hh) "*" (rtos ww) "=" (itoa co)))
- (cons 10 (polar pt (* pi 1.5) (* (1+ i) (* 2 (getvar "textsize")))))
- (cons 40 (getvar "textsize"))))
- (setq i(1+ i))
- )
- )
把你的那个程序重新写了一下,你可以试试看用这个 |