Still working on this, sort of. The enclosed template file is what I want to create by way of lisp.
Thanks to Steve's routine below, I can get the dimvars:
(defun GetDimvars (parent / doc saved collection pat name namelist var
varlist val rslt lst pat
)
;;
;; Steve Doman 07-05-04 beta
;;
;; Given a parent dimstyle name, returns a list of dimvars
;; for each child style in the dimension style family
;; (getdimvars "standard") -> (("STANDARD" ("dimadec" . 0) ... ))
;;
(setq parent (strcase parent))
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(setq saved (vla-get-activedimstyle doc))
(setq collection (vla-get-dimstyles doc))
(setq pat (strcat parent "," parent "$[023467]")) ;_ for wcmatch
;; The following list of dimvars may need to be adjusted cause
;; I haven't checked them over yet.
(setq varlist (list "dimadec" "dimalt" "dimaltd" "dimaltf"
"dimaltrnd" "dimalttd" "dimalttz" "dimaltu"
"dimaltz" "dimapost" "dimaso" "dimassoc"
"dimasz" "dimatfit" "dimaunit" "dimazin"
"dimblk" "dimblk1" "dimblk2" "dimcen" "dimclrd"
"dimclre" "dimclrt" "dimdec" "dimdle" "dimdli"
"dimdsep" "dimexe" "dimexo" "dimfit" "dimfrac"
"dimgap" "dimjust" "dimldrblk" "dimlfac"
"dimlim" "dimlunit" "dimlwd" "dimlwe" "dimpost"
"dimrnd" "dimsah" "dimscale" "dimsd1" "dimsd2"
"dimse1" "dimse2" "dimsho" "dimsoxd" "dimtad"
"dimtdec" "dimtfac" "dimtih" "dimtix" "dimtm"
"dimtmove" "dimtofl" "dimtoh" "dimtol" "dimtolj"
"dimtp" "dimtsz" "dimtvp" "dimtxsty" "dimtxt"
"dimtzin" "dimunit" "dimupt" "dimzin"
)
)
;; Make a list of each child style in dimstyle family
(vlax-for itm collection
(setq name (strcase (vla-get-name itm)))
(if (wcmatch name pat)
(setq namelist (cons name namelist))
)
)
;; Set each child style active and collect dimvars
(foreach name (reverse namelist)
(vla-put-activedimstyle doc (vla-item collection name))
(foreach var varlist
(setq val (getvar var))
;;(cond ((and (= (type val) 'STR) (= val "")) (setq val ".")))
(setq lst (cons (cons var val) lst))
)
(setq rslt (cons (cons name (reverse lst)) rslt))
(setq lst nil)
)
;; restore active dimstyle
(vla-put-activedimstyle doc saved)
(reverse rslt)
)
(GetDimvars "ARWW-32")
Using the code above I get:
**ARWW-32 NEW
("DIMADEC" . 0)
("DIMALT" . 0)
("DIMALTD" . 2)
("DIMALTF" . 25.4)
("DIMALTRND" . 0.0)
("DIMALTTD" . 2)
("DIMALTTZ" . 3)
("DIMALTU" . 4)
("DIMALTZ" . 3)
("DIMAPOST" . ".")
("DIMASO" . 1)
("DIMASSOC" . 1)
("DIMASZ" . 0.09375)
("DIMATFIT" . 3)
("DIMAUNIT" . 1)
("DIMAZIN" . 0)
("DIMBLK" . ".")
("DIMBLK1" . "Closed")
("DIMBLK2" . "Closed")
("DIMCEN" . 0.0)
("DIMCLRD" . 30)
("DIMCLRE" . 30)
("DIMCLRT" . 2)
("DIMDEC" . 2)
("DIMDLE" . 0.09375)
("DIMDLI" . 0.25)
("DIMDSEP" . ".")
("DIMEXE" . 0.0625)
("DIMEXO" . 0.0625)
("DIMFRAC" . 2)
("DIMGAP" . 0.0625)
("DIMJUST" . 0)
("DIMLDRBLK" . "ArchTick")
("DIMLFAC" . 1.0)
("DIMLIM" . 0)
("DIMLUNIT" . 4)
("DIMLWD" . -2)
("DIMLWE" . -2)
("DIMPOST" . ".")
("DIMRND" . 0.0)
("DIMSAH" . 1)
("DIMSCALE" . 32.0)
("DIMSD1" . 0)
("DIMSD2" . 0)
("DIMSE1" . 0)
("DIMSE2" . 0)
("DIMSHO" . 1)
("DIMSOXD" . 0)
("DIMTAD" . 1)
("DIMTDEC" . 3)
("DIMTFAC" . 1.0)
("DIMTIH" . 1)
("DIMTIX" . 0)
("DIMTM" . 0.0)
("DIMTMOVE" . 0)
("DIMTOFL" . 0)
("DIMTOH" . 1)
("DIMTOL" . 0)
("DIMTOLJ" . 1)
("DIMTP" . 0.0)
("DIMTSZ" . 0.0)
("DIMTVP" . 0.0)
("DIMTXSTY" . "DIMS")
("DIMTXT" . 0.09375)
("DIMTZIN" . 3)
("DIMUPT" . 1)
("DIMZIN" . 3)
I can start off with the template file, but would rather do it by lisp.
Gary