Results 1 to 3 of 3

Thread: Dim Prefix Suffix

  1. #1
    Active Member
    Join Date
    2006-04
    Posts
    85
    Login to Give a bone
    0

    Default Dim Prefix Suffix

    I'm thinking of creating a button to add a diameter symbol to linear dimensions and maybe another to add = signs before and after a dimension. Be nice if I could either pre-select or hit the button first. Could anyone help please?

  2. #2
    I could stop if I wanted to
    Join Date
    2006-07
    Posts
    233
    Login to Give a bone
    0

    Default Re: Dim Prefix Suffix

    This lisp should do what your looking for. To call it from a button just use ^C^CDim_Dia as the command call

    Code:
    (defun C:Dim_Dia (/ OLDVAR1  COUNT LINENO SS1 ename elist)
    
    (setq OLDVAR1 (getvar "CMDECHO")) (setvar "CMDECHO" 0) 
    
       (setq SS1 nil)   
       (setq SS1 (ssget))   
       (setq LINENO (sslength SS1))  
       (setq COUNT 0)
       (setq PLINFO (ssadd))         
       
      (While (setq ename (ssname SS1 COUNT))
             (setq COUNT (1+ COUNT))
             (setq elist (entget ename))    
             (setq value (dxf 1 elist))
             (setq new_value(strcat "<>%%C"));;Change the value in blue to what ever you would like to show up for the Dimension.  If you want a prefix and Suffix use this example:  "%%C"<>"%%C".  The <> represents the dimension value.
             (entmod (subst (cons 1 new_value) (cons 1 value) elist))
      )
    ); end Dim_Dia.lsp
    
    (defun dxf (list_itn ent_list) ; begin dxf function
    	(cdr (assoc list_itn ent_list)) ; get value of item from entity list
    ) ; end dxf function
    (princ) ; end program
    Last edited by Lions60; 2009-05-01 at 02:16 PM. Reason: added code tags

  3. #3
    Certifiable AUGI Addict
    Join Date
    2001-03
    Location
    Tallahassee, FL USA
    Posts
    3,658
    Login to Give a bone
    0

    Default Re: Dim Prefix Suffix

    Old routine for adding (single or multiline) prefix, sufix or replacing dimension text. You can specify text to replace it with or replace it with bering and distance if it's an aligned dimension. See examples at bottom for running and menu macros.
    Code:
     ;| Add text to dimension
       BY: TOM BEAUFORD
       Tombu@LeonCountyFL.gov
       Leon County Public Works Engineering
       (or C:DimAddRef (load "DimAddRef.lsp"));DimAddRef
       (load "DimAddRef.lsp") DimAddRef
       =======================================================|;
    (defun DimAddRef (Rtrn Txt / *Error* ss1 ENT EOBJ spt ept brg str1)
      (defun *Error* (msg) ; embedded defun
        (if (/= s "Function cancelled") 
          (princ (strcat "\nError: " msg))
        ) 
        (princ)
      )
      (vl-cmdf "undo" "BEgin")
      (cond
        ((= Rtrn 0)(setq Txt (strcat Txt "\\P<>")))
        ((= Rtrn 1)(setq Txt (strcat "<>\\P" Txt)))
        ((= Rtrn 2)(setq Txt (strcat Txt " <>")))
        ((= Rtrn 3)(setq Txt (strcat "<> " Txt)))
      )
      (princ "\nSelect Dimension to modify: ")
      (setq ss1 (ssget '((0 . "DIMENSION"))))
      (while (> (sslength ss1) 0)
        (setq ENT (ssname ss1 0)
              EOBJ (vlax-ename->vla-object ENT) ; Entity object
              brg1 ""
        )
        (if (eq(vlax-get-property EOBJ 'ObjectName)"AcDbAlignedDimension")
          (progn
            (setq spt (vlax-get EOBJ "ExtLine1Point") ; Start Point
                  ept (vlax-get EOBJ "ExtLine2Point") ; End Point
                  brg (angle spt ept)  ; Bearing in Radians
                  brg (angtos brg 4 4) ; Bearing in dms
                  str1 (substr brg 1 1)
            )
            (cond
             ((= brg "N") (setq brg "N 0d0'0\" E"))
             ((= brg "S") (setq brg "S 0d0'0\" E"))
             ((= brg "E") (setq brg "N 90d0'0\" E" str1 "N"))
             ((= brg "W") (setq brg "N 90d0'0\" W" str1 "N"))
            )
            (if(= 2(-(vl-string-search "\"" brg)(vl-string-search "'" brg)))
              (setq brg (vl-string-subst "'0" "'" brg))
            )
            (if(= 2(-(vl-string-search "'" brg)(vl-string-search "d" brg)))
              (setq brg (vl-string-subst "°0" "d" brg))
              (setq brg (vl-string-subst "°" "d" brg))
            )
            (princ "\nbrg = ")
            (princ brg)
            (cond
              ((= Rtrn 5)(setq Txt (strcat brg "\\P<>")))
              ((= Rtrn 6)(setq Txt (strcat "<>\\P" brg)))
              ((= Rtrn 7)(setq Txt (strcat brg " <>")))
              ((= Rtrn 8)(setq Txt (strcat "<> " brg)))
            )
          );progn
          (if (> Rtrn 4)(alert "Only Aligned Dimensions have Bearing Information."))
        );if
        (vl-catch-all-apply 'vla-put-TextOverride (list EOBJ Txt))
        (ssdel ENT ss1)
      )
      (vl-cmdf "undo" "End")
      (princ)
    )
    ;| **Examples**
    (DimAddRef 1 "R.O.W.")
    (DimAddRef 1 "Easement")
    (DimAddRef 2 "R.O.W.")
    (DimAddRef 3 "Easement")
    (DimAddRef 4 "Varies")
    (DimAddRef 4 "")
    (DimAddRef 5 "")
    (DimAddRef 6 "")
    (DimAddRef 7 "")
    (DimAddRef 8 "")
    Bearing/##'
    Bearing over Distance
    (or DimAddRef (load "DimAddRef.lsp"));(DimAddRef 5 "") 
    ID_DimB/D
    ##'/Bearing
    Distance over Bearing
    (or DimAddRef (load "DimAddRef.lsp"));(DimAddRef 6 "") 
    ID_DimD/B
    Bearing-##'
    Bearing Distance
    (or DimAddRef (load "DimAddRef.lsp"));(DimAddRef 7 "") 
    ID_DimB-D
    ##'-Bearing
    Distance Bearing
    (or DimAddRef (load "DimAddRef.lsp"));(DimAddRef 8 "") 
    ID_DimD-B
       **DIMENSION Menu items**
    ID_Dimoverri [->Modify Text]
    ID_DimROW      [R.O.W.](or DimAddRef (load "DimAddRef"));(DimAddRef 1 "R.O.W.")
    ID_DimEasement [Easement](or DimAddRef (load "DimAddRef"));(DimAddRef 1 "Easement")
    ID_DimROW      [R.O.W.](or DimAddRef (load "DimAddRef"));(DimAddRef 2 "R.O.W.")
    ID_DimEasement [Easement](or DimAddRef (load "DimAddRef"));(DimAddRef 3 "Easement")
    ID_DimVaries   [Varies](or DimAddRef (load "DimAddRef"));(DimAddRef 4 "Varies")
    ID_DimVaries [<-Clear](or DimAddRef (load "DimAddRef"));(DimAddRef 4 "")
    |;

Similar Threads

  1. Text prefix/suffix
    By s0r0l7 in forum AutoLISP
    Replies: 7
    Last Post: 2020-02-28, 03:22 AM
  2. Tags Prefix/Suffix
    By Maxime S in forum Revit MEP - General
    Replies: 2
    Last Post: 2010-05-11, 06:38 PM
  3. Dimension prefix and suffix
    By clog boy in forum Revit Architecture - General
    Replies: 2
    Last Post: 2007-04-19, 01:01 PM
  4. Prefix / Suffix for Attributes
    By autocad.wishlist1734 in forum AutoCAD Wish List
    Replies: 0
    Last Post: 2007-03-02, 06:09 PM
  5. Add a Prefix/Suffix to Text
    By ReachAndre in forum AutoLISP
    Replies: 3
    Last Post: 2006-12-26, 08:14 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •