samifox 发表于 2022-7-5 20:20:20

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

BIGAL 发表于 2022-7-5 20:41:24

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

samifox 发表于 2022-7-5 21:03:07

thanks Bigal.
 
as i said, input verification will take place in the getInput() function.
 
still have the same wonders thu...

hanhphuc 发表于 2022-7-5 21:13:14

Does
cond helps?

samifox 发表于 2022-7-5 21:26:54

What *error* can handle and what i can handle?
页: [1]
查看完整版本: error trapping - what should b