j_spawn_h Posted April 29, 2011 Posted April 29, 2011 (edited) Can some one please help me with this lisp. I need it to round to the neastest foot and add the ' symbol. And if possible get it to sit above the line instead of on the line. I am using Autocad 2011. This Lisp was created by Tharwat:::: (defun c:Lentxt (/ ss) (if (setq ss (ssget "_:L" '((0 . "LINE")))) ( (lambda (i / ss1 e dis pt1 pt2 pt3) (while (setq ss1 (ssname ss (setq i (1+ i)))) (setq e (entget ss1 )) (setq dis (distance (setq pt1 (cdr (assoc 10 e)))(setq pt2 (cdr (assoc 11 e))))) (cond (( (setq pt3 (polar pt1 (setq ang (angle pt1 pt2)) (/ dis 2.))) ) ((> (car pt1)(car pt2))(setq pt3 (polar pt2 (setq ang (angle pt2 pt1)) (/ dis 2.))) ) ) (entmakex (list (cons 0 "TEXT") (cons 10 (polar pt3 ang 0)) (cons 1 (rtos dis 2)) (cons 50 ang) (cons 40 (getvar 'textsize)))) ))-1) (princ "\n No Line(s) selected") ) (princ) ) Edited April 29, 2011 by j_spawn_h Quote
Tharwat Posted April 29, 2011 Posted April 29, 2011 You should mention where did you get that lisp from or at least bring the link . From Here TharwaT Quote
j_spawn_h Posted April 29, 2011 Author Posted April 29, 2011 I got it from some one who posted it to me last time i came and asked for help. I forgot their tag name. Quote
fuccaro Posted April 29, 2011 Posted April 29, 2011 J_spawn_h We have some simple rules here: Please ensure that you have the right to publish code on a public forum. In most cases, the code you are publishing will be your own and it will be assumed that if no attribution is given, you are the author. However, if you are not the author, you must make this clear and where possible, give credit to the author.Or better go here and read all the thread -you could learn about the CODE tag too. Tharwat I see no intention to harm your reputation, I am sure it was a mistake. Anyway, you could provide your Lisp routines with a short personal header. Quote
j_spawn_h Posted April 29, 2011 Author Posted April 29, 2011 (edited) Sorry I did not know how to go back to old posts. Your lisp works great I was just trying to add to it, but could not figure out how it was getting the number so I could add a (cvunit x "inches" "feet"). Was not taking credit for what he did I just did not know how to find out who gave it to me. I corrected my mistake in the first post. Edited April 29, 2011 by j_spawn_h Quote
David Bethel Posted April 29, 2011 Posted April 29, 2011 Assuming: The lines are drawn in inches and you want to round to the nearest foot: You want 2D distances only You want the text middle justified above the middle of the line You have preset your TEXTSTYLE TEXTSIZE LAYER Everything is WCS Yada Yada Yada Maybe something like this: [b][color=BLACK]([/color][/b]defun c:llabel [b][color=FUCHSIA]([/color][/b]/ ss en ed p10 p11 mpt d2d lan dir tan[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]defun round1 [b][color=NAVY]([/color][/b]r[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]if [b][color=MAROON]([/color][/b]<= 0.5 [b][color=GREEN]([/color][/b]abs [b][color=BLUE]([/color][/b]rem r 1[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]fix [b][color=GREEN]([/color][/b]1+ r[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]fix r[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]and [b][color=NAVY]([/color][/b]setq ss [b][color=MAROON]([/color][/b]ssget [color=#2f4f4f]"X"[/color] '[b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]0 . [color=#2f4f4f]"LINE"[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]while [b][color=MAROON]([/color][/b]setq en [b][color=GREEN]([/color][/b]ssname ss 0[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq ed [b][color=GREEN]([/color][/b]entget en[b][color=GREEN])[/color][/b] p10 [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 10 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] p11 [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 11 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] mpt [b][color=GREEN]([/color][/b]mapcar '[b][color=BLUE]([/color][/b]lambda [b][color=RED]([/color][/b]a b[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]* [b][color=PURPLE]([/color][/b]+ a b[b][color=PURPLE])[/color][/b] 0.5[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] p10 p11[b][color=GREEN])[/color][/b] d2d [b][color=GREEN]([/color][/b]distance [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]reverse p10[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]reverse p11[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] lan [b][color=GREEN]([/color][/b]angle p10 p11[b][color=GREEN])[/color][/b] dir [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]< [b][color=RED]([/color][/b]* pi 0.5[b][color=RED])[/color][/b] lan [b][color=RED]([/color][/b]* pi 1.5[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] - +[b][color=GREEN])[/color][/b] tan [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]> [b][color=RED]([/color][/b]* pi 1.5[b][color=RED])[/color][/b] lan [b][color=RED]([/color][/b]* pi 0.5[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]+ lan pi[b][color=BLUE])[/color][/b] lan[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]entmake [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]cons 0 [color=#2f4f4f]"TEXT"[/color][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 8 [b][color=RED]([/color][/b]getvar [color=#2f4f4f]"CLAYER"[/color][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 7 [b][color=RED]([/color][/b]getvar [color=#2f4f4f]"TEXTSTYLE"[/color][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 40 [b][color=RED]([/color][/b]getvar [color=#2f4f4f]"TEXTSIZE"[/color][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 72 4[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 10 [b][color=RED]([/color][/b]polar mpt [b][color=PURPLE]([/color][/b]dir [b][color=TEAL]([/color][/b]angle p10 p11[b][color=TEAL])[/color][/b] [b][color=TEAL]([/color][/b]* pi 0.5[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]getvar [color=#2f4f4f]"TEXTSIZE"[/color][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 11 [b][color=RED]([/color][/b]polar mpt [b][color=PURPLE]([/color][/b]dir [b][color=TEAL]([/color][/b]angle p10 p11[b][color=TEAL])[/color][/b] [b][color=TEAL]([/color][/b]* pi 0.5[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]getvar [color=#2f4f4f]"TEXTSIZE"[/color][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 50 tan[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 1 [b][color=RED]([/color][/b]strcat [b][color=PURPLE]([/color][/b]itoa [b][color=TEAL]([/color][/b]round1 [b][color=OLIVE]([/color][/b]/ d2d 12.[b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b] [color=#2f4f4f]"'"[/color][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]ssdel en ss[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b] Not well tested. -David Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.