sakinen Posted July 21, 2009 Share Posted July 21, 2009 I came accros this interesting lisp a while ago and i want to modify it, (defun c:cd () (setvar "cmdecho" 0) (graphscr) (setq p1 (getpoint "\nPick start point ") p2 (getpoint p1 "\nPick next point ") d1 (distance p1 p2) prdist (strcat "\nDistance: " (rtos d1)) ) (princ prdist) (setq p3 (getpoint p2 "\nPick next point or RETURN if done ")) (while p3 (setq d0 (distance p2 p3) d1 (+ (distance p2 p3) d1) p2 p3 prdist (strcat "\nDistance: " (rtos d0) ", Cumulative distance: " (rtos d1)) ) (princ prdist) (setq p3 (getpoint p2 "\nPick Next Point ")) ) (setq cumd (strcat "Cumulative distance --> " (rtos d1))) (prompt cumd) (princ) ) (princ "\nType CD to run Cumulative Distance") (princ) This lisp gets cumulative distance from multiple distance points. Modification idea is when final distance is selected, i need to be prompted to sellect block attribute. When i select attribute, value of cumulative distance is now value of selected attribute. It would be neet if i could at any time choose scale factor (default value 10 for example) which would multiply cumulative distance entered in attribute value. Any ideas? Quote Link to comment Share on other sites More sharing options...
StevenMc Posted July 21, 2009 Share Posted July 21, 2009 hi, sorry cant help you out with the modifying the LISP, but would it be possible to send me the LISP file or help me out with how i use the codes. sounds like a useful LISP oh and LeeMac is the main man for helping you mod it Quote Link to comment Share on other sites More sharing options...
sakinen Posted July 21, 2009 Author Share Posted July 21, 2009 Just copy/paste code above and put it in a txt file and then save it like this: name.lsp. Go to tools-autolisp-load aplication...and load saved file. Type cd and pick distances. Very easy to use. Quote Link to comment Share on other sites More sharing options...
StevenMc Posted July 21, 2009 Share Posted July 21, 2009 Just copy/paste code above and put it in a txt file and then save it like this: name.lsp. Go to tools-autolisp-load aplication...and load saved file. Type cd and pick distances. Very easy to use. got it thanks :wink:. Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted July 21, 2009 Share Posted July 21, 2009 oh and LeeMac is the main man for helping you mod it Haha, thanks for the plug Steve, I'm sure I've made a LISP like the one requested already...but I'll see if I get some time Quote Link to comment Share on other sites More sharing options...
sakinen Posted July 21, 2009 Author Share Posted July 21, 2009 No hurry Lee. Thanks for the trouble. Quote Link to comment Share on other sites More sharing options...
StevenMc Posted July 21, 2009 Share Posted July 21, 2009 Haha, thanks for the plug Steve, I'm sure I've made a LISP like the one requested already...but I'll see if I get some time no problem haha Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted July 22, 2009 Share Posted July 22, 2009 Try this guys: [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:MacDis [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] scl pt lst dis dLst grdata gr dat ent[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] scl [b][color=#009999]1.[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] pt [b][color=RED]([/color][/b][b][color=BLUE]getpoint[/color][/b] [b][color=#ff00ff]"\nSelect Point: "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] lst [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] pt lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]initget[/color][/b] [b][color=#ff00ff]"Scale"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] pt [b][color=RED]([/color][/b][b][color=BLUE]getpoint[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] lst[b][color=RED])[/color][/b] [b][color=#ff00ff]"\nSelect Point [scale]: "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cond[/color][/b] [b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]LIST[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]type[/color][/b] pt[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] dis [b][color=RED]([/color][/b][b][color=BLUE]distance[/color][/b] pt [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b] lst [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] pt lst[b][color=RED])[/color][/b] dLst [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]*[/color][/b] scl dis[b][color=RED])[/color][/b] dLst[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"\n<{:: Distance: "[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b] dis[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]=[/color][/b] scl [b][color=#009999]1.[/color][/b][b][color=RED])[/color][/b] [b][color=#ff00ff]""[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]" :: After Scaling: "[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]*[/color][/b] scl dis[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=#ff00ff]" :: Total: "[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]apply[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]+[/color][/b] dLst[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=#ff00ff]" ::}>"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=BLUE]t[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=#ff00ff]"Scale"[/color][/b] pt[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]initget[/color][/b] [b][color=#009900]6[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]or[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] scl [b][color=RED]([/color][/b][b][color=BLUE]getreal[/color][/b] [b][color=#ff00ff]"\nSpecify Scale Factor <1.0>: "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] scl [b][color=#009999]1.[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]t[/color][/b] [b][color=BLUE]nil[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] dLst [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] msg [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#ff00ff]"\nSelect Attribute: "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] grdata [b][color=RED]([/color][/b][b][color=BLUE]grread[/color][/b] [b][color=DARKRED]'[/color][/b]t [b][color=#009900]13[/color][/b] [b][color=#009900]2[/color][/b][b][color=RED])[/color][/b] gr [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] grdata[b][color=RED])[/color][/b] dat [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] grdata[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cond[/color][/b] [b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=#009900]3[/color][/b] gr[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]listp[/color][/b] dat[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ent [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]nentselp[/color][/b] dat[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=#ff00ff]"ATTRIB"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=#009900]0[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]entget[/color][/b] ent[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-put-TextString[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-ename->vla-object[/color][/b] ent[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]apply[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]+[/color][/b] dLst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"\n** Object Not an Attribute **"[/color][/b] msg[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=BLUE]or[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=#009900]25[/color][/b] gr[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=#009900]2[/color][/b] gr[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vl-position[/color][/b] dat [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#009900]13[/color][/b] [b][color=#009900]32[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#ff00ff]"\n** User Quit **"[/color][/b][b][color=RED])[/color][/b] [b][color=BLUE]nil[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]t[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] Quote Link to comment Share on other sites More sharing options...
sakinen Posted July 23, 2009 Author Share Posted July 23, 2009 Thanks man, works like a charm. Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted July 23, 2009 Share Posted July 23, 2009 Thanks man, works like a charm. Excellent 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.