Tenha uma nova experiência ao navegar no Fórum pelo computador de forma integrada ao portal principal. Acesse o seguinte link: https://www.autolisp.com.br/board/. Entretanto para dispositivos móveis recomendamos acessar este outro link: https://www.autolisp.com.br/forum/

Mudar cores atraves do VBA

Dúvidas sobre VB para AutoCAD...

Moderador: Moderadores

Responder
Avatar do usuário
zeluismc
Papel
Papel
Mensagens: 9
Registrado em: Ter 17 Jun 2008 12:00:00 am

Mudar cores atraves do VBA

Mensagem por zeluismc » Qua 22 Out 2008 10:52:32 am

Ola pessoal :)
Estou iniciando na programação VBA eu ja programo em VB 6 ja facilita o aprendizado mas a minha duvida é o seguinte no cad tem como vc escolher na barra properties as cores e se o usuario tb pode personalizar a cor que abreria uma caixa de customização no VBA escrevi o seguinte:

Private Sub cbocor_Change()
For Each entObj In ssetObj
Select Case cbocor.Text
Case "Vermelho"
corObjeto = "7d0000ff"
entObj.Color = acRed
Case "Amarelo"
corObjeto = "7d00ffff"
entObj.Color = acYellow
Case "Verde"
corObjeto = "7d00ff00"
entObj.Color = acGreen
Case "Cinza"
corObjeto = "7dffff00"
entObj.Color = acCyan
Case "Azul"
corObjeto = "7dff0000"
entObj.Color = acBlue
Case "Magenta"
corObjeto = "7dff00ff"
entObj.Color = acMagenta
Case "Branco"
corObjeto = "7dffffff"
entObj.Color = acWhite
End Select
Next entObj
end sub

para cada cor usaria um numero:
Color number Color name
1 Red
2 Yellow
3 Green
4 Cyan
5 Blue
6 Magenta
7 Black/White

o numero 8 seria essa caixa de customização da cor, ja tentei desse jeito: entObj.Color = 8 mas nada acontesse, alguem poderia me ajudar ?

Desde ja agradeço

e-mail: [email protected]

Avatar do usuário
cracksther
Diamante
Diamante
Mensagens: 1063
Registrado em: Seg 13 Dez 2004 11:00:00 pm

Mensagem por cracksther » Qua 22 Out 2008 5:24:02 pm

zeluismc... Vi que você é novo no forum, seja bem vindo... recentemente postaram um tópico com material VBA p/ CAD, caso ainda não tenha visto, segue o link:

http://www.autolisp.com.br/autolisp/mod ... 7771#17771

Até mais!
Marcelo Silva - Cascavel - PR
[email protected]

Avatar do usuário
cleyson
Prata 1/3
Prata 1/3
Mensagens: 430
Registrado em: Seg 19 Jun 2006 12:00:00 am

Respondendo com Perguntas

Mensagem por cleyson » Sex 24 Out 2008 12:08:08 pm

Bom dia,

Velho se fez uma confusão na pergunta e no mais tem que usar virgula na frase ...

01) Você quer abrir a caixa de cores do AutoCad com alguma cor já marcada ?

02) Você quer criar uma caixa de cores e mudar o objeto para a cor selecionada ?

O que voce quer ?

At
Cleyson Cloves do Carmo
Cuiabá - Mato Grosso
“Na morte que me sigam, pois não deixo ninguém a chorar”. Cleyson
“Na vida as horas passam e tudo se renova, não invoque a morte, amanhã é um novo dia”. Cleyson
“Deus fez os caminhos, o homem faz o destino” Cleyson

Avatar do usuário
zeluismc
Papel
Papel
Mensagens: 9
Registrado em: Ter 17 Jun 2008 12:00:00 am

Mensagem por zeluismc » Sex 24 Out 2008 3:22:54 pm

cracksther muito obrigado pelas apostila estou olhando elas :)

cleyson desculpa pelo meus erros de portugues(rsrsrsr) :mrgreen:

Para explicar melhor eu estava querendo colocar um opção de abrir a cx de customização de cor do autocad, eu queria em vba e não em lisp, sou iniciante de vba

eu tenho uma combo com as cores ja definida, qdo o usuario escolhe a cord o objeto ja muda de cor mas e se ele quiser outra cor q não esta disponivel ai entra essa janela,
segue o link de qual janela estou falando:

http://www.altoqi.com.br/suporte/QiCad/ ... de_Cor.htm

Avatar do usuário
cleyson
Prata 1/3
Prata 1/3
Mensagens: 430
Registrado em: Seg 19 Jun 2006 12:00:00 am

Respondendo ...

Mensagem por cleyson » Seg 27 Out 2008 11:01:09 am

Bom Dia Companheiro ...


Foi umas das coisas que mais sofri pra resolver .... porém consefui vencê-la

Nota:

Criar um Formulario com uma Lista de Opções de nome = listaCores
Clicar duas vezes no Formario e colar:

Private Sub listaCores_Change()
If listaCores.Text = "Outros ..." Then
'Fecha Formulario
Unload form
'Chama Função
caixaColor
End If
End Sub

Private Sub UserForm_Initialize()
'Lista Cores
listaCores.AddItem "Amarelo"
listaCores.AddItem "Azul"
listaCores.AddItem "Vermelho"
listaCores.AddItem "Outros ..."
End Sub


Criar um Modulo e colar ...

Sub caixaColor()
On Error Resume Next
Dim blnMetaColor As Boolean
Dim lngCurClr As Long
Dim lngInitClr As Long
If acedSetColorDialog(lngInitClr, blnMetaColor, lngCurClr) Then
MsgBox lngInitClr
End If
End Sub

O codigo imprime a cor escolhida ...

Tem um outro jeito de invocar a caixa que seria ThisDrawing.SendCommand("color "), porém não consegui capturar o valor ...

Atenciosamente
Cleyson Cloves do Carmo
Cuiabá - Mato Grosso
“Na morte que me sigam, pois não deixo ninguém a chorar”. Cleyson
“Na vida as horas passam e tudo se renova, não invoque a morte, amanhã é um novo dia”. Cleyson
“Deus fez os caminhos, o homem faz o destino” Cleyson

Avatar do usuário
cleyson
Prata 1/3
Prata 1/3
Mensagens: 430
Registrado em: Seg 19 Jun 2006 12:00:00 am

Retificando ...

Mensagem por cleyson » Seg 27 Out 2008 3:55:28 pm

Faltou um detalhe importante ... :!:

Acrescentar no Módulo ...

'ACAD color dialog
Public Declare Function acedSetColorDialog Lib "acad.exe" (color As Long, _
ByVal bAllowMetaColor As Boolean, ByVal nCurLayerColor As Long) As Boolean

Veja o Exemplo em:

http://forums.augi.com/showthread.php?t=63400
http://forums.augi.com/archive/index.php/t-7756.html

Atenciosamente
Cleyson Cloves do Carmo
Cuiabá - Mato Grosso
“Na morte que me sigam, pois não deixo ninguém a chorar”. Cleyson
“Na vida as horas passam e tudo se renova, não invoque a morte, amanhã é um novo dia”. Cleyson
“Deus fez os caminhos, o homem faz o destino” Cleyson

Avatar do usuário
zeluismc
Papel
Papel
Mensagens: 9
Registrado em: Ter 17 Jun 2008 12:00:00 am

Mensagem por zeluismc » Qui 06 Nov 2008 7:42:07 am

muito obrigado cleyson deu certo aki...valeu pela ajuda

Responder