Jump to content

LISP acting funny... Not in a comedic way!


JPlanera

Recommended Posts

I am a self taught novie LISP writer, let it be known right off the bat...

This routine was created to draw step shafts using diameters and incremental lengths... The problem is that sometimes the calculations dont generate a line. I have noticed this happens more when zoomed out. Also, my "while" loop is completely wrong, and i tried to put an option in there but that didnt go well... Any help/advice would be greatly appreciated.

 

Edit: I get an error "Zero length line created at (X,Y,Z) "

 

 
(DEFUN C:FPI ( / x pt1 Y1 Y1a Y1b X1 X1a Y2 Y2a Y2b X2 X2a)

(defun dtr (x) 
(* pi (/ x 180.0))
 )

(setq pt1 (getpoint "\nSelect Start Point:"))
(setq Y1 (getreal "\nEnter Diameter:"))
(setq Y1a (/ Y1 2))
(setq Y1b (polar pt1 (dtr 90) Y1a))
(command "LINE" pt1 Y1b "")

(setq X1 (getreal "\nEnter Length:"))
(setq X1a (polar Y1b (dtr 180) X1))
(command "LINE" Y1b X1a "")

(while

(setq Y2 (getreal "\nEnter Diameter:"))
(setq Y2a (/ (- Y2 Y1) 2))
(setq Y2b (polar X1a (dtr 90) Y2a))
(command "LINE" X1a Y2b "")

(setq X2 (getreal "\nEnter Length:"))
(setq X2a (polar Y2b (dtr 180) X2))
(command "LINE" Y2b X2a "")
(setq Y1 (getreal "\nEnter Diameter:"))
(setq Y1a (/ (- Y1 Y2) 2))
(setq Y1b (polar X2a (dtr 90) Y1a))
(command "LINE" X2a Y1b "")

(setq X1 (getreal "\nEnter Length:"))
(setq X1a (polar Y1b (dtr 180) X1))
(command "LINE" Y1b X1a ""))(PRINC))

Edited by JPlanera
added info
Link to comment
Share on other sites

To begin with, you are having issues because of running osnaps. Either temporarily set osmode to zero, precede each point (within a command call) with "_non" or use entmod/VLA to draw the line.

Link to comment
Share on other sites

Hi Jplanera,

 

Reading your "problem", the first thing that comes in mind is "osnaps". Make shure you turn off osnap before drawing a line. The osnaps always mess things up.

 

