error trapping - what should b
hi,i've written some input validation code, and i wonder what is really required to code and what can be handled by the autolisp *error* function.
secondly, for readability sake, since the validation code is long i were thinking to link it from a different sub-function . is this a good idea?
(this function is not going to interact with the user so i didnt use the getinit codes)
Thanks
Shay
;;;--------------------------------------------------------------------;;;; Function:setEntSeg(ent typ max min) ;;;; Vesion: 0.0;;; Creation:;;; Update:;;; Sub-function : 3DTO2DpONIT();;; ;;;; Description:divids entity into segments while maintaining;;; typ segment length. when total length cannot be;;; divided without a reminder. last segments being handled;;; according to min max parameters.;;; ;;; ;;;; Arguments: ;;;; typ = typical segment length. ;;;; mn = integer. minimum length allowed. ;;;; mx = integer. maximum length allowed. ;;;; ;;;; Returned Value:A list of 2d coordinates represanting the;;; new segments.;;; ;;;; Usage: ;;;; ;;;;--------------------------------------------------------------------;(defun setEntSeg (ent mn typ mx / plst y x cnt ang) (if (= (cdr (assoc 0 ent)) "LWPOLYLINE") (if (not (and (zerop mn) (zerop typ) (zerop mx))) (if (and (or (= (type typ) 'INT)) (or (= (type mn) 'INT)) (or (= (type mx) 'INT)))(if (not (and (minusp mn) (minusp mx)))(if (and (> mx typ) (< mn typ)) (princ "input is valid\n") (princ "iilegeal values, make sure mx is greater than typ and mn is smaller than typ\n" ))(princ "negative values are not allowed\n"))(princ "mn and/or mx must be integer\n") ) (princ "zero is not allowed/n") ) (princ "function works only with lwpolyline\n") ) (princ))(defun test () (setq ent (entmake (list (cons 0 "LWPOLYLINE") (cons 100 "AcDbEntity") (cons 100 "AcDbPolyline") (cons 90 2) (cons 10 (list 0 0)) (cons 10 (list 100 100)) (cons 210 (list 0 0 1)) ) ) ) (setEntSeg ent 6 6 6)) eror checking
If Not polyline do in loop with a exit option "you have not picked a pline please try again or pick nothing to exit" de. Its a bit late if they have picked an object then they have no 2nd go. now where is my code example trying to find uses a while to check if NIL no object picked then (exit).
(while (setq obj (entget (car (entsel "\nPick Pline"))))(if (= (cdr (assoc 0 obj)) "LWPOLYLINE")(progn; your code; your code (princ "wow") ; your code ; your code(exit) ; to get out of while) ; end progn(alert (strcat "You picked a " (cdr (assoc 0 obj)) " try again nothing to exit"))) ; end if) ; end while thanks Bigal.
as i said, input verification will take place in the getInput() function.
still have the same wonders thu... Does
cond helps? What *error* can handle and what i can handle?
页:
[1]