pvsvprasad Posted September 24, 2016 Share Posted September 24, 2016 Dear Masters, i need select the less than specified length lines and open poly lines. example i need less than 1500mm lines or open poly lines by selecting cross window. Thanks in advance, Best regards. Quote Link to comment Share on other sites More sharing options...
Tharwat Posted September 24, 2016 Share Posted September 24, 2016 (defun c:Test ( / sad sel ) ;; Tharwat - 24.09.16 ;; (if (setq sad (ssadd) sel (ssget "_:L" '((0 . "LINE,*POLYLINE")))) ((lambda (x / e ) (while (setq e (ssname sel (setq x (1+ x)))) (if (< (vlax-curve-getdistatparam e (vlax-curve-getendparam e)) 1500.) (ssadd e sad)) ) ) -1 ) ) (sssetfirst nil sad) (princ) ) (vl-load-com) Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted September 24, 2016 Share Posted September 24, 2016 An alternative is to remove the undesired objects from the original set; however, note that this is only applicable when iterating over the selection set with a decrementing index: (defun c:mysel ( / e i s ) (if (setq s (ssget '((-4 . "<OR") (0 . "LINE") (-4 . "<AND") (0 . "LWPOLYLINE") (-4 . "<NOT") (-4 . "&=") (70 . 1) (-4 . "NOT>") (-4 . "AND>") (-4 . "OR>")))) (repeat (setq i (sslength s)) (setq e (ssname s (setq i (1- i)))) (if (<= 1500 (vlax-curve-getdistatparam e (vlax-curve-getendparam e))) (ssdel e s)) ) ) (sssetfirst nil s) (princ) ) (vl-load-com) (princ) Quote Link to comment Share on other sites More sharing options...
pvsvprasad Posted September 24, 2016 Author Share Posted September 24, 2016 Dear Tharwat & Lee Mac, Thank you for providing great code. my actual request is at command prompt should be asked for "specify less than length", then i enter manually required less than length of lines. 1500 mm is only for example purpose. kindly make a modification in lisp. Thanking you, Best regads. Quote Link to comment Share on other sites More sharing options...
Tharwat Posted September 24, 2016 Share Posted September 24, 2016 Give this a shot; (defun c:Test ( / len sad sel ) ;; Tharwat - 24.09.16 ;; (if (and (setq len (getdist "\nSpecify Minimum length :")) (princ "\nSelect Lines & Polylines :") (setq sad (ssadd) sel (ssget "_:L" '((0 . "LINE,*POLYLINE")))) ) ((lambda (x / e ) (while (setq e (ssname sel (setq x (1+ x)))) (if (< (vlax-curve-getdistatparam e (vlax-curve-getendparam e)) len) (ssadd e sad)) ) ) -1 ) ) (sssetfirst nil sad) (princ) ) (vl-load-com) Quote Link to comment Share on other sites More sharing options...
Grrr Posted September 24, 2016 Share Posted September 24, 2016 Hi Tharwat, May I ask how do you determine which variables to localise inside (lambda) and which inside the main (defun) ? Quote Link to comment Share on other sites More sharing options...
Tharwat Posted September 24, 2016 Share Posted September 24, 2016 Hi Tharwat,May I ask how do you determine which variables to localise inside (lambda) and which inside the main (defun) ? Hi Grrr, Sure you can ask with all pleasure. When you localise variables into lambda function that means they won't be available outside this function and as in my previous codes the variable 'e' would be equal to nil and also I could have brought it to top inside defun's local variables side so no restrictions in this case. But with defun also localising variables is really very important step unless you need any variable to be Global and most of users prefer naming global variables with asterisks as a prefix & suffix. eg: *MyVariable*. If the above description did not help, just ask and I would be more than happy to break down the codes into pieces. Quote Link to comment Share on other sites More sharing options...
Grrr Posted September 24, 2016 Share Posted September 24, 2016 Thank you, Tharwat! I was just exploring more deeply how (lambda) works, and I think this was my only question about it. I didn't knew about that global *MyVariable* naming preference.. so I learned something new, to be aware of. After reading some old threads, with good explanations (from LM), I ended up with this conclusion: ; main lambda structure (anonymous function): ( (lambda ( [arguments] [/ variables] ) <expressions> ;(do stuff) ); lambda [values for the arguments] ;<- I think it may be a single value or a list of values ) So you could also write it like this: (defun ... ( / ) ( (lambda ( len SS / i e nSS ) (if (and len SS) (progn (setq nSS (ssadd)) (repeat (setq i (sslength SS)) (setq e (ssname SS (setq i (1- i)))) (if (< (vlax-curve-getdistatparam e (vlax-curve-getendparam e)) len) (ssadd e nSS) ) ); repeat (sssetfirst nil nSS) ); progn ); if ); lambda (getdist "\nSpecify Minimum length :") (ssget "_:L" '((0 . "LINE,*POLYLINE"))) ) (princ) ) Ofcourse I think the performance would be the same as your code above, (without intention of modifying/stealing your code). I just think that it would be nice to practice/repractice different approaches for such "easy requests" (atleast I try to do so... because its been a while when I memorized that standard SS iteration, like LM posted (no offence, Lee)). EDIT: Well now I saw that I actually did the same iteration approach, but I hope you know what do I mean. Quote Link to comment Share on other sites More sharing options...
Tharwat Posted September 24, 2016 Share Posted September 24, 2016 That is a very good practice and it seems that you are doing just fine with lambda function. Keep it up. Quote Link to comment Share on other sites More sharing options...
Tharwat Posted September 24, 2016 Share Posted September 24, 2016 EDIT: Well now I saw that I actually did the same iteration approach, but I hope you know what do I mean. It doesn't matter the iteration as long as you have known how to deal lambda in the correct manner as shown into your posted codes. Quote Link to comment Share on other sites More sharing options...
Grrr Posted September 24, 2016 Share Posted September 24, 2016 That is a very good practice and it seems that you are doing just fine with lambda function. Keep it up. Thanks, Infact my curiosity about this non-mapcar (lambda) thing was invoked after seeing some similar code of yours from some older thread. But back then I couldn't find that same thread to ask you there about this, so I was just remembering fragments of: ( (lambda (x) ... ) -1 ) I was researching and asking myself "how did he used (lambda) without (mapcar/apply...) / without any list" "and what does -1 standed for". Until I've found these very good explanations: http://www.cadtutor.net/forum/showthread.php?52127-Mapcar-lambda-Description I think that my questions are becomming more complex.. but I am happy that you are able to answer. Quote Link to comment Share on other sites More sharing options...
Tharwat Posted September 24, 2016 Share Posted September 24, 2016 I think that my questions are becomming more complex.. but I am happy that you are able to answer. I think you have the intention to underestimate / insult me as you have insisted to repeat that here and THERE So be sure that there won't be any direct reply from me to you at all from now on. Quote Link to comment Share on other sites More sharing options...
Grrr Posted September 24, 2016 Share Posted September 24, 2016 I think you have the intention to underestimate / insult me as you have insisted to repeat that here and THERE So be sure that there won't be any direct reply from me to you at all from now on. You misunderstood me... what I've meant is that the very few answers I get from my lastest questions are from you and (maybe) someone else... which could mean that not anyone could be able to answer. Quote Link to comment Share on other sites More sharing options...
Roy_043 Posted September 24, 2016 Share Posted September 24, 2016 IMO using (lambda) as in Tharwat's post #2 should be avoided for two reasons: 1. It adds an unnecessary level of complexity to the program. In the example it only seems to be introduced to avoid a (progn) and a (setq). 2. It will make the program much slower because every time the code runs the lambda function is redefined. Let's not forget the KISS principle. Grrr's code in post #8 could be simplified to: (defun c:Test ( / len SS i e nSS) (if (and (setq SS (ssget "_:L" '((0 . "LINE,*POLYLINE")))) (setq len (getdist "\nSpecify Minimum length :")) ) (progn (setq nSS (ssadd)) (repeat (setq i (sslength SS)) (setq e (ssname SS (setq i (1- i)))) (if (< (vlax-curve-getdistatparam e (vlax-curve-getendparam e)) len) (ssadd e nSS) ) ) (sssetfirst nil nSS) ) ) (princ) ) Quote Link to comment Share on other sites More sharing options...
BIGAL Posted September 24, 2016 Share Posted September 24, 2016 As an alternative you could use the Vl Length function not sure about speed (if (< (vla-get-length (vlax-ename->vla-object (ssname ss (setq i (1- i))))) len) Quote Link to comment Share on other sites More sharing options...
Roy_043 Posted September 25, 2016 Share Posted September 25, 2016 The (ssget) filter can be improved: (ssget "_:L" '( (-4 . "<OR") (0 . "LINE") (0 . "LWPOLYLINE") (-4 . "<AND") (0 . "POLYLINE") (-4 . "<NOT") (-4 . "&") (70 . 80) ; Exclude AcDbPolygonMesh (70 . 16) and AcDbPolyFaceMesh (70 . 64). (-4 . "NOT>") (-4 . "AND>") (-4 . "OR>") ) ) Quote Link to comment Share on other sites More sharing options...
Grrr Posted September 25, 2016 Share Posted September 25, 2016 Okay following the KSS principle, and an attempt to write something that would be more globally used: [b][color=BLACK]([/color][/b]defun C:test [b][color=FUCHSIA]([/color][/b] / SortAssocLstByNth SS oprec i ln e Lst ChsnItms nSS [b][color=FUCHSIA])[/color][/b] [color=#8b4513];| Credits to: Lee Mac, Tharwat |;[/color] [b][color=FUCHSIA]([/color][/b]defun SortAssocLstByNth [b][color=NAVY]([/color][/b] Lst Num / [b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]mapcar [b][color=MAROON]([/color][/b]function [b][color=GREEN]([/color][/b]lambda [b][color=BLUE]([/color][/b]x[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]nth x Lst[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]vl-sort-i Lst [b][color=GREEN]([/color][/b]function [b][color=BLUE]([/color][/b]lambda [b][color=RED]([/color][/b]a b[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]< [b][color=PURPLE]([/color][/b]nth Num a[b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]nth Num b[b][color=PURPLE])[/color][/b][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] [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]not [b][color=MAROON]([/color][/b]setq SS [b][color=GREEN]([/color][/b]ssget [color=#2f4f4f]"_I"[/color] [b][color=BLUE]([/color][/b]list [b][color=RED]([/color][/b]cons 0 [color=#2f4f4f]"LINE,*POLYLINE,SPLINE,ARC"[/color][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=NAVY]([/color][/b]progn [b][color=MAROON]([/color][/b]prompt [color=#2f4f4f]"\nSelect open curves to filter by their length: "[/color][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq SS [b][color=GREEN]([/color][/b]ssget [color=#2f4f4f]"_:L"[/color] [b][color=BLUE]([/color][/b]list [b][color=RED]([/color][/b]cons 0 [color=#2f4f4f]"LINE,*POLYLINE,SPLINE,ARC"[/color][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=NAVY]([/color][/b]sssetfirst nil nil[b][color=NAVY])[/color][/b] [b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]if SS [b][color=NAVY]([/color][/b]progn [b][color=MAROON]([/color][/b]setq oprec [b][color=GREEN]([/color][/b]getvar 'luprec[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setvar 'luprec 1[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]sssetfirst nil nil[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]repeat [b][color=GREEN]([/color][/b]setq i [b][color=BLUE]([/color][/b]sslength SS[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq e [b][color=BLUE]([/color][/b]ssname SS [b][color=RED]([/color][/b]setq i [b][color=PURPLE]([/color][/b]1- i[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 ln [b][color=BLUE]([/color][/b]vlax-curve-getDistAtPoint e [b][color=RED]([/color][/b]vlax-curve-getEndPoint e[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]/= 0. ln [b][color=BLUE])[/color][/b] [color=#8b4513]; this means that the curve is closed[/color] [b][color=BLUE]([/color][/b]setq Lst [b][color=RED]([/color][/b]cons [b][color=PURPLE]([/color][/b]list e ln[b][color=PURPLE])[/color][/b] Lst[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=GREEN])[/color][/b] [b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]if Lst [b][color=GREEN]([/color][/b]progn [b][color=BLUE]([/color][/b]setq Lst [b][color=RED]([/color][/b]SortAssocLstByNth Lst 1[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [color=#8b4513]; retain dupes[/color] [b][color=BLUE]([/color][/b]setq Lst [color=#8b4513]; convert to strings[/color] [b][color=RED]([/color][/b]mapcar '[b][color=PURPLE]([/color][/b]lambda [b][color=TEAL]([/color][/b]a b[b][color=TEAL])[/color][/b] [b][color=TEAL]([/color][/b]list a [b][color=OLIVE]([/color][/b]rtos b [b][color=GRAY]([/color][/b]getvar 'lunits[b][color=GRAY])[/color][/b] [b][color=GRAY]([/color][/b]getvar 'luprec[b][color=GRAY])[/color][/b][b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]mapcar 'car Lst[b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]mapcar 'cadr Lst[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]if [b][color=RED]([/color][/b]setq ChsnItms [b][color=PURPLE]([/color][/b]LM:FiltListBox [color=#2f4f4f]"Choose lengths to filter"[/color] [b][color=TEAL]([/color][/b]vl-sort [b][color=OLIVE]([/color][/b]mapcar 'cadr Lst[b][color=OLIVE])[/color][/b] '<[b][color=TEAL])[/color][/b] T[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [color=#8b4513]; remove dupes[/color] [b][color=RED]([/color][/b]progn [b][color=PURPLE]([/color][/b]setq nSS [b][color=TEAL]([/color][/b]ssadd[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]mapcar '[b][color=TEAL]([/color][/b]lambda [b][color=OLIVE]([/color][/b]x[b][color=OLIVE])[/color][/b] [b][color=OLIVE]([/color][/b]ssadd x nSS[b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b] [b][color=TEAL]([/color][/b]mapcar 'car [b][color=OLIVE]([/color][/b]vl-remove-if-not '[b][color=GRAY]([/color][/b]lambda [b][color=AQUA]([/color][/b]x[b][color=AQUA])[/color][/b] [b][color=AQUA]([/color][/b]member [b][color=LIME]([/color][/b]cadr x[b][color=LIME])[/color][/b] ChsnItms[b][color=AQUA])[/color][/b][b][color=GRAY])[/color][/b] Lst[b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b] [b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]sssetfirst nil nSS[b][color=PURPLE])[/color][/b] [b][color=RED])[/color][/b] [b][color=BLUE])[/color][/b] [b][color=GREEN])[/color][/b] [b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setvar 'luprec oprec[b][color=MAROON])[/color][/b] [b][color=NAVY])[/color][/b] [b][color=FUCHSIA])[/color][/b][color=#8b4513]; if SS[/color] [b][color=FUCHSIA]([/color][/b]princ[b][color=FUCHSIA])[/color][/b] [b][color=BLACK])[/color][/b][color=#8b4513];| defun |; [b][color=BLACK]([/color][/b]vl-load-com[b][color=BLACK])[/color][/b] [b][color=BLACK]([/color][/b]princ[b][color=BLACK])[/color][/b][/color] [color=#8b4513];;------------------=={ Filtered List Box }==-----------------;;[/color] [color=#8b4513];; ;;[/color] [color=#8b4513];; Displays a list box interface from which the user may ;;[/color] [color=#8b4513];; select one or more items. Includes an edit box filter ;;[/color] [color=#8b4513];; to enable the user to filter the displayed list of items. ;;[/color] [color=#8b4513];;------------------------------------------------------------;;[/color] [color=#8b4513];; Author: Lee Mac, Copyright © 2013 - www.lee-mac.com ;;[/color] [color=#8b4513];;------------------------------------------------------------;;[/color] [color=#8b4513];; Arguments: ;;[/color] [color=#8b4513];; msg - List box dialog title ;;[/color] [color=#8b4513];; lst - List of strings to display in the list box ;;[/color] [color=#8b4513];; mtp - Boolean flag to determine whether the user may ;;[/color] [color=#8b4513];; select multiple items [b][color=BLACK]([/color][/b]T=Allow Multiple[b][color=BLACK])[/color][/b] ;;[/color] [color=#8b4513];;------------------------------------------------------------;;[/color] [color=#8b4513];; Returns: List of selected items, else nil. ;;[/color] [color=#8b4513];;------------------------------------------------------------;;[/color] [b][color=BLACK]([/color][/b]defun LM:FiltListBox [b][color=FUCHSIA]([/color][/b] msg lst mtp / _addlist dch dcl des rtn tmp [b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]defun _addlist [b][color=NAVY]([/color][/b] key lst [b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]start_list key[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]foreach x lst [b][color=MAROON]([/color][/b]add_list x[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]end_list[b][color=NAVY])[/color][/b] lst [b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]and [b][color=MAROON]([/color][/b]setq dcl [b][color=GREEN]([/color][/b]vl-filename-mktemp nil nil [color=#2f4f4f]".dcl"[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq des [b][color=GREEN]([/color][/b]open dcl [color=#2f4f4f]"w"[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]write-line [b][color=GREEN]([/color][/b]strcat [color=#2f4f4f]"filtlistbox : dialog { label = \"[/color][color=#2f4f4f]" msg "[/color]\[color=#2f4f4f]"; spacer;"[/color] [color=#2f4f4f]": list_box { key = \"[/color]lst\[color=#2f4f4f]"; width = 50; fixed_width = true; height = 15; fixed_height = true; allow_accept = true; "[/color] [color=#2f4f4f]"multiple_select = "[/color] [b][color=BLUE]([/color][/b]if mtp [color=#2f4f4f]"true"[/color] [color=#2f4f4f]"false"[/color][b][color=BLUE])[/color][/b] [color=#2f4f4f]"; }"[/color] [color=#2f4f4f]": edit_box { key = \"[/color]flt\[color=#2f4f4f]"; width = 50; fixed_width = true; label = \"[/color]Filter:\[color=#2f4f4f]"; }"[/color] [color=#2f4f4f]"spacer; ok_cancel; }"[/color] [b][color=GREEN])[/color][/b] des [b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]not [b][color=GREEN]([/color][/b]close des[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]< 0 [b][color=GREEN]([/color][/b]setq dch [b][color=BLUE]([/color][/b]load_dialog dcl[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]new_dialog [color=#2f4f4f]"filtlistbox"[/color] dch[b][color=MAROON])[/color][/b] [b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]progn [b][color=MAROON]([/color][/b]_addlist [color=#2f4f4f]"lst"[/color] [b][color=GREEN]([/color][/b]setq tmp lst[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]set_tile [color=#2f4f4f]"lst"[/color] [b][color=GREEN]([/color][/b]setq rtn [color=#2f4f4f]"0"[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]set_tile [color=#2f4f4f]"flt"[/color] [color=#2f4f4f]"*"[/color][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]action_tile [color=#2f4f4f]"lst"[/color] [color=#2f4f4f]"[b][color=GREEN]([/color][/b]setq rtn $value[b][color=GREEN])[/color][/b]"[/color][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]action_tile [color=#2f4f4f]"flt"[/color] [b][color=GREEN]([/color][/b]vl-prin1-to-string '[b][color=BLUE]([/color][/b]progn [b][color=RED]([/color][/b]setq flt [b][color=PURPLE]([/color][/b]strcat [color=#2f4f4f]"*"[/color] [b][color=TEAL]([/color][/b]strcase $value[b][color=TEAL])[/color][/b] [color=#2f4f4f]"*"[/color][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b]_addlist [color=#2f4f4f]"lst"[/color] [b][color=PURPLE]([/color][/b]setq tmp [b][color=TEAL]([/color][/b]vl-remove-if-not '[b][color=OLIVE]([/color][/b]lambda [b][color=GRAY]([/color][/b] x [b][color=GRAY])[/color][/b] [b][color=GRAY]([/color][/b]wcmatch [b][color=AQUA]([/color][/b]strcase x[b][color=AQUA])[/color][/b] flt[b][color=GRAY])[/color][/b][b][color=OLIVE])[/color][/b] lst[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b]set_tile [color=#2f4f4f]"lst"[/color] [b][color=PURPLE]([/color][/b]if [b][color=TEAL]([/color][/b]< [b][color=OLIVE]([/color][/b]atoi rtn[b][color=OLIVE])[/color][/b] [b][color=OLIVE]([/color][/b]length tmp[b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b] rtn [b][color=TEAL]([/color][/b]setq rtn [color=#2f4f4f]"0"[/color][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [b][color=BLUE])[/color][/b] [b][color=GREEN])[/color][/b] [b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq rtn [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]= 1 [b][color=RED]([/color][/b]start_dialog[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]mapcar '[b][color=RED]([/color][/b]lambda [b][color=PURPLE]([/color][/b] x [b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]nth x tmp[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b]read [b][color=PURPLE]([/color][/b]strcat [color=#2f4f4f]"[b][color=TEAL]([/color][/b]"[/color] rtn [color=#2f4f4f]"[b][color=TEAL])[/color][/b]"[/color][b][color=PURPLE])[/color][/b][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] [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]< 0 dch[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]setq dch [b][color=MAROON]([/color][/b]unload_dialog dch[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]and [b][color=MAROON]([/color][/b]= 'str [b][color=GREEN]([/color][/b]type dcl[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]findfile dcl[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]vl-file-delete dcl[b][color=NAVY])[/color][/b] [b][color=FUCHSIA])[/color][/b] rtn [b][color=BLACK])[/color][/b] Though, It still has sorting issue in the ListBox. Quote Link to comment Share on other sites More sharing options...
Roy_043 Posted September 25, 2016 Share Posted September 25, 2016 @ Grrr: (ssget "_I" ..) will also select entities on locked layers. Regarding the sorting issue: See your own contribution here. Why do you use (SortAssocLstByNth)? (LM:FiltListBox) is not really suited for dealing with numerical values. You can also ssget-filter for open polylines, see code below. (ssget "_:L" '( (-4 . "<OR") (0 . "ARC") (0 . "LINE") (0 . "SPLINE") (-4 . "<AND") (0 . "*POLYLINE") (-4 . "<NOT") (-4 . "&") (70 . 81) ; Exclude closed polylines (70 . 1), AcDbPolygonMesh (70 . 16) and AcDbPolyFaceMesh (70 . 64). (-4 . "NOT>") (-4 . "AND>") (-4 . "OR>") ) ) Quote Link to comment Share on other sites More sharing options...
Grrr Posted September 25, 2016 Share Posted September 25, 2016 Hi Roy, Thanks for the constructive criticism, however I was aware of steps 1,2,3,4 you mentioned, To answer #3 - I used it, because I thought that (vl-sort) would remove duplicate elements from my list which were represented as (ename . lengthProp), but I've just tested that and it did not happen - so went back using (vl-sort). The issue I had is that I wanted to display unique lengths in the LBox, say that there was a selection of 100 lines with length 60.0. In the listbox it would be enough to display the unique value, but in the same time I wanted all the enames in my assoc list (so upon choosing 60 all the 100 lines would be selected). I tried, but in the end I gave up and just used LM's (LM:UniqueFuzz). Fixed the problems you mentioned: [b][color=BLACK]([/color][/b]defun C:test [b][color=FUCHSIA]([/color][/b] / LayFtLst LM:UniqueFuzz SS oprec i ln e Lst ChsnItms nSS [b][color=FUCHSIA])[/color][/b] [color=#8b4513];| Credits to: Lee Mac, Tharwat, Roy |;[/color] [b][color=FUCHSIA]([/color][/b]setq LayFtLst '[b][color=NAVY]([/color][/b] [b][color=MAROON]([/color][/b]-4 . [color=#2f4f4f]"<OR"[/color][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]0 . [color=#2f4f4f]"ARC"[/color][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]0 . [color=#2f4f4f]"LINE"[/color][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]0 . [color=#2f4f4f]"SPLINE"[/color][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]-4 . [color=#2f4f4f]"<AND"[/color][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]0 . [color=#2f4f4f]"*POLYLINE"[/color][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]-4 . [color=#2f4f4f]"<NOT"[/color][b][color=MAROON])[/color][/b][b][color=MAROON]([/color][/b]-4 . [color=#2f4f4f]"&"[/color][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]70 . 81[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]-4 . [color=#2f4f4f]"NOT>"[/color][b][color=MAROON])[/color][/b][color=#8b4513]; [b][color=MAROON]([/color][/b]70 .81[b][color=MAROON])[/color][/b] Excludes closed polylines [b][color=MAROON]([/color][/b]70 . 1[b][color=MAROON])[/color][/b], AcDbPolygonMesh [b][color=MAROON]([/color][/b]70 . 16[b][color=MAROON])[/color][/b] and AcDbPolyFaceMesh [b][color=MAROON]([/color][/b]70 . 64[b][color=MAROON])[/color][/b].[/color] [b][color=MAROON]([/color][/b]-4 . [color=#2f4f4f]"AND>"[/color][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]-4 . [color=#2f4f4f]"OR>"[/color][b][color=MAROON])[/color][/b] [b][color=NAVY])[/color][/b] [b][color=FUCHSIA])[/color][/b][color=#8b4513]; setq[/color] [color=#8b4513];; Unique with Fuzz - Lee Mac[/color] [color=#8b4513];; Returns a list with all elements considered duplicate to[/color] [color=#8b4513];; a given tolerance removed.[/color] [b][color=FUCHSIA]([/color][/b]defun LM:UniqueFuzz [b][color=NAVY]([/color][/b] l f / x r [b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]while l [b][color=MAROON]([/color][/b]setq x [b][color=GREEN]([/color][/b]car l[b][color=GREEN])[/color][/b] l [b][color=GREEN]([/color][/b]vl-remove-if [b][color=BLUE]([/color][/b]function [b][color=RED]([/color][/b]lambda [b][color=PURPLE]([/color][/b] y [b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]equal x y f[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cdr l[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] r [b][color=GREEN]([/color][/b]cons x r[b][color=GREEN])[/color][/b] [b][color=MAROON])[/color][/b] [b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]reverse r[b][color=NAVY])[/color][/b] [b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]not [b][color=MAROON]([/color][/b]setq SS [b][color=GREEN]([/color][/b]ssget [color=#2f4f4f]":L-I"[/color] LayFtLst[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [color=#8b4513];<- shotouts to 'dbroad' [b][color=NAVY]([/color][/b]This is undocumented[b][color=NAVY])[/color][/b].[/color] [b][color=NAVY]([/color][/b]progn [b][color=MAROON]([/color][/b]prompt [color=#2f4f4f]"\nSelect open curves to filter by their length: "[/color][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq SS [b][color=GREEN]([/color][/b]ssget [color=#2f4f4f]"_:L"[/color] LayFtLst[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]sssetfirst nil nil[b][color=NAVY])[/color][/b] [b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]if SS [b][color=NAVY]([/color][/b]progn [b][color=MAROON]([/color][/b]setq oprec [b][color=GREEN]([/color][/b]getvar 'luprec[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setvar 'luprec 1[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]sssetfirst nil nil[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]repeat [b][color=GREEN]([/color][/b]setq i [b][color=BLUE]([/color][/b]sslength SS[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq e [b][color=BLUE]([/color][/b]ssname SS [b][color=RED]([/color][/b]setq i [b][color=PURPLE]([/color][/b]1- i[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 ln [b][color=BLUE]([/color][/b]vlax-curve-getDistAtPoint e [b][color=RED]([/color][/b]vlax-curve-getEndPoint e[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [color=#8b4513]; [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]/= 0. ln [b][color=BLUE])[/color][/b] ; this means that the curve is closed [b][color=BLUE]([/color][/b]now useless when I added [color=#2f4f4f]"LayFtLst"[/color][b][color=BLUE])[/color][/b][/color] [b][color=BLUE]([/color][/b]setq Lst [b][color=RED]([/color][/b]cons [b][color=PURPLE]([/color][/b]list e ln[b][color=PURPLE])[/color][/b] Lst[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [color=#8b4513]; [b][color=GREEN])[/color][/b][/color] [b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]if Lst [b][color=GREEN]([/color][/b]progn [b][color=BLUE]([/color][/b]setq Lst [b][color=RED]([/color][/b]vl-sort Lst [b][color=PURPLE]([/color][/b]function [b][color=TEAL]([/color][/b]lambda [b][color=OLIVE]([/color][/b]a b[b][color=OLIVE])[/color][/b] [b][color=OLIVE]([/color][/b]< [b][color=GRAY]([/color][/b]cadr a[b][color=GRAY])[/color][/b] [b][color=GRAY]([/color][/b]cadr b[b][color=GRAY])[/color][/b][b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]setq Lst [color=#8b4513]; convert to strings[/color] [b][color=RED]([/color][/b]mapcar '[b][color=PURPLE]([/color][/b]lambda [b][color=TEAL]([/color][/b]a b[b][color=TEAL])[/color][/b] [b][color=TEAL]([/color][/b]list a [b][color=OLIVE]([/color][/b]rtos b [b][color=GRAY]([/color][/b]getvar 'lunits[b][color=GRAY])[/color][/b] [b][color=GRAY]([/color][/b]getvar 'luprec[b][color=GRAY])[/color][/b][b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]mapcar 'car Lst[b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]mapcar 'cadr Lst[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]if [b][color=RED]([/color][/b]setq ChsnItms [b][color=PURPLE]([/color][/b]LM:FiltListBox [color=#2f4f4f]"Choose lengths to filter"[/color] [b][color=TEAL]([/color][/b]LM:UniqueFuzz [b][color=OLIVE]([/color][/b]mapcar 'cadr Lst[b][color=OLIVE])[/color][/b] [b][color=OLIVE]([/color][/b]getvar 'luprec[b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b] T[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [color=#8b4513]; remove dupes[/color] [b][color=RED]([/color][/b]progn [b][color=PURPLE]([/color][/b]setq nSS [b][color=TEAL]([/color][/b]ssadd[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]mapcar '[b][color=TEAL]([/color][/b]lambda [b][color=OLIVE]([/color][/b]x[b][color=OLIVE])[/color][/b] [b][color=OLIVE]([/color][/b]ssadd x nSS[b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b] [b][color=TEAL]([/color][/b]mapcar 'car [b][color=OLIVE]([/color][/b]vl-remove-if-not '[b][color=GRAY]([/color][/b]lambda [b][color=AQUA]([/color][/b]x[b][color=AQUA])[/color][/b] [b][color=AQUA]([/color][/b]member [b][color=LIME]([/color][/b]cadr x[b][color=LIME])[/color][/b] ChsnItms[b][color=AQUA])[/color][/b][b][color=GRAY])[/color][/b] Lst[b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b] [b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]sssetfirst nil nSS[b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]vla-Regen [b][color=TEAL]([/color][/b]vla-get-ActiveDocument [b][color=OLIVE]([/color][/b]vlax-get-acad-object[b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b] acActiveViewport[b][color=PURPLE])[/color][/b] [b][color=RED])[/color][/b] [b][color=BLUE])[/color][/b] [b][color=GREEN])[/color][/b] [b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setvar 'luprec oprec[b][color=MAROON])[/color][/b] [b][color=NAVY])[/color][/b] [b][color=FUCHSIA])[/color][/b][color=#8b4513]; if SS[/color] [b][color=FUCHSIA]([/color][/b]princ[b][color=FUCHSIA])[/color][/b] [b][color=BLACK])[/color][/b][color=#8b4513];| defun |; [b][color=BLACK]([/color][/b]vl-load-com[b][color=BLACK])[/color][/b] [b][color=BLACK]([/color][/b]princ[b][color=BLACK])[/color][/b][/color] [color=#8b4513];;------------------=={ Filtered List Box }==-----------------;;[/color] [color=#8b4513];; ;;[/color] [color=#8b4513];; Displays a list box interface from which the user may ;;[/color] [color=#8b4513];; select one or more items. Includes an edit box filter ;;[/color] [color=#8b4513];; to enable the user to filter the displayed list of items. ;;[/color] [color=#8b4513];;------------------------------------------------------------;;[/color] [color=#8b4513];; Author: Lee Mac, Copyright © 2013 - www.lee-mac.com ;;[/color] [color=#8b4513];;------------------------------------------------------------;;[/color] [color=#8b4513];; Arguments: ;;[/color] [color=#8b4513];; msg - List box dialog title ;;[/color] [color=#8b4513];; lst - List of strings to display in the list box ;;[/color] [color=#8b4513];; mtp - Boolean flag to determine whether the user may ;;[/color] [color=#8b4513];; select multiple items [b][color=BLACK]([/color][/b]T=Allow Multiple[b][color=BLACK])[/color][/b] ;;[/color] [color=#8b4513];;------------------------------------------------------------;;[/color] [color=#8b4513];; Returns: List of selected items, else nil. ;;[/color] [color=#8b4513];;------------------------------------------------------------;;[/color] [b][color=BLACK]([/color][/b]defun LM:FiltListBox [b][color=FUCHSIA]([/color][/b] msg lst mtp / _addlist dch dcl des rtn tmp [b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]defun _addlist [b][color=NAVY]([/color][/b] key lst [b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]start_list key[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]foreach x lst [b][color=MAROON]([/color][/b]add_list x[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]end_list[b][color=NAVY])[/color][/b] lst [b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]and [b][color=MAROON]([/color][/b]setq dcl [b][color=GREEN]([/color][/b]vl-filename-mktemp nil nil [color=#2f4f4f]".dcl"[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq des [b][color=GREEN]([/color][/b]open dcl [color=#2f4f4f]"w"[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]write-line [b][color=GREEN]([/color][/b]strcat [color=#2f4f4f]"filtlistbox : dialog { label = \"[/color][color=#2f4f4f]" msg "[/color]\[color=#2f4f4f]"; spacer;"[/color] [color=#2f4f4f]": list_box { key = \"[/color]lst\[color=#2f4f4f]"; width = 50; fixed_width = true; height = 15; fixed_height = true; allow_accept = true; "[/color] [color=#2f4f4f]"multiple_select = "[/color] [b][color=BLUE]([/color][/b]if mtp [color=#2f4f4f]"true"[/color] [color=#2f4f4f]"false"[/color][b][color=BLUE])[/color][/b] [color=#2f4f4f]"; }"[/color] [color=#2f4f4f]": edit_box { key = \"[/color]flt\[color=#2f4f4f]"; width = 50; fixed_width = true; label = \"[/color]Filter:\[color=#2f4f4f]"; }"[/color] [color=#2f4f4f]"spacer; ok_cancel; }"[/color] [b][color=GREEN])[/color][/b] des [b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]not [b][color=GREEN]([/color][/b]close des[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]< 0 [b][color=GREEN]([/color][/b]setq dch [b][color=BLUE]([/color][/b]load_dialog dcl[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]new_dialog [color=#2f4f4f]"filtlistbox"[/color] dch[b][color=MAROON])[/color][/b] [b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]progn [b][color=MAROON]([/color][/b]_addlist [color=#2f4f4f]"lst"[/color] [b][color=GREEN]([/color][/b]setq tmp lst[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]set_tile [color=#2f4f4f]"lst"[/color] [b][color=GREEN]([/color][/b]setq rtn [color=#2f4f4f]"0"[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]set_tile [color=#2f4f4f]"flt"[/color] [color=#2f4f4f]"*"[/color][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]action_tile [color=#2f4f4f]"lst"[/color] [color=#2f4f4f]"[b][color=GREEN]([/color][/b]setq rtn $value[b][color=GREEN])[/color][/b]"[/color][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]action_tile [color=#2f4f4f]"flt"[/color] [b][color=GREEN]([/color][/b]vl-prin1-to-string '[b][color=BLUE]([/color][/b]progn [b][color=RED]([/color][/b]setq flt [b][color=PURPLE]([/color][/b]strcat [color=#2f4f4f]"*"[/color] [b][color=TEAL]([/color][/b]strcase $value[b][color=TEAL])[/color][/b] [color=#2f4f4f]"*"[/color][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b]_addlist [color=#2f4f4f]"lst"[/color] [b][color=PURPLE]([/color][/b]setq tmp [b][color=TEAL]([/color][/b]vl-remove-if-not '[b][color=OLIVE]([/color][/b]lambda [b][color=GRAY]([/color][/b] x [b][color=GRAY])[/color][/b] [b][color=GRAY]([/color][/b]wcmatch [b][color=AQUA]([/color][/b]strcase x[b][color=AQUA])[/color][/b] flt[b][color=GRAY])[/color][/b][b][color=OLIVE])[/color][/b] lst[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b]set_tile [color=#2f4f4f]"lst"[/color] [b][color=PURPLE]([/color][/b]if [b][color=TEAL]([/color][/b]< [b][color=OLIVE]([/color][/b]atoi rtn[b][color=OLIVE])[/color][/b] [b][color=OLIVE]([/color][/b]length tmp[b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b] rtn [b][color=TEAL]([/color][/b]setq rtn [color=#2f4f4f]"0"[/color][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [b][color=BLUE])[/color][/b] [b][color=GREEN])[/color][/b] [b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq rtn [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]= 1 [b][color=RED]([/color][/b]start_dialog[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]mapcar '[b][color=RED]([/color][/b]lambda [b][color=PURPLE]([/color][/b] x [b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]nth x tmp[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b]read [b][color=PURPLE]([/color][/b]strcat [color=#2f4f4f]"[b][color=TEAL]([/color][/b]"[/color] rtn [color=#2f4f4f]"[b][color=TEAL])[/color][/b]"[/color][b][color=PURPLE])[/color][/b][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] [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]< 0 dch[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]setq dch [b][color=MAROON]([/color][/b]unload_dialog dch[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]and [b][color=MAROON]([/color][/b]= 'str [b][color=GREEN]([/color][/b]type dcl[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]findfile dcl[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]vl-file-delete dcl[b][color=NAVY])[/color][/b] [b][color=FUCHSIA])[/color][/b] rtn [b][color=BLACK])[/color][/b] Also I incorporated your suggested ssget filter, and your name in the code, if that matters. Btw I like your critics. Quote Link to comment Share on other sites More sharing options...
BIGAL Posted September 26, 2016 Share Posted September 26, 2016 Grr re closed plines use vl-length as mentioned earlier no need to check. 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.