Also, you do use a lot of "setq" wich can be decreased a bit, have a look below:

 

 
[size=1][font=Fixedsys][color=#ff0000]([/color][color=blue]DEFUN[/color] C:FPI [color=red]([/color][color=blue]/[/color] x pt1 Y1 Y1a Y1b X1 X1a Y2 Y2a Y2b X2 X2a OldOsmode[color=red])[/color][/font][/size]

[size=1][font=Fixedsys][color=purple]; added[/color][/font][/size]
[size=1][font=Fixedsys] [color=red]([/color][color=blue]setq[/color] OldOsmode [color=red]([/color][color=blue]getvar[/color] [color=#ff00ff]"OSMODE"[/color][color=red]))[/color][/font][/size]
[size=1][font=Fixedsys] [color=red]([/color][color=blue]setvar[/color] [color=#ff00ff]"OSMODE"[/color] [color=green]0[/color][color=red])[/color] [color=purple]; turn Osnaps off[/color][/font][/size]

[size=1][font=Fixedsys] [color=red]([/color][color=blue]defun[/color] dtr [color=red]([/color]x[color=red])[/color][/font][/size]
[size=1][font=Fixedsys]   [color=red]([/color][color=blue]*[/color] pi [color=red]([/color][color=blue]/[/color] x [color=green]180.0[/color][color=red]))[/color][/font][/size]
[size=1][font=Fixedsys] [color=red])[/color] [color=purple];_defun[/color][/font][/size]

[size=1][font=Fixedsys] [color=red]([/color][color=blue]setq    pt1[/color] [color=red]([/color][color=blue]getpoint[/color] [color=#ff00ff]"\nSelect Start Point:"[/color][color=red])[/color][/font][/size]
[size=1][font=Fixedsys]    Y1  [color=red]([/color][color=blue]getreal[/color] [color=#ff00ff]"\nEnter Diameter:"[/color][color=red])[/color][/font][/size]
[size=1][font=Fixedsys]    Y1a [color=red]([/color][color=blue]/[/color] Y1 [color=green]2[/color][color=red])[/color][/font][/size]
[size=1][font=Fixedsys]    Y1b [color=red]([/color][color=blue]polar[/color] pt1 [color=red]([/color][color=blue]dtr[/color] [color=green]90[/color][color=red])[/color] Y1a[color=red])[/color][/font][/size]
[size=1][font=Fixedsys] [color=red])[/color] [color=purple];_setq[/color][/font][/size]

[size=1][font=Fixedsys] [color=red]([/color][color=blue]command[/color] [color=#ff00ff]"LINE"[/color] pt1 Y1b [color=#ff00ff]""[/color][color=red])[/color][/font][/size]

[size=1][font=Fixedsys] [color=red]([/color][color=blue]setq    X1[/color]  [color=red]([/color][color=blue]getreal[/color] [color=#ff00ff]"\nEnter Length:"[/color][color=red])[/color][/font][/size]
[size=1][font=Fixedsys]    X1a [color=red]([/color][color=blue]polar[/color] Y1b [color=red]([/color][color=blue]dtr[/color] [color=green]180[/color][color=red])[/color] X1[color=red])[/color][/font][/size]
[size=1][font=Fixedsys] [color=red])[/color][/font][/size]

[size=1][font=Fixedsys] [color=red]([/color][color=blue]command[/color] [color=#ff00ff]"LINE"[/color] Y1b X1a [color=#ff00ff]""[/color][color=red])[/color][/font][/size]

[size=1][font=Fixedsys] [color=red]([/color][color=blue]while[/color][/font][/size]
[size=1][font=Fixedsys]   [color=red]([/color][color=blue]setq[/color] Y2 [color=red]([/color][color=blue]getreal[/color] [color=#ff00ff]"\nEnter Diameter:"[/color][color=red]))[/color][/font][/size]
[size=1][font=Fixedsys]    [color=red]([/color][color=blue]setq[/color] Y2a [color=red]([/color][color=blue]/[/color] [color=red]([/color][color=blue]-[/color] Y2 Y1[color=red])[/color] [color=green]2[/color][color=red])[/color][/font][/size]
[size=1][font=Fixedsys]       Y2b [color=red]([/color][color=blue]polar[/color] X1a [color=red]([/color][color=blue]dtr[/color] [color=green]90[/color][color=red])[/color] Y2a[color=red])[/color][/font][/size]
[size=1][font=Fixedsys]    [color=red])[/color][/font][/size]

[size=1][font=Fixedsys]    [color=red]([/color][color=blue]command[/color] [color=#ff00ff]"LINE"[/color] X1a Y2b [color=#ff00ff]""[/color][color=red])[/color][/font][/size]

[size=1][font=Fixedsys]    [color=red]([/color][color=blue]setq[/color] X2  [color=red]([/color][color=blue]getreal[/color] [color=#ff00ff]"\nEnter Length:"[/color][color=red])[/color][/font][/size]
[size=1][font=Fixedsys]       X2a [color=red]([/color][color=blue]polar[/color] Y2b [color=red]([/color][color=blue]dtr[/color] [color=green]180[/color][color=red])[/color] X2[color=red])[/color][/font][/size]
[size=1][font=Fixedsys]    [color=red])[/color][/font][/size]
[size=1][font=Fixedsys]    [color=red]([/color][color=blue]command[/color] [color=#ff00ff]"LINE"[/color] Y2b X2a [color=#ff00ff]""[/color][color=red])[/color][/font][/size]

[size=1][font=Fixedsys]    [color=red]([/color][color=blue]setq[/color] Y1  [color=red]([/color][color=blue]getreal[/color] [color=#ff00ff]"\nEnter Diameter:"[/color][color=red])[/color][/font][/size]
[size=1][font=Fixedsys]       Y1a [color=red]([/color][color=blue]/[/color] [color=red]([/color][color=blue]-[/color] Y1 Y2[color=red])[/color] [color=green]2[/color][color=red])[/color][/font][/size]
[size=1][font=Fixedsys]       Y1b [color=red]([/color][color=blue]polar[/color] X2a [color=red]([/color][color=blue]dtr[/color] [color=green]90[/color][color=red])[/color] Y1a[color=red])[/color][/font][/size]
[size=1][font=Fixedsys]    [color=red])[/color][/font][/size]

[size=1][font=Fixedsys]    [color=red]([/color][color=blue]command[/color] [color=#ff00ff]"LINE"[/color] X2a Y1b [color=#ff00ff]""[/color][color=red])[/color][/font][/size]

[size=1][font=Fixedsys]    [color=red]([/color][color=blue]setq[/color] X1  [color=red]([/color][color=blue]getreal[/color] [color=#ff00ff]"\nEnter Length:"[/color][color=red])[/color][/font][/size]
[size=1][font=Fixedsys]       X1a [color=red]([/color][color=blue]polar[/color] Y1b [color=red]([/color][color=blue]dtr[/color] [color=green]180[/color][color=red])[/color] X1[color=red])[/color][/font][/size]
[size=1][font=Fixedsys]    [color=red])[/color][/font][/size]

[size=1][font=Fixedsys]    [color=red]([/color][color=blue]command[/color] [color=#ff00ff]"LINE"[/color] Y1b X1a [color=#ff00ff]""[/color][color=red])[/color][/font][/size]
[size=1][font=Fixedsys] [color=red])[/color][/font][/size]

[size=1][font=Fixedsys][color=purple]; added[/color][/font][/size]
[size=1][font=Fixedsys] [color=red]([/color][color=blue]setvar[/color] [color=#ff00ff]"OSMODE"[/color] OldOsmode[color=red])[/color] [color=purple]; turn osmode back to what it was[/color][/font][/size]
[size=1][font=Fixedsys] [color=red]([/color][color=blue]PRINC[/color][color=red])[/color][/font][/size]
[size=1][font=Fixedsys][color=red])[/color] [color=purple];_defun[/color][/font][/size]

 

It runs, however I have no idea of its purpose.

Let me know if it helps.

Regards,

MarcoW

Link to comment
Share on other sites

Thank you both!! Ahh! OSNAPS!! Good hint to minimize the "setq"s Marco.

 

I am not familiar with the "_non" or entmod/VLA, alan.. although i can work with osmode!

 

I sometimes have to create rough machine profiles, and they are all stepped shafts with dozens of different diameters. So to make drawing them easier, i created this lisp to draw one "side" of the shaft when diameters and step lengths are known.

 

I have this thing in an infinite loop right now. What is the correct procedure to end the loop with an Esc or Enter?

Link to comment
Share on other sites

I'm guessing you are drawing elevations of similar shafts as in pic?

 

Maybe this will help:

 

[b][color=BLACK]([/color][/b]defun c:ssel [b][color=FUCHSIA]([/color][/b]/ sp od l d p1 p2[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]initget 1[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]setq sp [b][color=NAVY]([/color][/b]getpoint [color=#2f4f4f]"\nStart Point:   "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]setq od 0[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]while
   [b][color=NAVY]([/color][/b]progn
     [b][color=MAROON]([/color][/b]initget 6[b][color=MAROON])[/color][/b]
     [b][color=MAROON]([/color][/b]setq d [b][color=GREEN]([/color][/b]getdist [color=#2f4f4f]"\nNext Diameter <Enter> To Exit:   "[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
   [b][color=NAVY]([/color][/b]initget 7[b][color=NAVY])[/color][/b]
   [b][color=NAVY]([/color][/b]setq l [b][color=MAROON]([/color][/b]getdist [color=#2f4f4f]"\nSegment Length:   "[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
   [b][color=NAVY]([/color][/b]setq p1 [b][color=MAROON]([/color][/b]polar sp [b][color=GREEN]([/color][/b]* pi 0.5[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]* [b][color=BLUE]([/color][/b]- d od[b][color=BLUE])[/color][/b] 0.5[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
         p2 [b][color=MAROON]([/color][/b]polar p1 [b][color=GREEN]([/color][/b]* pi 1.0[b][color=GREEN])[/color][/b] l[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
   [b][color=NAVY]([/color][/b]entmake [b][color=MAROON]([/color][/b]list [b][color=GREEN]([/color][/b]cons 0 [color=#2f4f4f]"LINE"[/color][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 10 sp[b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 11 p1[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
   [b][color=NAVY]([/color][/b]entmake [b][color=MAROON]([/color][/b]list [b][color=GREEN]([/color][/b]cons 0 [color=#2f4f4f]"LINE"[/color][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 10 p1[b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 11 p2[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
   [b][color=NAVY]([/color][/b]setq sp p2 od d[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]

 

-David

Step-Shaft-1-.jpg

Link to comment
Share on other sites

Yes, that is it. It works brilliantly although I would prefer to have it draw each segment individually.8) i know i know... me me me, i want i want! :lol:

 

Is it possible to have a "backstep" option? For instance I put in the wrong 4th DIA, and i would like to back up and redo it...

And i am still struggling with the conditionals and the whiles and all that... One day ill get it!

Link to comment
Share on other sites

??

 

(defun c:TEst (/ _line lst d s)
 (defun _line (a b)
   (entmakex (list '(0 . "LINE") (cons 10 (trans a 1 0)) (cons 11 (trans b 1 0))))
 )
 (if (car (setq lst (list (getpoint "\nSpecify start point: "))))
   (while (and (progn (initget 6) (setq d (getdist (car lst) "\nSpecify diameter: ")))
               (_line (car lst) (car (setq lst (cons (polar (car lst) (/ pi 2.) d) lst))))
               (progn (initget 6) (setq s (getdist (car lst) "\nSpecify segment length: ")))
               (_line (car lst) (car (setq lst (cons (polar (car lst) pi s) lst))))
          )
   )
 )
 (princ)
)

Link to comment
Share on other sites

geez, so many different ways to accomplish a single task. It is amazing!

 

Well i cant really understand how it works:P but alan, your routine seems to draw actual diameters, where as i need to input diameters, and output radii...

 

Thanks for the help guys

Link to comment
Share on other sites

geez, so many different ways to accomplish a single task. It is amazing!

 

Well i cant really understand how it works:P but alan, your routine seems to draw actual diameters, where as i need to input diameters, and output radii...

 

Thanks for the help guys

Oops, I didn't realize that portion of the code. I'm going home, but I might revise later.
Link to comment
Share on other sites

Actually a lot harder than I first imagined:

 

[b][color=BLACK]([/color][/b]defun c:ssel1 [b][color=FUCHSIA]([/color][/b]/ sp d l n sc i sl np od p1 p2 tmp input[b][color=FUCHSIA])[/color][/b]

[b][color=FUCHSIA]([/color][/b]defun remove [b][color=NAVY]([/color][/b]expr lst[b][color=NAVY])[/color][/b][color=#8b4513];;;TonyT or VNesterowski[/color]
 [b][color=NAVY]([/color][/b]apply 'append [b][color=MAROON]([/color][/b]subst nil [b][color=GREEN]([/color][/b]list expr[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]mapcar 'list lst[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]initget 1[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]setq sp [b][color=NAVY]([/color][/b]getpoint [color=#2f4f4f]"\nStart Point:   "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]setq i 1[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]if sl_default [b][color=NAVY]([/color][/b]setq sl sl_default[b][color=NAVY])[/color][/b]
    [b][color=NAVY]([/color][/b]progn
      [b][color=MAROON]([/color][/b]initget 7[b][color=MAROON])[/color][/b]
      [b][color=MAROON]([/color][/b]setq d [b][color=GREEN]([/color][/b]getdist [color=#2f4f4f]"\nFirst Segment Diameter:   "[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
      [b][color=MAROON]([/color][/b]initget 7[b][color=MAROON])[/color][/b]
      [b][color=MAROON]([/color][/b]setq l [b][color=GREEN]([/color][/b]getdist [color=#2f4f4f]"\nFirst Segment Length:   "[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
      [b][color=MAROON]([/color][/b]setq sl [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]list i d l[b][color=BLUE])[/color][/b][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]while [b][color=NAVY]([/color][/b]/= input [color=#2f4f4f]"Finish"[/color][b][color=NAVY])[/color][/b]
        [b][color=NAVY]([/color][/b]textpage[b][color=NAVY])[/color][/b]
        [b][color=NAVY]([/color][/b]setq n nil[b][color=NAVY])[/color][/b]
        [b][color=NAVY]([/color][/b]princ [color=#2f4f4f]"\nSegment\tDiameter\tLength"[/color][b][color=NAVY])[/color][/b]
        [b][color=NAVY]([/color][/b]foreach s sl
          [b][color=MAROON]([/color][/b]princ [b][color=GREEN]([/color][/b]strcat [color=#2f4f4f]"\n"[/color] [b][color=BLUE]([/color][/b]itoa [b][color=RED]([/color][/b]nth 0 s[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [color=#2f4f4f]"\t"[/color] [b][color=BLUE]([/color][/b]rtos [b][color=RED]([/color][/b]nth 1 s[b][color=RED])[/color][/b] 2 4[b][color=BLUE])[/color][/b] [color=#2f4f4f]"\t\t"[/color] [b][color=BLUE]([/color][/b]rtos [b][color=RED]([/color][/b]nth 2 s[b][color=RED])[/color][/b] 2 4[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]initget [color=#2f4f4f]"Add Edit Remove Display Finish"[/color][b][color=NAVY])[/color][/b]
        [b][color=NAVY]([/color][/b]setq input [b][color=MAROON]([/color][/b]getkword [color=#2f4f4f]"\nAdd/Edit/Remove/Display/Finish - <Add>:  "[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
        [b][color=NAVY]([/color][/b]or input [b][color=MAROON]([/color][/b]setq input [color=#2f4f4f]"Add"[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
        [b][color=NAVY]([/color][/b]cond [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]= input [color=#2f4f4f]"Add"[/color][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq i [b][color=BLUE]([/color][/b]1+ i[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]initget 7[b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq d [b][color=BLUE]([/color][/b]getdist [color=#2f4f4f]"\nNext Segment Diameter:   "[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]initget 7[b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq l [b][color=BLUE]([/color][/b]getdist [color=#2f4f4f]"\nNext Segment Length:   "[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq sl [b][color=BLUE]([/color][/b]cons [b][color=RED]([/color][/b]list i d l[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]reverse sl[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq sl [b][color=BLUE]([/color][/b]reverse sl[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
              [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]= input [color=#2f4f4f]"Remove"[/color][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]while [b][color=BLUE]([/color][/b]or [b][color=RED]([/color][/b]not n[b][color=RED])[/color][/b]
                          [b][color=RED]([/color][/b]not [b][color=PURPLE]([/color][/b]assoc n sl[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
                      [b][color=BLUE]([/color][/b]setq n [b][color=RED]([/color][/b]getint [color=#2f4f4f]"\nSegment Number To Remove:   "[/color][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq sl [b][color=BLUE]([/color][/b]remove [b][color=RED]([/color][/b]assoc n sl[b][color=RED])[/color][/b] sl[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq tmp nil sc 0[b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]foreach p sl
                 [b][color=BLUE]([/color][/b]setq tmp [b][color=RED]([/color][/b]cons [b][color=PURPLE]([/color][/b]list [b][color=TEAL]([/color][/b]setq sc [b][color=OLIVE]([/color][/b]1+ sc[b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b] [b][color=TEAL]([/color][/b]nth 1 p[b][color=TEAL])[/color][/b] [b][color=TEAL]([/color][/b]nth 2 p[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b] tmp[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq sl [b][color=BLUE]([/color][/b]reverse tmp[b][color=BLUE])[/color][/b]
                      i sc[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
              [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]= input [color=#2f4f4f]"Edit"[/color][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]while [b][color=BLUE]([/color][/b]or [b][color=RED]([/color][/b]not n[b][color=RED])[/color][/b]
                          [b][color=RED]([/color][/b]not [b][color=PURPLE]([/color][/b]assoc n sl[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
                      [b][color=BLUE]([/color][/b]setq n [b][color=RED]([/color][/b]getint [color=#2f4f4f]"\nSegment Number To Edit:   "[/color][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]princ [color=#2f4f4f]"\n"[/color][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]prin1 [b][color=BLUE]([/color][/b]assoc n sl[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]initget 7[b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq d [b][color=BLUE]([/color][/b]getdist [color=#2f4f4f]"\nNew Segment Diameter:   "[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]initget 7[b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq l [b][color=BLUE]([/color][/b]getdist [color=#2f4f4f]"\nNew Segment Length:   "[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq sl [b][color=BLUE]([/color][/b]subst [b][color=RED]([/color][/b]list n d l[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]assoc n sl[b][color=RED])[/color][/b] sl[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
              [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]= input [color=#2f4f4f]"Display"[/color][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]graphscr[b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq od 0[b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq np sp[b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]foreach p sl
                  [b][color=BLUE]([/color][/b]setq p1 [b][color=RED]([/color][/b]polar np [b][color=PURPLE]([/color][/b]* pi 0.5[b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]* [b][color=TEAL]([/color][/b]- [b][color=OLIVE]([/color][/b]nth 1 p[b][color=OLIVE])[/color][/b] od[b][color=TEAL])[/color][/b] 0.5[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
                        p2 [b][color=RED]([/color][/b]polar p1 [b][color=PURPLE]([/color][/b]* pi 1.0[b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]nth 2 p[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
                  [b][color=BLUE]([/color][/b]grdraw np p1 2 3[b][color=BLUE])[/color][/b]
                  [b][color=BLUE]([/color][/b]grdraw p1 p2 2 3[b][color=BLUE])[/color][/b]
                  [b][color=BLUE]([/color][/b]setq np p2
                        od [b][color=RED]([/color][/b]nth 1 p[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
                  [b][color=GREEN]([/color][/b]getstring [color=#2f4f4f]"\nPress Enter to Continue...."[/color][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]graphscr[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]setq od 0
       np sp[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]foreach p sl
    [b][color=NAVY]([/color][/b]setq p1 [b][color=MAROON]([/color][/b]polar np [b][color=GREEN]([/color][/b]* pi 0.5[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]* [b][color=BLUE]([/color][/b]- [b][color=RED]([/color][/b]nth 1 p[b][color=RED])[/color][/b] od[b][color=BLUE])[/color][/b] 0.5[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
          p2 [b][color=MAROON]([/color][/b]polar p1 [b][color=GREEN]([/color][/b]* pi 1.0[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]nth 2 p[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
    [b][color=NAVY]([/color][/b]entmake [b][color=MAROON]([/color][/b]list [b][color=GREEN]([/color][/b]cons 0 [color=#2f4f4f]"LINE"[/color][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 10 np[b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 11 p1[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
    [b][color=NAVY]([/color][/b]entmake [b][color=MAROON]([/color][/b]list [b][color=GREEN]([/color][/b]cons 0 [color=#2f4f4f]"LINE"[/color][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 10 p1[b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 11 p2[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
    [b][color=NAVY]([/color][/b]setq np p2
          od [b][color=MAROON]([/color][/b]nth 1 p[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  [b][color=FUCHSIA]([/color][/b]initget [color=#2f4f4f]"Yes No"[/color][b][color=FUCHSIA])[/color][/b]
  [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]= [color=#2f4f4f]"Yes"[/color] [b][color=MAROON]([/color][/b]getkword [color=#2f4f4f]"\nSave This List As A Default [b][color=GREEN]([/color][/b]Y/N[b][color=GREEN])[/color][/b]:   "[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
      [b][color=NAVY]([/color][/b]setq sl_default sl[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]

 

sl_default is global have fun! -David

Edited by David Bethel
need to reset n to nil between each iteneration
Link to comment
Share on other sites

Man, i need to learn how to do that! :?

Thanks David, I will enjoy disecting this one...

 

You're welcome!

 

I updated the code. It was not allowing differing segment numbers to edited / removed. -David

Link to comment
Share on other sites

I had to add a 3D option. It's just me

 

[b][color=BLACK]([/color][/b]defun c:ssel2 [b][color=FUCHSIA]([/color][/b]/ sp d l n sc i sl od np xp p1 p2 tmp input[b][color=FUCHSIA])[/color][/b]

[color=#8b4513];;;REMOVE AN EXPRESSION / ATOM FROM A LIST[/color]
[b][color=FUCHSIA]([/color][/b]defun remove [b][color=NAVY]([/color][/b]expr lst[b][color=NAVY])[/color][/b][color=#8b4513];;;TonyT or VNesterowski[/color]
 [b][color=NAVY]([/color][/b]apply 'append [b][color=MAROON]([/color][/b]subst nil [b][color=GREEN]([/color][/b]list expr[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]mapcar 'list lst[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]initget 1[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]setq sp [b][color=NAVY]([/color][/b]getpoint [color=#2f4f4f]"\nStart Point:   "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]

 [b][color=FUCHSIA]([/color][/b]if sl_default
   [b][color=NAVY]([/color][/b]setq sl sl_default
          i [b][color=MAROON]([/color][/b]length sl[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
   [b][color=NAVY]([/color][/b]setq i 0[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]

 [b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]/= input [color=#2f4f4f]"Finish"[/color][b][color=NAVY])[/color][/b]
        [b][color=NAVY]([/color][/b]textpage[b][color=NAVY])[/color][/b]
        [b][color=NAVY]([/color][/b]setq n nil[b][color=NAVY])[/color][/b]
        [b][color=NAVY]([/color][/b]princ [color=#2f4f4f]"\nSegment\tDiameter\tLength"[/color][b][color=NAVY])[/color][/b]
        [b][color=NAVY]([/color][/b]foreach s sl
           [b][color=MAROON]([/color][/b]princ [b][color=GREEN]([/color][/b]strcat [color=#2f4f4f]"\n"[/color] [b][color=BLUE]([/color][/b]itoa [b][color=RED]([/color][/b]nth 0 s[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [color=#2f4f4f]"\t"[/color] [b][color=BLUE]([/color][/b]rtos [b][color=RED]([/color][/b]nth 1 s[b][color=RED])[/color][/b] 2 4[b][color=BLUE])[/color][/b] [color=#2f4f4f]"\t\t"[/color] [b][color=BLUE]([/color][/b]rtos [b][color=RED]([/color][/b]nth 2 s[b][color=RED])[/color][/b] 2 4[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]if [b][color=MAROON]([/color][/b]= i 0[b][color=MAROON])[/color][/b]
            [b][color=MAROON]([/color][/b]setq input [color=#2f4f4f]"Add"[/color][b][color=MAROON])[/color][/b]
            [b][color=MAROON]([/color][/b]progn
              [b][color=GREEN]([/color][/b]initget 1 [color=#2f4f4f]"Add Edit Remove Display Finish"[/color][b][color=GREEN])[/color][/b]
              [b][color=GREEN]([/color][/b]setq input [b][color=BLUE]([/color][/b]getkword [color=#2f4f4f]"\nAdd/Edit/Remove/Display/Finish:  "[/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]cond [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]= input [color=#2f4f4f]"Add"[/color][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq i [b][color=BLUE]([/color][/b]1+ i[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]initget 7[b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq d [b][color=BLUE]([/color][/b]getdist [color=#2f4f4f]"\nAdd Segment Diameter:   "[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]initget 7[b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq l [b][color=BLUE]([/color][/b]getdist [color=#2f4f4f]"\nAdd Segment Length:   "[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq sl [b][color=BLUE]([/color][/b]cons [b][color=RED]([/color][/b]list i d l[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]reverse sl[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq sl [b][color=BLUE]([/color][/b]reverse sl[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
              [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]= input [color=#2f4f4f]"Remove"[/color][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]while [b][color=BLUE]([/color][/b]or [b][color=RED]([/color][/b]not n[b][color=RED])[/color][/b]
                          [b][color=RED]([/color][/b]not [b][color=PURPLE]([/color][/b]assoc n sl[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
                      [b][color=BLUE]([/color][/b]setq n [b][color=RED]([/color][/b]getint [color=#2f4f4f]"\nSegment Number To Remove:   "[/color][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq sl [b][color=BLUE]([/color][/b]remove [b][color=RED]([/color][/b]assoc n sl[b][color=RED])[/color][/b] sl[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq tmp nil sc 0[b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]foreach p sl
                 [b][color=BLUE]([/color][/b]setq tmp [b][color=RED]([/color][/b]cons [b][color=PURPLE]([/color][/b]list [b][color=TEAL]([/color][/b]setq sc [b][color=OLIVE]([/color][/b]1+ sc[b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b] [b][color=TEAL]([/color][/b]nth 1 p[b][color=TEAL])[/color][/b] [b][color=TEAL]([/color][/b]nth 2 p[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b] tmp[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq sl [b][color=BLUE]([/color][/b]reverse tmp[b][color=BLUE])[/color][/b]
                      i sc[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
             [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]= input [color=#2f4f4f]"Edit"[/color][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]while [b][color=BLUE]([/color][/b]or [b][color=RED]([/color][/b]not n[b][color=RED])[/color][/b]
                          [b][color=RED]([/color][/b]not [b][color=PURPLE]([/color][/b]assoc n sl[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
                      [b][color=BLUE]([/color][/b]setq n [b][color=RED]([/color][/b]getint [color=#2f4f4f]"\nSegment Number To Edit:   "[/color][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]princ [color=#2f4f4f]"\n"[/color][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]prin1 [b][color=BLUE]([/color][/b]assoc n sl[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]initget 7[b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq d [b][color=BLUE]([/color][/b]getdist [color=#2f4f4f]"\nNew Segment Diameter:   "[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]initget 7[b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq l [b][color=BLUE]([/color][/b]getdist [color=#2f4f4f]"\nNew Segment Length:   "[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq sl [b][color=BLUE]([/color][/b]subst [b][color=RED]([/color][/b]list n d l[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]assoc n sl[b][color=RED])[/color][/b] sl[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
              [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]= input [color=#2f4f4f]"Display"[/color][b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]graphscr[b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq od 0[b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]setq np sp[b][color=GREEN])[/color][/b]
               [b][color=GREEN]([/color][/b]foreach p sl
                  [b][color=BLUE]([/color][/b]setq p1 [b][color=RED]([/color][/b]polar np [b][color=PURPLE]([/color][/b]* pi 0.5[b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]* [b][color=TEAL]([/color][/b]- [b][color=OLIVE]([/color][/b]nth 1 p[b][color=OLIVE])[/color][/b] od[b][color=TEAL])[/color][/b] 0.5[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
                        p2 [b][color=RED]([/color][/b]polar p1 [b][color=PURPLE]([/color][/b]* pi 1.0[b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]nth 2 p[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
                  [b][color=BLUE]([/color][/b]grdraw np p1 2 3[b][color=BLUE])[/color][/b]
                  [b][color=BLUE]([/color][/b]grdraw p1 p2 2 3[b][color=BLUE])[/color][/b]
                  [b][color=BLUE]([/color][/b]setq np p2
                        od [b][color=RED]([/color][/b]nth 1 p[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
                  [b][color=GREEN]([/color][/b]getstring [color=#2f4f4f]"\nPress Enter to Continue...."[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]

[color=#8b4513];;;DRAW THE FINAL LINES[/color]
 [b][color=FUCHSIA]([/color][/b]graphscr[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]redraw[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]setq od 0
       np sp[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]foreach p sl
    [b][color=NAVY]([/color][/b]setq p1 [b][color=MAROON]([/color][/b]polar np [b][color=GREEN]([/color][/b]* pi 0.5[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]* [b][color=BLUE]([/color][/b]- [b][color=RED]([/color][/b]nth 1 p[b][color=RED])[/color][/b] od[b][color=BLUE])[/color][/b] 0.5[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
          p2 [b][color=MAROON]([/color][/b]polar p1 [b][color=GREEN]([/color][/b]* pi 1.0[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]nth 2 p[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
    [b][color=NAVY]([/color][/b]entmake [b][color=MAROON]([/color][/b]list [b][color=GREEN]([/color][/b]cons 0 [color=#2f4f4f]"LINE"[/color][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 10 np[b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 11 p1[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
    [b][color=NAVY]([/color][/b]entmake [b][color=MAROON]([/color][/b]list [b][color=GREEN]([/color][/b]cons 0 [color=#2f4f4f]"LINE"[/color][b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 10 p1[b][color=GREEN])[/color][/b][b][color=GREEN]([/color][/b]cons 11 p2[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
    [b][color=NAVY]([/color][/b]setq np p2
          od [b][color=MAROON]([/color][/b]nth 1 p[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]

[color=#8b4513];;;MAKE 3D SHAFT[/color]
 [b][color=FUCHSIA]([/color][/b]initget [color=#2f4f4f]"Yes No"[/color][b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]= [color=#2f4f4f]"Yes"[/color] [b][color=MAROON]([/color][/b]getkword [color=#2f4f4f]"\nDraw 3D Entities [b][color=GREEN]([/color][/b]Y/N[b][color=GREEN])[/color][/b] <No>:   "[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
     [b][color=NAVY]([/color][/b]progn
        [b][color=MAROON]([/color][/b]setq xp [b][color=GREEN]([/color][/b]car sp[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
        [b][color=MAROON]([/color][/b]foreach p sl
          [b][color=GREEN]([/color][/b]entmake [b][color=BLUE]([/color][/b]list [b][color=RED]([/color][/b]cons 0 [color=#2f4f4f]"CIRCLE"[/color][b][color=RED])[/color][/b]
                         [b][color=RED]([/color][/b]cons 10 [b][color=PURPLE]([/color][/b]list [b][color=TEAL]([/color][/b]cadr sp[b][color=TEAL])[/color][/b] [b][color=TEAL]([/color][/b]caddr sp[b][color=TEAL])[/color][/b] xp[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
                         [b][color=RED]([/color][/b]cons 39 [b][color=PURPLE]([/color][/b]- [b][color=TEAL]([/color][/b]nth 2 p[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
                         [b][color=RED]([/color][/b]cons 40 [b][color=PURPLE]([/color][/b]* [b][color=TEAL]([/color][/b]nth 1 p[b][color=TEAL])[/color][/b] 0.5[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
                         [b][color=RED]([/color][/b]cons 210 [b][color=PURPLE]([/color][/b]list 1 0 0[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
          [b][color=GREEN]([/color][/b]setq xp [b][color=BLUE]([/color][/b]- xp [b][color=RED]([/color][/b]nth 2 p[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]

[color=#8b4513];;;TRY TO SAVE THE LIST[/color]
  [b][color=FUCHSIA]([/color][/b]initget 1 [color=#2f4f4f]"Yes No"[/color][b][color=FUCHSIA])[/color][/b]
  [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]= [color=#2f4f4f]"Yes"[/color] [b][color=MAROON]([/color][/b]getkword [color=#2f4f4f]"\nSave This List As A Default [b][color=GREEN]([/color][/b]Y/N[b][color=GREEN])[/color][/b]:   "[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
      [b][color=NAVY]([/color][/b]setq sl_default sl[b][color=NAVY])[/color][/b]
      [b][color=NAVY]([/color][/b]setq sl_default nil[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]

 

-David

AR-SHAFT.JPG

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