bkkar_55 Posted October 31, 2016 Share Posted October 31, 2016 Hi all I'm Looking for a lisp to get distance from 2 points (by user) and insert the result to attribute block After surfing I found this code (defun c:FOO (/ pt) (if (setq pt (getpoint "\nSpecify base point: ")) (while (and (not (initget 32)) (/= nil (setq pt2 (getpoint pt "\nSpecify point to measure: ")))) (prompt (strcat "\n >> Distance >> " (rtos (distance pt pt2) 2 2)))) (prompt "\n** Invalid point ** ")) (princ)) created by BlackBox Quote Link to comment Share on other sites More sharing options...
David Bethel Posted October 31, 2016 Share Posted October 31, 2016 This could be a better front end : [b][color=BLACK]([/color][/b]defun c:ptd [b][color=FUCHSIA]([/color][/b]/ p1 p2 d3 d2 dx dy dz[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]initget 1[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq p1 [b][color=NAVY]([/color][/b]getpoint [color=#2f4f4f]"\n1st Point: "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]initget 1[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq p2 [b][color=NAVY]([/color][/b]getpoint p1 [color=#2f4f4f]"\n2nd Point: "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq d3 [b][color=NAVY]([/color][/b]distance p1 p2[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq d2 [b][color=NAVY]([/color][/b]distance [b][color=MAROON]([/color][/b]list [b][color=GREEN]([/color][/b]car p1[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]cadr p1[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]list [b][color=GREEN]([/color][/b]car p2[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]cadr p2[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]princ [b][color=NAVY]([/color][/b]strcat [color=#2f4f4f]"\n3D="[/color] [b][color=MAROON]([/color][/b]rtos d3 2 2[b][color=MAROON])[/color][/b] [color=#2f4f4f]"\t2D="[/color] [b][color=MAROON]([/color][/b]rtos d2 2 2[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq dx [b][color=NAVY]([/color][/b]- [b][color=MAROON]([/color][/b]max [b][color=GREEN]([/color][/b]car p1[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]car p2[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]min [b][color=GREEN]([/color][/b]car p1[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]car p2[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq dy [b][color=NAVY]([/color][/b]- [b][color=MAROON]([/color][/b]max [b][color=GREEN]([/color][/b]cadr p1[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]cadr p2[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]min [b][color=GREEN]([/color][/b]cadr p1[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]cadr p2[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq dz [b][color=NAVY]([/color][/b]- [b][color=MAROON]([/color][/b]max [b][color=GREEN]([/color][/b]caddr p1[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]caddr p2[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]min [b][color=GREEN]([/color][/b]caddr p1[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]caddr p2[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]princ [b][color=NAVY]([/color][/b]strcat [color=#2f4f4f]"\nX Axis:"[/color] [b][color=MAROON]([/color][/b]rtos dx 2 2[b][color=MAROON])[/color][/b] [color=#2f4f4f]"\tY Axis:"[/color] [b][color=MAROON]([/color][/b]rtos dy 2 2[b][color=MAROON])[/color][/b] [color=#2f4f4f]"\tZ Axis:"[/color] [b][color=MAROON]([/color][/b]rtos dz 2 2[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] Is everything WCS ? Do you have the attributed block ? What exactly are you looking for as far as values and format ? -David Quote Link to comment Share on other sites More sharing options...
Grrr Posted October 31, 2016 Share Posted October 31, 2016 I think that he may be expecting something like this: (defun C:test ( / *error* lst e ) (defun *error* (msg) (princ "\nSorry that I forced you to press Esc, to exit!") (princ)) (if (and (car (setq lst (list (getpoint "\nFirst point: ")))) (apply 'and (setq lst (append lst (list (getpoint "\nSecond point: " (car lst))))))) (while (not (and (setq e (car (nentsel (strcat "\nDistance to fill is: \"" (rtos (apply 'distance lst)) "\" units, Select text/mtext/attrib.")))) (vl-position (cdr (assoc 0 (entget e))) '("TEXT" "MTEXT" "ATTRIB")) (not (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-TextString (list (vlax-ename->vla-object e) (rtos (apply 'distance lst)))))) ) ) e ) ) (princ) );| defun |; (or vlax-get-acad-object (vl-load-com)) (princ) Quote Link to comment Share on other sites More sharing options...
bkkar_55 Posted October 31, 2016 Author Share Posted October 31, 2016 thanks a lot David Bethel and Grrr..:) After Private chatting with Tharwat.:notworthy: He successfully solved my request I Appreciate your good effort thank's all Quote Link to comment Share on other sites More sharing options...
Tharwat Posted November 1, 2016 Share Posted November 1, 2016 You are welcome. Quote Link to comment Share on other sites More sharing options...
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.