here's what i use; i wrote this because i hate how LDD's parcel labeler uses attributed blocks. if the boundary is not closed, nothing happens. it will increment from a starting point (1 if nil, or 1+ the last number used) and it will use allow for a prefix for the lot/parcel, etc. (ie: LOT 1, PARCEL 1, CONSERVATION EASEMENT #5)
below the label, it will place the acreage "2.22 AC.±" and the acerage and square footage will be printed on the command line.
result: LOT 5
2.25 AC.±
created text is middle center justified mtext.
Code:
;get area of closed boundary
;will allow user to specify a prefix (ie: Lot, Parcel), starting number (ie: 1, 2) and pick point
;inside a closed boundary (pline not required). it will place a piece of mtext where picked with
;the prefix, number and acerage (ie: Lot 1 - next line - 0.25 Ac.±)
;the user may continue to picked closed areas and the number will increase by one
;CREATED BY: alan thompson 11.28.07
;UPDATED BY: alan thompson 12.19.07 (mtext instead of dtext, lot numbering works better, etc.)
;UPDATED BY: alan thompson 4.22.08 (added ability to enter more than 1 word for prefix)
;UPDATED BY: alan thompson 6.10.08 (rearranged code so dimzin isn't changed unless boundary can be created)
;updated by: alan thompson 6.24.08 (added title, localized variables, changed code to remember last "Number Prefix"
; and "Lot Number" used, if "Number Prefix" is nil, "LOT" is used, if "Lot Number"
; is nil, "1" is used)
(defun c:GA (/ dzin num_prefix ins lot_number ar acre txt)
(if (= *lot_number nil)
(setq *lot_number 1)
);if
(if (= *num_prefix nil)
(setq *num_prefix "LOT")
);if
(setq DZIN (getvar "dimzin"))
(setq num_prefix (getstring T (strcat "\Enter Number Prefix (Lot, Parcel, etc.) <" *num_prefix ">: ")))
(if (= num_prefix "")
(setq num_prefix *num_prefix)
(setq *num_prefix num_prefix)
);if
(setq ins 1)
(setq lot_number (getint (strcat "\Enter First Lot Number <" (rtos *lot_number) ">: ")))
(if (= lot_number nil)
(setq lot_number *lot_number)
(setq *lot_number lot_number)
);if
(while
(if (setq ins (getpoint "\nPick Number Location: "))
(progn
(command "-boundary" ins "")
(command "area" "o" "l")
(command "erase" "l" "")
(setvar 'dimzin 0)
(setq AR (getvar "area"))
(setq ACRE (strcat (rtos (/ (getvar "area") 43560) 2 2) " AC.±"))
(setq txt (strcat num_prefix " " (rtos lot_number 2 0)))
(command "mtext" ins "j" "mc" ins txt ACRE "")
(setq lot_number (1+ lot_number))
(setq *lot_number lot_number)
(setvar 'dimzin DZIN)
(princ (strcat "\n" ACRE " & " (rtos (getvar "area") 2 2) " SQ. FT."))
);progn
);if setq ins
);WHILE
(princ)
);defun