Author Topic: Creating a dimstyle  (Read 8755 times)

0 Members and 1 Guest are viewing this topic.

GDF

  • Water Moccasin
  • Posts: 2081
Creating a dimstyle
« on: June 17, 2008, 10:36:29 AM »
I am trying without success to create a dimstyle that looks like the inclosed image. I want to place to dimension text manually and have the text always horizontal.


Here are the settings:
**ARWW-32
("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)


The code below is in a format and coding that I have successfully used for 12 other dimstyles:
Code: [Select]
(defun DIMSETUP_DIM0  (/ name0)
  (setvar "cmdecho" 0)
  ;;(ARCH_DIM) not needed for now see below

;;new coding below is not working to create the dimstyle I want:
;;;1 = "on" 0 = "off"
(setvar "DIMADEC" 0)
(setvar "DIMALT" 0)
(setvar "DIMALTD" 2)
(setvar "DIMALTF" 25.4)
(setvar "DIMALTRND" 0.0)
(setvar "DIMALTTD" 2)
(setvar "DIMALTTZ" 3)
(setvar "DIMALTU" 4)
(setvar "DIMALTZ" 3)
(setvar "DIMAPOST" ".")
(setvar "DIMASSOC" 1)
(setvar "DIMASZ" 0.09375)
(setvar "DIMATFIT" 3)
(setvar "DIMAUNIT" 1)
(setvar "DIMAZIN" 0)
(setvar "DIMBLK" ".")
(setvar "DIMBLK1" "Closed")
(setvar "DIMBLK2" "Closed")
(setvar "DIMCEN" 0.0)
(setvar "DIMCLRD" 30)
(setvar "DIMCLRE" 30)
(setvar "DIMCLRT" 2)
(setvar "DIMDEC" 2)
(setvar "DIMDLE" 0.09375)
(setvar "DIMDLI" 0.25)
(setvar "DIMDSEP" ".")
(setvar "DIMEXE" 0.0625)
(setvar "DIMEXO" 0.0625)
(setvar "DIMFRAC" 2)
(setvar "DIMGAP" 0.0625)
(setvar "DIMJUST" 0)
(setvar "DIMLDRBLK" "ArchTick")
(setvar "DIMLFAC" 1.0)
(setvar "DIMLIM" 0)
(setvar "DIMLUNIT" 4)
(setvar "DIMLWD" -2)
(setvar "DIMLWE" -2)
(setvar "DIMPOST" ".")
(setvar "DIMRND" 0.0)
(setvar "DIMSAH" 1)
(setvar "DIMSCALE" 32.0)
(setvar "DIMSD1" 0)
(setvar "DIMSD2" 0)
(setvar "DIMSE1" 0)
(setvar "DIMSE2" 0)
(setvar "DIMSHO" 1)
(setvar "DIMSOXD" 0)
(setvar "DIMTAD" 1)
(setvar "DIMTDEC" 3)
(setvar "DIMTFAC" 1.0)
(setvar "DIMTIH" 1)
(setvar "DIMTIX" 0)
(setvar "DIMTM" 0.0)
(setvar "DIMTMOVE" 0)
(setvar "DIMTOFL" 0)
(setvar "DIMTOH" 1)
(setvar "DIMTOL" 0)
(setvar "DIMTOLJ" 1)
(setvar "DIMTP" 0.0)
(setvar "DIMTSZ" 0.0)
(setvar "DIMTVP" 0.0)
(setvar "DIMTXSTY" "DIMS")
(setvar "DIMTXT" 0.09375)
(setvar "DIMTZIN" 3)
(setvar "DIMUPT" 1)
(setvar "DIMZIN" 3)

  (ARCH:BLKNAM "ARR" (strcat ARCH#CUSF "DIMS/"))
  (COMMAND "INSERT" (strcat "_CLOSED=" ARCH#CUSF "DIMS/" "ARR") (command))
  ;;(setvar "DIMBLK" "ARR")
  (setvar "DIMBLK1" "_CLOSED")
  (setvar "DIMBLK2" "_CLOSED")
  (SET_DIMNAME)
  (cond ((= ARCH#UNIT nil) (Prompt "\n* Run Drawing File SETUP first. *"))
        ((= ARCH#UNIT "Ci") (setq name0 (strcat "ARWW-D-" DIMNAME)))
        ((= ARCH#UNIT "Mm") (setq name0 (strcat "ARWW-M-" DIMNAME)))
        ((= ARCH#UNIT "Cm") (setq name0 (strcat "ARWW-M-" DIMNAME)))
        ((= ARCH#UNIT "Ar") (setq name0 (strcat "ARWW-" DIMNAME)))
        ((= ARCH#UNIT "Me") (setq name0 (strcat "ARWW-M-" DIMNAME)))
        ((= ARCH#UNIT "En") (setq name0 (strcat "ARWW-" DIMNAME))))
  (cond ((/= (cdr (assoc 2 (tblsearch "dimstyle" name0))) name0)
         (command "dimstyle" "S" name0))
        ((= (cdr (assoc 2 (tblsearch "dimstyle" name0))) name0)
         (command "dimstyle" "R" name0)))
  ;;(princ (strcat "\n* New Dimstyle \"" name0 "\" has been completed *")) 
  (princ))
;;arww
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Thanks for any tips or help.

Gary
Why is there never enough time to do it right, but always enough time to do it over?
BricsCAD 2020x64 Windows 10x64

CAB

  • Global Moderator
  • Seagull
  • Posts: 10401
Re: Creating a dimstyle
« Reply #1 on: June 17, 2008, 11:59:02 AM »
I've reached the age where the happy hour is a nap. (°¿°)
Windows 10 core i7 4790k 4Ghz 32GB GTX 970
Please support this web site.

CAB

  • Global Moderator
  • Seagull
  • Posts: 10401
Re: Creating a dimstyle
« Reply #2 on: June 17, 2008, 12:04:08 PM »
I've reached the age where the happy hour is a nap. (°¿°)
Windows 10 core i7 4790k 4Ghz 32GB GTX 970
Please support this web site.

GDF

  • Water Moccasin
  • Posts: 2081
Re: Creating a dimstyle
« Reply #3 on: June 17, 2008, 06:02:57 PM »
Here is another:
http://www.theswamp.org/index.php?topic=12914.msg157526#msg157526


Thanks Alan, I quess you saw I was too lazy to do a search, my bad.
Why is there never enough time to do it right, but always enough time to do it over?
BricsCAD 2020x64 Windows 10x64

GDF

  • Water Moccasin
  • Posts: 2081
Re: Creating a dimstyle
« Reply #4 on: June 30, 2008, 10:43:16 AM »
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:
Code: [Select]
(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:

Code: [Select]
**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
Why is there never enough time to do it right, but always enough time to do it over?
BricsCAD 2020x64 Windows 10x64

GDF

  • Water Moccasin
  • Posts: 2081
Re: Creating a dimstyle
« Reply #5 on: June 30, 2008, 11:21:42 AM »
I got this to work...hopefully I have enclosed all of the subroutines.
Anyway, I quess this Monday it decided to work, go figure.

Code: [Select]
;;(setq ARCH#TXSD "DIMS")
;;(setq ARCH#TXSN "NOTES")
;;(setq ARCH#TXST "TITLE")
;;(setq ARCH#TXSS "SYMBOL")
;;(setq ARCH#TXSC "COVER")
;;(setq ARCH#TXSA "AREA")
;;(setq ARCH#TXSU "MARKS")

;;(setq ARCH#TXFD "Helvl.shx") ;;Renamed Romans2.shx
;;(setq ARCH#TXFN "Helvl.shx") ;;Renamed Romans2.shx
;;(setq ARCH#TXFT "Multplnl.shx")
;;(setq ARCH#TXFS "Multplnl.shx")
;;(setq ARCH#TXFC "Multplnl.shx")
;;(setq ARCH#TXFA "Multplnl.shx")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;; Set Textstyle 3/32 Function ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun ARCH:SETTEXTSTYLE-332 (txstyle txfont txwidth txoblique txheight /)
  (setvar "cmdecho" 0) 
  (ARCH:SETTEXTHEIGHT-332) 
  (command "-style" txstyle txfont "0" txwidth txoblique "N" "N" "N")
  (setvar "textsize" txheight)
  (setvar "textstyle" txstyle)
  (princ)
)
;;;(ARCH:SETTEXTSTYLE-332 ARCH#TXSN ARCH#TXFN "0.7" "0" ARCH#SC-N)
;;;(ARCH:SETTEXTSTYLE-332 ARCH#TXST ARCH#TXFT "0.875" "0" ARCH#SC-T)
(defun ARCH:SETTEXTHEIGHT-332 ()
  (setvar "cmdecho" 0)
  (cond       
    ((= ARCH#UNIT "Ci")     
      (setq ARCH#SC-N (/ (getvar "dimscale") 10.66666)
            ARCH#SC-T (/ (getvar "dimscale") 5.33333)
            ARCH#SC-S (/ (getvar "dimscale") 2.66666)
      )
      (princ)
    )
    ((= ARCH#UNIT "Mm")
      (setq ARCH#SC-N (/ (getvar "dimscale") 0.31496)
    ARCH#SC-T (/ (getvar "dimscale") 0.20997)
            ARCH#SC-S (/ (getvar "dimscale") 0.20997)
      )
      (princ)
    )   
    ((= ARCH#UNIT "Cm")
      (setq ARCH#SC-N (/ (getvar "dimscale") 3.1496)
    ARCH#SC-T (/ (getvar "dimscale") 2.0997)
            ARCH#SC-S (/ (getvar "dimscale") 2.0997)
      )
      (princ)
    )     
    ((= ARCH#UNIT "Ar")
      (setq ARCH#SC-N (/ (getvar "dimscale") 10.66666)
            ARCH#SC-T (/ (getvar "dimscale") 5.33333)
            ARCH#SC-S (/ (getvar "dimscale") 2.66666)
      )     
      (princ)
    )       
    ((= ARCH#UNIT "Me")
      (setq ARCH#SC-N (/ (getvar "dimscale") 314.96)
    ARCH#SC-T (/ (getvar "dimscale") 209.97) 
            ARCH#SC-S (/ (getvar "dimscale") 209.97)         
      )
      (princ)
    )   
    ((= ARCH#UNIT "En")
      (setq ARCH#SC-N (/ (getvar "dimscale") 10.66666)
            ARCH#SC-T (/ (getvar "dimscale") 5.33333)
            ARCH#SC-S (/ (getvar "dimscale") 2.66666)
      )     
      (princ)
    )   
  ) 
  (princ)
)


(defun ARCH:BLKNAM  (blknam path / e)
  (setq e (tblobjname "BLOCK" blknam))
  (if e
    (command "insert" (strcat blknam "=" path blknam) (command)))
  (princ))

(defun ARCH:SET-DIMS  ()
  (if (not ARCH:SETTEXTHEIGHT-332)
    (load (strcat ARCH#CUSF "ANNO\\" "ARCH_TEXTSTYLES")))
  (ARCH:SETTEXTHEIGHT-332)
  (cond ;;((/= (cdr (assoc 2 (tblsearch "style" ARCH#TXSD))) ARCH#TXSD)
        ((/= (cdr (assoc 42 (tblsearch "style" ARCH#TXSD))) ARCH#SC-N)
         (ARCH:SETTEXTSTYLE-332 ARCH#TXSD ARCH#TXFD "0.7" "0" ARCH#SC-N))
        ((= (cdr (assoc 2 (tblsearch "style" ARCH#TXSD))) ARCH#TXSD)
         (setvar "textstyle" ARCH#TXSD))))


(defun ARCH_DIM  () ;ARCHITETTURA
  (setvar "cmdecho" 0)
  (ARCH:SET-DIMS)
  ;;(command "insert" (strcat ARCH#CUSF "DIMS/" "TICK") (command)) ;not needed
  ;;tick block inserted
  ;;(command "insert" (strcat ARCH#CUSF "DIMS/" "DOTT") (command)) ;not needed
  ;;dott block inserted   
  (setvar "DIMALT" 0) ;Alternate units selected
  (setvar "DIMALTD" 2) ;Alternate unit decimal places
  (setvar "DIMALTF" 25.40000000) ;Alternate unit scale factor
  (setvar "DIMALTTD" 2) ;Alternate tolerance decimal places
  (setvar "DIMALTTZ" 3) ;Alternate tolerance zero suppression
  (setvar "DIMALTU" 4) ;Alternate units
  (setvar "DIMALTZ" 3) ;Alternate unit zero suppression
  ;;(setvar "DIMASO" 1) ;Create associative dimensions
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;arrow size
  (cond ((= ARCH#UNIT "Ci") (setvar "DIMASZ" 0.09375)) ;Arrow size 
        ((= ARCH#UNIT "Mm") (setvar "DIMASZ" 2.5)) ;Arrow size
        ((= ARCH#UNIT "Cm") (setvar "DIMASZ" 0.25)) ;Arrow size 
        ((= ARCH#UNIT "Ar") (setvar "DIMASZ" 0.09375)) ;Arrow size
        ((= ARCH#UNIT "Me") (setvar "DIMASZ" 0.0025)) ;Arrow size   
        ((= ARCH#UNIT "En") (setvar "DIMASZ" 0.09375)) ;Arrow size
        )
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;center mark size
  (cond ((= ARCH#UNIT "Ci") (setvar "DIMCEN" 0.09375)) ;Center mark size 
        ((= ARCH#UNIT "Mm") (setvar "DIMCEN" 2.5)) ;Center mark size
        ((= ARCH#UNIT "Cm") (setvar "DIMCEN" 0.25)) ;Center mark size 
        ((= ARCH#UNIT "Ar") (setvar "DIMCEN" 0.09375)) ;Center mark size
        ((= ARCH#UNIT "Me") (setvar "DIMCEN" 0.0025)) ;Center mark size
        ((= ARCH#UNIT "En") (setvar "DIMCEN" 0.09375)) ;Center mark size
        )
  ;;dimension line and leader color   
  (setvar "DIMCLRD" 30) ;Dimension line and leader color
  ;;extension line color       
  (setvar "DIMCLRE" 30) ;Extension line color 
  ;;dimension text color   
  (setvar "DIMCLRT" 2) ;Dimension text color 
  (setvar "DIMDLE" 0.09375) ;Dimension line extension
  ;;dimension line spacing
  (cond ((= ARCH#UNIT "Ci") (setvar "DIMDLI" 0.25)) ;Dimension line spacing 
        ((= ARCH#UNIT "Mm") (setvar "DIMDLI" 10.0)) ;Dimension line spacing
        ((= ARCH#UNIT "Cm") (setvar "DIMDLI" 1.0)) ;Dimension line spacing 
        ((= ARCH#UNIT "Ar") (setvar "DIMDLI" 0.25)) ;Dimension line spacing
        ((= ARCH#UNIT "Me") (setvar "DIMDLI" 0.01)) ;Dimension line spacing 
        ((= ARCH#UNIT "En") (setvar "DIMDLI" 0.25)) ;Dimension line spacing
        )
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;extension above dimension line
  (cond ((= ARCH#UNIT "Ci") (setvar "DIMEXE" 0.0625)) ;Extension above dimension line 
        ((= ARCH#UNIT "Mm") (setvar "DIMEXE" 1.0)) ;Extension above dimension line
        ((= ARCH#UNIT "Cm") (setvar "DIMEXE" 0.1)) ;Extension above dimension line 
        ((= ARCH#UNIT "Ar") (setvar "DIMEXE" 0.0625)) ;Extension above dimension line
        ((= ARCH#UNIT "Me") (setvar "DIMEXE" 0.001)) ;Extension above dimension line
        ((= ARCH#UNIT "En") (setvar "DIMEXE" 0.0625)) ;Extension above dimension line
        )
  ;;extension line origin offset
  (cond ((= ARCH#UNIT "Ci") (setvar "DIMEXO" 0.0625)) ;Extension line origin offset 
        ((= ARCH#UNIT "Mm") (setvar "DIMEXO" 2.0)) ;Extension line origin offset
        ((= ARCH#UNIT "Cm") (setvar "DIMEXO" 0.2)) ;Extension line origin offset 
        ((= ARCH#UNIT "Ar") (setvar "DIMEXO" 0.0625)) ;Extension line origin offset
        ((= ARCH#UNIT "Me") (setvar "DIMEXO" 0.002)) ;Extension line origin offset
        ((= ARCH#UNIT "En") (setvar "DIMEXO" 0.0625)) ;Extension line origin offset
        )
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  (setvar "DIMFIT" 5) ;Fit text
  ;;gap from dimension line to text
  (cond ((= ARCH#UNIT "Ci") (setvar "DIMGAP" 0.0625)) ;Gap from dimension line to text 
        ((= ARCH#UNIT "Mm") (setvar "DIMGAP" 1.0)) ;Gap from dimension line to text
        ((= ARCH#UNIT "Cm") (setvar "DIMGAP" 0.1)) ;Gap from dimension line to text 
        ((= ARCH#UNIT "Ar") (setvar "DIMGAP" 0.0625)) ;Gap from dimension line to text
        ((= ARCH#UNIT "Me") (setvar "DIMGAP" 0.001)) ;Gap from dimension line to text 
        ((= ARCH#UNIT "En") (setvar "DIMGAP" 0.0625)) ;Gap from dimension line to text
        )
  (setvar "DIMJUST" 0) ;Justification of text on dimension line
  (setvar "DIMLFAC" 1.00000000) ;Linear unit scale factor
  (setvar "DIMLIM" 0) ;Generate dimension limits
  (setvar "DIMRND" 0) ;Rounding value
  (setvar "DIMSAH" 1) ;Separate F_ARROW blocks
  (setvar "DIMSD1" 0) ;Suppress the first dimension line
  (setvar "DIMSD2" 0) ;Suppress the second dimension line
  (setvar "DIMSE1" 0) ;Suppress the first extension line
  (setvar "DIMSE2" 0) ;Suppress the second extension line
  ;;(setvar "DIMSHO" 1) ;DIMSETUP dimensions while dragging
  (setvar "DIMSOXD" 0) ;Suppress outside dimension lines
  (setvar "DIMTAD" 1) ;Place text above the dimension line
  (setvar "DIMTDEC" 7) ;Tolerance decimal places
  (setvar "DIMTFAC" 1.00000000) ;Tolerance text height scaling factor
  (setvar "DIMTIH" 0) ;Text inside extensions is horizontal
  (setvar "DIMTIX" 1) ;Place text inside extensions
  (setvar "DIMTM" 0) ;Minus tolerance
  (setvar "DIMTOFL" 1) ;Force line inside extension lines
  (setvar "DIMTOH" 0) ;Text outside horizontal
  (setvar "DIMTOL" 0) ;Tolerance dimensioning
  (setvar "DIMTOLJ" 1) ;Tolerance vertical justification
  (setvar "DIMTP" 0) ;Plus tolerance
  (setvar "DIMTSZ" 0) ;Tick size 
  (setvar "DIMTVP" 0.00000000) ;Text vertical position
  ;;Text style names       
  (setvar "DIMTXSTY" ARCH#TXSD) ;Text style
  ;;text heights   
  (cond ((= ARCH#UNIT "Ci") (setvar "DIMTXT" 0.09375)) ;Text height 
        ((= ARCH#UNIT "Mm") (setvar "DIMTXT" 2.25)) ;Text height
        ((= ARCH#UNIT "Cm") (setvar "DIMTXT" 0.225)) ;Text height 
        ((= ARCH#UNIT "Ar") (setvar "DIMTXT" 0.09375)) ;Text height
        ((= ARCH#UNIT "Me") (setvar "DIMTXT" 0.00225)) ;Text height   
        ((= ARCH#UNIT "En") (setvar "DIMTXT" 0.09375)) ;Text height
        )
  (setvar "DIMTZIN" 3) ;Tolerance zero suppression
  (setvar "DIMUPT" 0) ;User positioned text
  (setvar "DIMZIN" 3) ;Zero suppression     
  (princ))

(defun DIMSETUP_DIM0  (/ name0)
  (setvar "cmdecho" 0)
  (ARCH_DIM)

;;;1 = "on" 0 = "off"
(setvar "DIMADEC" 0)
(setvar "DIMALT" 0)
(setvar "DIMALTD" 2)
(setvar "DIMALTF" 25.4)
(setvar "DIMALTRND" 0.0)
(setvar "DIMALTTD" 2)
(setvar "DIMALTTZ" 3)
(setvar "DIMALTU" 4)
(setvar "DIMALTZ" 3)
(setvar "DIMAPOST" ".")
(setvar "DIMASSOC" 1)
(setvar "DIMASZ" 0.09375)
(setvar "DIMATFIT" 3)
(setvar "DIMAUNIT" 1)
(setvar "DIMAZIN" 0)
(setvar "DIMBLK" ".")
(setvar "DIMBLK1" "Closed")
(setvar "DIMBLK2" "Closed")
(setvar "DIMCEN" 0.0)
(setvar "DIMCLRD" 30)
(setvar "DIMCLRE" 30)
(setvar "DIMCLRT" 2)
(setvar "DIMDEC" 2)
(setvar "DIMDLE" 0.09375)
(setvar "DIMDLI" 0.25)
(setvar "DIMDSEP" ".")
(setvar "DIMEXE" 0.0625)
(setvar "DIMEXO" 0.0625)
(setvar "DIMFRAC" 2)
(setvar "DIMGAP" 0.0625)
(setvar "DIMJUST" 0)
(setvar "DIMLDRBLK" "ArchTick")
(setvar "DIMLFAC" 1.0)
(setvar "DIMLIM" 0)
(setvar "DIMLUNIT" 4)
(setvar "DIMLWD" -2)
(setvar "DIMLWE" -2)
(setvar "DIMPOST" ".")
(setvar "DIMRND" 0.0)
(setvar "DIMSAH" 1)
(setvar "DIMSCALE" 32.0)
(setvar "DIMSD1" 0)
(setvar "DIMSD2" 0)
(setvar "DIMSE1" 0)
(setvar "DIMSE2" 0)
(setvar "DIMSHO" 1)
(setvar "DIMSOXD" 0)
(setvar "DIMTAD" 1)
(setvar "DIMTDEC" 3)
(setvar "DIMTFAC" 1.0)
(setvar "DIMTIH" 1)
(setvar "DIMTIX" 0)
(setvar "DIMTM" 0.0)
(setvar "DIMTMOVE" 0)
(setvar "DIMTOFL" 0)
(setvar "DIMTOH" 1)
(setvar "DIMTOL" 0)
(setvar "DIMTOLJ" 1)
(setvar "DIMTP" 0.0)
(setvar "DIMTSZ" 0.0)
(setvar "DIMTVP" 0.0)
(setvar "DIMTXSTY" "DIMS")
(setvar "DIMTXT" 0.09375)
(setvar "DIMTZIN" 3)
(setvar "DIMUPT" 1)
(setvar "DIMZIN" 3)

;(ARCH:BLKNAM "RADIM" (strcat ARCH#CUSF "DIMS/"))
;(COMMAND "INSERT" (strcat ARCH#CUSF "DIMS/" "RADIM") (command))


  (ARCH:BLKNAM "ARR" (strcat ARCH#CUSF "DIMS/"))
  (COMMAND "INSERT" (strcat "_CLOSED=" ARCH#CUSF "DIMS/" "ARR") (command)) 
  ;;(setvar "DIMBLK" "ARR")
  (setvar "DIMBLK1" "_CLOSED")
  (setvar "DIMBLK2" "_CLOSED")
  (SET_DIMNAME)
  (cond ((= ARCH#UNIT nil) (Prompt "\n* Run Drawing File SETUP first. *"))
        ((= ARCH#UNIT "Ci") (setq name0 (strcat "ARWW-D-" DIMNAME)))
        ((= ARCH#UNIT "Mm") (setq name0 (strcat "ARWW-M-" DIMNAME)))
        ((= ARCH#UNIT "Cm") (setq name0 (strcat "ARWW-M-" DIMNAME)))
        ((= ARCH#UNIT "Ar") (setq name0 (strcat "ARWW-" DIMNAME)))
        ((= ARCH#UNIT "Me") (setq name0 (strcat "ARWW-M-" DIMNAME)))
        ((= ARCH#UNIT "En") (setq name0 (strcat "ARWW-" DIMNAME))))
  (cond ((/= (cdr (assoc 2 (tblsearch "dimstyle" name0))) name0)
         (command "dimstyle" "S" name0))
        ((= (cdr (assoc 2 (tblsearch "dimstyle" name0))) name0)
         (command "dimstyle" "R" name0)))
  ;;(princ (strcat "\n* New Dimstyle \"" name0 "\" has been completed *")) 
  (princ))
;;arww


Gary
Why is there never enough time to do it right, but always enough time to do it over?
BricsCAD 2020x64 Windows 10x64

TimSpangler

  • Water Moccasin
  • Posts: 2010
  • CAD Naked!!
Re: Creating a dimstyle
« Reply #6 on: June 30, 2008, 12:06:48 PM »
Here is what I use (entmake)

Code: [Select]
;;; ------------------------------------------------------------------------
;;;    CREATE_DIMSTYLE.LSP
;;;
;;;    Copyright © October, 2007
;;;    Timothy G. Spangler
;;;
;;;    Permission to use, copy, modify, and distribute this software
;;;    for any purpose and without fee is hereby granted, provided
;;;    that the above copyright notice appears in all copies and
;;;    that both that copyright notice and the limited warranty and
;;;    restricted rights notice below appear in all supporting
;;;    documentation.
;;;
;;;    CREATE_DIMSTYLE
;;;
;;; Description:
;;; Called from a menu pulldown or rightclick menu
;;; *(CREATE_DIMSTYLE "test0" 48.0 "Archquik")
;;;
;;; ------------------------------------------------------------------------
;;; VERSION HISTORY
;;;
;;; ------------------------------------------------------------------------

;;; MAIN FUNCTION ;;;;;;;;;;;;;;;;;;;;;;;;;
(defun DIMSTYLE_CREATE (StyleName StyleScale TextStyle / OldDimBlk OldCmdEcho)

;; Set echo
(setq OldCmdEcho (getvar "CMDECHO"))
(setvar "CMDECHO" 0)

;; Create textstyle
(if (not (tblsearch "STYLE" TextStyle))
(TEXTSTYLE_CREATE)
)
;; Create dimblk
(if (not (tblobjname "block" "_Oblique"))
(progn
(setq OldDimBlk (getvar "dimblk"))
(if (= OldDimBlk "")
(setq OldDimBlk ".")
)
(setvar "dimblk" "_Oblique")
(setvar "dimblk" OldDimBlk)
)
)
;; Create dimstyle
(entmake
(list
(cons 0 "DIMSTYLE"); Table
(cons 100 "AcDbSymbolTableRecord"); Subclass marker
(cons 100 "AcDbDimStyleTableRecord"); Subclass marker
(cons 2 StyleName); Dimstyle name
(cons 70 0); Standard flag
(cons 3 ""); DIMPOST
(cons 4 ""); DIMAPOST
(cons 5 "_Oblique"); DIMBLK
(cons 6 "_Oblique"); DIMBLK1
(cons 7 ""); DIMBLK2
(cons 40 StyleScale); DIMSCALE
(cons 41 0.0937); DIMASZ
(cons 42 0.0937); DIMEXO
(cons 43 0.38); DIMDLI
(cons 44 0.0625); DIMEXE
(cons 45 0.0); DIMRND
(cons 46 0.0625); DIMDLE
(cons 47 0.0); DIMTP
(cons 48 0.0); DIMTM
(cons 140 0.0937); DIMTXT
(cons 141 0.09); DIMCEN
(cons 142 0.0); DIMTSZ
(cons 143 25.4); DIMALTF
(cons 144 1.0); DIMLFAC
(cons 145 0.0); DIMTVP
(cons 146 1.0); DIMTFAC
(cons 147 0.0625); DIMGAP
(cons 71 0); DIMTOL
(cons 72 0); DIMLIM
(cons 73 0); DIMTIH
(cons 74 0); DIMTOH
(cons 75 0); DIMSE1
(cons 76 0); DIMSE2
(cons 77 1); DIMTAD
(cons 78 3); DIMZIM
(cons 170 0); DIMALT
(cons 171 2); DIMALTD
(cons 172 0); DIMTOFL
(cons 173 0); DIMSAH
(cons 174 0); DIMTIX
(cons 175 0); DIMSOXD
(cons 176 0); DIMCLRD
(cons 177 0); DIMCLRE
(cons 178 2); DIMCRRT
(cons 270 4); DIMUNIT
(cons 271 4); DIMDEC
(cons 272 4); DIMTDEC
(cons 273 2); DIMALTU
(cons 274 2); DIMALTTD
(cons 275 0); DIMAUNIT
(cons 276 2); DIM?????
(cons 277 4); DIMLUNIT
(cons 279 2); DIM????
(cons 280 0); DIMJUST
(cons 281 0); DIMSD1
(cons 282 0); DIMSD2
(cons 283 1); DIMTOLJ
(cons 284 0); DIMTZIN
(cons 285 0); DIMALTZ
(cons 286 0); DIMALTTZ
(cons 287 5); DIMFIT
(cons 288 0); DIMUPT
; DIMTXSTY
(cons 340 (tblobjname "style" TextStyle))
; DIMLDRBLK
(cons 342 (cdr (assoc 330 (entget(tblobjname "block" "_Oblique")))))
; DIMLDRBLK1
(cons 343 (cdr (assoc 330 (entget(tblobjname "block" "_Oblique")))))
; DIMLDRBLK2 Block for the leader
;(cons 341 (cdr (assoc 330 (entget(tblobjname "block" "")))))
)
)
;; Set dimstyle current
(command "-dimstyle" "restore" StyleName)
;; Set echo
(setvar "CMDECHO" OldCmdEcho)
(princ (strcat "\n\n--\"" StyleName "\" is now the current Dimstyle--"))
(princ)
)
;; ENTMAKE TEXT STYLE
(defun TEXTSTYLE_CREATE (/)

(entmake
(list
(cons 0 "STYLE")
  (cons 100 "AcDbSymbolTableRecord")
  (cons 100 "AcDbTextStyleTableRecord")
  (cons 2 "Archquik");; Style Name
  (cons 70 0)
  (cons 40 0.0);; Fixed text height
  (cons 41 1.0);; Width Factor
  (cons 50 0.0);; Oblique angle
  (cons 71 0)
  (cons 42 2.0);; Last height used
  (cons 3 "archquik.shx");; Primary font name
  (cons 4 "");;  Big font name
)
)
(princ)
)
(princ)

ACA 2015 - Windows 7 Pro
All Comments and Content by TimSpangler, Copyright © 2016

GDF

  • Water Moccasin
  • Posts: 2081
Re: Creating a dimstyle
« Reply #7 on: June 30, 2008, 12:27:00 PM »
Thanks Tim, Its good to see how others do it.

In your heading of your routine, you need to change to the following:
*(DIMSTYLE_CREATE "test0" 48.0 "Archquik")

Thanks again.

Gary
Why is there never enough time to do it right, but always enough time to do it over?
BricsCAD 2020x64 Windows 10x64