- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
There are five sets of variable calculations below.
The first group minus the second group
The second group minus the third group
The fourth group minus the fifth group
Five sets of answers are written in mtext
(defun c:areax ()
(setq varlst (mapcar 'getvar (list 'cmdecho 'nomutt)))
(prompt "\nSelect Polylines for Set 1: ")
(mapcar 'setvar (list 'cmdecho 'nomutt) (list 0 1))
(setq ss1 (ssget '((0 . "LWPOLYLINE") (-4 . "<OR") (70 . 1) (70 . 129) (-4 . "OR>"))))
(mapcar 'setvar (list 'cmdecho 'nomutt) (list 1 0))
(prompt "\nSelect Polylines for Set 2: ")
(mapcar 'setvar (list 'cmdecho 'nomutt) (list 0 1))
(setq ss2 (ssget '((0 . "LWPOLYLINE") (-4 . "<OR") (70 . 1) (70 . 129) (-4 . "OR>"))))
(mapcar 'setvar (list 'cmdecho 'nomutt) (list 1 0))
(prompt "\nSelect Polylines for Set 3: ")
(mapcar 'setvar (list 'cmdecho 'nomutt) (list 0 1))
(setq ss3 (ssget '((0 . "LWPOLYLINE") (-4 . "<OR") (70 . 1) (70 . 129) (-4 . "OR>"))))
(mapcar 'setvar (list 'cmdecho 'nomutt) (list 1 0))
(prompt "\nSelect Polylines for Set 4: ")
(mapcar 'setvar (list 'cmdecho 'nomutt) (list 0 1))
(setq ss4 (ssget '((0 . "LWPOLYLINE") (-4 . "<OR") (70 . 1) (70 . 129) (-4 . "OR>"))))
(mapcar 'setvar (list 'cmdecho 'nomutt) (list 1 0))
(prompt "\nSelect Polylines for Set 5: ")
(mapcar 'setvar (list 'cmdecho 'nomutt) (list 0 1))
(setq ss5 (ssget '((0 . "LWPOLYLINE") (-4 . "<OR") (70 . 1) (70 . 129) (-4 . "OR>"))))
(mapcar 'setvar (list 'cmdecho 'nomutt) (list 1 0))
(prompt "\nSelect net area insertion point: ")
(setq insertion-point (getpoint))
(setq mtvalue1 "")
(setq mtvalue2 "")
(setq mtvalue3 "")
(setq mtvalue4 "")
(setq mtvalue5 "")
(setq i 0)
(repeat (sslength ss1)
(setq mtvalue1 (strcat mtvalue1
(itoa (vla-get-objectID (vlax-ename->vla-object (ssname ss1 i))))
">%).Area \\f \"%lu2\">%+%<\\AcObjProp Object(%<\\_ObjId ")
i (1+ i)))
(setq i 0)
(repeat (sslength ss2)
(setq mtvalue2 (strcat mtvalue2
(itoa (vla-get-objectID (vlax-ename->vla-object (ssname ss2 i))))
">%).Area \\f \"%lu2\">%-%<\\AcObjProp Object(%<\\_ObjId ")
i (1+ i)))
(setq i 0)
(repeat (sslength ss3)
(setq mtvalue3 (strcat mtvalue3
(itoa (vla-get-objectID (vlax-ename->vla-object (ssname ss3 i))))
">%).Area \\f \"%lu2\">%-%<\\AcObjProp Object(%<\\_ObjId ")
i (1+ i)))
(setq i 0)
(repeat (sslength ss4)
(setq mtvalue4 (strcat mtvalue4
(itoa (vla-get-objectID (vlax-ename->vla-object (ssname ss4 i))))
">%).Area \\f \"%lu2\">%-%<\\AcObjProp Object(%<\\_ObjId ")
i (1+ i)))
(setq i 0)
(repeat (sslength ss5)
(setq mtvalue5 (strcat mtvalue5
(itoa (vla-get-objectID (vlax-ename->vla-object (ssname ss5 i))))
">%).Area \\f \"%lu2\">%-%<\\AcObjProp Object(%<\\_ObjId ")
i (1+ i)))
(mapcar 'setvar (list 'cmdecho 'nomutt) (list 1 0))
(vla-addmtext (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)))
(vlax-3d-point insertion-point)
0
(strcat "%<\\AcExpr (%<\\AcObjProp Object(%<\\_ObjId "
(vl-string-right-trim "+%<\\AcObjProp Object(%<\\_ObjId " mtvalue1)
"%-%<\\AcObjProp Object(%<\\_ObjId "
(vl-string-right-trim "-%<\\AcObjProp Object(%<\\_ObjId " mtvalue2)
"%-%<\\AcObjProp Object(%<\\_ObjId "
(vl-string-right-trim "-%<\\AcObjProp Object(%<\\_ObjId " mtvalue3)
"%-%<\\AcObjProp Object(%<\\_ObjId "
(vl-string-right-trim "-%<\\AcObjProp Object(%<\\_ObjId " mtvalue4)
"%-%<\\AcObjProp Object(%<\\_ObjId " mtvalue5)
"%) \\f \"%lu2\">%")
(mapcar 'setvar (list 'cmdecho 'nomutt) varlst)
(princ))
Solved! Go to Solution.