Author Topic: Please help the members to modify the lisp  (Read 243 times)

0 Members and 1 Guest are viewing this topic.

HOSNEYALAA

  • Mosquito
  • Posts: 18
Please help the members to modify the lisp
« on: December 02, 2018, 04:22:21 PM »
Hello all
I have a code from the great friend Lee Mac

Selects several texts and gives the average AND

Draws a line between the texts and the average value
Is it possible, when setting the average value, to paint a line directly?

(defun c:avg ( / a b g i l p s u COT SUM SUMM  )
           (SETQ SUM 0)
           (SETQ COT 0)
   (if (setq s (ssget '((0 . "MTEXT,TEXT"))))
       (progn
           (repeat (setq i (sslength s))
               (setq p (assoc 10 (entget (ssname s (setq i (1- i))))))
               (setq u (cons (trans (cdr p) 0 1) u))
               (setq l (cons p l))
          (setq SUMM (ATOF (CDR (ASSOC 1 (entget (ssname s I))))));LEVEL
          (setq SUM (+ SUM SUmM))
          (setq COT (1+ COT))
           (eval SUM)
               )
        (SETQ MEEM (/ SUM COT))
        (SETQ DDD (RTOS MEEM 2 2))
        (SETQ PO (GETPOINT "\nPlease Select a Point."))
        (command "-mtext" PO "w" "0" (strcat "Avg=" DDD) "" )
   
;;;           (princ "\nSelect Point: ")
           (while
               (progn (setq g (grread t 13 2) a (car g) b (cadr g))
                   (cond
                       (   (= 5 a) (redraw)
                           (foreach x u (grdraw x b 1 1)) t
                       )
                       (   (= 3 a)
                           (if (setq s (ssget b '((0 . "MTEXT,TEXT"))))
                               (progn
                                   (setq p (cdr (assoc 10 (entget (ssname s 0)))))
                                   (foreach x l (entmakex (list (cons 0 "LINE") x (cons 11 p)))) nil
                               )
;;;                               (princ "\nPlease Select a Point.")
                           )
                       )
                   )
               )
           )
       )
   )
   (redraw) (princ)
)
« Last Edit: December 02, 2018, 04:32:50 PM by HOSNEYALAA »

HasanCAD

  • Swamp Rat
  • Posts: 1263
Re: Please help the members to modify the lisp
« Reply #1 on: December 04, 2018, 10:08:43 PM »
Code - Auto/Visual Lisp: [Select]
  1. (defun c:avg ( / a b g i l p s u COT SUM SUMM  )    ; Lee Mac
  2.           (SETQ SUM 0)
  3.           (SETQ COT 0)
  4.   (if (and
  5. (setq s (ssget '((0 . "MTEXT,TEXT"))))
  6. (SETQ PO (GETPOINT "\nPlease Select a Point."))
  7. )
  8.       (progn
  9.           (repeat (setq i (sslength s))
  10.               (setq p (assoc 10 (entget (ssname s (setq i (1- i))))))
  11.     (entmakex (list (cons 0 "LINE") P (cons 11 PO)))
  12.               (setq u (cons (trans (cdr p) 0 1) u))
  13.               (setq l (cons p l))
  14.          (setq SUMM (ATOF (CDR (ASSOC 1 (entget (ssname s I))))));LEVEL
  15.          (setq SUM (+ SUM SUmM))
  16.          (setq COT (1+ COT))
  17.           (eval SUM)
  18.               )
  19.        (SETQ MEEM (/ SUM COT))
  20.        (SETQ DDD (RTOS MEEM 2 2))        
  21.        (command "-mtext" PO "w" "0" (strcat "Avg=" DDD) "" )
  22. )
  23.     )
  24.  )

HasanCAD

  • Swamp Rat
  • Posts: 1263
Re: Please help the members to modify the lisp
« Reply #2 on: December 05, 2018, 09:24:16 PM »
Or this
Code - Auto/Visual Lisp: [Select]
  1. (defun c:avg ( / a b g i l p s u COT SUM SUMM  )  ; Lee Mac
  2.           (SETQ SUM 0)
  3.           (SETQ COT 0)
  4.   (if (setq s (ssget '((0 . "MTEXT,TEXT"))))
  5.       (progn
  6.           (repeat (setq i (sslength s))
  7.               (setq p (assoc 10 (entget (ssname s (setq i (1- i))))))
  8.               (setq u (cons (trans (cdr p) 0 1) u))
  9.               (setq l (cons p l))
  10.          (setq SUMM (ATOF (CDR (ASSOC 1 (entget (ssname s I))))));LEVEL
  11.          (setq SUM (+ SUM SUmM))
  12.          (setq COT (1+ COT))
  13.           (eval SUM)
  14.               )
  15.        (SETQ MEEM (/ SUM COT))
  16.        (SETQ DDD (RTOS MEEM 2 2))
  17.        (SETQ PO (GETPOINT "\nPlease Select a Point."))
  18.        (command "-mtext" PO "w" "0" (strcat "Avg=" DDD) "" )
  19.  
  20. ;;;           (princ "\nSelect Point: ")
  21.           (while
  22.               (progn (setq g (grread t 13 2) a (car g) b (cadr g))
  23.                   (cond
  24.                       (   (= 5 a) (redraw)
  25.                           (foreach x u (grdraw x b 1 1)) t
  26.                       )
  27.                       (   (= 3 a)
  28.                           (if (setq s (ssget b '((0 . "MTEXT,TEXT"))))
  29.                               (progn
  30.                                   (setq p (cdr (assoc 10 (entget (ssname s 0)))))
  31.                                   (foreach x l (entmakex (list (cons 0 "LINE") x (cons 11 p)))) nil
  32.                               )
  33. ;;;                               (princ "\nPlease Select a Point.")
  34.                           )
  35.                       )
  36.                   )
  37.               )
  38.           )
  39. (foreach x l (entmakex (list (cons 0 "LINE") x (cons 11 PO) )))
  40.       )
  41.   )
  42.   (redraw) (princ)
  43.  )

HasanCAD

  • Swamp Rat
  • Posts: 1263
Re: Please help the members to modify the lisp
« Reply #3 on: December 05, 2018, 09:25:20 PM »

HOSNEYALAA

  • Mosquito
  • Posts: 18
Re: Please help the members to modify the lisp
« Reply #4 on: December 06, 2018, 12:12:51 AM »
thank you very much, my brother HasanCAD
The code works well
Thanks