Author Topic: which code can change Tolerance Display to Basic  (Read 3198 times)

0 Members and 1 Guest are viewing this topic.

ribarm

  • Gator
  • Posts: 3310
  • Marko Ribar, architect
Re: which code can change Tolerance Display to Basic
« Reply #15 on: April 09, 2024, 06:22:17 AM »
Here, I've finished this LISP... I think you are searching something like this :

Code - Auto/Visual Lisp: [Select]
  1. (defun c:dimtolerances ( / *error* e ch chh )
  2.  
  3.  
  4.   (defun *error* ( m )
  5.     (if m (prompt m))
  6.     (princ)
  7.   )
  8.  
  9.   (while (setq e (car (entsel "\nPick DIMENSION... - ENTER for FINISH...")))
  10.     (initget "Yes No")
  11.     (setq ch (cond ( (getkword "\nDo you want to keep symetrical deviation or not [Yes/No] <Yes> : ") ) ("Yes")))
  12.     (if (= ch "Yes")
  13.       (progn
  14.         (setvar (quote dimtol) 1)
  15.         (setvar (quote dimtm) 0)
  16.         (setvar (quote dimtp) 0)
  17.         (setvar (quote dimtdec) 2)
  18.         (setvar (quote dimtzin) 0)
  19.         (initget "Yes No")
  20.         (setq chh (cond ( (getkword "nDo you want text frame or not [Yes/No] <Yes> : ") ) ("Yes")))
  21.         (if (= chh "Yes")
  22.           (setvar (quote dimgap) (cond ( (> (getvar (quote dimgap)) 0) (- 0 (getvar (quote dimgap))) ) ( t (getvar (quote dimgap)))))
  23.           (setvar (quote dimgap) (cond ( (< (getvar (quote dimgap)) 0) (abs (getvar (quote dimgap))) ) ( t (getvar (quote dimgap)))))
  24.         )
  25.         (vl-cmdf "_.-dimstyle" "_a" e "")
  26.       )
  27.       (progn
  28.         (setvar (quote dimtol) 0)
  29.         (initget "Yes No")
  30.         (setq chh (cond ( (getkword "nDo you want text frame or not [Yes/No] <Yes> : ") ) ("Yes")))
  31.         (if (= chh "Yes")
  32.           (setvar (quote dimgap) (cond ( (> (getvar (quote dimgap)) 0) (- 0 (getvar (quote dimgap))) ) ( t (getvar (quote dimgap)))))
  33.           (setvar (quote dimgap) (cond ( (< (getvar (quote dimgap)) 0) (abs (getvar (quote dimgap))) ) ( t (getvar (quote dimgap)))))
  34.         )
  35.         (vl-cmdf "_.-dimstyle" "_a" e "")
  36.       )
  37.     )
  38.     (entupd e)
  39.   )
  40.   (*error* nil)
  41. )
  42.  

HTH.
M.R.
« Last Edit: April 09, 2024, 07:34:35 AM by ribarm »
Marko Ribar, d.i.a. (graduated engineer of architecture)

:)

M.R. on Youtube

ribarm

  • Gator
  • Posts: 3310
  • Marko Ribar, architect
Re: which code can change Tolerance Display to Basic
« Reply #16 on: April 09, 2024, 07:58:27 AM »
Better yet - selecting multiple dimensions...

Code - Auto/Visual Lisp: [Select]
  1. (defun c:dimtolerances-ss ( / *error* ch chh s i e )
  2.  
  3.  
  4.   (defun *error* ( m )
  5.     (if m (prompt m))
  6.     (princ)
  7.   )
  8.  
  9.   (initget "Yes No")
  10.   (setq ch (cond ( (getkword "\nDo you want to keep symetrical deviation or not [Yes/No] <Yes> : ") ) ("Yes")))
  11.   (if (= ch "Yes")
  12.     (progn
  13.       (setvar (quote dimtol) 1)
  14.       (setvar (quote dimtm) 0)
  15.       (setvar (quote dimtp) 0)
  16.       (setvar (quote dimtdec) 2)
  17.       (setvar (quote dimtzin) 0)
  18.       (initget "Yes No")
  19.       (setq chh (cond ( (getkword "nDo you want text frame or not [Yes/No] <Yes> : ") ) ("Yes")))
  20.       (if (= chh "Yes")
  21.         (setvar (quote dimgap) (cond ( (> (getvar (quote dimgap)) 0) (- 0 (getvar (quote dimgap))) ) ( t (getvar (quote dimgap)))))
  22.         (setvar (quote dimgap) (cond ( (< (getvar (quote dimgap)) 0) (abs (getvar (quote dimgap))) ) ( t (getvar (quote dimgap)))))
  23.       )
  24.     )
  25.     (progn
  26.       (setvar (quote dimtol) 0)
  27.       (initget "Yes No")
  28.       (setq chh (cond ( (getkword "nDo you want text frame or not [Yes/No] <Yes> : ") ) ("Yes")))
  29.       (if (= chh "Yes")
  30.         (setvar (quote dimgap) (cond ( (> (getvar (quote dimgap)) 0) (- 0 (getvar (quote dimgap))) ) ( t (getvar (quote dimgap)))))
  31.         (setvar (quote dimgap) (cond ( (< (getvar (quote dimgap)) 0) (abs (getvar (quote dimgap))) ) ( t (getvar (quote dimgap)))))
  32.       )
  33.     )
  34.   )
  35.   (prompt "\nSelect DIMENSION entities...")
  36.   (setq s (ssget "_:L" (list (cons 0 "DIMENSION"))))
  37.   (repeat (setq i (sslength s))
  38.     (setq e (ssname s (setq i (1- i))))
  39.     (vl-cmdf "_.-dimstyle" "_a" e "")
  40.     (entupd e)
  41.   )
  42.   (*error* nil)
  43. )
  44.  

