@zasanil wrote:
.... when you have the properties box open and you have a few polylines selected which have different lengths, the length box shows up with a value of *VARIES*. I was wondering if it would be possible to have a new box under that one with a value of the range (min/max) length somehow. Or 2 boxes, max length / min length. ....
Would something you could call up instead of the Properties box do? For lengths in particular, you could have a little command such as this [in rather simple terms, and lightly tested]:
(vl-load-com); if needed
(defun C:ROL (/ ss str ent etype); = Report Object Length(s)
(if (not (setq ss (ssget "_I" '((0 . "*LINE,ARC,CIRCLE,ELLIPSE")))))
(setq ss (ssget '((0 . "*LINE,ARC,CIRCLE,ELLIPSE"))))
); if
(setq str "Object: Length:")
(repeat (setq n (sslength ss))
(setq
ent (ssname ss (setq n (1- n)))
etype (cdr (assoc 0 (entget ent)))
); setq
(if (not (wcmatch etype "MLINE,XLINE")); found by above but w/o reportable length
(setq str
(strcat
str "\n" etype " " ; [change number of spaces as desired]
(rtos (vlax-curve-getDistAtParam ent (vlax-curve-getEndParam ent))); length
); strcat
); setq
); if
); repeat
(alert str)
); defun
That puts up an Alert box listing all objects among the selection that it can report a length for, with each one's length [in current Units length format setting]. It works with or without pre-selection of objects. As written, you would have to deduce the range of lengths yourself, but such a thing could be made to add the longest and shortest lengths to the reporting, or report only those and not the length of each object, or whatever other permutation you desire. It could report more things about each object, and/or you could make separate but similar ones to report on different properties. It could report to the Command: line with a Prompt, instead of in an Alert. Etc., etc.
Kent Cooper, AIA