clint0577 发表于 2022-7-6 07:16:47

Why will this (getvar 'di

This works just fine on the other computers but the 2 computers running windows 7 won't work. It's supposed to reat 1" = 20' when ran but it reads 1" = ' on the computers running 7
 

(defun c:dsc ()(setq DS (rtos (getvar 'dimscale)))(setq dwg-SCALE (substr DS 1 (- (strlen DS) 5)))(SETQ DTE (STRCAT "1\" = " DWG-SCALE "'")) (if   (and (not          (eq (setq OldTxt "Scale") "")      )      (not          (eq (setq NewTxt dte) "")      )   )    (if (setq ss (ssget "x"                        (list '(0 . "TEXT,MTEXT")                              (cons 1 OldTxt)                              (cons 410 (getvar 'ctab))                        )               )      )      (repeat (setq in (sslength ss))      (setq en (entget (ssname ss (setq in (1- in)))))      (entmod (subst (cons 1 Newtxt) (assoc 1 en) en))      )    ) ))

clint0577 发表于 2022-7-6 07:45:04

It actually works with 1" = 20' but not any other. i.e. 1" = 30'

clint0577 发表于 2022-7-6 07:54:32

Ok so for some reason, when the dimscale is set at 20, everything works fine but when it's set to any other, 30, 40, 50, 60, 100, 200, I had to change the code from 5 - 3
 

(setq dwg-SCALE (substr DS 1 (- (strlen DS) 5)))
 
changed to
 

(setq dwg-SCALE (substr DS 1 (- (strlen DS) 3)))
 
what a beating. so now I have to have 2 commands to do the same thing. If you're using dimscale 20 then this if you're using dimscale 30, 40, 50, 60, 100 or 200, then another
 
here's my entire code
 

;INFO(DEFUN C:INFO ()(command ".osnap" "NOD,end,INT,CEN,mid")(SETQ CL (GETVAR "CLAYER"))(COMMAND "LAYER" "S" "LEGAL" "")(setq me (getstring t "\nDrawn By: ")) (if   (and (not          (eq (setq OldTxt "Drawn By") "")      )      (not          (eq (setq NewTxt me) "")      )   )    (if (setq ss (ssget "x"                        (list '(0 . "TEXT,MTEXT")                              (cons 1 OldTxt)                              (cons 410 (getvar 'ctab))                        )               )      )      (repeat (setq in (sslength ss))      (setq en (entget (ssname ss (setq in (1- in)))))      (entmod (subst (cons 1 Newtxt) (assoc 1 en) en))      )    ) )(setq DS (rtos (getvar 'dimscale)))(setq dwg-SCALE (substr DS 1 (- (strlen DS) 5)))(SETQ DTE (STRCAT "1\" = " DWG-SCALE "'")) (if   (and (not          (eq (setq OldTxt "Scale") "")      )      (not          (eq (setq NewTxt dte) "")      )   )    (if (setq ss (ssget "x"                        (list '(0 . "TEXT,MTEXT")                              (cons 1 OldTxt)                              (cons 410 (getvar 'ctab))                        )               )      )      (repeat (setq in (sslength ss))      (setq en (entget (ssname ss (setq in (1- in)))))      (entmod (subst (cons 1 Newtxt) (assoc 1 en) en))      )    ) )    (setq d (rtos (getvar "CDATE") 2 6)         yr (substr d 3 2)         mo (substr d 5 2)      day (substr d 7 2)    )(SETQ DTE (STRCAT MO "/" DAY "/" YR)) (if   (and (not          (eq (setq OldTxt "Date") "")      )      (not          (eq (setq NewTxt dte) "")      )   )    (if (setq ss (ssget "x"                        (list '(0 . "TEXT,MTEXT")                              (cons 1 OldTxt)                              (cons 410 (getvar 'ctab))                        )               )      )      (repeat (setq in (sslength ss))      (setq en (entget (ssname ss (setq in (1- in)))))      (entmod (subst (cons 1 Newtxt) (assoc 1 en) en))      )    ) )(setq GFN (getstring t "\nType the GF Number: ")) (if   (and (not          (eq (setq OldTxt "GF#") "")      )      (not          (eq (setq NewTxt gfn) "")      )   )    (if (setq ss (ssget "x"                        (list '(0 . "TEXT,MTEXT")                              (cons 1 OldTxt)                              (cons 410 (getvar 'ctab))                        )               )      )      (repeat (setq in (sslength ss))      (setq en (entget (ssname ss (setq in (1- in)))))      (entmod (subst (cons 1 Newtxt) (assoc 1 en) en))      )    ) )(setq dwg-name (substr (getvar "dwgname") 1 (- (strlen (getvar "dwgname")) 4))) (if   (and (not          (eq (setq OldTxt "Job#") "")      )      (not          (eq (setq NewTxt dwg-name) "")      )   )    (if (setq ss (ssget "x"                        (list '(0 . "TEXT,MTEXT")                              (cons 1 OldTxt)                              (cons 410 (getvar 'ctab))                        )               )      )      (repeat (setq in (sslength ss))      (setq en (entget (ssname ss (setq in (1- in)))))      (entmod (subst (cons 1 Newtxt) (assoc 1 en) en))      )    ) ) (princ))

clint0577 发表于 2022-7-6 08:06:08

Ok so I'm working through this all by myself haha. I just added the code to look for the 1" = ' and replace also. Good talk guys. Good talk!
 

(setq DS (rtos (getvar 'dimscale)))(setq dwg-SCALE (substr DS 1 (- (strlen DS) 5)))(SETQ DTE (STRCAT "1\" = " DWG-SCALE "'")) (if   (and (not          (eq (setq OldTxt "Scale") "")      )      (not          (eq (setq NewTxt dte) "")      )   )    (if (setq ss (ssget "x"                        (list '(0 . "TEXT,MTEXT")                              (cons 1 OldTxt)                              (cons 410 (getvar 'ctab))                        )               )      )      (repeat (setq in (sslength ss))      (setq en (entget (ssname ss (setq in (1- in)))))      (entmod (subst (cons 1 Newtxt) (assoc 1 en) en))      )    ) )(setq DS7 (rtos (getvar 'dimscale)))(setq dwg-SCALE (substr DS7 1 (- (strlen DS) 3)))(SETQ DTE (STRCAT "1\" = " DWG-SCALE "'")) (if   (and (not          (eq (setq OldTxt "1\" = '") "")      )      (not          (eq (setq NewTxt dte) "")      )   )    (if (setq ss (ssget "x"                        (list '(0 . "TEXT,MTEXT")                              (cons 1 OldTxt)                              (cons 410 (getvar 'ctab))                        )               )      )      (repeat (setq in (sslength ss))      (setq en (entget (ssname ss (setq in (1- in)))))      (entmod (subst (cons 1 Newtxt) (assoc 1 en) en))      )    ) )

SLW210 发表于 2022-7-6 08:30:25

Sometimes it is the best way to solve a problem.
页: [1]
查看完整版本: Why will this (getvar 'di