Jump to content

Cumulative distance in attribute


sakinen

Recommended Posts

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?

Link to comment
Share on other sites

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 ;)

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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:.

Link to comment
Share on other sites

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 :)

Link to comment
Share on other sites

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 o:)

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...