So I found this code that allows me to find and replace fractions with stacked fractions
I'm wondering if there is a way that I can predefine the fractions that the code searches for and if anyone would be willing to help me do so...
So it would have to implicate something like
Code:
(IF(osi=1/4, 1/2, 1/8)
(Setq nsi={\H0.75x;\S1#4;}, {\H0.75x;\S1#2;}, {\H0.75x;\S1#8;})
Now obviously I don't know the syntax for the above code seeing I've done bare minimal with lisp a while ago
Here is the code currently
Code:
(defun c:superstr()
(setq olsosmode (getvar "OSMODE"))
(setvar "OSMODE" 0)
(setq p (ssget))
(if p
(progn
(setq osl (strlen (setq os (getstring "\nOld string: " t))))
(setq nsl (strlen (setq ns (getstring "\nNew string: " t))))
(setq l 0 chm 0 n (sslength p))
(setq adj
(cond
((/= osl nsl) (- nsl osl))
(T nsl)
)
)
(while (< l n)
(setq d (entget (setq e (ssname p l))))
(if (and (= (atext 0) "INSERT")(= (atext 66) 1))
(progn
(setq e (entnext e))
(while e
(setq d (entget e))
(cond
((= (atext 0) "ATTRIB")
(setq chf nil si 1)
(setq s (cdr (setq as (assoc 1 d))))
(while (= osl (setq sl (strlen
(setq st (substr s si osl)))))
(cond
((= st os)
(setq s (strcat (substr s 1 (1- si)) ns
(substr s (+ si osl))))
(setq chf t)
(setq si (+ si adj))
)
)
(setq si (1+ si))
)
(if chf
(progn
(setq d (subst (cons 1 s) as d))
(entmod d)
(entupd e)
(setq chm (1+ chm))
)
)
(setq e (entnext e))
)
((= (atext 0) "SEQEND")
(setq e nil))
(T (setq e (entnext e)))
)
)
)
)
(if (= "MTEXT" ; Look for MTEXT entity type (group 0)
(cdr (assoc 0 (setq e (entget (ssname p l))))))
(progn
(setq chf nil si 1)
(setq s (cdr (setq as (assoc 1 e))))
(while (= osl (setq sl (strlen
(setq st (substr s si osl)))))
(if (= st os)
(progn
(setq s (strcat (substr s 1 (1- si)) ns
(substr s (+ si osl))))
(setq chf t) ; Found old string
(setq si (+ si nsl))
)
(setq si (1+ si))
)
)
(if chf (progn ; Substitute new string for old
(setq e (subst (cons 1 s) as e))
(entmod e) ; Modify the TEXT entity
(setq chm (1+ chm))
))
)
)
(if (= "DIMENSION" ; Look for DIMENSION entity type (group 0)
(cdr (assoc 0 (setq e (entget (ssname p l))))))
(progn
(setq chf nil si 1)
(setq s (cdr (setq as (assoc 1 e))))
(while (= osl (setq sl (strlen
(setq st (substr s si osl)))))
(if (= st os)
(progn
(setq s (strcat (substr s 1 (1- si)) ns
(substr s (+ si osl))))
(setq chf t) ; Found old string
(setq si (+ si nsl))
)
(setq si (1+ si))
)
)
(if chf (progn ; Substitute new string for old
(setq e (subst (cons 1 s) as e))
(entmod e) ; Modify the TEXT entity
(setq chm (1+ chm))
))
)
)
(if (= "TEXT" ; Look for TEXT entity type (group 0)
(cdr (assoc 0 (setq e (entget (ssname p l))))))
(progn
(setq chf nil si 1)
(setq s (cdr (setq as (assoc 1 e))))
(while (= osl (setq sl (strlen
(setq st (substr s si osl)))))