### Author Topic: Heron formula-help with the code  (Read 382 times)

0 Members and 1 Guest are viewing this topic.

#### PM ##### Heron formula-help with the code
« on: February 18, 2021, 06:45:59 AM »
Hi.I am using this code for calculate area with Heron formula .

Code - Auto/Visual Lisp: [Select]
1. (defun c:heron ( / tri-no p1 p2 p3 da db dc s E cp lst cnt fn fp Etotal)
2. (setvar "OSMODE" 9)
3. (command "_layer" "_m" "Heron's formula" "_c" "7" "" "")
4.
5.   (defun tricent (pt1 pt2 pt3)(mapcar '(lambda (x y z) (/ (+ x y z) 3)) pt1 pt2 pt3))
6.   (setq tri-no 0 Etotal 0)
7.   (while (and (setq p1 (getpoint "\nP1 : "))(setq p2 (getpoint "\nP2 : "))(setq p3 (getpoint "\nP3 : "))
8.               (setq da (distance p2 p3)) (setq db (distance p3 p1)) (setq dc (distance p1 p2))
9.               (setq s (/ (+ da db dc) 2.0) ) (setq E (sqrt (* s (- s da) (- s db) (- s dc)))))
10.     ; while valid points are given
11.     (if (assoc (setq cp (tricent p1 p2 p3)) lst)
12.       (prompt "\nPoint allready entered")
13.         (setq lst (append lst (list (cons cp (list (setq tri-no (1+ tri-no)) s da db dc E )))))
14.         (entmakex (list '(0 . "TEXT") (cons 10 cp) (cons 40 0.25) (cons 1 (strcat "E" (itoa tri-no)))))
15.       )
16.     )
17.   )
18.   (if (and (vl-consp lst) (setq fn (vl-filename-mktemp ".txt"))(setq fp (open fn "w")))
19.       (foreach x lst
20.         (setq x (cdr x) tri-no (nth 0 x) s (nth 1 x) da (nth 2 x) db (nth 3 x) dc (nth 4 x) E (last x))
21.           (strcat "E" (vl-princ-to-string tri-no) " = " "\U+221A" " " (vl-princ-to-string (rtos s 2 2 )) " x (" (vl-princ-to-string (rtos s 2 2))
22.                   " - " (vl-princ-to-string (rtos da 2 2 )) ") x (" (vl-princ-to-string (rtos s 2 2)) " - " (vl-princ-to-string (rtos db 2 2 )) ") x ("
23.                   (vl-princ-to-string (rtos s 2 2)) " - " (vl-princ-to-string (rtos dc 2 2 )) ") = " (rtos E 2 2) " sq.m" ) fp)
24.         (setq Etotal (+ Etotal E))
25.       )
26.       (write-line (strcat "E = " (vl-princ-to-string (rtos Etotal 2 2)) " sq.m") fp)
27.       (close fp)
28.     )
29.   )
30.   (startapp "notepad" fn)
31.   (setvar "OSMODE" 9)
32.   (princ)
33. )
34.

This code export the results in notepad and then i paste them in mtext.

I want to do two changes

1) if it possible to insert the results with mtext in autocad
2) i want  this part of the code
Code - Auto/Visual Lisp: [Select]
1.  " " (vl-princ-to-string (rtos s 2 2 )) " x (" (vl-princ-to-string (rtos s 2 2))
2.                   " - " (vl-princ-to-string (rtos da 2 2 )) ") x (" (vl-princ-to-string (rtos s 2 2)) " - " (vl-princ-to-string (rtos db 2 2 )) ") x ("
3.                   (vl-princ-to-string (rtos s 2 2)) " - " (vl-princ-to-string (rtos dc 2 2 )) ")

if ti possible to be overlined

If (1) is not possible to be done then i want after paste the the results in mtext the text of the (2) be overlined.

Thanks

#### PM ##### Re: Heron formula-help with the code
« Reply #1 on: February 18, 2021, 03:45:19 PM »
Any ideas how to  overline a Mtext?

Thanks

#### BIGAL

• Swamp Rat
• Posts: 657
• 30 + years of using Autocad ##### Re: Heron formula-help with the code
« Reply #2 on: February 18, 2021, 06:23:20 PM »
I do it this way make the mtext then get the entlast using vla-put-textstring add the underline code to front of your text string.

"abcde" underlined "\\Labcde"

But text string could look like this "{\\fArial|b0|i0|c0|p34;abcde}" this seemed to work "{\\L\\fArial|b0|i0|c0|p34;abcde}"
A man who never made a mistake never made anything

#### PM ##### Re: Heron formula-help with the code
« Reply #3 on: March 18, 2021, 03:00:25 PM »
Hi BIGAL. I want to overline the Mtext. Can any one fix it ?

Thanks

#### BIGAL

• Swamp Rat
• Posts: 657
• 30 + years of using Autocad ##### Re: Heron formula-help with the code
« Reply #4 on: March 18, 2021, 09:10:48 PM »
Do you understand how to get the true mtext string overline was easy TextString = "{\\Oabcd}" just made some mtext set it to what I wnat and looked at tetxstring.
A man who never made a mistake never made anything