quarta-feira, 15 de agosto de 2012
Autolisp para salvar textos do AutoCAD para arquivos
; Salva o conteúdo dos textos (text ou mtext) selecionados em um arquivo.
(defun c:text2arq()
(z1)
(setq arqz (open "c:\\dados.txt" "w"))
(setq n 1)
(setq color 4)
(while (= n 1)
(setq ent (entsel))
(if ent (progn
(command "change" ent "" "p" "c" color "")
(setq nome (nth 0 ent))
(setq ent (entget nome))
(setq ent (assoc 1 ent))
(setq z (cdr ent))
(print z arqz)
(z2)
)
(setq n 0)
)
)
(alert "Fim")
(close arqz)
(z3)
)
(defun z1()
(setvar "useri1" 1)
)
(defun z2()
(setvar "useri1" 2)
)
(defun z3()
(setq k1 (getvar "useri1"))
(if (= k1 2)
(progn
(while (/= k1 1)
(command "u")
(setq k1 (getvar "useri1"))
)
))
)
Autolisp para alinhar texto em relação à uma linha
; Alinha o texto selecionado em relação à uma linha
(defun c:atexto()
(print)
(prompt "Selecione a linha. ")
(setq obj (entsel))
(setq obj (car obj))
(setq obj (entget obj))
(setq p1 (assoc 10 obj))
(setq p2 (assoc 11 obj))
(setq x1 (nth 1 p1))
(setq y1 (nth 2 p1))
(setq x2 (nth 1 p2))
(setq y2 (nth 2 p2))
(if (= (- X1 X2) 0)
(setq ang (/ pi 2))
(setq ang (atan (/ (- y1 y2) (- x1 x2))))
)
(setq ang (/ (* 180 ang) pi))
(setq obj (entsel "Selecione o texto. "))
(command "change" obj "" "" "" "" "" ang "")
)
Autolisp para criar vistas (viewports no layout) em escala
; Rotina para criar vistas (viewports no layout) em escala
; Iniciar no "Model"
; p1 e p2 -> vértices do retângulo que inclui o desenho a ser representado
; model em metros e layout em milímetros
(defun c:cv ()
(setq escala (getreal "Escala da Vista que será criada no Layout: "))
(setq fs (/ 1000 escala))
(setq p1 (getpoint "Ponto Inferior esquerdo..."))
(setq p2 (getpoint "Ponto Superior Direito..."))
(setvar "tilemode" 0)
(setq x1 (nth 0 p1))
(setq y1 (nth 1 p1))
(setq x2 (nth 0 p2))
(setq y2 (nth 1 p2))
(setq p3 (getpoint "Ponto Inferior Esquerdo da Vista que será criada..."))
(setq x3 (nth 0 p3))
(setq y3 (nth 1 p3))
(setq dx (- x2 x1))
(setq dy (- y2 y1))
(setq p4 (list (+ x3 (* fs dx)) (+ y3 (* fs dy))))
(setq p5 (list (+ x3 (* fs dx) 30) (+ y3 (* fs dy) 30)))
(command "zoom" p3 p5)
(command "mview" p3 p4)
(prompt "Dê um duplo vista que foi criada e digite 0 ")
)
(defun c:0()
(command "zoom" p1 p2)
(setq p1 nil p2 nil)
(command "mview" "lock" "on" "l" "")
)
Autolisp para verificar se existem objetos com cores diferentes de 1 a 8
; Verifica se existem objetos com cores diferentes de 1 a 8
; Muda cores diferentes para a cor vermelha
; Não funciona se a cor do objeto estiver definida pela layer
(defun c:VerCor()
(setq en 0 k 0)
(setq o (ssget))
(while en
(setq en (ssname o k))
(setq k (+ k 1))
(setq objeto en)
(if en (progn
(setq en (entget en))
(setq dt (getvar "color"))
(setq en (assoc 62 en))
(setq corDoObjeto(cdr en))
(if (> corDoObjeto 8) (progn
(command "change" objeto "" "p" "c" "1" "")
))
))
)
)
Autolisp para verificar se existem objetos com cores diferentes de 1 a 8
; Verifica se existem objetos com cores diferentes de 1 a 8
; Muda cores diferentes para a cor vermelha
; Não funciona se a cor do objeto estiver definida pela layer
(defun c:VerCor()
(setq en 0 k 0)
(setq o (ssget))
(while en
(setq en (ssname o k))
(setq k (+ k 1))
(setq objeto en)
(if en (progn
(setq en (entget en))
(setq dt (getvar "color"))
(setq en (assoc 62 en))
(setq corDoObjeto(cdr en))
(if (> corDoObjeto 8) (progn
(command "change" objeto "" "p" "c" "1" "")
))
))
)
)
Autolisp para verificar se existem objetos com cores diferentes de 1 a 8
; Verifica se existem objetos com cores diferentes de 1 a 8
; Muda cores diferentes para a cor vermelha
; Não funciona se a cor do objeto estiver definida pela layer
(defun c:VerCor()
(setq en 0 k 0)
(setq o (ssget))
(while en
(setq en (ssname o k))
(setq k (+ k 1))
(setq objeto en)
(if en (progn
(setq en (entget en))
(setq dt (getvar "color"))
(setq en (assoc 62 en))
(setq corDoObjeto(cdr en))
(if (> corDoObjeto 8) (progn
(command "change" objeto "" "p" "c" "1" "")
))
))
)
)
Autolisp para verificar se existem objetos com cores diferentes de 1 a 8
; Verifica se existem objetos com cores diferentes de 1 a 8
; Muda cores diferentes para a cor vermelha
; Não funciona se a cor do objeto estiver definida pela layer
(defun c:VerCor()
(setq en 0 k 0)
(setq o (ssget))
(while en
(setq en (ssname o k))
(setq k (+ k 1))
(setq objeto en)
(if en (progn
(setq en (entget en))
(setq dt (getvar "color"))
(setq en (assoc 62 en))
(setq corDoObjeto(cdr en))
(if (> corDoObjeto 8) (progn
(command "change" objeto "" "p" "c" "1" "")
))
))
)
)
Assinar:
Postagens (Atom)