HTH.
M.R.
Marko Ribar, d.i.a. (graduated engineer of architecture)

:)

M.R. on Youtube

ribarm

  • Gator
  • Posts: 3310
  • Marko Ribar, architect
Re: which code can change Tolerance Display to Basic
« Reply #17 on: April 09, 2024, 08:49:10 AM »
I've added lower and upper deviations choices...

Code - Auto/Visual Lisp: [Select]
  1. (defun c:dimtolerances-ss ( / *error* ch chh tm tp s i e )
  2.  
  3.  
  4.   (defun *error* ( m )
  5.     (if m (prompt m))
  6.     (princ)
  7.   )
  8.  
  9.   (initget "Yes No")
  10.   (setq ch (cond ( (getkword "\nDo you want to add or keep deviation or not [Yes/No] <Yes> : ") ) ("Yes")))
  11.   (if (= ch "Yes")
  12.     (progn
  13.       (setvar (quote dimtol) 1)
  14.       (setq tm (getreal "\nSpecify lower deviation - for symetrical it must be negative number <0.0> : "))
  15.       (if (not tm)
  16.         (setq tm 0.0)
  17.       )
  18.       (setvar (quote dimtm) (- tm))
  19.       (setq tp (getreal (strcat "\nSpecify upper deviation - it must be higher number than : " (rtos tm 2) " - and for symetrical must be the same but positive value (" (rtos (- tm) 2) ") <0.0> : ")))
  20.       (if (not tp)
  21.         (setq tp 0.0)
  22.       )
  23.       (setvar (quote dimtp) tp)
  24.       (setvar (quote dimtdec) 2)
  25.       (setvar (quote dimtzin) 0)
  26.       (initget "Yes No")
  27.       (setq chh (cond ( (getkword "nDo you want text frame or not [Yes/No] <Yes> : ") ) ("Yes")))
  28.       (if (= chh "Yes")
  29.         (setvar (quote dimgap) (cond ( (> (getvar (quote dimgap)) 0) (- 0 (getvar (quote dimgap))) ) ( t (getvar (quote dimgap)))))
  30.         (setvar (quote dimgap) (cond ( (< (getvar (quote dimgap)) 0) (abs (getvar (quote dimgap))) ) ( t (getvar (quote dimgap)))))
  31.       )
  32.     )
  33.     (progn
  34.       (setvar (quote dimtol) 0)
  35.       (initget "Yes No")
  36.       (setq chh (cond ( (getkword "nDo you want text frame or not [Yes/No] <Yes> : ") ) ("Yes")))
  37.       (if (= chh "Yes")
  38.         (setvar (quote dimgap) (cond ( (> (getvar (quote dimgap)) 0) (- 0 (getvar (quote dimgap))) ) ( t (getvar (quote dimgap)))))
  39.         (setvar (quote dimgap) (cond ( (< (getvar (quote dimgap)) 0) (abs (getvar (quote dimgap))) ) ( t (getvar (quote dimgap)))))
  40.       )
  41.     )
  42.   )
  43.   (prompt "\nSelect DIMENSION entities...")
  44.   (setq s (ssget "_:L" (list (cons 0 "DIMENSION"))))
  45.   (repeat (setq i (sslength s))
  46.     (setq e (ssname s (setq i (1- i))))
  47.     (vl-cmdf "_.-dimstyle" "_a" e "")
  48.     (entupd e)
  49.   )
  50.   (*error* nil)
  51. )
  52.  

M.R.
« Last Edit: April 09, 2024, 12:16:12 PM by ribarm »
Marko Ribar, d.i.a. (graduated engineer of architecture)

:)

M.R. on Youtube

masao

  • Newt
  • Posts: 97
Re: which code can change Tolerance Display to Basic
« Reply #18 on: April 09, 2024, 09:16:56 AM »
I've added lower and upper deviations choices...

