In addition to the above suggestions, you can also marginally improve the efficiency of your code by quoting expressions which need not be evaluated, e.g.:
- ([color=BLUE]defun[/color] c:mci ( [color=BLUE]/[/color] cp zv ) ([color=BLUE]setq[/color] zv ([color=BLUE]trans[/color] '(0.0 0.0 1.0) 1 0 [color=BLUE]t[/color])) [color=GREEN];; WCS Extrusion vector of UCS plane[/color] ([color=BLUE]if[/color] ([color=BLUE]setq[/color] cp ([color=BLUE]getpoint[/color] [color=MAROON]"\nCenter: "[/color])) [color=GREEN];; Center point in UCS[/color] ([color=BLUE]entmake[/color] ([color=BLUE]list[/color] '(00 . [color=MAROON]"CIRCLE"[/color]) [color=GREEN];; Entity Type[/color] '(62 . 5) [color=GREEN];; Colour[/color] ([color=BLUE]cons[/color] 10 ([color=BLUE]trans[/color] cp 1 zv)) [color=GREEN];; Center point in OCS[/color] '(40 . 2.0) [color=GREEN];; Radius[/color] ([color=BLUE]cons[/color] 210 zv) [color=GREEN];; Extrusion Vector in WCS[/color] ) ) ) ([color=BLUE]princ[/color]))
I have also ensured the program will perform correctly in all UCS construction planes. |