Comunidade
AutoCAD - Português
Bem vindo ao Forum de AutoCAD da Autodesk. Compartilhe seu conhecimento, faça perguntas e explore os tópicos mais populares de AutoCAD.
cancelar
Mostrando resultados para 
Mostrar  apenas  | Pesquisar então 
Você quer dizer: 

script para layers - Lisp

7 RESPOSTAS 7
SOLUCIONADO
Responder
Mensagem 1 de 8
nmareis
826 Exibições, 7 Respostas

script para layers - Lisp

boas pessoal..

 

preciso de um script que altere as layers todas de um desenho para uma cor e expessuras á minha escolhas e que logo de seguida coloque algumas layers com que trabalho com uma cor diferente e  com a respectiva expessura..

 

preciso de algo deste género.... (command "layer" "m" "layer_1" "c" "56" "" "")...mas este cria a layer com  a côr 56......mas era deste tipo que pretendia.

 

Obrigado

7 RESPOSTAS 7
Mensagem 2 de 8
hmsilva
em resposta a: nmareis

Olá nmareis,

 

qual a cor e expessura para todas as layers, quais os nome da layers que trabalhas, cor e expessura?

 

Henrique

EESignature

Mensagem 3 de 8
nmareis
em resposta a: hmsilva

preciso apenas de um exemplo...depois eu adapto ás minhas necessidades...obrigado

 

 

Mensagem 4 de 8
hmsilva
em resposta a: nmareis

Só mais uma pergunta, com"script" queres dizer um ficheiro .scr ou pode ser uma rotina de lisp?

 

Henrique

EESignature

Mensagem 5 de 8
nmareis
em resposta a: hmsilva

pode ser uma rotina lisp....ou seja ( .lsp) obrigado...

Mensagem 6 de 8
hmsilva
em resposta a: nmareis

Aqui vai...

 

(defun c:demo (/ lay process)

  (defun process (la col lwt / trc)
    (if (= (vla-get-Lock la) :vlax-true)
      (progn
        (vla-put-Lock la :vlax-false)
        (setq trc (vla-get-truecolor la))
        (vla-put-colorindex trc col)
        (vla-put-truecolor la trc)
        (vlax-release-object trc)
        (vla-put-Lineweight la lwt)
        (vla-put-Lock la :vlax-True)
      )
      (progn
        (setq trc (vla-get-truecolor la))
        (vla-put-colorindex trc col)
        (vla-put-truecolor la trc)
        (vlax-release-object trc)
        (vla-put-Lineweight la lwt)
      )
    )
  )

  (vlax-for Layer (vla-get-layers (vla-get-ActiveDocument (vlax-get-acad-object)))
    (cond ((wcmatch (strcase (vla-get-Name Layer)) "LAYER A,LAYER B")
           (process layer 3 acLnWt020)
          )
          ((wcmatch (strcase (vla-get-Name Layer)) "LAYER C,LAYER D")
           (process layer 6 acLnWt020)
          )
          ((wcmatch (strcase (vla-get-Name Layer)) "LAYER E,LAYER F")
           (process layer 4 acLnWt020)
          )
          (T
           (process layer 1 acLnWt009)
          )
    )
  )
  (princ)
)

 

em que

((wcmatch (strcase (vla-get-Name Layer)) "LAYER A,LAYER B");; escreve o nome das layers em maiusculas
           (process layer 3 acLnWt020);; 3 é a cor e acLnWt020 a expessura 0.2
          )

 

e

 (T
           (process layer 1 acLnWt009);; todas as outras na cor 1 e expessura 0.09
          )

 

Espero que ajude

Henrique

 

EESignature

Mensagem 7 de 8
nmareis
em resposta a: hmsilva

Acho que ajuda mesmo...obrigadão....hoje já não tenho tempo mas amanhã vou tratar disso e vou experimentar depois dou o feedback...mais uma vez um muito obrigado.

Mensagem 8 de 8
helmoatayde
em resposta a: hmsilva

Não funcionou como lisp. Funcionou como script mesmo, copiei o conteúdo e colei no "command line" do Autocad. Muito bom mesmo. Obrigado também.

Não encontrou o que está procurando? Pergunte à comunidade ou compartilhe seu conhecimento.

Postar nos fóruns  

Autodesk Design & Make Report