Visual LISP, AutoLISP and General Customization
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Can I ask you some calculation questions?

2 REPLIES 2
SOLVED
Reply
Message 1 of 3
raymondcheng0922
166 Views, 2 Replies

Can I ask you some calculation questions?

Can the area answer be between 2 and 10? If less than 2, mark it as 2. If it is greater than 10, mark it as 10.

 

 

 

(defun c:2_sset_area (/ _nomutt _prompt list_1 list_2 )
(setq _nomutt (setvar 'nomutt 0) _prompt (prompt "\nSelection set 1: ") _nomutt (setvar 'nomutt 1)
list_1 (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget '((0 . "lwpolyline") (-4 . "&=") (70 . 1)))))))
_nomutt (setvar 'nomutt 0) _prompt (prompt "\nSelection set 2: ") _nomutt (setvar 'nomutt 1)
list_2 (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget '((0 . "lwpolyline") (-4 . "&=") (70 . 1)))))))
_nomutt (setvar 'nomutt 0)
)
(vla-addmtext (vla-get-block (vla-get-activelayout (vla-get-activedocument (vlax-get-acad-object))))
(vlax-3d-point (getpoint "\nPick point for placing calculated mtext: "))
0
(strcat
(strcat "%<\\AcExpr ("
(apply 'strcat (cdr (apply 'append (mapcar '(lambda (pline) (list "+" (strcat "%<\\acobjprop.16.2 object(%<\\_objid " (itoa (vla-get-objectid pline)) ">%).area>%"))) list_1))))
(apply 'strcat (apply 'append (mapcar '(lambda (pline) (list "-" (strcat "%<\\acobjprop.16.2 object(%<\\_objid " (itoa (vla-get-objectid pline)) ">%).area>%" ))) list_2)))
") \\f \"%lu2\">%"
)
)
)
(princ)
)

2 REPLIES 2
Message 2 of 3

you mean no fields if result < 2 or result > 10?

like that?

(defun c:2_sset_area (/ _nomutt _prompt list_1 list_2 )
	(setq _nomutt (setvar 'nomutt 0) _prompt (prompt "\nSelection set 1: ") _nomutt (setvar 'nomutt 1)
		   list_1 (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget '((0 . "lwpolyline") (-4 . "&=") (70 . 1)))))))
		  _nomutt (setvar 'nomutt 0) _prompt (prompt "\nSelection set 2: ") _nomutt (setvar 'nomutt 1)
		   list_2 (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget '((0 . "lwpolyline") (-4 . "&=") (70 . 1)))))))
		  _nomutt (setvar 'nomutt 0)
		  result (- (apply '+ (mapcar 'vla-get-area list_1)) (apply '+ (mapcar 'vla-get-area list_2))) 
	)
	(vla-addmtext (vla-get-block (vla-get-activelayout (vla-get-activedocument (vlax-get-acad-object))))
		(vlax-3d-point (getpoint "\nPick point for placing calculated mtext: "))
		0
		(cond
			(
				(> 2 result)
					"2"
			)
			(
				(< 10 result)
					"10"
			)
			(strcat
				(strcat "%<\\AcExpr ("
					(apply 'strcat (cdr (apply 'append (mapcar '(lambda (pline) (list "+" (strcat "%<\\acobjprop.16.2 object(%<\\_objid " (itoa (vla-get-objectid pline)) ">%).area>%"))) list_1))))
					(apply 'strcat (apply 'append (mapcar '(lambda (pline) (list "-" (strcat "%<\\acobjprop.16.2 object(%<\\_objid " (itoa (vla-get-objectid pline)) ">%).area>%" ))) list_2)))
					") \\f \"%lu2\">%"
				)
			)
		)
	)
	(princ)
)
Message 3 of 3

Thank you 

but Variables will be invalid

field has no original function.

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Forma Design Contest


AutoCAD Beta