Orjen Posted January 8, 2018 Share Posted January 8, 2018 How can I count objects automatically inside a hatched area. Is there a quick command for doing this? Need help. thanks, Orjen Quote Link to comment Share on other sites More sharing options...
BIGAL Posted January 8, 2018 Share Posted January 8, 2018 Very simple there is a hatch boundary option this creates a pline around a hatch then using this you can do a (ssget "wp" within polygon and it will find all objects. Just a bit busy right now will see what I have, here is a start, try it on a pline around objects. ; Text in polygons ; By Alan H may 2013 (vl-load-com) (defun getcoords (ent) (vlax-safearray->list (vlax-variant-value (vlax-get-property (vlax-ename->vla-object ent) "Coordinates" ) ) ) ) (defun co-ords2xy () ; convert now to a list of xy as co-ords are x y x y x y if 3d x y z x y z (setq numb (/ (length co-ords) 2)) (setq I 0) (repeat numb (setq xy (list (nth I co-ords)(nth (+ I 1) co-ords) )) (setq coordsxy (cons xy coordsxy)) (setq I (+ I 2)) ) ; end repeat ) ; end defun ; program starts here ; choose output file change acdatemp to what you want (setq fname (strcat "c:/alan/" (getstring "\nEnter file name "))) (setq fout (open fname "w")) (setq plobjs (ssget (list (cons 0 "lwpolyline")))) (setq numb1 (sslength plobjs)) (setq x numb1) (repeat numb1 (setq obj (ssname plobjs (setq x (- x 1)))) (setq co-ords (getcoords obj)) (co-ords2xy) ; write pline co-ords here (setq numb3 (length co-ords)) (setq z numb3) (setq ansco-ords "") (repeat numb3 (setq ansco-ords (strcat ansco-ords (rtos (nth (setq z (- z 1)) co-ords) 2 3 ) " " )) ) (setq ans (strcat "Pline " ansco-ords)) (write-line ans fout) (setq ansco-ords "") (setq ss (ssget "WP" coordsxy ) ; selection set within polygon (if (= ss nil) (princ "\nnothing inside") (progn (setq coordsxy nil) ; reset for next time (setq numb2 (sslength ss)) (setq y numb2) (repeat numb2 (setq anstext (vlax-get-property (vlax-ename->vla-object (ssname ss (setq y (- y 1)))) "Textstring")) (princ anstext) ; change to write text to file (write-line (strcat "text " anstext) fout) (princ "\n") ) ; end repeat2 (setq ss nil) ; reset for next poly ) ) ) ; end repeat1 (close fout) (princ) Quote Link to comment Share on other sites More sharing options...
lrm Posted January 8, 2018 Share Posted January 8, 2018 Another method that may give you the count you need but does not automatically use the hatched area is to give the MOVE command followed by WP. You can then trace the area of interest and get the number of objects found within the boundary. Using CP would give you the count within and crossing. Escape out of the move command after you get the count. 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.