Code - Auto/Visual Lisp: [Select]
  1. (defun c:dimtolerances-ss ( / *error* ch chh tm tp s i e )
  2.  
  3.  
  4.   (defun *error* ( m )
  5.     (if m (prompt m))
  6.     (princ)
  7.   )
  8.  
  9.   (initget "Yes No")
  10.   (setq ch (cond ( (getkword "\nDo you want to keep deviation or not [Yes/No] <Yes> : ") ) ("Yes")))
  11.   (if (= ch "Yes")
  12.     (progn
  13.       (setvar (quote dimtol) 1)
  14.       (initget 1)
  15.       (setq tm (getreal "\nSpecify lower deviation : "))
  16.       (setvar (quote dimtm) (- tm))
  17.       (initget 1)
  18.       (setq tp (getreal (strcat "\nSpecify upper deviation - for symertical, type : " (rtos (- tm) 2) " : ")))
  19.       (setvar (quote dimtp) tp)
  20.       (setvar (quote dimtdec) 2)
  21.       (setvar (quote dimtzin) 0)
  22.       (initget "Yes No")
  23.       (setq chh (cond ( (getkword "nDo you want text frame or not [Yes/No] <Yes> : ") ) ("Yes")))
  24.       (if (= chh "Yes")
  25.         (setvar (quote dimgap) (cond ( (> (getvar (quote dimgap)) 0) (- 0 (getvar (quote dimgap))) ) ( t (getvar (quote dimgap)))))
  26.         (setvar (quote dimgap) (cond ( (< (getvar (quote dimgap)) 0) (abs (getvar (quote dimgap))) ) ( t (getvar (quote dimgap)))))
  27.       )
  28.     )
  29.     (progn
  30.       (setvar (quote dimtol) 0)
  31.       (initget "Yes No")
  32.       (setq chh (cond ( (getkword "nDo you want text frame or not [Yes/No] <Yes> : ") ) ("Yes")))
  33.       (if (= chh "Yes")
  34.         (setvar (quote dimgap) (cond ( (> (getvar (quote dimgap)) 0) (- 0 (getvar (quote dimgap))) ) ( t (getvar (quote dimgap)))))
  35.         (setvar (quote dimgap) (cond ( (< (getvar (quote dimgap)) 0) (abs (getvar (quote dimgap))) ) ( t (getvar (quote dimgap)))))
  36.       )
  37.     )
  38.   )
  39.   (prompt "\nSelect DIMENSION entities...")
  40.   (setq s (ssget "_:L" (list (cons 0 "DIMENSION"))))
  41.   (repeat (setq i (sslength s))
  42.     (setq e (ssname s (setq i (1- i))))
  43.     (vl-cmdf "_.-dimstyle" "_a" e "")
  44.     (entupd e)
  45.   )
  46.   (*error* nil)
  47. )
  48.  

M.R.

thanks ,if add textbox to (vla-put-tolerancedisplay obj 4) ,i must get which metadata? (get size and dimtp and dimtm)

dimgp can add textbox?

ribarm

  • Gator
  • Posts: 3310
  • Marko Ribar, architect
Re: which code can change Tolerance Display to Basic
« Reply #19 on: April 09, 2024, 09:30:57 AM »
You quoted my code that is not last one... Copy with ctrl+c and ctrl+v the code into notepad and save it as *.lsp - be sure that all file types are selected from notepad before you save it as *.lsp... I am tired now and don't understand what else do you want... It works for me perfectly...

Bye and best wishes...
Marko Ribar, d.i.a. (graduated engineer of architecture)

:)

M.R. on Youtube

masao

  • Newt
  • Posts: 97
Re: which code can change Tolerance Display to Basic
« Reply #20 on: April 09, 2024, 09:58:22 AM »
You quoted my code that is not last one... Copy with ctrl+c and ctrl+v the code into notepad and save it as *.lsp - be sure that all file types are selected from notepad before you save it as *.lsp... I am tired now and don't understand what else do you want... It works for me perfectly...

Bye and best wishes...

thanks so much,i fix ok.

i just add textbox. so just fix dimgap <0 can get box. i didn't know at first. thank you so much.

Code: [Select]
(defun c:tolerance_Display (/ DT ENT ID SDT)

(setq acdoc (vla-get-activedocument (vlax-get-acad-object)))

(while


  (setq dt  (ssget ":S" '((0 . "DIMENSION")))
        sdt (sslength dt)
        id  0

  ) ;_ end of setq

(vl-cmdf "_.undo" "_begin")

  (repeat sdt

    (progn
      (setq
        ent (ssname dt id)
        tol    (vla-get-tolerancedisplay (vlax-ename->vla-object ent))
        id  (1+ id)

      ) ;_ end of setq

(if (or (= tol 1) (= tol 2) (= tol 3))

(vla-put-textgap (vlax-ename->vla-object ent) -0.625)

      (vlax-put-property
        (vlax-ename->vla-object ent)
        'toleranceDisplay
        4
      ) ;_ end of vlax-put-property



)

    ) ;_ end of progn
  ) ;_ end of repeat

(vl-cmdf "_.undo" "_end")

)
 
  (princ)
) ;_ end of defun
(princ)
;;;;;;;;;;;;;;;;;;;;;;;;;;

ribarm

  • Gator
  • Posts: 3310
  • Marko Ribar, architect
Re: which code can change Tolerance Display to Basic
« Reply #21 on: April 09, 2024, 12:19:47 PM »
I've just looked at your code, you missed (= tol 0) in the line (if (or (= tol 1) (= tol 2) (= tol 3)) ...
Marko Ribar, d.i.a. (graduated engineer of architecture)

:)

M.R. on Youtube